Netezza Performance Server分析のアップグレード

Netezza Performance ServerAnalyticsのアップグレード方法について説明します。

このタスクについて

Netezza Performance ServerAnalyticsの以前のインストールがシステム上にある場合、インストール処理では新しいパッケージがインストールされる前に以前のバージョンが削除されます。 その結果、INZA、NZA、NZM、NZRの各データベースは削除され、ユーザーが作成したオブジェクトを含め、これらのデータベース内のすべてのオブジェクトが永久に削除される。

アップグレード手順中に問題が発生しない限り、既存のNetezza Performance ServerAnalyticsバージョンを最初にアンインストールする必要はありません。

始める前に

ユーザ・データベースを更新して再有効化した後、以前のバージョンにフォールバックすることはできません。 したがって、アップグレード手順を開始する前に、すべてのユーザーデータベースをバックアップしてください。

アップグレード中にINZA、NZA、NZM、およびNZRデータベースが削除されるため、これらのデータベースで行った変更を保存しておくとよいでしょう。

これらのデータベースでは、このような変更を加えないことをお勧めします。 これらはNetezza Performance ServerAnalyticsコードのみを格納するためのものです。

分析モデルの保存

  1. 分析モデルを保存するには、新しいデータベースを作成し、適切なスクリプトを実行してNetezza Performance ServerAnalyticsで使用できるようにします:
    • create_inza_db.sh
    • create_inza_db_admin.sh
    • create_inza_db_developer.sh
    • create_inza_db_user.sh
  2. COPY_MODELコマンドを実行して、必要なモデルを新しいデータベースにコピーする。

    INZA、NZA、NZM、または NZR データベースはアップグレード中に削除されるため、これらのオブジェクトを INZA、NZA、NZM、または NZR データベースにコピーしないでください。

他のデータベースオブジェクトの保存

他のデータベース・オブジェクトを保存するには、適切な SQL コマンドを使用してそれらのオブジェクトを手動で別のデータベースにコピーします。

あるいは、backup コマンドを使用してデータベース全体を保存してから、別の名前の新しいデータベースとしてそれをリストアすることもできます。

この場合、アップグレード後にデータベース・オブジェクトを元のデータベースにコピーして戻すこともできます。 必要に応じて、コピーしたオブジェクトのユーザー特権とグループ特権を調整します。

手順

inzaPackageInstaller.shスクリプトを使用して、Netezza Performance ServerAnalyticsの既存バージョンをアップグレードします。

Netezza Performance ServerAnalyticsをアンインストールせずにアップグレードする場合

  1. Netezza Performance ServerAnalyticsのシステム・データベースが使用中でないことを確認します。
    Netezza Performance Serverを停止および起動できます。
    1. nzstop
    2. nzstart
  2. ノードの状態が'suspendedや'suspendingでないことを確認する。
  3. inzaPackageInstaller.shスクリプトを使用して、新バージョンのNetezza Performance ServerAnalyticsをインストールします。
    • inzaPackageInstaller.shスクリプトで依存関係が見つからず、新しいNetezza Performance ServerAnalyticsバージョンがインストールされた場合は、ステップ4に進みます。
    • inzaPackageInstaller.shスクリプトがユーザー オブジェクトとNetezza Performance ServerAnalyticsシステム データベース内のオブジェクト間の依存関係を検出したため、既存のNetezza Performance ServerAnalyticsバージョンをアンインストールできない場合は、次の手順を実行します:
      1. スクリプトを終了します。

        スクリプトが、すべての依存関係のリストを出力します。

      2. Netezza Performance ServerAnalyticsのアップグレード後にこれらのオブジェクトを再作成する方法を確認してください。
        例えば、以下の方法の1つ以上を使うことができる:
        • Netezza Performance ServerSoftware Supportパッケージから「nz_ddlツールを使用して、Netezza Performance ServerAnalyticsシステム データベースに依存するすべてのデータベースのDDLステートメントを作成します。 nz_ddlの出力に基づいてオブジェクトを再作成することができる。
        • Fluid Query がインストールされている場合は、Netezza Performance ServerAnalytics のアップグレード前にデータ・コネクタ機能の登録を解除し、アップグレード後に再登録してください。
        • Netezza Performance Server Analyticsに依存する独自の関数がある場合、これらの関数をコンパイルして登録するコードが残っているかもしれません。
          注: NZLUA-ベースのUDXは、INZAをアップグレードするたびに再コンパイルする必要があります。 これは、アップグレード処理によって、これらの UDX が依存する基本的なライブラリが更新されるためです。
        • データベースのビューがNetezza Performance ServerAnalyticsに依存している場合は、次のステートメントを使用してカタログからビュー定義を読み取ります:
          select viewschema, viewname, text from syscat.views
        • 再作成するすべてのオブジェクトについて、これらのオブジェクトに対するユーザー特権、グループ特権、またはロール特権も再作成する必要があるかどうかを確認します。 nz_ddlツールは、特権を再作成する「GRANTステートメントを生成する。
      3. Netezza Performance ServerAnalyticsシステム・データベースのオブジェクトを参照する依存オブジェクトを削除します。
    • inzaPackageInstaller.shスクリプトを使用して新しいバージョンのNetezza Performance ServerAnalytics を再インストールし、ステップ 4 に進みます。
  4. 次のいずれかの方法で、Netezza Performance ServerAnalyticsの新しいバージョン番号が正しいかどうかを確認します:
    • Linuxでは、以下のコマンドを実行する:
      nzcm –inza
    • データベースで、以下のコマンドを実行する:
      select * from inza..product;
  5. 削除された従属オブジェクトを再作成します。

Netezza Performance ServerAnalyticsをアンインストールしてからのアップグレード

既存のバージョンのNetezza Performance ServerAnalyticsをアンインストールしてから新規インストールするには、次の手順を実行します:
  1. Netezza Performance ServerAnalyticsのシステム・データベースが使用中でないことを確認します。
    Netezza Performance Serverを停止および起動できます。
    1. nzstop
    2. nzstart
  2. ノードの状態が'suspendedや'suspendingでないことを確認する。
  3. 次のステートメントを実行して、どのデータベースが存在し、どのユーザーがNetezza Performance ServerAnalytics の使用を有効にしているかを確認します。

    アップグレード完了後、これらのデータベースとユーザーを再度有効にする必要があります。

    select inzadb from (select substr(groupname, 1, length(groupname)-10) as inzadb from
      _v_group where upper(groupname) like '%_INZAUSERS') g inner join _v_database on inzadb = database;
    
    select username, groupname from _v_usergroups where username <> 
      'INZAUSER' and (groupname like '%INZAUSERS' or groupname like 
      '%INZADEVELOPERS' or groupname like '%INZAADMINS');
    グループ名は、データベース名の後にユーザータイプを示す接尾辞を付けたものである:
    • _inzausers (標準ユーザーの場合)
    • _inzadevelopers (開発者の場合)
    • _inzaadmins (管理者の場合)
  4. /nz/var/nzcm/uninstall_inza.shスクリプトを使用してNetezza Performance ServerAnalytics をアンインストールします。
    • uninstall_inza.shスクリプトで依存関係が見つからず、新しいNetezza Performance ServerAnalyticsバージョンがアンインストールされた場合は、ステップ 5 に進みます。
    • uninstall_inza.shスクリプトがユーザー オブジェクトとNetezza Performance ServerAnalyticsシステム データベース内のオブジェクト間の依存関係を検出したため、既存のNetezza Performance ServerAnalyticsバージョンをアンインストールできない場合は、次の手順を実行します:
      1. スクリプトを終了します。

        その結果、スクリプトによりすべての依存関係のリストが出力されます。

      2. Netezza Performance ServerAnalyticsのアップグレード後にこれらのオブジェクトを再作成する方法を確認してください。
        例えば、以下の方法の1つ以上を用いる:
        • Netezza Performance ServerSoftware Supportパッケージから、'nz_ddlツールを使用して、Netezza Performance ServerAnalyticsシステム データベースに依存するすべてのデータベースのDDLステートメントを登録します。 nz_ddlの出力に基づいてオブジェクトを再作成することができる。
        • Fluid Query がインストールされている場合は、Netezza Performance ServerAnalytics のアップグレード前にデータ・コネクター機能の登録を解除し、アップグレード後に再登録してください。
        • Netezza Performance Server Analyticsに依存する独自の関数がある場合、これらの関数をコンパイルして登録するコードが残っているかもしれません。 ただし、'nzl を使用して Lua 関数を再作成する必要があります。 インストールされるLuaライブラリは、通常、新しいNetezza Performance ServerAnalyticsで変更されます。
        • データベースのビューがNetezza Performance ServerAnalyticsに依存している場合は、次のステートメントを使用してカタログからビュー定義を読み取ります:
          select viewschema, viewname, text from syscat.views
        • 再作成するすべてのオブジェクトについて、これらのオブジェクトに対するユーザー特権、グループ特権、またはロール特権も再作成する必要があるかどうかを確認します。 nz_ddlツールは、特権を再作成する「GRANTステートメントを生成する。
      3. Netezza Performance ServerAnalyticsシステム・データベースのオブジェクトを参照する依存オブジェクトを削除します。
      4. uninstall_inza.shスクリプトを使用してNetezza Performance ServerAnalytics を再度アンインストールし、手順 5 に進みます。
  5. 次のデータベースが存在しないことを確認して、Netezza Performance ServerAnalyticsがアンインストールされていることを確認します:
    INZA
    NZA
    NZM 
    NZR
    NZRC
    NZVERIFY
    NZMSG
  6. inzaPackageInstaller.shスクリプトを使用して、新バージョンのNetezza Performance ServerAnalyticsをインストールします。
  7. 次のいずれかの方法で、Netezza Performance ServerAnalyticsの新しいバージョン番号が正しいかどうかを確認します:
    • Linuxでは、以下のコマンドを実行する:
      nzcm –inza
    • データベースで、以下のコマンドを実行する:
      select * from inza..product;
  8. 次のスクリプトを使用して、Netezza Performance ServerAnalyticsのデータベースとユーザーを再有効化します:
    create_inza_db.sh 
    create_inza_db_user.sh 
    create_inza_db_developer.sh 
    create_inza_db_admin.sh
    create_inza_db.shエラーメッセージとともに失敗した場合Permission denied on "NZ_MAT_METADATA"、またはDROP TABLE: permission deniedデータベースで同様のエラーが発生した場合、次のテーブルが'INZAUSERによって所有されているかどうかを確認してください:
    NZ_MAT_BRDCST_COMMAND
    NZ_MAT_METADATA
    NZA_META_MODELS
    NZA_META_COMPONENTS
    NZA_META_PARAMS
    NZA_META_COLPROPS
    これらのテーブルの所有者が'ADMINであれば、所有者を'INZAUSERに変更する:
    alter table table owner to INZAUSER
    それから、もう一度「create_inza_db.shスクリプトを実行する。
  9. 削除された従属オブジェクトを再作成します。

アップグレード後のユーザーデータベースの更新と再有効化

Netezza Performance ServerAnalyticsのバージョンをバージョン3.0にアップグレードした後、インストール時にデータベースを再有効化していない場合は、更新して、Netezza Performance ServerAnalyticsで有効になっているすべてのユーザー・データベースを再有効化してください。

/nz/export/ae/utilities/binから実行する:
./update_inza_dbs.sh

このスクリプトはコンポーネントを変更しない。 例えば、既存のモデルのテーブル、ビュー、マトリックスなど。 アルゴリズムのモデル構成要素の形式が変更された場合、古い形式を処理できないプロシージャーでモデルを使用するとエラーメッセージが表示されます。 さらに、MIGRATE_MODEL プロシージャーを使用してモデルを最新のフォーマットに変換するように求められます。