複数スキーマ・サポートの場合のデータベースのマイグレーション

デフォルトでは、複数スキーマ・サポートは無効になっています。 これを有効にするには、 enable_schema_dbo_check postgres変数を以下の値のいずれかに設定する:
  • 0: 複数スキーマ・サポートは無効になります。 これはデフォルト・モードです。
  • 1: 複数スキーマ・サポートは制限モードで有効になります。
  • 2: 複数スキーマ・サポートはフル・モードで有効になります。
enable_schema_dbo_check 変数の値を変更してモードを切り替える場合、および Netezza Performance Server Analytics が有効になっているデータベースがある場合は、次の手順を実行する必要があります:
  • シナリオ 1: モード 0 で作業中にモード 1 または 2 に切り替える。
    1. 変数 enable_schema_dbo_check を1または2に設定する。
    2. nzstop コマンドと nzstart コマンドを使用して Netezza Performance Serverを再起動します。
    3. /nz/export/ae/utilities/bin/update_inza_dbs.sh スクリプトを呼び出します。
  • シナリオ 2: モード 1 または 2 で作業中にモード 0 に切り替える。
    1. スキーマが、 Netezza Performance Server Analyticsで有効になっているすべてのデータベースのデフォルト・スキーマとして設定されていないことを確認します。
    2. データベースのデフォルト・スキーマが必要に応じて設定されていることを確認する。 モード 0 に切り替えた後は、その他のスキーマを使用できなくなります。
    3. 変数 enable_schema_dbo_check を0に設定する。
    4. /nz/export/ae/utilities/bin/update_inza_dbs.sh -n スクリプトを呼び出します。 逆移行の場合は、 noschema のオプション -n を使用する。
    5. nzstop コマンドと nzstart コマンドを使用して Netezza Performance Serverを再起動します。
  • シナリオ 3: モード 1 で作業中にモード 2 に切り替えるか、またはその逆を行う。 この場合、余分な移行手順は必要ない。
    1. 変数 enable_schema_dbo_check を1または2に設定する。
    2. nzstop コマンドと nzstart コマンドを使用して Netezza Performance Serverを再起動します。

モード 0 で作業している場合、データベースに存在するスキーマは 1 つのみです。 Netezza Performance Server Analytics は、このスキーマに基づいて分析モデルやマトリックスなどのデータベース・オブジェクトを作成します。 モード 1 または 2 で作業している場合、データベースには複数のスキーマが存在する可能性があります。 Netezza Performance Server Analytics は、INZA というスキーマにデータベース・オブジェクトを作成します。 更新スクリプトの主な目的は、 Netezza Performance Server Analytics が有効になっているすべてのデータベースについて、これらのスキーマ間でオブジェクトを移動することです。

モード 0 の場合、作成されたデータベース・オブジェクトは常に現行スキーマ内に存在します。 モード 1 または 2 の場合、データベース・オブジェクトは現行スキーマ内に存在しません。これは、通常、INZA スキーマは現行スキーマでないためです。 ただし、スキーマ名を明示的に指定しなくても、INZAスキーマのテーブルやビューにアクセスすることはできる。

例えば、文 SELECT * FROM V_NZA_MODELS は、現行スキーマに関係なく、すべてのモードで機能します。 SELECT * FROM INZA.V_NZA_MODELS と書く必要はない。