檢查 Aurora 叢集和執行個體的執行時間 - Amazon Aurora

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

檢查 Aurora 叢集和執行個體的執行時間

您可以檢查並監控 Aurora 叢集中自每個資料庫執行個體自上次重新啟動以來的時間長度。Amazon 指 CloudWatch 標會EngineUptime報告自上次啟動資料庫執行個體以來的秒數。您可以在某個時間點檢查此指標,以找出資料庫執行個體的執行時間。您也可以隨時間監控此指標,以偵測何時重新啟動執行個體。

您也可以在叢集層級檢查 EngineUptime 指標。MinimumMaximum 維度會報告叢集中所有資料庫執行個體的最小和最大執行時間值。若要檢查叢集中任何讀取器執行個體重新啟動或因其他原因而重新啟動的最近時間,請使用 Minimum 維度監控叢集層級指標。若要檢查叢集中的哪個執行個體在不重新啟動的情況下工作了最長時間,請使用 Maximum 維度監控叢集層級指標。例如,您可能想要確認叢集中的所有資料庫執行個體在組態變更後重新啟動。

提示

針對長期監控,我們建議您監控個別執行個體的 EngineUptime 指標,而不是在叢集層級監控。將新的資料庫執行個體新增至叢集時,叢集層級 EngineUptime 指標會設為零。這類叢集變更可能會作為維護和擴展操作的一部分發生,例如由 Auto Scaling 執行的操作。

下列CLI範例說明如何檢查叢集中寫入器和讀取器執行個體的EngineUptime指標。這些範例使用名為 tpch100g 的叢集。此叢集具有寫入器資料庫執行個體 instance-1234。它還具有兩個讀取器資料庫執行個體 (instance-7448instance-6305)。

首先,reboot-db-instance 命令會重新啟動其中一個讀取器執行個體。wait 命令會一直等待執行個體完成重新啟動。

$ aws rds reboot-db-instance --db-instance-identifier instance-6305 { "DBInstance": { "DBInstanceIdentifier": "instance-6305", "DBInstanceStatus": "rebooting", ... $ aws rds wait db-instance-available --db-instance-id instance-6305

命 CloudWatch get-metric-statistics令會以一分鐘的間隔檢查過去 5 分鐘的EngineUptime量度。instance-6305 執行個體的執行時間會重設為零,並再次開始向上計數。這個 Linux AWS CLI 範例會使用$()變數替換,將適當的時間戳記插入CLI指令中。它也會使用 Linux sort 命令,依據收集指標的時間排序輸出。該時間戳記值是輸出的每一行中的第三個欄位。

$ aws cloudwatch get-metric-statistics --metric-name "EngineUptime" \ --start-time "$(date -d '5 minutes ago')" --end-time "$(date -d 'now')" \ --period 60 --namespace "AWS/RDS" --statistics Maximum \ --dimensions Name=DBInstanceIdentifier,Value=instance-6305 --output text \ | sort -k 3 EngineUptime DATAPOINTS 231.0 2021-03-16T18:19:00+00:00 Seconds DATAPOINTS 291.0 2021-03-16T18:20:00+00:00 Seconds DATAPOINTS 351.0 2021-03-16T18:21:00+00:00 Seconds DATAPOINTS 411.0 2021-03-16T18:22:00+00:00 Seconds DATAPOINTS 471.0 2021-03-16T18:23:00+00:00 Seconds

叢集的最短執行時間會重設為零,因為叢集中的一個執行個體已重新啟動。叢集的執行時間上限不會重設,因為叢集中至少有一個資料庫執行個體仍然可用。

$ aws cloudwatch get-metric-statistics --metric-name "EngineUptime" \ --start-time "$(date -d '5 minutes ago')" --end-time "$(date -d 'now')" \ --period 60 --namespace "AWS/RDS" --statistics Minimum \ --dimensions Name=DBClusterIdentifier,Value=tpch100g --output text \ | sort -k 3 EngineUptime DATAPOINTS 63099.0 2021-03-16T18:12:00+00:00 Seconds DATAPOINTS 63159.0 2021-03-16T18:13:00+00:00 Seconds DATAPOINTS 63219.0 2021-03-16T18:14:00+00:00 Seconds DATAPOINTS 63279.0 2021-03-16T18:15:00+00:00 Seconds DATAPOINTS 51.0 2021-03-16T18:16:00+00:00 Seconds $ aws cloudwatch get-metric-statistics --metric-name "EngineUptime" \ --start-time "$(date -d '5 minutes ago')" --end-time "$(date -d 'now')" \ --period 60 --namespace "AWS/RDS" --statistics Maximum \ --dimensions Name=DBClusterIdentifier,Value=tpch100g --output text \ | sort -k 3 EngineUptime DATAPOINTS 63389.0 2021-03-16T18:16:00+00:00 Seconds DATAPOINTS 63449.0 2021-03-16T18:17:00+00:00 Seconds DATAPOINTS 63509.0 2021-03-16T18:18:00+00:00 Seconds DATAPOINTS 63569.0 2021-03-16T18:19:00+00:00 Seconds DATAPOINTS 63629.0 2021-03-16T18:20:00+00:00 Seconds

然後另一個 reboot-db-instance 命令會重新啟動叢集的寫入器執行個體。另一個 wait 命令會暫停,直到寫入器執行個體完成重新啟動為止。

$ aws rds reboot-db-instance --db-instance-identifier instance-1234 { "DBInstanceIdentifier": "instance-1234", "DBInstanceStatus": "rebooting", ... $ aws rds wait db-instance-available --db-instance-id instance-1234

現在,寫入器執行個體的 EngineUptime 指標顯示最近已重新啟動執行個體 instance-1234。讀取器執行個體 instance-6305 也隨著寫入器執行個體自動重新啟動。此叢集正在執行 Aurora My SQL 2.09,它不會在寫入器執行個體重新啟動時保持讀取器執行個體執行個體的執行狀態。

$ aws cloudwatch get-metric-statistics --metric-name "EngineUptime" \ --start-time "$(date -d '5 minutes ago')" --end-time "$(date -d 'now')" \ --period 60 --namespace "AWS/RDS" --statistics Maximum \ --dimensions Name=DBInstanceIdentifier,Value=instance-1234 --output text \ | sort -k 3 EngineUptime DATAPOINTS 63749.0 2021-03-16T18:22:00+00:00 Seconds DATAPOINTS 63809.0 2021-03-16T18:23:00+00:00 Seconds DATAPOINTS 63869.0 2021-03-16T18:24:00+00:00 Seconds DATAPOINTS 41.0 2021-03-16T18:25:00+00:00 Seconds DATAPOINTS 101.0 2021-03-16T18:26:00+00:00 Seconds $ aws cloudwatch get-metric-statistics --metric-name "EngineUptime" \ --start-time "$(date -d '5 minutes ago')" --end-time "$(date -d 'now')" \ --period 60 --namespace "AWS/RDS" --statistics Maximum \ --dimensions Name=DBInstanceIdentifier,Value=instance-6305 --output text \ | sort -k 3 EngineUptime DATAPOINTS 411.0 2021-03-16T18:22:00+00:00 Seconds DATAPOINTS 471.0 2021-03-16T18:23:00+00:00 Seconds DATAPOINTS 531.0 2021-03-16T18:24:00+00:00 Seconds DATAPOINTS 49.0 2021-03-16T18:26:00+00:00 Seconds