国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

mysql數據庫完美增量備份腳本

2024-07-24 12:39:32
字體:
來源:轉載
供稿:網友

增量備份的意思就是在以前數據上進行增加備份了,這樣的數據備份無需大量的操作,只需要小小的變動就可以實現數據備份了,下面給各位整理了一段mysql數據庫完美增量備份腳本,希望對大家有幫助.

是否因為mysql太大,來回備份浪費資源帶寬而發愁,如果想解決這個麻煩就需要增量備份,下面是張小三資源網修改的一份mysql的增量備份腳本,我已做了相關注釋,大家自行修改下就可以用了.

vi /etc/my.cnf開啟日志及定期清理日志:

  1. log-bin=mysql-bin 
  2.  
  3. binlog_format=mixed 
  4.  
  5. //二進制日志自動刪除的天數。默認值為0,表示“沒有自動刪除” 
  6.  
  7. expire_logs_days = 5 

全備份腳本:

  1. #!/bin/bash 
  2. Name:qbk全備份腳本 
  3. # mysql qbk scripts 
  4. By zxsdw.com 
  5. Last Modify:2015-01-21 
  6. #定義腳本存放路徑 
  7. #scriptsDir=/usr/sbin 
  8. #定義用戶名及密碼 
  9. user=root 
  10. userPWD=密碼 
  11. #定義要備份的數據庫 
  12. database=數據庫 
  13. #定義完全備份文件存放路徑 
  14. bakDir=/backup/mysql 
  15. #eMailFile=$bakDir/email.txt 
  16. #eMail=admin@zxsdw.com 
  17. #定義日志文件 
  18. LogFile=$bakDir/mysqlbak.log 
  19. DATE=`date +%Y%m%d` 
  20. echo " " >> $LogFile 
  21. echo " " >> $LogFile 
  22. echo "--------------------------" >> $LogFile 
  23. echo $(date +"%y-%m-%d %H:%M:%S") >>$LogFile 
  24. echo "-----------------" >> $LogFile 
  25. cd $bakDir 
  26. DumpFile=$DATE.sql.gz 
  27. mysqldump --flush-logs -u$user -p$userPWD --quick $database| gzip >$DumpFile 
  28. echo "Dump Done" >> $LogFile 
  29. echo  "[$DumpFile]Backup Success!" >> $LogFile 
  30. daily_databakDir=$bakDir/daily_backup 
  31. cd $bakDir/daily_backup 
  32. find $daily_databakDir -name "daily*" -type f -mtime +35 -exec rm {} /; > /dev/null 2>&1 
  33. 增量備份腳本: 
  34. #!/bin/bash 
  35. Name:zbk增量備份 
  36. # mysql zbk scripts 
  37. By zxsdw.com 
  38. Last modify:2015-01-21 
  39.  
  40. #定義數據庫用戶名及密碼 
  41. user=root 
  42. userPWD=密碼 
  43. #定義數據庫 
  44. database=數據庫 
  45. #生成一個新的mysql-bin.00000X文件,如果err日志被清除,則自動新建一個。 
  46. /usr/local/mysql/bin/mysqladmin -u$user -p$userPWD flush-logs 
  47. #定義增量備份位置 
  48. daily_databakDir=/backup/mysql/daily_backup 
  49. #定義MYSQL數據日志目錄 
  50. mysqlDataDir=/usr/local/mysql/var 
  51. #定義增量日志及目錄 
  52. eMailFile=$daily_databakDir/email.txt 
  53. #eMail=admin@zxsdw.com 
  54. #定義變量DATE格式為20150127 
  55. DATE=`date +%Y%m%d` 
  56. #定義一個總的logFile日志 
  57. logFile=$daily_databakDir/mysql$DATE.log 
  58.  
  59. #美化日志模板 
  60. echo "       " > $eMailFile 
  61. echo "-----------------------" >> $eMailFile 
  62. #時間格式為15-01-27 01:06:17 
  63. echo $(date +"%y-%m-%d %H:%M:%S") >> $eMailFile 
  64. echo "-------------------------" >> $eMailFile 
  65.  
  66. #定義刪除bin日志的時間范圍,格式為20150124010540 
  67. TIME=$(date "-d 3 day ago" +%Y%m%d%H%M%S) 
  68. #定義需要增量備份數據的時間范圍,格式為2015-01-26 01:04:11 
  69. StartTime=$(date "-d 1 day ago" +"%Y-%m-%d %H:%M:%S"
  70. ###########開始刪除操作美化日志標題############## 
  71. echo "Delete 3 days before the log" >>$eMailFile 
  72. #刪除三天前的bin文件,及更新index里的索引記錄,美化日志標題 
  73. mysql -u$user -p$userPWD -e "purge master logs before ${TIME}" && echo "delete 3 days before log" |tee -a $eMailFile 
  74. #查找index索引里的bin 2進制文件并賦值給 i。 
  75. filename=`cat $mysqlDataDir/mysql-bin.index |awk -F "/" '{print $2}'
  76. for i in $filename 
  77. do 
  78. #########開始增量備份操作,美化日志標題########### 
  79. echo "$StartTime start backup binlog" >> $eMailFile 
  80. #利用mysqlbinlog備份1天前增加的數據,并gzip壓縮打包到增量備份目錄 
  81. /usr/local/mysql/bin/mysqlbinlog -u$user -p$userPWD -d $database --start-datetime="$StartTime" $mysqlDataDir/$i |gzip >> $daily_databakDir/daily$DATE.sql.gz |tee -a $eMailFile 
  82. done 
  83.  
  84. #如果以上備份腳本執行成功,接著運行下面的刪除腳本 
  85. if [ $? = 0 ] 
  86. then 
  87. # 刪除mtime>32的增量日志備份文件 
  88. find $daily_databakDir -name "*.log" -type f -mtime +32 -exec rm {} /; > /dev/null 2>&1 
  89. cd $daily_databakDir 
  90. echo "Daily backup succeed" >> $eMailFile 
  91. else 
  92. echo "Daily backup fail" >> $eMailFile 
  93. #mail -s "MySQL Backup" $eMail < $eMailFile #備份失敗之后發送郵件通知 
  94. #fi結束IF判斷 
  95. fi 
  96.  
  97. #把變量eMailFile的內容替換logFile內容 
  98. cat $eMailFile > $logFile 
  99. #如果上面的IF判斷失敗,再次運行刪除mtime>32的增量日志備份文件 
  100. find $daily_databakDir -name "*.log" -type f -mtime +32 -exec rm {} /; > /dev/null 2>&1 --Vevb.com 
  101. rsync -vzrtopg --delete --progress --password-file=/usr/local/rsync/rsync.passwd root@$ip:/zxs/allimg/$(date -d -1day +%y%m%d) /zxs/allimg/ 
  102. gunzip < /backup/mysql/daily_backup/ceshi.sql.gz | /usr/local/mysql/bin/mysql -u用戶名 -p密碼 數據庫名 --force 
  103. --force參數 忽略錯誤

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 浏阳市| 镇原县| 霸州市| 吕梁市| 汨罗市| 海阳市| 韶山市| 昌邑市| 文昌市| 通州区| 武平县| 临海市| 临夏市| 加查县| 庆阳市| 洪雅县| 土默特右旗| 徐水县| 灵台县| 双桥区| 聊城市| 义乌市| 察隅县| 上虞市| 博白县| 乌海市| 漳州市| 武宣县| 永昌县| 盐山县| 崇左市| 丁青县| 迁西县| 阿鲁科尔沁旗| 新河县| 和平县| 平江县| 平江县| 雅安市| 正安县| 神木县|