Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Von Bedeutung
Dieses Feature befindet sich in der öffentlichen Vorschau in den folgenden Regionen: westus, westus2, eastus, eastus2, centralus, southcentralus, northeurope, westeurope, australiaeast, brazilsouth, canadacentral, centralindia, southeastasia, uksouth.
Auf dieser Seite wird erläutert, wie Sie mithilfe von untergeordneten Instanzen Daten wiederherstellen und Zeitreisen in Ihrer Lakebase-Datenbankinstanz durchführen.
Wann sollten Sie eine untergeordnete Instanz erstellen?
Das Erstellen einer untergeordneten Instanz ist in den folgenden Szenarien nützlich:
- Wiederherstellung bei versehentlichem Datenverlust: Wenn eine wichtige Tabelle gestern um 10:23 Uhr gelöscht wurde, können Sie eine untergeordnete Instanz erzeugen, die auf 10:22 Uhr festgelegt ist, um nur die fehlenden Daten zu extrahieren und wieder zusammenzuführen.
- Test- und QA-Umgebungen: Klonen Sie eine produktionsähnliche Umgebung von jedem Punkt in den letzten X-Tagen (gemäß Definition durch das Wiederherstellungsfenster), um Schemaänderungen zu überprüfen oder Integrationstests auszuführen.
- Compliance und Überwachung: Stellen Sie eine untergeordnete Instanz bereit, die den Datenbankstatus zu einem früheren Zeitpunkt für interne Prüfungen, finanzbezogene Abstimmungen oder forensische Analysen widerspiegelt.
Was ist eine untergeordnete Instanz?
Bei einer untergeordneten Instanz handelt es sich um einen während des Schreibvorgangs kopierten Klon der ursprünglichen Datenbankinstanz. Sie kann aus dem aktuellen Zeitpunkt oder aus einem historischen Zeitpunkt innerhalb des Wiederherstellungsfensters erstellt werden. In einem Wiederherstellungsfenster wird der Zeitraum (2-35 Tage) angegeben, aus dem Sie eine Point-in-Time-Wiederherstellung durchführen können. Das Wiederherstellungsfenster wird beim Erstellen einer Datenbankinstanz definiert. Sie können an einem beliebigen Punkt innerhalb dieses Wiederherstellungsfensters eine untergeordnete Instanz erstellen, ohne auf manuelle Momentaufnahmen oder vollständige Datenbankexporte zu warten.
Nachdem Sie eine untergeordnete Instanz erstellt haben, ist sie für die Abfrage verfügbar, bis sie gelöscht wird. Es gibt keinen automatischen Ablauf, der an das Wiederherstellungsfenster des übergeordneten Elements gebunden ist. Dadurch wird sichergestellt, dass Sie immer Zugriff auf die zeitpunktgenauen Daten haben, zu denen die untergeordnete Instanz erstellt wurde, auch wenn das Wiederherstellungsfenster der übergeordneten Instanz abgelaufen ist.
Untergeordnete Instanzen sind vom übergeordneten Element isoliert. Alle Lese- oder Schreibvorgänge, die Sie für eine untergeordnete Instanz ausführen, wirken sich nicht auf die Quellinstanz aus. Änderungen, die an einer untergeordneten Instanz vorgenommen werden, verwenden das "copy-on-write"-Verfahren, sodass die Änderungen als "Delta" gespeichert werden. Dadurch bleiben unveränderte Daten freigegeben und minimiert zusätzlichen Speicher.
Erstellen einer untergeordneten Instanz zum Zeitreisen und Wiederherstellen von Daten
Das Erstellen einer untergeordneten Instanz ist in den folgenden Szenarien nützlich:
- Wiederherstellung bei versehentlichem Datenverlust: Wenn eine wichtige Tabelle gestern um 10:23 Uhr gelöscht wurde, können Sie eine untergeordnete Instanz erzeugen, die auf 10:22 Uhr festgelegt ist, um nur die fehlenden Daten zu extrahieren und wieder zusammenzuführen.
- Test- und QA-Umgebungen: Klonen Sie eine produktionsähnliche Umgebung von jedem Punkt in den letzten X-Tagen (gemäß Definition durch das Wiederherstellungsfenster), um Schemaänderungen zu überprüfen oder Integrationstests auszuführen.
- Compliance und Überwachung: Stellen Sie eine untergeordnete Instanz bereit, die den Datenbankstatus zu einem früheren Zeitpunkt für interne Prüfungen, finanzbezogene Abstimmungen oder forensische Analysen widerspiegelt.
Schrittweise Anleitungen
Schritt 1: (Optional) Konfigurieren des Wiederherstellungsfensters in einer übergeordneten Datenbankinstanz
Gültige Werte für das Wiederherstellungsfenster liegen zwischen 2 und 35 Tagen einschließlich. Das Standardfenster beträgt 7 Tage. Sie können das Wiederherstellungsfenster in einer Datenbankinstanz angeben, wenn Sie die Instanz erstellen. Siehe Erstellen einer Datenbankinstanz.
Verwenden Sie die Benutzeroberfläche oder API, um das Wiederherstellungsfenster einer Datenbankinstanz zu ändern:
Benutzeroberfläche
- Klicken Sie auf " Berechnen" in der Arbeitsbereich-Randleiste.
- Klicken Sie auf die Registerkarte "Lakebase Provisioned ".
- Wählen Sie die Datenbankinstanz aus, die Sie aktualisieren möchten.
- Klicken Sie in der oberen rechten Ecke auf "Bearbeiten ".
- Legen Sie unter "Fenster wiederherstellen" (Tage) die Anzahl der Tage für das Wiederherstellungsfenster fest.
- Klicken Sie auf "Speichern".
cURL
curl -s -X PATCH --header "Authorization: Bearer ${DATABRICKS_TOKEN}" $DBR_URL/database/instances/my-instance -d '{"retention_window_in_days": 14}'
Schritt 2: Erstellen einer untergeordneten Instanz
Die Rollen und Berechtigungen einer untergeordneten Instanz sind identisch mit den Berechtigungen des übergeordneten Elements am ausgewählten Wiederherstellungspunkt. Dies kann dazu führen, dass Benutzer über Berechtigungen verfügen, die nicht mit den derzeit gewährten Berechtigungen für die übergeordnete Instanz übereinstimmen. Zeigen Sie Azure Databricks-Identitätsrollen an , und widerrufen Sie alle veralteten Berechtigungen für die untergeordnete Instanz.
Erstellen Sie eine untergeordnete Instanz, indem Sie "Create from parent" während der regulären Datenbankinstanzerstellung aktivieren. Siehe Erstellen und Verwalten einer Datenbankinstanz.
Benutzeroberfläche
Wenn "Von übergeordnetem Element erstellen" aktiviert ist, müssen zwei zusätzliche Parameter angegeben werden:
- Name der übergeordneten Instanz: Der Name der übergeordneten Instanz, von der Sie eine untergeordnete Datenbank erstellen möchten.
-
Daten aus der übergeordneten Instanz einbeziehen bis: Der spezifische historische Zeitpunkt, ab dem Sie Daten wünschen.
- Aktueller Zeitpunkt: Dadurch wird eine untergeordnete Instanz mit den neuesten Daten aus einer Datenbankinstanz erstellt.
- Bestimmtes Datum und eine bestimmte Uhrzeit: Dadurch wird eine untergeordnete Instanz zu einem bestimmten Zeitpunkt innerhalb des Wiederherstellungsfensters einer Datenbankinstanz erstellt. Die untergeordnete Instanz enthält alle Daten zu diesem bestimmten Zeitpunkt.
- Spezifische Protokollsequenznummer: Erstellt eine untergeordnete Instanz aus einer bestimmten WAL-Protokollsequenznummer (Write-Ahead-Log) im Wiederherstellungsfenster. PostgreSQL verwendet WAL zur Unterstützung der Wiederherstellung und weist jedem WAL-Eintrag einen LSN zu. Die untergeordnete Instanz enthält alle Daten mit dieser WAL-LSN. Weitere Informationen zu WALs finden Sie unter WAL Internals. Den aktuellen LSN-Wert erhalten Sie unter Backup-Steuerfunktionen.
cURL
Erstellen Sie eine untergeordnete Instanz mithilfe der neuesten Daten aus einer Datenbankinstanz.
curl -s -X POST --header "Authorization: Bearer ${DATABRICKS_TOKEN}" $DBR_URL/database/instances -d '{"name": "test", "capacity": "CU_2", "parent_instance_ref": {"name": "test-child"}}'
Erstellen Sie eine untergeordnete Instanz mit Daten aus einem bestimmten Datum und einer bestimmten Uhrzeit, die in UTC angegeben ist.
curl -s -X POST --header "Authorization: Bearer ${DATABRICKS_TOKEN}" $DBR_URL/database/instances -d '{"name": "test", "capacity": "CU_2", "parent_instance_ref": {"name": "test-child", "branch_timestamp":"2025-05-23T17:21:00Z"}}'
Erzeugt eine untergeordnete Instanz mit Daten aus einer bestimmten WAL-LSN einer Datenbankinstanz.
curl -s -X POST --header "Authorization: Bearer ${DATABRICKS_TOKEN}" $DBR_URL/database/instances -d '{"name": "test", "capacity": "CU_2", "parent_instance_ref": {"name": "test-child", "lsn":"0/2A156E"}}'
Python SDK
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.database import DatabaseInstance
# Initialize the Workspace client
w = WorkspaceClient()
parent_instance_name = "test-child"
instance_name = "test"
# Create a child instance using the most recent data from a database instance.
instance = w.database.create_database_instance(
DatabaseInstance(
name="my-database-instance",
capacity="CU_1",
parent_instance_ref={
"name": parent_instance_name
}
)
)
# Create a child instance with data from a specific date and time, specified in UTC.
instance = w.database.create_database_instance(
DatabaseInstance(
name=instance_name,
capacity="CU_1",
parent_instance_ref={
"name": parent_instance_name,
"branch_timestamp": "2025-05-23T17:21:00Z"
}
)
)
# Create a child instance with data from a specific WAL LSN of a database instance.
instance = w.database.create_database_instance(
DatabaseInstance(
name=instance_name,
capacity="CU_1",
parent_instance_ref={
"name": parent_instance_name,
"lsn": "0/2A156E"
}
)
)
Befehlszeilenschnittstelle (CLI)
# Create a database instance from the most recent data of a parent instance
databricks database create-database-instance my-database-instance \
--capacity CU_1 \
--parent-instance-ref '{"name": "my-parent-instance"}'
# Create a database instance from a specific date and time, specified in UTC
databricks database create-database-instance \
--json '{
"name": "my-database-instance",
"capacity": "CU_2",
"parent_instance_ref": {
"name": "my-parent-instance",
"branch_timestamp": "2025-05-23T17:21:00Z"
}
}'
# Create a database instance from a specific WAL LSN of a parent instance
databricks database create-database-instance \
--json '{
"name": "my-database-instance",
"capacity": "CU_2",
"parent_instance_ref": {
"name": "my-parent-instance",
"lsn": "0/2A156E"
}
}'
Schritt 3 (Optional): Wiederherstellen von Daten
Nach dem Erstellen einer untergeordneten Instanz zu einem bestimmten Zeitpunkt können Sie Daten aus der untergeordneten Instanz wieder in Ihre Produktionsinstanz wiederherstellen. Dies ist nützlich, um versehentlichen Datenverlust oder Beschädigungen wiederherzustellen.
So stellen Sie Daten wieder her:
- Stellen Sie eine Verbindung mit der untergeordneten Instanz mithilfe Ihres bevorzugten PostgreSQL-Clients oder ihrer bevorzugten Verbindungsmethode her. Siehe Verbinden und Abfragen.
- Schreiben Sie ein Skript, um die erforderlichen Daten aus der untergeordneten Instanz in Ihre Produktionsinstanz zu kopieren. Das Skript sollte folgendes ausführen:
- Abfragen Sie die spezifischen Tabellen oder Daten, die Sie aus der untergeordneten Instanz benötigen.
- Einfügen oder Aktualisieren der Daten in Ihrer Produktionsinstanz
- Behandeln von Konflikten oder Datentransformationen bei Bedarf
- Testen Sie den Wiederherstellungsvorgang zuerst für eine kleine Teilmenge von Daten, um die Korrektheit sicherzustellen.
- Führen Sie das vollständige Wiederherstellungsskript aus, um alle erforderlichen Daten wieder in die Produktion zu kopieren.
- Löschen Sie die untergeordnete Instanz, nachdem Sie die Daten erfolgreich wiederhergestellt haben und überprüft haben, dass die Produktionsinstanz korrekt ist. Informationen zum Löschen Ihrer Instanz finden Sie unter "Löschen einer Instanz".
Einschränkungen
- Für eine Datenbankinstanz kann jeweils nur eine Kindinstanz gleichzeitig erstellt werden.
- Übergeordnete Instanzen können nicht gelöscht werden, solange die untergeordnete Instanz nicht gelöscht wird.
- Untergeordnete Instanzen sind für kurzfristige Tests oder Wiederherstellung ausgelegt. Schwere Änderungen am Untergeordneten oder übergeordneten Element können dazu führen, dass das System die Datenfreigabe reduziert und eine vollständige Kopie für das Kind verwaltet. Die Speicherauslastung und -kosten können größer werden, um mit der einer eigenständigen Datenbankinstanz übereinzupassen.