皆さん、こんにちは。SQL Server/Microsoft Azure SQL Database サポートチームです。今回のテーマは SQL Database から IaaS 環境へのデータ移行方法についてです。
Microsoft Azure SQL Database (以下 MASD) /Microsoft Azure 仮想マシン + SQL Server (以下 SQL VM) をご利用いただいているお客様からよく頂くご質問の一つに、MASD から SQL VM へのデータ移行方法に関するものがあります。
当初は、MASD の使用した開発を検討していたが、SQL Server のフル機能を使用したいなど、開発途中で要件変更が発生し、別の環境にデータ移行を行う必要が出てくる可能性があると思います。 今回は、このような状況で役立つ、MASD から SQL VM へのデータ移行方法をご紹介します。
[前提条件]
データ移行先の Microsoft Azure 仮想マシンに SQL Server がインストールされていることを前提にしています。
[事前準備]
1) Microsoft Azure 仮想マシンに SQL Server がインストールされた環境を用意します。
※ Microsoft Azure 仮想マシン上の SQL Server を使用する上での注意点については、以下の Blog を参考ください。
Windows AzureのIaaS機能でSQL Serverを使ってみよう
2) Microsoft Azure 仮想マシン上の SQL Server 上で、以下の設定を実施します。
- SQL Server 認証の有効化 (設定方法は技術情報の サーバーの認証モードの変更を参照)
- SQL Server ログインを作成 (設定方法は技術情報の ログインの作成を参照)
[移行手順]
1) コマンドプロンプトを管理者として実行します。
2) SqlPackage.exe が配置されているパスに移動します。既定では以下のディレクトリに存在しています。
c:\Program Files (x86)\Microsoft SQL Server\120\DAC\bin |
3) SqlPackage.exe で “Export” オプションを使用して、SQL Database のデータベースのバックアップを取得します。
以下に最低限指定するパラメータを記載します。 使用方法の詳細は末尾のリンクを参照。
パラメータ | サンプル | 説明 |
SourceServerName | abcdefg.database.windows.net | SQL Database サーバー名を指定します |
SourceDatabaseName | AdventureWorks2012 | SQL Database の名前を指定します |
SourceUser | testuser | SQL Database に接続できるユーザー名を指定します |
SourcePassword | abcdefg! | 上記ユーザーのパスワードを指定します |
TargetFile | c:\work\abcdefg.bacpac | エクスポートファイルのフルパスを指定します |
実行例)
SqlPackage.exe
/Action:Export
/SourceServerName:abcdefg.database.windows.net
/SourceDatabaseName:abcdefg
/SourceUser:testuser
/SourcePassword:password
/TargetFile:c:\work\abcdefg.bacpac
※可読性の為、改行していますが1行にして実行してください。
4) SqlPackage.exe で ”Import” オプションを使用して先程のバックアップをインポートします
パラメータ | サンプル | 説明 |
TargetServerName | abcdefg.cloudapp.net | 仮想マシン名を指定します |
TargetDatabaseName | AdventureWorks2012 | ExportしたDatabase の名前を指定します |
TargetUser | sa | SQL Server に接続、処理できる SQL Server ログイン名を指定します |
TargetPassword | abcdefg! | 上記ログインのパスワードを指定します |
SourceFile | c:\work\abcdefg.bacpac | エクスポートしたファイルのフルパスを指定します |
実行例)
SqlPackage.exe
/Action:Import
/TargetServerName:abcdefg.cloudapp.net
/TargetDatabaseName:AdventureWorks2012
/TargetUser:sa
/TargetPassword:abcdefg!
/SourceFile:c:\work\abcdefg.bacpac
※可読性の為、改行していますが1行にして実行してください。
[参考情報]
※ 本Blogの内容は、2014年12月 現在の内容となっております