5.4. Debezium コネクターを実行するための MySQL の設定
Debezium をインストールおよび実行する前に、一部の MySQL 設定タスクが必要になります。
詳細は以下を参照してください。
5.4.1. Debezium コネクターの MySQL ユーザーの作成 リンクのコピーリンクがクリップボードにコピーされました!
Debezium MySQL コネクターには MySQL ユーザーアカウントが必要です。この MySQL ユーザーは、Debezium MySQL コネクターが変更をキャプチャーするすべてのデータベースに対して適切なパーミッションを持っている必要があります。
前提条件
- MySQL サーバー。
- SQL コマンドの基本知識。
手順
MySQL ユーザーを作成します。
mysql> CREATE USER 'user'@'localhost' IDENTIFIED BY 'password';
mysql> CREATE USER 'user'@'localhost' IDENTIFIED BY 'password';
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 必要なパーミッションをユーザーに付与します。
mysql> GRANT SELECT, RELOAD, SHOW DATABASES, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'user' IDENTIFIED BY 'password';
mysql> GRANT SELECT, RELOAD, SHOW DATABASES, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'user' IDENTIFIED BY 'password';
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の表はパーミッションについて説明しています。
重要グローバル読み取りロックを許可しない Amazon RDS や Amazon Aurora などのホストオプションを使用している場合、テーブルレベルのロックを使用して 整合性スナップショット を作成します。この場合、作成するユーザーに
LOCK TABLES
パーミッションも付与する必要があります。詳細は、snapshots を参照してください。ユーザーのパーミッションの最終処理を行います。
mysql> FLUSH PRIVILEGES;
mysql> FLUSH PRIVILEGES;
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
キーワード | 説明 |
---|---|
| コネクターがデータベースのテーブルから行を選択できるようにします。これは、スナップショットを実行する場合にのみ使用されます。 |
|
内部キャッシュのクリアまたはリロード、テーブルのフラッシュ、またはロックの取得を行う |
|
|
| コネクターが MySQL サーバーの binlog に接続し、読み取りできるようにします。 |
| コネクターが以下のステートメントを使用できるようにします。
これは必ずコネクターに必要です。 |
| パーミッションが適用されるデータベースを指定します。 |
| パーミッションを付与するユーザーを指定します。 |
| ユーザーの MySQL パスワードを指定します。 |
5.4.2. Debezium の MySQL binlog の有効化 リンクのコピーリンクがクリップボードにコピーされました!
MySQL レプリケーションのバイナリーロギングを有効にする必要があります。バイナリーログは、変更を伝播するためにレプリケーションツールのトランザクション更新を記録します。
前提条件
- MySQL サーバー。
- 適切な MySQL ユーザーの権限。
手順
log-bin
オプションがすでにオンになっているかどうかを確認します。mysql> SELECT variable_value as "BINARY LOGGING STATUS (log-bin) ::" FROM information_schema.global_variables WHERE variable_name='log_bin';
mysql> SELECT variable_value as "BINARY LOGGING STATUS (log-bin) ::" FROM information_schema.global_variables WHERE variable_name='log_bin';
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OFF
の場合は、以下に説明するプロパティーで MySQL サーバー設定ファイルを設定します。server-id = 223344 log_bin = mysql-bin binlog_format = ROW binlog_row_image = FULL expire_logs_days = 10
server-id = 223344 log_bin = mysql-bin binlog_format = ROW binlog_row_image = FULL expire_logs_days = 10
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 再度 binlog の状態をチェックして、変更を確認します。
mysql> SELECT variable_value as "BINARY LOGGING STATUS (log-bin) ::" FROM information_schema.global_variables WHERE variable_name='log_bin';
mysql> SELECT variable_value as "BINARY LOGGING STATUS (log-bin) ::" FROM information_schema.global_variables WHERE variable_name='log_bin';
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
プロパティー | 説明 |
---|---|
|
|
|
|
|
|
|
|
|
これは、binlog ファイルが自動的に削除される日数です。デフォルトは |
5.4.3. Debezium の MySQL グローバルトランザクション識別子の有効化 リンクのコピーリンクがクリップボードにコピーされました!
グローバルトランザクション識別子 (GTID) は、クラスター内のサーバーで発生するトランザクションを一意に識別します。Debezium MySQL コネクターには必要ありませんが、GTID を使用すると、レプリケーションを単純化し、プライマリーサーバーとレプリカサーバーの一貫性が保たれるかどうかを簡単に確認することができます。
GTID は MySQL 5.6.5 以降で利用できます。詳細は MySQL のドキュメント を参照してください。
前提条件
- MySQL サーバー。
- SQL コマンドの基本知識。
- MySQL 設定ファイルへのアクセス。
手順
gtid_mode
を有効にします。mysql> gtid_mode=ON
mysql> gtid_mode=ON
Copy to Clipboard Copied! Toggle word wrap Toggle overflow enforce_gtid_consistency
を有効にします。mysql> enforce_gtid_consistency=ON
mysql> enforce_gtid_consistency=ON
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 変更を確認します。
mysql> show global variables like '%GTID%';
mysql> show global variables like '%GTID%';
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
結果
オプション | 説明 |
---|---|
| MySQL サーバーの GTID モードが有効かどうかを指定するブール値。
|
| トランザクションに安全な方法でログに記録できるステートメントの実行を許可することにより、サーバーが GTID の整合性を強制するかどうかを指定するブール値。GTID を使用する場合に必須です。
|
5.4.4. Debezium の MySQL セッションタイムアウトの設定 リンクのコピーリンクがクリップボードにコピーされました!
大規模なデータベースに対して最初の整合性スナップショットが作成されると、テーブルの読み込み時に、確立された接続がタイムアウトする可能性があります。MySQL 設定ファイルで interactive_timeout
と wait_timeout
を設定すると、この動作の発生を防ぐことができます。
前提条件
- MySQL サーバー。
- SQL コマンドの基本知識。
- MySQL 設定ファイルへのアクセス。
手順
interactive_timeout
を設定します。mysql> interactive_timeout=<duration-in-seconds>
mysql> interactive_timeout=<duration-in-seconds>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow wait_timeout
を設定します。mysql> wait_timeout=<duration-in-seconds>
mysql> wait_timeout=<duration-in-seconds>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
オプション | 説明 |
---|---|
| サーバーが対話的な接続を閉じる前にアクティビティーの発生を待つ時間 (秒単位)。詳細は MySQL のドキュメント を参照してください。 |
| サーバーが非対話的な接続を閉じる前にアクティビティーの発生を待つ時間 (秒単位)。詳細は MySQL のドキュメント を参照してください。 |
5.4.5. Debezium MySQL コネクターのクエリーログイベントの有効化 リンクのコピーリンクがクリップボードにコピーされました!
各 binlog イベントの元の SQL
ステートメントを確認したい場合があります。MySQL 設定ファイルで binlog_rows_query_log_events
オプションを有効にすると、これを行うことができます。
このオプションは、MySQL 5.6 以降で利用できます。
前提条件
- MySQL サーバー。
- SQL コマンドの基本知識。
- MySQL 設定ファイルへのアクセス。
手順
binlog_rows_query_log_events
を有効にします。mysql> binlog_rows_query_log_events=ON
mysql> binlog_rows_query_log_events=ON
Copy to Clipboard Copied! Toggle word wrap Toggle overflow binlog_rows_query_log_events
は、binlog エントリーにSQL
ステートメントが含まれるようにするためのサポートを有効または無効にする値に設定されます。-
ON
= 有効化 -
OFF
= 無効化
-