Microsoft Windows Developer Days で オンプレ & クラウドのデータを自在に活用! SQL Server 2012 開発 のセッションに参加させていただいてなるほどと思ったので軽くまとめてみたいと思います。
■SQL Server 2012 の SSMS を使用して SQL Azure にデータベースを配置
SQL Server 2012 の SSMS では SQL Azure へのデータベース配置の機能が強化されています。
SQL Server 2008 R2 の SSMS でデータベースのタスクを開いた時のメニューは以下のようになっています。
SQL Server 2012 の SSMS ではタスクの中に [SQL Azure へのデータベースの配置] が追加されており、この機能を使用すると対象のデータベースを SSMS を使用して SQL Azure に配置することができます。
- 対象のデータベースを選択して、タスクから [SQL Azure へのデータベース配置] をクリックします。
- [次へ] をクリックします。
- [接続] をクリックして、SQL Azure に接続をします。
- SQL Azure に配置した際のデータベース名とデータベース設定を入力して、[次へ] をクリックします。
データベースの配置には [bacpac] (データを含んだデータ層アプリケーション) が使用されています。 - [完了] をクリックします。
- ソースデータベースから bacpac が作成され SQL Azure への配置が行われます。
- [閉じる] をクリックして配置を完了します。
以上で、SQL Azure へのデータ配置は完了です。
SSMS で SQL Azure へ接続して、SQL Azure 上のデータベースを選択し、[接続] をする際にオンプレミスの SQL Server を選択すると SQL Azure から SQL Server へデータベースを配置することも可能です。
SQL Server 2012 では新しく照合順序として [_SC] という照合順序が増えていますが、現在の SQL Azure ではこの照合順序はサポートされていないため、SQL Azure に配置しようとするとエラーが発生するので注意が必要です。
# データベース単位の照合順序はプロパティからの変更レベルで変えられるので、再インストールは必要ないですが。
■Azure ストレージへ bacpac 形式のファイルを配置
SQL Server 2012 の SSMS では、タスクの [データ層アプリケーションのエクスポート] をすることで、bacpac 形式のデータでエクスポートすることができますが、これも Windows Azure への連携が行えるようになっています。
エクスポート先として、[Windows Azure に保存] を選択し、ストレージアカウントの情報を設定することで、Azure ストレージへ bacpac 形式のファイルをエクスポートすることができます。
- 対象のデータベースを選択して、タスクから [データ層アプリケーションのエクスポート] をクリックします。
- [次へ] をクリックします。
- [Windows Azure に保存] を選択肢、[接続] をクリックして Azure ストレージに接続を行います。
- ファイル名とコンテナー名を指定して [次へ] をクリックします。
- [完了] をクリックします。
- [閉じる] をクリックします。
以上で、Azure ストレージへのエクスポートは完了です。
SQL Server 2012 の SSMS では、Azure ストレージへ接続ができるようになっています。
# なんで、Azure ストレージに接続できるようになったかが疑問だったのですがデータ層アプリケーションの格納先として利用するからなんですね。
Azure ストレージで bacpac を選択して右クリックをして、[データ層アプリケーションのインポート] から Azure ストレージの bacpac を使用してデータベースに配置することが可能となっています。
bacpac をインポートするサーバーとして、オンプレミスの SQL Server / SQL Azure のどちらも設定することができます。
私の環境で SQL Server 2008 R2 のデータベースを Azure ストレージに bacpac 形式でアップロードし、SQL Azure にインポートしようとしたところ以下のエラーになってしまいましたが…。
# SQL Server 2012 のデータベースを Azure ストレージに bacpac 形式で保存した場合は正常にインポートできました。
SQL Server 2012 のコンセプト として [アプライアンスからクラウドまで単一アーキテクチャ] というものがありますが、クラウドとの相互連携が SQL Server 2012 では強化されているのが SSMS からも確認ができますね。
[…] […]
蒼の王座 » C#で、SQL Azureへデータ層アプリケーションをデプロイする方法
7 5月 12 at 02:29