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.sql
を example-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 から詳細が確立されると、-s
は psql
(または、構成されたすべてのコマンド) を開始します。 --
の後のすべての内容がコマンドに渡されます。
リストア・プロセスの実行中に、データベース・デプロイメントに対して行われる変更に関する多数のメッセージが出力されます。
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