binlog 數據恢復演練

1、恢復介紹

我們恢復數據是通過mysqlbinlog工具來恢復數據,MySQL的二進制日誌binlog可以說是MySQL最重要的日誌,它記錄了所有的DDL和DML語句(除了數據查詢語句select),以事件形式記錄,還包含語句所執行的消耗的時間

DDL
   - Data Definition Language 數據庫定義語言 
主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定義或改變表(TABLE)的結構,數據類型,表之間的鏈接和約束等初始化工作上,他們大多在建立表時使用。

DML
   - Data Manipulation Language 數據操縱語言
主要的命令是SELECT、UPDATE、INSERT、DELETE,就象它的名字一樣,這4條命令是用來對數據庫裏的數據進行操作的語言

mysqlbinlog常見的選項有以下幾個

--start-datetime:從二進制日誌中讀取指定等於時間戳或者晚於本地服務器的時間
--stop-datetime:從二進制日誌中讀取指定小於時間戳或者等於本地服務器的時間 取值和上述一樣
--start-position:從二進制日誌中讀取指定position 事件位置作爲開始。
--stop-position:從二進制日誌中讀取指定position 事件位置作爲事件截至

binlog日誌包括兩類文件
1)二進制日誌索引文件(文件名後綴爲.index)用於記錄所有的二進制文件
2)二進制日誌文件(文件名後綴爲.00000*)記錄數據庫所有的DDL和DML(除了數據查詢語句select)語句事件。

二、常用的binlog日誌操作命令

1、查看所有binlog日誌列表

show master logs;

2、查看master狀態,即最後(最新)一個binlog日誌的編號名稱,及其最後一個操作事件pos結束點(Position)值

show master status;

3、flush刷新log日誌,自此刻開始產生一個新編號的binlog日誌文件

 flush logs;

4、重置(清空)所有binlog日誌

reset master;

三、利用binlog日誌恢復mysql數據

1、新建數據庫

CREATE TABLE IF NOT EXISTS `user` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(16) NOT NULL,
`sex` enum('m','w') NOT NULL DEFAULT 'm',
`age` tinyint(3) unsigned NOT NULL,
`classid` char(6) DEFAULT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

插入數據 

insert into user(`name`,`sex`,`age`,`classid`) values('wangshibo','m',27,'cls1'),('guohuihui','w',27,'cls2');

未完,待繼續 

 

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