データ移行を成功させるために、data Transmission Service (DTS) は、事前チェック中にDTSサーバーがターゲットデータベースに接続できるかどうかをチェックします。 このトピックでは、チェックの失敗の原因と失敗のトラブルシューティング方法について説明します。
次の理由により、データ移行タスクが接続チェックに合格しない場合があります。
無効なデータベースアカウントまたはパスワード
トラブルシューティング
データ移行タスクのデータベースアカウントとパスワードがリモートホストから有効かどうかを確認できます。 この場合、リモートホストがターゲットデータベースに接続できることを確認してください。
ターゲットデータベースが存在するサーバーでチェックを実行することもできます。
解決策:
最初に DTSコンソールで、有効なデータベースアカウントとパスワードを入力し、再度事前チェックを実行します。
ターゲットデータベースがTairインスタンスまたはApsaraDB for Redisインスタンスの場合、選択したアカウントのタイプに基づいて正しい形式でパスワードを入力する必要があります。 アカウントには、データベースに対する読み取りおよび書き込み権限が必要です。
ユーザー名がインスタンスIDと同じデフォルトアカウントを使用する場合は、パスワードのみを入力します。
カスタムアカウントを使用する場合は、
<username >:< password>形式でパスワードを入力します。 たとえば、ApsaraDB For Redisインスタンスのアカウントのカスタムユーザー名がadminで、パスワードがRp829dlwaの場合、パスワードとしてadmin:Rp829dlwaを入力します。
移行先データベースのアクセス制限
トラブルシューティング
ターゲットデータベースが存在するサーバー上のデータ移行タスクに指定されたデータベースアカウントとパスワードを入力できます。 これにより、データベースアカウントとパスワードが有効かどうかを確認できます。 データベースアカウントとパスワードが有効な場合、移行先データベースはDTSサーバーのCIDRブロックからのアクセスを拒否することがあります。
ターゲットデータベースがMySQLデータベースの場合、MySQLクライアントを使用してデータベースに接続し、次のステートメントを実行できます。
SELECT HOST FROM mysql.user WHERE user='username',password='password';説明usernameとpasswordパラメーターを、データ移行タスクに指定されているデータベースアカウントとパスワードに置き換えます。
承認済みIPアドレスリストにDTSサーバーのCIDRブロックが含まれているかどうかを確認します。 詳細については、「DTSサーバーのCIDRブロックをオンプレミスデータベースのセキュリティ設定に追加する」をご参照ください。
ターゲットデータベースがSQL Serverデータベースの場合は、ターゲットデータベースが存在するサーバーに対してファイアウォールが構成されているかどうかを確認します。 移行先データベースのエンドポイントまたはトリガーがDTSサーバーのCIDRブロックからのアクセスを拒否するかどうかを確認することもできます。
ターゲットデータベースがOracleデータベースの場合、sqlnet.ora構成ファイルの
TCP.VALIDNODE_CHECKING項目がyesに設定されているかどうかを確認します。 項目がyesに設定されている場合、移行先データベースはDTSサーバーのCIDRブロックからのアクセスを拒否します。
解決策:
ターゲットデータベースがMySQLデータベースの場合、次のステートメントを実行して、データベースアカウントを再度承認します。
GRANT ALL ON *.* TO 'username'@''%' IDENTIFIED BY 'password';説明usernameとpasswordパラメーターを、データ移行タスクに指定されているデータベースアカウントとパスワードに置き換えます。
ターゲットデータベースがSQL Serverデータベースの場合は、ファイアウォールまたはトリガーを無効にします。
ターゲットデータベースがOracleデータベースの場合、
TCP.VALIDNODE_CHECKING項目をnoに設定し、プロセスを再起動します。
最初に DTSコンソールを使用して、再度事前チェックを実行します。
ターゲットデータベースが存在するサーバー用に構成されたファイアウォール
トラブルシューティング
ターゲットデータベースが存在するサーバーがWindowsを実行している場合は、コントロールパネルからWindows Defenderファイアウォールを見つけて、サーバー用にファイアウォールが構成されているかどうかを確認します。
ターゲットデータベースが存在するサーバーがLinuxを実行している場合は、シェルで
iptables -Lコマンドを実行して、サーバーにファイアウォールが設定されているかどうかを確認します。
解決策:
ファイアウォールを無効にしてから、 DTSコンソールにログインし、再度事前チェックを実行します。
ネットワーク障害
前述のトラブルシューティングの後でも接続先データベースへの接続が失敗した場合は、接続先データベースとDTSサーバー間のネットワークステータスを確認します。