PostgreSQL pg_dump & pg_restore

Önemli

Lakebase Otomatik Ölçeklendirme, otomatik ölçeklendirme işlemi, sıfıra ölçeklendirme, dallanma ve anında geri yükleme ile Lakebase'in en son sürümüdür. Desteklenen bölgeler için bkz . Bölge kullanılabilirliği. Lakebase Tedarik Edilmiş bir kullanıcıysanız, bkz. Lakebase Tedarik Edilmiş.

Bu konu başlığında Postgres pg_dump yardımcı programını kullanarak Lakebase veritabanınızın yedeğinin nasıl oluşturulacağı ve kullanılarak pg_restoreyedeklemenin nasıl geri yükleneceği açıklanmaktadır.

pg_dump ve pg_restore ne zaman kullanılır?

pg_dump ve pg_restore olağanüstü durum kurtarma ile iş sürekliliği gereksinimleriniz veya tam yedeklemeleri Lakebase dışında depolamanız gerektiğinde kullanın. Bu yöntem, bağımsız olarak depolanabilen ve Postgres uyumlu herhangi bir sisteme geri yüklenebilen eksiksiz veritabanı dışarı aktarmaları sağlar.

Önkoşullar

Başlamadan önce şunların olduğundan emin olun:

  • pg_dump ve pg_restore yüklenir. komutunu çalıştırarak pg_dump -Vdoğrulayabilirsiniz.
  • pg_dump ve pg_restore'nin en son sürümlerini kullanıyorsunuz.
  • İstemci sürümü, Lakebase projenizin Postgres sürümüyle eşleşir.
  • Postgres rolü yapılandırılmış bir Lakebase projesi

Uyarı

Yerel Postgres parola kimlik doğrulaması kullanmanızı, pg_dump ve pg_restore kullanırken öneririz. Yerel Postgres parolalarının süresi OAuth belirteçleri gibi saatlik olarak dolmaz ve bu nedenle yedekleme ve geri yükleme işlemleri için daha uygundur. Kimlik doğrulama yöntemleri hakkındaki ayrıntılar için bkz. Kimlik doğrulamasına genel bakış .

pg_dump ve pg_restore yükleme

Eğer pg_dump ve pg_restore yardımcı programları yerel olarak yüklü değilse, bunları tercih ettiğiniz platforma yükleyin.

Windows:postgresql.org resmi yükleyicisini kullanarak PostgreSQL'i yükleyin. pg_dump ve pg_restore yardımcı programları varsayılan olarak yüklenir ve PostgreSQL bin dizininde bulunabilir.

Macos: Homebrew kullanarak PostgreSQL yükleme:

brew install postgresql

Linux (Ubuntu/Debian):

sudo apt-get install postgresql-client

Docker: Postgres Docker kapsayıcısı kullanarak komutunu çalıştırın pg_dump :

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

pg_dump ile yedekleme oluşturma

Yerel olarak veritabanı yedeklemesi oluşturmak için:

  1. Çalışma alanınızın sağ üst köşesindeki uygulamalar değiştiricisine tıklayarak Lakebase Uygulamasına gidin.

  2. Projenizi seçin.

  3. Veritabanı bağlantı penceresini açmak için Bağlan'a tıklayın.

  4. Açılan listeden bir Postgres rolü seçin (parola kimlik doğrulaması ile yerel bir Postgres rolü kullanmanızı öneririz).

  5. Bağlantı dizesini kopyalayın.

    Bağlantı dizeniz şuna benzer:

    postgresql://role_name:password@ep-source-abc-123.databricks.com/databricks_postgres?sslmode=require
    
  6. Aşağıdaki pg_dump komutu çalıştırarak Lakebase veritabanınızın yedeğini oluşturun:

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

    Lakebase veritabanı bağlantı dizenizi ve döküm dosyası adınızı ekledikten sonra komutunuz şöyle görünür:

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

pg_dump komut bağımsız değişkenleri

pg_dump komutu şu bağımsız değişkenleri içerir:

  • -Fc: Çıktıyı giriş için uygun özel biçimli bir arşive pg_restoregönderir.
  • -v: Ayrıntılı modda çalışan pg_dump, döküm işlemi sırasında ne olduğunu izlemenize olanak tanır.
  • -d: Lakebase veritabanınızın bağlantı dizesini belirtir.
  • -f <dump_file_name>: Döküm dosyası adı. Seçtiğiniz herhangi bir ad olabilir (örneğin, mydumpfile.bak).

pg_restore ile yedeklemeyi geri yükleme

kullanılarak pg_restoreoluşturulan bir yedekleme dosyasından pg_dump yardımcı programını kullanarak veritabanını geri yüklemek için:

  1. Yeni bir Lakebase projesi oluşturun.

  2. Yedeklediğinizle aynı adı taşıyan bir veritabanı oluşturun.

  3. Çalışma alanınızın sağ üst köşesindeki uygulamalar değiştiricisine tıklayarak Lakebase Uygulamasına gidin.

  4. Projenizi seçin ve veritabanı bağlantı penceresini açmak için Bağlan'a tıklayın.

  5. Açılan listeden bir Postgres rolü seçin (parola kimlik doğrulaması ile yerel bir Postgres rolü kullanmanızı öneririz).

  6. Bağlantı dizesini kopyalayın.

    Bağlantı dizeniz şuna benzer:

    postgresql://role_name:password@ep-destination-xyz-456.databricks.com/databricks_postgres?sslmode=require
    
  7. ile pg_restoreverilerinizi Lakebase'deki hedef veritabanına geri yükleyin:

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

    Lakebase veritabanı bağlantı dizenizi ve döküm dosyası adını ekledikten sonra komutunuz şöyle görünür:

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

pg_restore komut bağımsız değişkenleri

pg_restore komutu şu bağımsız değişkenleri içerir:

  • -v: pg_restore geri yükleme işlemi sırasında ne olduğunu izlemenize olanak sağlayan ayrıntılı modda çalıştırır.
  • -d: Bağlanacak Lakebase veritabanını belirtir. Değer bir Lakebase veritabanı bağlantı dizesidir.
  • <dump_file_name>: ile pg_dumpoluşturduğunuz döküm dosyasının adı.

Tam örnek

Aşağıdaki örnekte verilerin bir Lakebase projesinde adlı databricks_postgres kaynak veritabanından nasıl atıldığı ve başka bir Lakebase projesindeki bir databricks_postgres veritabanına nasıl geri yükleneceği gösterilmektedir.

Bu yordamı gerçekleştirmeden önce:

  • Hedef veritabanı için yeni bir Lakebase projesi oluşturuldu (varsayılan databricks_postgres veritabanını içerir)
  • Kaynak ve hedef veritabanları için bağlantı dizeleri toplandı:
    • Kaynak:postgresql://role_name:password@ep-source-abc-123.databricks.com/databricks_postgres?sslmode=require
    • Hedef:postgresql://role_name:password@ep-destination-xyz-456.databricks.com/databricks_postgres?sslmode=require

Yedekleme ve geri yükleme yordamı:

# 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