mysql備份:完全備份和增量備份

mysql備份:完全備份和增量備份

完全備份:

在cmd下進入該mysql目錄下bin目錄,mysqldump.exe來執行備份。mysqldump -uroot -p911004 數據庫或則數據表>路勁/文件名。在mysql控制檯上,恢復時用source 路徑/備份文件名

完整備份一般一段時間進行一次,且在網站訪問量最小的時候,這樣常藉助批處理文件定時備份。主要是寫一個批處理文件在裏面寫上處理程序的絕對路徑然後把要處理的東西寫在後面,即完全備份數據庫C:\myenv\mysql5.5.27\bin\mysqldump -u root -proot temp dept > d:\temp.dept.bak。然後在控制面板上,創建任務。任務指定該批處理文件的執行時間。但是執行一次該文件產生的備份都會覆蓋上一次的文件。需要一個動態指定的名字,藉助php可以實現,那麼這次在批處理文件裏面寫的是php.exe /php文件路徑/*.php。在php文件裏面,可以根據時間生成文件的名字,寫備份語句,讓exec函數執行。在創建計劃讓每個一段時間執行一次文件。

php文件:

date_default_timezone_set('PRC');

$bakfilename=date("YmdHis",time());

$command="C:\myenv\mysql5.5.27\bin\mysqldump-u root -proot temp dept > d:\\{$bakfilename}";

exec($command);

增量備份:

對ddl和dml語句進行二進制備份。且5.0無法增量備份,5.1後可以。

如果要實現增量備份需要在my.ini文件中配置備份路徑即[mysqld]下的log-bin='d:/log/mylog'

重啓mysql服務器,增量備份就啓動了。

會在指定目錄下生成兩個文件mylog.index記錄索引,mylog.000001就是記錄二進制的詳細信息。

如果要查看必須使用mysqlbinlog工具查看。在cmd中進入mysql目錄下的bin中 使用msyqlbinlog

後面加上mylog.000001,可以看到所有ddl和dml操作,且每一個操作都有具體的位置和時間點的記錄。

根據這些信息,可以恢復操作,

主要可以通過時間和位置兩種方式恢復:

mysqlbinlog --stop-datetime="2013-01-14 18:20:21" d:/log/mylog.000001 | mysql -uroot -p911004

從開始到這個時間點

mysqlbinlog --start-datetime="2013-01-14 18:20:21" d:/log/mylog.000001 | mysql -uroot -p911004

從這個時間點到最後

mysqlbinlog --start-datetime="2013-01-14 18:20:21" --stop-datetime="2013-01-14 18:20:21" d:/log/mylog.000001 | mysql -uroot -p911004

恢復這一個時間段的數據。

mysqlbinlog --stop-position=“N” d:/log/mylog.000001 | mysql -uroot -p911004

從開始到這個地方

mysqlbinlog --start-position="2013-01-14 18:20:21" d:/log/mylog.000001 | mysql -uroot -p911004

從這個地方到最後

mysqlbinlog --start-position="2013-01-14 18:20:21" --stop-position="2013-01-14 18:20:21" d:/log/mylog.000001 | mysql -uroot -p911004

恢復這一個地方段的數據。隨着時間的推移,二進制文件裏面的數據越來越大,所以要定期的做一些清理工作。

1.reset master 可以刪除列於索引文件中的所有二進制日誌,

把二進制日誌索引文件重新設置爲空,並創建一個新的二進制日誌文件

2.PURGE {MASTER | BINARY} LOGS TO 'log_name'

PURGE {MASTER | BINARY} LOGS BEFORE 'date'

用於刪除列於在指定的日誌或日期之前的日誌索引中的所有二進制日誌。

這些日誌也會從記錄在日誌索引文件中的清單中被刪除,這樣被給定的日誌成爲第一個。

3.設置my.ini中的參數[mysqld]下的-EXPIRE_LOGS_DAYS。此參數是設置日誌的過期天數,過期的日誌將會被自動刪除,

一般一週做一次全備份,之後增量備份,且過期時間大於7天。如果全奔潰了,先全恢復,在增量恢復。如果誤操作可以看增量日誌進行增量恢復。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章