天天操夜夜爱_天天插天天操天天干_黄色av地址_成人黄色在线观看_国内久久久久久_欧美国产日韩一区二区三区_国产精品久久久久久久久晋中

如何查詢電腦系統(tǒng)日志文件

發(fā)布時(shí)間: 2023-04-16 04:03 閱讀: 文章來(lái)源:轉(zhuǎn)載

前言

在MySQL服務(wù)器運(yùn)行過(guò)程中,除了會(huì)產(chǎn)生各種數(shù)據(jù)文件外,還會(huì)記錄各種日志文件,這些日志文件不僅僅記錄MySQL的數(shù)據(jù)庫(kù)的運(yùn)行情況、用戶操作、錯(cuò)誤信息等,還和MySQL服務(wù)器的數(shù)據(jù)息息相關(guān)。

MySQL日志文件

MySQL主要有以下幾類日志文件:重做日志(redo log)、回滾日志(undo log)、二進(jìn)制日志(binlog)、錯(cuò)誤日志(errorlog)、慢查詢?nèi)罩荆╯low query log)、一般查詢?nèi)罩荆╣eneral log)、中繼日志(relay log)

Redo Log (重做日志)

redo log也叫做重做日志,是保證事務(wù)持久性的重要機(jī)制。用于崩潰恢復(fù),防止在發(fā)生故障的時(shí)間點(diǎn),尚有臟頁(yè)未寫入磁盤,在重啟mysql服務(wù)的時(shí)候,根據(jù)redo log進(jìn)行重做,從而達(dá)到事務(wù)的持久性這一特性。

redo log是在事務(wù)begin時(shí)就開(kāi)始記錄(并不是事務(wù)commit時(shí)才記錄,因?yàn)檎麄€(gè)事務(wù)做的操作可能很多,如果在commit的時(shí)候才寫redo log,此時(shí)一旦發(fā)生異常,redo log還沒(méi)寫,這就太晚了,無(wú)法確保事務(wù)的持久性)。

redo log 是物理日志,記錄的是“在某個(gè)數(shù)據(jù)頁(yè)上做了什么修改”。另外,redo log是循環(huán)寫入固定的文件,而且是順序?qū)懭氪疟P的。

在一個(gè)事務(wù)中,可能會(huì)發(fā)生多次的數(shù)據(jù)修改,對(duì)應(yīng)的就是多個(gè)數(shù)據(jù)頁(yè)多個(gè)偏移量位置的字段變更,也就是說(shuō)會(huì)產(chǎn)生多條redo log,而且因?yàn)樵谕粋€(gè)事物中,這些redo log,也是不可再分的,也就是說(shuō),一個(gè)組的redo log在持久化的時(shí)候,不能部分成功,部分失敗,否則的話,就會(huì)破壞事務(wù)的原子性。

另外為了提升性能redo log是按照塊組織在一起,然后寫入到磁盤中的,類似于數(shù)據(jù)的頁(yè),而且引入了redo log buffer,默認(rèn)的大小為16MB。buffer中分了很多的block,每個(gè)block的大小為512kb,每一個(gè)事務(wù)產(chǎn)生的所有redo log稱為一個(gè)group。

Undo Log (回滾日志)

數(shù)據(jù)庫(kù)事務(wù)開(kāi)始之前,會(huì)將要修改的記錄放到Undo日志里,當(dāng)事務(wù)回滾時(shí)或者數(shù)據(jù)庫(kù)崩潰時(shí),可以利用UndoLog撤銷未提交事務(wù)對(duì)數(shù)據(jù)庫(kù)產(chǎn)生的影響。

Undo log的作用:

  1. 事務(wù)回滾 - 原子性:當(dāng)事務(wù)回滾時(shí)或者數(shù)據(jù)庫(kù)崩潰時(shí),可以利用Undo Log來(lái)進(jìn)行數(shù)據(jù)回滾。
  2. 多個(gè)行版本控制(MVCC)- 隔離性:即在InnoDB存儲(chǔ)引擎中MVCC的實(shí)現(xiàn)是通過(guò)Undo來(lái)完成。當(dāng)用戶讀取一行記錄時(shí),若該記錄已經(jīng)被其他事務(wù)占用,當(dāng)前事務(wù)可以通過(guò)Undo讀取之前的行版本信息,以此實(shí)現(xiàn)非鎖定讀取。

Binary Log (二進(jìn)制日志)

binary 就是bin log,即二進(jìn)制日志文件,這個(gè)文件記錄了MySQL所有的DML操作。通過(guò)binlog日志我們可以做數(shù)據(jù)恢復(fù),增量備份,主主復(fù)制和主從復(fù)制等等。

  • binlog日志包括兩類文件:
  1. 二進(jìn)制日志索引文件(文件名后綴為.index)用于記錄所有的二進(jìn)制文件。
  2. 二進(jìn)制日志文件(文件名后綴為.00000*)記錄數(shù)據(jù)庫(kù)所有的DDL和DML(除了數(shù)據(jù)查詢語(yǔ)句select)語(yǔ)句事件。

binlog日志

  • 查看binlog日志是否開(kāi)啟:
mysql> show variables like '%log_bin%';+---------------------------------+----------------------------------+| Variable_name| Value|+---------------------------------+----------------------------------+| log_bin | ON|| log_bin_basename| /www/server/data/mysql-bin|| log_bin_index| /www/server/data/mysql-bin.index || log_bin_trust_function_creators | OFF|| log_bin_use_v1_row_events| OFF|| sql_log_bin | ON|+---------------------------------+----------------------------------+6 rows in set (0.00 sec)

啟用binlog,在 my.cnf 配置文件中加入 log-bin 配置,表示啟用binlog,如果沒(méi)有給定值,寫成 log-bin=,則默認(rèn)名稱為主機(jī)名。(注:名稱若帶有小數(shù)點(diǎn),則只取第一個(gè)小數(shù)點(diǎn)前的部分作為名稱)

[mysqld]## 我配置的文件名為mysql-binlog-bin=mysql-bin
  • 查看binlog日志master 狀態(tài):
mysql> show master status;+------------------+----------+--------------+------------------+-------------------+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |+------------------+----------+--------------+------------------+-------------------+| mysql-bin.000009 | 80774638 ||||+------------------+----------+--------------+------------------+-------------------+1 row in set (0.00 sec)

上面的查詢結(jié)果表示最后(最新)一個(gè)binlog日志的編號(hào)名稱(mysql-bin.000009),及其最后一個(gè)操作事件pos結(jié)束點(diǎn)(Position)值

  • 查看binlog日志列表
mysql> show master logs;+------------------+-----------+| Log_name | File_size |+------------------+-----------+| mysql-bin.000008 |60794094 || mysql-bin.000009 |80774638 |+------------------+-----------+2 rows in set (0.00 sec)

表示,當(dāng)前我的MySQL服務(wù)有兩個(gè)binlog文件mysql-bin.000008mysql-bin.000009

Error Log (錯(cuò)誤日志)

錯(cuò)誤日志記錄了MySQL 服務(wù)器運(yùn)行過(guò)程中所有較為嚴(yán)重的警告和錯(cuò)誤信息,以及MySQL服務(wù)器每次啟動(dòng)和關(guān)閉的詳細(xì)信息。

在默認(rèn)情況下,系統(tǒng)記錄錯(cuò)誤日志的功能是關(guān)閉的( 我所使用的 MySQL 5.6 是開(kāi)啟的 ),錯(cuò)誤信息被輸出到標(biāo)準(zhǔn)錯(cuò)誤輸出( Stderr )。

  • 查看錯(cuò)誤日志
mysql> show variables like "log_error";+---------------+-----------------------+| Variable_name | Value |+---------------+-----------------------+| log_error | ./VM-16-15-centos.err |+---------------+-----------------------+1 row in set (0.00 sec)

根據(jù)查詢結(jié)果可知,錯(cuò)誤日志保存在數(shù)據(jù)目錄下名為VM-16-15-centos.err的文件中。如果查詢結(jié)果為stderr,則表示輸出到屏幕,錯(cuò)誤的信息只會(huì)輸出到我們的終端屏幕,并不會(huì)記錄在日志中。

  • 開(kāi)啟錯(cuò)誤日志

在配置文件[mysqld]組添加如下一行配置:

# log_error記錄了錯(cuò)誤日志所在位置log_error = /www/server/data/VM-16-15-centos.err

Slow Query Log (慢查詢?nèi)罩?

慢查詢?nèi)罩臼怯涗洸樵儠r(shí)長(zhǎng)超過(guò)指定時(shí)間的日志,慢查詢?nèi)罩局饕脕?lái)記錄時(shí)間較長(zhǎng)的查詢語(yǔ)句,通過(guò)慢查詢?nèi)罩究梢哉页霾樵儠r(shí)間較長(zhǎng)的、執(zhí)行效率較低的語(yǔ)句,以便進(jìn)行優(yōu)化。

默認(rèn)情況下,慢查詢?nèi)罩竟δ苁顷P(guān)閉的。如果不是調(diào)優(yōu)需要,一般不建議啟動(dòng)該參數(shù),因?yàn)殚_(kāi)啟慢查詢?nèi)罩緯?huì)或多或少帶來(lái)一定的性能影響。

  • 查看慢查詢?nèi)罩?/strong>
mysql> show variables like "%slow_query%";+---------------------+---------------------------------+| Variable_name| Value|+---------------------+---------------------------------+| slow_query_log| ON|| slow_query_log_file | /www/server/data/mysql-slow.log |+---------------------+---------------------------------+2 rows in set (0.00 sec)

MySQL通過(guò)long_query_time參數(shù)來(lái)指定慢查詢時(shí)間,時(shí)間以秒為單位。如果查詢時(shí)間超過(guò)了這個(gè)時(shí)間值,這個(gè)查詢語(yǔ)句將被記錄到慢查詢?nèi)罩荆绻辉O(shè)置,默認(rèn)時(shí)間為 10 秒。

mysql> show variables like "%long_query_time%";+-----------------+----------+| Variable_name| Value|+-----------------+----------+| long_query_time | 3.000000 |+-----------------+----------+1 row in set (0.00 sec)
  • 開(kāi)啟和關(guān)閉慢查詢?nèi)罩?/strong>
#開(kāi)啟慢查詢?nèi)罩?0關(guān)閉 1開(kāi)啟SET GLOBAL slow_query_log=1;#修改慢日志記錄SQL的最低閾值時(shí)間,單位秒SET GLOBAL long_query_time=3;

General Log (一般查詢?nèi)罩?

一般查詢?nèi)罩緯?huì)記錄MySQL所有的SQL語(yǔ)句,不管是查詢語(yǔ)句,還是DML語(yǔ)句,還是DDL語(yǔ)句,還是DCL語(yǔ)句,這些語(yǔ)句統(tǒng)統(tǒng)都會(huì)被記錄在general log文件中。就連我們連接和斷開(kāi)MySQL數(shù)據(jù)庫(kù)的這些語(yǔ)句。

MySQL會(huì)把它收到的所有SQL語(yǔ)句按照接收的順序依次記錄在general log中。默認(rèn)情況下一般查詢?nèi)罩臼顷P(guān)閉的(OFF狀態(tài)),并且默認(rèn)保存在數(shù)據(jù)包目錄中。

  • 查看一般查詢?nèi)罩?/strong>
mysql> show variables like "%general%";+------------------+--------------------------------------+| Variable_name| Value|+------------------+--------------------------------------+| general_log| OFF|| general_log_file | /www/server/data/VM-16-15-centos.log |+------------------+--------------------------------------+2 rows in set (0.01 sec)

genral_log:用于控制是否開(kāi)啟general log。等于0表示關(guān)閉,等于1表示開(kāi)啟。默認(rèn)是0。

general_log_file:指定general log日志的保存路徑和文件名,如果不配置這個(gè)參數(shù)的話,默認(rèn)會(huì)以MySQL服務(wù)器的hostname作為general log日志的文件名稱,具體文件為:.log。日志的存放路徑,如果不指定,則默認(rèn)放在datadir參數(shù)所指定的目錄下,也可以在這個(gè)參數(shù)中指定具體的路徑+名稱

  • 開(kāi)啟一般查詢?nèi)罩?/strong>

通用日志有一個(gè)默認(rèn)的保存路徑,和我們的數(shù)據(jù)庫(kù)文件在同一個(gè)目錄下,我們只需要開(kāi)啟即可。

mysql> set @@global.general_log = 1;Query OK, 0 rows affected (0.03 sec)

然后我們?cè)诓榭匆话悴樵內(nèi)罩镜臓顟B(tài),就會(huì)發(fā)現(xiàn)已經(jīng)是ON。

Relay Log (中繼日志)

一般情況下它在MySQL主從同步讀寫分離集群的從節(jié)點(diǎn)才開(kāi)啟。主節(jié)點(diǎn)一般不需要這個(gè)日志。

MySQL主從同步

如上圖,master主節(jié)點(diǎn)的binlog傳到slave從節(jié)點(diǎn)后,被寫到relay log里,它是一個(gè)臨時(shí)的日志文件,用于存儲(chǔ)從master節(jié)點(diǎn)同步過(guò)來(lái)的binlog日志內(nèi)容,它里面的內(nèi)容和master節(jié)點(diǎn)的binlog日志里面的內(nèi)容是一致的。然后slave從節(jié)點(diǎn)從這個(gè)relaylog日志文件中讀取數(shù)據(jù)應(yīng)用到數(shù)據(jù)庫(kù)中,來(lái)實(shí)現(xiàn)數(shù)據(jù)的主從復(fù)制

總結(jié)

MySQL日志文件是數(shù)據(jù)庫(kù)的重要組成部分,本文介紹的七種日志文件,隨便一種都可以延伸出很多知識(shí)點(diǎn)。但是作為MySQL基礎(chǔ)入門文章,我們只對(duì)日志文件做簡(jiǎn)單的了解,并沒(méi)有進(jìn)行深入的探索,雖然偏理論性知識(shí),但是對(duì)使用和學(xué)習(xí)MySQL非常重要。

結(jié)束語(yǔ)

你知道的越多,不知道的就越多。

程序員的修養(yǎng)就是對(duì)技術(shù)發(fā)自內(nèi)心的欣賞和敬畏!倘若文中表述有誤,還請(qǐng)諒解,并歡迎與我討論,自主思考永遠(yuǎn)比被動(dòng)接受更有效!

???展開(kāi)全文
相關(guān)文章
主站蜘蛛池模板: 欧美91av| 黄色大片免费网站 | 欧美大片在线看 | 久久噜噜| 九九热精品在线 | 992av | 欧美激情xxxx| 蜜桃tv永久网站 | 国内精品不卡一区二区三区 | 麻豆视频免费看 | 两个人看的视频播放www | 99re99热| 四川丰满护士毛茸茸 | 午夜香蕉成视频人网站高清版 | 青草视频网址 | 精品欧美一区二区三区在线 | 人人澡人人模人人爽手机版 | 免费看欧美成人性色生活片 | 国产成人精品久久 | 色视在线 | 国产片毛片 | 亚洲高清成人欧美动作片 | 日本视频色| 欧美亚洲国产日韩一区二区三区 | 欧洲毛片真人 | 九九精品久久久久久久久 | 精品欧美一区二区精品久久 | 在线视频观看亚洲 | 青青草视频网站 | 欧美日本韩国一区 | 精品欧美一区二区三区在线观看 | 毛片基地免费视频a | 九九热精品免费视频 | 看a网站 | 色在线网站免费观看 | 国产大片91精品免费看3 | 精品午夜寂寞黄网站在线 | 看中国真人一级毛片 | 天天天色 | 久久精品国产只有精品2020 | 欧美一a一片一级一片 |