Durchführen einer Zeitpunktwiederherstellung
Verwenden Sie die Zeitpunktwiederherstellung (Point-in-Time Restore, PITR), um eine Datenbank als Kopie einer anderen Datenbank zu einem Zeitpunkt in der Vergangenheit zu erstellen, der innerhalb des Aufbewahrungszeitraums liegt. Dieser Artikel beschreibt, wie Sie eine Point-in-Time-Wiederherstellung einer Datenbank in einer Azure Arc-fähigen SQL Managed Instance durchführen.
Mit der Point-in-Time-Wiederherstellung kann eine Datenbank wiederhergestellt werden:
- Von einer bestehenden Datenbank
- in eine neue Datenbank auf derselben SQL-Manager-Instanz mit Azure Arc-Aktivierung
Sie können eine Datenbank zu einem bestimmten Zeitpunkt innerhalb einer vorkonfigurierten Aufbewahrungseinstellung wiederherstellen. Sie können die Aufbewahrungseinstellung für eine SQL Managed Instance mit Azure Arc-Aktivierung wie folgt überprüfen:
Für den Konnektivitätsmodus Direkt:
az sql mi-arc show --name <SQL instance name> --resource-group <resource-group>
#Example
az sql mi-arc show --name sqlmi --resource-group myresourcegroup
Für den Konnektivitätsmodus Indirekt:
az sql mi-arc show --name <SQL instance name> --k8s-namespace <SQL MI namespace> --use-k8s
#Example
az sql mi-arc show --name sqlmi --k8s-namespace arc --use-k8s
Derzeit kann eine Datenbank mit Point-in-Time Restore wiederhergestellt werden:
- Von einer bestehenden Datenbank auf einer Instanz
- In eine neue Datenbank auf der gleichen Instanz
Automatische Sicherungen
Bei SQL Managed Instance mit Azure Arc-Aktivierung ist das integrierte Feature für automatische Sicherungen aktiviert. Bei jedem Erstellen einer neuen Datenbank oder dem Wiederherstellen einer Datenbank initiiert SQL Managed Instance mit Azure Arc-Aktivierung sofort eine vollständige Sicherung und plant differenzielle Sicherungen sowie Transaktionsprotokollsicherungen automatisch. SQL Managed Instance speichert diese Sicherungen in der während der Bereitstellung angegebenen Speicherklasse.
Mit der Zeitpunktwiederherstellung (PITR) kann eine Datenbank für einen bestimmten Zeitpunkt innerhalb des Aufbewahrungszeitraums wiederhergestellt werden. Um eine Datenbank für einen bestimmten Zeitpunkt wiederherzustellen, verwenden Azure Arc-fähige Datendienste die Backup-Dateien in einer bestimmten Reihenfolge. Beispiel:
- Vollständige Sicherung
- Differenzielle Sicherung
- Eine oder mehrere Transaktionsprotokollsicherungen
Derzeit werden vollständige Sicherungen einmal pro Woche, differenzielle Sicherungen alle 12 Stunden und Transaktionsprotokollsicherungen alle 5 Minuten erstellt.
Aufbewahrungszeitraum
Die Standardaufbewahrungsdauer für eine neue SQL Managed Instance mit Azure Arc-Aktivierung beträgt sieben Tage und kann mit Werten von 0 oder 1 bis 35 Tagen angepasst werden. Der Aufbewahrungszeitraum kann während der Bereitstellung der SQL Managed Instance festgelegt werden, indem die Eigenschaft --retention-days
angegeben wird. Sicherungsdateien, die älter als der konfigurierte Aufbewahrungszeitraum sind, werden automatisch gelöscht.
Erstellen einer Datenbank ab einem bestimmten Zeitpunkt mit der Azure CLI
az sql midb-arc restore --managed-instance <SQL managed instance> --name <source DB name> --dest-name <Name for new db> --k8s-namespace <namespace of managed instance> --time "YYYY-MM-DDTHH:MM:SSZ" --use-k8s
#Example
az sql midb-arc restore --managed-instance sqlmi1 --name Testdb1 --dest-name mynewdb --k8s-namespace arc --time "2021-10-29T01:42:14.00Z" --use-k8s
Sie können auch die Option --dry-run
verwenden, um den Wiederherstellungsvorgang zu überprüfen, ohne die Datenbank tatsächlich wiederherzustellen.
az sql midb-arc restore --managed-instance <SQL managed instance> --name <source DB name> --dest-name <Name for new db> --k8s-namespace <namespace of managed instance> --time "YYYY-MM-DDTHH:MM:SSZ" --use-k8s --dry-run
#Example
az sql midb-arc restore --managed-instance sqlmi1 --name Testdb1 --dest-name mynewdb --k8s-namespace arc --time "2021-10-29T01:42:14.00Z" --use-k8s --dry-run
Erstellen einer Datenbank ab einem bestimmten Zeitpunkt mit kubectl
Sie können
kubectl
verwenden, um eine Zeitpunktwiederherstellung mit Kubernetes-nativen Tools durchzuführen. Erstellen Sie eine aufgabenspezifische YAML-Datei. Beispiel:apiVersion: tasks.sql.arcdata.microsoft.com/v1 kind: SqlManagedInstanceRestoreTask metadata: name: myrestoretask20220304 namespace: test spec: source: name: miarc1 database: testdb restorePoint: "2021-10-12T18:35:33Z" destination: name: miarc1 database: testdb-pitr dryRun: false
Bearbeiten Sie die Eigenschaften wie folgt:
name:
Eindeutige Zeichenfolge für jede benutzerdefinierte Ressource (CR). Erforderlich für Kubernetesnamespace:
Kubernetes-Namespace, in dem sich die Instanz befindet.source: ... name:
Name der Quellinstanzsource: ... database:
Name der Quelldatenbank, aus der die Wiederherstellung angewendet wirdrestorePoint:
Zeitpunkt des Wiederherstellungsvorgangs in UTC datetimedestination: ... name:
Name der Zielinstanz von SQL Managed Instance mit Azure Arc-Unterstützung. Derzeit wird die Zeitpunktwiederherstellung nur für SQL Managed Instance mit Azure Arc-Unterstützung unterstützt. Dabei sollte es sich um dieselbe Instanz von SQL Managed Instance wie bei der Quelle handeln.destination: ... database:
Name der neuen Datenbank, auf die die Wiederherstellung angewendet wird
Erstellen Sie eine Aufgabe, um die Zeitpunktwiederherstellung zu starten. Mit dem folgenden Beispiel wird die in
myrestoretask20220304.yaml
definierte Aufgabe initiiert.kubectl apply -f myrestoretask20220304.yaml
Überprüfen Sie den Status der Wiederherstellungsaufgabe wie folgt:
kubectl get sqlmirestoretask -n <namespace>
Der Status der Wiederherstellungsaufgabe wird basierend auf dem PITR-Fortschritt ungefähr alle 10 Sekunden aktualisiert. Der Fortschritt des Status verläuft von Waiting
zu Restoring
zu Completed
oder Failed
.
Erstellen einer Datenbank ab einem bestimmten Zeitpunkt mit Azure Data Studio
Sie können eine Datenbank auch wie folgt aus Azure Data Studio für einen bestimmten Zeitpunkt wiederherstellen:
- Starten von Azure Data Studio
- Stellen Sie sicher, dass Sie über die erforderlichen Arc-Erweiterungen verfügen, wie unter Tools beschrieben.
- Herstellen einer Verbindung mit dem Azure Arc-Datencontroller
- Erweitern Sie den Datencontrollerknoten, klicken Sie mit der rechten Maustaste auf die Instanz, und wählen Sie Verwaltenaus aus. Azure Data Studio startet das Dashboard von SQL Managed Instance.
- Klicken Sie im Dashboard auf die Registerkarte Sicherungen.
- Es sollte eine Liste der Datenbanken auf der SQL Managed Instance, die Zeitfenster für die „Früheste“ und „Neueste“ Wiederherstellung sowie ein Symbol zum Initiieren der Wiederherstellung angezeigt werden.
- Klicken Sie auf das Symbol für die Datenbank, aus der sie wiederherstellen möchten. Azure Data Studio startet ein Blatt auf der rechten Seite
- Geben Sie die erforderliche Eingabe auf dem Blatt an, und klicken Sie auf Wiederherstellen.
Fortschritt überwachen
Wenn eine Wiederherstellung initiiert wird, wird im Kubernetes-Cluster eine Aufgabe erstellt, die die tatsächlichen Wiederherstellungsvorgänge vollständiger, differenzieller und Protokollsicherungen ausführt. Der Fortschritt dieser Aktivität kann von Ihrem Kubernetes-Cluster aus wie folgt überwacht werden:
kubectl get sqlmirestoretask -n <namespace>
#Example
kubectl get sqlmirestoretask -n arc
Sie können weitere Details zur Aufgabe abrufen, indem Sie kubectl describe
für die Aufgabe ausführen. Beispiel:
kubectl describe sqlmirestoretask <nameoftask> -n <namespace>
Konfigurieren des Aufbewahrungszeitraums
Der Aufbewahrungszeitraum für eine SQL Managed Instance mit Azure Arc-Aktivierung kann wie folgt abweichend von der ursprünglichen Einstellung neu konfiguriert werden:
Warnung
Wenn Sie die aktuelle Beibehaltungsdauer verringern, verlieren Sie die Möglichkeit, Zeitpunkte wiederherzustellen, die älter als die neue Beibehaltungsdauer sind. Sicherungen, die für die Bereitstellung von Point-in-Time-Wiederherstellungen innerhalb der neuen Beibehaltungsdauer nicht mehr benötigt werden, werden gelöscht. Wenn Sie die aktuelle Beibehaltungsdauer verringern, wird die Möglichkeit, Zeitpunkte innerhalb der neuen Beibehaltungsdauer wiederherzustellen, nicht sofort hergestellt. Sie erhalten diese Möglichkeit im Lauf der Zeit, während das System beginnt, Sicherungen länger aufzubewahren.
Diese --retention-period
kann für eine SQL Managed Instance-Azure Arc-Instanz wie folgt geändert werden. Der folgende Befehl gilt sowohl für direct
als auch indirect
verbundene Modi.
az sql mi-arc update --name <SQLMI name> --k8s-namespace <namespace> --use-k8s --retention-days <retentiondays>
Beispiel:
az sql mi-arc update --name sqlmi --k8s-namespace arc --use-k8s --retention-days 10
Deaktivieren automatischer Sicherungen
Sie können die integrierten automatischen Sicherungen für eine bestimmte Instanz einer SQL Managed Instance mit Azure Arc-Aktivierung deaktivieren, indem Sie die Einstellung --retention-days
wie folgt auf 0 festlegen. Der folgende Befehl gilt sowohl für direct
als auch indirect
Modi.
Warnung
Wenn Sie automatische Sicherungen für eine Instanz von SQL Managed Instance mit Azure Arc-Aktivierung deaktivieren, werden alle konfigurierten automatischen Sicherungen gelöscht, und Sie können keine Zeitpunktwiederherstellung mehr durchführen. Sie können die Eigenschaft retention-days
so ändern, dass automatische Sicherungen bei Bedarf erneut initiiert werden.
az sql mi-arc update --name <SQLMI name> --k8s-namespace <namespace> --use-k8s --retention-days 0
Beispiel:
az sql mi-arc update --name sqlmi --k8s-namespace arc --use-k8s --retention-days 0
Backups überwachen
Die Sicherungen werden im Ordner /var/opt/mssql/backups/archived/<dbname>/<datetime>
gespeichert. Dabei ist <dbname>
der Name der Datenbank und <datetime>
ein Zeitstempel im UTC-Format für den Anfang jeder vollständigen Sicherung. Jedes Mal, wenn eine vollständige Sicherung initiiert wird, wird ein neuer Ordner mit der vollständigen Sicherung und allen nachfolgenden differenziellen und Transaktionsprotokollsicherungen in diesem Ordner erstellt. Die aktuellste vollständige Sicherung und die nachfolgenden differenziellen und Transaktionsprotokollsicherungen werden im Ordner /var/opt/mssql/backups/current/<dbname><datetime>
gespeichert.
Begrenzungen
Die Point-in-Time-Wiederherstellung auf eine SQL Managed Instance mit Azure Arc-Aktivierung unterliegt den folgenden Einschränkungen:
- Zeitpunktwiederherstellung ist das Feature auf Datenbankebene, nicht ein Feature auf Instanzebene. Sie können nicht die gesamte Instanz mit der Zeitpunktwiederherstellung wiederherstellen.
- Sie können nur auf derselben verwalteten SQL-Instanz mit Azure Arc-Aktivierung wiederherstellen, von der aus die Sicherung durchgeführt wurde.
Zugehöriger Inhalt
Beginnen Sie mit der Erstellung eines Datencontrollers
Erstellen einer von Azure Arc aktivierte SQL Managed Instance-Instanz