网络知识
centos上mongodb数据如何恢复
2025-07-21 16:13  点击:0

在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/shDump=/usr/bin/mongodumpOUT_DIR=/home/backup/mongod_bakTAR_DIR=/home/backup/mongod_bak/mongod_bak_nowDATE=$(date +%Y-%m-%d)DB_USER=db_userDB_PASS=db_passwordDB_NAME=dbname$Dump -h 127.0.0.1:27017 -u $DB_USER -p $DB_PASS -d $DB_NAME -o $OUT_DIR/$DATEtar -zcvf $TAR_DIR/$DATE.tar.gz $OUT_DIR/$DATEfind $TAR_DIR/ -mtime +14 -type f -delete

    设置定时任务:编辑 crontab 文件:

    crontab -e添加以下内容:0 1 * * * /home/crontab/mongod_bak.sh

    恢复脚本:创建恢复脚本 /home/crontab/mongorestore.sh,内容如下:

    #!/bin/shmongorestore -u [用户名] -p [密码] --authenticationDatabase [认证数据库] [备份目录]

    设置定时任务:编辑 crontab 文件:

    crontab -e添加以下内容:0 1 * * * /home/crontab/mongorestore.sh
注意事项在进行数据恢复之前,确保备份文件的完整性和可用性,并停止MongoDB服务以避免数据不一致。如果备份文件是通过 mongodump 创建的,建议使用 mongorestore 工具进行恢复。

通过以上方法,您应该能够在CentOS系统上成功恢复MongoDB数据。如果在恢复过程中遇到问题,建议参考MongoDB官方文档或寻求社区帮助。