眾所周知,binlog日志對(duì)于mysql數(shù)據(jù)庫(kù)來(lái)說(shuō)是十分重要的。在數(shù)據(jù)丟失的緊急情況下,我們往往會(huì)想到用binlog日志功能進(jìn)行數(shù)據(jù)恢復(fù)(定時(shí)全備份+binlog日志恢復(fù)增量數(shù)據(jù)部分),化險(xiǎn)為夷!
廢話(huà)不多說(shuō),下面是梳理的binlog日志操作解說(shuō):
一、初步了解binlog
MySQL的二進(jìn)制日志binlog可以說(shuō)是MySQL最重要的日志,它記錄了所有的DDL和DML語(yǔ)句(除了數(shù)據(jù)查詢(xún)語(yǔ)句select),以事件形式記錄,還包含語(yǔ)句所執(zhí)行的消耗的時(shí)間,MySQL的二進(jìn)制日志是事務(wù)安全型的。
----------------------------------------------------------------------------------------------------------------------------------------------
DDL
----Data Definition Language 數(shù)據(jù)庫(kù)定義語(yǔ)言
主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定義或改變表(TABLE)的結(jié)構(gòu),數(shù)據(jù)類(lèi)型,表之間的鏈接和約束等初始化工作上,他們大多在建立表時(shí)使用。
DML
----Data Manipulation Language 數(shù)據(jù)操縱語(yǔ)言
主要的命令是SELECT、UPDATE、INSERT、DELETE,就象它的名字一樣,這4條命令是用來(lái)對(duì)數(shù)據(jù)庫(kù)里的數(shù)據(jù)進(jìn)行操作的語(yǔ)言
----------------------------------------------------------------------------------------------------------------------------------------------
mysqlbinlog常見(jiàn)的選項(xiàng)有以下幾個(gè):
--start-datetime:從二進(jìn)制日志中讀取指定等于時(shí)間戳或者晚于本地計(jì)算機(jī)的時(shí)間
--stop-datetime:從二進(jìn)制日志中讀取指定小于時(shí)間戳或者等于本地計(jì)算機(jī)的時(shí)間 取值和上述一樣
--start-position:從二進(jìn)制日志中讀取指定position 事件位置作為開(kāi)始。
--stop-position:從二進(jìn)制日志中讀取指定position 事件位置作為事件截至
*********************************************************************
一般來(lái)說(shuō)開(kāi)啟binlog日志大概會(huì)有1%的性能損耗。
binlog日志有兩個(gè)最重要的使用場(chǎng)景:
1)MySQL主從復(fù)制:MySQL Replication在Master端開(kāi)啟binlog,Master把它的二進(jìn)制日志傳遞給slaves來(lái)達(dá)到
master-slave數(shù)據(jù)一致的目的。
2)自然就是數(shù)據(jù)恢復(fù)了,通過(guò)使用mysqlbinlog工具來(lái)使恢復(fù)數(shù)據(jù)。
binlog日志包括兩類(lèi)文件:
1)二進(jìn)制日志索引文件(文件名后綴為.index)用于記錄所有的二進(jìn)制文件
2)二進(jìn)制日志文件(文件名后綴為.00000*)記錄數(shù)據(jù)庫(kù)所有的DDL和DML(除了數(shù)據(jù)查詢(xún)語(yǔ)句select)語(yǔ)句事件。
二、開(kāi)啟binlog日志:
1)編輯打開(kāi)mysql配置文件/etc/mys.cnf
[root@vm-002 ~]# vim /etc/my.cnf
在[mysqld] 區(qū)塊添加
log-bin=mysql-bin 確認(rèn)是打開(kāi)狀態(tài)(mysql-bin 是日志的基本名或前綴名);
2)重啟mysqld服務(wù)使配置生效
[root@vm-002 ~]# /etc/init.d/mysqld stop
新聞熱點(diǎn)
疑難解答
圖片精選