異なるSQL Azureサーバー間でDATABASE COPYを実行した
注意事項
コピー元のSQL Azureサーバーとコピー先のSQL Azureサーバーは、同じDCを選択していますか?違うデータセンターの場合、次のエラーが発生し悩みまくります。
メッセージ 40532、レベル 11、状態 1、行 1
Cannot open server "lx88a7fkwl" requested by the login. The login failed.
エラー内容から、異なるDC間でコピーしようとして失敗したっと気づくのは至難の業なのでご注意を。
コピー元SQL Azureサーバー
–① masterデータベースにログインを作成
CREATE LOGIN test WITH password=’P@ssw0rd’;
GO
–② コピー元データベースにユーザーを作成
CREATE USER test FROM LOGIN test;
GO
–③ コピー元データベースのユーザーにdb_onwerロールを付与
EXEC sp_addrolemember ‘db_owner’, ‘test’
GO
コピー先SQL Azureサーバー
–① masterデータベースにログインを作成
CREATE LOGIN test WITH password=’P@ssw0rd’;
GO
–② masterデータベースにユーザーを作成
CREATE USER test FROM LOGIN test;
GO
–③ ユーザーにロール付与
EXEC sp_addrolemember ‘dbmanager’, ‘test’;
GO
データベースのコピーを実行
–CREATE DATABASE コピー先データベース名 AS COPY OF (コピー元サーバ名).データベース名
–(例)
CREATE DATABASE test AS COPY OF rvpqy0fvb2.test
–実行状況の確認
SELECT * FROM sys.dm_database_copies
詳細
データベース・コピーを使用してSQL Azureデータベースをバックアップするを参照してください。
補足
コピーしたデータベースを運用するには、ログインとユーザーマッピングをし直す必要があるので、コピーだけして安心しないように。