はじめに
ローカル環境で開発しているWebシステムを、一度クラウドにデプロイする場合があります。その際、ローカルのデータベース(DB)をクラウドに移行する必要があります。本記事では、SQL Server間でデータベースをテーブルやデータごとまとめて移行する方法について検証しました。
本記事の対象者
Azureの基本的なサービスや仕組みを理解している方
Microsoft SQL Serverを使用している方
準備
SQL ServerとSSMS(SQL Server Management Studio)がインストールされた端末
Visual Studioなど、データ出力用のプログラムを開発できる環境
検証
Auzre SQLデータベースの作成
まず、AzureでSQLデータベースを作成します。
この際、サーバー名(エンドポイント)とSQLログイン用のユーザー名とパスワードを記録しておきましょう。
※Azure SQLデータベースは、仕様によって費用が大きく異なります。検証目的や小規模なスタートには「サーバーレス」プランがおすすめです。
SSMSを起動し、ローカルのSQLServerに接続する
次に、SSMSを起動し、ローカルのSQL Serverに接続します。移行したいデータベースを右クリックして、「タスク」→「データのエクスポート」を選びます。エクスポートウィザードで、コピー元のデータベースとコピー先のAzure SQLデータベース、およびアクセスユーザーを指定します。
※Windows認証を使用するとエラーが発生することがあります。SQL Server認証を使うため、専用のログインユーザーを設定しましょう。
※ユーザーに適切なロールを追加していないとエラーが発生するので注意が必要です。
結果
ローカルのDBテーブルとデータをAzure SQLデータベースに簡単に移行することができました
感想
移行は非常に簡単でした。また、クラウドからローカルへの移行も同様に簡単にできると思います。これにより、開発環境やテスト環境の構築がよりスムーズに行えそうです。