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');
未完,待繼續