刪除 Aurora 資料庫叢集和資料庫執行個體 - Amazon Aurora

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

刪除 Aurora 資料庫叢集和資料庫執行個體

當您不再需要 Aurora 資料庫叢集時,您可以刪除它。刪除叢集會移除包含所有資料的叢集磁碟區。刪除叢集之前,您可以儲存資料的快照。您可以在稍後還原快照,以建立包含相同資料的新叢集。

您也可以從叢集刪除資料庫執行個體,同時保留叢集本身及其包含的資料。如果叢集不忙碌,或您不需要多個資料庫執行個體的計算容量,刪除資料庫執行個體可協助您減少費用。

刪除 Aurora 資料庫叢集

Aurora 不提供刪除資料庫叢集的單一步驟方法。此設計選項旨在防止您意外遺失資料或讓應用程式離線。Aurora 應用程式通常是關鍵任務,而且需要高可用性。因此,Aurora 透過新增和移除資料庫執行個體,可以輕鬆擴充和縮減叢集的容量。移除叢集本身需要您另行刪除。

使用下列一般程序,從叢集中移除所有資料庫執行個體,然後刪除叢集本身。

  1. 刪除叢集中任一個讀取器執行個體。使用 從 Aurora 個體資料庫叢集刪除資料庫執行個體 中的程序。

    如果叢集有任一個讀取器執行個體,則刪除其中一個執行個體只會減少叢集的運算容量。首先刪除讀取器執行個體可確保叢集能夠在整個程序中保持可用,而且不會執行不必要的容錯移轉作業。

  2. 從叢集中刪除寫入器執行個體。同樣地,請使用 從 Aurora 個體資料庫叢集刪除資料庫執行個體 中的程序。

    當您刪除資料庫執行個體時,即使刪除所有資料庫執行個體,叢集及其關聯的叢集磁碟區仍會保留。

  3. 刪除資料庫叢集。

    • AWS Management Console - 選擇叢集,然後從動作選單選擇刪除。您可以選擇下列選項來保留叢集中的資料,以備日後需要:

      • 建立叢集磁碟區的最終快照。預設設定是建立最終快照。

      • 保留自動備份。預設設定不保留自動備份。

        注意

        不會保留資Aurora Serverless v1料庫叢集的自動備份。

      Aurora 也會要求您確認是否要刪除叢集。

    • CLIand API — 呼叫指delete-db-clusterCLI令或DeleteDBClusterAPI作業。您可以選擇下列選項來保留叢集中的資料,以備日後需要:

      • 建立叢集磁碟區的最終快照。

      • 保留自動備份。

        注意

        不會保留資Aurora Serverless v1料庫叢集的自動備份。

建立空 Aurora 叢集

您可以使用 AWS Management Console、 AWS CLI或 Amazon 刪除空的資料庫叢集RDSAPI。

提示

您可以保留沒有資料庫執行個體的叢集,以保留資料,而不會產生叢集CPU費用。您可以為叢集建立一個或多個新資料庫執行個體,快速開始再次使用叢集。當叢集沒有任何關聯的資料庫執行個體時,您可以在叢集上執行 Aurora 特定的管理作業。您只是無法存取資料或執行任何需要連線到資料庫執行個體的操作。

刪除資料庫叢集
  1. 登錄 AWS Management Console 並在打開 Amazon RDS 控制台https://console.aws.amazon.com/rds/

  2. 在導覽窗格中選擇資料庫,然後選擇您要刪除的資料庫叢集。

  3. 對於 Actions (動作),請選擇 Delete (刪除)。

  4. 若要建立資料庫叢集的最終資料庫快照,請選擇是否建立最終快照?。這是預設設定。

  5. 如果您選擇建立最終快照,請輸入最終快照名稱

  6. 若要保留自動備份,請選擇 Retain automated backups (保留自動備份)。這不是預設設定。

  7. 在方塊中輸入 delete me

  8. 選擇 Delete (刪除)。

若要使用刪除空的 Aurora 資料庫叢集 AWS CLI,請呼叫命delete-db-cluster令。

假設空叢集 deleteme-zero-instances 僅用於開發和測試,並且不包含任何重要資料。在這種情況下,刪除叢集時,不需要保留叢集磁碟區的快照。下列範例會示範叢集不包含任何資料庫執行個體,然後刪除空叢集,而不需建立最終快照或保留自動備份。

$ aws rds describe-db-clusters --db-cluster-identifier deleteme-zero-instances --output text \ --query '*[].["Cluster:",DBClusterIdentifier,DBClusterMembers[*].["Instance:",DBInstanceIdentifier,IsClusterWriter]] Cluster: deleteme-zero-instances $ aws rds delete-db-cluster --db-cluster-identifier deleteme-zero-instances \ --skip-final-snapshot \ --delete-automated-backups { "DBClusterIdentifier": "deleteme-zero-instances", "Status": "available", "Engine": "aurora-mysql" }

若要使用 Amazon 刪除空的 Aurora 資料庫叢集 RDSAPI,請呼叫 D eleteDBCluster 作業。

使用單一資料庫執行個體刪除 Aurora 叢集

即使資料庫叢集已啟用刪除保護功能,您仍然可以刪除最後一個資料庫執行個體。在這種情況下,資料庫叢集本身仍會存在,資料將獲得保留。您可將新的資料庫執行個體連接至叢集,即可再次存取資料。

下列範例顯示叢集仍有相關聯的資料庫執行個體時,delete-db-cluster 命令無法運作。此叢集具有單一寫入器資料庫執行個體。當我們檢查叢集中的資料庫執行個體時,我們會檢查每個執行個體的 IsClusterWriter 屬性。叢集可以有零個或一個寫入器資料庫執行個體。true 的值表示寫入器資料庫執行個體。false 的值表示讀取器資料庫執行個體。叢集可以有零個、一個或多個讀取器資料庫執行個體。在這種情況下,我們使用 delete-db-instance 命令刪除寫入器資料庫執行個體。一旦資料庫執行個體進入 deleting 狀態,我們也可以刪除叢集。在此範例中,假設叢集不包含任何值得保留的資料。因此,我們不會建立叢集磁碟區的快照或保留自動備份。

$ aws rds delete-db-cluster --db-cluster-identifier deleteme-writer-only --skip-final-snapshot An error occurred (InvalidDBClusterStateFault) when calling the DeleteDBCluster operation: Cluster cannot be deleted, it still contains DB instances in non-deleting state. $ aws rds describe-db-clusters --db-cluster-identifier deleteme-writer-only \ --query '*[].[DBClusterIdentifier,Status,DBClusterMembers[*].[DBInstanceIdentifier,IsClusterWriter]]' [ [ "deleteme-writer-only", "available", [ [ "instance-2130", true ] ] ] ] $ aws rds delete-db-instance --db-instance-identifier instance-2130 { "DBInstanceIdentifier": "instance-2130", "DBInstanceStatus": "deleting", "Engine": "aurora-mysql" } $ aws rds delete-db-cluster --db-cluster-identifier deleteme-writer-only \ --skip-final-snapshot \ --delete-automated-backups { "DBClusterIdentifier": "deleteme-writer-only", "Status": "available", "Engine": "aurora-mysql" }

刪除具有多個資料庫執行個體的 Aurora 叢集

如果您的叢集包含多個資料庫執行個體,通常會有單一寫入器執行個體和一個或多個讀取器執行個體。讀取器執行個體提供具備高可用性的協助,藉由處於待命狀態,在寫入器執行個體遇到問題來進行接管。您也可以使用讀取器執行個體來調整叢集以處理大量讀取的工作負載,而不會為寫入器執行個體增加額外負荷。

若要刪除具有多個讀取器資料庫執行個體的叢集,請先刪除讀取器執行個體,然後刪除寫入器執行個體。刪除寫入器執行個體會保留叢集及其資料。您可透過個別動作刪除叢集。

此CLI範例顯示如何刪除同時包含寫入器資料庫執行個體和單一讀取器資料庫執行個體的叢集。describe-db-clusters 輸出顯示 instance-7384 是寫入器執行個體,instance-1039 是讀取器執行個體。此範例會先刪除讀取器執行個體,因為在讀取器執行個體仍然存在時刪除寫入器執行個體會導致容錯移轉作業。如果您打算也刪除該執行個體,將讀取器執行個體提升為寫入器是沒有意義的。同樣地,假設這些 db.t2.small 執行個體僅用於開發和測試,刪除作業也會略過最後的快照也不會保留自動備份。

$ aws rds delete-db-cluster --db-cluster-identifier deleteme-writer-and-reader --skip-final-snapshot An error occurred (InvalidDBClusterStateFault) when calling the DeleteDBCluster operation: Cluster cannot be deleted, it still contains DB instances in non-deleting state. $ aws rds describe-db-clusters --db-cluster-identifier deleteme-writer-and-reader --output text \ --query '*[].["Cluster:",DBClusterIdentifier,DBClusterMembers[*].["Instance:",DBInstanceIdentifier,IsClusterWriter]] Cluster: deleteme-writer-and-reader Instance: instance-1039 False Instance: instance-7384 True $ aws rds delete-db-instance --db-instance-identifier instance-1039 { "DBInstanceIdentifier": "instance-1039", "DBInstanceStatus": "deleting", "Engine": "aurora-mysql" } $ aws rds delete-db-instance --db-instance-identifier instance-7384 { "DBInstanceIdentifier": "instance-7384", "DBInstanceStatus": "deleting", "Engine": "aurora-mysql" } $ aws rds delete-db-cluster --db-cluster-identifier deleteme-writer-and-reader \ --skip-final-snapshot \ --delete-automated-backups { "DBClusterIdentifier": "deleteme-writer-and-reader", "Status": "available", "Engine": "aurora-mysql" }

下列範例顯示如何刪除包含寫入器資料庫執行個體和多個讀取器資料庫執行個體的資料庫叢集。它使用來自 describe-db-clusters 命令的簡潔輸出來獲取寫入器和讀取器執行個體的報告。同樣地,在刪除寫入器資料庫執行個體之前,我們會先刪除所有的讀取器執行個體。我們刪除讀取器資料庫執行個體的順序無關緊要。

假設這個具有多個資料庫執行個體的叢集確實包含值得保留的資料。因此,此範例中的 delete-db-cluster 命令包含 --no-skip-final-snapshot--final-db-snapshot-identifier 參數,以指定要建立的快照詳細資訊。它還包括 --no-delete-automated-backups 保留自動備份的參數。

$ aws rds describe-db-clusters --db-cluster-identifier deleteme-multiple-readers --output text \ --query '*[].["Cluster:",DBClusterIdentifier,DBClusterMembers[*].["Instance:",DBInstanceIdentifier,IsClusterWriter]] Cluster: deleteme-multiple-readers Instance: instance-1010 False Instance: instance-5410 False Instance: instance-9948 False Instance: instance-8451 True $ aws rds delete-db-instance --db-instance-identifier instance-1010 { "DBInstanceIdentifier": "instance-1010", "DBInstanceStatus": "deleting", "Engine": "aurora-mysql" } $ aws rds delete-db-instance --db-instance-identifier instance-5410 { "DBInstanceIdentifier": "instance-5410", "DBInstanceStatus": "deleting", "Engine": "aurora-mysql" } $ aws rds delete-db-instance --db-instance-identifier instance-9948 { "DBInstanceIdentifier": "instance-9948", "DBInstanceStatus": "deleting", "Engine": "aurora-mysql" } $ aws rds delete-db-instance --db-instance-identifier instance-8451 { "DBInstanceIdentifier": "instance-8451", "DBInstanceStatus": "deleting", "Engine": "aurora-mysql" } $ aws rds delete-db-cluster --db-cluster-identifier deleteme-multiple-readers \ --no-delete-automated-backups \ --no-skip-final-snapshot \ --final-db-snapshot-identifier deleteme-multiple-readers-final-snapshot { "DBClusterIdentifier": "deleteme-multiple-readers", "Status": "available", "Engine": "aurora-mysql" }

下列範例顯示如何確認 Aurora 建立要求的快照。您可以指定特定快照的識別碼 deleteme-multiple-readers-final-snapshot 來要求詳細資訊。您也可以透過指定叢集識別碼 deleteme-multiple-readers,取得已刪除叢集的所有快照報告。這兩個命令都會傳回相同快照的相關資訊。

$ aws rds describe-db-cluster-snapshots \ --db-cluster-snapshot-identifier deleteme-multiple-readers-final-snapshot { "DBClusterSnapshots": [ { "AvailabilityZones": [], "DBClusterSnapshotIdentifier": "deleteme-multiple-readers-final-snapshot", "DBClusterIdentifier": "deleteme-multiple-readers", "SnapshotCreateTime": "11T01:40:07.354000+00:00", "Engine": "aurora-mysql", ... $ aws rds describe-db-cluster-snapshots --db-cluster-identifier deleteme-multiple-readers { "DBClusterSnapshots": [ { "AvailabilityZones": [], "DBClusterSnapshotIdentifier": "deleteme-multiple-readers-final-snapshot", "DBClusterIdentifier": "deleteme-multiple-readers", "SnapshotCreateTime": "11T01:40:07.354000+00:00", "Engine": "aurora-mysql", ...

Aurora 叢集的刪除保護

您無法刪除已啟用刪除保護的叢集。您可以刪除叢集中的資料庫執行個體,但不能刪除叢集本身。如此一來,您便可避免意外刪除包含所有資料的叢集磁碟區。無論您嘗試使用主控台、或刪除叢集,Aurora 都會對資料庫叢集強制執行 AWS CLI刪除保護。RDS API

當您使用 AWS Management Console建立生產資料庫叢集時,預設會啟用刪除保護。不過,如果您使用 AWS CLI 或建立叢集,預設會停用刪除保護API。啟用或停用刪除保護不會導致停機。若要能夠刪除叢集,請修改叢集並停用刪除保護。如需更多詳細資訊,瞭解如何開啟及關閉刪除保護功能,請參閱使用主控台修改資料庫叢集CLI、和 API

提示

即使刪除所有資料庫執行個體,您也可以在叢集中建立新的資料庫執行個體來存取資料。

刪除已停止的 Aurora 叢集

如果叢集處於 stopped 狀態,則無法刪除叢集。在此情況下,請先啟動叢集,再刪除叢集。如需詳細資訊,請參閱啟動 Aurora 資料庫叢集

刪除 Aurora 我的SQL叢集是僅供讀取複本

對於 Aurora MySQL,如果同時符合下列條件,則無法刪除資料庫叢集中的資料庫執行個體:

  • 此資料庫叢集為另一個 Aurora 資料庫叢集的僅供讀取複本。

  • 此資料庫執行個體是資料庫叢集中唯一的執行個體。

若要在此情況下刪除資料庫執行個體,請先提升資料庫叢集,使其不再是僅供讀取複本。升級完畢後,您可以刪除資料庫叢集中的最後一個資料庫執行個體。如需更多詳細資訊,請參閱 複寫 Amazon Aurora 我的SQL資料庫叢集 AWS 區域

刪除叢集時的最終快照

在本節中,範例會顯示如何在刪除 Aurora 叢集時選擇是否要拍攝最終快照。如果您選擇拍攝最終快照,但您指定的名稱與現有快照相符,則操作會停止並顯示錯誤。在此情況下,請檢查快照詳細資訊,以確認它是否代表您目前的詳細資料,或是否為較舊的快照。如果現有的快照集沒有您想要保留的最新資料,請重新命名快照集後再試一次,或為最終快照參數指定不同的名稱。

從 Aurora 個體資料庫叢集刪除資料庫執行個體

您可以從 Aurora 資料庫叢集刪除資料庫執行個體,作為刪除整個叢集程序的一部分。如果您的叢集包含一定數量的資料庫執行個體,則刪除叢集需要刪除每個資料庫執行個體。您也可以在叢集保持執行狀態時刪除叢集中的一個或多個讀取器執行個體。如果叢集不忙碌,您可以這麼做來減少運算容量和相關費用。

若要刪除資料庫執行個體,您必須指定執行個體的名稱。

您可以使用 AWS Management Console、或刪除資料庫執行個體RDSAPI。 AWS CLI

注意

在刪除 Aurora 複本時,隨即會移除其執行個體端點,並且會從讀取器端點移除 Aurora 複本。若在要刪除的 Aurora 複本上有陳述式正在執行,則會有三分鐘的寬限期。現有陳述式在寬限期期間內可以完成。在寬限期結束時,Aurora 複本會關閉並刪除。

對於 Aurora 資料庫叢集,刪除資料庫執行個體不一定會刪除整個叢集。您可以刪除 Aurora 叢集中的資料庫執行個體,以便在叢集不忙碌時減少運算容量和相關費用。如需了解具有一個資料庫執行個體或零個資料庫執行個體之 Aurora 叢集的特殊情況,請參閱 使用單一資料庫執行個體刪除 Aurora 叢集建立空 Aurora 叢集

注意

啟用資料庫叢集的刪除保護時,無法刪除該資料庫執行個體。如需更多詳細資訊,請參閱 Aurora 叢集的刪除保護

您可以修改資料庫叢集來停用刪除保護。如需詳細資訊,請參閱修改 Amazon Aurora 資料庫叢集

刪除資料庫叢集中的資料庫執行個體
  1. 登錄 AWS Management Console 並在打開 Amazon RDS 控制台https://console.aws.amazon.com/rds/

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

  3. 對於 Actions (動作),請選擇 Delete (刪除)。

  4. 在方塊中輸入 delete me

  5. 選擇 Delete (刪除)。

若要使用刪除資料庫執行個體 AWS CLI,請呼叫delete-db-instance命令並指定--db-instance-identifier值。

對於LinuxmacOS、或Unix:

aws rds delete-db-instance \ --db-instance-identifier mydbinstance

在 Windows 中:

aws rds delete-db-instance ^ --db-instance-identifier mydbinstance

若要使用 Amazon 刪除資料庫執行個體 RDSAPI,請呼叫 D eleteDBInstance 作業並指定DBInstanceIdentifier參數。

注意

當資料庫執行個體的狀態為時deleting,其 CA 憑證值不會顯示在RDS主控台或 AWS CLI 命令或RDSAPI作業的輸出中。如需憑證授權機構憑證的詳細資訊,請參閱使用 SSL/TLS 加密與資料庫叢集的連線