先日、一部の地域では SQL Database v12 が GA しました。
今後のリリース予定については以下を参照していただければ。
What’s new in the Latest SQL Database Update V12 (preview)
日本でも近いうちに (First quarter 2015, estimated) GA が予定されていますので、v12 への移行方法を軽くまとめてみたいと思います。
今回は同一のサブスクリプション / 地域での移行を想定しています。
アップグレードの基本パターンについては Plan and prepare to upgrade to the Latest SQL Database Update V12 (preview) を参照するとよいかと。
SQL Database v12 の利用単位ですが「サーバー単位」となります。
そのため、一つのサーバーの中で v11 と v12 のデータベースを共存することはできません。
v11 から v12 へのアップグレードですが、ポータルから実施できるのはサーバー単位になります。
こちらでアップグレードした場合、データベースのサイズにも依存するようですが最大で 24時間程度かかるようです。
Duration of upgrade
For a very large database of perhaps greater than 50 GB in size, the upgrade process can take up to 24 hours.
この方法は稼働中のサーバーをアップグレードすることになりますので、実際には新規の v12 のサーバーを作成して、そのサーバーに対して移行を行うことになるかと。
# 接続文字列の変更は必要となります。
新規のサーバーに移行する方法としては、
- データベースのリストアによる移行
- 自動エクスポートされた bacpac による移行
- 手動で bacpac を取得して移行
- SQL Database Migration Wizard を使用した移行
などが考えられるかと。
また、移行中は一時的にパフォーマンスレベルを高いものに設定しておき、移行時間の短縮も検討する必要があるかと。
サーバー内で、24 時間に最大 4 回しかパフォーマンスレベルは変更できなかったかと思いますので、変更の回数については十分に注意をしておく必要があるかと思います。
データベースのサービス階層とパフォーマンス レベルの変更
それでは、それぞれの移行方法について確認をしてみたいと思います。
Contents
■データベースのリストアによる移行
データベースのリストアによる移行ですが、データベースの移行は「同一のバージョンのサーバー」でしか実施することはできません。
以下は v11 と v12 のサーバーが存在しているサブスクリプションなのですが、v11 のデータベースのバックアップは v11 にしか復元をすることができません。
逆に v12 のデータベースを v11 にリストアすることもできません。
そのため、データベースのリストアによる移行を実施する場合、
- 新規に v11 のサーバーを作成する
- 新規に作成した v11 のサーバーにデータベースをリストアする
- リストアをする v11 のサーバーを v12 にアップグレード
というような手順を踏む必要があります。
v12 での動作確認にはこのシナリオが使えるかと思います。
SQL Database では、データベースをコピーすることができます。
CREATE DATABASE (Azure SQL Database)
この場合も制限は同じになるようで異なるバージョンに対しては互換性がないということでコピーのデータベースを作成できないようです。
■自動エクスポートされた bacpac による移行 / 手動で bacpac を取得して移行
bacpac による移行については異なるバージョン間で実施することができます。
v11 で自動エクスポートした bacpac は v12 にインポートすることが可能です。
この操作については手動で bacpac をエクスポートしても同様になります。
SQL Server 2014 CU5 の Management Studio は v12 に対応しているので、最新のものを使用していれば問題なくインポートできるかと。
■SQL Database Migration Wizard を使用した移行
SQL Database Migration Wizard はスクリプト + BCP による移行ですので、こちらもバージョンをまたいで移行することが可能です。
# bacpac も似たような構成ですね。
最新の MW では、v12 にも対応しています。
通常のSQL Database間の移行と同じ方法で対応ができますので、本番移行時には特定のテーブルのみを移行したい場合には、こちらを使うと手軽かもしれませんね。
移行に使えるツールや手法を把握しておくと、v12 に移行をしようと思った際の取り掛かりには詰まらないかと。
GrayRecord Spaces Edition でリブログ.
相当ご~ん
16 2月 15 at 00:01