IBM Cloud Docs
Databases for PostgreSQL へのマイグレーション

Databases for PostgreSQL へのマイグレーション

既存の PostgreSQL データベースから IBM Cloud® Databases for PostgreSQL にデータをマイグレーションするためのさまざまなオプションがあります。 最もシンプルで効果的なものに焦点を当てています。 開始するには、PostgreSQL をローカルにインストールして、psql ツールと pg_dump ツールを用意する必要があります。 厳密には必須ではありませんが、Cloud Databases CLI を使用すると、新しい Databases for PostgreSQL のデプロイメントに接続してリストアすることが容易になります。

pg_dump

ソース・データベースで pg_dump を実行して、データベースの再作成に使用できる SQL ファイルを作成します。 少なくとも、pg_dump は、ホスト名 (-h フラグ)、ポート番号 (-p フラグ)、データベース名 (-d フラグ)、ユーザー名 (-U フラグ)、およびダンプを書き込むファイルまたはディレクトリーの名前 (-f フラグ) を取ります。

例えば、以下のコマンドは、admin ユーザーを使用して、sl-eu-lon-2-portal.4.dblayer.com (ポート 17980) でホストされる PostgreSQL の「compose」データベースをダンプし、結果を dump.sql に保存します。

pg_dump -h sl-eu-lon-2-portal.4.dblayer.com -p 17980 -d compose -U admin -f dump.sql

The pg_dump command has many options and it is recommended that you 公式文書を参照する and コマンドリファレンス for a fuller view of its capabilities.

pg_dump の出力のリストア

pg_dump を実行したら、その結果の出力を新しい Databases for PostgreSQL のデプロイメントにアップロードできます。 出力は SQL であるため、psql コマンドを使用するだけでデータベースに送信できます。 admin ユーザーを使用してインポートを実行することをお勧めします。

psql 使用して管理者として接続する方法の詳細については、psql を使用して接続する」を参照してください。 psql コマンドを使用して接続するには、admin ユーザーの接続ストリングと TLS 証明書が必要です。 証明書は、base64 からデコードし、任意のローカル・ファイルとして保管する必要があります。 以前に作成した dump.sqlexample-psqlという名前のデータベース・デプロイメントにインポートするには、パラメーターに -f dump.sql を指定して psql コマンドを呼び出します。 このパラメーターは、psql に対して、ファイル内の SQL ステートメントを読み取って実行するように指示します。 このコマンドは次のようになります。

PGPASSWORD=yourpasswordhere PGSSLROOTCERT=cert.crt psql 'host=c7798cf6-e5d2-4513-b17f-3d3fa67d8291.8f7bfd8f3faa4218aec56e069eb46187.databases.appdomain.cloud port=32484 dbname=ibmclouddb user=admin sslmode=verify-full' -f dump.sql

psql による接続の資料に記載されているように、Cloud Databases CLI プラグインは接続を単純化します。 前の psql インポートは、以下のように実行できます。

ibmcloud cdb deployment-connections example-psql -s -- -f dump.sql

ユーザーが指定されていない場合、このコマンドでは自動的に admin ユーザーが使用されます。 また、パスワードを求める対話式プロンプトが表示されます。 TLS 証明書が自動的に取得されて使用されます。 API から詳細が確立されると、-spsql (または、構成されたすべてのコマンド) を開始します。 -- の後のすべての内容がコマンドに渡されます。

リストア・プロセスの実行中に、データベース・デプロイメントに対して行われる変更に関する多数のメッセージが出力されます。

pg_restoreを使用した移行オプションの追加

sql およびデータが含まれている tar ファイルを別途所有するユーザーの場合、前述の pg_restore コマンドに加えて、コマンド psql を使用して、データをマイグレーションできます。 pg_restore コマンドの例を以下に示します。

 PGPASSWORD=yourpasswordhere PGSSLROOTCERT=cert.crt pg_restore -h c7798cf6-e5d2-4513-b17f-3d3fa67d8291.8f7bfd8f3faa4218aec56e069eb46187.databases.appdomain.cloud -p 32484 -U admin -F t -d ibmclouddb tarfile.tar