Amazon-Redshift-Snapshots - Amazon Redshift

Amazon-Redshift-Snapshots

Overview

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 nach. 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 anhand eines Snapshots eine Wiederherstellung durchführen, erstellt Amazon Redshift einen neuen Cluster und stellt diesen bereit, bevor alle Daten geladen werden, sodass Sie umgehend mit dem Abfragen 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 standardmäßigen Aufbewahrungszeitraum für automatisierte 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, um sicherzustellen, dass Ihre Backups dem Cluster immer zur Verfügung stehen. Um die Speichergebühren zu verwalten, schätzen Sie ab, wie viele Tage Sie automatisierte Snapshots behalten müssen, und konfigurieren Sie dann den Aufbewahrungszeitraum entsprechend. Löschen Sie manuelle Snapshots, die nicht mehr benötigt werden. Weitere Informationen zu den Kosten von Backup-Speicher finden Sie auf der Seite Amazon Redshift – Preise.

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 ihn jedoch mit der Amazon-Redshift-Konsole oder programmgesteuert mit der Amazon Redshift API oder 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 alle vorhandenen automatisierten Snapshots für den Cluster. Sie können automatische Snapshots für RA3-Knotentypen nicht deaktivieren. Sie können einen automatisierten Aufbewahrungszeitraum für den RA3-Knotentyp zwischen 1 und 35 Tagen festlegen.

Nur Amazon Redshift kann einen automatisierten Snapshot löschen. Sie können ihn manuell nicht löschen. Amazon Redshift löscht automatisierte Snapshots nach Ablauf ihres Aufbewahrungszeitraums, wenn Sie automatisierte Snapshots für den Cluster deaktivieren oder wenn Sie den Cluster löschen. Amazon Redshift behält den neuesten automatisierten Snapshot, bis Sie automatisierte Snapshots deaktivieren oder den Cluster löschen.

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 nutzt eine modifizierte, 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.

Modifizierte cron-Ausdrücke für Amazon Redshift 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

, - * /

Wildcards

  • 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 Steigerungen. 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).

Limits

  • 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

MO-FR

Von Montag bis 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. Weitere Informationen zum Ändern des Aufbewahrungszeitraums finden Sie unter Ändern des Aufbewahrungszeitraums für manuelle Snapshots.

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 besitzt 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 ist unter Kontingente und Limits in Amazon Redshift aufgeführt.

Verwalten der Snapshot-Speicherung

Da für Snapshots Speicherkosten anfallen, ist es wichtig, sie zu löschen, wenn Sie sie nicht mehr benötigen. Amazon Redshift löscht automatisierte und manuelle Snapshots nach Ablauf ihres jeweiligen Aufbewahrungszeitraums. Sie können manuelle Snapshots auch mit der AWS Management Console oder dem CLI-Befehl 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 Datenbankentwicklerhandbuch zu Amazon Redshift.

Kopieren von Snapshots in eine andere AWS-Region

Sie können Amazon Redshift so konfigurieren, dass (automatisierte oder manuelle) Snapshots für einen Cluster automatisch in eine andere AWS-Region kopiert werden. Wenn ein Snapshot in der primären AWS-Region des Clusters erstellt wird, wird er in eine sekundäre AWS-Region kopiert. Die beiden AWS-Regionen werden als Quell-AWS-Region bzw. 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 die primäre AWS-Region irgendwie beeinträchtigt wird. Sie können Ihren Cluster immer nur so konfigurieren, dass Snapshots in eine AWS-Zielregion kopiert werden. Eine Liste der Amazon-Redshift-Regionen finden Sie unter Regionen und Endpunkte in der Allgemeinen Amazon-Web-Services-Referenz.

Wenn Sie für Amazon Redshift 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 für die Ziel-AWS-Region angeben. Nach dem Kopieren eines automatisierten Snapshots in die Ziel-AWS-Region und nach dem Erreichen des dortigen Aufbewahrungszeitraums wird der Snapshot aus der Ziel-AWS-Region gelöscht. Dadurch bleibt Ihre Snapshot-Nutzung gering. Sie können den Aufbewahrungszeitraum ändern, wenn Sie die automatisierten Snapshots in der Ziel-AWS-Region länger oder kürzer aufbewahren möchten.

Der Aufbewahrungszeitraum, den Sie für automatisierte Snapshots einstellen, die in die Ziel-AWS-Region kopiert werden, ist unabhängig vom Aufbewahrungszeitraum 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. dann, 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 AWS-Quellregion in die AWS-Zielregion kopiert. Alle automatisierten Snapshots, die in die AWS-Zielregion kopiert wurden, werden nach Ablauf des Aufbewahrungszeitraums gelöscht, sofern Sie keine manuellen Snapshot-Kopien von ihnen erstellen. Diese manuellen Snapshots und alle manuellen Snapshots, die aus der AWS-Zielregion kopiert wurden, werden in der AWS-Zielregion aufbewahrt, bis sie manuell gelöscht werden.

Um die AWS-Zielregion zu ändern, in die Snapshots kopiert werden, deaktivieren Sie zuerst die Funktion zum automatischen Kopieren. Aktivieren Sie sie dann wieder unter Angabe der neuen AWS-Zielregion.

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

Wenn Sie Snapshots für mit AWS KMS verschlüsselte Cluster in eine andere AWS-Region kopieren möchten, müssen Sie eine Berechtigung für Amazon Redshift zur Verwendung eines vom Kunden verwalteten Schlüssels in der AWS-Zielregion erstellen. Dann müssen Sie diese Berechtigung beim Aktivieren der Snapshot-Kopien in der AWS-Quellregion auswählen. Weitere Informationen zur Konfiguration von Erteilungen von Snapshots-Kopien finden Sie unter Kopieren eines mit 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 Admin-Benutzernamen. Wenn Sie einen Cluster aus einem Snapshot wiederherstellen, verwendet Amazon Redshift die Cluster-Informationen zur Erstellung eines neuen Clusters. Dann werden alle Datenbanken aus den Snapshot-Daten 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 in einer zufällig vom System ausgewählten Availability Zone wiederhergestellt, es sei denn, Sie geben in Ihrer Anforderung eine andere Availability Zone an. 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.

Während eine Wiederherstellung ausgeführt wird, werden Ereignisse in der Regel in der folgenden Reihenfolge ausgegeben:

  1. RESTORE_STARTED – REDSHIFT-EVENT-2008 wird gesendet, wenn der Wiederherstellungsprozess beginnt.

  2. RESTORE_SUCCEEDED – REDSHIFT-EVENT-3003 wird gesendet, wenn der neue Cluster erstellt wurde.

    Der Cluster ist für Abfragen verfügbar.

  3. DATA_TRANSFER_COMPLETED — REDSHIFT-EVENT-3537 wird gesendet, wenn die Datenübertragung abgeschlossen ist.

Anmerkung

RA3-Cluster geben nur RESTORE_STARTED- und RESTORE_SUCCEEDED-Ereignisse aus. Es gibt keine explizite Datenübertragung, die erfolgen muss, nachdem ein RESTORE erfolgreich war, da RA3-Knotentypen Daten in von Amazon Redshift verwaltetem Speicher speichern. Bei RA3-Knoten werden Daten im Rahmen der normalen Abfrageverarbeitung kontinuierlich zwischen RA3-Knoten und dem von Amazon Redshift verwalteten Speicher übertragen. RA3-Knoten speichern aktive Daten lokal und weniger häufig abgefragte Blöcke automatisch in von Amazon Redshift verwaltetem Speicher.

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.

Für die Wiederherstellung gelten die folgenden Einschränkungen:

  • Die neue Knotenkonfiguration muss über genügend Speicherplatz für vorhandene Daten verfügen. Auch wenn Sie Knoten hinzufügen, verfügt Ihre neue Konfiguration möglicherweise aufgrund der Verteilung der Daten nicht über ausreichend Speicherplatz.

  • Der Wiederherstellungsvorgang überprüft, ob der Snapshot auf einer Cluster-Version erstellt wurde, die mit der Cluster-Version des neuen Clusters kompatibel ist. Wenn die Versionsebene des neuen Clusters zu früh ist, schlägt der Wiederherstellungsvorgang fehl und weitere Informationen werden in einer Fehlermeldung ausgegeben.

  • Welche möglichen Konfigurationen (Knotenanzahl und Knotentyp) Sie wiederherstellen können, ist von der Anzahl der Knoten im ursprünglichen Cluster und dem Zielknotentyp des neuen Clusters abhängig. Zum Ermitteln der verfügbaren Konfigurationen können Sie die Amazon-Redshift-Konsole oder den AWS CLI-Befehl describe-node-configuration-options mit action-type restore-cluster verwenden. Weitere Informationen zur Wiederherstellung mithilfe der Amazon-Redshift-Konsole finden Sie unter Wiederherstellen eines Clusters aus einem Snapshot.

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

Wenn Sie reservierte Knoten haben, zum Beispiel reservierte DS2- oder DC2-Knoten, können Sie auf reservierte RA3-Knoten aktualisieren. Sie können dies tun, wenn Sie eine Wiederherstellung von einem Snapshot oder eine elastische Größenänderung durchführen. Sie können die Konsole verwenden, um sich durch den Prozess führen zu lassen. Weitere Informationen zum Aktualisieren auf RA3-Knoten finden Sie unter Migration zu RA3-Knotentypen.

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. Anderenfalls ist die wiederhergestellte Tabelle Besitz des Adminbenutzers, der beim Starten des Clusters angelegt wurde.

Die wiederhergestellte Tabelle wird wieder in den Status zurückgesetzt, in dem sie sich zum Zeitpunkt der Sicherung befunden hat. Dazu gehören Sichtbarkeitsregeln für die Transaktion, die durch die Einhaltung der serialisierbaren Isolation durch Amazon Redshift definiert sind. Das heißt, dass Daten für derzeit übertragene Transaktionen, die nach dem Backup gestartet wurden, sofort sichtbar sind.

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.

Anmerkung

Für Amazon Redshift ist eine neue Konsole verfügbar. Wählen Sie je nach verwendeter Konsole eine der Anweisungen New console (Neue Konsole) oder Original console (Ursprüngliche Konsole) aus. Standardmäßig wird die Anweisung New Console (Neue Konsole) geöffnet.

So stellen Sie eine Tabelle aus einem Snapshot wieder her:

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

  2. Wählen Sie im Navigationsmenü CLUSTERS (CLUSTER) und dann den Cluster aus, den Sie zur Wiederherstellung einer Tabelle verwenden möchten.

  3. Wählen Sie für Actions (Aktionen) Restore table (Tabelle wiederherstellen) aus, um die Seite Restore table (Tabelle wiederherstellen) anzuzeigen.

  4. Geben Sie die Informationen darüber ein, welchen Snapshot, welche Quelltabelle und welche Zieltabelle Sie verwenden möchten. Wählen Sie dann Restore table (Tabelle wiederherstellen) aus.

So stellen Sie mit der Amazon-Redshift-Konsole eine Tabelle aus einem Snapshot wieder her

  1. Melden Sie sich bei 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 – 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 Ziel-Cluster, in die die Tabelle wiederhergestellt werden soll.

      • Schema – der Name des Datenbankschemas im Ziel-Custer, in das 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 autorisieren. 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 10 Snapshots haben, die mit einem einzigen KMS-Schlüssel verschlüsselt sind, können Sie also 10 AWS-Konten autorisieren, jeden Snapshot wiederherzustellen, oder andere Kombinationen, 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-Inhaberkonto können nur dann den Zugriff auf einen Snapshot genehmigen oder widerrufen, wenn eine IAM-Richtlinie vorliegt, die ihnen die Durchführung solcher Aktionen mit einer Ressourcenspezifikation erlauben, 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 diese Aktionen 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" ] } ] }
    • Nachdem der Zugriff auf einen Snapshot von einem AWS-Konto widerrufen wurde, können keine Benutzer in diesem Konto auf den Snapshot zugreifen. Dies gilt auch, wenn sie über IAM-Richtlinien verfügen, die Aktionen für die zuvor freigegebene Snapshot-Ressource zulassen.