我想從 Amazon Redshift 中的快照還原資料,但我收到錯誤訊息。
簡短描述
Amazon Redshift 可讓您從現有的可用快照還原資料表。您不必還原整個叢集。
當您從快照還原單一資料表時,請指定來源快照、資料庫、結構描述和資料表名稱。對於還原的資料表,請指定目標資料庫、結構描述和新名稱。
使用 Amazon Redshift 主控台從快照啟動資料表還原。或者,使用 RestoreTableFromClusterSnapshot API 作業。如需詳細資訊,請參閱從快照還原資料表。
資料表層級還原會因下列一些常見錯誤而失敗:
- 對於中繼資料檔案超過 16 MB 限制的資料表,Amazon Redshift 無法從 Amazon Simple Storage Service (Amazon S3) 擷取快照中繼資料。您會收到以下錯誤訊息: 「內部錯誤: 快照中繼資料不存在。」
- 如果您在快照中找不到指定的結構描述,則表示在建立快照時該結構描述沒有內容,也沒有備份。然後,您會收到「目標結構描述『結構描述名稱』不存在於快照中。請考慮使用下列其中一項: <list of schemas available in the snapshot>」錯誤訊息。
- 如果您在快照中找不到指定的資料庫,則表示在建立快照時該資料庫沒有內容,也沒有備份。然後,您會收到「目標資料庫『<database name>』不存在於快照中。請考慮使用: <list of databases available in snapshot>」錯誤訊息。
- 如果您嘗試將資料表還原到不同的叢集或調整不同節點類型的大小,那麼您將收到 InvalidClusterState 錯誤。
- 如果您嘗試還原多個並行資料表,那麼您將收到 InProgressTableRestoreQuotaExceededFault 錯誤。
- 如果您嘗試從快照還原不存在的資料表,那麼您將收到 InvalidTableRestoreArgument 錯誤。
- 如果您嘗試從不存在或不正確的快照還原,那麼您將收到 ClusterSnapshotNotFound 錯誤。
解決方法
**注意:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤訊息,請參閱對 AWS CLI 錯誤進行疑難排解。此外,請確定您使用的是最新的 AWS CLI 版本。
檢查快照詳細資訊
查看 AWS 管理主控台中的快照詳細資訊,以確認該資料表已包含在內且叢集版本相容。
驗證權限
檢查您的 AWS Identity and Access Management (IAM) 使用者權限,以確保政策允許從快照還原資料表。若要檢查角色權限,請完成下列步驟:
- 開啟 IAM console (IAM 主控台)。
- 在導覽窗格中,選擇 Roles (角色)。
- 選取與叢集相關聯的角色。
- 確認角色權限在允許的動作下包含 redshift:RestoreTableFromClusterSnapshot。如果權限未包含,請更新權限。
AWS CLI
使用 AWS CLI 還原資料表並識別錯誤。
範例:
aws redshift restore-table-from-cluster-snapshot —cluster-identifier mycluster-example
--new-table-name my-new-table \
--snapshot-identifier my-snapshot-id \
--source-database-name sample-database \
--source-table-name my-source-table
檢查叢集相容性
檢查您目前的 Amazon Redshift 叢集是否與您拍攝快照的叢集相符。如果您使用了不同的叢集,資料表還原將失敗。
覆寫現有的資料表
如果已存在相同名稱的資料表,則無法將資料表還原到 Amazon Redshift 叢集。若要檢查資料表名稱是否已存在,請連線至 Amazon Redshift 資料庫。然後,執行下列 SQL 查詢:
select * from svv_table_info where “table”='tablename';
**注意:**將 tablename 替換為您要從快照中還原的資料表名稱。
相關資訊
從快照中排除資料表