这不是数据迁移, 迁移的话通常用mongodump, 另说.
本篇是因为服务器主分区只有20G, 数据库文件数据量大了, 主分区不够了需要迁移到新挂载的数据盘.挂载的知识请看().
下面是思路:
- 查看MongoDB的状态, 终止数据库运行
- 查看数据库数据, 日志路径
- 压缩备份, 拷贝到新目录
- 重启
    
    1.查看MongoDB状态
连接成功则表示mongod已经运行
|  1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
 |   $ service mongod status 
  > stop/waiting 表示不是通过service运行的
  > start/running 表示通过service运行的
  
  $ service mongod stop 停止
  $ service mongod start/restart 重启
  or
  $ ps -aux | grep mongo
  >root      7695  0.3 13.5 29712004 1109256 ?    Sl   Dec14   2:37 mongod --fork --logpath /var/log/mongodb/mongodb.log --dbpath /var/lib/mongodb
   ubuntu   24526  0.0  0.0  10468  2232 pts/1    R+   10:43   0:00 grep --color=auto mongo
  表示mongod服务是通过--fork 形式手动启动的
  
  $ kill PID(7695) 终止服务
  
 | 
 
    
    2.查看数据库数据, 日志路径
- 
service 启动的mongod服务
此时通过/etc/init.d/mongodb启动服务, 默认使用/etc/mongod.conf配置文件 
- 
mongod –fork 启动mongod服务
默认也会使用/etc/mongod.conf配置文件, 但是当指定dbpath logpath后以指定为准 
mongod.conf文件
|  1
 2
 3
 4
 5
 6
 7
 8
 9
10
 | ...
storage:
dbPath: /var/lib/mongodb
journal:
  enabled: true
...
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
 | 
 
修改对应路径:
|  1
 2
 3
 4
 5
 6
 7
 8
 9
10
 | ...
storage:
dbPath: /data/db/mongodb
journal:
  enabled: true
...
systemLog:
destination: file
logAppend: true
path: /data/db/log/mongod.log
 | 
 
本例中前人通过指定logpath dbpath的方式启动服务
    
    3.压缩备份, 拷贝到新目录
知道了原来的数据和日志位置, 那么可以压缩备份原来的数据了, 本例以/data/db/mongodb为新的数据目录
/data/db/log为新的日志目录
| 1
2
3
4
 | $ cd /var/lib
$ tar -zcvf mongodb_backup_xxxxxx.tar.gz /var/lib/mongodb
$ cp -ra /var/lib/mongodb /data/db/mongodb
$ rm -rf /var/lib/mongodb
 | 
 
    
    4.重启mongod服务
| 1
 | $ sudo service mongod start
 | 
 
or
| 1
 | $ sudo mongod --dbpath /data/db/mongodb --logpath /data/db/log/mongod.log
 | 
 
    
    问题: 启动失败
直接拷贝 已经是mongodb:mongodb 用户组了
- 查看日志 访问mongodb-27017.sock 无权限
| 1
2
3
 | ...
Failed to unlink socket file /tmp/mongodb-27017.sock errno:1 Operation not permitted
...
 | 
 
| 1
2
3
 | $ cd /tmp
$ ll
$ rm -rf mongodb-27017.sock 
 | 
 
重新启动
重新查看 mongodb-27017.sock 文件
| 1
2
3
 | $ ls - lat /tmp/mongodb-27017.sock
>
srwx------ 1 mongodb mongodb 0 Dec 14 21:12 /tmp/mongodb-27017.sock
 | 
 
注: 启动相关日志  还是在/var/log/mongodb