MySQLデータベース間の増分データ移行を開始する前に、data Transmission Service (DTS) は事前チェック中にソースデータベースのバイナリログ設定をチェックします。 このトピックでは、DTSのチェック内容と、チェック項目が事前チェックに失敗した場合の問題の修正方法について説明します。
ソースデータベースに対してバイナリログが有効になっているかどうか
この項目は、ソースデータベースに対してバイナリログが有効になっているかどうかを確認します。 この項目が事前チェックに失敗した場合は、次の手順を実行して問題を修正します。
解決策:
ソースの自己管理型MySQLデータベースがデプロイされているサーバーにログオンします。
vim
コマンドを実行して、my.cn f設定ファイルのパラメーターを変更します。説明my.cn f設定ファイルのデフォルトパスは /etc/my.cn fです。 パスは実際の状況に左右されます。
log_bin=mysql_bin binlog_format=row server_id=2 # Set the server ID to an integer greater than 1. This is an example only for reference. binlog_row_image=full # This parameter is required if the version of the self-managed MySQL database is 5.6 or later.
次のコマンドを実行してMySQLを再起動します。
/etc/init.d/mysqld restart
説明他のコマンドを実行したり、他の方法を使用してMySQLを再起動することもできます。
ソースの自己管理型MySQLデータベースにログインし、次のSQL文を実行して、バイナリログ機能が有効になっていることを確認します。
show variables like '%log_bin%';
次の図に、返された結果の例を示します。
DTS事前チェックを再度実行します。
バイナリログ形式
この項目は、ソースデータベースのバイナリログ形式がROW
であるかどうかを確認します。 この項目が事前チェックに失敗した場合は、次の手順を実行して問題を修正します。
解決策:
ソースの自己管理型MySQLデータベースがデプロイされているサーバーにログオンします。
my.cn f設定ファイルのパラメーターを変更します。 binlog_formatパラメーターを
ROW
に設定します。説明my.cn f設定ファイルのデフォルトパスは /etc/my.cn fです。 パスは実際の状況に左右されます。
log_bin=mysql_bin binlog_format=row # Set the binary logging format to ROW. server_id=2 # Set the server ID to an integer greater than 1. This is an example only for reference. binlog_row_image=full # This parameter is required if the version of the self-managed MySQL database is 5.6 or later.
次のコマンドを実行してMySQLを再起動します。
/etc/init.d/mysqld restart
説明他のコマンドを実行したり、他の方法を使用してMySQLを再起動することもできます。
ソースの自己管理型MySQLデータベースにログインし、次のSQL文を実行して、バイナリログ形式が
ROW
に設定されていることを確認します。show variables like "%binlog_format%";
次の図に、返された結果の例を示します。
DTS事前チェックを再度実行します。
ソースデータベースのバイナリログファイル
この項目は、ソースデータベースのバイナリログファイルが完成しているかどうかを確認します。 この項目が事前チェックに失敗した場合、ソースデータベースのバイナリログファイルは不完全です。 この場合、次の手順を実行して問題を修正します。
解決策:
[事前チェック] ダイアログボックスで、[ソースデータベースのBinlogファイル] チェック項目の右側にある [情報] アイコンをクリックします。
[詳細] ダイアログボックスで、[失敗の原因] パラメーターの値に基づいて、不足しているバイナリログファイルを確認します。
不足している各バイナリログファイルの重要性を判断し、適切な処理方法を選択します。
バイナリログファイルが重要でない場合は、無視できます。 ソースの自己管理型MySQLデータベースにログインし、次のSQL文を実行して、エラーバイナリログファイルと以前のすべてのバイナリログファイルをクリアします。
PURGE BINARY LOGS TO '[$Binlog_Filename]';
説明[$Binlog_Filename] は、エラーバイナリログファイルに続く最初のバイナリログファイルの名前を指定します。 たとえば、不足しているバイナリログファイルがmysql_bin.000003の場合は、[$Binlog_Filename] をmysql_bin.000004に置き換えます。
バイナリログファイルが重要で無視できない場合は、自己管理型MySQLデータベースの管理者に連絡してバイナリログファイルを復元してください。
DTS事前チェックを再度実行します。
ソースデータベースのbinlog_row_imageパラメーターがFULLに設定されているかどうか
このチェック項目は、MySQL 5.6以降のデータベースにのみ適用されます。 ソースデータベースのbinlog_row_image
パラメーターがFULL
に設定されているかどうかを確認します。 この項目が事前チェックに失敗した場合、ソースデータベースのバイナリログファイルには完全なイメージが記録されません。 この場合、次の手順を実行して問題を修正します。
解決策:
ソースの自己管理型MySQLデータベースがデプロイされているサーバーにログオンします。
my.cn f設定ファイルのパラメーターを変更します。 binlog_formatパラメーターを
FULL
に設定します。説明my.cn f設定ファイルのデフォルトパスは /etc/my.cn fです。 パスは実際の状況に左右されます。
log_bin=mysql_bin binlog_format=row server_id=2 # Set the server ID to an integer greater than 1. This is an example only for reference. binlog_row_image=full # This parameter is required if the version of the self-managed MySQL database is 5.6 or later.
次のコマンドを実行してMySQLを再起動します。
/etc/init.d/mysqld restart
説明他のコマンドを実行したり、他の方法を使用してMySQLを再起動することもできます。
ソースの自己管理型MySQLデータベースに再度ログインし、次のSQL文を実行して、binlog_row_imageパラメーターが
FULL
に設定されていることを確認します。show variables like "binlog_row_image";
DTS事前チェックを再度実行します。