Mysql 自動備份指令碼

來源:互聯網
上載者:User

標籤:

轉自:

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庫。

這兒可以建立一個專用的Database Backup賬戶"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 

Mysql 自動備份指令碼

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.