推荐答案
使用 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
参数在恢复前删除目标集合。