推荐答案
使用 mongodump 进行备份
基本备份命令:
mongodump --host <hostname> --port <port> --db <database_name> --out <backup_directory>
--host:指定 MongoDB 服务器的主机名或 IP 地址。--port:指定 MongoDB 服务器的端口号,默认为 27017。--db:指定要备份的数据库名称。--out:指定备份文件的输出目录。
备份所有数据库:
mongodump --host <hostname> --port <port> --out <backup_directory>
如果不指定
--db参数,mongodump会备份所有数据库。备份特定集合:
mongodump --host <hostname> --port <port> --db <database_name> --collection <collection_name> --out <backup_directory>
--collection:指定要备份的集合名称。
使用 mongorestore 进行恢复
基本恢复命令:
mongorestore --host <hostname> --port <port> --db <database_name> <backup_directory>
--host:指定 MongoDB 服务器的主机名或 IP 地址。--port:指定 MongoDB 服务器的端口号,默认为 27017。--db:指定要恢复的数据库名称。<backup_directory>:指定备份文件所在的目录。
恢复所有数据库:
mongorestore --host <hostname> --port <port> <backup_directory>
如果不指定
--db参数,mongorestore会恢复所有数据库。恢复特定集合:
mongorestore --host <hostname> --port <port> --db <database_name> --collection <collection_name> <backup_directory>/<database_name>/<collection_name>.bson
--collection:指定要恢复的集合名称。
本题详细解读
mongodump 和 mongorestore 的作用
mongodump:用于从 MongoDB 数据库中导出数据,生成 BSON 文件。这些文件可以用于备份或迁移数据。mongorestore:用于将mongodump生成的 BSON 文件导入到 MongoDB 数据库中,实现数据的恢复或迁移。
参数详解
--host和--port:指定 MongoDB 服务器的连接信息。如果不指定,默认连接到localhost:27017。--db:指定要操作的数据库。如果不指定,mongodump会备份所有数据库,mongorestore会恢复所有数据库。--collection:指定要操作的集合。如果不指定,mongodump会备份整个数据库的所有集合,mongorestore会恢复整个数据库的所有集合。--out:指定备份文件的输出目录。mongodump会在此目录下创建与数据库同名的子目录,并将 BSON 文件存储在其中。<backup_directory>:指定备份文件所在的目录。mongorestore会从此目录中读取 BSON 文件并恢复数据。
注意事项
- 权限:确保运行
mongodump和mongorestore的用户具有足够的权限来访问和操作目标数据库。 - 版本兼容性:
mongodump和mongorestore的版本应与 MongoDB 服务器的版本兼容,以避免数据格式不匹配的问题。 - 备份目录:确保备份目录有足够的磁盘空间来存储备份文件。
- 恢复时的冲突:如果目标数据库中已存在相同名称的集合或文档,
mongorestore会覆盖这些数据。可以使用--drop参数在恢复前删除目标集合。