Mysql的日志文件種類比較多,有的日志文件記錄了mysql的服務(wù)狀態(tài)以及mysql在工作中產(chǎn)生的系統(tǒng)信息,我們利用這些信息可以更方便的
Mysql的日志文件種類比較多,有的日志文件記錄了mysql的服務(wù)狀態(tài)以及mysql在工作中產(chǎn)生的系統(tǒng)信息,我們利用這些信息可以更方便的對(duì)mysql服務(wù)進(jìn)行運(yùn)維,但是有的日志文件如果我們進(jìn)行了不正確的配置將對(duì)mysql的服務(wù)器主機(jī)造成不良的后果,下面我們就來看看mysql有哪些日志文件以及他們的各自的作用。
Mysql相關(guān)的日志文件,主要有兩大類:事務(wù)日志和事件日志:
【事務(wù)日志】
事務(wù)日志:詳細(xì)的記錄了在什么時(shí)間發(fā)生了什么時(shí)候,在哪個(gè)時(shí)間對(duì)哪些數(shù)據(jù)進(jìn)行了改變,能后實(shí)現(xiàn)事件的重放,一般只記錄對(duì)數(shù)據(jù)進(jìn)行改變的操作,對(duì)于讀操作一般不進(jìn)行記錄
事物日志為數(shù)據(jù)庫服務(wù)器實(shí)現(xiàn)以下功能:
1、將隨機(jī)IO轉(zhuǎn)換為順序IO,大大的提高了數(shù)據(jù)庫的性能,存儲(chǔ)的數(shù)據(jù)可能存在在磁盤的不同位置,降低了數(shù)據(jù)的讀取和操作性能。轉(zhuǎn)換為順序IO的原理為,先將數(shù)據(jù)存放在日志文件中,,然后由RDBSM的后臺(tái)將日志中的數(shù)據(jù)存放到磁盤上,這樣就保證了存儲(chǔ)的數(shù)據(jù)是連續(xù)的。
2、為事件重放提供基礎(chǔ),事務(wù)日志詳細(xì)的記錄了時(shí)間發(fā)生的時(shí)間以及操作的數(shù)據(jù)對(duì)象,事務(wù)進(jìn)程可以根據(jù)這些信息進(jìn)行時(shí)間重放
默認(rèn)的事務(wù)日志文件有兩個(gè),位于數(shù)據(jù)目錄下以ibdata+number結(jié)尾的數(shù)字,我們可以對(duì)事務(wù)日志的位置、文件大小、增長(zhǎng)方式進(jìn)行定義,定義的方法如下:
這里以使用支持事務(wù)的Innodb存儲(chǔ)引擎為例
在服務(wù)器的主配置文件/etc/my.cnf中:
innodb_data_home_dir = /innodata 定義存放事務(wù)日志的目錄
innodb_data_file_path = ibdata1:1024M 定義日志的名字和大小
innodb_data_file_path = ibdata2:50M:autoextend 定義日志大小的增長(zhǎng)方式
【事件日志】
事件日志:記錄了服務(wù)器的歷史事件,即在生么時(shí)間發(fā)生了什么事,其中根據(jù)記錄內(nèi)容的不同可以將事件日志分為一下幾種:
1、 the error log錯(cuò)誤日志:在對(duì)應(yīng)的數(shù)據(jù)目錄中,以主機(jī)名+.err命名的文件。
錯(cuò)誤日志記錄的信息類型:
1、記錄了服務(wù)器運(yùn)行中產(chǎn)生的錯(cuò)誤信息
2、記錄了服務(wù)在啟動(dòng)和停止是所產(chǎn)生的信息
3、在從服務(wù)器上如果啟動(dòng)了復(fù)制進(jìn)程的時(shí)候,復(fù)制進(jìn)程的信息也會(huì)被記錄
啟用錯(cuò)誤日志:默認(rèn)情況下,系統(tǒng)已近將其自動(dòng)啟動(dòng)
在主配置文件中:
log-error= 指定錯(cuò)誤日志的位置,這個(gè)位置myaql用戶必須有寫權(quán)限,
2、the binary log二進(jìn)制日志:默認(rèn)開啟。精確的記錄了用戶對(duì)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行操作的命令和操作的數(shù)據(jù)對(duì)象。
二進(jìn)制日志文件的作用:
1、提供了增量備份的功能
2、提供了數(shù)據(jù)基于時(shí)間點(diǎn)的恢復(fù),這個(gè)恢復(fù)的時(shí)間點(diǎn)可以由用戶控制
3、為mysql的復(fù)制架構(gòu)提供基礎(chǔ),將這主服務(wù)器的二進(jìn)制日志復(fù)制到從服務(wù)器上并執(zhí)行同樣的操作,就可將數(shù)據(jù)進(jìn)行同步
啟用:默認(rèn)在數(shù)據(jù)目錄下以mysql-bin.number命名的文件
log-bin= 指定二進(jìn)制日志文件的名字
log-bin-index= 定義二進(jìn)制日志文件的名字的索引文件的位置,其用來保存可用的二進(jìn)制日志文件的名字
(注:二進(jìn)制日志文件的刪除和一般文件的刪除是不同的,我們可以采用以下的方法
PURAGE BINARYLOGS BEFORE ‘mysql-bin.00001’清除某個(gè)二進(jìn)制日志文件之前的二進(jìn)制日志文件
PURAGE BINARYLOGS BEFORE ‘2011-3-5 23:00:00'清除某個(gè)時(shí)間點(diǎn)之前的所有二進(jìn)制日志的記錄
3、the general query log查詢?nèi)罩荆簩?duì)除了慢查日志中記錄的查詢信息都將記錄下來,這將對(duì)服務(wù)器主機(jī)產(chǎn)生大量的壓力,所以對(duì)于繁忙的服務(wù)器應(yīng)該關(guān)閉這個(gè)日志
啟用和關(guān)閉的方法:
在主配置文件中:
general_log=[ON/OFF]
log_output=指定存放查詢?nèi)罩镜奈恢?,可以放在文件中,也可以放在?shù)據(jù)庫的表中,放在表中比放在文件中更容易查看
4、the slow query log慢查日志:默認(rèn)為關(guān)閉狀態(tài),記錄下來查詢時(shí)間超過設(shè)定時(shí)長(zhǎng)的查詢,這些查詢?nèi)罩緦⒈宦槿罩居涗浵聛?BR> 在主配置文件中配置:
通過long_query_time=num 定義默認(rèn)的時(shí)長(zhǎng),默認(rèn)時(shí)長(zhǎng)為10秒
在配置文件中啟用:
slow_query_log=ON
slow_query_log_file= 指定慢查日志的位置及名字
在mysql中啟用的方法:
mysql>SET GLOBAL slow_query_log=ON
5、the relay log中繼日志,主要是在mysql服務(wù)器的中從架構(gòu)中的從服務(wù)器上用到的,當(dāng)從服務(wù)器想要和主服務(wù)器進(jìn)行數(shù)據(jù)的同步時(shí),從服務(wù)器將主服務(wù)器的二進(jìn)制日志文件拷貝到己的主機(jī)上放在中繼日志中,然后調(diào)用SQL線程按照拷中繼日志文件中的二進(jìn)制日志文件執(zhí)行以便就可達(dá)到數(shù)據(jù)的同步。
開啟的方法:(只在從服務(wù)器上開啟)
配置mysql的主配置文件:
relay-log= 指定中繼日志的位置和名字
relay-log-index= 指定中繼日志的名字的索引文件的位置和名字
6、the ratationg logs 滾動(dòng)日志,只要是針對(duì)二進(jìn)制日志進(jìn)行滾動(dòng)的,對(duì)某個(gè)類型的日志文件滾動(dòng)一次就生成一個(gè)新的相對(duì)應(yīng)的日志文件,通過這種方法保證日志文件的特定大小,從而保證服務(wù)器在對(duì)日志文件查詢時(shí)有較高的響應(yīng)能力
滾動(dòng)二進(jìn)制日志的命令:FLUSH LOGS
事務(wù)日志和二進(jìn)制日志文件的區(qū)別:
兩者都能夠?qū)崿F(xiàn)對(duì)數(shù)據(jù)操作的還原,但是前者的還原操作都是有系統(tǒng)自動(dòng)完成的,不需要也不允許人為進(jìn)行干預(yù),而后者的恢復(fù)是完全依靠人為進(jìn)行的。
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com