こんにちは。Azure SQL Databaseに.bakファイルをインポートする方法を試したので、簡単ですが手順を残しておきます。
Contents
Azure SQL DatabaseではBACPACファイル形式しかサポートされていない
まず、Azure SQL DatabaseはオンプレSQL Serverなどで従来使われていた.bakファイル形式のデータは直接インポートできず、BACPAC形式のみサポートされています。
SQL Server データベースを Azure SQL Database または SQL Managed Instance にインポートするには、BACPAC ファイルを使用します。
https://docs.microsoft.com/ja-jp/azure/azure-sql/database/database-import?view=azuresql&tabs=azure-powershell
実現方法
ちょっと調べてみると以下のStack Overflowにたどり着きました。
いくつか方法がありますが、特に簡単にできるオプションを2つご紹介します。
方法1:SSMSの「Azure SQL Databaseへのデータベースの配置」オプションを使う
1つ目の方法は、SSMSで、移行元のSQL Serverのデータベースを右クリックし、タスクから「Azure SQL Databaseへのデータベースの配置」というオプションを利用するというものです。
こうすると、内部的にはbacpacファイルを作成した上で、Azure SQL Databaseにインポートを行ってくれます。
![](https://i0.wp.com/www.simpletraveler.jp/wp-content/uploads/2022/06/image-44.jpg?resize=728%2C535&ssl=1)
![](https://i0.wp.com/www.simpletraveler.jp/wp-content/uploads/2022/06/image-44.png?resize=728%2C710&ssl=1)
![](https://i0.wp.com/www.simpletraveler.jp/wp-content/uploads/2022/06/image-45.png?resize=728%2C710&ssl=1)
![](https://i0.wp.com/www.simpletraveler.jp/wp-content/uploads/2022/06/image-46.png?resize=728%2C716&ssl=1)
方法2:bacpacファイル形式でエクスポートしなおす
二つ目の方法は、bakファイルではなくbacpacファイル形式でデータベースをエクスポートしなおした上で、SQL Databaseにインポートする方法になります。
まあ、1つ目の方法も裏ではこれと同じ流れが実行されているので、実質やってることは変わりませんが、ツール上触るところが少し違う感じです。
bacpacファイル形式でのエクスポートは、SSMS上タスク>「データ層アプリケーションのエクスポート」から実行できます。
![](https://i0.wp.com/www.simpletraveler.jp/wp-content/uploads/2022/06/image-47.png?resize=728%2C341&ssl=1)
![](https://i0.wp.com/www.simpletraveler.jp/wp-content/uploads/2022/06/image-48.png?resize=728%2C706&ssl=1)
ローカルだけでなく、Azureストレージ上へのエクスポートもできるんですね。
![](https://i0.wp.com/www.simpletraveler.jp/wp-content/uploads/2022/06/image-49.png?resize=728%2C709&ssl=1)
![](https://i0.wp.com/www.simpletraveler.jp/wp-content/uploads/2022/06/image-50.png?resize=728%2C709&ssl=1)
bacpacファイルの手動でのインポート方法についてはこちらを参照ください。
以上、少しでも参考になりましたら幸いです。
おしまい
コメントを残す