如何複製 Amazon Redshift 無伺服器快照並將其還原到不同的 AWS 帳戶?
我想要將 Amazon Redshift 無伺服器快照,從一個 AWS 帳戶複製並還原到另一個 AWS 帳戶。該如何進行?
解決方案
使用 Amazon Redshift 主控台或 AWS Command Line Interface (AWS CLI),從一個 AWS 帳戶複製並還原到另一個帳戶。
在開始之前,請考慮以下事項:
- 只有在 Amazon Redshift 無伺服器命名空間的狀態為可用,且與可用工作群組相關聯時,您才可以將快照還原到該命名空間。
- 從快照還原 Amazon Redshift 無伺服器命名空間,將以快照中的資料庫取代命名空間的所有資料庫。
- 在還原期間,Amazon Redshift 無伺服器將無法使用。
使用 Amazon Redshift 主控台複製和還原
將 Amazon Redshift 無伺服器的復原點轉換為來源帳戶中的快照
- 開啟 Amazon Redshift 主控台。
- 在導覽窗格中,選擇 Redshift serverless (Redshift 無伺服器),然後選擇 Data backup (資料備份)。
- 在 Recovery points (復原點) 下方,選擇您要轉換為快照的復原點的 Creation time (建立時間)。
- 選擇 Create snapshot from recovery point (從復原點建立快照)。
- 輸入 Snapshot identifier (快照識別符) 和 retention period (保留期間)。
- 選擇 Create (建立)。
與另一個 AWS 帳戶共用來源帳戶中的快照
- 開啟 Amazon Redshift 主控台。
- 在導覽窗格中,選擇 Redshift serverless (Redshift 無伺服器),然後選擇 Data backup (資料備份)。
- 選擇您先前建立的快照。
- 選擇 Actions, Manage access (動作、管理存取權)。
- 選擇 Provide access to serverless accounts (提供無伺服器帳戶存取權限) 下的 Add AWS account (新增 AWS 帳戶),然後輸入 AWS account ID (AWS 帳戶 ID) (目的地)。
- 選擇 Save changes (儲存變更)。
將快照還原到目的地帳戶中的 Amazon Redshift 無伺服器命名空間
- 開啟 Amazon Redshift 主控台。
- 在導覽窗格中,選擇 Redshift serverless (Redshift 無伺服器),然後選擇 Data backup (資料備份)。
- 選擇要還原的 AWS 帳戶 ID 共用的快照。您一次只能還原一個快照。
- 選擇 Actions, Restore to serverless namespace (動作、還原到無伺服器命名空間)。
- 選擇要還原的可用命名空間。您只能還原到狀態為 Available (可用) 的命名空間。
- 選擇 Restore (還原)。
使用 AWS CLI 複製和還原
**注意:**如果您在執行 AWS CLI 命令時收到錯誤,請確保您使用的是最新版 AWS CLI。
將 Amazon Redshift 無伺服器的復原點轉換為來源帳戶中的快照
1. 針對在 start-time (開始時間) 之後建立的快照清單,請使用 list-recovery-points 命令。執行下列命令,並以您的命名空間取代 namespacename,以您的 AWS 區域取代 us-west-2,以您的復原點開始時間 (以 UTC 表示) 取代 starttime:
aws redshift-serverless list-recovery-points --namespace-name <namespacename> --region <region name> --start-time <starttime>
在下列範例中,Redshift 無伺服器叢集位於美國西部 (奧勒岡) 區域,其命名空間為預設,開始時間為 2022-09-06T07:10 (以 UTC 表示):
aws redshift-serverless list-recovery-points --namespace-name default --region us-west-2 --start-time 2022-09-06T07:10
2. 使用 convert-recovery-point-to-snapshot 命令來建立快照和保留期間。執行下列命令,並以步驟 1 輸出的復原點 ID 取代 recoveryPointId,以保留快照的天數取代 days (天數),以您的快照名稱取代 snapshot name (快照名稱),以您的 AWS 區域取代 us-west-2:
aws redshift-serverless convert-recovery-point-to-snapshot --recovery-point-id <recoveryPointId> --retention-period <days> --snapshot-name <snapshot name> --region <region name>
在下列範例中,快照的名稱為 snapshot01,保留期間為三天,位於美國西部 (奧勒岡) 區域**。**
aws redshift-serverless convert-recovery-point-to-snapshot --recovery-point-id 72acee50-34df-45f6-865f-46aa178ada82 --retention-period 3 --snapshot-name snapshot01 --region us-west-2
3. 使用 get-snapshot 命令確認已建立快照。執行下列命令,並以您的快照名稱取代 snapshot name (快照名稱):
aws redshift-serverless get-snapshot --snapshot-name <snapshot name>
與另一個 AWS 帳戶共用來源帳戶中的快照
使用 put-resource-policy 命令提供另一個 AWS 帳戶對快照的存取權。執行下列命令,並以目的地 AWS 帳戶 ID 取代 destination account ID (目的地帳戶 ID),以快照的 ARN 取代 snapshot arn (快照 ARN):
aws redshift-serverless put-resource-policy --policy "{\"Version\": \"2012-10-17\", \"Statement\" : [{ \"Sid\": \"AllowUserRestoreFromSnapshot\", \"Principal\":{\"AWS\": [\”<destination account ID>\”]}, \"Action\": [\"redshift-serverless:RestoreFromSnapshot\"] , \"Effect\": \"Allow\" }]}" --resource-arn <snapshot arn>
在下列範例中,提供對帳號 123456789012 中的快照 ARN 的存取權:
aws redshift-serverless put-resource-policy --policy "{\"Version\": \"2012-10-17\", \"Statement\" : [{ \"Sid\": \"AllowUserRestoreFromSnapshot\", \"Principal\":{\"AWS\": [\"123456789012\"]}, \"Action\": [\"redshift-serverless:RestoreFromSnapshot\"] , \"Effect\": \"Allow\" }]}" --resource-arn arn:aws:redshift-serverless:us-west-2:112233445566:snapshot/4978ca91-24ba-4196-91ad-9d372f72b0fe
將快照還原到目的地帳戶中的 Amazon Redshift 無伺服器命名空間
1. 使用 list-snapshots 命令列出 AWS 區域中的快照。執行下列命令,並以您的 AWS 區域取代 us-west-2:
aws redshift-serverless list-snapshots --region us-west-2
2. 使用 restore-from-snapshot 命令將快照還原到 Amazon Redshift 無伺服器。執行下列命令,並以您的快照名稱取代 snapshot name (快照名稱),以您的工作群組名稱取代 workgroup name (工作群組名稱),以前述命令產生的快照 ARN 取代 snapshot arn (快照 ARN):
aws redshift-serverless restore-from-snapshot --namespace-name <namespace name > --workgroup-name <workgroup name> --snapshot-arn <snapshot arn>
在下列範例中,帳戶 ID 112233445566 具有狀態為可用的 Amazon Redshift 無伺服器,以及還原的命名空間名稱和還原的工作群組名稱:
aws redshift-serverless restore-from-snapshot --namespace-name restore --workgroup-name restore --snapshot-arn arn:aws:redshift-serverless:us-west-2:112233445566:snapshot/4978ca91-24ba-4196-91ad-9d372f72b0fe
相關內容
- 已提問 1 個月前lg...
- 已提問 1 年前lg...
- 已提問 2 年前lg...
- AWS 官方已更新 2 年前
- AWS 官方已更新 1 年前
- AWS 官方已更新 1 年前
- AWS 官方已更新 2 年前