DB2の一般的なエラーと解決策
Db2 Common Errors Solutions
1、データベースを作成し、42704エラーを報告します。といった:
SQLコード
- => 作成する データベース テスト
- => SQL0204N'SYSTEM_1386_US' です 未定義 名前 。 SQLSTATE = 42704
=>create database test =>SQL0204N 'SYSTEM_1386_US' is an undefined name. SQLSTATE=42704
解決策:SQLコード - => 作成する データベース コードセットgbkテリトリーcnを使用したテスト
=>create database test using codeset gbk territory cn
2、接続データの場合、57017エラーが報告されました。といった:
SQLコード
- => 接続する に テストユーザーテストを使用したテスト
- => SQL0332N キャラクター 変換 から ソースコードページ「1386」 に ターゲットコードページ「819」 です ないサポートされています。 SQLSTATE = 57017
=>connect to test user test using test =>SQL0332N Character conversion from the source code page '1386' to the target code page '819' is not supported. SQLSTATE=57017
解決: SQLコード
- => db2set db2codepage = 1386
=>db2set db2codepage=1386
3、データベースの操作時に、エラーレポート55039。
SQLコード
- => db2 落とす テーブル t_base_acc_manageacc
- => SQL0290N テーブル スペースアクセス です ない許可されます。 SQLSTATE = 55039
- => db2リスト表領域は詳細を表示します
- テーブルスペースID = 2
- 名前 = USERSPACE1
- タイプ=システム管理スペース
- 内容=どれかデータ
- 状態= 0x0020
- 詳細な説明:
- バックアップ保留中
=>db2 drop table t_base_acc_manageacc =>SQL0290N Table space access is not allowed. SQLSTATE=55039 =>db2 list tablespaces show detail Tablespace ID = 2 Name = USERSPACE1 Type = System managed space Contents = Any data State = 0x0020 Detailed explanation: Backup pending
理由:アーカイブデータベースの再起動データベースのパラメータをロードまたは変更しました 解決:
SQLコード
- バックアップデータベース
- => db2バックアップデータベース
backup database =>db2 backup db
4、データベースのバックアップ時に、エラーレポート57019。例:
SQLコード
- => db2バックアップ データベース dbname に / xx / xx圧縮
- => SQL1035N データベース です 現在に使用する。 SQLSTATE = 57019
=>db2 backup database dbname to /xx/xx compress =>SQL1035N The database is currently in use. SQLSTATE=57019
解決: SQLコード
- => db2stop 力
- => db2start
=>db2stop force =>db2start
5、表スペースを作成するときに、54047エラーが報告されました。といった:
SQLコード
- => 作成する 通常の表領域スペース1ページサイズ4k管理 沿って データベース を使用して(デバイス'/ dev / dd'25000000)プリフェッチサイズ自動バッファプールbp1
- => SQL1139N合計 サイズ の インクルード テーブル スペース です 大きすぎる。 SQLSTATE = 54047
=>create regular tablespace space1 pagesize 4 k managed by database using (device '/dev/dd' 25000000) prefetchsize automatic bufferpool bp1 =>SQL1139N The total size of the table space is too big. SQLSTATE=54047
解決策:ポイントテーブルスペースまたはレギュラー(64G)のサイズを大幅に改善しました。 6、DB2バックアップが失敗し、メモリー不足が報告され、dbheapが無駄になりました。 SQL2009C、このユーティリティを実行するために使用できる十分なメモリがありません。
原因:DB2 UTIL_HEAP_SZが、バックアップ・ユーティリティーに対して十分に高く設定されていません。
解決策:db2は、UTIL_HEAP_SZ固有の番号を使用してdbnameのdb cfgを更新します(UTIL_HEAP_SZを使用したメモリーdb2バックアップ、上記のコマンドを使用して調整してください)。
7、JDBCバッチを使用してデータがテーブルに挿入される場合。 23,502件のエラーが報告されました。といった:
SQLコード
- エラー ために バッチ要素#0:DB2 SQLエラー:SQLCODE:-407、SQLSTATE:23502、SQLERRMC:TBSPACEID = 2、TABLEID = 15、COLNO = 2
Error for batch element #0: DB2 SQL error: SQLCODE: -407, SQLSTATE: 23502, SQLERRMC: TBSPACEID=2, TABLEID=15, COLNO=2
理由:表にNULL以外の制約フィールドがある場合、NULL値が挿入されます。 解決策:表の定義を確認するか、NULL以外の制約を削除するか、NULL以外の値を追加してください。
8、JDBCバッチを使用してデータがテーブルに挿入される場合。 22001エラーレポート。といった:
SQLコード
- DB2 SQLエラー:SQLCODE = -302、SQLSTATE = 22001、SQLERRMC =ヌル
DB2 SQL Error: SQLCODE=-302, SQLSTATE=22001, SQLERRMC=null
理由:テーブル内のフィールドの長さが十分でないため、文字列の切り捨てが発生します。 解決策:テーブル定義を確認し、フィールド長を増やしてください。
9、JDBCバッチを使用してテーブルにデータを挿入する場合。 -4474エラーを報告します。といった:
SQLコード
- 不正な変換: 'java.lang.String'からではありません '変換'バイト[] 'エラーコード= -4474、SQLSTATE =ヌル
Illegal conversion: not from 'java.lang.String' convert 'byte []' ERRORCODE = -4474, SQLSTATE = null
理由:「IDCHAR(16)FOR BIT DATA NOTNULL」のフィールド定義テーブル(これは、MSからMTK SQL DB2に移行するときに使用され、uniqueidentifierはに変換されます)。 解決策:テーブル、フィールド属性をVARCHARタイプに再作成します。