- •MySQLソースを含むデータベース取り込みとレプリケーションタスクをデプロイして実行するには、ソース接続で、必要な特権を持つデータベースユーザーを指定する必要があります。次のSQL文を使用して、これらのユーザーに特権を付与します。
GRANT SELECT ON database_name.* TO 'user_name'@'%';
GRANT SELECT ON TABLE database_name.* TO 'user_name'@'%';
増分ロードジョブの場合、次の追加の特権をユーザーに付与します。
/* To fetch table and column details from system tables */
GRANT SELECT ON sys.* TO 'user_name'@'%';
/* To allow the user to monitor binary log information such as file name, position, and GTID */
GRANT REPLICATION CLIENT ON *.* TO 'user_name;
/* Required for a multi-node MySQL cluster with master and slave configuration */
GRANT REPLICATION SLAVE ON *.* TO 'user_name;
- •増分ロードジョブの場合、my.cnfファイルの[mysqld]セクションでdefault_storage_engine変数をInnoDBに設定します。次に、MySQLサーバーを再起動します。default_storage_engine設定を確認するには、次の文を使用します。
SHOW VARIABLES LIKE '%engine%';
出力で、default_storage_engine変数がInnoDBに設定されていることを確認します。
- •データベース取り込みとレプリケーションは、ソースで変更イベントをキャプチャするために、MySQLによって生成されたバイナリログファイルを使用します。binlogは、MySQLサーバーインスタンスに対して行われたデータ変更に関する情報を含む一連のログファイルです。
バイナリログを有効にするには、--log-binオプションを使用してサーバーを起動するか、またはmy.cnfファイルでキーと値のlog-bin="[HostName]-bin"設定を使用します。[HostName]は使用するホストの名前に置き換えてください。次に、MySQLサーバーを再起動します。バイナリログが有効になっていることを確認するには、次の文を使用します。
SHOW VARIABLES LIKE 'log_bin';
出力で、log_bin変数がONに設定されていることを確認します。
- •増分ロードジョブの場合、次の文を使用して行ベースのログを有効にします。
SET GLOBAL binlog_format = 'ROW';
行ベースのログが有効になっていることを確認するには、次の文を使用します。
SHOW VARIABLES LIKE 'binlog_format';
出力で、binlog_formatシステム変数がROWに設定されていることを確認します。
- •データベース取り込みとレプリケーションの増分ロードジョブと組み合わせロードジョブで更新と削除を処理できるようにするには、バイナリロギング用に次のシステム変数を設定します。
binlog_row_image=full
この設定により、操作前イメージと操作後イメージの両方が、すべてのカラムのバイナリログに記録されます。これは、データベース取り込みとレプリケーションでサポートしているすべてのMySQLソースタイプとバージョンに適用できます。
この設定を確認するには、次の文を使用します。
SHOW VARIABLES LIKE 'binlog_row_image';
- •データベース取り込みとレプリケーションは、次のいずれかの方法でbinlogファイルを読み取ることができます。
- - グローバルトランザクションID(GTID) - MySQL GTIDモードを有効にすると、MySQLのすべてのトランザクションに、トランザクションを一意に識別するためのGTIDが割り当てられます。マルチクラスタ環境ではGTIDモードを使用してください。
- - binlogファイルの名前と位置 - MySQL のすべてのトランザクションは匿名として保存され、binlogファイルの名前と位置を使用して取得されます。MySQL GTIDモードが有効になっている場合、またはマルチクラスタ環境を使用している場合は、この方法を使用しないでください。マルチクラスタ環境では、フェイルオーバーが発生すると、binlogファイルの位置が変化し、データの一貫性が失われる可能性があります。
GTIDモードを有効にするには、各MySQLサーバーで次の文を使用します。
SET @@GLOBAL.ENFORCE_GTID_CONSISTENCY = WARN;
SET @@GLOBAL.ENFORCE_GTID_CONSISTENCY = ON;
SET @@GLOBAL.GTID_MODE = OFF_PERMISSIVE;
SET @@GLOBAL.GTID_MODE = ON_PERMISSIVE;
各サーバーで、ステータス変数'Ongoing_anonymous_transaction_count'が 0(ゼロ)になるまで待ちます。次の文を使用して、ステータス変数の値を確認できます。
SHOW STATUS LIKE 'Ongoing_anonymous_transaction_count';
カウントが0の場合、次の文を使用してGTIDモードを有効にします。
SET @@GLOBAL.GTID_MODE = ON;
- • 次のロードタイプとソースエディションの組み合わせを使用する場合、MySQLソースに接続するには、MySQLドライバファイルをダウンロードして特定のインストールサブディレクトリにコピーする必要があります。
- - MySQL Community EditionまたはMySQL Enterprise Editionソースを持つ増分ロードジョブ
- - MySQL Community Editionソースを持つ初期ロードジョブ
- - Amazon Relational Database Service (RDS) for MySQLソースを持つ初期ロードジョブ
注: MySQL Enterprise Editionソースを持つ初期ロードジョブのみを実行する場合は、ドライバをダウンロードする必要はありません。
MySQL JDBCドライバファイル、mysql-connector-java-<version>.jarをMySQL Community Downloads Webサイトからダウンロードし、次のディレクトリにコピーします。
<Secure_Agent_installation_directory>/ext/connectors/thirdparty/com.mysql/
接続プロパティを定義した後でAdministratorで接続をテストできるようにする場合は、Secure Agentのシステム構成の詳細でData Integration ServerサービスのMySQL_JDBC_DRIVER_JARNAMEパラメータも設定する必要があります。テスト後、パラメータを削除できます。このパラメータは、接続を使用してデータベース取り込みとレプリケーションタスクを作成したり、関連するジョブを実行する場合には使用されません。