MySQL/MariaDB/Perconaチェック詳細
移行/同期の詳細オブジェクトを選択する際、DTSは以下の内容を検証します。エラー項目は必ず処理しないとタスクを続行できません。警告項目はユーザーがビジネスリスクを評価した上で無視してタスクを続行できます。
エラー項目:ターゲットインスタンスのパラメータlog_bin_trust_function_creatorsはONに設定する必要があります。
警告項目:
移行/同期の高度なオブジェクトはデータベース・テーブルの名前変更機能と競合します。高度なオブジェクトを選択した後は、データベース・テーブルの名前変更をキャンセルする必要があります。
高度なオブジェクトの関数、ストアドプロシージャを選択する際、DTSはソースデータベース内のDEFINERに対応するuser1([DEFINER = user1])と実行タスクアカウントuser2が一致するかどうかをチェックします。
一致する場合、移行/同期後は変更を行いません。
一致しない場合、移行/同期後にターゲットデータベース内のuser1のSQL SECURITY属性を変更し、DEFINERからINVOKERに変換します([INVOKER = user1])。同時に、ターゲットデータベース内のDEFINERを実行タスクアカウントのuser2に設定します([DEFINER = 実行タスクアカウントuser2])。
高度なオブジェクトの移行/同期時間:
ストアドプロシージャと関数は、「ソースデータベースエクスポート」段階で移行/同期されます。
トリガーとイベントは、増分タスクがない場合はタスク終了時に移行/同期されます。増分タスクがある場合は、ユーザーが完了操作をクリックした後に移行/同期が開始されます。そのため、完了をクリックした後、タスクの移行時間は長くなります。
修復方法
log_bin_trust_function_creatorsパラメータを変更します。
log_bin_trust_function_creatorsは、ユーザーがストアドファンクションをbinlogログに書き込むことを信頼するかどうかを制御するために使用されます。OFFに設定すると、SUPER権限を持つユーザーのみが作成したストアドファンクション操作をbinlogログに書き込むことができます。ONに設定すると、SUPER権限を持たないユーザーも作成したストアドファンクション操作をbinlogログに書き込むことができます。
エラーが発生した場合は、以下の手順を参照して変更してください。
1. ソースデータベースにログインします。
2. 以下の内容を参照して、log_bin_trust_function_creatorsパラメータを変更してください。
set global log_bin_trust_function_creators = ON;
3. 以下のコマンドでパラメータの変更が有効になっているかどうかを確認します。
show variables like '%log_bin_trust_function_creators%';
システムに表示される結果は以下の通りです:
mysql> show variables like '%log_bin_trust_function_creators%';
+---------------------------------+-------+
| Variable_name | Value |
+---------------------------------+-------+
| log_bin_trust_function_creators | ON |
4. 検証タスクを再実行します。