mongorestore 使用方法
mongorestore 是 MongoDB 的一个实用工具,用于将通过 mongodump 导出的 BSON 文件恢复到 MongoDB 数据库中,方便数据恢复、迁移等操作。
基本语法
mongorestore --host <hostname> --port <port> --username <username> --password <password> --authenticationDatabase <authDB> --db <database> --collection <collection> --drop <dump_directory>
常用参数说明
--host:指定 MongoDB 服务器的主机名或 IP 地址,默认为 localhost。
--port:指定 MongoDB 服务器的端口号,默认为 27017。
--username 和 --password:用于连接到 MongoDB 服务器时的用户名和密码,如果服务器启用了认证。
--authenticationDatabase:指定用于认证的数据库名称,如果认证信息存储在非默认数据库中。
--db:指定要恢复数据的数据库名称。如果不指定,则根据 BSON 文件中的信息恢复到原数据库。
--collection:指定要恢复数据的集合名称。如果不指定,则恢复整个数据库的所有集合。
--drop:在恢复数据之前,先删除目标集合中的所有数据。使用该参数时需谨慎,因为它会删除现有数据。
--\<dump_directory>:指定包含 BSON 文件的目录路径,该目录应该是 mongodump 命令导出数据时指定的输出目录。
示例
恢复整个数据库
mongorestore --host localhost --port 27017 --db mydatabase /path/to/dump_directory/mydatabase
这会将 /path/to/dump_directory/mydatabase 目录下的所有 BSON 文件恢复到 mydatabase 数据库中。
恢复指定集合
mongorestore --host localhost --port 27017 --db mydatabase --collection mycollection /path/to/dump_directory/mydatabase/mycollection.bson
只会将 mycollection.bson 文件中的数据恢复到 mydatabase 数据库的 mycollection 集合中。
连接认证的 MongoDB 服务器
mongorestore --host localhost --port 27017 --username myuser --password mypassword --authenticationDatabase admin --db mydatabase /path/to/dump_directory/mydatabase
当 MongoDB 服务器启用了认证时,需要提供用户名、密码以及认证数据库等信息。
恢复前删除目标集合数据
mongorestore --host localhost --port 27017 --db mydatabase --collection mycollection --drop /path/to/dump_directory/mydatabase/mycollection.bson
在恢复 mycollection 集合的数据之前,会先删除该集合中已有的所有数据。
从特定 BSON 文件恢复
mongorestore --host localhost --port 27017 --db mydatabase /path/to/dump_directory/mydatabase/mycollection.bson
直接从指定的 BSON 文件恢复数据到 mydatabase 数据库中,集合名称根据 BSON 文件名确定。
导出时有archive参数
mongorestore --username myuser --password mypassword --archive=backup.archive --db mydatabase
注意事项
在使用 --drop 参数之前,请确保已经备份了目标数据库或集合中的重要数据,因为该参数会删除现有数据。
恢复数据时,目标数据库或集合的结构和数据类型应与导出时一致,以避免数据恢复过程中出现错误。
恢复大量数据时,可能会对数据库性能产生一定影响,建议在低峰时段进行恢复操作。
如果 BSON 文件所在的目录结构与 mongodump 导出时的结构不一致,可能需要手动调整目录结构或指定正确的 BSON 文件路径。
评论交流 (0)
暂无评论,来坐第一个沙发吧~