Amazon Redshift
Clusterverwaltungshandbuch

Amazon Redshift-Snapshots

Übersicht

Snapshots sind Sicherungen eines Clusters in Form einer Momentaufnahme. Es gibt zwei Arten von Snapshots: automatisierte und manuelle. Amazon Redshift speichert diese Snapshots intern in Amazon S3 unter Verwendung einer verschlüsselten Secure Sockets Layer (SSL)-Verbindung.

Amazon Redshift erstellt in regelmäßigen Abständen inkrementelle Snapshots und verfolgt so Änderungen am Cluster seit dem letzten automatisierten Snapshot. Automatisierte Snapshots speichern alle Daten, die erforderlich sind, um einen Cluster anhand eines Snapshots wiederherzustellen. Sie können mit einem Snapshot-Zeitplan steuern, wann automatisierte Snapshots erzeugt werden, oder jederzeit einen manuellen Snapshot erstellen.

Wenn Sie sie anhand eines Snapshots wiederherstellen, erstellt Amazon Redshift einen neuen Cluster und stellt den neuen Cluster zur Verfügung, bevor alle Daten geladen werden, damit Sie umgehend mit der Abfrage des neuen Clusters beginnen können. Der Cluster streamt auf Anfrage Daten vom Snapshot als Reaktion auf aktive Abfragen und lädt danach die restlichen Daten im Hintergrund.

Wenn Sie einen Cluster starten, können Sie den Aufbewahrungszeitraum für automatische und manuelle Snapshots festlegen. Sie können den Aufbewahrungszeitraum für automatische und manuelle Snapshots ändern, indem Sie den Cluster modifizieren. Sie können den Aufbewahrungszeitraum für manuelle Snapshots festlegen, wenn Sie den Snapshot erstellen, und ihn ändern, indem Sie den Snapshot modifizieren.

Sie können den Fortschritt von Snapshots durch Anzeigen der Snapshot-Details in der AWS Management Console oder durch Aufrufen von describe-cluster-snapshots in der CLI bzw. der API-Aktion DescribeClusterSnapshots überwachen. Für einen Snapshot in Bearbeitung werden Informationen wie die Größe des schrittweisen Snapshot, die Übertragungsrate, die verstrichene Zeit und die geschätzte Restzeit angezeigt.

Amazon Redshift speichert Snapshots in einem intern verwalteten Amazon S3-Bucket, der von Amazon Redshift verwaltet wird, und stellt dadurch sicher, dass die Sicherungen dem Cluster immer zur Verfügung stehen. Amazon Redshift bietet einen Speicher für Snapshots, der der Speicherkapazität Ihres Clusters bis zu dessen Löschung entsprechen. Nachdem Sie das kostenlose Speicherlimit des Snapshot erreicht haben, wird Ihnen jeglicher zusätzlicher Speicher zum normalen Preis in Rechnung gestellt. Aus diesem Grund sollten Sie bewerten, für wie viele Tage Sie Snapshots aufbewahren müssen, und ihren Speicherzeitraum entsprechend konfigurieren, um manuelle Snapshots, die nicht mehr benötigt werden, zu löschen. Weitere Informationen zu Preisen finden Sie auf der Amazon Redshift-Produktdetailseite.

Automatisierte Snapshots

Wenn automatisierte Snapshots für einen Cluster aktiviert sind, erstellt Amazon Redshift in regelmäßigen Abständen Snapshots dieses Clusters. Standardmäßig erzeugt Amazon Redshift ungefähr alle acht Stunden oder nach 5 GB geänderten Daten pro Knoten einen Snapshot, je nachdem, was zuerst auftritt. Sie können alternativ mit einem Snapshot-Zeitplan steuern, wann automatisierte Snapshots erzeugt werden. Automatisierte Snapshots werden standardmäßig aktiviert, wenn Sie einen Cluster erstellen.

Automatisierte Snapshots werden nach Ablauf eines Aufbewahrungszeitraums gelöscht. Der Standard-Aufbewahrungszeitraum beträgt einen Tag. Sie können diesen jedoch mittels der Amazon Redshift-Konsole oder programmbasiert mittels der Amazon Redshift-API oder der CLI ändern.

Zum Deaktivieren von automatischen Snapshots setzen Sie den Wert für den Aufbewahrungszeitraum auf null. Wenn Sie automatisierte Snapshots deaktivieren, erstellt Amazon Redshift keine Snapshots mehr und löscht jegliche vorhandene, automatisierte Snapshots für den Cluster.

Nur Amazon Redshift kann automatisierte Snapshots löschen. Sie können sie nicht manuell löschen. Amazon Redshift löscht automatisierte Snapshots nach Ablauf des Aufbewahrungszeitraums, wenn Sie die Funktion für automatisierte Snapshots für den Cluster deaktivieren oder wenn Sie den Cluster löschen. Amazon Redshift behält den aktuellen automatisierten Snapshot bei, bis automatisierte Snapshots deaktiviert werden oder der Cluster gelöscht wird.

Wenn Sie einen automatisierten Snapshot für einen längeren Zeitraum behalten möchten, können Sie eine Kopie hiervon als einen manuellen Snapshot erstellen. Der automatisierte Snapshot wird bis zum Ende des Aufbewahrungszeitraums aufbewahrt, aber der entsprechende manuelle Snapshot wird aufbewahrt, bis Sie ihn manuell löschen oder das Ende des Aufbewahrungszeitraums erreicht ist.

Zeitpläne für automatisierte Snapshots

Erstellen Sie einen Snapshot-Zeitplan und fügen ihn an einen oder mehrere Cluster an, um präzise zu steuern, wann Snapshots erzeugt werden. Wenn Sie einen Snapshot-Zeitplan ändern, wird der Zeitplan für alle verknüpften Cluster angepasst. Ein Cluster ohne angefügten Snapshot-Zeitplan verwendet den standardmäßigen Zeitplan für automatisierte Snapshots.

Ein Snapshot-Zeitplan besteht aus einer Reihe von Zeitplanregeln. Sie können einen einfachen Zeitplan definieren, indem Sie Abstände festlegen, beispielsweise alle 8 oder 12 Stunden. Sie können auch Regeln hinzufügen, damit an bestimmten Wochentagen, zu festgelegten Zeiten oder während bestimmter Zeiträume Snapshots erstellt werden. Die Regeln können auch mithilfe von Unix-ähnlichen Cron-Ausdrücken definiert werden.

Format von Snapshot-Zeitplänen

Sie können in der Amazon Redshift-Konsole einen Snapshot-Zeitplan erstellen. Fügen Sie einem Cluster einen Zeitplan an, um die Erstellung eines System-Snapshots auszulösen. Ein Zeitplan kann mehreren Clustern angefügt werden. Außerdem kann ein Zeitplan mehrere Cron-Definitionen zum Auslösen von Snapshots enthalten.

Sie können einen Plan für Snapshots mit einer Cron-Syntax definieren. Die Definition dieser Zeitpläne verwendet eine geänderte, Unix-ähnliche Cron-Syntax. Verwenden Sie die UTC-Zeitzone (Coordinated Universal Time), um die Zeit anzugeben. Zeitpläne können mit einer maximalen Häufigkeit von einer Stunde und einer Mindestgenauigkeit von einer Minute erstellt werden.

Geänderte Amazon Redshift-Cron-Ausdrücke haben 3 Pflichtfelder, die durch Leerzeichen voneinander getrennt sind.

Syntax

cron(Minutes Hours Day-of-week)
Felder Werte Platzhalter

Minuten

0–59

Stunden

0–23

, - * /

Wochentag

1–7 oder SUN-SAT

, - * /

Platzhalter

  • Das Platzhalterzeichen , (Komma) umfasst zusätzliche Werte. Im Feld Day-of-week würde MON,WED,FRI Montag, Mittwoch und Freitag abdecken. Die Gesamtwerte sind auf 24 pro Feld begrenzt.

  • Das Platzhalterzeichen - (Bindestrich) gibt einen Bereich an. Im Feld Hour steht 1–15 für die Stunden 1 bis 15 des angegebenen Tags.

  • Das Platzhalterzeichen * (Sternchen) steht für alle Werte im Feld. Im Feld Hours steht * für alle Stunden.

  • Das Platzhalterzeichen / (Schrägstrich) steht für schrittweise Erhöhungen. Im Feld Hours können Sie 1/10 eingeben, um jede 10. Stunde anzugeben, beginnend mit der ersten Stunde des Tags (z. B. 01:00, 11:00, and 21:00).

Einschränkungen

  • Snapshot-Zeitpläne, die zu Sicherungshäufigkeiten von unter 1 Stunde oder über 24 Stunden führen, werden nicht unterstützt. Wenn Zeitpläne sich so überschneiden, dass Snapshots innerhalb eines Fensters von 1 Stunde geplant werden, wird ein Validierungsfehler erzeugt.

Wenn Sie einen Zeitplan erstellen, können Sie die folgenden Beispiel-Cron-Strings verwenden.

Minuten Stunden Wochentag Bedeutung

0

14-20/1

TUE

Jede Stunde zwischen 14:00 und 20:00 Uhr am Dienstag.

0

21

MON-FRI

Von Montag – Freitag jeden Abend um 21:00 Uhr.

30

0/6

SAT-SUN

Inkrementell alle 6 Stunden am Samstag und Sonntag, beginnend 30 Minuten nach Mitternacht (00:30) an diesem Tag. Das Ergebnis ist ein Snapshot um [00:30, 06:30, 12:30 und 18:30] Uhr am jeweiligen Tag.

30

12/4

*

Inkrementell alle 4 Stunden jeden Tag, beginnend um 12:30 Uhr. Das ergibt [12:30, 16:30, 20:30] Uhr.

Beispiel: Sie möchten einen Zeitplan jeden Tag beginnend um 15:15 Uhr inkrementell alle 2 Stunden ausführen. Das ergibt [15:15, 17:15, 19:15, 21:15, 23:15] Uhr. Geben Sie dafür Folgendes an:

cron(15 15/2 *)

Sie können einem Zeitplan mehrere Cron-Zeitplandefinitionen hinzufügen. Zum Beispiel enthält der folgende AWS-CLI-Befehl zwei Cron-Zeitpläne in einem Zeitplan.

create-snapshot-schedule --schedule-identifier "my-test" --schedule-definition "cron(0 17 SAT,SUN)" "cron(0 9,17 MON-FRI)"

Manuelle Snapshots

Sie können jederzeit einen manuellen Snapshot erstellen. Manuelle Snapshots werden standardmäßig sogar nach dem Löschen Ihres Clusters beliebig lange aufbewahrt. Sie können den Aufbewahrungszeitraum für manuelle Snapshots festlegen, wenn Sie den Snapshot erstellen, und ihn ändern, indem Sie den Snapshot modifizieren. Der standardmäßige Snapshot-Aufbewahrungszeitraum beträgt 365 Tage, wenn Sie einen Snapshot mit der Amazon Redshift-Konsole erstellen.

Nachdem Sie einen Snapshot gelöscht haben, können Sie keine neuen Operationen starten, die auf diesen Snapshot verweisen. Wenn jedoch ein Wiederherstellungsvorgang läuft, wird dieser Wiederherstellungsvorgang vollständig abgeschlossen.

Amazon Redshift verfügt über ein Kontingent, das die Gesamtzahl der manuellen Snapshots begrenzt, die Sie erstellen können. Diese Quote gilt pro AWS-Konto und AWS-Region. Das Standardkontingent wird unter AWS Service Limits aufgelistet.

Verwalten der Snapshot-Speicherung

Da für Snapshots Speicherkosten anfallen, ist es wichtig, dass Sie sie löschen, wenn Sie sie nicht mehr benötigen. Amazon Redshift löscht automatische und manuelle Snapshots nach Ablauf des Aufbewahrungszeitraums für den jeweiligen Snapshot. Sie können manuelle Snapshots auch mit der AWS Management Console oder mithilfe des CLI-Befehls batch-delete-cluster-snapshots löschen.

Sie können den Aufbewahrungszeitraum für einen manuellen Snapshots ändern, indem Sie die Einstellungen für manuelle Snapshots anpassen.

Informationen zu dem von Ihren Snapshots belegten Speicher erhalten Sie über die Amazon Redshift-Konsole oder über den CLI-Befehl describe-storage.

Ausschluss von Tabellen von Snapshots

Standardgemäß sind alle benutzerdefinierten, dauerhaften Tabellen in Snapshots enthalten. Wenn eine Tabelle wie die Staging-Tabelle nicht gesichert werden muss, können Sie die Zeit, die zum Erstellen von Snapshots und zum Wiederherstellen aus Snapshots erforderlich ist, beträchtlich reduzieren. Sie können auch den Speicherplatz auf Amazon S3 reduzieren, indem Sie keine Sicherungstabelle verwenden. Zum Erstellen einer Tabelle ohne Sicherung berücksichtigen Sie den BACKUP NO-Parameter beim Erstellen der Tabelle. Weitere Informationen finden Sie unter CREATE TABLE und CREATE TABLE AS im Amazon Redshift Database Developer Guide.

Kopieren von Snapshots in eine andere AWS-Region

Sie können Amazon Redshift für die automatische Kopie (automatisierter oder manueller) Snapshots für einen Cluster in eine andere AWS-Region konfigurieren. Wenn ein Snapshot in der primären AWS-Region des Clusters erstellt wird, wird er zu einer sekundären AWS-Region kopiert. Die beiden AWS-Regionen werden als die Quell-AWS-Region und die Ziel-AWS-Region bezeichnet. Wenn Sie eine Kopie Ihrer Snapshots in einer anderen AWS-Region speichern, können Sie Ihren Cluster aus aktuellen Daten wiederherstellen, wenn sich irgendetwas auf die primäre AWS-Region auswirkt. Sie können Ihren Cluster so konfigurieren, dass Snapshots nur in jeweils eine Ziel-AWS-Region kopiert werden. Eine Liste der Amazon Redshift-Regionen finden Sie unter Regionen und Endpunkte im Allgemeine Amazon Web Services-Referenz.

Wenn Sie Amazon Redshift für das automatische Kopieren von Snapshots in eine andere AWS-Region aktivieren, geben Sie die Ziel-AWS-Region an, in die die Snapshots kopiert werden sollen. Im Falle von automatisierten Snapshots können Sie auch den Aufbewahrungszeitraum in der Ziel-AWS-Region angeben. Nach dem automatisierten Kopieren eines Snapshots in die Ziel-AWS-Region und nach Erreichen des Aufbewahrungszeitraums wird dieser aus der Ziel-AWS-Region gelöscht. Dadurch bleibt Ihre Snapshot-Nutzung gering. Sie können diesen Aufbewahrungszeitraum ändern, wenn Sie die automatisierten Snapshots für einen kürzeren oder längeren Zeitraum in der Ziel-AWS-Region aufbewahren müssen.

Der Aufbewahrungszeitraum, den Sie für automatisierte Snapshots einstellen, die in die Ziel-AWS-Region kopiert werden, ist getrennt vom Aufbewahrungszeitraums für automatisierte Snapshots in der Quell-AWS-Region. Der Standardaufbewahrungszeitraum für kopierte Snapshots beträgt sieben Tage. Dieser Zeitraum von sieben Tagen gilt nur für automatisierte Snapshots. Sowohl in der Quell- als auch in der Ziel-AWS-Region werden manuelle Snapshots nach Ablauf des Snapshot-Aufbewahrungszeitraums gelöscht bzw. wenn Sie sie manuell löschen.

Sie können die automatische Snapshot-Kopie für einen Cluster jederzeit deaktivieren. Wenn Sie diese Funktion deaktivieren, werden Snapshots nicht mehr von der Quell-AWS-Region in die Ziel-AWS-Region kopiert. Alle automatisierten Snapshots, die in die Ziel-AWS-Region kopiert werden, werden bei Erreichen des Aufbewahrungszeitraums gelöscht, sofern Sie keine manuellen Snapshot-Kopien davon erstellen. Diese manuellen Snapshots und alle manuellen Snapshots, die aus der Quell-AWS-Region kopiert werden, werden in der Ziel-AWS-Eegion aufbewahrt, bis sie manuell gelöscht werden.

Um die Ziel-AWS-Region zu ändern, zu der Snapshots kopiert werden, deaktivieren Sie zuerst die automatische Kopierfunktion. Aktivieren Sie sie dann wieder unter Angabe der neuen Ziel-AWS-Region.

Sobald ein Snapshot in die Ziel-AWS-Region kopiert wurde, wird er aktiv und steht für Wiederherstellungszwecke zur Verfügung.

Wenn Sie Snapshots für AWS KMS–-verschlüsselte Cluster zu einer anderen AWS-Region kopieren möchten, müssen Sie für Amazon Redshift eine Genehmigung für die Verwendung eines KMS-Kundenmasterschlüssels (Customer Master Key, CMK) in der Ziel-AWS-Region erstellen. Dann müssen Sie diese Erteilung beim Aktivieren der Snapshot-Kopie in der Quell-AWS-Region auswählen. Weitere Informationen zur Konfiguration von Erteilungen von Snapshots-Kopien finden Sie unter Kopieren eines AWS KMS-verschlüsselten Snapshots in eine andere AWS-Region.

Wiederherstellen eines Clusters aus einem Snapshot

Ein Snapshot enthält Daten aus Datenbanken, die auf Ihrem Cluster ausgeführt werden. Dazu enthält er Informationen zu Ihrem Cluster, darunter die Anzahl der Knoten, den Knotentyp und den Master-Benutzernamen. Wenn Sie einen Cluster aus einem Snapshot wiederherstellen, verwendet Amazon Redshift die Clusterinformationen zur Erstellung eines neuen Clusters. Dann werden alle Datenbanken aus den Snapshotdaten wiederhergestellt.

Für den aus dem ursprünglichen Snapshot wiederhergestellten neuen Cluster können Sie die Konfiguration auswählen, etwa den Knotentyp und die Anzahl der Knoten. Der Cluster wird in derselben AWS-Region und einer zufällig vom System ausgewählten Availability Zone wiederhergestellt, es sei denn, Sie legen in Ihrer Anfrage eine andere Availability Zone fest. Wenn Sie einen Cluster anhand eines Snapshots wiederherstellen, können Sie optional eine kompatible Wartungsspur für den neuen Cluster auswählen.

Anmerkung

Wenn Sie einen Snapshot zu einem Cluster mit einer anderen Konfiguration wiederherstellen, muss der Snapshot auf einem Cluster mit Clusterversion 1.0.10013 oder höher erstellt worden sein.

Sie können den Fortschritt einer Wiederherstellung durch Aufrufen der API-OperationDescribeClusters oder durch Anzeigen der Clusterdetails in der AWS Management Console überwachen. Für eine Wiederherstellung in Bearbeitung werden Informationen wie die Größe der Snapshot-Daten, die Übertragungsrate, die verstrichene Zeit und die geschätzte Restzeit angezeigt. Eine Beschreibung dieser Metriken finden Sie unter RestoreStatus.

Sie können einen Snapshot nicht zum Wiederherstellen eines aktiven Clusters in einen vorherigen Status verwenden.

Anmerkung

Wenn Sie einen Snapshot in einen neuen Cluster wiederherstellen, werden die Standardsicherheitsgruppe und -parametergruppe verwendet, sofern Sie keine anderen Werte angeben.

Möglicherweise möchten Sie aus den folgenden Gründen einen Snapshot zu einem Cluster mit einer anderen Konfiguration wiederherstellen:

  • Wenn ein Cluster aus kleineren Knotentypen besteht und Sie ihn zu einem größeren Knotentyp mit weniger Knoten konsolidieren möchten.

  • Wenn Sie Ihre Workloads beobachtet haben und feststellen, dass Sie einen Knotentyp mit mehr CPU-Leistung und Speicherplatz benötigen.

  • Wenn Sie die Leistung von Test-Workloads mit anderen Knotentypen messen möchten.

Die folgenden Schritte basieren auf einem Cluster mit zahlreichen Knoten und konsolidieren diesen zu einem größeren Knotentyp mit einer geringeren Zahl von Knoten mit AWS CLI. Für dieses Beispiel beginnen wir mit einem Quell-Cluster mit 24 ds2.xlarge-Knoten. Für diesen Fall nehmen wir an, dass wir bereits einen Snapshot dieses Clusters erstellt haben und diesen jetzt zu einem größeren Knotentyp wiederherstellen möpchten.

  1. Führen Sie den folgenden Befehl aus, um die Details zu unserem 24-Knoten-ds2.xlarge-Cluster abzurufen.

    aws redshift describe-clusters --region eu-west-1 -—cluster-identifier mycluster-123456789012
  2. Führen Sie den folgenden Befehl aus, um die Details des Snapshots abzurufen.

    aws redshift describe-cluster-snapshots --region eu-west-1 -—snapshot-identifier mycluster-snapshot
  3. Führen Sie den folgenden Befehl aus, um die für diesen Snapshot verfügbaren Optionen zu beschreiben.

    aws redshift describe-node-configuration-options --snapshot-identifier mycluster-snapshot --region eu-west-1 -—action-type restore-cluster

    Dieser Befehl gibt eine Optionenliste mit empfohlenen Knotentypen, der Knotenanzahl und der Festplattennutzung für jede Option aus. Bei diesem Beispiel listet der obige Befehl die folgenden möglichen Knotenkonfigurationen auf. Wir entscheiden uns für die Wiederherstellung zu einem ds2.8xlarge-Cluster mit drei Knoten.

    { "NodeConfigurationOptionList": [ { "EstimatedDiskUtilizationPercent": 65.26134808858235, "NodeType": "ds2.xlarge", "NumberOfNodes": 24 }, { "EstimatedDiskUtilizationPercent": 32.630674044291176, "NodeType": "ds2.xlarge", "NumberOfNodes": 48 }, { "EstimatedDiskUtilizationPercent": 65.26134808858235, "NodeType": "ds2.8xlarge", "NumberOfNodes": 3 }, { "EstimatedDiskUtilizationPercent": 48.94601106643677, "NodeType": "ds2.8xlarge", "NumberOfNodes": 4 }, { "EstimatedDiskUtilizationPercent": 39.156808853149414, "NodeType": "ds2.8xlarge", "NumberOfNodes": 5 }, { "EstimatedDiskUtilizationPercent": 32.630674044291176, "NodeType": "ds2.8xlarge", "NumberOfNodes": 6 } ] }
  4. Führen Sie den folgenden Befehl aus, um den Snapshot zu der von uns gewählten Clusterkonfiguration wiederherzustellen. Nach der Wiederherstellung dieses Clusters haben wir denselben Inhalt wie der Quell-Cluster, wobei die Daten aber in drei ds2.8xlarge-Knoten konsolidiert wurden.

    aws redshift restore-from-cluster-snapshot --region eu-west-1 --snapshot-identifier mycluster-snapshot -—cluster-identifier mycluster-123456789012-x --node-type ds2.8xlarge --number-of-nodes 3

Wiederherstellen einer Tabelle aus einem Snapshot

Sie können eine einzelne Tabelle aus einem Snapshot anstellen eines gesamten Clusters wiederherstellen. Wenn Sie eine einzelne Tabelle aus eine Snapshot wiederherstellen, geben Sie Quell-Snapshot, -Datenbank, -Schema und -Tabellennamen und Ziel-Snapshot, -Datenbank, -Schema und -Tabellennamen für die wiederhergestellte Tabelle an.

Der neue Tabellenname kann nicht identisch sein mit dem Namen einer bestehenden Tabelle. Um eine bestehende Tabelle durch eine wiederhergestellte Tabelle aus einem Snapshot zu ersetzen, sollten Sie die Tabelle umbenennen oder die bestehende Tabelle ablegen, bevor Sie die Tabelle aus dem Snapshot wiederherstellen.

Die Zieltabelle wird mithilfe der Spaltendefinitionen, Tabellenattribute und Spaltenattribute der Quelltabelle erstellt. Eine Ausnahme gilt für Fremdschlüssel. Um Konflikte aufgrund von Abhängigkeiten zu vermeiden, übernimmt die Zieltabelle keine Fremdschlüssel von der Quelltabelle. Alle Abhängigkeiten, wie z. B. Ansichten oder Berechtigungen, die für die Quelltabelle gewährt wurden, gelten nicht für die Zieltabelle.

Wenn der Eigentümer der Quelltabelle existiert, dann ist der Benutzer der Eigentümer der wiederhergestellten Tabelle, vorausgesetzt, dieser Benutzer verfügt über ausreichend Berechtigungen, um der Eigentümer einer Beziehung in der angegebenen Datenbak und dem Schema zu sein. Andernfalls ist die wiederhergestellte Tabelle Besitz des Masterbenutzers, der beim Start des Clusters angelegt wurde.

Die wiederhergestellte Tabelle wird wieder in den Status zurückgesetzt, in dem sie sich zum Zeitpunkt der Sicherung befunden hat. Dies umfasst die Sichtbarkeitsregeln der Transaktion, die durch die Amazon Redshift Einhaltung der serialisierbaren Isolation definiert werden. Dies bedeutet, dass Daten in Transaktionen, die sich in der Übertragung befinden, unmittelbar nach der Sicherung sichtbar sein werden.

Die Wiederherstellung einer Tabelle aus einem Snapshot unterliegt folgenden Beschränkungen:

  • Sie können eine Tabelle aus dem aktuellen, aktiv laufenden Cluster und aus einem Snapshot wiederherstellen, der aus diesem Cluster erstellt wurde.

  • Sie können jeweils nur eine Tabelle wiederherstellen.

  • Sie können keine Tabelle aus einem Cluster-Snapshot wiederherstellen, der erstellt wurde, bevor die Größe des Clusters verändert wurde.

Wiederherstellen einer Tabelle aus einem Snapshot mithilfe der Amazon Redshift-Konsole

  1. Melden Sie sich in der AWS Management Console an und öffnen Sie die Amazon Redshift-Konsole unter https://console.aws.amazon.com/redshift/.

  2. Wählen Sie die Option Clusters (Cluster) und anschließend einen Cluster aus.

  3. Wählen Sie die Registerkarte Table restore (Tabellenwiederherstellung) aus.

  4. Wählen Sie Restore table (Tabelle wiederherstellen) aus.

  5. Wählen Sie im Bereich Table restore (Tabellenwiederherstellung) einen Datumsbereich aus, der den Cluster-Snapshot enthält, aus dem Sie die Wiederherstellung ausführen möchten. Sie können beispielsweise Last 1 Week für Cluster-Snapshots auswählen, die in der Vorwoche erstellt wurden.

  6. Fügen Sie die folgende Information hinzu.

    • From snapshot (Aus Snapshot) – die ID des Cluster-Snapshots, der die Tabelle enthält, aus der Sie die Wiederherstellung ausführen möchten.

    • Source table to restore from (Quelltabelle für die Wiederherstellung)

      • Database (Datenbank) – der Name der Datenbank aus dem Cluster-Snapshot, der die Tabelle enthält, aus der Sie die Wiederherstellung ausführen möchten.

      • Schema (Schema) – der Name des Datenbankschemas aus dem Cluster-Snapshot, der die Tabelle enthält, aus der Sie die Wiederherstellung ausführen möchten.

      • Table (Tabelle) – der Name der Tabelle aus dem Cluster-Snapshot, aus der Sie die Wiederherstellung ausführen möchten.

    • Target table to restore to (Zieltabelle für die Wiederherstellung)

      • Database (Datenbank) – der Name der Datenbank im Zielcluster, zu der die Tabelle wiederhergestellt werden soll.

      • Schema (Schema) – der Name des Datenbankschemas im Zielcluster, zu dem die Tabelle wiederhergestellt werden soll.

      • New table name (Name der neuen Tabelle) – der Name der wiederhergestellten Tabelle. Dieser Name kann nicht der Name einer bestehenden Tabelle in der Ziel-Datenbank sein.

  7. Wählen Sie Restore (Wiederherstellen) aus, um die Tabelle wiederherzustellen.

Wenn Sie mindestens eine Tabelle aus einem Cluster-Snapshot wiederhergestellt haben, können Sie die Werte aus einer früheren Anfrage zur Wiederherstellung einer Tabelle in eine neue Anfrage zur Wiederherstellung einer Tabelle kopieren. bei diesem Ansatz geht es darum, dass Sie keine Werte wiederholt eingeben müssen, die für mehrere Tabellen-Wiederherstellungsvorgänge identisch sein werden.

Kopieren von einer früheren Anfrage zur Wiederherstellung einer Tabelle in einen neuen Vorgang zur Wiederherstellung einer Tabelle:

  1. Wählen Sie auf der Registerkarte Table restore (Tabellenwiederherstellung) den Wiederherstellungsstatus einer vorhandenen Tabelle aus.

  2. Wählen Sie Copy restore request (Wiederherstellungsanfrage kopieren) aus.

Beispiel: Wiederherstellen einer Tabelle aus einem Snapshot mithilfe des AWS CLI

Bei dem folgenden Beispiel wird der restore-table-from-cluster-snapshot AWS-CLI-Befehl verwendet, um die my-source-table-Tabelle aus dem sample-database-Schema im my-snapshot-id wiederherzustellen. Bei diesem Beispiel wird der Snapshot in das Cluster mycluster-example mit einem neuen Tabellennamen my-new-table wiederhergestellt.

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

Freigeben eines Snapshots

Sie können einen bestehenden manuellen Snapshot für andere AWS-Kundenkonten freigeben, indem Sie den Zugriff auf den Snapshot genehmigen. Sie können bis zu 20 für jeden Snapshot und bis zu 100 für jeden AWS Key Management Service (AWS KMS)-Schlüssel autorisieren. Wenn Sie als 10 Snapshots haben, die mit einem einzigen KMS-Schlüssel verschlüsselt sind, können Sie 10 AWS-Konten erlauben, jeden Snapshot oder andere Kombinationen wiederherzustellen, die in Summe 100 Konten ergeben und 20 Konten für jeden Snapshot nicht übersteigen. Eine Person, die als ein Benutzer in einem der genehmigten Konten angemeldet ist, kann dann den Snapshot beschreiben oder ihn wiederherstellen, um einen neuen Amazon Redshift-Cluster unter ihrem Konto zu erstellen. Wenn Sie beispielsweise getrennte AWS-Kundenkonten für Produktion und Test verwenden, kann ein Benutzer sich mithilfe des Benutzerkontos anmelden und einen Snapshot mit Benutzern im Testkonto teilen. Jemand, der sich als Testkonto-Benutzer angemeldet hat, kann dann den Snapshot wiederherstellen, um einen neuen Cluster für Test- oder Diagnosearbeiten zu erstellen, der Eigentum des Testkontos ist.

Ein manueller Snapshot ist dauerhaftes Eigentum des AWS-Kundenkontos, unter dem er erstellt wurde. Nur Benutzer im Konto, dem der Snapshot gehört, könnten anderen Konten die Berechtigung zum Zugriff auf den Snapshot gewähren oder solche Berechtigung wieder entziehen. Benutzer in den genehmigten Konten können nur einen Snapshot beschreiben oder wiederherstellen, der für sie freigegeben wurde; sie können keine Snapshots kopieren oder löschen, die für sie freigegeben wurden. Eine Berechtigung bleibt gültig, bis der Eigentümer des Snapshot sie widerruft. Wird eine Berechtigung widerrufen, verliert der zuvor autorisierte Benutzer die Sichtbarkeit für den Snapshot und kann keine neuen Aktionen starten, die auf den Snapshot verweisen. Wenn das Konto dabei ist, den Snapshot wiederherzustellen, wenn der Zugriff widerrufen wird, wird die Wiederherstellung vollständig abgeschlossen. Sie können keinen Snapshot löschen, während aktive Berechtigungen vorliegen; Sie müssen zuerst alle Berechtigungen widerrufen.

AWS-Kundenkonten sind immer berechtigt, auf Snapshots zuzugreifen, die sich im Besitz des Kontos befinden. Bei Versuchen, den Zugriff zum Eigentümerkonto zu genehmigen oder zu widerrufen, erscheint eine Fehlermeldung. Sie können keinen Snapshot wiederherstellen oder beschreiben, der im Besitz eines inaktiven AWS-Kundenkontos ist.

Nachdem Sie den Zugriff auf ein AWS-Kundenkonto autorisiert haben, können IAM-Benutzer in diesem Konto keine Aktionen für den Snapshot ausführen, wenn es keine IAM-Richtlinien gibt, die dies für sie zulassen.

  • IAM-Benutzer im Snapshot-Eigentümerkonto können nur dann den Zugriff an einen Snapshot genehmigen oder widerrufen, wenn IAM-Richtlinien vorliegen, die die Durchführung solcher Aktionen mit einer Ressourcenspezifikation zulassen, die den Snapshot beinhaltet. Die folgende Richtlinie gestattet beispielsweise einem Benutzer im AWS-Konto 012345678912, anderen Konten den Zugriff auf einen Snapshot mit dem Namen my-snapshot20130829 zu gestatten:

    { "Version": "2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "redshift:AuthorizeSnapshotAccess", "redshift:RevokeSnapshotAccess" ], "Resource":[ "arn:aws:redshift:us-east-1:012345678912:snapshot:*/my-snapshot20130829" ] } ] }
  • IAM-Benutzer in einem AWS-Konto, für das ein Snapshot freigegeben wurde, können keine Aktionen für diesen Snapshot ausführen, wenn es keine IAM-Richtlinien gibt, die ihnen dies gestatten:

    • Um einen Snapshot aufzulisten oder zu beschreiben, muss eine IAM-Richtlinie vorliegen, die die DescribeClusterSnapshots-Aktion erlaubt. Der folgende Code zeigt ein Beispiel dafür:

      { "Version": "2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "redshift:DescribeClusterSnapshots" ], "Resource":[ "*" ] } ] }
    • Um einen Snapshot wiederherzustellen, müssen Benutzer eine IAM-Richtlinie haben, die die Aktion RestoreFromClusterSnapshot erlaubt und über ein Ressourcenelement verfügen, das sowohl den Cluster, den Sie versuchen zu erstellen, als auch den Snapshot abdeckt. Wenn beispielsweise ein Benutzer in einem Konto 012345678912 den Snapshot my-snapshot20130829 für Konto 219876543210 freigegeben hat, um durch Wiederherstellen des Snapshot einen Cluster zu erstellen, muss ein Benutzer im Konto 219876543210 über eine Richtlinie wie die folgende verfügen:

      { "Version": "2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "redshift:RestoreFromClusterSnapshot" ], "Resource":[ "arn:aws:redshift:us-east-1:012345678912:snapshot:*/my-snapshot20130829", "arn:aws:redshift:us-east-1:219876543210:cluster:from-another-account" ] } ] }
    • Sobald der Zugriff auf einen Snapshot von einem AWS-Konto widerrufen wurde, können keine Benutzer in diesem Konto auf den Snapshot zugreifen, selbst wenn IAM-Richtlinien vorliegen, die Aktionen an der zuvor freigegebenen Snapshot-Ressource zulassen.