このトピックでは、data Transmission Service (DTS) を使用して、自己管理型SQL ServerデータベースからApsaraDB RDS for SQL Serverインスタンスに完全データを移行する方法について説明します。 DTS はフルデータ移行と増分データ移行に対応しています。 自己管理型SQL Serverデータベースからフルデータを移行するには、移行タイプとしてスキーマ移行とフルデータ移行を選択します。
サービスを中断せずにデータを移行する方法の詳細については、「自己管理型SQL ServerデータベースからApsaraDB RDS For SQL Serverインスタンスへの増分データの移行」をご参照ください。
前提条件
自己管理型SQL Serverデータベースのバージョンは、2005、2008、2008 R2、2012、2014、2016、2017、または2019です。
説明プライマリ /セカンダリの切り替えがSQL ServerクラスターまたはAlwaysOn可用性グループ (AOAG) で実行されると、プライマリデータベースとセカンダリデータベースのログシリアル番号が不整合になります。 この場合、DTSはソースデータベースが再開可能な送信をサポートしていないと見なし、移行タスクは失敗します。 したがって、SQL ServerクラスターまたはSQL Server AOAGをソースデータベースとして使用することはできません。
異なるバージョンのデータベース間でデータを移行する場合は、データベースのバージョンに互換性があることを確認してください。
ApsaraDB RDS for SQL Serverインスタンスの使用可能なストレージ容量が、自己管理型SQL Serverデータベースのデータの合計サイズよりも大きいこと。
注意事項
DTSは、完全データ移行中にソースデータベースとターゲットデータベースの読み取りおよび書き込みリソースを使用します。 これは、データベースサーバの負荷を増加させる可能性がある。 データベースのパフォーマンスが悪い場合、仕様が低い場合、またはデータ量が多い場合、データベースサービスが利用できなくなる可能性があります。 たとえば、ソースデータベースで多数の低速SQLクエリが実行されている場合、テーブルにプライマリキーがない場合、またはターゲットデータベースでデッドロックが発生する場合、DTSは大量の読み取りおよび書き込みリソースを占有します。 データを移行する前に、移行元データベースと移行先データベースのパフォーマンスに対するデータ移行の影響を評価します。 オフピーク時にデータを移行することを推奨します。 たとえば、ソースデータベースとターゲットデータベースのCPU使用率が30% 未満の場合にデータを移行できます。
移行元データベースで移行するテーブルには、PRIMARY KEYまたはUNIQUE制約が必要であり、すべてのフィールドが一意である必要があります。 そうでない場合、宛先データベースは重複するデータレコードを含み得る。
DTSは、ApsaraDB RDS for SQL Serverインスタンスにターゲットデータベースを自動的に作成します。 ただし、ソースデータベースの名前がApsaraDB RDSの命名規則に準拠していない場合は、データ移行タスクを設定する前に、ApsaraDB RDS for SQL Serverインスタンスにデータベースを作成する必要があります。
説明データベースの命名規則とApsaraDB RDS For SQL Serverでのデータベースの作成方法の詳細については、「ApsaraDB RDS for SQL Serverインスタンスでのデータベースの作成」をご参照ください。
データ移行タスクが失敗した場合、DTSは自動的にタスクを再開します。 ワークロードをターゲットインスタンスに切り替える前に、データ移行タスクを停止またはリリースします。 それ以外の場合、タスクの再開後、ソースデータベースのデータはターゲットインスタンスのデータを上書きします。
制限事項
DTSはSQL_VARIANTタイプのデータを移行しません。
DTSは、アセンブリ、サービスブローカー、フルテキストインデックス、フルテキストカタログ、分散スキーマ、分散関数、CLRストアドプロシージャ、CLRスカラー値関数、CLRテーブル値関数、内部テーブル、システム、または集計関数のスキーマを移行しません。
移行タイプ
スキーマの移行
必要なオブジェクトのスキーマをターゲットインスタンスに移行します。 DTSは、テーブル、ビュー、トリガー、シノニム、SQLストアドプロシージャ、SQL関数、プランガイド、ユーザー定義型、ルール、デフォルト、シーケンスのオブジェクトのスキーマ移行をサポートしています。
フルデータ移行
DTSは、必要なオブジェクトの履歴データを自己管理型SQL ServerデータベースからApsaraDB RDS for SQL Serverインスタンスのターゲットデータベースに移行します。
課金
移行タイプ | タスク設定料金 | インターネットトラフィック料金 |
フルデータ移行 | 無料 | インターネット経由でAlibaba Cloudからデータが移行された場合にのみ課金されます。 詳細については、「課金の概要」をご参照ください。 |
データベースアカウントに必要な権限
データベース | スキーマ移行 | 完全なデータ移行 |
自己管理型SQL Serverデータベース | SELECT 権限 | SELECT 権限 |
ApsaraDB RDS for SQL Server インスタンス | 読み取りおよび書き込み権限 | 読み取りおよび書き込み権限 |
データベースアカウントの作成方法と権限付与方法については、以下のトピックを参照してください。
自己管理型SQL Serverデータベース: CREATE USER
ApsaraDB RDS for SQL Serverインスタンス: ApsaraDB RDS for SQL Serverインスタンスのアカウントを作成
完全データ移行のプロセス
オブジェクト間の依存関係によるデータ移行の失敗を防ぐために、DTSは次の順序でソースSQL Serverデータベースからスキーマとデータを移行します。
テーブル、ビュー、シノニム、ユーザー定義型、ルール、デフォルト、プランガイドのスキーマを移行します。
フルデータ移行を実行します。
SQLストアドプロシージャ、SQL関数、トリガー、および外部キーのスキーマを移行します。
手順
最初に DTSコンソールにログインします。
説明データ管理 (DMS) コンソールにリダイレクトされている場合は、
の
アイコンをクリックして、以前のバージョンのDTSコンソールに移動します。
左側のナビゲーションウィンドウで、データ移行 をクリックします。
[移行タスク] ページの上部で、RDSインスタンスが存在するリージョンを選択します。
ページの右上隅にある [移行タスクの作成] をクリックします。
ソースデータベースとターゲットデータベースを設定します。
セクション
パラメーター
説明
非該当
タスク名
タスク名は自動生成されます。 簡単に識別できるように、有益な名前を指定することをお勧めします。 一意のタスク名を使用する必要はありません。
移行元データベース
インスタンスタイプ
ソースデータベースのデプロイに基づいてインスタンスタイプを選択します。 この例では、[パブリックIPアドレスを持つユーザー作成データベース] を選択します。
説明他のインスタンスタイプを選択した場合、自己管理データベースのネットワーク環境をデプロイする必要があります。 詳細については、「準備の概要」をご参照ください。
インスタンスリージョン
インスタンスタイプがパブリックIPアドレスを持つユーザー作成データベースに設定されている場合、インスタンスリージョンパラメーターを指定する必要はありません。
説明自己管理型SQL Serverデータベースにホワイトリストが構成されている場合は、DTSサーバーのCIDRブロックをデータベースのホワイトリストに追加する必要があります。 [インスタンスリージョン] の横にある [DTS IP を取得する] をクリックして、DTS サーバーの CIDR ブロックを取得します。
データベースエンジン
[SQLServer] を選択します。
Hostname or IP Address
自己管理型SQL Serverデータベースへの接続に使用するエンドポイントを入力します。 この例では、パブリック IP アドレスを入力します。
ポート番号
自己管理型SQL Serverデータベースのサービスポート番号を入力します。 デフォルトのポート番号は1433です。
説明自己管理型SQL Serverデータベースのサービスポートは、インターネット経由でアクセスできる必要があります。
データベースアカウント
自己管理型SQL Serverデータベースへのログインに使用するアカウントを入力します。 アカウントに必要な権限については、「データベースアカウントに必要な権限」をご参照ください。
データベースパスワード
データベースアカウントのパスワードを入力します。
説明ソースデータベースに関する情報を指定した後、[データベースパスワード] の横にある [接続のテスト] をクリックして、情報が有効かどうかを確認できます。 情報が有効な場合は、[合格] メッセージが表示されます。 [失敗] メッセージが表示されたら、[失敗] の横にある [チェック] をクリックします。 次に、チェック結果に基づいて情報を変更します。
ターゲットデータベース
インスタンスタイプ
RDS インスタンスを選択します。
インスタンスリージョン
ターゲット RDS インスタンスが存在するリージョンを選択します。
RDS インスタンスの ID
同期先 RDS インスタンスの ID を選択します。
データベースアカウント
同期先 RDS インスタンスのデータベースアカウントを入力します。 アカウントに必要な権限については、「データベースアカウントに必要な権限」をご参照ください。
データベースパスワード
データベースアカウントのパスワードを入力します。
説明RDSインスタンスに関する情報を指定した後、[データベースパスワード] の横にある [接続のテスト] をクリックして、情報が有効かどうかを確認できます。 情報が有効な場合は、[合格] メッセージが表示されます。 [失敗] メッセージが表示されたら、[失敗] の横にある [チェック] をクリックします。 次に、チェック結果に基づいて情報を変更します。
ページの右下隅にある [ホワイトリストの設定] および [次へ] をクリックします。
説明DTSは、DTSサーバーのCIDRブロックをターゲットRDSインスタンスのホワイトリストに追加します。 これにより、DTS サーバーはターゲット RDS インスタンスに接続できるようになります。
移行タイプと移行するオブジェクトを選択します。
設定
説明
移行タイプの選択
フルデータ移行のみを実行するには、[スキーマ移行] と [フルデータ移行] を選択します。
データ移行中のサービスの継続性を確保するには、[スキーマ移行] 、[フルデータ移行] 、および [増分データ移行] を選択します。
この例では、[スキーマ移行] および [フルデータ移行] を選択します。
説明データの整合性を確保するために、データ移行中に自己管理型SQL Serverデータベースにデータを書き込まないことをお勧めします。
移行するオブジェクトの選択
[使用可能] セクションから1つ以上のオブジェクトを選択し、
アイコンをクリックして、オブジェクトを [選択済み] セクションに移動します。
説明移行するオブジェクトとして、列、テーブル、またはデータベースを選択できます。
既定では、オブジェクトがターゲットデータベースに移行された後、オブジェクトの名前は変更されません。 オブジェクト名マッピング機能を使用して、移行先データベースに移行するオブジェクトの名前を変更できます。 詳細は、オブジェクト名のマッピングをご参照ください。
オブジェクト名マッピング機能を使用してオブジェクトの名前を変更すると、そのオブジェクトに依存する他のオブジェクトの移行に失敗する可能性があります。
オブジェクトの名前を変更するかどうかを指定する
オブジェクト名マッピング機能を使用して、移行先インスタンスに移行されるオブジェクトの名前を変更できます。 詳細は、オブジェクト名のマッピングをご参照ください。
ソースデータベースまたはターゲットデータベースへの接続が失敗した場合のリトライ時間の指定
デフォルトでは、DTSがソースデータベースまたはターゲットデータベースへの接続に失敗した場合、DTSは次の12時間以内に再試行します。 必要に応じて再試行時間を指定できます。 DTSが指定された時間内にソースデータベースとターゲットデータベースに再接続すると、DTSはデータ移行タスクを再開します。 それ以外の場合、データ移行タスクは失敗します。
説明DTSが接続を再試行すると、DTSインスタンスに対して課金されます。 ビジネスニーズに基づいて再試行時間を指定することを推奨します。 ソースインスタンスとターゲットインスタンスがリリースされた後、できるだけ早くDTSインスタンスをリリースすることもできます。
[事前チェック] をクリックします。
説明移行タスクが開始される前にプリチェックが実行されます。 移行タスクは、事前チェックが成功した後にのみ開始されます。
事前チェックが失敗した場合は、失敗した各チェック項目の横にある
アイコンをクリックして、関連する詳細を表示します。 指示に従って問題を修正し、事前チェックを再度実行します。
[次へ] をクリックします。
[設定の確認] ダイアログボックスで、[チャネル仕様] パラメーターを設定します。 次に、[データ送信サービス (従量課金) サービス規約] を読み、選択します。
[今すぐ購入してスタート] をクリックして、移行タスクを開始します。
説明データ移行タスクを手動で停止しないことを推奨します。 それ以外の場合、ターゲットインスタンスに移行されたデータは不完全になります。 データ移行タスクが自動的に停止するまで待つことができます。
ワークロードを移行先 RDS インスタンスに切り替えます。
次のステップ
データ移行に使用されるデータベースアカウントには、読み取りおよび書き込み権限があります。 データ移行が完了したら、セキュリティを確保するために、自己管理型SQL ServerデータベースとApsaraDB RDS for SQL Serverインスタンスの両方のアカウントを削除する必要があります。