Postgres pg_dump と pg_restore
ベータ版
Lakebase Postgres (オートスケール Beta) は、 Lakebase の次のバージョンであり、評価のみに利用できます。 本番運用ワークロードの場合は、 Lakebase Public Previewを使用します。 どのバージョンが適しているかを判断するには、バージョンの選択を参照してください。
このトピックでは、Postgres pg_dumpユーティリティを使用して Lakebase データベースのバックアップを作成する方法と、 pg_restoreを使用してバックアップを復元する方法について説明します。
pg_dumpとpg_restoreを使用する場合
ディザスタリカバリおよびビジネス継続性の要件の場合、または Lakebase の外部に完全バックアップを保存する必要がある場合は、 pg_dumpとpg_restoreを使用します。 この方法では、独立して保存し、任意の Postgres 互換システムに復元できる完全なデータベース エクスポートが提供されます。
前提条件
始める前に、次の点を確認してください。
- pg_dump- pg_restoreがインストールされています。- pg_dump -Vを実行して確認できます。
- 最新バージョンのpg_dumpとpg_restoreを使用しています。
- クライアントのバージョンは、Lakebase プロジェクトの Postgres バージョンと一致します。
- Postgres ロールが構成された Lakebase データベース プロジェクト
pg_dumpおよびpg_restoreを使用する場合は、 ネイティブの Postgres パスワード認証 を使用することをお勧めします。ネイティブ Postgres パスワードは、OAuth トークンのように 1 時間ごとに期限切れにならないため、バックアップおよび復元操作に適しています。認証方法の詳細については、 「認証の概要」を参照してください。
pg_dumpとpg_restoreをインストールする
pg_dumpおよびpg_restoreユーティリティがローカルにインストールされていない場合は、優先プラットフォームにインストールしてください。
Windows :
postgresql.orgの公式インストーラーを使用してPostgreSQLインストールします。 pg_dumpおよびpg_restoreユーティリティはデフォルトでインストールされており、PostgreSQL の bin ディレクトリにあります。
macOS: Homebrew を使用して PostgreSQL をインストールします。
brew install postgresql
Linux (Ubuntu/Debian):
sudo apt-get install postgresql-client
Docker :
Postgres Dockerコンテナを使用して実行pg_dump :
docker run --rm postgres:15 pg_dump --version
pg_dumpでバックアップを作成する
ローカルでデータベースのバックアップを作成するには:
- 
ワークスペースの右上隅にあるアプリスイッチャーをクリックして、Lakebase アプリに移動します。 
- 
データベース プロジェクトを選択します。 
- 
「接続」を クリックすると、データベース接続モーダルが開きます。 
- 
ドロップダウンから Postgres ロールを選択します (パスワード認証を備えたネイティブの Postgres ロールを使用することをお勧めします)。 
- 
接続プール オプションの選択を解除します。プールされた接続文字列ではなく、直接の接続文字列が必要です。 接続文字列は次のようになります。 postgresql://role_name:password@ep-source-abc-123.databricks.com/databricks_postgres?sslmode=require
- 
次の pg_dumpコマンドを実行して、Lakebase データベースのバックアップを作成します。Bashpg_dump -Fc -v -d "<lakebase_database_connection_string>" -f <dump_file_name>Lakebase データベース接続文字列とダンプ ファイル名を追加すると、コマンドは次のようになります。 Bashpg_dump -Fc -v -d "postgresql://role_name:password@ep-source-abc-123.databricks.com/databricks_postgres?sslmode=require" -f mydatabase.bak
pg_dump コマンド引数
pg_dumpコマンドには次の引数が含まれます:
- -Fc: 出力を- pg_restoreへの入力に適したカスタム形式のアーカイブに送信します。
- -v:- pg_dump詳細モードで実行し、ダンプ操作中に何が起こるかを監視できます。
- -d: Lakebase データベースの接続文字列を指定します。
- -f <dump_file_name>: ダンプ ファイル名。任意の名前を選択できます (例:- mydumpfile.bak)。
pg_restoreでバックアップを復元する
pg_dumpを使用して作成されたバックアップ ファイルからpg_restoreユーティリティを使用してデータベースを復元するには:
- 
新しい Lakebase プロジェクトを作成します。 
- 
バックアップしたデータベースと同じ名前のデータベースを作成します。 
- 
ワークスペースの右上隅にあるアプリスイッチャーをクリックして、Lakebase アプリに移動します。 
- 
データベース プロジェクトを選択し、 [接続] をクリックしてデータベース接続モーダルを開きます。 
- 
ドロップダウンから Postgres ロールを選択します (パスワード認証を備えたネイティブの Postgres ロールを使用することをお勧めします)。 
- 
接続プール オプションの選択を解除します。プールされた接続文字列ではなく、直接の接続文字列が必要です。 接続文字列は次のようになります。 postgresql://role_name:password@ep-destination-xyz-456.databricks.com/databricks_postgres?sslmode=require
- 
pg_restoreを使用して、Lakebase のターゲット データベースにデータを復元します。Bashpg_restore -v -d "<lakebase_database_connection_string>" <dump_file_name>Lakebase データベース接続文字列とダンプ ファイル名を追加すると、コマンドは次のようになります。 Bashpg_restore -v -d "postgresql://role_name:password@ep-destination-xyz-456.databricks.com/databricks_postgres?sslmode=require" mydatabase.bak
pg_restore コマンド引数
pg_restoreコマンドには次の引数が含まれます:
- -v:- pg_restore詳細モードで実行し、復元操作中に何が起こるかを監視できます。
- -d: 接続する Lakebase データベースを指定します。値は Lakebase データベース接続文字列です。
- <dump_file_name>:- pg_dumpで作成したダンプ ファイルの名前。
完全な例
次の例は、ある Lakebase プロジェクトのdatabricks_postgresという名前のソース データベースからデータをダンプし、別の Lakebase プロジェクトのdatabricks_postgresデータベースに復元する方法を示しています。
この手順を実行する前に:
- 宛先データベース(デフォルトのdatabricks_postgresデータベースを含む)用に新しい Lakebase プロジェクトが作成されました
- ソース データベースと宛先データベースの接続文字列が収集されました。
- ソース: postgresql://role_name:password@ep-source-abc-123.databricks.com/databricks_postgres?sslmode=require
- 配信先: postgresql://role_name:password@ep-destination-xyz-456.databricks.com/databricks_postgres?sslmode=require
 
- ソース: 
バックアップと復元の手順:
# 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