Db2ユーティリティー・リリースの非互換事項

Db2 12 で保守を移行または適用する場合は、ご使用の Db2 環境に影響する可能性がある Db2 ユーティリティー・リリースの非互換事項を把握してください。

変更の開始 Db2 12 のどの機能レベルにおいても、 への最初の移行時を含め、以下の互換性のない変更が適用されます。 Db2 12 互換性のない変更があなたの Db2 12 機能レベル 501 以上をアクティブ化する際の環境については、 「機能レベル 501 以上の互換性のない変更の概要」を参照してください。変更の終わり

変更の開始

論理レコード長(LRECL)とユーティリティ作業用データセットのサイズを増加

Db2 12 機能レベル500から、相対ページ番号付けによる範囲別テーブルスペースの7バイトRIDに対応するため、論理レコード長(LRECL)とユーティリティ作業データセットの一部のサイズが増加しました。

実行するアクション

ユーティリティ作業のデータセットを手動で割り当てる場合は、ユーティリティのドキュメントでデータセットサイズの計算式を確認してください。 これらの数式の一部は、前回のリリースから変更されています。

変更の終わり
変更の開始

RECOVERユーティリティが、インデックスログ処理中のエラーに関する新しいメッセージを発行するように変更されました

Db2 12 の機能レベル100で、RECOVERユーティリティは、インデックスログ処理中に発生したエラーに対して、 DSNU1577I および DSNU1578I というメッセージを発行します。 DSNU599I これらのケースでは、発行されなくなります。

実行するアクション

RECOVERユーティリティの出力でエラーメッセージをスキャンするプロセスをお持ちの場合は、インデックスのログ処理エラーを報告するために発行されるようになったメッセージ DSNU1578I をスキャンするようにプロセスを変更する必要があるかもしれません。 また、ユーティリティが終了した際に、ページセットのREBUILD保留ステータスにあるインデックスをユーティリティが報告するために発行されるようになったメッセージ DSNU1577I をスキャンするプロセスを変更する必要があるかもしれません。

変更の終わり
変更の開始

ID 列に対する新しい LOAD ユーティリティーの動作の変更

機能レベル 100 の Db2 12 以降、LOAD ユーティリティーは、ロードされた ID 列に対して、SYSIBM.SYSEQUENCES 内にある MAXASSIGNEDVAL の値を常に維持します。

Db2 12以前は、ユーザーが ID 列値を指定した場合、LOAD ユーティリティーは MAXASSIGNEDVAL の値を維持しませんでした。 列が GENERATED BY DEFAULT として定義されている場合、または列が GENERATED ALWAYS として定義され、かつ OVERRIDE(IDENTITY) オプションが LOAD ステートメントに指定されている場合、ユーザーは ID 列値を指定することができます。

実行するアクション

既存のアプリケーションに、Db2 12 以前の動作に依存するロジックがある場合は、LOAD ステートメントで UPDMAXASSIGNEDVAL NO を指定することにより、この新しい動作を無効にすることができます。 Db2 12へのマイグレーションを支援するために、 Db2 11でこの新規オプションを LOAD ジョブに追加することができます。 UPDMAXASSIGNEDVAL NO は Db2 11では受け入れられますが、このオプションは Db2 12までは無効です。

変更の終わり

REORG TABLESPACE PART SORTNPSI YES の動作に対する変更

機能レベル 100 の Db2 12 以降、REORG TABLESPACE ユーティリティー・オプション SORTNPSI YES を指定するか、REORG_PART_SORT_NPSI サブシステム・パラメーターを「YES」に設定すると、REORG はパーティション化されていない 2 次索引 (NPSI) のすべての鍵をソートします。 以前は、これらのオプションを指定すると、特定の内部しきい値が満たされた場合にのみ、REORG は NPSI をソートしていました。 そのため、これまでソート操作ができなかった REORG SORTNPSI YES ジョブには、Db2 12 にソート操作が含まれているものがあります。 ソートはパフォーマンスに影響を与える可能性があり、それらのユーティリティー・ジョブの経過時間が増加する場合があります。

実行するアクション

追加のソート操作がパフォーマンスに影響する場合は、サブシステム・パラメーター REORG_PART_SORT_NPSI を「AUTO」に設定するか、REORG TABLESPACE ユーティリティー・ステートメントで SORTNPSI AUTO を指定してください。

変更の開始

REORG TABLESPACE および LOAD REPLACE のデフォルトの動作に対する変更

Db2 12 では、RRF サブシステム・パラメーターは削除されます。 デフォルトの動作は RRF=ENABLE です。これは以下を意味します。

  • 新しく作成された表スペース、または増加対応型パーティション化表スペースに新しく追加されたパーティションは、再配列行フォーマットで作成されます。
  • LOAD REPLACE または REORG TABLESPACE が ROWFORMAT BRF オプションを指定していない場合、これらのユーティリティーは、既存の基本行フォーマットの表スペースを再配列行フォーマットに変換します。

HONOR_KEEPDICTIONARY サブシステム・パラメーターが「NO」に設定されているか、またはデフォルトで「NO」に設定されており、かつ LOAD REPLACE または REORG TABLESPACE が既存の基本行フォーマットの表スペースを再配列行フォーマットに変換する場合、行の圧縮解除には非常に大量のソート作業スペースが必要です。 使用可能なソート作業スペースが不足していると、ユーティリティーは失敗します。

実行するアクション

サブシステム・パラメーター HONOR_KEEPDICTIONARY を「YES」に設定し、KEEPDICTIONARY オプションを指定して LOAD REPLACE または REORG TABLESPACE を実行します。 これらのアクションを実行すると、ユーティリティーが実行されたときに Db2 はデータを圧縮解除しません。

変更の終わり
変更の開始

REORG のマッピング・テーブルに対する変更

Db2 12 では、相対ページ番号付けを使用する範囲パーティション化表スペースに必要な 7 バイトの RIDS に対応するように、マッピング・テーブルのフォーマットが変更されました。 (マッピング表は、SHRLEVEL CHANGE が指定されている場合、REORG TABLESPACE ユーティリティーによって使用されます) マッピング・テーブルでは、ORID 列が CHAR(5) ではなく CHAR(7) に変更され、NRID 列が CHAR(9) ではなく CHAR(11) に変更されています。

Db2 12 機能レベル 500 以上がアクティブ化された後で、マッピング・テーブルに Db2 11 フォーマットを使用すると、REORG TABLESPACE はそれを使用しません。 代わりに、このユーティリティーは、指定したマッピング・テーブルと同じデータベース内の Db2 12 フォーマットでマッピング・テーブルを暗黙的に作成します。

実行するアクション

Db2 12 フォーマットに従ってマッピング・テーブルを作成するか、REORG がユーザーのマッピング・テーブルを暗黙的に作成できるようにします。

変更の終わり

DSNACCOX ストアード・プロシージャーの結果セットの変更

変更の開始 Db2 12 において、DSNACCOXの結果セットには1つ以上の新しい列が含まれています。 この拡張された結果セットは、関数レベルが 機能レベル500 以上 の場合に返されます。 結果セットに、新しい列 RRTPBGSPACEPCT が組み込まれています。 この列は、将来の利用に備えて予約されています。変更の終わり

また、結果セットには、以前のリリースではオプションであった 2 つの列が常に組み込まれます。 Db2 12 において、関数レベルが 機能レベル500 以上 の場合、RRIEMPTYLIMIT 列と RRTHASHOVRFLWRAT 列は常に返されます。

DSNACCOX 結果セットに対して SELECT(*) を発行するアプリケーションは失敗するか、または予測できない結果を返す可能性があります。

実行するアクション

DSNACCOX ストアード・プロシージャーの結果を処理するアプリケーションをすべて見直します。 必要に応じて、新しい結果セットを処理するようにそれらを更新します。

RECOVER の場合のテープ上でのイメージ・コピー・データ・セットの割り振りの変更

Db2 12 の場合、RECOVER ジョブでは、テープ上にあるイメージ・コピー・データ・セットを割り振るために、JCL に DD ステートメントを組み込むことができなくなりました。 Db2 12 では、RECOVER が、テープ上にあるイメージ・コピー・データ・セットを動的に割り振れるようにする必要があります。

テープ上にあるイメージ・コピー・データ・セットの DD ステートメントが含まれている RECOVER ジョブは、エラー DSNU030I で失敗します。

実行するアクション

RECOVER ジョブがエラー DSNU030I で失敗する場合は、テープ上にあるイメージ・コピー・データ・セットの DD ステートメントを見つけて、その DD ステートメントを削除します。

RESTORE SYSTEM ユーティリティーの動作の変更

Db2 12 では、以下のいずれかの状態が発生した場合、RESTORE SYSTEM は失敗します。

  • リカバリー・ポイントより前の最新のシステム・レベル・バックアップが DFSMShsm リポジトリーに登録されていない。
  • 実動ボリュームのリストア中に DFSMShsm からエラーが返された。

以前のリリースでは、RESTORE SYSTEM がシステム・レベル・バックアップで問題を検出した場合、ユーティリティーは以前のシステム・レベル・バックアップを自動的に使用しました。 Db2 12 内の新しい動作により、状況を制御できるようになり、最良のアプローチ方法を判別できるようになります。

RESTORE SYSTEM ジョブは失敗する可能性があります。

実行するアクション

これらの失敗を処理する方法を判別します。 古いシステム・レベル・バックアップを使用する必要がある場合は、RESTORE SYSTEM ユーティリティー・ステートメントで新しい RESTOREBEFORE オプションを使用してください。

統計を収集するユーティリティーによる、キャッシュされた動的 SQL ステートメントの無効化の変更

Db2 12 では、インライン統計を収集する RUNSTATS ユーティリティーおよびその他のユーティリティーは、動的ステートメント・キャッシュ内の動的ステートメントをデフォルトで無効にしません。 以前のリリースでは、オブジェクトの統計収集のために、オブジェクトを参照する、キャッシュに入れられた動的ステートメントは必ず無効化されていました。 Db2 12 では、INVALIDATECACHE オプションが RUNSTATS ユーティリティーに追加され、インライン統計を収集する以下のユーティリティーに追加されます。

  • LOAD
  • REBUILD INDEX
  • REORG INDEX
  • REORG TABLESPACE

デフォルトのオプション INVALIDATECACHE NO は、統計収集のために、ユーティリティーが動的ステートメント・キャッシュ内のステートメントを無効化しないことを意味します。 Db2 動的ステートメントキャッシュに残っている動的SQLステートメントに対して、古い統計に基づくアクセス経路を使い続ける可能性がある。

実行するアクション

統計を収集する既存のユーティリティー・ジョブが、動的ステートメント・キャッシュ内の SQL ステートメントを無効化する必要がある場合は、ジョブに INVALIDATECACHE YES オプションを追加します。

UNLOAD ユーティリティーの動作の変更

Db2 12 では、UNLOAD ユーティリティーに REGISTER オプションが組み込まれています。このオプションは、データ共用環境において、UNLOAD ユーティリティーによって読み取られるページがカップリング・ファシリティーに登録されているかどうかを指定します。 REGISTER NO はデータ共用オーバーヘッドを削減します。 以前のリリースでは、UNLOADユーティリティは、REGISTER YESの動作のみでした。 変更の開始 Db2 12 では、UNLOAD のデフォルトは REGISTER NO でしたが、APAR ではデフォルトが REGISTER YES に変更されています。 PI99075変更の終わり REGISTER NO は、ページをローカルまたはグループバッファプールからではなく、ディスクから直接読み込むようにします。

変更の開始

実行するアクション

変更の開始 PI99075 を適用して、 のデフォルトの動作を復元します。 Db2 11 次に、データ共用オーバーヘッドを削減するために適切な場合には、REGISTER NOを指定して UNLOAD ユーティリティー・ジョブを更新します。変更の終わり

変更の終わり

UNLOAD ユーティリティーの許可検査の変更

機能レベル500 以上 の有効化後、 Db2 はUNLOADユーティリティを実行するためのSELECT権限ではなく、新しいUNLOAD権限をチェックします。そのため、UNLOADユーティリティとUNLOADジョブが認証エラーにより失敗する可能性があります。

Db2 は、UNLOAD ユーティリティーの許可に関する新しい UNLOAD 特権を確認します。 UNLOAD ユーティリティーを実行するために、以下のいずれかが含まれている特権セットを使用する必要があります。

  • 表の所有権
  • 表に対する UNLOAD 特権
  • 表に対する SELECT 特権 (AUTH_COMPTIBILITY サブシステム・パラメーターが SELECT_FOR_UNLOADに設定されている場合 )
  • データベースの DBADM 権限。 ユーティリティーの処理対象のオブジェクトが、 暗黙に作成されたデータベース内にある場合、その暗黙に作成されたデータベース または DSNDB04 の DBADM 権限があれば十分です。
  • DATAACCESS 権限
  • SYSADM 権限
  • SYSCTRL 権限 (カタログ表のみ)
  • SQLADM 権限 (カタログ表のみ)
  • システム DBADM 権限 (カタログ表のみ)
  • ACCESSCTRL 権限 (カタログ表のみ)
  • SECADM 権限 (カタログ表のみ)

ターゲット表に対して SELECT 特権のみを使用してユーザーが UNLOAD ジョブを実行すると、UNLOAD ジョブは失敗し、メッセージ DSNU1253I が出されます。

実行するアクション

以下のいずれかのアクションを実行してください。

  • Db2 12にマイグレーションする前に、ジョブ DSNTIJPM を実行し、事前マイグレーション・レポート 19 のステップに従って、どの許可 ID が UNLOAD 特権を必要とするかを判別してください。
  • Db2 11 または Db2 12で、IFCID 404 のトレースを開始して、UNLOAD 特権を必要とするユーザーを識別します。 次に、機能レベル 100 の Db2 12 で、これらのユーザーに UNLOAD 特権を付与します。
  • 一時的な解決策として、UNLOAD ユーティリティーが実行する際に SELECT 特権が引き続き検査されるように、AUTH_COMPATIBILITY サブシステム・パラメーターを SELECT_FOR_UNLOAD に設定します。 詳細は、マクロ DSN6SPRM のAUTH_COMPATIBILITY を参照してください。