真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

MySQL日志管理詳解

大綱

為蒲縣等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及蒲縣網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計、蒲縣網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!

一、日志分類

二、日志詳解

注:MySQL版本,Mysql-5.5.32(不同版本的mysql變量有所不同)

一、日志分類

·      錯誤日志

·      查詢?nèi)罩?/p>

·      慢查詢?nèi)罩?/p>

·      二進(jìn)制日志

·      中繼日志

·      事務(wù)日志

·      滾動日志

二、日志詳解

1.錯誤日志

說明:在對應(yīng)的數(shù)據(jù)目錄中,以主機(jī)名+.err命名的文件,錯誤日志記錄的信息類型:

·      記錄了服務(wù)器運行中產(chǎn)生的錯誤信息

·      記錄了服務(wù)在啟動和停止是所產(chǎn)生的信息

·      在從服務(wù)器上如果啟動了復(fù)制進(jìn)程的時候,復(fù)制進(jìn)程的信息也會被記錄

·      記錄event錯誤日志

配置mysql的主配置文件:

1

2

log_error = /mydata/data/mysql.test.com.err #指定錯誤日志的位置,默認(rèn)是在數(shù)據(jù)目錄下,這個位置mysql用戶必須有寫權(quán)限

log_warning = {0|1} #默認(rèn)開啟,服務(wù)器運行中的警告日志也會記錄在錯誤日志中

2.查詢?nèi)罩?/p>

說明:對除了慢查日志中記錄的查詢信息都將記錄下來,這將對服務(wù)器主機(jī)產(chǎn)生大量的壓力,所以對于繁忙的服務(wù)器應(yīng)該關(guān)閉這個日志

與查詢?nèi)罩鞠嚓P(guān)的變量,

1

2

3

4

log = {ON|OFF} #是否啟用查詢?nèi)罩?,該指令在mysq5.6中已廢棄

general_log = {ON|OFF} #啟動或關(guān)閉查詢?nèi)罩荆J(rèn)是關(guān)閉的

general_log_file = /mydata/data/mysql.log #指定查詢?nèi)罩镜奈恢?,默認(rèn)在數(shù)據(jù)目錄下

log_output = {TABLE|FILE|NONE} #指定存放查詢?nèi)罩镜奈恢?,可以放在文件中,也可以放在?shù)據(jù)庫的表中,放在表中比放在文件中更容易查看

3.慢查詢?nèi)罩?/p>

說明:默認(rèn)為關(guān)閉狀態(tài),記錄下來查詢時間超過設(shè)定時長的查詢,這些查詢?nèi)罩緦⒈宦槿罩居涗浵聛?/p>

配置mysql的主配置文件:

1

2

3

4

5

slow_query_log  = {ON | OFF} #是否開啟慢慢查詢?nèi)罩?,默認(rèn)是關(guān)閉的 

slow_query_log_file = /mydata/data/mysql-slow.log #慢查詢?nèi)罩镜拇娣盼恢?,默認(rèn)在數(shù)據(jù)目錄下

log_query_time = 10 #定義默認(rèn)的時長,默認(rèn)時長為10秒

log_query_not_using_indexes = {ON|OFF} #設(shè)定是否將沒有使用索引的查詢操作記錄到慢查詢?nèi)罩?nbsp;

log_output = {TABLE|FILE|NONE} #定義一般查詢?nèi)罩竞吐樵內(nèi)罩镜谋4娣绞?,可以是TABLE、FILE、NONE,也可以是TABLE及FILE的組合(用逗號隔開),默認(rèn)為FILE。如果組合中出現(xiàn)了NONE,那么其它設(shè)定都將失效,同時,無論是否啟用日志功能,也不會記錄任何相關(guān)的日志信息

4.二進(jìn)制日志

說明:默認(rèn)開啟,精確的記錄了用戶對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行操作的命令和操作的數(shù)據(jù)對象。   
二進(jìn)制日志文件的作用:

·      提供了增量備份的功能

·      提供了數(shù)據(jù)基于時間點的恢復(fù),這個恢復(fù)的時間點可以由用戶控制

·      為mysql的復(fù)制架構(gòu)提供基礎(chǔ),將這主服務(wù)器的二進(jìn)制日志復(fù)制到從服務(wù)器上并執(zhí)行同樣的操作,就可將數(shù)據(jù)進(jìn)行同步

二進(jìn)制日志格式:

·      基于語句 statement

·      基于行 row

·      混合方式 mixed

二進(jìn)制日志事件:

·      position 基于位置

·      datetime 基于時間

二進(jìn)制日志的查看與刪除方式:

1

2

3

4

5

mysql>show master status;查看當(dāng)前正在使用的二進(jìn)制日志 

mysql>show binlog events in 'mysql-bin.000001';查看二進(jìn)制日志記錄的事件[from position]  

mysql>flush logs;二進(jìn)制日志滾動  

mysql>show binary logs;查看所有二進(jìn)制日志  

mysql>purge binary logs to 'mysql-bin.000003';刪除二進(jìn)制日志

文件系統(tǒng)中查看二進(jìn)制日志的命令:

1

2

3

4

5

6

mysqlbinlog

相關(guān)選項, 

--start-position #開始位置  

--stop-position #結(jié)束位置  

--start-datetime 'yyyy-mm-dd hh:mm:ss'; #開始時間  

--stop-datetime ''; #結(jié)束時間

配置mysql的主配置文件:  

1

2

3

4

5

6

7

8

9

sql_log_bin = {ON|OFF} #用于控制二進(jìn)制日志信息是否記錄進(jìn)日志文件。默認(rèn)為ON,表示啟用記錄功能。用戶可以在會話級別修改此變量的值,但其必須具有SUPER權(quán)限

binlog_cache_size = 32768 #默認(rèn)值32768 Binlog Cache用于在打開了二進(jìn)制日志(binlog)記錄功能的環(huán)境,是 MySQL用來提高binlog的記錄效率而設(shè)計的一個用于短時間內(nèi)臨時緩存binlog數(shù)據(jù)的內(nèi)存區(qū)域。一般來說,如果我們的數(shù)據(jù)庫中沒有什么大事務(wù),寫入也不是特別頻繁,2MB~4MB是一個合適的選擇。但是如果我們的數(shù)據(jù)庫大事務(wù)較多,寫入量比較大,可與適當(dāng)調(diào)高binlog_cache_size。同時,我們可以通過binlog_cache_use以及 binlog_cache_disk_use來分析設(shè)置的binlog_cache_size是否足夠,是否有大量的binlog_cache由于內(nèi)存大小不夠而使用臨時文件(binlog_cache_disk_use)來緩存了 

binlog_stmt_cache_size = 32768 #當(dāng)非事務(wù)語句使用二進(jìn)制日志緩存,但是超出binlog_stmt_cache_size時,使用一個臨時文件來存放這些語句  

log_bin = mysql-bin #指定binlog的位置,默認(rèn)在數(shù)據(jù)目錄下

binlog-format = {ROW|STATEMENT|MIXED} #指定二進(jìn)制日志的類型,默認(rèn)為MIXED。如果設(shè)定了二進(jìn)制日志的格式,卻沒有啟用二進(jìn)制日志,則MySQL啟動時會產(chǎn)生警告日志信息并記錄于錯誤日志中。 

sync_binlog = 10 #設(shè)定多久同步一次二進(jìn)制日志至磁盤文件中,0表示不同步,任何正數(shù)值都表示對二進(jìn)制每多少次寫操作之后同步一次。當(dāng)autocommit的值為1時,每條語句的執(zhí)行都會引起二進(jìn)制日志同步,否則,每個事務(wù)的提交會引起二進(jìn)制日志同步  

max_binlog_cache_size = {4096 .. 18446744073709547520} #二進(jìn)定日志緩存空間大小,5.5.9及以后的版本僅應(yīng)用于事務(wù)緩存,其上限由max_binlog_stmt_cache_size決定。  

max_binlog_stmt_cache_size = {4096 .. 18446744073709547520} #二進(jìn)定日志緩存空間大小,5.5.9及以后的版本僅應(yīng)用于事務(wù)緩存  

expire_log_days = {0..99} #設(shè)定二進(jìn)制日志的過期天數(shù),超出此天數(shù)的二進(jìn)制日志文件將被自動刪除。默認(rèn)為0,表示不啟用過期自動刪除功能。如果啟用此功能,自動刪除工作通常發(fā)生在MySQL啟動時或FLUSH日志時

注:一般建議將binlog日志與數(shù)據(jù)文件分開存放,不但可以提高mysql性能,還可以增加安全性!

5.中繼日志

說明:主要是在mysql服務(wù)器的中從架構(gòu)中的從服務(wù)器上用到的,當(dāng)從服務(wù)器想要和主服務(wù)器進(jìn)行數(shù)據(jù)的同步時,從服務(wù)器將主服務(wù)器的二進(jìn)制日志文件拷貝到己的主機(jī)上放在中繼日志中,然后調(diào)用SQL線程按照拷中繼日志文件中的二進(jìn)制日志文件執(zhí)行以便就可達(dá)到數(shù)據(jù)的同步

開啟的方法:(只在從服務(wù)器上開啟)   
配置mysql的主配置文件:    

1

2

3

4

5

6

relay-log = file_name #指定中繼日志的位置和名字,默認(rèn)為host_name-relay-bin。也可以使用絕對路徑,以指定非數(shù)據(jù)目錄來存儲中繼日志  

relay-log-index = file_name #指定中繼日志的名字的索引文件的位置和名字,默認(rèn)為數(shù)據(jù)目錄中的host_name-relay-bin.index

relay-log-info-file = file_name #設(shè)定中繼服務(wù)用于記錄中繼信息的文件,默認(rèn)為數(shù)據(jù)目錄中的relay-log.info

relay_log_purge = {ON|OFF} #設(shè)定對不再需要的中繼日志是否自動進(jìn)行清理。默認(rèn)值為ON

relay_log_space_limit = 0 #設(shè)定用于存儲所有中繼日志文件的可用空間大小。默認(rèn)為0,表示不限定。最大值取決于系統(tǒng)平臺位數(shù)

max_relay_log_size = {4096..1073741824} #設(shè)定從服務(wù)器上中繼日志的體積上限,到達(dá)此限度時其會自動進(jìn)行中繼日志滾動。此參數(shù)值為0時,mysqld將使用max_binlog_size參數(shù)同時為二進(jìn)制日志和中繼日志設(shè)定日志文件體積上限

6.事務(wù)日志

說明:詳細(xì)的記錄了在什么時間發(fā)生了什么時候,在哪個時間對哪些數(shù)據(jù)進(jìn)行了改變,能后實現(xiàn)事件的重放,一般只記錄對數(shù)據(jù)進(jìn)行改變的操作,對于讀操作一般不進(jìn)行記錄。

事物日志為數(shù)據(jù)庫服務(wù)器實現(xiàn)以下功能:   
(1).將隨機(jī)IO轉(zhuǎn)換為順序IO,大大的提高了數(shù)據(jù)庫的性能,存儲的數(shù)據(jù)可能存在在磁盤的不同位置,降低了數(shù)據(jù)的讀取和操作性能。轉(zhuǎn)換為順序IO的原理為,先將數(shù)據(jù)存放在日志文件中,然后由RDBSM的后臺將日志中的數(shù)據(jù)存放到磁盤上,這樣就保證了存儲的數(shù)據(jù)是連續(xù)的。    
(2).為事件重放提供基礎(chǔ),事務(wù)日志詳細(xì)的記錄了時間發(fā)生的時間以及操作的數(shù)據(jù)對象,事務(wù)進(jìn)程可以根據(jù)這些信息進(jìn)行時間重放。    
默認(rèn)的事務(wù)日志文件有兩個,位于數(shù)據(jù)目錄下以ibdata+number結(jié)尾的數(shù)字,我們可以對事務(wù)日志的位置、文件大小、增長方式進(jìn)行定義,定義的方法如下:    
這里以使用支持事務(wù)的Innodb存儲引擎為例,

配置mysql的主配置文件:

1

2

3

4

5

6

7

innodb_data_home_dir = /mydata/data  #InnoDB所有共享表空間數(shù)據(jù)文件的目錄路徑,默認(rèn)在數(shù)據(jù)目錄下

innodb_data_file_path = ibdata1:1024M  #指定InnoDB的各個數(shù)據(jù)文件及其大小,文件多于一個時彼此間用分號隔開 

innodb_data_file_path = ibdata2:50M:autoextend  #定義數(shù)據(jù)大小的增長方式

innodb_log_group_home_dir = /mydata/data #設(shè)定InnoDB重要日志文件的存儲目錄。在缺省使用InnoDB日志相關(guān)的所有變量時,其默認(rèn)會在數(shù)據(jù)目錄中創(chuàng)建兩個大小為5MB的名為ib_logfile0和ib_logfile1的日志文件

innodb_log_files_in_group = {2 .. 100} #設(shè)定日志組中日志文件的個數(shù)。InnoDB以循環(huán)的方式使用這些日志文件。默認(rèn)值為2

innodb_log_file_size = {108576 .. 4294967295} #設(shè)定日志組中每個日志文件的大小,單位是字節(jié),默認(rèn)值是5MB。較為明智的取值范圍是從1MB到緩存池體積的1/n,其中n表示日志組中日志文件的個數(shù)。日志文件越大,在緩存池中需要執(zhí)行的檢查點刷寫操作就越少,這意味著所需的I/O操作也就越少,然而這也會導(dǎo)致較慢的故障恢復(fù)速度

innodb_log_buffer_size = {262144 .. 4294967295} #設(shè)定InnoDB用于輔助完成日志文件寫操作的日志緩沖區(qū)大小,單位是字節(jié),默認(rèn)為8MB。較大的事務(wù)可以借助于更大的日志緩沖區(qū)來避免在事務(wù)完成之前將日志緩沖區(qū)的數(shù)據(jù)寫入日志文件,以減少I/O操作進(jìn)而提升系統(tǒng)性能。因此,在有著較大事務(wù)的應(yīng)用場景中,建議為此變量設(shè)定一個更大的值

7.滾動日志

說明:只要是針對二進(jìn)制日志進(jìn)行滾動的,對某個類型的日志文件滾動一次就生成一個新的相對應(yīng)的日志文件,通過這種方法保證日志文件的特定大小,從而保證服務(wù)器在對日志文件查詢時有較高的響應(yīng)能力。

滾動二進(jìn)制日志的命令:

1

mysql> FLUSH LOGS;

三、總結(jié)

通過上面的學(xué)習(xí),大家應(yīng)該對mysql日志管理有所了解,^_^……!

 


新聞標(biāo)題:MySQL日志管理詳解
本文來源:http://weahome.cn/article/iijses.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部