このレッスンでは、別のオンプレミス コンピューターまたは Azure の仮想マシンに存在する可能性がある別の SQL Server が既にあることを前提としています。 Azure で SQL Server 仮想マシンを作成する方法については、「Azure での SQL Server 仮想マシンのプロビジョニング」を参照してください。 Azure で SQL Server 仮想マシンをプロビジョニングした後、別のコンピューターの SQL Server Management Studio を使用して、この仮想マシン内の SQL Server のインスタンスに接続できることを確認します。
このレッスンでは、次の手順を既に完了していることを前提としています。
Azure Storage アカウントを所有しています。
Azure Storage アカウントの下にコンテナーを作成しました。
読み取り、書き込み、およびリスト権限を持つコンテナーにポリシーを作成しました。 SAS キーも生成しました。
ソース マシンに SQL Server 資格情報を作成しました。
Azure に移行先の SQL Server 仮想マシンが既に作成されています。 SQL Server 2014 を含むプラットフォーム イメージを選択して作成することをお勧めします。
オンプレミスの SQL Server から Azure の別の仮想マシンにデータベースを移行するには、次の手順に従います。
ソース マシン (このチュートリアルではオンプレミスコンピューター) で、SQL Server Management Studio でクエリ ウィンドウを開きます。 次のステートメントを実行して、データベースをデタッチして別のマシンに移動します。
-- Detach the database in the source machine USE master EXEC sp_detach_db 'TestDB1', 'true';
データベースを転送先のマシンに転送する必要がある場合は、まずデータベースを準備する必要があります。 移行先マシンを準備するには、まず、移行先マシンに SQL Server 資格情報を作成する必要があります。 暗号化されたデータベースの場合は、ソース マシンからコピー先マシンにも証明書をインポートする必要があります。
移行先マシンに SQL Server 資格情報を作成するには、次の手順に従います。
ソース コンピューターの SQL Server Management Studio を使用して、移行先マシンに接続します。 または、対象のコンピューターで SQL Server Management Studio を直接起動します。
標準ツール バーで、[ 新しいクエリ] をクリックします。
次の例をコピーしてクエリ ウィンドウに貼り付け、必要に応じて変更します。 次のステートメントでは、ストレージ コンテナーの Shared Access Certificate を格納するための SQL Server 資格情報を作成します。
USE master GO CREATE CREDENTIAL [http://teststorageaccnt.blob.core.windows.net/testcontainer] WITH IDENTITY='SHARED ACCESS SIGNATURE', SECRET = 'your SAS key' GO
使用可能なすべての資格情報を表示するには、クエリ ウィンドウで次のステートメントを実行します。
SELECT * from sys.credentials
移行先サーバーに接続したら、クエリ ウィンドウを開き、次のコマンドを実行します。
-- Create a master key and a server certificate USE master GO CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'MySQLKey01'; -- You may use a different password. GO CREATE CERTIFICATE MySQLCert FROM FILE = 'C:\certs\MySQLCert.CER' WITH PRIVATE KEY ( FILE = 'C:\certs\MySQLPrivateKeyFile.PVK', DECRYPTION BY PASSWORD = 'MySQLKey01' ); GO
この手順の最後に、移行先マシンは、ソース マシンからバックアップされた暗号化証明書をインポートしました。 次に、コピー先のマシンにデータ ファイルをアタッチできます。
次に、FOR ATTACH オプションを使用して、Azure Storage 内の既存のファイルを指すデータ ファイルとログ ファイルを含むデータベースを作成します。 クエリ ウィンドウで、次のステートメントを実行します。
--Create a database on the destination server CREATE DATABASE TestDB1onDest ON (NAME = TestDB1_data, FILENAME = 'https://teststorageaccnt.blob.core.windows.net/testcontainer/TestDB1Data.mdf' ) LOG ON (NAME = TestDB1_log, FILENAME = 'https://teststorageaccnt.blob.core.windows.net/testcontainer/TestDB1Log.ldf') FOR ATTACH GO
オブジェクト エクスプローラーで、[データベース] をクリックし、[更新] を右クリックします。 新しく作成されたデータベース TestDB1onDest が一覧表示されます。
次に、クエリ ウィンドウで次のステートメントを実行します。
USE TestDB1onDest SELECT * FROM Table1; GO
これで、レッスン 4 で入力したすべてのデータが一覧表示されます。
暗号化されたデータベースは、データ移動なしで別のコンピューティング インスタンスに転送されることに注意してください。
SQL Server Management Studio ユーザー インターフェイスを使用して、Azure Storage 内の既存のファイルを指すデータ ファイルとログ ファイルを含むデータベースを作成するには、次の手順を実行します。
オブジェクト エクスプローラーで、SQL Server データベース エンジンのインスタンスに接続し、そのインスタンスを展開します。
[データベース]を右クリックし、 [新しいデータベース]をクリックします。 次に、TestDB1 を右クリックします。 [タスク] をクリックし、[デタッチ] をクリックします。 [デタッチ] ダイアログ ウィンドウで、[接続の削除] をオンにします。 OK をクリックします。
SQL Server 2014 CTP2 以降がインストールされている移行先マシンに接続します。 移行先マシンを準備するには、TestDB1 を配置したのと同じコンテナーを指すように、移行先マシンに SQL Server 資格情報を作成する必要があります。 同じコンピューターに再アタッチする場合は、別の資格情報を作成する必要はありません。
オブジェクト エクスプローラーで、[データベース] を右クリックし、[アタッチ] をクリックします。
[ データベースのアタッチ ] ダイアログ ボックスで、アタッチするデータベースを指定するには、[ 追加] をクリックします。 [ データベース ファイルの検索 ] ダイアログ ウィンドウで、次の操作を行います。
[データベース データ ファイルの場所] に「
https://teststorageaccnt.blob.core.windows.net/testcontainer/
」と入力します。[ファイル名] に「
TestDB1Data.mdf
」と入力します。OK をクリックします。
次のレッスン: