読者です 読者をやめる 読者になる 読者になる

がりらぼ

WindowsRuntimeの応援ブログ

SQL ServerからSQL Azureに移行するときに起こったエラーとその対処

SQL Server SQL Azure

ついに僕のブログにもSQL Serverというカテゴリが出来てしまいました

SQL ServerからSQL Azureに移行する方法

SQL ServerからSQL Azureに移行するためにはbacpacというものを作ってエクスポートとインポートをするとよいとムッシュ金麦ムッシュ先生が言っておられました。

bacpack

データ層アプリケーション (DAC) ファイル (.bacpac ファイル) をインポートすると、データを含んだ元のデータベースのコピーを、データベース エンジンの新しいインスタンス上または Azure AQL データベース に作成することができます。 BACPAC ファイルのインポートによる新しいユーザー データベースの作成

なるほどつまりデータ層アプリケーションという.bacpacファイルを作成してエクスポート&インポートがおすすめとのこと。

ということで以下の手順でbacpacを作ってみる

データベースを右クリック→タスク→データ層アプリケーションのエクスポート

スキーマがはがせないエラー

bacpacをつくろうとすると、あるユーザーがログインから孤立しているだどったらこったらみたいなエラーがでます。

というわけでユーザーの削除を試みる。

データベース名→セキュリティ→ユーザーと展開していくとユーザー一覧があるのでエラーを吐いているようなユーザーを右クリックで削除

削除できないユーザーがいる。

なにやらスキーマがはがせないとのことらしい。

なんやかんやでググってたらここが参考になった。

セキュリティ→スキーマを展開してそのユーザーが登録されているスキーマをべつのユーザーに変更

コレでユーザーを削除できた。

シノニム参照が解決できない

データベースが別のデータベースをシノニム参照しているとエクスポートできなかったのでシノニム参照をすべて削除しました。

コレばかりはSQLAzure上でシノニム参照し直すしか無いのかなという感じ。

bacpacをインポート

以上のエラーを経て無事bacpacを生成できたのでSQLAzureにManagementStudioからアクセスして、データベース→データ層アプリケーションのインポートで無事移行成功

SQL Serverって難しいですね

f:id:garicchi:20150305201807p:plain