Mongodb数据迁移两种方法
服务器A导入到服务器B
第一种方法:(无密码)
直接去A中的数据存储目录,比如我这里的运行mongodb的命令是:
./mongod --port 27017 --dbpath /usr/share/mongodb/data/db --fork --logpath /usr/share/mongodb/data/logs/mongolog.out
因此我的数据存到/usr/share/mongodb/data/db这个目录下,将这个目录打包到B服务上解压,然后用启动时用这个解压的目录
上面这种方法只适用于全量迁移。
第二种方法:(有密码)
用命令mongoexport和mongoimport 这两个命令都在mongodb的解压bin目录下
导出:
1.找到A的mongodb的mongoexport所在目录。
例如:cd /usr/share/mongodb/bin
2.将数据导出,执行命令:./mongoexport -d DataBaseName -c CollectionName -o XXX.dat
其中,DataBaseName为数据库名称,CollectionName为集合名称,XXX.dat为导出后的名称
导出后的XXX.dat将在mongoexport所在的目录下。
例如:./mongoexport -d Student -c StudentInfo -o StudentInfo.dat
将数据库Student下的集合StudentInfo导出到mongoexport所在的目录下,并将其命名为StudentInfo.dat
3.按照上面的步骤将所有集合都导出来,至此导出完毕。
导入:
4.将导出的集合数据移动到B服务器上mongoimport所在的目录,可以使用命令:
sudo mv /tmp/XXX.dat /db/mongo/bin (将XXX.dat移动到/db/mongo/bin目录下)
5.找到B的mongoimport所在的目录:cd /db/mongo/bin
6.将数据导入,执行命令:
./mongoimport -h 127.0.0.1:port -u xxx -p xxx-d DataBaseName -c CollectionName XXX.dat
其中,DataBaseName为数据库名称,CollectionName为集合名称,XXX.dat为导入的集合
例如:
./mongoimport -h 127.0.0.1:27017 -u zhangsan -p zhangsan -d Student -c StudentInfo StudentInfo.dat
-h 127.0.0.1:27017:连接到本地,端口号为27017
-u zhangsan:用户名为zhangsan
-p zhangsan:密码为zhangsan
-d Student -c StudentInfo StudentInfo.dat:将StudentInfo.dat导入到数据库名称为Student,集合名称为StudentInfo中。
上面这种方法适合增量迁移。
服务器A导入到服务器B
第一种方法:(无密码)
直接去A中的数据存储目录,比如我这里的运行mongodb的命令是:
./mongod --port 27017 --dbpath /usr/share/mongodb/data/db --fork --logpath /usr/share/mongodb/data/logs/mongolog.out
因此我的数据存到/usr/share/mongodb/data/db这个目录下,将这个目录打包到B服务上解压,然后用启动时用这个解压的目录
上面这种方法只适用于全量迁移。
第二种方法:(有密码)
用命令mongoexport和mongoimport 这两个命令都在mongodb的解压bin目录下
导出:
1.找到A的mongodb的mongoexport所在目录。
例如:cd /usr/share/mongodb/bin
2.将数据导出,执行命令:./mongoexport -d DataBaseName -c CollectionName -o XXX.dat
其中,DataBaseName为数据库名称,CollectionName为集合名称,XXX.dat为导出后的名称
导出后的XXX.dat将在mongoexport所在的目录下。
例如:./mongoexport -d Student -c StudentInfo -o StudentInfo.dat
将数据库Student下的集合StudentInfo导出到mongoexport所在的目录下,并将其命名为StudentInfo.dat
3.按照上面的步骤将所有集合都导出来,至此导出完毕。
导入:
4.将导出的集合数据移动到B服务器上mongoimport所在的目录,可以使用命令:
sudo mv /tmp/XXX.dat /db/mongo/bin (将XXX.dat移动到/db/mongo/bin目录下)
5.找到B的mongoimport所在的目录:cd /db/mongo/bin
6.将数据导入,执行命令:
./mongoimport -h 127.0.0.1:port -u xxx -p xxx-d DataBaseName -c CollectionName XXX.dat
其中,DataBaseName为数据库名称,CollectionName为集合名称,XXX.dat为导入的集合
例如:
./mongoimport -h 127.0.0.1:27017 -u zhangsan -p zhangsan -d Student -c StudentInfo StudentInfo.dat
-h 127.0.0.1:27017:连接到本地,端口号为27017
-u zhangsan:用户名为zhangsan
-p zhangsan:密码为zhangsan
-d Student -c StudentInfo StudentInfo.dat:将StudentInfo.dat导入到数据库名称为Student,集合名称为StudentInfo中。
上面这种方法适合增量迁移。