sql日誌
sql日誌為資料庫接收到的所有 sql 語句等資訊,達夢中可把sql日誌設定為同步與非同步兩種。
跟蹤日誌主要用於分析錯誤和分析效能問題,基於跟蹤日誌可以對系統執行狀態有乙個分析,比如,可以挑出系統現在執行速度較慢的 sql 語句,進而對其進行優化。
使用sql日誌注意
1、設定sql過濾規則,只記錄必要的sql,生產環境不要設成1;
設定sqllog.ini中sql_trace_mask引數,具體掩碼含義參考達夢系統管理員手冊。
2、同步日誌會影響系統效率,生產環境如需開啟必須設定為非同步日誌;
開啟跟蹤日誌會對系統的效能會有較大影響,一般用於查錯和調優的時候才會開啟,預設情況下系統是關閉跟蹤日誌的。 若需要跟蹤日誌但對日誌的實時性沒有嚴格的要求,又希望系統有較高的效率,可以設定引數sql_trace_mask和svr_log_min_exec_time 只記錄關注的相關記錄,減少日誌總量;設定引數 svr_log_async_flush 開啟 sql 日誌非同步刷盤提高系統效能。
設定sqllog.ini
sqllog.ini使用者sql日誌的配置。當把dm.ini引數svr_log設定為1,才會開啟sql日誌。
如果在伺服器啟動過程中,修改了sqllog.ini檔案。修改之後的檔案,只要呼叫過程sp_refresh_svr_log_config()就會生效。
sqllog.ini引數配置:
引數名預設值
屬性說明
sql_trace_mask
動態,系統級
log記錄的語句型別掩碼,是乙個格式化的字串,表示乙個32位整數上哪一位將被置為1,置為1的位則表示該型別的語句要記錄,格式為:位號:位號:位號。列如:3:5:7表示第3,第5,第7位上的值被置為1。每一位的含義見下面說明(2~17前提是:sql標記位24也要置):
1 全部記錄(全部記錄並不包含原始語句)
2 全部dml型別語句
3 全部ddl型別語句
4 update型別語句(更新)
5 delete型別語句(刪除)
6 insert型別語句(插入)
7 select型別語句(查詢)
8 commit型別語句(提交)
9 rollback型別語句(回滾)
10 call型別語句(過程呼叫)
11 backup型別語句(備分)
12 restore型別語句(恢復)
13 建立物件操作(create ddl)
14 修改物件操作(alter ddl)
15 刪除物件操作(drop ddl)
17 **操作(revoke ddl)
22 繫結引數
23 存在錯誤的語句(語法錯誤,語義分析錯誤等)
24 是否需要記錄執行語句
25 是否需要列印計畫和語句執行的時間
26 是否需要記錄執行語句的時間
27 原始語句(伺服器從客戶端收到的未加分析的語句)
28 是否記錄引數資訊,包括引數的序號、資料型別和值
29 是否記錄事務相關事件
file_num
動態,系統級
總共記錄多少個日誌檔案,當日誌檔案達到這個設定值以後,再生成新的檔案時,會刪除最早的那個日誌檔案,日誌檔案的命令格式為dmsql_例項名_日期時間.log。
當這個引數配置成0時,只會生成兩個日誌相互切換著記錄。有效值範圍(0~1024)。例如,當file_num=0,例項名為pdm時,根據當時的日期時間,生成的日誌名稱為:
dmsql_pdm_20180719_163701.log,dmsql_pdm_20180719_163702.log
switch_mode
手動表示sql日誌檔案切換的模式:
0:不切換
1:按檔案中記錄數量切換
2:按檔案大小切換
3:按時間間隔切換
switch_limit
動態,系統級
不同切換模式switch_mode下,意義不同:
u 按數量切換時,乙個日誌檔案中的sql記錄條數達到多少條之後系統會自動將日誌切換到另乙個檔案中。乙個日誌檔案中的sql記錄條數達到多少條之後系統會自動將日誌切換到另乙個檔案中。有效值範圍(1000~ 10000000)
u 按檔案大小切換時,乙個日誌檔案達到該大小後,系統自動將日誌切換到另乙個檔案中,單位為m。有效值範圍(1~ 2000)
u 按時間間隔切換時,每個指定的時間間隔,按檔案新建時間進行檔案切換,單位為分鐘。有效值範圍(1~ 30000)
async_flush
動態,系統級
是否開啟非同步sql日誌功能。0:表示關閉;1:表示開啟
min_exec_time
動態,系統級
詳細模式下,記錄的最小語句執行時間,單位為毫秒。執行時間小於該值的語句不記錄在日誌檔案中。有效值範圍(0~4294967294)
file_path
..\log
動態,系統級
日誌檔案所在的資料夾路徑
buf_total_size
動態,系統級
sql日誌buffer占用空間的上限,單位為kb,取值範圍(1024~1024000)
buf_size
動態,系統級
一塊sql日誌buffer的空間大小,單位為kb,取值範圍(50~409600)
buf_keep_cnt
動態,系統級
系統保留的sql日誌快取的個數,有效值範圍(1~ 100)
part_stor
手動sql日誌分割槽儲存,表示sql日誌進行分割槽儲存的劃分條件。
0表示不劃分;1表示user:根據不同使用者分布儲存
items
手動配置sql日誌記錄中的那些列要被記錄。
該引數是乙個格式化的字串,表示乙個記錄中的那些專案要被記錄,格式為:列號:列號:列號。列如:3:5:7表示第3,第5,第7列要被記錄。0表示記錄所有的列
1 time執行的時間
2 seqno伺服器的站點號
3 sess操作的sess位址
4 user執行的使用者
5 trxid事務id
6 stmt語句位址
8 ip客戶端ip
9 stmt_type語句型別
10 info記錄內容
11 result執行結果,包括執行用時和影響行數(可能沒有)
user_mode
手動sql日誌按使用者過濾時的過濾模式,取值
0:關閉使用者過濾
1:白名單模式,只記錄列出的使用者操作的sql日誌
2:黑名單模式,列出的使用者不記錄sql日誌
users
空串手動
開啟svr_log_user_mode時指定的使用者列表。格式為:使用者名稱:使用者名稱:使用者名稱
注意注意:只有把ini引數svr_log置為1,且svr_log_name為slog_all時,sqllog.ini中名稱為slog_all的配置塊才會生效。
若svr_log為1,但不存在sqllog.ini或sqllog.ini配置錯誤,則仍舊使用dm.ini中的「使用者請求跟蹤相關引數」。
例如:下面是乙個svr_log_name為slog_all的sqllog.ini的例子:
buf_total_size = 10240 # sql 日誌 buffer 占用空間的上限
buf_size = 1024 #一塊 sql 日誌 buffer 的空間大小
buf_keep_cnt = 6 #系統保留的 sql 日誌快取的個數
[slog_all]
file_path = ..\log
part_stor = 0
switch_mode = 0
switch_limit = 0
async_flush = 0
file_num = 0
items = 0
sql_trace_mask = 0 #log 記錄的語句型別掩碼
min_exec_time = 0 #記錄的最小語句執行時間
user_mode = 0
users =
dm8操作流程
開啟sql日誌:
sp_set_para_value(1, 'svr_log', 1);
資料庫會自動生成sqllog.ini
[root@mydb dameng]# more sqllog.ini
buf_total_size = 10240 #sqls log buffer total size(k)(1024~1024000)
buf_size = 1024 #sqls log buffer size(k)(50~409600)
buf_keep_cnt = 6 #sqls log buffer keeped count(1~100)
[slog_all]
file_path = ../log
part_stor = 0
switch_mode = 0
switch_limit = 0
async_flush = 0
file_num = 0
items = 0
sql_trace_mask = 0
min_exec_time = 0
user_mode = 0
users =
日誌記錄格式如下:
—關閉sql日誌:
sp_set_para_value(1, 'svr_log', 0);
備註:sql日誌以「dmsql-例項名.log」 命名, 預設生成在 dm安裝目錄log 子目錄下面
DM8歸檔日誌挖掘
檢視是否開啟歸檔 select arch mode from v database 檢視所有的歸檔日誌資訊 select name,first time,next time,first change next change from v archived log 新增需要分析的歸檔日誌到logmnr...
DM8初步了解
作為一名資料庫初學者,在學習達夢之前未曾接觸過資料庫,通過學習達夢資料庫,了解了關於資料庫的一些知識,下面粗略談談我對達夢資料庫管理系統的學習心得。1 硬體架構支援 達夢資料庫管理系統支援多種硬體平台,intel amd x86平台 國產飛騰 申威 龍芯 華為鯤鵬平台。2 作業系統支援 達夢資料庫管...
DM8 佳節自古
嘆少時感懷 金庸 裡有哪些不易發現卻很打動人的小細節?馬伯庸 金庸裡大情大悲的橋段很多,初讀不以為意,再思之,如有牛毛細針刺入心中,隱隱小痛,卻移不走,撫不平.之於俺,比較粗淺,當年一直喜歡的就是 焚我殘軀,熊熊聖火.生亦何歡,死亦何苦.為善除惡,為光明故.喜樂哀愁,皆歸塵土.憐我世人,憂患實多.所...