當您在安全合規審計、效能分析、故障排除等情境下需要監控和管理RDS MySQL執行個體中執行的SQL語句時,可以利用SQL洞察和審計功能對SQL語句的執行情況進行記錄和彙總分析。開啟該功能後會自動記錄來自資料庫核心的SQL語句,以及SQL語句的執行帳號、IP地址、執行詳情等資訊,對執行個體效能沒有影響。
前提條件
RDS MySQL執行個體為高可用系列、三節點企業系列或叢集系列。
如果是RAM使用者,使用搜尋功能時,需要為RAM使用者授予AliyunRDSReadOnlyWithSQLLogArchiveAccess許可權。如何為RAM使用者授權,請參見通過RAM對RDS進行許可權管理。
您也可以通過自訂權限原則授予RAM使用者使用搜尋(包含匯出)功能的許可權,詳情請參見通過自訂權限原則授權RAM使用者使用SQL洞察和審計的搜尋(包含匯出)功能。
開啟SQL洞察和審計功能可以記錄所有DQL、DML和DDL操作資訊,這些資訊是通過資料庫核心輸出,對系統CPU消耗極低。
計費詳情與功能概覽
執行個體地區 | 支援的功能 | 計費 |
華東1(杭州)、華東2(上海)、華北1(青島)、華北2(北京)、華北3(張家口)、華北5(呼和浩特)、華北6(烏蘭察布)、華南1(深圳)、華南2(河源)、華南3(廣州)、西南1(成都)、中國(香港)、新加坡、日本(東京)、馬來西亞(吉隆坡)、印尼(雅加達)、美國(矽谷)、英國(倫敦)、美國(維吉尼亞)和德國(法蘭克福) | SQL洞察和審計
|
|
由RDS側計費時,按小時計費,不同地區的執行個體有不同的計費。
0.0015美元/(GB*小時):中國(香港)、美國(矽谷)、美國(維吉尼亞)。
0.0018美元/(GB*小時):新加坡、日本(東京)、德國(法蘭克福)、阿聯酋(杜拜)、馬來西亞(吉隆坡)、印尼(雅加達)、英國(倫敦)。
0.0012美元/(GB*小時):華東 1(杭州)、華東 2(上海)、華北 1(青島)、華北 2(北京)、華北 3(張家口)、華北 5 (呼和浩特)、華北6(烏蘭察布 )、華南 1(深圳)、華南2(河源)、華南3(廣州)和西南1(成都)。
使用情境
對資料安全有嚴格要求的行業,如金融行業、安全行業、證券行業、政務行業、保險行業等。
需要詳細排查資料庫運行情況的情境,如極端情境的問題排查、SQL語句效能排查。
極端情況保護資料的情境,可以通過SQL洞察記錄的SQL語句恢複資料。
注意事項
單次線上查詢時間範圍最多為24小時。這是因為SQL洞察記錄所有資料庫行為,會記錄大量SQL語句,線上查詢選擇時間範圍過大,會導致長時間沒有返回查詢結果,甚至查詢逾時。
說明您可以查詢資料存放區時間長度範圍內,任意24小時的資料。
如果需要查詢更大時間範圍的SQL記錄,可以使用Log Service接入洞察日誌。詳情請參見採集RDS SQL審計日誌。
線上查詢支援組合查詢。例如在關鍵字搜尋欄輸入test1 test2可以查詢包含test1或test2的SQL日誌。
線上查詢不支援模糊查詢。
線上查詢的關鍵字至少包含4個字元。
審計記錄支援通過線程ID和事務ID查詢SQL語句記錄。
說明通過事務ID查詢前需將loose_rds_audit_log_version參數值設為MYSQL_V3。詳見RDS MySQL 8.0開放參數一覽表。
MySQL 8.0支援通過事務ID查詢的小版本為20210930以上,MySQL 5.7小版本為20210630以上。
SQL洞察和審計記錄的SQL語句最大長度為8192位元組,並且SQL語句最大長度受loose_rds_audit_max_sql_size或loose_rds_audit_log_event_buffer_size參數控制,參數取值範圍為
[0,32768]
,單位為位元組:當參數取值小於等於8192位元組時,SQL語句最大長度為參數設定值,超過部分不再記錄。由於資訊採集處理時會增加首碼標註,實際記錄的SQL語句最大長度略小於參數設定值。
當參數取值大於8192位元組時,SQL語句最大長度為8192位元組,超過部分不再記錄。由於資訊採集處理時會增加首碼標註,實際記錄的SQL語句最大長度略小於8192位元組。
說明RDS MySQL 5.6、5.7版本支援loose_rds_audit_max_sql_size參數控制記錄長度。
RDS MySQL 8.0版本支援loose_rds_audit_log_event_buffer_size參數控制記錄長度。
如果您開啟的SQL洞察為試用版,暫不支援調用API(DescribeSQLLogRecords和DescribeSQLLogFiles)查詢審計日誌。
洞察日誌包含鎖等待時間,而慢日誌不包含。
如果使用RDS資料庫代理地址串連,且代理開啟了事務級串連池,由於串連可能會被複用,所以使用
show processlist
命令或者SQL洞察顯示的IP地址和連接埠可能和用戶端實際的IP地址和連接埠不一致。當程式使用Prepare方式時,會在SQL洞察中出現2條語句,一條包含問號,一條包含具體值。
掛載到PolarDB-X 1.0(DRDS)的RDS MySQL執行個體執行一條SQL語句時,由於水平分割(分庫分表)原因,會在RDS MySQL執行個體上產生多條SQL洞察和審計日誌。
開啟SQL洞察和審計
如果您在Log Service的CloudLens for RDS開啟了RDS MySQL執行個體的審計日誌採集功能,系統會自動開啟對應RDS MySQL執行個體的SQL洞察和審計功能。詳情請參見CloudLens for RDS。
如果您未開通SQL洞察和審計功能,您可以通過Binlog日誌進行查看。Binlog日誌只能查詢備份保留時間以內的增、刪、改等SQL語句,不能查看來源IP和帳號資訊。詳情請參見查看本地日誌(Binlog)。
訪問RDS執行個體列表,在上方選擇地區,然後單擊目標執行個體ID。
在左側導覽列中,選擇 。
點擊開啟企業版V3。
勾選需要開啟的功能,點擊提交。
修改SQL洞察和審計資料存放區時間長度
減少SQL洞察和審計資料存放區時間長度後,DAS會立刻將超過儲存時間長度的SQL審計日誌清空。建議您將SQL審計日誌匯出並儲存至本地後,再減少SQL洞察和審計資料存放區時間長度。
訪問RDS執行個體列表,在上方選擇地區,然後單擊目標執行個體ID。
在左側導覽列中,選擇 。
單擊服務設定。
在服務設定頁,修改審計情境的日誌儲存時間長度,然後單擊確定。
關閉SQL洞察和審計
SQL洞察和審計功能關閉後,SQL洞察和審計的日誌會被清空。建議您將SQL洞察和審計的日誌匯出並儲存至本地後,再關閉SQL洞察和審計功能。當重新開啟SQL洞察和審計功能時,SQL洞察和審計的日誌將從本次開啟SQL洞察和審計的時間開始記錄。
訪問RDS執行個體列表,在上方選擇地區,然後單擊目標執行個體ID。
在左側導覽列中,選擇
。在搜索頁簽的日誌列表地區,單擊匯出。
在彈出的對話方塊中,選擇匯出欄位和匯出時間範圍,單擊確認。
匯出完成後,下載已匯出的檔案並妥善儲存。
在服務設定頁,去掉SQL洞察和審計所有功能的勾選,並點擊提交。
遷移不同企業版的SQL洞察和審計資料
企業版 V2相對於企業版 V1,變更了底層儲存架構,通過冷熱混合儲存實現降本增效,使用成本低。而企業版 V3,在冷熱混合儲存的基礎上,按使用的功能細分計費項目,計費更加靈活。
當您的資料庫執行個體支援企業版 V3時,您可以將DAS企業版 V1或V2的資料移轉至企業版 V3,以獲得更加優惠的費用,詳情請參見DAS企業版間資料如何遷移?
遷移操作無法終止和回退,請仔細閱讀遷移說明。