caosiyang / py-mongo-sync

Oplog-based data sync tool that synchronizes data from a replica set to another deployment, e.g.: standalone, replica set, and sharded cluster.
http://caosiyang.github.io/py-mongo-sync/
MIT License
108 stars 46 forks source link

mongo_synchronizer broken when sync from a replicat set to a single mongod 3.2.6 #4

Closed wavelet123 closed 7 years ago

wavelet123 commented 7 years ago

/usr/local/dbatools/py-mongo-sync-master/mongo_synchronizer.py:544: DeprecationWarning: update is deprecated. Use replace_one, update_one or update_many instead. self._dst_mc[dbname][collname].update(oplog['o2'], oplog['o']) Traceback (most recent call last): File "./sync.py", line 149, in syncer.run() File "/usr/local/dbatools/py-mongo-sync-master/mongo_synchronizer.py", line 595, in run self._sync() File "/usr/local/dbatools/py-mongo-sync-master/mongo_synchronizer.py", line 129, in _sync self._sync_oplog(oplog_start) File "/usr/local/dbatools/py-mongo-sync-master/mongo_synchronizer.py", line 466, in _sync_oplog self._replay_oplog(oplog) File "/usr/local/dbatools/py-mongo-sync-master/mongo_synchronizer.py", line 519, in _replay_oplog self._replay_oplog_mongodb(oplog) File "/usr/local/dbatools/py-mongo-sync-master/mongo_synchronizer.py", line 549, in _replay_oplog_mongodb self._dst_mc[dbname].command(oplog['o']) File "/usr/lib64/python2.6/site-packages/pymongo/database.py", line 494, in command codec_options, **kwargs) File "/usr/lib64/python2.6/site-packages/pymongo/database.py", line 406, in _command parse_write_concern_error=parse_write_concern_error) File "/usr/lib64/python2.6/site-packages/pymongo/pool.py", line 419, in command collation=collation) File "/usr/lib64/python2.6/site-packages/pymongo/network.py", line 116, in command parse_write_concern_error=parse_write_concern_error) File "/usr/lib64/python2.6/site-packages/pymongo/helpers.py", line 210, in _check_command_response raise OperationFailure(msg % errmsg, code, response) pymongo.errors.OperationFailure: ns not found

caosiyang commented 7 years ago

应该是目标ns不存在,检查一下dbname和collname是否合理

wavelet123 commented 7 years ago

同步了一天之后报的错,之前一直正常的。

caosiyang commented 7 years ago

File "/usr/local/dbatools/py-mongo-sync-master/mongo_synchronizer.py", line 549, in _replay_oplog_mongodb self._dst_mc[dbname].command(oplog['o']) 从这里看是在回放一条command时报错,可以尝试输出一些详细log,比如把目标command打印出来,基本可以定位问题