注意: 我下面的这个mongodb版本较低(3.2.16), 还可以用这个工具来同步数据。工具不支持更高版本的mongodb了.
使用方法:
https://github.com/Qihoo360/mongosync
# 需要先yum安装这几个依赖包,否则下面的make编译会失败 yum -y install gcc gcc-c++ yum -y install boost-devel boost openssl-devel git clone https://github.com/Qihoo360/mongosync.git cd mongosync make
编译完成后,会生成一个output的目录,里面放的就是编译完成的文件还有一个配置文件。
说明如果编译报错的话,日志路径在: mongosync/dep/mongo-cxx-driver/build/scons/config.log
cd output/
程序可以通过命令行及配置文件的方式运行,参数说明如下:
-c conf.file 使用conf.file配置文件启动mongosync --src_srv arg 源端ip及端口信息,格式:--src_srv 192.168.1.1:27017 --src_user arg 源端用户 --src_passwd arg 源端密码 --src_auth_db arg 源端认证库 --src_use_mcr 强制源端使用MONGODB-CR密码认证 --dst_srv arg 目的端ip及端口信息,格式:--src_srv 192.168.1.2:27018 --dst_user arg 目的端用户,需要具有创建数据库,集合,索引等操作权限 --dst_passwd arg 目的端密码 --dst_auth_db arg 目的端认证库 --dst_use_mcr 强制目的端使用MONGODB-CR密码认证 --db arg 源端数据库,默认同步除admin及local外的所有数据库 --dst_db arg 目的端数据库 --coll arg 源端集合,默认同步全部集合 --dst_coll arg 目的端集合 --oplog 是否同步oplog --raw_oplog 是否只同步oplog --op_start arg oplog同步的开始点位,格式:--op_start 1479436001,1 --op_end arg oplog同步的结束点位,格式:--op_start 1479436002,2 --dst_op_ns arg oplog同步时目的端的oplog名称,格式:--dst_op_ns sync.oplog --no_index 是否同步索引 --filter arg 同步过滤语句,格式:--filter {"name":xxx} --bg_num arg 数据同步线程数 --batch_size arg 数据传输块的大小(0-16M,默认是16M)
./mongosync --src_srv 192.168.2.2:27017 --src_user admin --src_passwd 123456 --src_auth_db admin --src_use_mcr --dst_srv 192.168.2.4:27017 --dst_user root --dst_passwd 123456 --dst_auth_db admin --db db1 --dst_db db1 --bg_num 4
更全的使用方法在这里:https://github.com/Qihoo360/mongosync/wiki/%E4%BD%BF%E7%94%A8%E6%A0%B7%E4%BE%8B
如果要在后台运行,可以开个screen窗口。