mysqlbinlog命令詳解 Part 10 恢復MySQL
實驗環境
此次實驗的環境如下
-
MySQL 5.7.25
-
Redhat 6.10
-
binlog模式採用row模式
前面的一些章節我們對mysqldump常用命令進行了講解
這個專題的內容為mysqlbinlog命令的詳解
mysqlbinlog是MySQL中用來處理binlog的工具
上節的內容為新建一個備份策略
這節內容講如何使用mysqldump恢復MySQL
1. 還原策略
我們假設週五早上9點發生了故障導致無法開啟
我們現在需要將其恢復到最近的時間點
1.1 還原週日零點的備份
作業系統命令列
shell> mysql -h127.0.0.1 -usystem -P3306 -p < /tmp/backup_sunday_0_AM.sql
mysql命令列
shell> mysql -h127.0.0.1 -usystem -P3306 -p mysql>source /tmp/backup_sunday_0_AM.sql
1.2 還原週日零點直到週五零點的備份
我們假設這期間總共生成5個二進位制檔案
shell> mysqlbinlog mysql-bin.000001 mysql-bin.000002 mysql-bin.000003 mysql-bin.000004 mysql-bin.000005 | mysql -h127.0.0.1 -usystem -P3306 -p
注意,需要將所有需要的二進位制檔案寫在一起,不可分多次
如果在開始備份時沒有指定--flush-logs引數,則需要首先檢視備份時所處的位置
-- Position to start replication or point-in-time recovery from -- CHANGE MASTER TO MASTER_LOG_FILE='masterbin.000001,MASTER_LOG_POS=100;
之後針對該二進位制檔案進行基於位置點的恢復
mysqlbinlog --start-position=100 /path/to/log/master-bin.000001 | mysql -h127.0.0.1 -usystem -P3306 -p
1.3 恢復至最新狀態
如果損壞資料庫的二進位制檔案還存在,則可利用其進行恢復
假設週五零點到九點的二進位制檔案為mysql-bin.000006 mysql-bin.000007 則可以使用如下命令
shell> mysqlbinlog mysql-bin.000006 mysql-bin.000007 | mysql -h127.0.0.1 -usystem -P3306 -p
1.3.1 基於時間點恢復
這裡我們同樣可以恢復到早上8點
首先使用mysqlbinglog檢視早上8點在哪個二進位制檔案中
這裡假設在mysql-bin.000007 中
之後用如下語句恢復
mysqlbinlog --stop-datetime ="2019-04-16 08:00:00" /path/to/log/master-bin.000007 | mysql -h127.0.0.1 -usystem -P3306 -p
也可以指定起始時間
mysqlbinlog --start-datetime="2019-04-16 08:00:00" /path/to/log/master-bin.000007 | mysql -h127.0.0.1 -usystem -P3306 -p
1.3.2 基於事件位置恢復
我們同樣可以通過事件的位置來進行恢復
我們假設一個drop表的操作發生在master-bin.000007的位置100處
我們可以使用下面語句
mysqlbinlog --stop-position=100 /path/to/log/master-bin.000001 | mysql -h127.0.0.1 -usystem -P3306 -p
2. 參考連結
https://dev.mysql.com/doc/refman/5.7/en/backup-and-recovery.html
好了 今天的內容就說到這裡,下節再見
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28413242/viewspace-2650725/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mysqlbinlog命令詳解 Part 9 MySQL備份策略MySql
- mysqlbinlog命令詳解 Part 8 指定 Server IDMySqlServer
- mysqlbinlog命令詳解 Part 6 讀取遠端MySQL伺服器日誌MySql伺服器
- mysqlbinlog命令詳解 Part 11 其他的一些引數MySql
- mysqlbinlog工具基於日誌恢復詳細解釋MySql
- mysqlbinlog 恢復、備份MySql
- mysqlbinlog命令詳解 Part 5 通過位置和時間檢視日誌MySql
- mysqlbinlog命令詳解 Part 7 備份二進位制日誌檔案MySql
- mysql之 mysqldump 備份恢復詳解MySql
- mysqlbinlog命令恢復資料要注意的問題彙總MySql
- 使用 MYSQLBINLOG 來恢復資料MySql
- 刪庫不跑路-詳解MySQL資料恢復MySql資料恢復
- MySQL命令詳解MySql
- Oracle10g閃回恢復區詳解Oracle
- MySQL8.4備份恢復快速命令MySql
- Oracle 例項恢復詳解Oracle
- MySQL explain命令詳解MySqlAI
- mysql flush 命令詳解MySql
- 10. MySQL Galera Cluster全解析 Part 10 grastate.dat檔案詳解MySqlAST
- myloader還原恢復詳解
- MySQL show status 命令詳解MySql
- mysql show processlist命令詳解MySql
- 詳解:如何恢復MySQL資料庫下誤刪的資料MySql資料庫
- EMC 儲存資料恢復案例詳解【資料恢復方案】資料恢復
- Oracle 邏輯恢復工具IMPDP詳解Oracle
- 詳解叢集級備份恢復:物理細粒度備份恢復
- Mysql通過ibd檔案恢復資料的步驟詳解MySql
- MySQL EXPLAIN 命令詳解學習MySqlAI
- MySQL中的binlog相關命令和恢復技巧MySql
- 【Mysql】完全恢復與不完全恢復MySql
- Xtrabackup之innobackupex備份恢復詳解薦
- RMAN例項備份與恢復詳解
- 如何恢復Mysql資料庫的詳細介紹MySql資料庫
- fbackup命令備份恢復命令
- Mysql備份恢復MySql
- MySQL恢復過程MySql
- mysql恢復drop表MySql
- Mysql密碼恢復MySql密碼