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