Amazon DocumentDB 操作任務概觀 - Amazon DocumentDB

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

Amazon DocumentDB 操作任務概觀

本節涵蓋 Amazon DocumentDB 叢集的操作任務,以及如何使用. AWS CLI

將複本新增至 Amazon DocumentDB 叢集

在您為 Amazon DocumentDB 叢集建立主要執行個體之後,您可以新增一或多個複本。複本是唯讀的執行個體,有兩種用途:

  • 延展性 — 如果您有大量需要同時存取的用戶端,您可以新增更多複本以進行讀取擴展。

  • 高可用性 — 如果主執行個體發生故障,Amazon DocumentDB 會自動容錯移轉到複本執行個體,並將其指定為新的主執行個體。若複本失敗,叢集中的其他執行個體仍然可以處理請求,直到可復原失敗的節點為止。

每個 Amazon DocumentDB 叢集最多可支援 15 個複本。

注意

為取得最大的容錯能力,建議您將複本部署在分離的可用區域中。這有助於確保您的 Amazon DocumentDB 叢集可以繼續運作,即使整個可用區域無法使用也一樣。

下列 AWS CLI 範例顯示如何新增複本。--availability-zone 參數會取代所指定可用區域中的複本。

aws docdb create-db-instance \ --db-instance-identifier sample-instance \ --db-cluster-identifier sample-cluster \ --engine docdb \ --db-instance-class db.r5.large \ --availability-zone us-east-1a

說明叢集和執行個體

下列 AWS CLI 範例會列出區域中的所有 Amazon DocumentDB 叢集。對於某些管理功能,例如叢集和執行個體生命週期管理,Amazon DocumentDB 會運用與 Amazon 共用的操作技術。RDSfilterName=engine,Values=docdb篩選器參數只會傳回 Amazon DocumentDB 叢集。

如需描述和修改叢集的詳細資訊,請參閱Amazon DocumentDB 集群生命週

aws docdb describe-db-clusters --filter Name=engine,Values=docdb

此操作的輸出將會如下所示。

{ "DBClusters": [ { "AvailabilityZones": [ "us-east-1c", "us-east-1b", "us-east-1a" ], "BackupRetentionPeriod": 1, "DBClusterIdentifier": "sample-cluster-1", "DBClusterParameterGroup": "sample-parameter-group", "DBSubnetGroup": "default", "Status": "available", ... }, { "AvailabilityZones": [ "us-east-1c", "us-east-1b", "us-east-1a" ], "BackupRetentionPeriod": 1, "DBClusterIdentifier": "sample-cluster-2", "DBClusterParameterGroup": "sample-parameter-group", "DBSubnetGroup": "default", "Status": "available", ... }, { "AvailabilityZones": [ "us-east-1c", "us-east-1b", "us-east-1a" ], "BackupRetentionPeriod": 1, "DBClusterIdentifier": "sample-cluster-3", "DBClusterParameterGroup": "sample-parameter-group", "DBSubnetGroup": "default", "Status": "available", ... } ] }

下列 AWS CLI 範例列出 Amazon DocumentDB 叢集中的執行個體。如需描述和修改叢集的詳細資訊,請參閱Amazon DocumentDB 實例生命週

aws docdb describe-db-clusters \ --db-cluster-identifier sample-cluster \ --query 'DBClusters[*].[DBClusterMembers]'

輸出類似如下所示。這個輸出中有兩個執行個體。主要執行個體為 sample-instance-1 ("IsClusterWriter": true)。另外還有複本執行個體 sample-instance2 ("IsClusterWriter: false")。

[ [ [ { "DBInstanceIdentifier": "sample-instance-1", "IsClusterWriter": true, "DBClusterParameterGroupStatus": "in-sync", "PromotionTier": 1 }, { "DBInstanceIdentifier": "sample-cluster-2", "IsClusterWriter": false, "DBClusterParameterGroupStatus": "in-sync", "PromotionTier": 1 } ] ] ]

建立叢集快照

叢集快照是 Amazon DocumentDB 叢集中資料的完整備份。建立快照時,Amazon DocumentDB 會直接從叢集磁碟區讀取您的資料。因此,即使叢集當時並未執行任何執行個體,您仍可以建立快照。建立快照所需的時間量取決於叢集磁碟區的大小。

Amazon DocumentDB 支援自動備份,每天在偏好的備份時段期間進行 — 一天中有 30 分鐘的時間。下列 AWS CLI 範例顯示如何檢視叢集的備份時段:

aws docdb describe-db-clusters \ --db-cluster-identifier sample-cluster \ --query 'DBClusters[*].PreferredBackupWindow'

輸出會顯示備份視窗 (inUTC):

[ "00:18-00:48" ]

您可以在建立 Amazon DocumentDB 叢集時定義備份時段。您也可以變更備份時段,如下列範例所示。如果您沒有定義備份時段,Amazon DocumentDB 會自動將一個備份時段指派給您的叢集。

aws docdb modify-db-cluster \ --db-cluster-identifier sample-cluster \ --preferred-backup-window "02:00-02:30"

除了自動備份之外,您可以隨時手動建立叢集快照。當您執行此操作時,您需要指定要備份的叢集,以及快照的唯一名稱,以便之後能夠還原。

下列 AWS CLI 範例會示範如何建立資料的快照。

aws docdb create-db-cluster-snapshot \ --db-cluster-identifier sample-cluster \ --db-cluster-snapshot-identifier sample-cluster-snapshot

從快照還原

您可以將叢集快照還原到新的 Amazon DocumentDB 叢集。若要執行這項操作,請提供快照集的名稱和新叢集的名稱。您無法從快照還原到現有叢集;相反地,Amazon DocumentDB 會在您還原時建立新叢集,然後將快照資料填入叢集。

以下範例顯示叢集 sample-cluster 的所有快照,

aws docdb describe-db-cluster-snapshots \ --db-cluster-identifier sample-cluster \ --query 'DBClusterSnapshots[*].[DBClusterSnapshotIdentifier,SnapshotType,Status]'

輸出類似如下所示。手動快照是您手動建立的快照,而 Amazon DocumentDB 會在叢集備份時段內建立自動快照。

[ "sample-cluster-snapshot", "manual", "available" ], [ "rds:sample-cluster", "automated", "available" ] ]

下列範例顯示如何從快照還原 Amazon DocumentDB 叢集。

aws docdb restore-db-cluster-from-snapshot \ --engine docdb \ --db-cluster-identifier new-sample-cluster \ --snapshot-identifier sample-cluster-snapshot

新叢集沒有任何相關聯的執行個體;因此,如果您想要與叢集互動,必須在當中新增執行個體。

aws docdb create-db-instance \ --db-instance-identifier new-sample-instance \ --db-instance-class db.r5.large \ --engine docdb \ --db-cluster-identifier new-sample-cluster

您可以使用下列 AWS CLI 作業來監視叢集和執行個體建立的進度。當叢集和執行個體狀態都可取得時,您就可以連接至新叢集的端點並存取您的資料。

aws docdb describe-db-clusters \ --db-cluster-identifier new-sample-cluster \ --query 'DBClusters[*].[Status,Endpoint]'
aws docdb describe-db-instances \ --db-instance-identifier new-sample-instance \ --query 'DBInstances[*].[DBInstanceStatus]'

從叢集移除執行個體

Amazon DocumentDB 會將您的所有資料存放在叢集磁碟區中。資料會保留在該叢集磁碟區中,即使您移除叢集中的所有執行個體也一樣。如果您需要再次存取資料,可以隨時新增執行個體至叢集,並從您上次離開的位置繼續操作。

下列範例顯示如何從 Amazon DocumentDB 叢集中移除執行個體。

aws docdb delete-db-instance \ --db-instance-identifier sample-instance

刪除叢集

您必須先移除其所有執行個體,才能刪除 Amazon DocumentDB 叢集。下列 AWS CLI 範例會傳回叢集中執行個體的相關資訊。如果此操作傳回任何執行個體識別碼,則您必須刪除每個執行個體。如需詳細資訊,請參閱從叢集移除執行個體

aws docdb describe-db-clusters \ --db-cluster-identifier sample-cluster \ --query 'DBClusters[*].DBClusterMembers[*].DBInstanceIdentifier'

當沒有剩餘的執行個體時,您就可以刪除叢集。同時,您必須選擇以下其中一個選項:

  • 建立最終快照 — 擷取快照中的所有叢集資料,以便稍後可以使用該資料重新建立新執行個體。下列範例示範其做法:

    aws docdb delete-db-cluster \ --db-cluster-identifier sample-cluster \ --final-db-snapshot-identifier sample-cluster-snapshot
  • 略過最終快照 — 永久捨棄所有叢集資料。這個動作無法還原。下列範例示範其做法:

    aws docdb delete-db-cluster \ --db-cluster-identifier sample-cluster \ --skip-final-snapshot