日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
如何截?cái)郙ySQL數(shù)據(jù)庫(kù)日志?(mysql數(shù)據(jù)庫(kù)日志截?cái)?

數(shù)據(jù)庫(kù)日志是一個(gè)非常重要的組成部分,它記錄了數(shù)據(jù)庫(kù)的所有操作,包括增刪改查等等。在MySQL中,數(shù)據(jù)庫(kù)日志以二進(jìn)制日志的形式存在,在實(shí)際的應(yīng)用場(chǎng)景中,可能會(huì)出現(xiàn)二進(jìn)制日志太大的情況,這時(shí)有必要截?cái)鄶?shù)據(jù)庫(kù)日志,以減小數(shù)據(jù)庫(kù)的存儲(chǔ)壓力,并且還可以優(yōu)化數(shù)據(jù)庫(kù)的性能。

那么如何截?cái)郙ySQL數(shù)據(jù)庫(kù)日志呢?下面,將對(duì)此進(jìn)行詳細(xì)的介紹。

一、什么是MySQL數(shù)據(jù)庫(kù)日志?

MySQL的數(shù)據(jù)庫(kù)日志包括二進(jìn)制日志、錯(cuò)誤日志、慢查詢?nèi)罩?、查詢?nèi)罩镜鹊取F渲?,二進(jìn)制日志是最重要的一個(gè),它記錄了數(shù)據(jù)庫(kù)的所有操作,包括insert、update、delete、create、alter等等命令,二進(jìn)制日志以二進(jìn)制的形式存在。

二、二進(jìn)制日志的作用

二進(jìn)制日志的作用非常重要,它可以用于備份、恢復(fù)、主從同步和故障恢復(fù)等操作。任何對(duì)數(shù)據(jù)庫(kù)的操作都會(huì)被記錄在二進(jìn)制日志中,這樣就可以進(jìn)行數(shù)據(jù)恢復(fù)。同時(shí),二進(jìn)制日志還可以用于實(shí)現(xiàn)主從同步,主庫(kù)將自己的二進(jìn)制日志傳輸?shù)綇膸?kù)中,從庫(kù)再執(zhí)行相應(yīng)的操作。

三、

在MySQL中,二進(jìn)制日志會(huì)不斷增長(zhǎng),當(dāng)二進(jìn)制日志過(guò)大時(shí),會(huì)對(duì)數(shù)據(jù)庫(kù)的性能和存儲(chǔ)造成不小的影響。因此,我們需要對(duì)二進(jìn)制日志進(jìn)行截?cái)嗖僮鳌?/p>

下面是在MySQL中如何截?cái)喽M(jìn)制日志。

1. 執(zhí)行SHOW MASTER STATUS;命令,查看當(dāng)前MySQL服務(wù)器日志文件名稱(chēng)及文件偏移位置。

2. 執(zhí)行FLUSH LOGS;命令,關(guān)閉當(dāng)前日志文件,重新打開(kāi)一個(gè)新的二進(jìn)制日志文件,同時(shí)會(huì)生成一個(gè)新的日志文件。

3. 執(zhí)行PURGE BINARY LOGS TO ‘日志文件名稱(chēng).文件偏移位置’;命令,來(lái)截?cái)喽M(jìn)制日志。這條命令的作用是將二進(jìn)制日志文件中所有的日志記錄過(guò)期的二進(jìn)制文件刪除,只保留到指定的位置為止。

4. 執(zhí)行SHOW BINARY LOGS;命令,查看當(dāng)前可用的日志文件。

通過(guò)以上步驟,我們就可以對(duì)MySQL的二進(jìn)制日志進(jìn)行截?cái)嗖僮鳌?/p>

四、小結(jié)

當(dāng)數(shù)據(jù)庫(kù)的二進(jìn)制日志過(guò)大時(shí),我們需要對(duì)其進(jìn)行截?cái)嗖僮?,以提高?shù)據(jù)庫(kù)的性能和存儲(chǔ)空間的利用率。MySQL數(shù)據(jù)庫(kù)提供了非常便捷的操作方式,通過(guò)上述步驟,我們就可以輕松地實(shí)現(xiàn)二進(jìn)制日志的截?cái)?。在?shí)際應(yīng)用中,我們需要根據(jù)不同情形進(jìn)行相關(guān)操作,以達(dá)到更好的效果。

成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián)為您提供網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)及定制高端網(wǎng)站建設(shè)服務(wù)!

如何查看mysql數(shù)據(jù)庫(kù)操作記錄日志

1、首先確認(rèn)你日志是否啟用了mysql>show variables like ‘log_bin’。

2、如果啟用了,即ON,那日志文件就在mysql的安裝目錄的data目錄下。

3、怎樣知道當(dāng)前的日志mysql> show master status。

4、看

二進(jìn)制

日志文件用mysqlbinlog,shell>mysqlbinlog mail-bin.000001或者shell>mysqlbinlog mail-bin.| tail,Windows 下用類(lèi)似的。

MySQL的日志操作:

1、首先,登陸mysql后,執(zhí)行

sql語(yǔ)句

:show variables like ‘log_bin’。

2、#錯(cuò)誤日志log-errol開(kāi)啟方式:在my.ini的選項(xiàng)下:添加代碼:log-error=E:\log-error.txt。

記錄內(nèi)容:主要是記錄啟動(dòng)、運(yùn)行或停止mysqld時(shí)出現(xiàn)的致命性問(wèn)題,都是系統(tǒng)級(jí)的錯(cuò)誤記錄。

3、#查詢?nèi)罩荆簂og,開(kāi)啟方式:在my.ini的選項(xiàng)下:添加代碼:log=E:/mysql_log.txt。

4、#二進(jìn)制日志:log-bin,開(kāi)啟方式:在my.ini的選項(xiàng)下:添加代碼:log-bin=E:/mysql_log_bin,記錄內(nèi)容:主要是記錄所有的更改數(shù)據(jù)的語(yǔ)句,可使用mysqlbinlog命令

恢復(fù)數(shù)據(jù)

。

這是一個(gè)慢查詢?nèi)罩镜恼故竟ぞ撸軌驇椭?DBA 或者開(kāi)發(fā)人員分析數(shù)據(jù)庫(kù)的性能問(wèn)題,給出全面的數(shù)據(jù)擺脫直接查看 slow-log。QAN(Query Analytics)

PMM 目前有 2 個(gè)版本,但是對(duì)于 QAN 來(lái)說(shuō)其大致由三部分組成:

QAN-Agent(client):負(fù)責(zé)采集 slow-log 的數(shù)據(jù)并上報(bào)到服務(wù)端

QAN-API(server):負(fù)責(zé)存儲(chǔ)采集的數(shù)據(jù),并對(duì)外提供查詢接口

QAN-APP:專(zhuān)門(mén)用來(lái)展示慢查詢數(shù)據(jù)的 grafana 第三方插件

1. 數(shù)據(jù)流轉(zhuǎn)

slow-log –> QAN-Agent –> QAN-API QAN-APP(grafana)

2. pmm1 架構(gòu)圖

3. pmm2 架構(gòu)圖

  一.錯(cuò)誤日志

  錯(cuò)誤日志在Mysql數(shù)據(jù)庫(kù)中很重要,它記錄著mysqld啟動(dòng)和停止,以及服務(wù)器在運(yùn)行過(guò)程中發(fā)生的任何錯(cuò)誤的相關(guān)信息。

  1.配置信息

  –log-error=用來(lái)指定錯(cuò)誤日志存放的位置。

  如果沒(méi)有指定,默認(rèn)hostname.err做為文件名,默認(rèn)存放在DATADIR目錄中。

  也可以將log-error配置到my.cnf文件中,這樣就省去了每次在啟動(dòng)mysqld時(shí)都手工指定–log-error.例如:

  $ vi /etc/my.cnf

  # The MySQL server

  

  ….

  log-error = /var/lib/mysql/test2_mysqld.err

  …..

  2.錯(cuò)誤信息樣板

:21:55 mysqld started

:21:55 InnoDB: Started; log sequence number

:21:55 /usr/local/mysql/bin/mysqld: ready for connections.

  Version: ‘5.0.26-standard-log’ socket: ‘/var/lib/mysql/mysql.sock’ port: 3306 MySQL Community Edition – Standard (GPL)

:24:13 /usr/local/mysql/bin/mysqld: Normal shutdown

:24:13 InnoDB: Starting shutdown…

:24:16 InnoDB: Shutdown completed; log sequence number

:24:16 /usr/local/mysql/bin/mysqld: Shutdown complete

:24:16 mysqld ended

:24:47 mysqld started

:24:47 InnoDB: Started; log sequence number

:24:47 /usr/local/mysql/bin/mysqld: ready for connections.

  Version: ‘5.0.26-standard-log’ socket: ‘/var/lib/mysql/mysql.sock’ port: 3306 MySQL Community Edition – Standard (GPL)

:33:49 /usr/local/mysql/bin/mysqld: Normal shutdown

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

  查詢?nèi)罩居涗浟薱linet的所有的語(yǔ)句。

  Note:由于log日志記錄了數(shù)據(jù)庫(kù)所有操作,對(duì)于訪問(wèn)頻繁的系統(tǒng),此種日志會(huì)造成性能影響,建議關(guān)閉。

  1.配置信息

  –log=用來(lái)指定錯(cuò)誤日志存放的位置。

  如果沒(méi)有指定,默認(rèn)為主機(jī)名(hostname)做為文件名,默認(rèn)存放在DATADIR目錄中。

  也可以將log配置到my.cnf文件中,這樣就省去了每次在啟動(dòng)mysqld時(shí)都手工指定–log.例如:

  # The MySQL server

  

  ……

  #query-log

  log = /var/lib/mysql/query_log.log

  ……

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

  查詢?nèi)罩臼羌兾谋靖窨?,可以使用OS文本讀取工具直接打開(kāi)查看。例如:

  $ tail -n 15 query_log.log

:58:28 17 Query show tables

:07:45 17 Quit

:01:48 18 Connect root@localhost on

:02:38 18 Query SELECT DATABASE()

  18 Init DB test

:02:42 18 Query show tables

:03:07 18 Query select * from pet

:06:26 18 Query insert into pet values(‘hunter’,’yxyup’,’cat’,’f’,”,null)

:06:39 18 Query select * from pet

:07:13 18 Query update pet set sex=’m’ where name=’hunter’

:07:38 18 Query delete from pet where name=’hunter’

:13:48 18 Query desc test8

:14:13 18 Query create table t1(id int,name char(10))

:14:41 18 Query alter table t1 add sex char(2)

  $

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

  慢查詢?nèi)罩臼怯涗浟藞?zhí)行時(shí)間超過(guò)參數(shù)long_query_time(單位是秒)所設(shè)定值的SQL語(yǔ)句日志。

  Note:慢查詢?nèi)罩緦?duì)于我們發(fā)現(xiàn)性能有問(wèn)題的SQL有很幫助,建議使用并經(jīng)常分析

  1.配置信息

  –log-slow-queries=用來(lái)指定錯(cuò)誤日志存放的位置。

  如果沒(méi)有指定,默認(rèn)為hostname-slow.log做為文件名,默認(rèn)存放在DATADIR目錄中。

  也可以將log-slow-queries配置到my.cnf文件中,這樣就省去了每次在啟動(dòng)mysqld時(shí)都手工指定–log-slow-queries.例如:

  # The MySQL server

  

  ……

  #slow-query-log

  log-slow-queries = /var/lib/mysql/slow_query_log.log

  ……

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

  $ cat slow_query_log.log

  /usr/local/mysql/bin/mysqld, Version: 5.0.26-standard-log. started with:

  Tcp port: 3306 Unix socket: /var/lib/mysql/mysql.sock

  Time Id Command Argument

  # Time::41:46

  # User@Host: root @ localhost

  # Query_time: 108 Lock_time: 0 Rows_sent: 0 Rows_examined: 8738

  use test;

  select count(1) from t1 a, t1 b,t1 c where a.id=b.id and b.name=c.name;

  # Time::52:04

  # User@Host: root @ localhost

  # Query_time: 583 Lock_time: 0 Rows_sent: 0 Rows_examined:

  select count(1) from t1 a, t1 b where a.id=b.id;

  /usr/local/mysql/bin/mysqld, Version: 5.0.26-standard-log. started with:

  Tcp port: 3306 Unix socket: /var/lib/mysql/mysql.sock

  Time Id Command Argument

  # Time::39:59

  # User@Host: root @ localhost

  # Query_time: 11 Lock_time: 0 Rows_sent:Rows_examined:

  use test;

  select id from tail;

  如果慢查詢?nèi)罩居涗浐芏嗫梢允褂胢ysqldumpslow進(jìn)行分類(lèi)匯總

  $ mysqldumpslow slow_query_log.log

  Reading mysql slow query log from slow_query_log.log

  Count: 1 Time=583.00s (583s) Lock=0.00s (0s) Rows=0.0 (0), root@localhost

  select count(N) from t1 a, t1 b where a.id=b.id

  Count: 1 Time=108.00s (108s) Lock=0.00s (0s) Rows=0.0 (0), root@localhost

  select count(N) from t1 a, t1 b,t1 c where a.id=b.id and b.name=c.name

  Count: 1 Time=11.00s (11s) Lock=0.00s (0s) Rows=.0 (), root@localhost

  select id from tail;

mysql有以下幾種日志:

錯(cuò)誤日志: -log-err

查詢?nèi)罩荆?-log

慢查詢?nèi)罩? -log-slow-queries

更新日志: -log-update

二進(jìn)制日志: -log-bin

在mysql的安裝目錄下,打開(kāi)my.ini,在后面加上上面的參數(shù),保存后重啟mysql服務(wù)就行了。

例如:

#Enter a name for the binary log. Otherwise a default name will be used.

#log-bin=

#Enter a name for the query log file. Otherwise a default name will be used.

#log=

#Enter a name for the error log file. Otherwise a default name will be used.

log-error=

#Enter a name for the update log file. Otherwise a default name will be used.

#log-update=

查看日至:

1. 首先確認(rèn)你日志是否啟用了

mysql>show variables like ‘log_bin’;

如果啟用了,即ON

那日志文件就在mysql的安裝目錄的data目錄下

cat/tail 日志文件名

2. 怎樣知道當(dāng)前的日志

mysql> show master status;

3. 查看從某一段時(shí)間到某一段時(shí)間的日志

mysqlbinlog –start-datetime=’:00:00′

–stop-datetime=’:00:00′ /var/log/mysql/mysql-bin.

> mysqllog1.log

是否啟用了日志

mysql>show variables like ‘log_bin’;

怎樣知道當(dāng)前的日志

mysql> show master status;

看二進(jìn)制日志文件用mysqlbinlog

shell>mysqlbinlog mail-bin.000001(要寫(xiě)絕對(duì)問(wèn)題路徑

或者

shell>mysqlbinlog mail-bin.| tail

Windows 下用類(lèi)似的命令。

mysql有以下幾種日志: 

錯(cuò)誤日志:     -log-err 

查詢?nèi)罩荆?nbsp;    -log 

慢查詢?nèi)罩?   -log-slow-queries 

更新日志:     -log-update 

二進(jìn)制日志:-log-bin

在mysql的安裝目錄下,打開(kāi)my.ini,在后面加上上面的參數(shù),保存后重啟mysql服務(wù)就行了。 

例如:  

#Enter a name for the error log file.   Otherwise a default name will be used.

   log-error=err.log

#Enter a name for the query log file. Otherwise a default name will be used.

   #log=

#Enter a name for the slow query log file. Otherwise a default name will be used.

   #log-slow-queries=

#Enter a name for the update log file. Otherwise a default name will be used.

   #log-update=

#Enter a name for the binary log. Otherwise a default name will be used.

   #log-bin=

上面只開(kāi)啟了錯(cuò)誤日志,要開(kāi)其他的日志就把前面的“#”去掉。

long_query_time =1 –是指執(zhí)行超過(guò)多久的sql會(huì)被log下來(lái),這里是1秒

log-slow-queries=slowqueris.log –將查詢返回較慢的語(yǔ)句進(jìn)行記錄

log-queries-not-using-indexes = nouseindex.log –就是字面意思,log下來(lái)沒(méi)有使用索引的query

log=mylog.log –對(duì)所有執(zhí)行語(yǔ)句進(jìn)行記錄

log-error=log-error.log

log=log-query.log

log-queries-not-using-indexes

log-warnings=2

log-slow-queries=log-slow-query.log

log-update=log-update.log

如何查看mysql數(shù)據(jù)庫(kù)操作記錄日志?

1、首先確認(rèn)你日志是否啟用了mysql>show variables like ‘log_bin’。

2、如果啟用了,即ON,那日志文件就在mysql的安裝目錄的data目錄下。

3、怎樣知道當(dāng)前的日志mysql> show master status。

4、看二進(jìn)制日志文件用mysqlbinlog,shell>mysqlbinlog mail-bin.000001或者shell>mysqlbinlog mail-bin.| tail,Windows 下用類(lèi)似的。

MySQL的日志操作:

1、首先,登陸mysql后,執(zhí)行sql語(yǔ)句:show variables like ‘log_bin’。

2、#錯(cuò)誤日志log-errol開(kāi)啟方式:在my.ini的選項(xiàng)下:添加代碼:log-error=E:\log-error.txt。

記錄內(nèi)容:主要是記錄啟動(dòng)、運(yùn)行或停止mysqld時(shí)出現(xiàn)的致命性問(wèn)題,都是系統(tǒng)級(jí)的錯(cuò)誤記錄。

3、#查詢?nèi)罩荆簂og,開(kāi)啟方式:在my.ini的選項(xiàng)下:添加代碼:log=E:/mysql_log.txt。

4、#二進(jìn)制日志:log-bin,開(kāi)啟方式:在my.ini的選項(xiàng)下:添加代碼:log-bin=E:/mysql_log_bin,記錄內(nèi)容:主要是記錄所有的更改數(shù)據(jù)的語(yǔ)句,可使用mysqlbinlog命令恢復(fù)數(shù)據(jù)。

有時(shí)候我們會(huì)不小心對(duì)一個(gè)大表進(jìn)行了 update,比如說(shuō)寫(xiě)錯(cuò)了 where 條件……

此時(shí),如果 kill 掉 update

線程

,那回滾 undo log 需要不少時(shí)間。如果放置不管,也不知道 update 會(huì)持續(xù)多久。

那我們能知道 update 的進(jìn)度么?

實(shí)驗(yàn)

我們先創(chuàng)建一個(gè)測(cè)試數(shù)據(jù)庫(kù):

快速創(chuàng)建一些數(shù)據(jù):

連續(xù)執(zhí)行同樣的 SQL 數(shù)次,就可以快速構(gòu)造千萬(wàn)級(jí)別的數(shù)據(jù):

查看一下總的行數(shù):

我們來(lái)釋放一個(gè)大的 update:

然后另起一個(gè) session,觀察 performance_schema 中的信息:

可以看到,performance_schema 會(huì)列出當(dāng)前 SQL 從引擎獲取的行數(shù)。

等 SQL 結(jié)束后,我們看一下 update 從引擎總共獲取了多少行:

可以看到該 update 從引擎總共獲取的行數(shù)是表大小的兩倍,那我們可以估算:update 的進(jìn)度 = (rows_examined) / (2 * 表行數(shù))

?小貼士

information_schema.tables 中,提供了對(duì)表行數(shù)的估算,比起使用 select count(1) 的成本低很多,幾乎可以忽略不計(jì)。

那么是不是所有的 update,從引擎中獲取的行數(shù)都會(huì)是表大小的兩倍呢?這個(gè)還是要分情況討論的,上面的 SQL 更新了

主鍵

,如果只更新內(nèi)容而不更新主鍵呢?我們來(lái)試驗(yàn)一下:

等待 update 結(jié)束,查看 row_examined,發(fā)現(xiàn)其剛好是表大?。?/p>

那我們?cè)趺礈?zhǔn)確的這個(gè)倍數(shù)呢?

一種方法是靠經(jīng)驗(yàn):update 語(yǔ)句的 where 中會(huì)掃描多少行,是否修改主鍵,是否修改唯一鍵,以這些條件來(lái)估算系數(shù)。

另一種方法就是在同樣結(jié)構(gòu)的較小的表上試驗(yàn)一下,獲取倍數(shù)。

關(guān)于mysql數(shù)據(jù)庫(kù)日志截?cái)嗟慕榻B到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。

創(chuàng)新互聯(lián)(cdcxhl.com)提供穩(wěn)定的云服務(wù)器,香港云服務(wù)器,BGP云服務(wù)器,雙線云服務(wù)器,高防云服務(wù)器,成都云服務(wù)器,服務(wù)器托管。精選鉅惠,歡迎咨詢:028-86922220。


本文標(biāo)題:如何截?cái)郙ySQL數(shù)據(jù)庫(kù)日志?(mysql數(shù)據(jù)庫(kù)日志截?cái)?
瀏覽地址:http://m.5511xx.com/article/dhgepdd.html