centos

MongoDB在CentOS上的数据恢复方法有哪些

小樊
33
2025-06-26 10:55:28
栏目: 云计算

在CentOS系统上恢复MongoDB数据通常涉及以下几个步骤:

停止MongoDB服务

在进行任何数据恢复操作之前,首先需要确保MongoDB服务已经停止,以防止数据进一步损坏。

sudo systemctl stop mongod

备份现有数据(可选但推荐)

在尝试恢复之前,建议先备份当前的数据目录,以防恢复过程中出现问题。

sudo cp -R /var/lib/mongo /var/lib/mongo_backup

恢复数据

使用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
innobackupex --decompress --remove-original /path/to/backup
mongorestore --host localhost --port 27017 --db [数据库名] /path/to/backup/[数据库名]

使用mongodump和mongorestore进行定时备份和恢复

#!/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=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 -e

添加以下内容:

0 1 * * * /home/crontab/mongod_bak.sh
#!/bin/sh
mongorestore -u [用户名] -p [密码] --authenticationDatabase [认证数据库] [备份目录]
crontab -e

添加以下内容:

0 1 * * * /home/crontab/mongorestore.sh

请注意,在进行数据恢复之前,确保备份文件的完整性和可用性,并停止MongoDB服务以避免数据不一致。如果备份文件是通过 mongodump 创建的,建议使用 mongorestore 工具进行恢复。

0
看了该问题的人还看了