CDCデータ転送 - 転送元 - MySQL
- 印刷
- PDF
CDCデータ転送 - 転送元 - MySQL
- 印刷
- PDF
記事の要約
この要約は役に立ちましたか?
ご意見ありがとうございます
本ページでは、CDCデータ転送における転送元 - MySQLについて説明します。
接続に関する設定については、MySQL接続情報を参照ください。
対応バージョン
- MySQL 8.x(推奨)
- MySQL 5.x(サポート予定・未検証)
利用上の注意・制約
ビューの取得には対応していません。
事前準備
必須パラメーター設定
MySQLの設定ファイル (my.cnf
) のパラメーターを変更する必要があります。
各パラメーターの詳細については、MySQL 8.0 リファレンスマニュアルを参照ください。
なお、上記URLのバージョン部分をお使いのMySQLバージョンに差し替えた上でご確認ください。
設定ファイルの変更が反映されない場合は
設定ファイルの変更が反映されない場合は、データベースを再起動してください。
パラメーター | 推奨値 | 補足 |
---|---|---|
server_id | (任意の一意な整数) | MySQL のレプリケーション機能(およびCDC)に必要な識別子です。SHOW VARIABLES LIKE 'server_id' |
binlog_format | ROW | 本パラメーターには、必ずROW を指定してください。 |
binlog_row_image | FULL | FULL の指定を推奨します。 |
binlog_expire_logs_seconds | 864000 | MySQL 8系の場合、このパラメーターを指定してください。 10日( 864000 )以上に設定することを推奨します。 |
expire_logs_days | 10 | MySQL 5系の場合、このパラメーターを指定してください。 10日以上に設定することを推奨します。 |
log_bin | mysql-binlog | お好きな文字列を指定してください。log_bin はバイナリログを有効にするBooleanの設定ですが、プレフィックスを指定することで、出力されるファイル名を制御できます。 |
log_slave_updates | 1 | 1 を指定してください。 |
以下、MySQL 8系の場合の設定ファイルの例となります。
[mysqld]
server_id = 12345
binlog_format=ROW
binlog_row_image=FULL
binlog_expire_logs_seconds=864000
log_bin=mysql-binlog
log_slave_updates=1
クラウドサービス特有の設定
Amazon RDS for MySQLの場合
- 自動バックアップを有効にします。
- 詳しくは、AWS公式ドキュメント - 自動バックアップの有効化を参照ください。
- MySQL 5系の場合、
expire_logs_days
はプロシージャを使って設定する必要があります。CALL mysql.rds_set_configuration('expire_logs_days', 10);
- 最大で
35
(日)まで指定できます。 - 詳しくは、AWS公式ドキュメント - MySQL 互換データベースの AWS DMSのソースとしての使用を参照ください。
- 最大で
Cloud SQL for MySQLの場合
- PITR (
point-in-time recovery
) を有効にします。- 詳しくは、Google Cloud公式ドキュメントを参照ください。
- なお、バイナリログの保持期間は、次のうち小さい方が適用されます。
transactionLogRetentionDays
(PITR保持期間、7日間)binlog_expire_logs_seconds
またはexpire_logs_days
接続ユーザーの権限
MySQL接続情報に利用するユーザーに対して、以下の権限を付与する必要があります。
SELECT
RELOAD
SHOW DATABASES
REPLICATION CLIENT
REPLICATION SLAVE
MySQL側で以下のクエリを実行してください。
GRANT SELECT ON `<database>`.* TO '<username>'@'%';
GRANT RELOAD, SHOW DATABASES ON *.* TO '<username>'@'%';
GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO '<username>'@'%';
この記事は役に立ちましたか?