Mysql 自動備份腳本


轉自

Mysql 自動備份腳本2 - - ITeye技術網站
http://kangh.iteye.com/blog/2309091

備份方案:

備份主機:192.168.10.11

數據庫服務器:192.168.10.22

備份內容:對mysql服務器中的xxxx和yyyy庫進行遠程備份,每天凌晨2:30執行,每個庫備份為獨立的.sql文件,然后壓縮成.tar.gz的格式,文件名中嵌入執行備份的日期和時刻。

 

工作准備:

1、確保備份主機與數據庫服務器之間的網絡保持連接通暢,不能有網絡鏈路故障,防火牆等阻礙。

2、mysql服務必須允許備份主機遠程訪問,且授權用戶能夠查詢xxxx和yyyy庫。

這兒可以創建一個專用的數據庫備份賬戶"kanghui" 允許備份主機192.168.10.11連接到mysql數據庫,並授權對xxxx和yyyy庫的讀取權限,使用邏輯備份工具mysqldump的時候,需要對庫設置select和lock和tables權限。

Java代碼   收藏代碼
  1. mysql>grant select,lock tables on xxxx.*to 'kanghui'@'192.168.10.11' identified by '123456';  
  2.   
  3. mysql>grant select,lock tables on yyyy.*to 'kanghui'@'192.168.10.11' identified by '123456';  

 設置訪問權限后就在備份服務器上測試數據庫訪問,查詢授權等是否有效。

Java代碼   收藏代碼
  1. [root@localhost ~]#mysqldump -u root -p123456 -h 192.168.10.22 --databases xxxx > ceshi.sql  
  2.   
  3. [root@localhost ~]#ls -lh ceshi.sql  

 

下面是一個mysql的備份腳本,根據自己的需求修改即可。

Java代碼   收藏代碼
  1. [root@localhost ~]#mkdir -p /opt/mysql_bak/  
  2. [root@localhost ~]#cd /opt/mysql_bak/  
  3. [root@localhost mysql_bak]# vim mysql_bak.sh  
  4. #!/bin/bash  
  5. #auto backup mysqldb  
  6. #by authors kanghui 2016-06-12  
  7. #這是一個簡單化到MYSQL數據庫邏輯備份腳本  
  8. #1.定義數據庫鏈接,目標庫信息  
  9. MY_user="root"  
  10. MY_pass="123456"  
  11. MY_host="192.168.10.22"  
  12. MY_conn="-u $MY_user -p$MY_pass -h $MY_host"  
  13. MY_db1="xxxx"  
  14. MY_db2="yyyy"  
  15. #2.定義備份目錄,工具,時間,文件名  
  16. BF_dir="/opt/mysql_bak"  
  17. BF_cmd="/usr/bin/mysqldump"  
  18. BF_time="date +%Y%m%d-%H%M"  
  19. name_1="$MY_db1-$BF_time"  
  20. name_2="$MY_db2-$Bf_time"  
  21. #3先導出為.sql腳本,然后再進行壓縮(打包后刪除源文件)  
  22. cd $BF_dir  
  23. $BF_cmd $MY_conn --databases $MY_db1 > $name_1.sql  
  24. $BF_cmd $MY_conn --databases $MY_db2 > $name_2.sql  
  25. /bin/tar zcf $name_1.tar.gz $name_1.sql --remove &> /dev/null  
  26. /bin/tar zcf $name_2.tar.gz $name_2.sql --remove &> /dev/null  

設置權限並測試:

Java代碼   收藏代碼
  1. [root@localhost mysql_bak]#chmod +x mysql_bak.sh  
  2.   
  3. [root@localhost mysql_bak]#./mysql_bak.sh  
  4.   
  5. [root@localhost mysql_bak]#ls -lh /opt/mysql_bak/*.gz  

 

 最后把腳本加入帶計划任務即可。

Java代碼   收藏代碼
  1. [root@localhost ~]#crontab -e  
  2. 30 2 * * * /opt/mysql_bak/mysql_bak.sh 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM