DTS タスクのソースデータベースが自己管理 MySQL データベースである場合、タスクを構成する前にデータベースアカウントを作成し、バイナリログを構成する必要があります。このステップは、事前チェックに合格し、タスクが期待どおりに実行されるようにするために必要です。
シナリオと権限
シナリオ | 必要な権限 |
ソースデータベースは自己管理 MySQL データベースであり、増分データ移行を実行します。 |
|
データ同期タスクのソースデータベースは自己管理 MySQL データベースです。 |
|
変更追跡タスクのソースデータベースは自己管理 MySQL データベースです。 |
|
影響
この操作では、MySQL サービスを再起動する必要があります。サービスの中断を避けるため、この操作はオフピーク時に実行してください。
手順
自己管理 MySQL データベースにログインします。
自己管理 MySQL データベースにデータ移行またはデータ同期用のアカウントを作成します。
CREATE USER 'username'@'host' IDENTIFIED BY 'password';説明username: 作成するアカウント。
host: アカウントがデータベースにログインできるホスト。アカウントが任意のホストからログインできるようにするには、パーセント記号 (%) を使用します。
password: アカウントのパスワード。
たとえば、任意のホストからログインできるパスワード Dts123456 を持つ dtsmigration という名前のアカウントを作成するには、次のコマンドを実行します。
CREATE USER 'dtsmigration'@'%' IDENTIFIED BY 'Dts123456';アカウントに必要な権限を付与します。詳細については、「シナリオと権限」をご参照ください。
指定されたデータベースとテーブルに対するアカウント権限を付与します。
GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;データベースとテーブルを作成するアカウント権限を付与します。
GRANT CREATE ON *.* TO 'username'@'host' WITH GRANT OPTION;
説明privileges: SELECT、INSERT、UPDATE など、アカウントに付与する操作権限。すべての権限を付与するには、ALL を使用します。
databasename: データベース名。すべてのデータベースに対する権限を付与するには、アスタリスク (*) を使用します。
tablename: テーブル名。すべてのテーブルに対する権限を付与するには、アスタリスク (*) を使用します。
username: 権限を付するアカウント。
host: アカウントがログインできるホスト。アカウントが任意のホストからログインできるようにするには、パーセント記号 (%) を使用します。
WITH GRANT OPTION: GRANT コマンドを実行する権限をアカウントに付与します。このパラメーターはオプションです。
たとえば、次のコマンドを実行して、dtsmigration アカウントにすべてのデータベースとテーブルに対するすべての権限を付与し、アカウントが任意のホストからログインできるようにします。
GRANT ALL ON *.* TO 'dtsmigration'@'%';自己管理 MySQL データベースのバイナリログを有効にして構成します。
Linux コマンド
vimコマンドを使用して、my.cnf 構成ファイル内の次のパラメーターを変更します。log_bin=mysql_bin binlog_format=row # MySQL 8.0 より前のバージョンでは、expire_logs_days を使用してバイナリログの保持期間を設定します。デフォルト値は 0 で、バイナリログが期限切れにならないことを意味します。 # MySQL 8.0 以降では、binlog_expire_logs_seconds を使用してバイナリログの保持期間を設定します。デフォルト値は 2592000 秒 (30 日) です。 # バイナリログの保持期間を 7 日未満に設定した場合、次のパラメーターを使用して保持期間を 7 日以上に設定できます。 # expire_logs_days=7 # binlog_expire_logs_seconds=604800 # このパラメーターを 1 より大きい整数に設定します。 server_id=2 # 自己管理 MySQL データベースのバージョンが 5.6 より後の場合は、このパラメーターを設定する必要があります。 binlog_row_image=full # 自己管理データベースがデュアルプライマリクラスターにデプロイされている場合は、このパラメーターを有効にします。 # log_slave_updates=ONファイルを変更した後、MySQL プロセスを再起動します。
/etc/init.d/mysqld restart
Windows コマンド
my.ini 構成ファイル内の次のパラメーターを変更します。
log_bin=mysql_bin binlog_format=row # MySQL 8.0 より前のバージョンでは、expire_logs_days を使用してバイナリログの保持期間を設定します。デフォルト値は 0 で、バイナリログが期限切れにならないことを意味します。 # MySQL 8.0 以降では、binlog_expire_logs_seconds を使用してバイナリログの保持期間を設定します。デフォルト値は 2592000 秒 (30 日) です。 # バイナリログの保持期間を 7 日未満に設定した場合、次のパラメーターを使用して保持期間を 7 日以上に設定できます。 # expire_logs_days=7 # binlog_expire_logs_seconds=604800 # このパラメーターを 1 より大きい整数に設定します。 server_id=2 # 自己管理 MySQL データベースのバージョンが 5.6 より後の場合は、このパラメーターを設定する必要があります。 binlog_row_image=full # 自己管理データベースがデュアルプライマリクラスターにデプロイされている場合は、このパラメーターを有効にします。 # log_slave_updates=ONファイルを変更した後、MySQL サービスを再起動します。Windows サービスマネージャーでサービスを再起動するか、次のコマンドを実行します。
net stop mysql net start mysql