Direkt zum Inhalt

Wie kann ich Fehler bei der Tabellenwiederherstellung aus dem Snapshot in Amazon Redshift beheben?

Lesedauer: 4 Minute
0

Ich möchte eine Tabelle aus einem Snapshot in Amazon Redshift wiederherstellen, erhalte aber eine Fehlermeldung.

Kurzbeschreibung

Amazon Redshift ermöglicht es dir, eine Tabelle aus den bereits verfügbaren Snapshots wiederherzustellen. Du musst nicht einen ganzen Cluster wiederherstellen.

Wenn du eine einzelne Tabelle aus einem Snapshot wiederherstellst, gib den Quell-Snapshot, die Datenbank, das Schema und den Tabellennamen an. Gib für eine wiederhergestellte Tabelle die Zieldatenbank, das Schema und einen neuen Namen an.

Verwende die Amazon Redshift-Konsole, um eine Tabellenwiederherstellung aus einem Snapshot zu initiieren. Oder verwende den API-Vorgang restoreTableFromClusterSnapshot. Weitere Informationen findest du unter Wiederherstellen einer Tabelle aus einem Snapshot.

Eine Wiederherstellung auf Tabellenebene schlägt bei einigen der folgenden häufigen Fehler fehl:

  • Amazon Redshift kann keine Snapshot-Metadaten von Amazon Simple Storage Service (Amazon S3) für Tabellen mit Metadatendateien über der 16-MB-Grenze abrufen. Du erhältst die folgende Fehlermeldung: „Interner Fehler: Snapshot-Metadaten sind nicht vorhanden.“
  • Wenn du das angegebene Schema im Snapshot nicht finden kannst, hatte das Schema keinen Inhalt, als du den Snapshot erstellt hast und es hat kein Back-up. Dann erhältst du die Fehlermeldung „Der „Schemaname“ des Zielschemas ist im Snapshot nicht vorhanden. Ziehe in Erwägung, eine der folgenden Optionen zu verwenden: <list of schemas available in the snapshot>“.
  • Wenn du die angegebene Datenbank im Snapshot nicht finden kannst, hatte die Datenbank keinen Inhalt, als du den Snapshot erstellt hast und es gibt kein Back-up. Dann erhältst du die Fehlermeldung „Zieldatenbank<database name>ist im Snapshot nicht vorhanden. Ziehe in Erwägung die Verwendung von: <list of databases available in snapshot>“.
  • Wenn du versuchst, eine Tabelle in einem anderen Cluster wiederherzustellen oder nachdem du die Größe verschiedener Knotentypen geändert hast, erhältst du den Fehler InvalidClusterState.
  • Wenn du versuchst, mehrere gleichzeitige Tabellen wiederherzustellen, erhältst du den Fehler InProgressTableRestoreQuotaExceededfault.
  • Wenn du versuchst, eine nicht vorhandene Tabelle aus einem Snapshot wiederherzustellen, erhältst du den Fehler InvalidTableRestoreArgument.
  • Wenn du versuchst, einen nicht vorhandenen oder falschen Snapshot wiederherzustellen, erhältst du den Fehler ClusterSnapshotNotFound.

Lösung

Hinweis: Wenn du beim Ausführen von AWS Command Line Interface (AWS CLI)-Befehlen Fehlermeldungen erhältst, findest du weitere Informationen dazu unter Problembehandlung bei der AWS CLI. Stelle außerdem sicher, dass du die neueste Version von AWS CLI verwendest.

Snapshot-Details überprüfen

Überprüfe die Snapshot-Details in der AWS-Managementkonsole, um sicherzustellen, dass die Tabelle enthalten ist und dass die Cluster-Version kompatibel ist.

Berechtigungen überprüfen

Überprüfe die Benutzerberechtigungen für AWS Identity and Access Management (IAM), um sicherzustellen, dass die Richtlinie die Wiederherstellung von Tabellen aus Snapshots zulässt. Gehe wie folgt vor, um die Rollenberechtigungen zu überprüfen:

  1. Öffne die IAM-Konsole.
  2. Wähle im Navigationsbereich Rollen.
  3. Wähle die Rolle aus, die dem Cluster zugeordnet ist.
  4. Stelle sicher, dass die Rollenberechtigungen redshift:restoreTableFromClusterSnapshot unter „zulässige Aktionen“ enthalten. Wenn die Berechtigungen nicht enthalten sind, aktualisiere die Berechtigungen.

AWS CLI

Verwende die AWS-CLI, um die Tabelle wiederherzustellen und die Fehler zu identifizieren.

Beispiel:

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

Cluster-Kompatibilität überprüfen

Vergewissere dich, dass der aktuelle Amazon Redshift-Cluster mit dem Cluster übereinstimmt, in dem du den Snapshot erstellt hast. Wenn du einen anderen Cluster verwendet hast, schlägt die Tabellenwiederherstellung fehl.

Bestehende Tabellen überschreiben

Wenn bereits eine Tabelle mit demselben Namen existiert, kannst du die Tabelle nicht in einem Amazon Redshift-Cluster wiederherstellen. Um zu überprüfen, ob der Tabellenname bereits existiert, stelle eine Verbindung zur Amazon Redshift-Datenbank her. Führe dann die folgende SQL-Abfrage aus:

select * from svv_table_info where “table”='tablename';

Hinweis: Ersetze tablename durch den Tabellennamen, den du aus dem Snapshot wiederherstellen möchtest.

Ähnliche Informationen

Tabellen aus Snapshots ausschließen

AWS OFFICIALAktualisiert vor 9 Monaten