Udostępnij przez


Przywracanie danych i podróży w czasie

Ważne

Ta funkcja jest dostępna w wersji próbnej w następujących regionach: westus, westus2, eastus, eastus2, centralus, southcentralus, northeurope, westeurope, australiaeast, brazilsouth, canadacentral, centralindia, southeastasia, uksouth.

Na tej stronie wyjaśniono, jak używać wystąpień podrzędnych do przywracania danych i wykonywania podróży w czasie w wystąpieniu bazy danych Lakebase.

Kiedy należy utworzyć wystąpienie podrzędne?

Tworzenie wystąpienia podrzędnego jest przydatne w następujących scenariuszach:

  • Odzyskiwanie przypadkowo utraconych danych: Jeśli wczoraj o godzinie 10:23 usunięto tabelę krytyczną, możesz utworzyć instancję podrzędną ustawioną na godzinę 10:22, aby wyodrębnić wyłącznie brakujące dane i scalić je z powrotem.
  • Środowiska testowania i kontroli jakości: Sklonuj środowisko przypominające środowisko produkcyjne z dowolnego punktu w ciągu ostatnich X dni (zgodnie z definicją w oknie przywracania), aby zweryfikować zmiany schematu lub uruchomić testy integracji.
  • Zgodność i audyt: Utwórz podrzędną instancję odzwierciedlającą stan bazy danych w określonym momencie w przeszłości do celów inspekcji wewnętrznych, uzgodnień finansowych lub analizy kryminalistycznej.

Co to jest instancja potomna?

Wystąpienie podrzędne to klon typu "copy-on-write" oryginalnego wystąpienia bazy danych. Można go utworzyć z bieżącego punktu w czasie lub z historycznego punktu w czasie w oknie przywracania. Okno przywracania określa zakres czasowy (2–35 dni), w którym można wykonać odzyskiwanie do konkretnego punktu w czasie. Okno przywracania jest definiowane podczas tworzenia wystąpienia bazy danych. Wystąpienie podrzędne można utworzyć w dowolnym momencie w tym oknie przywracania bez oczekiwania na ręczne migawki lub pełne eksporty baz danych.

Po utworzeniu wystąpienia podrzędnego jest ono dostępne do zapytań do momentu jego usunięcia. Nie ma automatycznego wygaśnięcia powiązanego z oknem przywracania elementu nadrzędnego. Gwarantuje to, że zawsze masz dostęp do danych z określonego punktu czasowego, w których utworzono wystąpienie podrzędne, nawet jeśli okno czasowe przywracania elementu nadrzędnego wygasło.

Instancje podrzędne są odizolowane od nadrzędnej instancji. Wszystkie operacje odczytu lub zapisu wykonywane w wystąpieniu podrzędnym nie mają wpływu na wystąpienie źródłowe. Modyfikacje wprowadzone w podrzędnym wystąpieniu używają mechanizmu copy-on-write, więc zmiany są przechowywane jako "delta". Dzięki temu niezmodyfikowane dane są udostępniane i minimalizuje dodatkowe miejsce na przechowywanie.

Tworzenie instancji podrzędnej do podróży w czasie i przywracania danych

Tworzenie wystąpienia podrzędnego jest przydatne w następujących scenariuszach:

  • Odzyskiwanie przypadkowo utraconych danych: Jeśli wczoraj o godzinie 10:23 usunięto tabelę krytyczną, możesz utworzyć instancję podrzędną ustawioną na godzinę 10:22, aby wyodrębnić wyłącznie brakujące dane i scalić je z powrotem.
  • Środowiska testowania i kontroli jakości: Sklonuj środowisko przypominające środowisko produkcyjne z dowolnego punktu w ciągu ostatnich X dni (zgodnie z definicją w oknie przywracania), aby zweryfikować zmiany schematu lub uruchomić testy integracji.
  • Zgodność i audyt: Utwórz podrzędną instancję odzwierciedlającą stan bazy danych w określonym momencie w przeszłości do celów inspekcji wewnętrznych, uzgodnień finansowych lub analizy kryminalistycznej.

Instrukcje krok po kroku

Krok 1. (Opcjonalnie) Konfigurowanie okna przywracania w nadrzędnym wystąpieniu bazy danych

Prawidłowe wartości okna przywracania to od 2 do 35 dni włącznie. Domyślnym oknem jest 7 dni. Można określić okno przywracania podczas tworzenia wystąpienia bazy danych. Zobacz Tworzenie wystąpienia bazy danych.

Użyj interfejsu użytkownika lub interfejsu API, aby zmodyfikować okno przywracania wystąpienia bazy danych:

interfejs użytkownika

  1. Kliknij pozycję Obliczenia na pasku bocznym obszaru roboczego.
  2. Kliknij kartę Lakebase Provisioned.
  3. Wybierz wystąpienie bazy danych, które chcesz zaktualizować.
  4. Kliknij przycisk Edytuj w prawym górnym rogu.
  5. W obszarze Okno przywracania (dni) ustaw liczbę dni dla okna przywracania.
  6. Kliknij przycisk Zapisz.

skręt

curl -s -X PATCH --header "Authorization: Bearer ${DATABRICKS_TOKEN}" $DBR_URL/database/instances/my-instance -d '{"retention_window_in_days": 14}'

Krok 2: Utwórz wystąpienie podrzędne

Role i uprawnienia instancji podrzędnej są takie same jak role i uprawnienia rodzica w wybranym punkcie przywracania. Może to prowadzić do tego, że użytkownicy posiadają uprawnienia, które nie odpowiadają obecnym przyznanym uprawnieniom w instancji nadrzędnej. Wyświetl role tożsamości usługi Azure Databricks i odwołaj wszelkie nieaktualne uprawnienia w wystąpieniu podrzędnym.

Utwórz wystąpienie podrzędne, włączając opcję Utwórz z elementu nadrzędnego podczas regularnego tworzenia wystąpienia bazy danych. Zobacz Stwórz i zarządzaj wystąpieniem bazy danych.

interfejs użytkownika

Po włączeniu opcji Utwórz na podstawie elementu nadrzędnego można określić dwa dodatkowe parametry:

  • Nazwa wystąpienia nadrzędnego: Nazwa wystąpienia nadrzędnego, na podstawie którego chcesz utworzyć podrzędną bazę danych.
  • Uwzględnij dane z nadrzędnego poziomu do: Konkretny punkt w historii, z którego chcesz uzyskać dane.
    • Bieżący punkt w czasie: Spowoduje to utworzenie instancji podrzędnej z najnowszymi danymi z instancji bazy danych.
    • Określona data i godzina: Spowoduje to utworzenie wystąpienia podrzędnego w określonym punkcie w czasie w oknie przywracania wystąpienia bazy danych. Wystąpienie podrzędne zawiera wszystkie dane w tym konkretnym punkcie w czasie.
    • Określony numer sekwencji dziennika: Tworzy wystąpienie podrzędne z określonego numeru sekwencji dziennika zapisu (WAL) w oknie przywracania. PostgreSQL używa WAL do obsługi odzyskiwania i przypisuje LSN do każdego rekordu WAL. Instancja podrzędna zawiera wszystkie dane pod tym numerem LSN WAL. Aby uzyskać więcej informacji na temat WAL, zobacz Działanie WAL. Aby uzyskać bieżącą wartość LSN, zobacz Funkcje sterowania kopiami zapasowymi.

skręt

Utwórz instancję podrzędną, korzystając z najnowszych danych instancji bazy danych.

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"}}'

Utwórz wystąpienie podrzędne z danymi z określonej daty i godziny określonej w formacie UTC.

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"}}'

Utwórz wystąpienie podrzędne z danymi na podstawie określonej nazwy LSN wystąpienia bazy danych WAL.

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"}}'

Zestaw SDK dla języka Python

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"
        }
    )
)

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"
    }
  }'

Krok 3 (opcjonalnie): Przywracanie danych

Po utworzeniu wystąpienia podrzędnego w określonym punkcie w czasie można przywrócić dane z wystąpienia podrzędnego z powrotem do wystąpienia produkcyjnego. Jest to przydatne w przypadku odzyskiwania po przypadkowej utracie lub uszkodzeniu danych.

Aby przywrócić dane:

  1. Połącz się z wystąpieniem podrzędnym, używając preferowanego klienta PostgreSQL lub metody połączenia. Zobacz Connect and query (Nawiązywanie połączenia i wykonywanie zapytań).
  2. Napisz skrypt, aby skopiować wymagane dane z wystąpienia podrzędnego do wystąpienia produkcyjnego. Skrypt powinien wykonać następujące czynności:
    • Wykonywanie zapytań dotyczących określonych tabel lub danych potrzebnych z wystąpienia podrzędnego
    • Wstaw lub zaktualizuj dane w instancji produkcyjnej
    • Obsługa konfliktów lub przekształceń danych zgodnie z potrzebami
  3. Najpierw przetestuj operację przywracania na małym podzestawie danych, aby zapewnić poprawność.
  4. Uruchom pełny skrypt przywracania, aby skopiować wszystkie wymagane dane z powrotem do środowiska produkcyjnego.
  5. Usuń instancję podrzędną po pomyślnym przywróceniu danych i zweryfikowaniu, czy instancja produkcyjna jest poprawna. Aby usunąć wystąpienie, zobacz Usuwanie wystąpienia.

Ograniczenia

  • Dla wystąpienia bazy danych można utworzyć tylko jedno wystąpienie podrzędne.
  • Nie można usunąć instancji nadrzędnych, chyba że instancja podrzędna zostanie usunięta.
  • Wystąpienia podrzędne są przeznaczone do krótkoterminowego testowania lub odtwarzania. Duże modyfikacje elementu podrzędnego lub nadrzędnego mogą spowodować, że system zmniejszy udostępnianie danych i zachowa pełną kopię dla elementu podrzędnego. Użycie i koszty przechowywania mogą rosnąć, aby zrównać się z autonomicznym wystąpieniem bazy danych.