7.5 使用binary log 做基於時間點的恢復
7.5 Point-in-time Recovery Using the Binary Log
時間點的恢復基於以下規則:
-
資料庫必須開啟binary logging
log-bin需要再my.cnf檔案中設定
-
可以使用mysqlbinlog工具將events 轉換為text格式以便於檢視。
mysqlbinlog --no-defaults mysql-bin.000004 | more
-
可以使用mysqlbinlog工具去回放binary log 中的events.
mysqlbinlog --no-defaults mysql-bin.000004 | mysql -u root -p
-
可以使用透過mysqlbinlog 工具去查詢event time 和positions
mysqlbinlog --no-defaults mysql-bin.000004 > tmpfile
vi tmpfile
-
可以使用用vi編輯後的檔案進行events的回放
mysql -uroot -p < tmpfile
當你的環境中使用的透過GTIDs進行主從複製時,可以使用--skip-gtids 將檔案轉換到檔案中,比如:
mysqlbinlog --skip-gtids binlog.000001 > /tmp/dump.sql
mysqlbinlog --skip-gtids binlog.000002 >> /tmp/dump.sql
mysql -uroot -p -e "source /tmp/dump.sql"
7.5.1 透過Event Times 進行時間點的恢復
透過指定start 和 end 時間點進行恢復, 在使用mysqlbinlog時指定--start-datetime 和--stop-datetime。比如在10:00 a.m.on April 20,2005這個時間點刪除了一張大表。為了恢復此表資料,可以使用下面的命令:
mysqlbinlog --stop-datetime="2005-04-20 9:59:59" bin.123456 | mysql -uroot -p
此命令會恢復--stop-datetime指定時間點的所有資料,如果想繼續恢復10:00 a.m以後的資料可以使用下面的命令:
mysqlbinlog --start-datetime="2005-04-20 10:01:00" bin.123456 | mysql -uroot -p
7.5.2 透過 Events Positions 進行時間點的恢復
除了透過指定時間進行時間點的恢復,也可以透過指定--start-position和--stop-position來進行時間點的恢復。
a. 恢復到368312 位點
mysqlbinlog --stop-position=368312 bin.123456 | mysql -uroot -p
b. 從368315位點開始恢復
mysqlbinlog --start-position=368315 bin.123456 | mysql -uroot -p
可以閱讀下面連結內容進行mysqlbinlog 工具的學習:
https://www.cnblogs.com/Presley-lpc/p/9619571.html
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/21374452/viewspace-2728039/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mongodb 基於oplog的時間點恢復MongoDB
- DM8 基於時間點的恢復
- mongodb使用備份後的oplog做時間點恢復MongoDB
- mongodb異機做時間點恢復(基於時間範圍查詢匯出oplog)MongoDB
- 備份與恢復:Polardb資料庫資料基於時間點恢復資料庫
- ORACLE資料庫基於時間點的不完全恢復Oracle資料庫
- PostgreSQL 時間點恢復SQL
- 基於percona xtrabackup之innobackupex實現基於時間點資料庫恢復資料庫
- 基於Redo Log和Undo Log的MySQL崩潰恢復流程MySql
- 2.MongoDB 4.2副本集環境基於時間點的恢復MongoDB
- MySQL binlog基於時間點恢復資料失敗是什麼鬼?MySql
- 1.MongoDB 2.7主從複製(master –> slave)環境基於時間點的恢復MongoDBAST
- 使用NineData構建任意時間點(PITR)資料恢復能力資料恢復
- 堅如磐石:TiDB 基於時間點的恢復(PiTR)特性最佳化之路丨6.5 新特性解析TiDB
- PostgreSQL啟動恢復期間,恢復到的時間線的確定SQL
- 基於 Vuex 的時移操作(撤回/恢復)實現Vue
- DM7使用DMRMAN恢復資料庫到指定時間點/LSN資料庫
- 《PostgreSQL 指南:內幕探索》之基礎備份與時間點恢復(上)SQL
- win10恢復到上一個時間節點的方法Win10
- MySQL Binary LogMySql
- oracle基於SCN增量恢復Oracle
- MySQL備份與恢復——基於Xtrabackup物理備份恢復MySql
- win10恢復到上一個時間節點的檔案還在嗎Win10
- PostgreSQL12中實現增量備份與任意時間點恢復SQL
- 基於GTID恢復誤篡改資料
- Prometheus 告警恢復時,怎麼獲取恢復時的值?Prometheus
- MySQL備份與恢復——基於MyDumper/MyLoader 邏輯備份恢復MySql
- mysql關於二進位制日誌binary log的總結MySql
- 【DATAGUARD】Oracle 通過Dataguard指定恢復時間用於找回丟失資料Oracle
- 教你一招,告警恢復時如何拿到恢復時的值?
- MySQL備份與恢復——基於OUTFILE /LOAD DATA 邏輯備份恢復MySql
- 通過事務日誌恢復SqlServer資料庫到一個特定的時間點SQLServer資料庫
- postgreSQL 恢復至故障點 精準恢復SQL
- 教你一招,告警恢復時如何拿到恢復時的值? 合
- 基於 Log 的通用增量 Checkpoint
- 大事務導致資料庫恢復時間長資料庫
- SQL SEVER 缺少LOG檔案資料庫恢復SQL資料庫
- 聊聊基於docker部署的mysql如何進行資料恢復DockerMySql資料恢復