+++
title = "ソースデータベースの設定"
weight = 25
+++
### Change Data Capture (CDC) を使用した DMS レプリケーションタスクの実行
データベース移行のダウンタイムを最小限に抑えるために、ソースデータベースから ターゲットデータベースへの継続的なレプリケーション(Change Data Capture, CDC)を利用します。AWS Database Migration Service (DMS) における CDC とネイティブ CDC のサポートについては、こちらの記事を参照してください。
#### ソースデータベースでのバイナリログ有効化
MySQL データベース から **AWS DMS** で継続的なレプリケーションを行う場合は、バイナリログを有効化し、ソースデータベースの設定変更を行う必要があります。
1. ソースデータベースサーバーにログインします。
**自身の環境**でハンズオンを実施している場合、接続に必要な情報は CloudFormation スタック(**ApplicationMigrationWorkshop**)の**出力**セクションに表示されています。

**AWS 主催のイベント**の場合、Event Engine の Team Dashboard に表示されている **Database Server IP**、**Database Server Username** および **Database SSH Key** を使用してください。

2. データベースサーバーの SSH キー(.pem)をダウンロードして、ローカルに保存します(例: dbserver.pem)。
Microsoft Windows をお使いの場合は、PuttyGen を使って SSH キー(.pem)を .ppk に変換してから、 Putty を使って接続してください(詳細はこちらをご確認ください)。
3. データベースサーバーに、SSH ターミナルを使って接続します。
- Microsoft Windows をお使いの場合はこちら
- Mac OS をお使いの場合はこちら
2. **wordpress-user** データベースユーザーに追加の権限を付与します。
データベースサーバーで、以下のコマンドを実行します:
```
sudo mysql -u root -pAWSRocksSince2006
GRANT REPLICATION CLIENT ON *.* to 'wordpress-user';
GRANT REPLICATION SLAVE ON *.* to 'wordpress-user';
GRANT SUPER ON *.* to 'wordpress-user';
exit
```
3. **バイナリログ**用のディレクトリを作成します。
データベースサーバーで、以下のコマンドを実行します:
```
sudo su -
mkdir /var/lib/mysql/binlogs
chown -R mysql:mysql /var/lib/mysql/binlogs
exit
```
バイナリログの詳細については、MySQL のドキュメントを参照してください。
4. **/etc/mysql/my.cnf** ファイルを作成し、編集します。
以下のコマンドを実行し、設定ファイルを vi エディタで開きます:
```
sudo su -
cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/my.cnf
chown -R mysql:mysql /etc/mysql/my.cnf
vi /etc/mysql/my.cnf
```
**[mysqld]** セクションに以下の設定を追記、ファイルを保存し vi エディタを終了します:
```
server_id=1
log-bin=/var/lib/mysql/binlogs/log
binlog_format=ROW
expire_logs_days=1
binlog_checksum=NONE
binlog_row_image=FULL
log_slave_updates=TRUE
performance_schema=ON
```
5. 変更した設定を適用するため、**MySQL** サービスを再起動します。
以下のコマンドを実行し、変更を適用します:
```
sudo service mysql restart
```
{{% notice warning %}}
変更を適用するには、mysql サービスの再起動が必要です。これにより数秒間、ソースデータベースへのアクセスが中断されます。
{{% /notice %}}
6. 変更点のテストを実施します。
以下のコマンドを実行して、**/etc/mysql/my.cnf** の更新内容が有効になったことを確認します:
```
sudo mysql -u root -pAWSRocksSince2006
select variable_value as "BINARY LOGGING STATUS (log-bin) :: "
from performance_schema.global_variables where variable_name='log_bin';
select variable_value as "BINARY LOG FORMAT (binlog_format) :: "
from performance_schema.global_variables where variable_name='binlog_format';
exit
```
以下のスクリーンショットのように、**BINARY LOGGING STATUS** の値が **ON** に設定されていることを確認してください。

上記の確認で問題がなければ、SSH での接続を終了してください。問題が発生した場合は /var/log/mysqld.log を参照し、エラーが発生していないか確認してください。