在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服務器是可訪問的,并且具有足夠的權限。對于大型數據庫,備份和恢復可能需要較長時間,建議在系統負載較低的時段執行這些操作。定期測試恢復流程,以確保在緊急情況下能夠快速且正確地恢復數據。