如何檢視 Amazon RDS for MySQL 資料庫執行個體的伺服器活動?

1 分的閱讀內容
0

如何檢視執行 MySQL 之 Amazon Relational Database Service (Amazon RDS) 資料庫執行個體的伺服器活動?

解決方法

您可以使用伺服器活動協助識別效能問題的來源。您可以檢閱 InnoDB 儲存引擎的狀態、識別執行查詢,或者尋找資料庫執行個體上的死結情況。

您必須具備 MySQL PROCESS 伺服器系統管理員特殊權限,才能查看在 MySQL 資料庫執行個體上執行的所有執行緒。如果您沒有系統管理員特殊權限,則 SHOW PROCESSLIST 僅顯示與您正在使用的 MySQL 帳戶相關聯的執行緒。您也必須具備 MySQL PROCESS 伺服器系統管理員特殊權限,才能使用 SHOW ENGINE。而且,您需要 MYSQL PROCESS 伺服器系統管理員特殊權限,才能檢視 InnoDB 儲存引擎狀態的資訊。

若要檢視資料庫執行個體的伺服器活動,請遵循下列步驟:

1.    為您的 MySQL 資料庫執行個體開啟一般和慢速查詢日誌。

2.    連線至執行 MySQL 資料庫引擎的資料庫執行個體

3.    執行下列命令:

SHOW FULL PROCESSLIST\G
SHOW ENGINE INNODB STATUS\G

**注意:**若要檢視每個陳述式前 100 個以上的字元,請使用 FULL 關鍵字。

4.    檢查哪個交易正在等待,以及哪個交易封鎖正在等待的交易。根據您正在執行的 Amazon RDS for MySQL 版本,執行下列其中一個命令:

針對版本 5.6 和 5.7

SELECT r.trx_id waiting_trx_id, r.trx_mysql_thread_id waiting_thread, r.trx_query waiting_query, b.trx_id blocking_trx_id, b.trx_mysql_thread_id blocking_thread, b.trx_query blocking_query FROM information_schema.innodb_lock_waits w INNER JOIN information_schema.innodb_trx b ON b.trx_id = w.blocking_trx_id INNER JOIN information_schema.innodb_trx r ON r.trx_id = w.requesting_trx_id;

針對版本 8.0

ON r.trx_id = w.requesting_engine_transaction_id;INNER JOIN information_schema.innodb_trx r
ON b.trx_id = w.blocking_engine_transaction_id
INNER JOIN information_schema.innodb_trx b
FROM performance_schema.data_lock_waits w
b.trx_query blocking_query
b.trx_mysql_thread_id blocking_thread,
b.trx_id blocking_trx_id,
r.trx_query waiting_query,
r.trx_mysql_thread_id waiting_thread,
r.trx_id waiting_trx_id,

**注意:**最佳實務是以較短的連續間隔(例如 60 秒)收集這些輸出。檢閱多個輸出可以提供更廣泛的引擎狀態視角。這可協助您對效能問題進行疑難排解。


相關資訊

監控 Amazon RDS 執行個體中的指標

AWS 官方
AWS 官方已更新 1 年前