我的 Amazon Relational Database Service (Amazon RDS) 資料庫連線突然中斷,造成非預期停機時間。為什麼我的資料庫連線中斷?
解決方案
Amazon RDS 資料庫連線可能會因各種原因而中斷。若要了解資料庫連線中斷的原因,請判斷資料庫連線是否在 RDS 資料庫執行個體的維護時段期間或外部中斷。
如果資料庫連線在 RDS 維護時段期間中斷
在資料庫執行個體維護期間,AWS 會執行可能導致資料庫連線中斷的維護活動。
自動次要版本升級 (如果在 Amazon RDS 上啟用)
當 Amazon RDS 指定新的偏好次要引擎版本,且您的資料庫執行個體執行較早版本時,如果您已開啟自動次要版本升級功能,Amazon RDS 會在排定的維護時段期間執行升級。這可能會導致在次要版本升級期間中斷資料庫連線,因為任何引擎層級版本升級都涉及 RDS 停機時間。
硬體維護
當資料庫執行個體的基礎主機在降級的硬體上執行時,Amazon RDS 會排程硬體維護。硬體維護會在為資料庫執行個體設定的維護時段期間執行。在排程維護之前,您會收到有關排程硬體維護時段的電子郵件通知,其中包括維護時間和受影響的可用區域。
作業系統維護
Amazon RDS 會在為資料庫執行個體設定的維護時段期間定期執行基礎作業系統的更新。如果作業系統更新涉及停機時間,Amazon RDS 會為下一個維護時段排程維護。如果不需要維護作業系統更新,您可以透過調整偏好的維護時段來延後維護時段。如果需要維護,則無法延後作業系統更新,並且會在後續的維護時段中套用更新。
透過選取「在下一個維護時段套用」在 Amazon RDS 上執行的修改
對 RDS 組態執行任何修改時,您可以選擇是要立即套用修改,還是在下一個維護時段中套用修改。如果您選擇在下一個維護時段中執行修改,則不會立即停機。在下一個維護期間套用時,下列修改可能會造成停機時間:
- 重新命名資料庫執行個體識別碼
- 修改 DB 執行個體類別
- 變更備份保留期
- 修改資料庫連接埠
- 變更資料庫引擎版本
- 附加新的子網路群組
請參閱資料庫執行個體設定資訊,了解可用於修改的詳細設定,以及資料庫執行個體的影響和停機時間。
如果資料庫連線在 RDS 維護時段外中斷
如果資料庫連線到達用戶端/伺服器端逾時,資料庫連線可能中斷。
在應用程式結束時設定的用戶端逾時參數
在應用程式結束時設定的用戶端逾時參數可能導致資料庫連線中斷。如果查詢的處理時間太長,則工作階段可能會從用戶端不正確地終止。若要解決此問題,請增加用戶端的逾時設定。
在連接至 Amazon RDS 的自訂參數群組中設定的伺服器逾時參數
積極設定 TCP keepalive 會導致用戶端連線逾時。當用戶端閒置的時間達到 tcp_keepalives_idle 中設定的時長以及 tcp_keepalives_count 中設定的訊息數量時,就會發生逾時。當在資料庫執行個體上執行長時間執行的查詢,同時連線正在等待伺服器回應時,也會發生逾時。
如果將 idle_in_transaction_session_timeout 設定為低於預設 24 小時的值,則任何閒置時間超過設定值的工作階段都會結束。如果您積極地設定此值,即使執行的查詢需要更多時間才能從伺服器取得回應,當工作階段閒置時間超過設定的逾時值時,連線也會丟失。
計劃外的資料庫重新啟動/容錯移轉
基礎硬體的暫時性問題可能導致與資料庫執行個體的通訊中斷。硬體問題可能會在多可用區部署中啟動容錯移轉,並透過取代基礎主機在單一可用區部署中進行復原。該問題可能會導致資料庫執行個體運作狀態不佳,因為 RDS 監控系統無法與 RDS 執行個體通訊,以執行運作狀態檢查。
暫時性網路問題會影響資料庫執行個體的基礎主機。內部監控系統偵測到此問題,並主動啟動單一可用區部署的復原,以及多可用區部署的容錯移轉。
當高資料庫負載導致資料庫中的記憶體緊縮,導致 RDS 監控系統無法聯絡基礎主機時,資料庫執行個體就會變得無回應。若要避免因資料庫超載而導致資料庫執行個體容錯移轉並重新啟動,請在資料庫執行個體上適當地設定記憶體參數。
基礎儲存子系統的暫時性問題可能導致 Amazon Elastic Block Store (Amazon EBS) 磁碟區 (由內部監控系統識別) 的延遲提升。作為一項主動措施,監控系統會啟動單一可用區部署的復原。在多可用區部署中,會執行容錯移轉至次要備份。
相關資訊
如何在必要的 Amazon RDS 維護期間最大限度地減少停機時間?
使用作業系統更新
如何解決連線至 Amazon RDS 資料庫執行個體時發生的問題?
如何針對 Amazon RDS 執行個體的異地同步備份容錯移轉和重啟執行根本原因分析?