新聞中心
SQL數(shù)據(jù)庫(kù)日志是數(shù)據(jù)庫(kù)系統(tǒng)的重要組成部分,它記錄了所有對(duì)數(shù)據(jù)庫(kù)的操作,包括增刪改查、事務(wù)的提交和回滾等。有時(shí)候,我們需要查看數(shù)據(jù)庫(kù)日志來(lái)排除問(wèn)題,分析性能,或者查找有關(guān)的信息。本文將介紹SQL數(shù)據(jù)庫(kù)日志的基礎(chǔ)知識(shí),以及如何使用一些工具來(lái)輕松查看和分析數(shù)據(jù)庫(kù)日志。

創(chuàng)新互聯(lián)主營(yíng)項(xiàng)城網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,App定制開(kāi)發(fā),項(xiàng)城h5重慶小程序開(kāi)發(fā)搭建,項(xiàng)城網(wǎng)站營(yíng)銷推廣歡迎項(xiàng)城等地區(qū)企業(yè)咨詢
什么是SQL數(shù)據(jù)庫(kù)日志?
SQL數(shù)據(jù)庫(kù)日志是記錄數(shù)據(jù)庫(kù)操作的一種技術(shù),它可以在數(shù)據(jù)庫(kù)操作時(shí)定義的不同粒度上捕捉相關(guān)事件的發(fā)生。日志文件包含了對(duì)數(shù)據(jù)庫(kù)的所有更改操作,按照時(shí)間順序排列。日志記錄的信息包括被修改的表格、行以及對(duì)應(yīng)的更新數(shù)據(jù)。
數(shù)據(jù)庫(kù)日志的好處是非常明顯的,在運(yùn)行過(guò)程當(dāng)中,如果日志文件能夠記錄好,就可以隨時(shí)查看在什么時(shí)間發(fā)生了什么,以及誰(shuí)做了什么。這對(duì)于數(shù)據(jù)的恢復(fù)和數(shù)據(jù)一致性的維護(hù)非常重要。
如何查看數(shù)據(jù)庫(kù)日志
盡管在一般情況下,我們并不需要經(jīng)常查看數(shù)據(jù)庫(kù)日志,但在出現(xiàn)問(wèn)題的時(shí)候,查看數(shù)據(jù)庫(kù)日志是排除問(wèn)題的有效途徑。以下是幾種常見(jiàn)的查看數(shù)據(jù)庫(kù)日志的工具:
使用DBCC命令查看SQL數(shù)據(jù)庫(kù)日志
DBCC是SQL Server專用的命令行工具,提供了一些管理和診斷的功能,其中之一就是查看SQL數(shù)據(jù)庫(kù)日志。在SQL Server Management Studio中,右鍵單擊SQL Server實(shí)例,并選擇“新查詢”。在查詢窗口中,輸入以下命令:
DBCC LOG(database_name, [1 | 2])
其中,參數(shù)1或2表示primary或secondary文件組。在查詢窗口中,點(diǎn)擊執(zhí)行,便可以查看到數(shù)據(jù)庫(kù)日志。
使用SQL Server Transaction Log Explorer查看數(shù)據(jù)庫(kù)日志
SQL Server Transaction Log Explorer是第三方工具,為SQL Server的事務(wù)日志提供了廣泛的支持。它可以幫助我們輕松地查看、分析和管理SQL Server的事務(wù)日志。通過(guò)SQL Server Transaction Log Explorer,我們可以快速找到特定的事務(wù)或更改,以及在歷史數(shù)據(jù)中尋找問(wèn)題,尤其適用于大型企業(yè)級(jí)應(yīng)用程序。
使用ApexSQL Log 查看SQL數(shù)據(jù)庫(kù)日志
ApexSQL Log是一款適用于SQL Server數(shù)據(jù)庫(kù)的在線日志分析工具,它可以輕松地查看和分析SQL Server數(shù)據(jù)庫(kù)的日志記錄,包括對(duì)任何數(shù)據(jù)進(jìn)行的修改、刪除、更新、插入以及DDL更改等。使用ApexSQL Log,我們可以方便地了解數(shù)據(jù)如何被更改,誰(shuí)已經(jīng)更改了它們以及何時(shí)更改它們。它還可以過(guò)濾掉不需要的信息,以減少查詢結(jié)果的混亂。
結(jié)論
SQL數(shù)據(jù)庫(kù)日志是一種重要的技術(shù)工具,可以記錄所有數(shù)據(jù)庫(kù)操作,包括增刪改查、事務(wù)的提交和回滾等。在遇到數(shù)據(jù)庫(kù)問(wèn)題的時(shí)候,查看數(shù)據(jù)庫(kù)日志是排除問(wèn)題的有效途徑。我們可以使用一些工具來(lái)輕松查看和分析數(shù)據(jù)庫(kù)日志,其中DBCC、SQL Server Transaction Log Explorer和ApexSQL Log都是不錯(cuò)的選擇。不管我們選擇哪種工具,了解數(shù)據(jù)庫(kù)日志的內(nèi)容和查詢方式,對(duì)數(shù)據(jù)庫(kù)性能和安全都有重要的作用。
相關(guān)問(wèn)題拓展閱讀:
- 如何查看mysql數(shù)據(jù)庫(kù)操作記錄日志
- sql server 2023怎么查看日志文件
如何查看mysql數(shù)據(jù)庫(kù)操作記錄日志
一.錯(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>
查詢滲悔和日志記錄了clinet的所有的語(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)罩臼羌兾谋靖窨桑梢允褂肙S文本讀取工具直接打開(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)行分類匯總
$ 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
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 下用類似的。
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:專門用來(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)圖
是否啟用了日志
mysql>show variables like ‘log_bin’;
怎樣知道當(dāng)前的日志
mysql> show master status;
看二進(jìn)制日志文件用mysqlbinlog
shell>mysqlbinlog mail-bin.000001(要寫絕對(duì)問(wèn)題路徑
或者
shell>mysqlbinlog mail-bin.| tail
Windows 下用類似的命洞扮令。
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.
稿鎮(zhèn) 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
sql server 2023怎么查看日志文件
在SQL Server 7.0和SQL Server2023中,可以用下面的命令查看:
DBCC log ( {dbid|dbname}, )
參數(shù):
Dbid or dbname – 任一數(shù)據(jù)庫(kù)的ID或名字
type – 輸出結(jié)果的類型:
0 – 最少信息(operation, context, transaction id)
1 – 更多信息(plus flags, tags, row length)
2 – 非常詳細(xì)的信息(plus object name, index name,page id, slot id)
3 – 每種操作的全部信息
4 – 每種操作的全部信息加上該事務(wù)的16進(jìn)制信息
默認(rèn) type = 0
要查看MSATER數(shù)據(jù)庫(kù)的事務(wù)日志可以用以下命令:
DBCC log (master)
釋放日志空間
1.清空日志
DUMP TRANSACTION 庫(kù)名 WITH NO_LOG
2.截?cái)嗍聞?wù)日志:
BACKUP LOG 數(shù)據(jù)庫(kù)名 WITH NO_LOG
3.收縮數(shù)據(jù)庫(kù)文件(如果不壓縮,數(shù)據(jù)庫(kù)的文件不會(huì)減小
企業(yè)管理器–右鍵你要壓縮的數(shù)據(jù)庫(kù)–所有任務(wù)–收縮數(shù)據(jù)庫(kù)–收縮文件
–選擇日志文件–在收縮方式里選擇收縮至XXM,這里會(huì)給出一個(gè)允許收縮到的最小M數(shù),直接輸入這個(gè)數(shù),確定就可以了
–選擇數(shù)據(jù)文件–在收縮方式里選擇收縮至XXM,這里會(huì)給出一個(gè)允許收縮到的最小M數(shù),直接輸入這個(gè)數(shù),確定就可以了
也可以用SQL語(yǔ)句來(lái)完成
–收縮數(shù)據(jù)庫(kù)
DBCC SHRINKDATABASE(客戶資料)
–收縮指定數(shù)據(jù)文件,1是文件號(hào),可以通過(guò)這個(gè)語(yǔ)句查詢到:select * from sysfiles
DBCC SHRINKFILE(1)
4.為了更大化的縮小日志文件(如果是螞指賣sql 7.0,這步只能在查詢分析器中進(jìn)行)
a.分離數(shù)據(jù)庫(kù):
企業(yè)管理器–服務(wù)器–數(shù)據(jù)庫(kù)–右鍵–分離數(shù)據(jù)庫(kù)
b.在我的電悶逗腦中刪除LOG文件
c.附加數(shù)據(jù)庫(kù):
企業(yè)管理器–服務(wù)器–數(shù)據(jù)庫(kù)–右鍵–附加數(shù)據(jù)庫(kù)
此法將生成新的LOG,大小只有500多K
或用代逗謹(jǐn)碼:
下面的示例分離 pubs,然后將 pubs 中的一個(gè)文件附加到當(dāng)前服務(wù)器。
a.分離
E X E C sp_detach_db @dbname = ‘pubs’
b.刪除日志文件
c.再附加
E X E C sp_attach_single_file_db @dbname = ‘pubs’,
@physname = ‘c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf’
5.為了以后能自動(dòng)收縮,做如下設(shè)置:
企業(yè)管理器–服務(wù)器–右鍵數(shù)據(jù)庫(kù)–屬性–選項(xiàng)–選擇”自動(dòng)收縮”
–SQL語(yǔ)句設(shè)置方式:
E X E C sp_dboption ‘?dāng)?shù)據(jù)庫(kù)名’, ‘a(chǎn)utoshrink’, ‘TRUE’
6.如果想以后不讓它日志增長(zhǎng)得太大
企業(yè)管理器–服務(wù)器–右鍵數(shù)據(jù)庫(kù)–屬性–事務(wù)日志
–將文件增長(zhǎng)限制為xM(x是你允許的更大數(shù)據(jù)文件大小)
–SQL語(yǔ)句的設(shè)置方式:
alter database 數(shù)據(jù)庫(kù)名 modify file(name=邏輯文件名,maxsize=20)
特別注意:
請(qǐng)按步驟進(jìn)行,未進(jìn)行前面的步驟,請(qǐng)不要做后面的步驟
否則可能損壞數(shù)據(jù)庫(kù).
一般不建議做第4,6兩步
第4步不安全,有可能損壞數(shù)據(jù)庫(kù)或丟失數(shù)據(jù)
第6步如果日志達(dá)到上限,則以后的數(shù)據(jù)庫(kù)處理會(huì)失敗,在清理日志后才能恢復(fù).
另外提供一種更簡(jiǎn)單的方法,建議大家使用。
更簡(jiǎn)單的方法:
1。右建數(shù)據(jù)庫(kù)屬性窗口–故障還原模型–設(shè)為簡(jiǎn)單
2。右建數(shù)據(jù)庫(kù)所有任務(wù)–收縮數(shù)據(jù)庫(kù)
3。右建數(shù)據(jù)庫(kù)屬性窗口–故障還原模型–設(shè)為大容量日志記錄
1、 在SQL Server 7.0和旦仿SQL Server2023中,可以用下面的命令查看:
DBCC log ( {dbid|dbname}, )
參數(shù):
Dbid or dbname – 任一數(shù)據(jù)庫(kù)的ID或名字
type – 輸出結(jié)果的類型:
悔洞0 – 最少信息(operation, context, transaction id)
1 – 更多信息(plus flags, tags, row length)
2 – 非常詳細(xì)的信息(plus object name, index name,page id, slot id)
3 – 每種操作的全部信息
4 – 每種操作的全部信息加上該事務(wù)的16進(jìn)制信息
默認(rèn) type = 0
要查看MSATER數(shù)據(jù)庫(kù)的事務(wù)日志可以用模前纖以下命令:
DBCC log (master)
方法一:
可以通過(guò)執(zhí)行該命令來(lái)查看錯(cuò)誤日志信息:exec xp_readerrorlog
方法二:
在SQL SERVER Management Studio中連接該sql server實(shí)例,object Explorer中查找Management->SQL Server logs->右鍵選view-》選擇滲襲你要看的日志芹仿信嫌喊纖息(sql server log or sql server and Windows log)
方法三:
去安裝路徑下去找你的log文件,我的默認(rèn)實(shí)例路徑如下
關(guān)于sql數(shù)據(jù)庫(kù)日志查詢的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
成都服務(wù)器租用選創(chuàng)新互聯(lián),先試用再開(kāi)通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)提供簡(jiǎn)單好用,價(jià)格厚道的香港/美國(guó)云服務(wù)器和獨(dú)立服務(wù)器。物理服務(wù)器托管租用:四川成都、綿陽(yáng)、重慶、貴陽(yáng)機(jī)房服務(wù)器托管租用。
分享名稱:SQL數(shù)據(jù)庫(kù)日志查詢:輕松查看和分析數(shù)據(jù)庫(kù)日志 (sql數(shù)據(jù)庫(kù)日志查詢)
網(wǎng)站URL:http://m.fisionsoft.com.cn/article/ccochhc.html


咨詢
建站咨詢
