偵錯和診斷工具 util.debug.collectDiagnostics()
可讓您收集 MySQL 伺服器上的診斷資料。
診斷報告會以 zip 檔案的形式產生到本機目錄或指定的路徑。
util.debug.collectDiagnostics()
可讓您從獨立伺服器、複寫拓撲的成員、InnoDB 叢集和 MySQL HeatWave Service 資料庫系統收集原始診斷資料。
此工具會產生 TSV 和 YAML 格式的檔案。
診斷工具具有下列簽章
util.debug.collectDiagnostics("path/",{options})
-
"
:您可以指定路徑、檔案名稱或路徑和檔案名稱。path
"如果未提供檔案名稱,則檔案會寫入至指定的位置,並使用檔案名稱
mysql-diagnostics-
。YYYYMMDD-HHMMSS
.zip如果提供沒有路徑的檔案名稱,則檔案會寫入至目前目錄。
-
options
:選項字典,如果為空可以省略。請參閱收集診斷的選項以取得可用的選項。如果未定義選項,則此工具會產生預設的診斷集。每個選項都會在輸出中新增一個或多個報告。
下列範例在 2022 年 4 月 6 日上午 10:02:06 執行,會在 C:/Temp/
目錄中產生預設的診斷集 mysql-diagnostics-20220406-100206.zip
util.debug.collectDiagnostics("C:/Temp/")
下列範例會在 C:/Temp/
目錄中產生名為 myDiagnostics.zip
的檔案中的預設診斷集
util.debug.collectDiagnostics("C:/Temp/myDiagnostics.zip")
需要尾端的正斜線才能定義路徑。如果您省略它,此工具會在命名的路徑中建立名為 Temp.zip
的檔案。例如,C:/Temp.zip
。無法覆寫現有的檔案。
主機資訊 (host_info
) 僅從 localhost 收集。無法從遠端主機收集主機資訊。如果您的 MySQL 伺服器在遠端主機上執行,則只會收集 MySQL 伺服器資訊。
在 Microsoft Windows 平台上,主機資訊是使用 MSInfo
工具收集的。這會在工具執行時產生額外的進度對話方塊。
-
allMembers: [true|false]
-
預設值為
false
。如果設定為true
,則會針對受管理拓撲的所有成員 (例如 InnoDB 叢集) 產生診斷,並 ping 拓撲的每個成員。每個診斷都會加上一個數字的前置詞,1 (一) 代表 MySQL Shell 連接的伺服器,並針對偵測到的每個成員遞增。只有在 Shell 連線至 localhost 上拓撲的成員時,才會產生 Ping 結果 (
ping.txt
)。無法要求來自遠端主機的 ping 結果。allMembers: true
不會建立額外的報告。所有收集的資料都包含在預設報告中。 -
innodbMutex: [true|false]
-
預設值為
false
。如果設定為true
,則會收集SHOW ENGINE INNODB MUTEX
的輸出。此選項會產生下列額外的報告
innodb_mutex
:列出SHOW ENGINE INNODB MUTEX
的輸出。
注意此選項可能會影響效能。
-
schemaStats: [true|false]
-
預設值為
false
。如果設定為true
,則會收集綱要大小統計資料。此選項會產生下列額外的報告
schema_object_overview
:列出schema_object_overview
檢視的內容。top_biggest_tables
:列出連線伺服器上最大的表格和效能緩慢的指標。
-
slowQueries: [true|false]
-
預設值為
false
。如果設定為true
,則會從慢速查詢日誌收集慢速查詢資訊。此選項需要您在目標伺服器上啟用
slow_log
,並將其輸出設定為TABLE
。此選項會產生下列額外的報告
slow_log
:列出mysql.slow_log
表格的內容。
-
ignoreErrors: [true|false]
預設值為
false
。如果設定為true
,則會忽略用於產生診斷報告的查詢所產生的任何錯誤。-
customSql
:array
-
要執行的一或多個 SQL 陳述式。
例如
{"customSql": ["statement1", "statement2", "statement3"]}
-
customShell
:array
-
要執行的一或多個 shell (DOS、BOURNE 等) 命令。
例如
{"customShell": ["command1", "command2", "command3"]}
重要事項這些命令會使用執行 MySQL Shell 的使用者的權限執行,應謹慎使用。