在CentOS下設置MongoDB的備份策略可以通過以下步驟進行:
mongodump是MongoDB提供的用于備份數據的命令行工具??梢允褂靡韵旅钸M行全量備份:
mongodump -h hostname -p port -d database_name -o backup_directory
其中:
hostname
:MongoDB服務器地址。port
:MongoDB服務器端口,默認為27017。database_name
:需要備份的數據庫名稱。backup_directory
:備份數據存放的位置。為了簡化備份過程,可以創建一個備份腳本,并設置定時任務來定期執行備份。
創建備份腳本 /data/backup/mongod.sh
:
#!/bin/sh
DUMP=/usr/local/mongodb/bin/mongodump
# 臨時目錄,需事先建好
OUT_DIR=/data/backup/mongod/tmp
# 正式目錄,需事先建好
TAR_DIR=/data/backup/mongod
DATE=$(date %Y_%m_%d_%H_%M_%S)
DB_USER=db_user
DB_PASS=db_password
DAYS=14
TAR_BAK "${TAR_DIR} / ${DATE}.tar.gz"
cd $OUT_DIR
rm -rf $OUT_DIR/*
mkdir -p $OUT_DIR/$DATE
$DUMP -u $DB_USER -p $DB_PASS -o $OUT_DIR/$DATE
tar -zcvf $TAR_DIR/$DATE.tar.gz $OUT_DIR/$DATE
find $TAR_DIR/$DATE -mtime $DAYS -delete
為腳本添加執行權限:
chmod +x /data/backup/mongod.sh
使用 crontab
來配置定時任務,每天凌晨2點執行備份腳本。
編輯 /etc/crontab
文件:
0 2 * * * root /data/backup/mongod.sh
重啟 crond
服務:
service crond restart
在備份腳本中已經包含了刪除14天之前備份文件的邏輯??梢酝ㄟ^以下命令手動觸發刪除操作:
find /data/backup/mongod/ -mtime 14 -type f -delete
當需要恢復數據時,可以使用 mongorestore
命令:
mongorestore -h hostname -p port backup_directory
通過以上步驟,可以在CentOS上設置一個基本的MongoDB備份策略,確保數據的安全性和可恢復性。