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 クライアントアプリケーションがインストールされている。

手順

  1. Business Central や KIE Server など、以前のデプロイメントや新しいデプロイメントの要素に接続されている Web クライアントやクライアントアプリケーションがないことを確認します。
  2. 空の一時ディレクトリーを作成して、そのディレクトリーに移動します。
  3. oc コマンドを使用して、Red Hat OpenShift Container Platform 3 インフラストラクチャーにログインし、以前のデプロイメントが含まれるプロジェクトに切り替えます。
  4. 以前のデプロイメントにあるデプロイメント設定名を表示するには、以下のコマンドを実行します。

    oc get dc

    必要な KIE Server インスタンスに対応する postgresql デプロイメント設定を検索します。

  5. 以下のようにデプロイメント設定の 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

    +

  6. 以前のデプロイメントにあるサービス名を表示するには、以下のコマンドを実行します。

    oc get svc

    必要な KIE Server インスタンスに対応する postgresql サービスを検索します。

  7. 以下の例のように、別のターミナルウィンドウで、サービスの名前およびポート番号を使用してローカルホストから postgresql サービスへのポート転送を開始します。

    oc port-forward service/myapp-postgresql 5432:5432
  8. 以下のように、記録したユーザー名とデータベース名を使用して、データベースのダンプを作成します。

    pg_dump rhpam7 -h 127.0.0.1 -U rhpam -W > pgdump.sql

    プロンプトが表示されたら、記録したパスワードを入力します。ダンプの作成にはかなり時間がかかる場合があります。

  9. Ctrl+C のキーボードの組み合わせを使用して、別のウィンドウのポート転送を停止します。
  10. oc コマンドを使用して、Red Hat OpenShift Container Platform 4 インフラストラクチャーにログインし、新しいデプロイメントが含まれるプロジェクトに切り替えます。
  11. 新しいデプロイメントにあるデプロイメント設定名を表示するには、以下のコマンドを実行します。

    oc get dc

    必要な KIE Server インスタンスに対応する postgresql デプロイメント設定を検索します。

  12. 以下のようにデプロイメント設定の 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
  13. 新しいデプロイメントにあるサービス名を表示するには、次のコマンドを実行します。

    oc get svc

    必要な KIE Server インスタンスに対応する postgresql サービスを検索します。

  14. 以下の例のように、別のターミナルウィンドウで、サービスの名前およびポート番号を使用してローカルホストから postgresql サービスへのポート転送を開始します。

    oc port-forward service/myappnew-postgresql 5432:5432
  15. 以下のように、記録したユーザー名、データベース名を使用してデータベースのダンプを復元します。

    psql -h 127.0.0.1 -d rhpam7 -U rhpam -W < pgdump.sql

    プロンプトが表示されたら、記録したパスワードを入力します。復元にはかなり時間がかかる場合があります。

    表示されたデータベースエラーメッセージを確認します。現存するオブジェクトに関するメッセージは正常です。

  16. Ctrl+C のキーボードの組み合わせを使用して、別のウィンドウのポート転送を停止します。