AWS DMS 全ロードと CDC タスクの「ERROR: null value in column violates not-null constraint」のトラブルシューティング方法を教えてください。
最終更新日: 2019 年 10 月 2 日
全ロードと変更データキャプチャ (CDC) の両方の AWS Database Migration Service (AWS DMS) タスクがあります。「ERROR: null value in column violates not-null constraint.」というエラーが表示されました。 どうすればこのエラーを解決できますか?
解決方法
移行タスクにラージオブジェクト (LOB) 列がある場合は、次のようなログエントリが表示されます。
メッセージ |
---|
E: Command failed to load data with exit error code 1, Command output: ERROR: null value in column ’xyz’ violates not-null constraint |
AWS DMS が LOB 列を移行する場合、まず LOB 列を除くすべてのデータがターゲットテーブルに移行され、AWS DMS は LOB 列に NULL レコードを挿入します。次に、AWS DMS はターゲットテーブルの行を LOB 列データで更新します。
ターゲットが AWS DMS によって作成されていない場合は、ターゲットデータ記述言語 (DDL) で NOT NULL 属性が指定されているかどうかを確認します。NOT NULL 属性がある場合は、テーブルを変更して LOB 列のデータ型の NOT NULL 制約を削除します。次に、AWS DMS タスクを再開します。
LOB モードとタスクフェーズの AWS DMS タスクの動作については、次の表を参照してください。
LOB モード | 全ロード | 変更データキャプチャ |
---|---|---|
完全 LOB モード | NOT NULL 制約は許可されていない | NOT NULL 制約は許可されていない |
制限付き LOB モード | NULL 制約は許可されている | NOT NULL 制約は許可されていない |