このページでは、Azure SQL Server/databaseの特徴的な仕様について説明する。このページに書いてあることは、ネットで検索してもなかなか出てこないので、たどり着いた方はしっかり理解しておいてほしい。
特に特徴的なバックアップ・リストアの手順を説明するために、画像を取っていたが、枚数が多いため、別ページを作り説明するようにした。そちらも併せて参照。
Azure - Azure SQL Server/database 手順編
-
-
Azure - Azure SQL Server/database バックアップリストア(手順編)
このページでは、Azure SQL Server/databaseのバックアップ・リストア手順を説明する。仕組みについては、こちらのページを参照。 Azure - Azure SQL Server/d ...
続きを見る
バックアップファイルのリストアと移行方法に制約
ポイント
Azure SQL Server/databaseはオンプレで使用していた「.bak」形式でのデータベースのリストアができません。.bacpac形式でデータをエクスポート・インポートしないといけません。手順でいうと、”データ層アプリケーションのエクスポート・インポートです。”そのため、オンプレミスからの移行は、少々厄介です。
制約が発生する理由と検証結果
.bakファイルのリストア
ポイント
オンプレのSQL Serverで出力した.bakはAzure SQL Serverにリストア出来ません。画像のように、エラーになります。
Azure SQL Server/databaseは共有テナント型のデータベースです。
オンプレで作成した.bak形式のデータベースは、SQL Serverのマスター系データベースやmdfのサイズ記録を保持します。これは、Azure SQL Server/databaseでは、ユーザに開放していない管理領域となるのため、エラーになります。
メモ
.bacpac形式でリストアしても、オンプレのSQL Server内に存在するログインユーザが原因でエラーになることがあります。Azure SQL Serverとしてはログインユーザの仕組みは、ユーザに開放していない領域になるため、インポート時にエラーになります。
ソフトウェアバージョンが違う
オンプレのSQL Server(データベース)とAzure SQL Server/databaseは似て非なるものです。管理領域が異なります。
Azure SQL serverやオンプレのSQL Serverに Select @@version とコマンドを打つとソフトウェアとしても違うということが理解できます。
ポイント
オンプレは、Microsoft SQL Server 2017と表示され、Azureは、Microsoft SQL Azureと表示されています。
.bakファイル形式のバックアップ作成
バックアップを.bak形式で出力することもできせん。Azure SQL Server/databaseにManagement Studioで接続して、いつものようにファイル出力をしようとするとタスク自体がありません。
ノウハウ・注意点
Microsoftのドキュメントの見方なのです。
ぱっと見、Azure SQL Serverの説明のように見えます。しかし、上で書いた通り、別ものなので勘違いしやすいです。SQL ServerとAzure SQL Serverは異なります。画像の通りだと、Azure SQL Databaseが×になっているため、説明ページはAzure SQL Databaseの説明ではない。(関係ない)ということになります。最初に確認するようにしましょう。
移行方法の提案とリストア方法
オンプレからAzureへのSQL Server移行は以下の手法がセオリーになります。
ポイント
- オンプレで.bacpacを出力
- ストレージアカウントに.bacpacを移送
- ストレージアカウントの.bacpacを指定して、Azure SQL databaseにファイルリストア
- オンプレでデータ層アプリケーションのエクスポート
- 出力されたファイルをBLOBストレージにアップロード
- Azure SQL Serverの画面でデータベースのインポート
- ストレージ上の.bacpacを選択して、リストア実行
詳細な手順はこちらにまとめました。参照ください。
Azure - Azure SQL Server/database 手順編
-
-
Azure - Azure SQL Server/database バックアップリストア(手順編)
このページでは、Azure SQL Server/databaseのバックアップ・リストア手順を説明する。仕組みについては、こちらのページを参照。 Azure - Azure SQL Server/d ...
続きを見る
Microsoft Data Migration Assistant
別案として、MDMA(Microsoft Data Migration Assistant)という仕組みも用意はされています。
しかしどうも、昔かたぎのエンジニアなので、ファイル形式で移行したくなります。そのため、これについては検証もしていないですし、よくわかりません。気になる方は検証して、実際の開発に取り入れるか検討ください。
ノウハウ・注意点
ポイント
Azure SQL database マネージドインスタンスというサービスもありまして、これまたAzure SQL Server/databaseサービスとは異なります。
似た名前がいろいろあって混乱しますよね。
マネージドインストは.bakからのリストアが出来ると書いてありますが、利用料金高いんですよねー。だから試したことないです。
ここで言えるのは、スペック記載の内容での比較くらいです。よかったら試してみてください。
引用:https://docs.microsoft.com/ja-jp/azure/sql-database/sql-database-managed-instance-quickstart-guide