5.3. KIE Server の PostgreSQL データベースの移行
Red Hat OpenShift Container Platform 3 の環境に、PostgreSQL データベース Pod を使用する KIE Server が含まれる場合は、PostgreSQL データベースコンテンツを、以前のデプロイメントから新しいデプロイメントにコピーします。このアクションにより、既存のプロセスの状態が新しいデプロイメントにコピーされます。
前提条件
- Red Hat OpenShift Container Platform 3 および Red Hat OpenShift Container Platform 4 のインフラストラクチャーの両方に、ネットワークでアクセスできるマシンが必要です。
-
対象のマシンに Red Hat OpenShift Container Platform 4 からの
oc
コマンドラインクライアントをインストールしておく必要があります。コマンドラインクライアントのインストール方法については、Red Hat OpenShift Container Platform ドキュメントの CLI tools を参照してください。 -
PostgreSQL バージョン 10 以降で提供される
psql
およびpg_dump
クライアントアプリケーションがインストールされている。
手順
- Business Central や KIE Server など、以前のデプロイメントや新しいデプロイメントの要素に接続されている Web クライアントやクライアントアプリケーションがないことを確認します。
- 空の一時ディレクトリーを作成して、そのディレクトリーに移動します。
-
oc
コマンドを使用して、Red Hat OpenShift Container Platform 3 インフラストラクチャーにログインし、以前のデプロイメントが含まれるプロジェクトに切り替えます。 以前のデプロイメントにあるデプロイメント設定名を表示するには、以下のコマンドを実行します。
oc get dc
必要な KIE Server インスタンスに対応する
postgresql
デプロイメント設定を検索します。以下のようにデプロイメント設定の YAML を表示します。
oc edit dc/myapp-postgresql
以下のように、このファイルで、データベースサーバーのユーザー名 (通常
rhpam
)、パスワード、およびデータベース名 (通常rhpam7
) を検索します。- name: POSTGRESQL_USER value: rhpam - name: POSTGRESQL_PASSWORD value: NDaJIV7! - name: POSTGRESQL_DATABASE value: rhpam7
ユーザー名、パスワード、およびデータベース名を記録します。ファイルに変更を加えないでください。
注記次のコマンドを使用して、ユーザー名とパスワード、データベース名を取得することもできます。
oc get dc/myapp-postgresql -ojsonpath='{.spec.template.spec.containers[0].env[?(@.name=="POSTGRESQL_USER")]}'.value oc get dc/myapp-postgresql -ojsonpath='{.spec.template.spec.containers[0].env[?(@.name=="POSTGRESQL_PASSWORD")]}'.value oc get dc/myapp-postgresql -ojsonpath='{.spec.template.spec.containers[0].env[?(@.name=="POSTGRESQL_DATABASE")]}'.value
+
以前のデプロイメントにあるサービス名を表示するには、以下のコマンドを実行します。
oc get svc
必要な KIE Server インスタンスに対応する
postgresql
サービスを検索します。以下の例のように、別のターミナルウィンドウで、サービスの名前およびポート番号を使用してローカルホストから
postgresql
サービスへのポート転送を開始します。oc port-forward service/myapp-postgresql 5432:5432
以下のように、記録したユーザー名とデータベース名を使用して、データベースのダンプを作成します。
pg_dump rhpam7 -h 127.0.0.1 -U rhpam -W > pgdump.sql
プロンプトが表示されたら、記録したパスワードを入力します。ダンプの作成にはかなり時間がかかる場合があります。
- Ctrl+C のキーボードの組み合わせを使用して、別のウィンドウのポート転送を停止します。
-
oc
コマンドを使用して、Red Hat OpenShift Container Platform 4 インフラストラクチャーにログインし、新しいデプロイメントが含まれるプロジェクトに切り替えます。 新しいデプロイメントにあるデプロイメント設定名を表示するには、以下のコマンドを実行します。
oc get dc
必要な KIE Server インスタンスに対応する
postgresql
デプロイメント設定を検索します。以下のようにデプロイメント設定の YAML を表示します。
oc edit dc/myappnew-postgresql
このファイルで、データベースサーバーのユーザー名 (通常
rhpam
)、パスワード、およびデータベース名 (通常rhpam7
) を検索します。ユーザー名、パスワード、およびデータベース名を記録します。ファイルに変更を加えないでください。注記次のコマンドを使用して、ユーザー名とパスワード、データベース名を取得することもできます。
oc get dc/myapp-postgresql -ojsonpath='{.spec.template.spec.containers[0].env[?(@.name=="POSTGRESQL_USER")]}'.value oc get dc/myapp-postgresql -ojsonpath='{.spec.template.spec.containers[0].env[?(@.name=="POSTGRESQL_PASSWORD")]}'.value oc get dc/myapp-postgresql -ojsonpath='{.spec.template.spec.containers[0].env[?(@.name=="POSTGRESQL_DATABASE")]}'.value
新しいデプロイメントにあるサービス名を表示するには、次のコマンドを実行します。
oc get svc
必要な KIE Server インスタンスに対応する
postgresql
サービスを検索します。以下の例のように、別のターミナルウィンドウで、サービスの名前およびポート番号を使用してローカルホストから
postgresql
サービスへのポート転送を開始します。oc port-forward service/myappnew-postgresql 5432:5432
以下のように、記録したユーザー名、データベース名を使用してデータベースのダンプを復元します。
psql -h 127.0.0.1 -d rhpam7 -U rhpam -W < pgdump.sql
プロンプトが表示されたら、記録したパスワードを入力します。復元にはかなり時間がかかる場合があります。
表示されたデータベースエラーメッセージを確認します。現存するオブジェクトに関するメッセージは正常です。
- Ctrl+C のキーボードの組み合わせを使用して、別のウィンドウのポート転送を停止します。