DM達夢數據庫開啟SQL日志記錄功能
配置SQL日志(非必須的配置步驟,與主備集群配置無關,如果沒有需求可以跳過配置SQL日志)
sqllog.ini 配置文件用于SQL日志的配置,當且僅當 INI(dm.ini)?參數 SVR_LOG = 1 時使用。SQL日志主要用于慢SQL定位等分析跟蹤用途。
SVR_LOG:系統級別配置參數,是否打開SQL日志功能。
? 0 表示關閉;
? 1 表示打開;
? 2 表示按文件中記錄數量切換日志文件,日志記錄為詳細模式;
? 3 表示不切換日志文件,日志記錄為簡單模式,只記錄時間和原始語句。
SVR_LOG_NAME:系統級別配置參數,默認為 SLOG_ALL ,使用 sqllog.ini 中預設的模式的名稱。
sqllog.ini 主要配置參數
# 所有節點修改 sqllog.ini?
vi /opt/dm/dmdbms/data/testdb/sqllog.ini
BUF_TOTAL_SIZE = 10240
BUF_SIZE = 1024
BUF_KEEP_CNT = 6
[SLOG_ALL]
FILE_PATH = ../log
PART_STOR = 1? ? #SQL日志分區存儲配置參數,0 表示不劃分;1 表示 USER,根據不同用戶分布存儲
SWITCH_MODE = 2? ? #日志文件切換模式 2 表示按文件大小切換
SWITCH_LIMIT = 512? ? #文件大小限制、單位MB
ASYNC_FLUSH = 1? ? #日志刷盤模式,默認1異步刷盤,0表示實時刷盤(要考慮性能影響)
FILE_NUM = 20? ? ?#打印日志文件個數,默認5個,建議配置20
ITEMS = 0? ? #指定一條SQL日志中應包含的內容,位號:位號:位號...,如果配置為 0 表示記錄所有的列(記錄SQL全部信息),默認 0。其他內容詳情參考后面的內容詳情介紹
SQL_TRACE_MASK = 1? ? #打印全部類型SQL日志,默認 1
MIN_EXEC_TIME = 1500? ? #詳細模式下,記錄的最小語句執行時間,單位毫秒
USER_MODE = 0? ? #SQL日志按用戶過濾時的過濾模式。0 表示關閉用戶過濾;1 表示白名單模式,只記錄列出的用戶操作的SQL日志;2 表示黑名單模式,列出的用戶不記錄SQL日志
USERS =? ? ?#打開 USER_MODE 時指定的用戶列表。格式為:用戶名:用戶名:用戶名...
重啟數據庫才能生效。
ITEMS支持記錄的內容詳情:
0 表示記錄所有內容
1 TIME 執行的時間
2 SEQNO 服務器的站點號
3 SESS 操作的SESS地址
4 USER 執行的用戶
5 TRXID 事務ID
6 STMT 語句地址
7 APPNAME 客戶端工具
8 IP 客戶端IP
9 STMT_TYPE 語句類型。分別為
[ORA]表示原始語句(服務器從客戶端收到的未加分析的語句) 、
[DDL]表示DDL 語句、
[INS]表示INSERT語句、
[DML]表示DML語句、
[CAL]表示CALL語句、
[UPD] 表示UPDATE語句、
[DEL] 表示DELETE 語句、
[SEL]表示SELECT語句、
[LGN]表示登錄登出語句
10 INFO 記錄內容,記錄當前執行的SQL語句
11 RESULT 運行結果,包括運行用時、影響行數和EXEC_ID(可能沒有)
12 THRD 線程地址
配置示例:ITEMS = 1:4:5:6:7:8:10
另外也可以在線動態修改參數的方式打開、無需重啟數據庫、修改立即生效:
修改動態參數開啟SQL日志記錄功能:
disql SYSDBA/'"password"'@localhost:5236
call SP_SET_PARA_VALUE(1,'SVR_LOG',1);
查詢日志記錄功能是否開啟(0 表示關閉;1/2/3 表示開啟):
-- 修改配置(打開)
SP_SET_PARA_VALUE(1,'SVR_LOG',1);
或者(按需)
SP_SET_PARA_VALUE(1,'SVR_LOG',2);
-- 查詢配置
SELECT SF_GET_PARA_VALUE (1, 'SVR_LOG');
關閉SQL日志記錄功能:
SP_SET_PARA_VALUE(1,'SVR_LOG',0);
?