是否可以进行mongodump并将其mongorestore到具有不同数据库名称且启用了oplog的其他主机上?
来自:mongodb:// user:password @ source-hostname:source-port / db1
收件人:mongodb:// user:password @ dest-hostname:dest-port / db5
当我在源MongoDB上使用oplog进行mongodump时,它将转储整个数据库。
mongodump --oplog --host <source-hostname> -u <user> -p <password> --port <source-port> --authenticationDatabase admin
现在要进行还原,我想还原到其他主机名,并且db-name也不同。是否可以通过oplogReplay将数据还原到该数据库?
mongorestore --host <dest-host> --port <dest-port> --username <user> --password <password> --authenticationDatabase admin --oplogReplay --db <db5> <path-to-dump>/dump
如果我使用oplogReplay,则会出现以下错误
Can only replay oplog on full restore
我不想进行完全还原,因为它将创建db1作为db-name,而我想使用db5。另外,此目标主机上已经有多个数据库,并且我不想轰炸另一个新数据库。
关于这个问题有什么建议吗?
您不能同时使用两个选项--oplogReplay和--db。如果您不想还原整个数据库,只需转到dump /文件夹并删除db5以外的其他数据库文件。然后重试mongorestore无--db:
mongorestore --host <dest-host> --port <dest-port> --username <user> --password <password> --authenticationDatabase admin --oplogReplay <path-to-dump>/dump
如果这对您不起作用,则可能需要将oplog集合导入到临时db,并对其进行操作以除去db5的所有记录(记录除外)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句