Bagikan melalui


Postgres pg_dump & pg_restore

Penting

Lakebase Autoscaling berada di Beta di wilayah berikut: eastus2, , westeuropewestus.

Lakebase Autoscaling adalah versi terbaru Lakebase dengan komputasi penskalaan otomatis, skala-ke-nol, percabangan, dan pemulihan instan. Untuk perbandingan fitur dengan Lakebase Provisioned, lihat memilih antar versi.

Topik ini menjelaskan cara membuat cadangan database Lakebase Anda menggunakan utilitas Postgres pg_dump dan cara memulihkan cadangan menggunakan pg_restore.

Kapan menggunakan pg_dump &pg_restore

Gunakan pg_dump dan pg_restore untuk pemulihan bencana dan persyaratan kelangsungan bisnis, atau saat Anda perlu menyimpan cadangan penuh di luar Lakebase. Metode ini menyediakan ekspor database lengkap yang dapat disimpan secara independen dan dipulihkan ke sistem yang kompatibel dengan Postgres.

Prasyarat

Sebelum memulai, pastikan bahwa:

  • pg_dump dan pg_restore diinstal. Anda dapat memverifikasi dengan menjalankan pg_dump -V.
  • Anda menggunakan versi terbaru dari pg_dump dan pg_restore.
  • Versi klien cocok dengan versi Postgres proyek Lakebase Anda.
  • Proyek Lakebase dengan peran Postgres yang telah dikonfigurasi

Nota

Sebaiknya gunakan autentikasi kata sandi Postgres asli saat menggunakan pg_dump dan pg_restore. Kata sandi Postgres asli tidak kedaluwarsa per jam seperti token OAuth, membuatnya lebih cocok untuk operasi pencadangan dan pemulihan. Lihat Gambaran umum autentikasi untuk detail tentang metode autentikasi.

Menginstal pg_dump dan pg_restore

Jika Anda tidak memiliki utilitas pg_dump dan pg_restore yang terpasang secara lokal, pasanglah di platform pilihan Anda.

Windows: Instal PostgreSQL menggunakan alat penginstal resmi dari postgresql.org. Utilitas pg_dump dan pg_restore diinstal secara default dan dapat ditemukan di direktori bin PostgreSQL.

Macos: Instal PostgreSQL menggunakan Homebrew:

brew install postgresql

Linux (Ubuntu/Debian):

sudo apt-get install postgresql-client

Docker: Jalankan pg_dump menggunakan kontainer Postgres Docker:

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

Membuat cadangan dengan pg_dump

Untuk membuat cadangan database secara lokal:

  1. Navigasi ke Aplikasi Lakebase dengan mengklik pengalih aplikasi di sudut kanan atas ruang kerja Anda.

  2. Pilih proyek Anda.

  3. Klik Sambungkan untuk membuka modal koneksi database.

  4. Pilih peran Postgres dari menu dropdown (sebaiknya gunakan peran Postgres asli dengan autentikasi kata sandi).

  5. Salin string koneksi.

    String koneksi Anda terlihat mirip dengan ini:

    postgresql://role_name:password@ep-source-abc-123.databricks.com/databricks_postgres?sslmode=require
    
  6. Buat cadangan database Lakebase Anda dengan menjalankan perintah berikut pg_dump :

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

    Setelah menambahkan string koneksi database Lakebase dan nama file cadangan, perintah Anda terlihat seperti ini:

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

argumen perintah pg_dump

Perintah pg_dump ini mencakup argumen ini:

  • -Fc: Mengirim output ke arsip format kustom yang cocok untuk input ke dalam pg_restore.
  • -v: Menjalankan pg_dump dalam mode terperinci, memungkinkan Anda untuk memantau apa yang terjadi selama operasi dump.
  • -d: Menentukan string koneksi untuk database Lakebase Anda.
  • -f <dump_file_name>: Nama file cadangan. Ini bisa berupa nama apa pun yang Anda pilih (misalnya, mydumpfile.bak).

Memulihkan cadangan dengan pg_restore

Untuk memulihkan database menggunakan pg_restore utilitas dari file cadangan yang dibuat menggunakan pg_dump:

  1. Buat proyek Lakebase baru.

  2. Buat database dengan nama yang sama dengan database yang Anda cadangkan.

  3. Navigasi ke Aplikasi Lakebase dengan mengklik pengalih aplikasi di sudut kanan atas ruang kerja Anda.

  4. Pilih proyek Anda dan klik Sambungkan untuk membuka modal koneksi database.

  5. Pilih peran Postgres dari menu dropdown (sebaiknya gunakan peran Postgres asli dengan autentikasi kata sandi).

  6. Salin string koneksi.

    String koneksi Anda terlihat mirip dengan ini:

    postgresql://role_name:password@ep-destination-xyz-456.databricks.com/databricks_postgres?sslmode=require
    
  7. Pulihkan data Anda ke database target di Lakebase dengan pg_restore:

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

    Setelah menambahkan string koneksi database Lakebase dan nama file cadangan, perintah Anda terlihat seperti ini:

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

argumen untuk perintah pg_restore

Perintah pg_restore ini mencakup argumen ini:

  • -v: Menjalankan pg_restore dalam mode verbose, memungkinkan Anda untuk memantau apa yang terjadi selama operasi pemulihan.
  • -d: Menentukan database Lakebase yang akan disambungkan. Nilainya adalah string koneksi database Lakebase.
  • <dump_file_name>: Nama file cadangan yang Anda buat dengan pg_dump.

Contoh lengkap

Contoh berikut menunjukkan bagaimana data dicadangkan dari database sumber bernama databricks_postgres dalam satu proyek Lakebase dan dipulihkan ke databricks_postgres database di proyek Lakebase lain.

Sebelum melakukan prosedur ini:

  • Proyek Lakebase baru dibuat untuk database tujuan (yang mencakup database default databricks_postgres )
  • String koneksi untuk database sumber dan tujuan dikumpulkan:
    • Sumber:postgresql://role_name:password@ep-source-abc-123.databricks.com/databricks_postgres?sslmode=require
    • Tujuan:postgresql://role_name:password@ep-destination-xyz-456.databricks.com/databricks_postgres?sslmode=require

Prosedur pencadangan dan pemulihan:

# 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