DB2 for LUWソース データベース取り込みとレプリケーション タスクでDb2 for Linux, UNIX, and Windows(LUW)ソースを使用するには、最初にソースデータベースを準備し、使用に関する考慮事項を確認してください。
ソースの準備: • データベース取り込みとレプリケーション では、ユーザーが複数のシステムカタログテーブルおよびビューに対するSELECT特権を持っている必要があります。次のgrant文を使用します。GRANT SELECT ON <catalog_table > TO <dbmi_user >
この付与を、次の各カタログテーブルまたはビューに対して発行します。
- SYSCAT.COLUMNS- SYSCAT.DATAPARTITIONEXPRESSION- SYSCAT.DATAPARTITIONS- SYSCAT.INDEXCOLUSE- SYSCAT.INDEXES- SYSCAT.SCHEMATA- SYSCAT.TABLESSYSCAT.TABLES- SYSIBM.COLUMNS- SYSIBM.SYSDUMMY1- SYSIBM.SYSPLAN- SYSIBM.SYSVERSIONS• データベース取り込みおよびレプリケーションがDb2データベースに正常に接続してSQL要求を発行するために必要となるDb2パッケージを作成および実行するには、BINDADD特権がデータベース取り込みおよびレプリケーションのユーザーdbmi_user に付与されていることを確認します。GRANT BINDADD ON DATABASE TO <dbmi_user >
• Db2 for LUW Database IngestionコネクタはJDBC接続を使用します。DataDirect JDBCドライバを使用して初めてデータベースに接続する場合、次のJDBCパッケージを作成およびバインドするためにパッケージ作成特権が必要です。- DDJC360A- DDJC360B- DDJC360C- DDJR360A- DDJR360B- DDJR360C- DDJS360A- DDJS360B- DDJS360C- DDJU360A- DDJU360B- DDJU360CログベースのCDCの場合
• ログベースのCDCはIBM db2ReadLog APIを使用してログを読み取るため、データベース取り込みとレプリケーション ユーザーはSYSADMまたはDBADM権限を持っている必要があります。• ログベースのCDCに参加しているテーブルがこのオプションを使用して作成されていない場合は、そのテーブルに対して[Db2 DATA CAPTURE CHANGES]オプションを設定する必要があります。次のSQL文を使用できます。ALTER TABLE <TABLE_NAME> DATA CAPTURE CHANGES;
非推奨のLONG VARCHARまたはLONG VARGRAPHICデータ型を使用する場合は、INCLUDE LONGVAR COLUMNS句を使用してテーブルを定義します。
ALTER TABLE <TABLE_NAME> DATA CAPTURE CHANGES INCLUDE LONGVAR COLUMNS;
また、データベース取り込みおよびレプリケーションの増分ロードタスクまたは組み合わせロードタスクを作成する際、タスクに選択された各テーブルに対してDATA CAPTURE CHANGESを有効にする生成されたCDCスクリプトを実行またはダウンロードします。
• DB2 11.5クライアントは、Secure AgentサーバーおよびキャプチャカタログテーブルをホストするDb2データベースシステムにインストールする必要があります。• 変更データをキャプチャするDb2ソースデータベースのアーカイブログがアクティブであることを確認します。• データベース取り込みおよびレプリケーションユーザーに対して、有効なDb2環境が存在することを確認します。Db2環境を設定するには、db2プロファイルスクリプトを「ソース」します。source INSTHOME/sqllib/db2chrc
このスクリプトは、現在のセッションがDb2インスタンスと対話するために必要な環境変数(DB2INSTANCE、PATH、LD_LIBRARY_PATHなど)を設定します。
Linux上では、Db2クライアントへのパスがPATHおよびLD_LIBRARY_PATH環境変数で指定されていることを確認します。
• 次の手順を実行して、Secure Agentマシン上のDb2環境をカタログします。1 次のコマンドを使用して、TCP/IPノードをカタログします。db2 catalog tcpip node <node_name> remote <database_server_name> server <port_number>
2 次のコマンドを使用して、Db2データベースをカタログし、クライアントに登録します。db2 catalog database <database_name> as <database_alias> at node <node_name>
3 キャッシュを更新するように求められたら、次のコマンドを使用します。db2 terminate
4 次のコマンドを使用して、Secure Agentマシンからデータベースに接続できることを確認します。db2 connect to <database_name> user <user_name> using passwd
• 暗号化されたDb2 for LUWソースデータベースを使用する場合は、次の手順を実行して、データベースとキーストアを作成および構成します。1 次のコマンドを使用してキーストアを作成します。C:\Program Files\IBM\gsk8\bin>gsk8capicmd_64 -keydb -create -db db2pkeystorep.p12 -pw <StrongPasswrd> -type pkcs12 -stash
2 次のコマンドを使用して、Db2 for LUWインスタンスを停止します。db2stop
3 キーストア情報を使用して、データベースマネージャ(DBM)構成を更新します。次のコマンドを使用します。update dbm cfg using keystore_location "C:\Program Files\IBM\gsk8\bin\db2pkeystorep.p12" keystore_type pkcs12
4 次のコマンドを使用して、Db2 for LUWインスタンスを開始します。db2start
5 次のコマンドを使用して暗号化されたデータベースを作成します。db2 create database cdirencr encrypt
6 次のコマンドを使用して、暗号化されたデータベースに接続できることを確認します。db2 connect to cdirencr
7 次のコマンドを使用して、暗号化されたデータベースの構成を確認します。db2 get db config for cdirencr
暗号化されたデータベースパラメータが設定されていることを確認します。
使用に関する考慮事項: • Db2 for LUWソースを持つデータベース取り込みとレプリケーション の増分ロードジョブ、および初期ロードと増分ロードの組み合わせジョブでは、[クエリベース] または[ログベース] の変更データキャプチャメソッドのいずれかを使用できます。• データベース取り込みとレプリケーション では、ソーステーブルの各行が一意であることを想定しているため、各ソーステーブルにプライマリキーを持たせることをお勧めします。データベース取り込みとレプリケーション は、プライマリキーの代わりに一意のインデックスを許可しません。プライマリキーが指定されていない場合、データベース取り込みとレプリケーション はすべてのカラムをプライマリキーの一部であるかのように扱います。• 読み取り専用モードのスタンバイデータベースは、プライマリデータベースへの接続に失敗した場合の代替サーバーとして使用できます。1つ以上のスタンバイデータベースを指定するには、Db2 for LUWデータベース取り込み接続プロパティの[詳細接続プロパティ] フィールドのAlternateServers パラメータを次の例のように入力します。AlternateServers=(server2:50000;DatabaseName=TEST2,server3:50000;DatabaseName=TEST3)
• 複数のエージェントが含まれるSecure Agentグループを使用していて、アクティブなエージェントが予期せずダウンした場合、データベース取り込みとレプリケーション ジョブは、Secure Agentグループ内の別の使用可能なエージェントに自動的に切り替えることができます。自動スイッチオーバーは、15分のハートビート間隔が経過した後に行われます。Db2 for LUWソースを持つデータベース取り込みとレプリケーション ジョブの場合、自動スイッチオーバーに次の制限があります。- ジョブで永続ストレージを有効にすることはできません。- Kafkaターゲットを持つジョブでは、チェックポイント情報をKafkaヘッダーに格納する必要があります。2025年7月リリースより前に存在していたジョブの場合、チェックポイント情報はSecure Agentのチェックポイントファイルに格納されるため、自動スイッチオーバーを実行できません。- クエリベースのCDCメソッドを使用するジョブには、Amazon Redshift、Databricks、Google BigQuery、Microsoft Azure Synapse Analytics、Oracle、PostgreSQL、Snowflake、またはSQL Serverターゲットが必要です。• クエリベースのCDCを使用するデータベース取り込みとレプリケーション の初期ロードジョブ、増分ロードジョブ、または組み合わせロードジョブでは、LOBデータ型を持つカラムからMicrosoft Azure Data Lake Storage Gen 2、Microsoft Azure Synapse Analytics、Microsoft Fabric OneLake、またはSnowflakeターゲットにデータをレプリケートすることができます。サポートされているソースデータ型からターゲットデータ型へのデフォルトのマッピングについては、デフォルトのデータ型マッピング を参照してください。• ログベースのCDCの場合、次の考慮事項が適用されます。- タスクは、AIX、Linux、またはWindows上のDb2 for LUWバージョン11.xまたは12.xのソースを使用し、Amazon Redshift、Databricks、Kafka、Oracle、PostgreSQL、Azure SQL Server、またはSnowflakeターゲットと組み合わせる必要があります。- タスクはCDCステージンググループに含めることができます。- ソーステーブルは、AWSシステム上、またはDb2 pureScale環境に置くことはできません。- LOB、XML、およびユーザー定義のDISTINCTおよびSTRUCTデータ型はサポートされていません。• ログベースのCDCはIBM db2ReadLog APIを使用してログを読み取ります。このAPIはCDCのスタンバイデータベースでは使用できません。