簡要記錄使用二進制恢復丟失數據

二進制很重要,建議設置row格式,這個雖然存儲比較佔地方,可是是最安全的而且使用下面語句能夠直觀的看到數據
 
mysqlbinlog --base64-output='decode-rows' -v mysql-bin.000001 > text.txt 

 

這樣具體的行記錄信息在text.txt 就能夠找到了
 
-v 顯示行記錄格式內容
-vv 顯示行記錄格式內容+字段的數據類型等
 
binlog大小默認是1GB 建議能夠改爲512M這樣能夠更加方便的打開搜索定位
使用以下參數
max_binlog_size

 

使用show binary logs;定位當前正在寫的二進制日誌和具體position
 
mysqldump -h127.0.0.1 -uroot -proot  -v(打印備份冗餘信息) -R (備份存儲過程和函數) --event (備份事件) --databases database_name (要備份的數據庫或者使用 --all-databases) --master-data=2(這個參數會打開lock-all-tables 選項除非使用--single-transaction選項,默認爲1 表示直接在備份中生成 change master to master_file='' , master_pos='' ; 信息,2表示以註釋形式記錄,這樣不影響reload恢復,注意1會影響,通常備份不須要使用) > backup.sql
 

 

恢復數據的時候能夠使用登陸mysql會話,設置sql_log_bin 爲0 ,避免大數據恢復寫二進制文件
mysql> set sql_log_bin = 0; --  (默認是1) 
mysql> source backup.sql ;
mysql> set sql_log_bin = 1;
 

 

簡單使用二進制 position 來恢復數據
 
mysqlbinlog --start-position=191 --stop-position=2324345 --database='database' mysql-bin.00001 mysql-bin.000002 
| mysql -h127.0.0.1 -uroot -proot  (或者 > file.sql 而後再檢查file再執行,直接執行是比較危險的)

 
mysqlbinlog還有 根據時間等等條件 都比較簡單
相關文章
相關標籤/搜索