リアルタイム同期リンクが開始される前に、簡単な事前チェックが実行されます。このトピックでは、事前チェックプロセスと事前チェックエラーの解決策について説明します。
事前チェック項目
ソースデータベース接続
説明
DTS サーバーとソース RDS インスタンス間の接続をチェックします。DTS は、JDBC プロトコルを使用してソース RDS インスタンスへの接続を作成します。接続が失敗すると、チェックは失敗します。
失敗の原因
- Data Transmission Service (DTS) は、ソースインスタンスが配置されているリージョンの RDS インスタンスのリアルタイム同期をサポートしていません。
- ソースインスタンスのアカウントまたはパスワードが正しくありません。
解決策
チケットを起票し、サポートセンターへお問い合わせください。
ターゲットデータベース接続
説明
DTS サーバーとターゲット RDS インスタンス間の接続をチェックします。DTS は、JDBC プロトコルを使用してターゲット RDS インスタンスへの接続を作成します。接続が失敗すると、チェックは失敗します。
失敗の原因
- DTS は、ターゲットインスタンスが配置されているリージョンの RDS インスタンスのリアルタイム同期をサポートしていません。
- ターゲットインスタンスのアカウントまたはパスワードが正しくありません。
解決策
チケットを起票し、サポートセンターへお問い合わせください。
ソースデータベースバージョン
説明
次の項目をチェックします。
- ソース RDS インスタンスのバージョンが、リアルタイム同期機能でサポートされているかどうか。
- ターゲット RDS インスタンスのバージョンが、ソース RDS インスタンスのバージョン以上かどうか。
失敗の原因
- ソース RDS インスタンスのバージョンは、DTS でサポートされているバージョンよりも低いバージョンです。リアルタイム同期は、MySQL 5.1、5.5、5.6 のみをサポートしています。
- ターゲット RDS インスタンスのバージョンは、ソース RDS インスタンスのバージョンよりも低いバージョンです。
解決策
- ソース RDS のバージョンが低い場合、RDS コンソールに移動し、ソース RDS をバージョン 5.6 にアップグレードしてから、同期リンクを再作成します。
- ターゲット RDS インスタンスのバージョンがソース RDS インスタンスより低い場合、RDS コンソールに移動し、ターゲット RDS インスタンスをバージョン 5.6 にアップグレードしてから、同期リンクを再作成します。
データベースの存在
説明
同期するデータベースがターゲットデータベースに既に存在するかどうかをチェックします。同期するデータベースがターゲットデータベースに存在しない場合、自動的にデータベースが作成されます。ただし、次の場合、データベースの自動作成は失敗し、エラーが報告されます。
- データベース名に、小文字、数字、アンダースコア (_)、ハイフン (-) 以外の文字が含まれています。
- データベースの文字セットが UTF8、GBK、Latin1、UTF8MB4 以外です。
ターゲットデータベースの移行アカウントには、同期するデータベースに対する読み取り権限と書き込み権限がありません。
ソースデータベースが RDS インスタンスの場合、チェックは失敗しません。
ソースデータベースの権限
説明
ソースデータベースの同期アカウントに必要な権限が設定されているかどうかをチェックします。同期アカウントに必要な権限がない場合、このチェックは失敗します。ソースデータベースが RDS インスタンスの場合、チェックは失敗しません。
ターゲットデータベースの権限
説明
ターゲットデータベースの同期アカウントに必要な権限が設定されているかどうかをチェックします。同期アカウントに必要な権限がない場合、チェック項目は失敗します。
失敗の原因
- DTS は、ターゲット RDS インスタンスにアカウントを作成できません。
- DTS は、ターゲット RDS インスタンスの同期アカウントに対する読み取り権限と書き込み権限を付与できません。
解決策
チケットを起票し、サポートセンターへお問い合わせください。
同名のオブジェクト
説明
このチェックは、同期の初期化に同期リンクを選択した場合にのみ適用されます。同期するオブジェクトと同じ名前のオブジェクトが、ターゲット RDS インスタンスに存在するかどうかをチェックします。
失敗の原因
同期するオブジェクトと同じ名前のオブジェクトがターゲット RDS インスタンスに存在する場合、チェックは失敗します。
解決策
- 同期するオブジェクトと同じ名前のオブジェクトをターゲットデータベースから削除します。
- 次に、同期リンクを再作成します。同期の初期化には、オブジェクト構造初期化と、既存データ初期化という 2 つのオプションがあります。
ソースデータベース server_id
説明
ソースデータベース server_id に 2 以上の整数が設定されているかどうかをチェックします。ソースデータベースが RDS インスタンスの場合、チェックは失敗しません。
ソースデータベース binlog
説明
ソースデータベースで binlog が有効になっているかどうかをチェックします。チェックに失敗した場合、ソースデータベースで binlog が有効になっていません。ソースデータベースが RDS インスタンスの場合、チェックは失敗しません。
ソースデータベース binlog 形式
説明
ソースデータベースの binlog モードが ROW かどうかをチェックします。このチェック項目が失敗した場合、ソースデータベースの binlog 形式は ROW 以外です。ソースデータベースが RDS インスタンスの場合、チェックは失敗しません。
制約の整合性
説明
同期オブジェクトリスト内の外部キー依存関係を持つすべての親テーブルと子テーブルが同期されているかどうかをチェックします。これにより、外部キー制約の整合性が保護されます。
失敗の原因
一部の同期オブジェクトは、外部キー依存関係を持つ子テーブルですが、これらの親テーブルは同期されていません。これにより、外部キー制約の整合性が損なわれます。
解決策
この問題には 3 つの解決策があります。
- 同期タスクを再作成し、制約の整合性チェックで失敗した子テーブルを同期しないようにします。
- 同期タスクを再作成し、制約の整合性チェックで失敗した子テーブルの親テーブルを同期リストに追加します。
- ソースデータベースを変更し、制約の整合性チェックで失敗した子テーブルの外部キー依存関係を削除します。同期タスクを再作成します。
ストレージエンジンのチェック
説明
リアルタイム同期機能でサポートされていないストレージエンジン (FEDERATED、MRG_MyISAM、TokuDB など) が同期オブジェクトに存在するかどうかをチェックします。
失敗の原因
同期オブジェクトに FEDERATED、MRG_MyISAM、または TokuDB テーブルが含まれている場合、チェックは失敗します。
解決策
サポートされていないストレージエンジンを InnoDB に変更し、同期タスクを再作成する必要があります。
文字セット
説明
リアルタイム同期でサポートされていない文字セット (UCS2 など) が、同期オブジェクトに存在するかどうかをチェックします。
失敗の原因
同期オブジェクトの文字セットがサポートされていない場合、チェックは失敗します。
解決策
サポートされていない文字セットを UTF8、GBK、または Latin1 に変更してから、同期タスクを再作成する必要があります。
複雑なトポロジーの存在
説明
サポートされていない同期アーキテクチャが、同期タスクのソースおよびターゲット RDS インスタンスに存在するかどうかをチェックします。リアルタイム同期は、1 対 1、多対 1、1 対多、カスケード、および双方向の同期をサポートしています。
失敗の原因
- 同期タスクは、同期タスクのターゲットインスタンスでもあるソース RDS インスタンスに既に存在します。
- 同期タスクは、ターゲット RDS インスタンスに既に存在します。
- ソース RDS インスタンスとターゲット RDS インスタンス間で移行タスクが実行中で、 移行タスクで移行するオブジェクトが、作成する同期タスクのオブジェクトと重複しています。
解決策
- 必要なソース RDS インスタンスとターゲット RDS インスタンスが同期タスクに含まれている場合、既存の同期リンクを直接変更し、同期オブジェクトを選択してリンクに追加すると、新しいオブジェクトを同期できます。
- 同期リンクが既存の移行タスクと競合する場合、同期タスクを再作成するには、移行タスクが完了するまで待つ必要があります。
MySQL の古いパスワード形式
説明
ソースインスタンスで使用されるパスワードが、期限切れのパスワードかどうかをチェックします。ソースデータベースが RDS インスタンスの場合、チェックは失敗しません。