Udostępnij przez


Postgres pg_dump i pg_restore

Ważne

Skalowanie automatyczne bazy danych Lakebase znajduje się w wersji beta w następujących regionach: eastus2, westeurope, westus.

Autoskalowanie bazy danych Lakebase to najnowsza wersja bazy danych Lakebase z automatycznym skalowaniem obliczeniowym, skalowaniem do zera, rozgałęzianiem i natychmiastowym przywracaniem. Aby zapoznać się z porównaniem funkcji z Lakebase Provisioned, sprawdź wybieranie między wersjami.

W tym temacie opisano, jak utworzyć kopię zapasową bazy danych Lakebase przy użyciu narzędzia Postgres pg_dump i jak przywrócić kopię zapasową przy użyciu polecenia pg_restore.

Kiedy należy używać pg_dump i pg_restore

Należy używać pg_dump i pg_restore do wymagań dotyczących odzyskiwania po awarii oraz ciągłości działania, lub gdy konieczne jest przechowywanie pełnych kopii zapasowych poza usługą Lakebase. Ta metoda zapewnia pełne eksporty bazy danych, które mogą być przechowywane niezależnie i przywracane do dowolnego systemu zgodnego z bazą danych Postgres.

Warunki wstępne

Przed rozpoczęciem upewnij się, że:

  • pg_dump i pg_restore są zainstalowane. Możesz sprawdzić, uruchamiając polecenie pg_dump -V.
  • Używasz najnowszych wersji pg_dump i pg_restore.
  • Wersja klienta jest zgodna z wersją bazy danych Postgres projektu Lakebase.
  • Projekt usługi Lakebase ze skonfigurowaną rolą Postgres

Uwaga / Notatka

Zalecamy używanie natywnego uwierzytelniania hasłem Postgres podczas korzystania z pg_dumppg_restore. Natywne hasła Postgres nie wygasają co godzinę, tak jak tokeny OAuth, dzięki czemu są lepiej dostosowane do operacji tworzenia kopii zapasowych i przywracania. Zobacz Omówienie uwierzytelniania , aby uzyskać szczegółowe informacje o metodach uwierzytelniania.

Instalowanie pg_dump i pg_restore

Jeśli nie masz zainstalowanych lokalnie narzędzi pg_dump i pg_restore, zainstaluj je na preferowanej platformie.

Windows: Zainstaluj program PostgreSQL przy użyciu oficjalnego instalatora z postgresql.org. Narzędzia pg_dump i pg_restore są instalowane domyślnie i można je znaleźć w katalogu bin postgreSQL.

Macos: Zainstaluj program PostgreSQL przy użyciu oprogramowania Homebrew:

brew install postgresql

Linux (Ubuntu/Debian):

sudo apt-get install postgresql-client

Docker: Uruchom pg_dump używając kontenera Docker PostgreSQL:

docker run --rm postgres:15 pg_dump --version

Tworzenie kopii zapasowej przy użyciu pg_dump

Aby utworzyć lokalnie kopię zapasową bazy danych:

  1. Przejdź do aplikacji Lakebase, klikając przełącznik aplikacji w prawym górnym rogu obszaru roboczego.

  2. Wybierz projekt.

  3. Kliknij przycisk Połącz, aby otworzyć modalne połączenie z bazą danych.

  4. Wybierz rolę Postgres z listy rozwijanej (zalecamy użycie natywnej roli Postgres z uwierzytelnianiem haseł).

  5. Skopiuj parametry połączenia.

    Parametry połączenia wyglądają mniej więcej tak:

    postgresql://role_name:password@ep-source-abc-123.databricks.com/databricks_postgres?sslmode=require
    
  6. Utwórz kopię zapasową bazy danych Lakebase, uruchamiając następujące pg_dump polecenie:

    pg_dump -Fc -v -d "<lakebase_database_connection_string>" -f <dump_file_name>
    

    Po dodaniu parametrów połączenia bazy danych Lakebase i nazwie pliku zrzutu polecenie wygląda następująco:

    pg_dump -Fc -v -d "postgresql://role_name:password@ep-source-abc-123.databricks.com/databricks_postgres?sslmode=require" -f mydatabase.bak
    

argumenty poleceń pg_dump

Polecenie pg_dump zawiera następujące argumenty:

  • -Fc: wysyła dane wyjściowe do archiwum w niestandardowym formacie, które jest odpowiednie dla danych wejściowych do pg_restore.
  • -v: działa pg_dump w trybie szczegółowym, pozwalając na monitorowanie przebiegu operacji.
  • -d: określa parametry połączenia dla bazy danych Lakebase.
  • -f <dump_file_name>: nazwa pliku zrzutu. Może to być dowolna wybrana nazwa (na przykład mydumpfile.bak).

Przywracanie kopii zapasowej przy użyciu pg_restore

Aby przywrócić bazę danych z pliku kopii zapasowej utworzonego przy użyciu pg_dump, użyj narzędzia pg_restore.

  1. Utwórz nowy projekt Lakebase.

  2. Utwórz bazę danych o tej samej nazwie co utworzona kopia zapasowa.

  3. Przejdź do aplikacji Lakebase, klikając przełącznik aplikacji w prawym górnym rogu obszaru roboczego.

  4. Wybierz projekt i kliknij przycisk Połącz , aby otworzyć modalne połączenie z bazą danych.

  5. Wybierz rolę Postgres z listy rozwijanej (zalecamy użycie natywnej roli Postgres z uwierzytelnianiem haseł).

  6. Skopiuj parametry połączenia.

    Parametry połączenia wyglądają mniej więcej tak:

    postgresql://role_name:password@ep-destination-xyz-456.databricks.com/databricks_postgres?sslmode=require
    
  7. Przywróć dane do docelowej bazy danych w usłudze Lakebase za pomocą polecenia pg_restore:

    pg_restore -v -d "<lakebase_database_connection_string>" <dump_file_name>
    

    Po dodaniu parametrów połączenia bazy danych Lakebase i nazwy pliku zrzutu polecenie wygląda następująco:

    pg_restore -v -d "postgresql://role_name:password@ep-destination-xyz-456.databricks.com/databricks_postgres?sslmode=require" mydatabase.bak
    

argumenty polecenia pg_restore

Polecenie pg_restore zawiera następujące argumenty:

  • -v: działa pg_restore w trybie szczegółowym, co pozwala monitorować, co się dzieje podczas operacji przywracania.
  • -d: Określa bazę danych Lakebase do nawiązania połączenia. Wartość jest ciągiem połączenia do bazy danych Lakebase.
  • <dump_file_name>: nazwa pliku zrzutu, który utworzyłeś za pomocą pg_dump polecenia.

Kompletny przykład

W poniższym przykładzie pokazano, jak dane są zrzucane ze źródłowej bazy danych o nazwie databricks_postgres w jednym projekcie Lakebase i przywracane do bazy danych databricks_postgres w innym projekcie Lakebase.

Przed wykonaniem tej procedury:

  • Utworzono nowy projekt usługi Lakebase dla docelowej bazy danych (która zawiera domyślną databricks_postgres bazę danych)
  • Zebrano parametry połączenia dla źródłowych i docelowych baz danych:
    • Źródła:postgresql://role_name:password@ep-source-abc-123.databricks.com/databricks_postgres?sslmode=require
    • Docelowy:postgresql://role_name:password@ep-destination-xyz-456.databricks.com/databricks_postgres?sslmode=require

Procedura tworzenia kopii zapasowej i przywracania:

# Create a directory for the dump
mkdir mydump && cd mydump

# Create the backup
pg_dump -Fc -v -d "postgresql://role_name:password@ep-source-abc-123.databricks.com/databricks_postgres?sslmode=require" -f mydatabase.bak

# Verify the backup file was created
ls
mydatabase.bak

# Restore the backup to the destination database
pg_restore -v -d "postgresql://role_name:password@ep-destination-xyz-456.databricks.com/databricks_postgres?sslmode=require" mydatabase.bak