このトピックでは、物理バックアップファイルを使用して、ApsaraDB RDS for SQL Serverインスタンスのデータを自己管理型SQL Serverインスタンスに移行する方法について説明します。
Data Transmission Service (DTS) を使用して、ApsaraDB RDS for SQL Serverインスタンスのデータを自己管理型SQL Serverインスタンスに移行することもできます。 詳細については、「DTSとは」をご参照ください。
手順
RDSインスタンスの完全および増分物理バックアップファイルをダウンロードし、自己管理型SQL serverインスタンスが存在するサーバーにアップロードします。 バックアップファイルの取得方法の詳細については、「データバックアップファイルとログバックアップファイルのダウンロード」をご参照ください。
サーバーがRDSインスタンスと通信できる場合は、
wget "URL"
コマンドを実行してバックアップファイルをダウンロードできます。 このコマンドでは、URLパラメーターにバックアップファイルをダウンロードできるURLを指定します。ダウンロードした完全および増分物理バックアップファイルを解凍します。
説明完全および増分物理バックアップファイルは、解凍後に同じ名前になります。 <データベース名> + <バックアップ方法> + <日付> の形式でファイル名を変更することを推奨します。 例:
ここで、datafullは完全バックアップを示します。
testdb_datadiff_201901071330.bakで、datadiffは増分バックアップを示します。
解凍された完全および増分物理バックアップファイルを取得します。 ファイル保存パスの例:
/tmp/testdb_datafull_201901071320.bak: 完全な物理バックアップファイルの保存パス
/tmp/testdb_datadiff_201901071330.bak: 増分物理バックアップファイルの保存パス
自己管理型SQL Serverインスタンスにログインします。 次に、完全な物理バックアップファイルと増分の物理バックアップファイルを照会して、データファイルとログファイルの論理名を取得します。
disk='/tmp/testdb_datafull_201901071320.bak' からファイル名を復元する 行く
この例では、データファイルの論理名はtestdb、ログファイルの論理名はtestdb_logです。
完全バックアップファイルからデータベースを復元し、データファイルとログファイルの保存パスを指定します。
RESTORE DATABASE testdb FROM DISK = '/tmp/testdb_datafull_201901071320.bak' REPLACE、NORECOVERY、STATS = 10、'testdb' を '/var/opt/mssql/data/testdb.mdf' に移動し、'testdb_log' を '/var/opt/mssql/data/testdb_log.ldf' に移動します。GO
説明/var/opt/mssql/data/testdb.mdfはデータファイルの保存パス、testdb.mdfはデータファイルの論理名です。
/var/opt/mssql/data/testdb_log.ldfはログファイルの保存パス、testdb_log.ldfはログファイルの論理名です。
自己管理型SQL Serverインスタンスにログインし、
からデータおよびログファイルの保存パスを取得できます。完全な物理バックアップファイルが読み込まれた後、testdbデータベースのステータスは、データベースが復元中であることを示します。
説明完全な物理バックアップファイルのデータのみを復元する場合は、手順6に進みます。 増分物理バックアップファイルのデータを復元する場合にのみ、手順6を実行します。
増分バックアップファイルからデータベースを復元し、データファイルとログファイルの保存パスを指定します。
RESTORE DATABASE testdb FROM DISK = '/tmp/testdb_datadiff_201901071330.bak' WITH REPLACE、NORECOVERY、STATS = 10、'testdb' を '/var/opt/mssql/data/testdb.mdf' に移動し、'testdb_log' を '/var/opt/mssql/data/testdb_log.ldf' に移動します。GO
完全な物理バックアップファイルが読み込まれた後、testdbデータベースのステータスは、データベースが復元中であることを示します。
次のステートメントを実行して、データベースを使用可能な状態に復元します。
回復を伴うRESTORE DATABASE testdb; GO