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.
Related Information
Was this topic helpful?
Document Information
Modified date:
16 June 2018
UID
swg21687394