CentOS环境下MongoDB的数据恢复方法有哪些
在CentOS环境下,MongoDB的数据恢复方法主要包括以下几种:
- 使用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
- 使用物理备份文件恢复:
-
安装必要的工具:
yum install percona-xtrabackup-24
-
传输备份文件:使用scp或其他工具将备份文件传输到CentOS服务器。
-
解压备份文件:
innobackupex --decompress --remove-original /path/to/backup
-
恢复数据:
mongorestore --host localhost --port 27017 --db [数据库名] /path/to/backup/[数据库名]
- 使用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