時(shí)間:2024-03-26 14:50作者:下載吧人氣:75
MongoDB數(shù)據(jù)庫(kù)是一種非關(guān)系型文檔型數(shù)據(jù)庫(kù),其可實(shí)現(xiàn)高效的存儲(chǔ),更新,檢索和分析數(shù)據(jù),正因?yàn)槠涠鄻拥奶匦裕琈ongoDB深受廣大開發(fā)者的喜愛。在生產(chǎn)環(huán)境下,為了保證MongoDB數(shù)據(jù)庫(kù)的安全,以及數(shù)據(jù)的一致性和完整性,備份是非常必要的。本文將重點(diǎn)介紹MongoDB備份設(shè)置以及定時(shí)點(diǎn)備份技巧。
首先,我們來介紹定時(shí)點(diǎn)備份技巧。首先,mongodump可以對(duì)MongoDB數(shù)據(jù)庫(kù)進(jìn)行簡(jiǎn)單的點(diǎn)備份,使用該命令可以將MongoDB中的集合,索引,唯一索引以及各種文件保存到數(shù)據(jù)庫(kù)備份文件中。具體做法如下:
1、編寫一個(gè)將mongodump命令保存到一個(gè)shell腳本文件的腳本,比如“mongo_backup.sh”:
# vim mongo_backup.sh
#!/bin/bash
mongodump -h {host_address} -u {username} -p {password} -o /backup/Y$(date +”%Y%m%d”)
2、利用crontab程序定義任務(wù),定義每天固定時(shí)間運(yùn)行mongo_backup.sh,如每天22:30運(yùn)行,30分鐘備份一次:
# crontab -e
30 22 * * * /bin/bash /backup/mongo_backup.sh
另外,MongoDB中管理腳本圍繞pyMongo,Node.js,JavaScript和PHP實(shí)現(xiàn),可以利用編程實(shí)現(xiàn)定期備份:
# Python
import pymongo
# connect MongoDB
client = pymongo.MongoClient(“127.0.0.1”, 27017)
# Get database
db = client.mydb
# run dump command
backup_command = “mongodump -h 127.0.0.1:27017 -d {original_DB_name} -o –db {backup_DB_name}”
os.system(backup_command)
#run command every day
scheduler.add_job(backup_command, ‘cron’, hour=02, minute=00)
# JavaScript
// connect MongoDB
var db = mongoose.connect(‘mongodb://localhost:27017/mydb’, {
useMongoClient: true,
});
// run dump command
let backup_command = ‘mongodump -h localhost:27017 -d {original_DB_name} -o –db {backup_DB_name}’
exec(backup_command, (err, stdout, stderr) => {
if(err){
console.log(‘error:::’,err);
return;
}
console.log(‘dump success!’)
});
//run command every day
scheduler.add_job(backup_command, ‘cron’, {
hour: 02,
minute: 00
});
總之,我們可以輕松實(shí)現(xiàn)MongoDB數(shù)據(jù)庫(kù)的備份與還原,利用腳本,我們也可以定也點(diǎn),實(shí)現(xiàn)定時(shí)備份。因此,為了保護(hù)MongoDB數(shù)據(jù)庫(kù),定時(shí)備份設(shè)置是非常必要的,從而保證MongoDB的安全可靠。
網(wǎng)友評(píng)論