重要
如果您開通了DAS企業版 V3,搜尋功能將更名為審計功能。
前提條件
已在DAS中接入對應的資料庫執行個體,並且接入狀態顯示為接入正常。
執行個體已開啟SQL洞察和審計,詳情請參見開啟SQL洞察和審計。
通過RAM使用者使用搜尋功能時,需要為RAM使用者授予AliyunHDMReadOnlyWithSQLLogArchiveAccess許可權,詳情請參見通過系統權限原則授權子帳號。
注意事項
日誌列表中SQL語句的狀態為成功時,只表示該條SQL執行成功且沒有異常。例如,發生交易回復時,事務中的單條SQL執行成功且沒有異常,那麼日誌列表中該條SQL的狀態會標識為成功。
對於RDS MySQL和PolarDB MySQL版執行個體,由於串連可能會被複用,所以日誌列表中顯示的IP地址和連接埠,可能會與用戶端實際的IP地址和連接埠不一致。詳情請參見RDS MySQL的串連池或PolarDB MySQL版的串連池。
SQL日誌中記錄的SQL語句最大長度為8192位元組,超過部分不再記錄。其中RDS MySQL和PolarDB MySQL版執行個體記錄的SQL語句最大長度受參數控制:
開啟高級查詢時,當資料庫執行個體的版本滿足如下要求時,支援使用事務ID進行查詢。
操作步驟
登入DAS控制台。
在左側導覽列中,單擊智能營運中心 > 執行個體監控。
找到目標執行個體,單擊執行個體ID,進入目標執行個體詳情頁。
在左側導覽列單擊SQL洞察和審計,然後在右側開啟的頁面單擊搜索,設定如下參數作為查詢條件。
如果您開通了DAS企業版 V3,請在右側開啟的頁面單擊審計。
參數 | 說明 |
時間範圍 | 根據實際需要選取查詢的時間範圍。 線上查詢時間範圍最多為24小時,您可以在資料庫執行個體SQL資料存放區時間長度範圍內設定任意的查詢開始時間,查看最多24小時的資料。這是因為SQL洞察記錄所有資料庫行為,會記錄大量SQL語句,線上查詢選擇時間範圍過大,會導致長時間沒有返回查詢結果,甚至查詢逾時。 說明 只能查詢開啟DAS企業版後且在SQL資料存放區時間長度範圍內的資料。 如果需要查詢更大時間範圍的SQL記錄,請您匯出後進行查詢。匯出功能會非同步匯出日誌,適合大時間範圍內的查詢。 當SQL洞察和審計的資料採用冷熱混合儲存時,當前只支援查詢和匯出最多24小時的資料。
|
關鍵字 | 可多欄位組合查詢,不支援模糊查詢,欄位間以空格分隔。 |
使用者 | 使用者名稱,可組合查詢,如:user1 user2 user3。 |
資料庫 | 可組合查詢,如:DB1 DB2 DB3。 |
操作類型 | 選擇需要查詢的操作類型,可多選。 |
單擊查詢,即可看到日誌列表中SQL語句的具體資訊。
您可單擊匯出,勾選需要的匯出欄位來匯出SQL記錄。通過設定匯出時間範圍來匯出更大時間範圍的SQL記錄。
對於採用冷熱混合儲存的SQL洞察和審計,匯出資料時,請選擇SQL日誌中不包含的CSV分隔字元,並參見設定並開啟匯出的CSV檔案,使匯出資料可以分列顯示。

設定並開啟匯出的CSV檔案
當匯出的SQL日誌包含資料分隔字元時,使用Excel等工具開啟CSV檔案時可能會出現資料沒有分列顯示的現象。為了避免該問題,採用冷熱混合儲存的搜尋功能在匯出CSV檔案時,增加了可供選擇的CSV分隔字元。本文以Windows系統下的Excel 2019版為例,介紹如何設定CSV檔案,使匯出資料可以分列顯示。
建立匯出任務時,在提示介面,選擇SQL日誌中不包含的分隔字元,例如$
。

使用Excel工具開啟匯出的CSV檔案。
選中需要分列顯示的資料,在Excel工具列中選擇資料 > 分列。
在文本分列嚮導的未經處理資料類型地區,選擇分隔字元號,單擊下一步。
在分隔字元號地區,選擇其他並輸入$
,單擊下一步。
在資料預覽地區,可預覽分列的效果。
在列資料格式地區,選擇常規,單擊完成。
常見問題
Q:為什麼RDS MySQL和PolarDB MySQL版資料庫執行個體搜尋功能的日誌列表中,有些SQL語句實際有資料返回,但掃描行數顯示為0?
A:資料庫執行個體開啟了query_cache_type
。日誌列表中,SQL語句的掃描行數統計的是在InnoDB引擎層掃描的行數,開啟query_cache_type
後,MySQL會嘗試將查詢結果緩衝起來,如果後續有相同的查詢請求到來,且查詢快取命中,則不會再到InnoDB層進行查詢,直接返回緩衝結果。因此,實際有資料返回,但日誌列表中統計的掃描行數為0。
Q:為什麼無法查詢到RDS PostgreSQL執行個體中執行失敗的SQL?
A:對於RDS PostgreSQL執行個體,執行失敗的SQL會被記錄在執行個體的錯誤記錄檔中,而不會被記錄在審計日誌中。查詢執行個體的錯誤記錄檔請參見查看日誌。
Q:為什麼日誌列表中展示的資料庫名稱和SQL語句中的不一致?
A:日誌列表中所展示的資料庫名稱是從會話中擷取的,而SQL語句中的資料庫名稱則由使用者指定,取決於使用者的輸入或查詢的設計,例如跨資料庫查詢、動態SQL等情境。兩者之間可能存在不一致的情況。
Q:開啟SQL洞察和審計對資料庫效能有影響嗎?影響有多大?
A:有影響,影響極小,幾乎不會被感知。
具體到資源佔用情況:
相關API
對於RDS MySQL、RDS PostgreSQL和RDS SQL Server資料庫執行個體可以使用如下API介面查詢SQL日誌: