跳至內容

如何解決 Amazon Redshift 中快照的資料表還原錯誤?

1 分的閱讀內容
0

我想從 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) 使用者權限,以確保政策允許從快照還原資料表。若要檢查角色權限,請完成下列步驟:

  1. 開啟 IAM console (IAM 主控台)。
  2. 在導覽窗格中,選擇 Roles (角色)。
  3. 選取與叢集相關聯的角色。
  4. 確認角色權限在允許的動作下包含 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 替換為您要從快照中還原的資料表名稱。

相關資訊

從快照中排除資料表

AWS 官方已更新 1 年前