IBM Support

DB2 V10.5FP4 で update db cfg や restore database が SQL5133N で失敗する

Question & Answer


Question

DB2 V10.5 に FP4 を適用後、db2 update db cfg や restore database が SQL5133N で失敗するようになりました。これはなぜですが、またどうすればいいでしょうか?

Cause

DB2 V10.5 から新しいデータベース構成パラメーター nchar_mappingが追加されました。

しかし、このデータベース構成パラメーターは、GA (FP0) から FP3 までは使用されておらず、データベース・コードページにかかわらず、初期値として GRAPHIC_CU16 (16) が設定されていました。
DB2 V10.5 FP4 以降、このパラメーターが使用されるようになり、非 Unicode データベースでは設定値として NOT APPLICABLE (0) のみが許されるように変更されました。

このため、V10.5 GA (FP0) から FP3 で作成された非 Unicode データベースを FP4 に移行した場合、nchar_mapping にサポートされていない値である GRAPHIC_CU16(16) が格納されていることになり、結果としてすべての UPDATE DB CFG 要求が SQL5133N で失敗します。

また、RESTORE DATABASE コマンドはデータベース構成パラメーターの妥当性を検査するため、FP3 以前で取得した非 Unicode データベースのバックアップを FP4 にリストアすると、やはり SQL5133N で失敗します。
注:V10.5 FP0 から FP3 で作成した非 Unicode データベースを FP4 にアップグレード後に採取したバックアップであっても、FP4 へのリストアは SQL5133N で失敗します。

このとき、db2diag.log には下記のようなエントリが記録されます。

    FUNCTION: DB2 UDB, config/install, sqlfdbchk, probe:3331
    MESSAGE : ZRC=0xFFFFEBF3=-5133
    SQL5133N The configuration parameter was not updated because the
    specified value is not valid. Specified value: "". Configuration
    parameter name: "". Set of valid values: "".

    DATA #1 : SQLCA, PD_DB2_TYPE_SQLCA, 136 bytes
    sqlcaid : SQLCA sqlcabc: 136 sqlcode: -5133 sqlerrml: 18
    sqlerrmc: 16 nchar_mapping
    sqlerrp : SQL10054
    sqlerrd : (1) 0x00000000 (2) 0x00000000 (3) 0x00000000
    (4) 0x00000000 (5) 0x00000000 (6) 0x00000000
    sqlwarn : (1) (2) (3) (4) (5) (6)
    (7) (8) (9) (10) (11)
    sqlstate:

この問題は DB2 V10.5 GA (FP0) から FP3 で作成された非 Unicode データベースでのみ発生し、APAR IT04571 で報告されています。Unicode データベースでは問題は発生しません。
また、V10.1 以前で作成され、V10.5 GA(FP0) から FP3 を経由せず、直接 FP4 にアップグレードされたデータベースでも問題は発生しません。

なお、GET DB CFG コマンドは、非 Unicode データベースでは、実際の nchar_mapping の値にかかわらず NOT APPLICABLE と表示するため、実際の値を把握する目的には使用できません。

Answer

この問題を解決するには2つの方法があります。

a) FP4 以降でデータベース構成パラメーターをリセットする


    reset db cfg for database を実行することにより nchar_mapping がゼロになります。

    このときすべての値がコード上のデフォルト値になるので、あらかじめ変更前の値を記録しておき、必要に応じて再設定する必要があります。


b) nchar_mapping を NOT APPLICABLE に変更するユーティリティを使用する。

    nchar_mapping を NOT APPLICABLE (0) にするプログラムをご用意いたしました。

    使用方法は下記の通りです。

    IT04571 -v databasename: 現在の nchar_mappingを表示します。
    IT04571 -u databasename: nchar_mapping を変更します。

    使用例:


    現在の nchar_mapping の値を確認します。
    $ IT04571 -v sample
    Get DB Config. fields for the "sample" database:
    NCHAR_MAPPING = 16

    nchar_mapping の値をNOT APPLICABLE (0) に変更します。
    $ IT04571 -u sample
    Set DB Config. fields for the "sample" database:
    NCHAR_MAPPING = 0

    nchar_mapping の値が変更されていることを確認します。
    $ IT04571 -v sample
    Get DB Config. fields for the "sample" database:
    NCHAR_MAPPING = 0

    プログラム・ソースおよび実行ファイルは、下記にリンクされた英語版からダウンロードしてください。


    The db2 update db cfg command returned SQL5133N after upgrading to DB2 10.5 Fix Pack 4.

[{"Product":{"code":"SSEPGG","label":"Db2 for Linux, UNIX and Windows"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Component":"Database Objects\/Config - Database","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF010","label":"HP-UX"},{"code":"PF016","label":"Linux"},{"code":"PF027","label":"Solaris"},{"code":"PF033","label":"Windows"}],"Version":"10.5","Edition":"","Line of Business":{"code":"LOB10","label":"Data and AI"}}]

Document Information

Modified date:
16 June 2018

UID

swg21687394