為什麼我的 Amazon RDS 資料庫執行個體會重新啟動、復原或容錯移轉?

上次更新日期:2022 年 7 月 19 日

我想要知道重新啟動、復原和容錯移轉 Amazon Relational Database Service (Amazon RDS) 執行個體的根本原因。

簡短描述

Amazon RDS 資料庫執行個體會在下列情況下自動執行重新啟動:

當資料庫執行個體顯示潛在問題且無法回應 RDS 運作狀態檢查時,RDS 會自動啟動單一可用區部署的單一可用區復原,並針對多可用區部署啟動多可用區容錯移轉。然後,資料庫執行個體會重新啟動,以便您盡快恢復資料庫作業,而不需要管理介入。

解決方案

若要識別中斷的原因,請檢查 RDS 資料庫執行個體的下列記錄和指標。

Amazon RDS 事件

若要識別執行個體計劃外中斷的根本原因,請檢視過去 24 小時內的所有 Amazon RDS 事件。依預設,所有事件都會以 UTC/GMT 時間註冊。若要存放事件更長時間,請將 Amazon RDS 事件傳送至 Amazon CloudWatch Events。如需詳細資訊,請參閱建立根據 Amazon RDS 事件觸發的規則。當您的執行個體重新啟動時,您會在 RDS 事件通知中看到下列其中一個訊息:

  • RDS 執行個體已由客戶修改:此 RDS 事件訊息表示容錯移轉由 RDS 執行個體修改啟動。
  • 將修改套用至資料庫執行個體類別:此 RDS 事件訊息表示資料庫執行個體類別類型已變更。
    • 在此擴展作業期間,單一可用區部署會在幾分鐘內無法使用。
    • 多可用區部署在執行個體容錯移轉所需的時間內無法使用。此持續時間通常約為 60 秒。這是因為待命資料庫會在新大小的資料庫發生容錯移轉之前升級。然後,您的資料庫會重新啟動,並且引擎會執行復原,以確保您的資料庫保持一致的狀態。
  • 使用者要求資料庫執行個體的容錯移轉:此訊息指出您使用重新啟動透過容錯移轉重新啟動選項,啟動資料庫執行個體的手動重新啟動
  • RDS 異地同步備份執行個體的主要主機運作狀態不佳:該原因表示暫時性的基礎硬體問題,這會導致主要執行個體的通訊中斷。該問題可能會導致執行個體運作狀態不佳,因為 RDS 監控系統無法與 RDS 執行個體通訊,以執行運作狀態檢查。
  • 網路連線中斷導致 RDS 多可用區執行個體的主要主機無法連線:該原因表示多可用區容錯移轉和資料庫執行個體重新啟動是由影響多可用區部署主要主機的暫時性網路問題造成的。內部監控系統偵測到此問題,並啟動容錯移轉。
  • RDS 多可用區主要執行個體忙碌且無回應、已啟動多可用區執行個體啟用,或已完成多可用區執行個體啟用:事件日誌會在下列情況下顯示這些訊息:
    • 主要資料庫執行個體無回應。
    • 資料庫中過多記憶體使用之後的記憶體不足會阻止 RDS 監控系統連線基礎主機。因此,作為一項主動措施,由監控系統重新啟動資料庫。
    • 資料庫執行個體在基礎主機上遇到間歇性網路問題。
    • 執行個體遇到資料庫負載。在這種情況下,您可能會注意到 CloudWatch 指標 CPUUtilizationDatabaseConnectionsIOPS 指標輸送量詳細資料的峰值。您可能還會注意到 Freeablememory 耗盡。
  • 已修補資料庫執行個體:此訊息指出資料庫執行個體在維護時段期間進行了次要版本升級,因為執行個體已啟用自動次要版本升級設定。

CloudWatch 指標

檢視 Amazon RDS 執行個體的 CloudWatch 指標,以檢查資料庫負載問題是否導致中斷。如需詳細資訊,請參閱使用 Amazon CloudWatch 監控 Amazon RDS 指標。檢查指出 RDS 執行個體可用性和運作狀態的下列關鍵指標中是否出現峰值:

  • DatabaseConnections
  • CPUUtilization
  • FreeableMemory
  • WriteIOPS
  • ReadIOPS
  • ReadThroughput
  • WriteThroughput
  • DiskQueueDepth

增強監控

Amazon RDS 會將指標從增強型監控傳送至您的 Amazon CloudWatch Logs 帳戶。這會提供您執行資料庫執行個體之作業系統的即時指標。您可以在主控台上檢視資料庫執行個體的所有系統指標和處理資訊。

您可以將「增強監控」功能的精密度設定為 1、5、10、15、30 或 60。

若要開啟 Amazon RDS 執行個體的「增強監控」功能,請參閱設定和啟用增強監控

Performance Insights

Performance Insights 儀表板包含與資料庫效能相關的資訊,可協助您分析及對效能問題進行疑難排解。您也可以識別在資料庫執行個體上消耗過多資源的查詢和等待事件。Performance Insights 會在資料庫層級收集資料,並在 Performance Insights 儀錶板上顯示資料。如需詳細資訊,請參閱在 Amazon RDS 上使用 Performance Insights 監控資料庫負載。當應用程式端產生資源消耗量增加時,請使用 Performance Insights 儀錶板中的支援 SQL ID,並將其與對應的查詢進行比對。最佳做法是使用此資訊來調整查詢的效能,並使用 DBA 的指引將工作負載最佳化:

  1. 開啟 Amazon RDS 主控台
  2. 在導覽窗格中,選擇 Performance Insights
  3. 在 Performance Insights 頁面上,選取您的資料庫執行個體。您可以檢視該資料庫執行個體的績效詳情儀表板。
  4. 選取發生問題的時間範圍。
  5. 選擇 Top SQL (常上層 SQL) 索引標籤。
  6. 選擇 settings (設定) 圖示,然後開啟 Support ID (支援 ID)。
  7. 選擇 Save (儲存)。

RDS 資料庫日誌

若要疑難排解 Amazon RDS 資料庫執行個體中斷的原因,您可以使用 Amazon RDS 主控台或 Amazon RDS API 操作來檢視、下載或觀看資料庫日誌。還可以查詢一些載入到資料庫資料表中的資料庫日誌檔案。如需詳細資訊,請參閱監控 Amazon RDS 日誌檔案

處理 RDS 執行個體中斷時,請牢記下列最佳做法:

  • 在執行個體上啟用多可用區部署,以減少中斷期間的停機時間。使用多可用區部署時,RDS 會自動在不同的可用區域或兩個可讀取待命中佈建和維護同步待命複本。如需詳細資訊,請參閱 Amazon RDS 多可用區
  • 根據您的偏好調整資料庫執行個體維護時段。只有在套用系統變更 (例如資料庫執行個體類別的變更) 且需要中斷時,資料庫執行個體才能在此期間無法使用,而且只有進行必要變更所需的最短時間時,才能使用資料庫執行個體。如需詳細資訊,請參閱維護資料庫執行個體。如果您不希望執行個體進行次要版本自動升級,可以關閉此選項。如需詳細資訊,請參閱自動升級次要引擎版本
  • 確認您有足夠的資源分配給資料庫來執行查詢。使用 Amazon RDS 時,分配的資源量取決於執行個體類型。此外,某些查詢 (例如預存程序) 可能會佔用無限量的記憶體。因此,如果執行個體因為缺乏資源而頻繁重新啟動,請考慮縱向擴展資料庫執行個體類別,以滿足應用程式不斷增加的需求。
  • 為避免執行個體限制,請在 RDS 關鍵指標上設定 Amazon CloudWatch 警示,以指出 RDS 執行個體的可用性和運作狀態。例如,您可以在 FreeableMemory 指標上設定 CloudWatch 警示,以便在可用記憶體達到 95% 時收到通知。最佳做法是保持至少 5% 的執行個體記憶體可用。如需更多資訊,請參閱如何篩選增強監控 CloudWatch Logs 以生成 Amazon RDS 的自動自訂指標?
  • 若要在 RDS 執行個體發生容錯移轉時收到通知,請訂閱 Amazon RDS 事件通知。如需詳細資訊,請參閱如何建立 Amazon RDS 事件訂閱?
  • 若要最佳化資料庫效能,請確認已正確調整您的查詢。否則,您可能會遇到效能問題和延長等待時間。
  • 若要針對 CPU、記憶體或任何其他資源運算進行任何類型負載的疑難排解。請參閱如何對 Amazon RDS 或 Amazon Aurora PostgreSQL 的高 CPU 使用率問題進行疑難排解?