維持資料庫執行個體 - Amazon Relational Database Service

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

維持資料庫執行個體

Amazon RDS 會定期在 Amazon RDS 資源上執行維護。下列主題說明這些維護動作,以及如何套用這些動作。

資料庫執行個體維護更新概觀

維護通常涉及更新資料庫執行個體中的以下資源:

  • 基礎硬體

  • 基礎作業系統 (OS)

  • 資料庫引擎版本

作業系統更新大多是因為安全性問題。我們建議您盡快執行。如需作業系統更新的詳細資訊,請參閱 將更新套用至資料庫執行個體

維護更新期間的離線資源

進行某些維護項目時,Amazon RDS 需要將您的資料庫執行個體短暫離線。需要資源離線的維護項目包括必要的作業系統或資料庫修補。所需的修補程式僅會針對與安全性和執行個體可靠性相關的修補程式自動安排。這類修補不常發生,通常每隔幾個月進行一次。維護僅需片刻的時間即可完成。

延遲資料庫執行個體修改

您已選擇不立即套用的延遲資料庫執行個體修改,將會在下一次維護時段套用。例如,您可能選擇在維護時段變更資料庫執行個體類別或參數群組。您使用待定重新開機設定所指定的這類修改不會顯示在待定維護清單中。如需修改資料庫執行個體的相關資訊,請參閱修改 Amazon RDS 資料庫執行個體

若要查看下一個維護時段待定的修改,請使用 describe-db-instances AWS CLI 命令並檢查 PendingModifiedValues 欄位。

DescribePendingMaintenanceActions API 的最終一致性

Amazon RDS DescribePendingMaintenanceActions API 遵循最終一致性模型。這表示所有後續 RDS DescribePendingMaintenanceActions命令可能不會立即看到命令的結果。當您使用先前的 API 命令DescribePendingMaintenanceActions後立即使用 時,請記住這一點。

最終一致性可能會影響您管理維護更新的方式。例如,如果您執行 ApplyPendingMaintenanceActions命令來更新資料庫執行個體的資料庫引擎版本,最終可見於 DescribePendingMaintenanceActions。在此案例中, DescribePendingMaintenanceActions可能會顯示即使未套用維護動作。

若要管理最終一致性,您可以執行下列動作:

  • 在您執行命令來修改資料庫執行個體之前,請先確認其狀態。使用指數退避演算法執行適當的DescribePendingMaintenanceActions命令,以確保您有足夠的時間讓上一個命令透過系統傳播。若要這樣做,請重複執行 DescribePendingMaintenanceActions命令,從幾秒鐘的等待時間開始,然後逐漸增加到五分鐘的等待時間。

  • 在後續命令之間新增等待時間,即使DescribePendingMaintenanceActions命令傳回準確的回應。從幾秒鐘的等待時間開始套用指數退避演算法,並逐漸增加到大約五分鐘的等待時間。

檢視待定的維護更新

使用 RDS 主控台 AWS CLI、 或 RDS API,檢視您的資料庫執行個體是否可使用維護更新。如果有可用的更新,則會在 Amazon RDS 主控台上資料庫執行個體維護欄中指出,如下圖所示。

維護動作可供使用,並將在下一個維護時段套用。

如果資料庫執行個體沒有可用的維護更新,欄的值就會是 none (無)

如果資料庫執行個體有可用的維護更新,就可能是以下的欄值:

  • 必要 – 維護動作將套用至資源,無法無限期延遲。

  • available (可用) – 維護動作可用,但不會自動套用至資源。您可手動套用。

  • next window (下個時段) – 維護動作會在下個維護時段中套用到資源。

  • 進行中 – 正在將維護動作套用至資源。

如有更新可用,您可執行下列操作之一:

  • 如果維護值是下一個視窗,請選擇從動作延遲升級,以延遲維護動作。您無法延遲已啟動的維護動作。

  • 立即套用維護動作。

  • 在下一個維護時段套用維護動作。

  • 不採取動作。

使用 採取動作 AWS Management Console
  1. 選擇資料庫執行個體以顯示其詳細資訊。

  2. 選擇 Maintenance & backups (維護和備份)。待定的維護動作隨即出現。

  3. 選擇要採取的動作,然後選擇何時套用。

RDS 資料庫執行個體的待定維護項目。

維護時段決定等待中的操作何時開始,但不限制這些操作的總執行時間。維護操作不保證在維護時段結束之前完成,可能持續到超過指定的結束時間。如需詳細資訊,請參閱Amazon RDS 維護時段

您也可以執行 describe-pending-maintenance-actions AWS CLI 命令,檢視資料庫執行個體是否有可用的維護更新。

如需套用維護更新的資訊,請參閱 將更新套用至資料庫執行個體

Amazon RDS 的維護動作

下列維護動作適用於 RDS 資料庫執行個體:

  • ca-certificate-rotation – 更新資料庫執行個體的 Amazon RDS 憑證授權單位憑證。

  • db-upgrade – 升級資料庫執行個體的資料庫引擎版本。

  • hardware-maintenance – 對資料庫執行個體的基礎硬體執行維護。

  • system-update – 更新資料庫執行個體的作業系統。

異地同步備份部署的維護

將資料庫執行個體當作多可用區部署來執行時,可以進一步減少維護事件的影響。此結果是因為 Amazon RDS 會遵循下列步驟套用作業系統更新:

  1. 在待命時執行維護。

  2. 將待命提升為主要。

  3. 在原本的主要執行個體上執行維護作業,使其成為新的備用執行個體。

如果在多可用區部署中升級資料庫執行個體的資料庫引擎,則 Amazon RDS 會同時修改主要及次要資料庫執行個體。在此情況下,多可用區部署中的主要及次要資料庫執行個體在升級期間無法使用。此操作會造成停機,直到升級完成為止。停機持續時間依資料庫執行個體大小而有所不同。

如果需要套用基礎作業系統修補程式,則需要短暫的異地同步備份容錯移轉,才能將修補程式套用至主要資料庫執行個體。此容錯移轉通常持續不到一分鐘。

如果您的資料庫執行個體執行 RDS for MySQL、RDS for PostgreSQL 或 RDS for MariaDB,您可以使用藍/綠部署,將升級所需的停機時間降至最低。如需詳細資訊,請參閱使用 Amazon RDS 藍/綠部署進行資料庫更新。如果您在多可用區部署中升級 RDS for SQL Server 或 RDS Custom for SQL Server 資料庫執行個體,則 Amazon RDS 會執行滾動升級,因此只有在容錯移轉期間才會發生中斷。如需詳細資訊,請參閱異地同步備份考量

如需異地同步備份部署的詳細資訊,請參閱設定和管理 Amazon 的多可用區部署 RDS

Amazon RDS 維護時段

維護時段是每週套用任何系統變更的時間間隔。每個資料庫執行個體都有每週維護時段。維護時段是控制何時發生修改和軟體修補的機會。如需調整維護時段的詳細資訊,請參閱 調整偏好的資料庫執行個體維護時段

套用維護作業的期間,RDS 會使用資料庫執行個體上的部分資源。您可能會發現,該操作對效能會造成些許影響。在極少數情況下,資料庫執行個體需要執行異地同步備份容錯移轉,才能完成維護更新作業。

若在特定某週排定維護事件,系統將在指定的 30 分鐘維護時段內啟動該事件。此外,多數維護事件也能在 30 分鐘的維護時段內完成,但較大型的維護事件可能需要 30 分鐘以上才能完成。資料庫執行個體停止時,維護時段會暫停。

30 分鐘的維護時段是從每個區域之 8 小時時段內隨機選取的。若您在資料庫執行個體建立期間,沒有指定維護時段,則 RDS 會在一週內隨機選取一天,並指派 30 分鐘的維護時段。

下表顯示指派 AWS 區域 預設維護時段的每個時段的時段。

區域名稱 區域 時間區塊
美國東部 (維吉尼亞北部) us-east-1 03:00–11:00 UTC
美國東部 (俄亥俄) us-east-2 上午 3 時至 11 時 (UTC)
美國西部 (加利佛尼亞北部) us-west-1 上午 6 時至下午 2 時 (UTC)
美國西部 (奧勒岡) us-west-2 上午 6 時至下午 2 時 (UTC)
非洲 (開普敦) af-south-1 上午 3 時至 11 時 (UTC)
亞太區域 (香港) ap-east-1 06:00–14:00 UTC
亞太區域 (海德拉巴) ap-south-2 06:30–14:30 UTC
亞太區域 (雅加達) ap-southeast-3 08:00–16:00 UTC
亞太地區 (馬來西亞) ap-southeast-5 09:00–17:00 UTC
亞太區域 (墨爾本) ap-southeast-4 上午 11 時至下午 7 時 (UTC)
亞太區域 (孟買) ap-south-1 上午 6 時至下午 2 時 (UTC)
亞太區域 (大阪) ap-northeast-3 下午 10 時至 11 時 59 分 (UTC)
亞太區域 (首爾) ap-northeast-2 下午 1 時至 9 時 (UTC)
亞太區域 (新加坡) ap-southeast-1 下午 2 時至 10 時 (UTC)
亞太區域 (雪梨) ap-southeast-2 中午 12 時至下午 8 時 (UTC)
亞太區域 (東京) ap-northeast-1 下午 1 時至 9 時 (UTC)
加拿大 (中部) ca-central-1 03:00–11:00 UTC
加拿大西部 (卡加利) ca-west-1 18:00–02:00 UTC
中國 (北京) cn-north-1 上午 6 時至下午 2 時 (UTC)
中國 (寧夏) cn-northwest-1 上午 6 時至下午 2 時 (UTC)
歐洲 (法蘭克福) eu-central-1 下午 9 時至上午 5 時 (UTC)
歐洲 (愛爾蘭) eu-west-1 下午 10 時至上午 6 時 (UTC)
歐洲 (倫敦) eu-west-2 22:00–06:00 UTC
歐洲 (米蘭) eu-south-1 上午 2 時至 10 時 (UTC)
Europe (Paris) eu-west-3 下午 11 時 59 分至上午 7 時 29 分 (UTC)
歐洲 (西班牙) eu-south-2 上午 2 時至 10 時 (UTC)
歐洲 (斯德哥爾摩) eu-north-1 下午 11 時至上午 7 時 (UTC)
歐洲 (蘇黎世) eu-central-2 上午 2 時至 10 時 (UTC)
以色列 (特拉維夫) il-central-1 03:00–11:00 UTC
Middle East (Bahrain) me-south-1 06:00–14:00 UTC
中東 (阿拉伯聯合大公國) me-central-1 上午 5 時至下午 1 時 (UTC)
南美洲 (聖保羅) sa-east-1 上午 12 時至 8 時 (UTC)
AWS GovCloud (美國東部) us-gov-east-1 下午 5 時至上午 1 時 (UTC)
AWS GovCloud (美國西部) us-gov-west-1 上午 6 時至下午 2 時 (UTC)

調整偏好的資料庫執行個體維護時段

維護時段應落在使用量最低的時段,因此可能需要不時進行調整。除非系統套用變更 (例如資料庫執行個體類別中的變更) 及要求停機,否則這段時間無法使用您的叢集或執行個體。無法使用資料庫執行個體的時間,僅為執行必要變更所需的最短時間。

在以下範例中,您可以針對資料庫執行個體調整偏好的維護時段。

對於此範例,我們將假設名為 mydbinstance 的資料庫執行個體存在,且偏好的維護時段為「UTC 時間週日 05:00 至週日 06:00」。

調整偏好的維護時段
  1. 登入 AWS Management Console ,並在 https://console.aws.amazon.com/rds/:// 開啟 Amazon RDS 主控台。

  2. 在導覽窗格中選擇 Databases (資料庫),然後選取您要修改的資料庫執行個體。

  3. 選擇 Modify (修改)Modify DB instance (修改資料庫執行個體) 頁面隨即出現。

  4. Maintenance (維護) 區段中,更新維護時段。

    注意

    資料庫執行個體的維護時段和備份時段不能重疊。若您輸入的維護時段值與備份時段重疊,即會出現錯誤訊息。

  5. 選擇 Continue (繼續)

    在確認頁面上,檢閱您的變更。

  6. 選取 Apply immediately (立即套用),就能立刻將變更套用至維護時段。

  7. 選擇修改資料庫執行個體以儲存您的變更。

    或者,選擇 Back (上一步) 以編輯變更,或是選擇 Cancel (取消) 以取消變更。

若要調整偏好的維護時段,請使用 AWS CLI modify-db-instance命令搭配下列參數:

  • --db-instance-identifier

  • --preferred-maintenance-window

在下列程式碼範例中,系統會將維護時段設為 UTC 時間週二上午 4:00 至 4:30。

對於 Linux、 macOS或 Unix:

aws rds modify-db-instance \ --db-instance-identifier mydbinstance \ --preferred-maintenance-window Tue:04:00-Tue:04:30

在 Windows 中:

aws rds modify-db-instance ^ --db-instance-identifier mydbinstance ^ --preferred-maintenance-window Tue:04:00-Tue:04:30

若要調整偏好的維護時段,請搭配下列參數執行 Amazon RDS API ModifyDBInstance 操作:

  • DBInstanceIdentifier

  • PreferredMaintenanceWindow

將更新套用至資料庫執行個體

透過 Amazon RDS,即可自行選擇套用維護操作的時機。您可以使用 AWS Management Console AWS CLI或 RDS API 來決定 Amazon RDS 何時套用更新。

管理資料庫執行個體的更新內容​
  1. 登入 AWS Management Console ,並在 https://console.aws.amazon.com/rds/:// 開啟 Amazon RDS 主控台。

  2. 在導覽窗格中,選擇 Databases (資料庫)。

  3. 選擇具有必要更新的資料庫執行個體

  4. 針對 Actions (動作),選擇下列其中一項:

    • 立即修補

    • 下一個視窗的修補程式

      注意

      如果您在下一個視窗選擇修補程式,但之後想要延遲更新,您可以選擇延遲升級。如果維護動作已經啟動,則無法延遲維護動作。

      若要取消維護動作,請修改資料庫執行個體並停用 Auto minor version upgrade (自動次要版本升級)

若要將待定更新套用至資料庫執行個體,請使用 apply-pending-maintenance-action AWS CLI 命令。

範例

對於 Linux、 macOS或 Unix:

aws rds apply-pending-maintenance-action \ --resource-identifier arn:aws:rds:us-west-2:001234567890:db:mysql-db \ --apply-action system-update \ --opt-in-type immediate

在 Windows 中:

aws rds apply-pending-maintenance-action ^ --resource-identifier arn:aws:rds:us-west-2:001234567890:db:mysql-db ^ --apply-action system-update ^ --opt-in-type immediate
注意

若要延期維護動作,請指定 undo-opt-in--opt-in-type。如果維護動作已經啟動,則無法指定 undo-opt-in--opt-in-type

若要取消維護動作,請執行 modify-db-instance AWS CLI 命令並指定 --no-auto-minor-version-upgrade

若要傳回至少有一個待處理更新的資源清單,請使用 describe-pending-maintenance-actions AWS CLI 命令。

範例

對於 Linux、 macOS或 Unix:

aws rds describe-pending-maintenance-actions \ --resource-identifier arn:aws:rds:us-west-2:001234567890:db:mysql-db

在 Windows 中:

aws rds describe-pending-maintenance-actions ^ --resource-identifier arn:aws:rds:us-west-2:001234567890:db:mysql-db

您也可以指定 describe-pending-maintenance-actions AWS CLI 命令的 --filters 參數,傳回資料庫執行個體的資源清單。--filters 命令的格式為:Name=filter-name,Value=resource-id,...

以下為篩選條件中,Name 參數可接受的值:

  • db-instance-id – 可接受資料庫執行個體識別符或 Amazon Resource Name (ARN) 的清單。在系統所傳回的資料庫執行個體待處理維護動作清單中,只會包含以這些識別符或 ARN 識別的項目。

  • db-cluster-id – 可接受資料庫叢集識別符或 Amazon Aurora ARN 的清單。在系統所傳回的資料庫叢集待處理維護動作清單中,只會包含以這些識別符或 ARN 識別的項目。

例如,下方範例將傳回 sample-instance1sample-instance2 資料庫執行個體的待處理維護動作。

範例

對於 Linux、 macOS或 Unix:

aws rds describe-pending-maintenance-actions \ --filters Name=db-instance-id,Values=sample-instance1,sample-instance2

在 Windows 中:

aws rds describe-pending-maintenance-actions ^ --filters Name=db-instance-id,Values=sample-instance1,sample-instance2

若要將更新內容套用至資料庫執行個體,請呼叫 Amazon RDS API ApplyPendingMaintenanceAction 操作。

若要傳回至少具有一項待處理更新的資源清單,請呼叫 Amazon RDS API DescribePendingMaintenanceActions 操作。

RDS 資料庫執行個體的作業系統更新

RDS for Db2、RDS for MariaDB、RDS for MySQL、RDS for PostgreSQL、RDS for SQL Server 和 RDS for Oracle 資料庫執行個體偶爾需要作業系統更新。Amazon RDS 將作業系統升級至較新版本,以改善資料庫效能和客戶的整體安全狀態。通常,更新大約需要 10 分鐘。作業系統更新不會變更資料庫執行個體的資料庫引擎版本或資料庫執行個體類別。

作業系統更新可以是選用的,也可以是強制的。

  • 可以隨時套用選用更新。雖然這些更新是選用的,但建議您定期套用更新,讓 RDS 機群保持最新狀態。RDS 不會自動套用這些更新。

    若要在新的選用作業系統修補程式可用時收到通知,您可以訂閱安全修補事件類別中的 RDS-EVENT-0230。如需訂閱 RDS 事件的相關資訊,請參閱 訂閱 Amazon RDS 事件通知

    注意

    RDS-EVENT-0230 不適用於作業系統發行版升級。

  • 強制更新為必要的更新,且有套用日期。請規劃將更新排程在此套用日期之前。在指定的套用日期之後,Amazon RDS 會在您指派的其中一個維護時段期間自動將資料庫執行個體的作業系統升級至最新版本。

注意

為了履行各種合規義務,可能需要將所有選用與強制更新保持為最新的狀態。建議您在維護時段期間定期套用 RDS 提供的所有更新。

您可以使用 AWS Management Console 或 AWS CLI 來取得作業系統升級類型的相關資訊。

使用 取得更新資訊 AWS Management Console
  1. 登入 AWS Management Console 並開啟位於 https://https://console.aws.amazon.com/rds/ 的 Amazon RDS 主控台。

  2. 在導覽窗格中,選擇 Databases (資料庫),然後選取資料庫執行個體。

  3. 選擇 Maintenance & backups (維護和備份)

  4. Pending maintenance (待定維護) 區段中,尋找作業系統更新,然後檢查 Status (狀態) 值。

在 中 AWS Management Console,選用更新將其維護狀態設定為可用,並且沒有套用日期,如下圖所示。

選用作業系統更新。

強制更新將其維護 Status (狀態) 設定為 required (必要),且具有 Apply date (套用日期),如下圖所示。

必要的作業系統更新。

若要從 取得更新資訊 AWS CLI,請使用 describe-pending-maintenance-actions 命令。

aws rds describe-pending-maintenance-actions

強制作業系統更新包括 AutoAppliedAfterDate 值與 CurrentApplyDate 值。選用作業系統更新未包含這些值。

以下輸出顯示強制性作業系統更新。

{ "ResourceIdentifier": "arn:aws:rds:us-east-1:123456789012:db:mydb1", "PendingMaintenanceActionDetails": [ { "Action": "system-update", "AutoAppliedAfterDate": "2022-08-31T00:00:00+00:00", "CurrentApplyDate": "2022-08-31T00:00:00+00:00", "Description": "New Operating System update is available" } ] }

以下輸出顯示選用作業系統更新。

{ "ResourceIdentifier": "arn:aws:rds:us-east-1:123456789012:db:mydb2", "PendingMaintenanceActionDetails": [ { "Action": "system-update", "Description": "New Operating System update is available" } ] }

作業系統更新的可用性

作業系統更新為資料庫引擎版本與資料庫執行個體類別所特有。因此,資料庫執行個體會在不同的時間接收或需要更新。當根據引擎版本和執行個體類別,有作業系統更新可供您的資料庫執行個體使用時,該更新會出現在主控台中。它也可以透過執行 describe-pending-maintenance-actions AWS CLI 命令或呼叫 DescribePendingMaintenanceActions RDS API 操作來檢視。如果執行個體有可用的更新,您可以依照將更新套用至資料庫執行個體中的指示更新作業系統。