您好,登錄后才能下訂單哦!
MYSQL備份恢復
MySQL備份一般采取全庫備份加日志備份的方式.
1、binlog
mysql的二進制日志記錄著該數據庫的所有增刪改的操作日志, 可以使用mysqlbinlog命令來查看。
默認關閉的 在/etc/my.conf 開啟 重啟
指定路徑
Binlog的用途 主從同步 恢復數據庫
查看產生的binary log 注:查看binlog內容是為了恢復數據
bin-log因為是二進制文件,不能通過文件內容查看命令直接打開查看,mysql提供兩種方式查看方式,我們先對數據庫進行一下增刪改的操作,否則log里邊數據有點空。
重啟開始一個新日志
查看MySQL Server上的二進制日志
查看二進制日志信息的命令:
語法格式:SHOW BINLOG EVENTS[IN 'log_name'] [FROM pos] [LIMIT [offset,] row_count]
查看指定二進制日志事件
SLAVE復制線程。
查看到文件中具體的內容并應于恢復場景還得借助mysqlbinlog這個工具。
語法格式: mysqlbinlog [options] log_file ...
mysqlbinlog的可用選項可參考man手冊。
二進制日志文件的格式包含行模式、語句模式和混合模式,基于語句的日志中事件信息包含執行的語句等,基于行的日志中事件信息包含的是行的變化信息等。
2 方便查詢SQL語句使用mysqlbinlog工具 -v (--verbose)選項,想看到更詳細的信息可以將該選項給兩次如-vv
先切換到binlog所在的目錄下
查看mysqlbinlog 000001目錄
mysqlbinlog和可以通過--read-from-remote-server選項從遠程服務器讀取二進制日志文件,這時需要一些而外的連接參數,如-h,-P,-p,-u等,這些參數僅在指定了--read-from-remote-server后有效。
無論是行模式、語句模式還是混合模式的二進制日志文件,被mysqlbinlog工具解析后都可直接應用與MySQL Server進行基于時間點、位置或數據庫的恢復。
可以看出delete事件發生position是287,事件結束position是416
恢復流程:直接用bin-log日志將數據庫恢復到刪除位置287前,然后跳過故障點,再進行恢復
由于之前沒有做過全庫備份,所以要使用所有binlog日志恢復,所以生產環境中需要很長時間恢復,導出相關binlog文件
刪除test數據庫
利用binlog恢復數據
恢復成功
--start-datetime
從二進制日志中讀取指定時間戳或者本地計算機時間之后的日志事件。
--stop-datetime
從二進制日志中讀取指定時間戳或者本地計算機時間之前的日志事件。
--start-position
從二進制日志中讀取指定position 事件位置作為開始。
--stop-position
從二進制日志中讀取指定position 事件位置作為事件截至。
mysqldump介紹
mysqldump一般在數據量很小的時候(幾個G)可以用于備份。當數據量比較大的情況下,就不建議用mysqldump工具進行備份了。
2)mysqldump可以針對單個表、多個表、單個數據庫、多個數據庫、所有數據庫進行導出的操作
#mysqldump [options] db_name [tbl_name ...] //導出指定數據庫或單個表
#mysqldump [options] --databases db_name ... //導出多個數據庫
#mysqldump [options] --all-databases //導出所有
導出數據庫test
完整備份 重新開啟新binlog
數據庫導入
實現mysqldum全庫備份和binlog數據恢復
檢查開啟binlog 創建原始數據
方案:mysqldump全庫備份+binlog還原
1、mysqldump備份方案:
每周一凌晨1點全庫備份
2、備份步驟
模擬一個完整全庫備份
備份mysqldump全庫備份之前的binlog日志文件
模擬失誤刪除數據
創建tom3
剛才刪除的數據(id=2)恢復回來了,但備份后產生的數據卻丟失了所以還得利用binlog進一步還原因為刪除是在全庫備份后發生的,而mysqldump全庫備份時使用--flush-logs選項,所以只需要分析全庫備份后的binlog即mysql-bin.000002。
查看 log_bin 事件 可以看到刪除日志
數據恢復刪除之前
數據恢復刪除之后
查看最終恢復結果
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。