mongodbデータベースの自動バックアップ


データは現在、アプリケーションシステムにとってますます重要になっています.これにより、冗長バックアップを行い、データの完全性とリカバリ性を保証する必要があります.このように重要である以上、バックアップを取らなければなりませんが、手動で行うと、時間の無駄になるだけでなく、データの損失につながる可能性があります.最良の方法はもちろん自動的にバックアップを実現することであり、今回は主にmongodbデータベースの自動バックアップについて述べる.
実現構想:
1)バックアップファイル格納フォルダの作成
2)コンパイルスクリプトによるバックアップ
3)タイミングタスクを設定してタイミングバックアップを実現する
1、mongodbバックアップディレクトリの作成
       mkdir -p /mongodb/data/mongodb_bak/mongodb/data/mongodb_Bak(一時バックアップファイル格納アドレス)
       mkdir -p /mongodb/data/mongodb_bak/mongodb/data/mongodb_List(バックアップファイル格納アドレス)
       
2、mongodbデータベースの新規バックアップスクリプト
 
1.	#!/bin/bash  
2.	#backup MongoDB  
3.	  
4.	#mongodump   
5.	DUMP=/usr/local/mongodb/bin/mongodump  
6.	#   
7.	OUT_DIR=/mongodb/data/mongodb_bak/mongodb_bak_now  
8.	#   
9.	TAR_DIR=/mongodb/data/mongodb_bak/mongodb_bak_list  
10.	#   
11.	DATE=`date +%Y_%m_%d`  
12.	#   
13.	DB_USER=user  
14.	#   
15.	DB_PASS=123  
16.	#DAYS=15 15 , 15   
17.	DAYS=15  
18.	#   
19.	TAR_BAK="mongodb_bak_$DATE.tar.gz"  
20.	  
21.	cd $OUT_DIR  
22.	rm -rf $OUT_DIR/*  
23.	mkdir -p $OUT_DIR/$DATE  
24.	#   
25.	$DUMP -h 15.62.32.112:27017 -u $DB_USER -p $DB_PASS --authenticationDatabase "admin" -o $OUT_DIR/$DATE  
26.	# .tar.gz   
27.	tar -zcvf $TAR_DIR/$TAR_BAK $OUT_DIR/$DATE  
28.	# 15   
29.	find $TAR_DIR/ -mtime +$DAYS -delete  
30.	  
31.	exit  

3、ファイルの属性を変更する
chmod +x mongoDB_bak.sh
4、変更/etc/crontab、タイミングタスクの追加
       vi/etc/crontab
      
# 0:0 MongoDB 
0 0 * * 6 root /mongodb/data/mongodb_bak/mongoDB_bak.sh