標籤:Database Backup mysql 資料恢複
mysql資料庫自動化完整備份和增量備份
增量備份,為了增強mysql資料庫的安全性和完整性,需要對資料進行備份。這裡我們採用的策略是每周五下午5:30進行一次完整備份;每天的6:00、12:10、17:00進行增量備份。
1.完整備份指令碼如下:(備份之後並打包儲存)
650) this.width=650;" src="https://s1.51cto.com/wyfs02/M01/98/DC/wKiom1lBJP7C2iX1AAA1siYHk_A803.png" title="1.png" alt="wKiom1lBJP7C2iX1AAA1siYHk_A803.png" />
2.增量備份指令碼如下:(將產生的二進位檔案內容讀取出來並匯入一個新的sql檔案中)
650) this.width=650;" src="https://s2.51cto.com/wyfs02/M02/98/DC/wKiom1lBJQnR3urnAAAkS1bMaxM989.png" title="2.png" alt="wKiom1lBJQnR3urnAAAkS1bMaxM989.png" />
增量備份的前提時,要在mysql的設定檔裡開啟二進位功能:
log-bin=mysql
3.將這兩個加進計劃任務裡
650) this.width=650;" src="https://s4.51cto.com/wyfs02/M00/98/DB/wKioL1lBJRvTI9GVAAAT0nYnRPs265.png" title="3.png" alt="wKioL1lBJRvTI9GVAAAT0nYnRPs265.png" />
4.執行結果:
Database Backup全部檔案存放路徑:/backup/mysqldb_full
資料庫增量備份存放路徑:/backup/mysqldb_add
完整備份的檔案: (路徑在/backup/mysqldb-full/20150525,以每天的日期作為檔案名稱,*full.sql為完整備份檔案,*add.sql為增量備份檔案)
650) this.width=650;" src="https://s1.51cto.com/wyfs02/M01/98/DB/wKioL1lBJSqyhcmhAAAWrbva-Q8586.png" title="4.png" alt="wKioL1lBJSqyhcmhAAAWrbva-Q8586.png" />
打包的備份檔案:(路徑在 /backup/mysql_backup)
650) this.width=650;" src="https://s3.51cto.com/wyfs02/M00/98/DC/wKiom1lBJUfATCaDAAAjsZCvq4Q058.png" title="5.png" alt="wKiom1lBJUfATCaDAAAjsZCvq4Q058.png" />
產生的二進位檔案:
650) this.width=650;" src="https://s2.51cto.com/wyfs02/M00/98/DB/wKioL1lBJV_hulTRAAAerEAX578324.png" title="6.png" alt="wKioL1lBJV_hulTRAAAerEAX578324.png" />
5.資料恢複:
(1)恢複完整備份方式;
mysql -p < full.sql
(2) 恢複增量備份
mysqladmin bin-log.000001 | mysql -uroot -p
基於時間點的恢複:
如果誤刪了一張表,使用完全恢複是沒有用的,因為日誌裡同樣也保留著刪除的sql語句,所以我們需要恢複到誤操作前的狀態,然後跳過誤操作的語句。
假如我在20:00誤刪了一張表,可以使用以下語句恢複:
mysqlbinlog --stop-date=‘2012-06-05 19:59:59‘ /var/log/mysql-bin.000001 | mysql -uroot -p
跳過誤刪除的時間點,再執行:
mysqlbinlog --start-date=‘2012-06-05 20:01:00‘ /var/log/mysql-bin.000001 | mysql -uroot -p
基於位置點的恢複:
基於位置點的恢複可以得到更為精確的資料。
650) this.width=650;" src="https://s5.51cto.com/wyfs02/M00/98/DC/wKiom1lBJb_RkbQ5AAAPVtXOvZk975.png" title="7.png" alt="wKiom1lBJb_RkbQ5AAAPVtXOvZk975.png" />如,drop table test這條語句的起始位置是889107,終止位置是889189,那麼我們可以使用於以下語句進行恢複:
mysqlbinlog --stop-position=‘889107‘ /var/lib/mysql/mysql-bin.000001|mysql -uroot -pmysqlbinlog --start-position=‘889189‘ /var/lib/mysql/mysql-bin.000001|mysql -uroot -p
本文出自 “清淼淡寫” 部落格,請務必保留此出處http://qingmiao.blog.51cto.com/7286083/1936828
mysql資料庫自動化完整備份和增量備份