温馨提示×

CentOS环境下MongoDB的数据恢复方法有哪些

小樊
51
2025-08-02 10:59:32
栏目: 云计算

在CentOS环境下,MongoDB的数据恢复方法主要包括以下几种:

  1. 使用mongorestore命令恢复备份数据
  • 恢复整个数据库mongorestore -u [用户名] -p [密码] --authenticationDatabase [认证数据库] [备份目录] 例如: mongorestore -u game -p VvsPBDQw --authenticationDatabase kinggame /home/backup/kinggame

  • 恢复指定数据库mongorestore -u [用户名] -p [密码] --authenticationDatabase [认证数据库] [备份目录]/[数据库名] 例如: mongorestore -u game -p VvsPBDQw --authenticationDatabase kinggame /home/backup/kinggame/kinggame

  • 恢复指定集合mongorestore -u [用户名] -p [密码] --authenticationDatabase [认证数据库] [备份目录]/[数据库名]/[集合名] 例如: mongorestore -u game -p VvsPBDQw --authenticationDatabase kinggame /home/backup/kinggame/kinggame/setting

  1. 使用物理备份文件恢复
  • 安装必要的工具: yum install percona-xtrabackup-24

  • 传输备份文件:使用scp或其他工具将备份文件传输到CentOS服务器。

  • 解压备份文件: innobackupex --decompress --remove-original /path/to/backup

  • 恢复数据: mongorestore --host localhost --port 27017 --db [数据库名] /path/to/backup/[数据库名]

  1. 使用mongodump和mongorestore进行定时备份和恢复
  • 创建备份脚本,例如: /home/crontab/mongod_bak.sh,内容如下: #!/bin/sh Dump=/usr/bin/mongodump OUT_DIR=/home/backup/mongod_bak TAR_DIR=/home/backup/mongod_bak/mongod_bak_now DATE=$( date %Y-%m-%d_%H_%M_%S) DB_USER=db_user DB_PASS=db_password DB_NAME=dbname Dump -h 127.0.0.1:27017 -u $DB_USER -p $DB_PASS -d $DB_NAME -o $OUT_DIR / $DATE tar -zcvf $TAR_DIR / $DATE .tar.gz $OUT_DIR / $DATE find $TAR_DIR / -mtime +14 - type f -delete

  • 设置定时任务:编辑crontab文件: crontab -e添加以下内容: 0 1 * * * /home/crontab/mongod_bak.sh

  • 创建恢复脚本,例如: /home/crontab/mongorestore.sh,内容如下: #!/bin/sh mongorestore -u [用户名] -p [密码] --authenticationDatabase [认证数据库] [备份目录]

  • 设置定时任务:编辑crontab文件: crontab -e添加以下内容: 0 1 * * * /home/crontab/mongorestore.sh

0