管理適用於 My RDS 的全域狀態歷史記錄SQL - Amazon Relational Database Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

管理適用於 My RDS 的全域狀態歷史記錄SQL

提示

若要分析資料庫效能,您也可以在 Amazon 上使用 Performance InsightsRDS。如需詳細資訊,請參閱利用 RDSAmazon上的 Performance Insights 來監控資料庫負載

我的SQL 會維護許多狀態變數,提供其操作的相關資訊。此值可協助您偵測資料庫執行個體上的鎖定或記憶體問題。這些狀態變數的值是從上次啟動資料庫執行個體以來累積的。您可以使用 FLUSH STATUS 命令,將大部分狀態變數重設為 0。

為了允許監控這些值一段時間,Amazon RDS提供一組程序,這些程序會隨著時間的推移快照這些狀態變數的值,並將其寫入資料表,以及自上次快照以來的任何變更。此基礎設施稱為全域狀態歷史記錄 GoSH),安裝在從 5.5.23 版開始的所有 MySQL 資料庫執行個體上。GoSH 預設為停用。

若要啟用 GoSH,首先從資料庫參數群組啟用事件排程器,方法是將參數 event_scheduler 設為 ON。對於執行 MySQL 5.7 的 MySQL 資料庫執行個體,也請將 參數show_compatibility_56設定為 1。如需建立和修改資料庫參數群組的詳細資訊,請參閱 的參數組 RDS。如需有關啟用此參數之副作用的資訊,請參閱 My 5.7 參考手冊 中的 show_compatibility_56SQL

然後,您可以使用下表中的程序,來啟用和設定 GoSH。首先連接至您的 MySQL 資料庫執行個體,然後發出適當的命令,如下所示。如需詳細資訊,請參閱連線至執行 MySQL 資料庫引擎的資料庫執行個體。針對每個程序,執行下列命令並取代 procedure-name:

CALL procedure-name;

下表列出可用於 的所有程序 procedure-name 在上一個命令中。

程序 描述

mysql.rds_enable_gsh_collector

啟用 GoSH 來依據 rds_set_gsh_collector 指定的間隔建立預設快照。

mysql.rds_set_gsh_collector

指定快照之間的間隔 (以分鐘為單位)。預設值為 5。

mysql.rds_disable_gsh_collector

停用快照。

mysql.rds_collect_global_status_history

隨需建立快照。

mysql.rds_enable_gsh_rotation

啟用依 mysql.rds_global_status_history 指定的間隔將 mysql.rds_global_status_history_old 資料表的內容輪換至 rds_set_gsh_rotation

mysql.rds_set_gsh_rotation

指定資料表輪換之間的間隔 (以天為單位)。預設值為 7。

mysql.rds_disable_gsh_rotation

停用資料表輪換。

mysql.rds_rotate_global_status_history

隨需將 mysql.rds_global_status_history 資料表的內容輪換至 mysql.rds_global_status_history_old

當 GoSH 執行中時,您可以查詢寫入它的資料表。例如,若要查詢 Innodb 緩衝集區的命中率,您將發出下列查詢:

select a.collection_end, a.collection_start, (( a.variable_Delta-b.variable_delta)/a.variable_delta)*100 as "HitRatio" from mysql.rds_global_status_history as a join mysql.rds_global_status_history as b on a.collection_end = b.collection_end where a. variable_name = 'Innodb_buffer_pool_read_requests' and b.variable_name = 'Innodb_buffer_pool_reads'