在Ubuntu系统中,可以使用mongodump
和mongorestore
命令来备份和恢复MongoDB数据库。以下是详细的步骤和命令示例:
使用mongodump
命令备份整个数据库:
mongodump --db 数据库名 --out 备份目录
例如,要备份名为mydb
的数据库到/backup
目录,可以执行:
mongodump --db mydb --out /backup
使用mongodump
命令备份指定数据库:
mongodump --db 数据库名 --out 备份目录
例如,要备份名为test
的数据库到/backup/testdb
目录,可以执行:
mongodump --db test --out /backup/testdb
使用mongodump
命令备份指定集合:
mongodump --db 数据库名 --collection 集合名 --out 备份目录
例如,要备份名为test
的数据库中的users
集合到/backup/testdb/users
目录,可以执行:
mongodump --db test --collection users --out /backup/testdb/users
使用mongodump
命令备份指定查询条件的文档:
mongodump --db 数据库名 --collection 集合名 --query "查询条件" --out 备份目录
例如,要备份名为test
的数据库中age
大于30的文档到/backup/testdb/old_users
目录,可以执行:
mongodump --db test --collection users --query '{ "age" : { "$gt" : 30 } }' --out /backup/testdb/old_users
使用mongodump
命令备份并压缩:
mongodump --db 数据库名 --out 备份目录 --archive .gz --gzip
例如,要备份名为mydb
的数据库并压缩为mydb.gz
,可以执行:
mongodump --db mydb --out /backup/mydb --archive .gz --gzip
使用mongorestore
命令恢复整个数据库:
mongorestore --db 数据库名 备份目录
例如,要从/backup
目录恢复名为mydb
的数据库,可以执行:
mongorestore --db mydb /backup/mydb
使用mongorestore
命令恢复指定数据库:
mongorestore --db 数据库名 备份目录/数据库名
例如,要从/backup/testdb
目录恢复名为test
的数据库,可以执行:
mongorestore --db test /backup/testdb/test
使用mongorestore
命令恢复指定集合:
mongorestore --db 数据库名 备份目录/数据库名/集合名
例如,要从/backup/testdb/test
目录恢复名为users
的集合,可以执行:
mongorestore --db test /backup/testdb/test/users
使用mongorestore
命令恢复指定查询条件的文档:
mongorestore --db 数据库名 备份目录/查询条件
例如,要恢复名为test
的数据库中age
大于30的文档,可以执行:
mongorestore --db test /backup/testdb/old_users
使用mongorestore
命令恢复并删除现有数据(慎用):
mongorestore --db 数据库名 备份目录 --drop
例如,要恢复名为mydb
的数据库并删除现有数据,可以执行:
mongorestore --db mydb /backup/mydb --drop
请注意,在执行备份和恢复操作时,确保MongoDB服务器是可访问的,并且具有足够的权限。对于大型数据库,备份和恢复可能需要较长时间,建议在系统负载较低的时段执行这些操作。定期测试恢复流程,以确保在紧急情况下能够快速且正确地恢复数据。