SQL Azure Database Copy を試してみました

SQL Azure Service の Update 4 が少し前に発表されました。
What's New in Windows Azure SQL Database (formerly SQL Azure)
この中で Database Copy という機能が追加されたので、試してみました。
Copying Databases in Windows Azure SQL Database


これは、以前紹介(http://d.hatena.ne.jp/odashinsuke/20091128/1259371032)した Database clone の名前が変わったものだと思います。
さっそく試してみました。
構文は、

Copying Databases in Windows Azure SQL Database Starting the Copy Process より引用。

CREATE DATABASE destination_database_name
    AS COPY OF [source_server_name.]source_database_name

CREATE DATABASE なので、既に存在する DB を指定するとエラーになります。

存在しない DB を指定して実行すると、正常終了しましたとのメッセージが出ます。Copy 処理自体は、非同期で行われるので状況を確認するには、sys.dm_database_copies ビューで確認します。

sys.dm_database_copies ビューの詳細は、こちら。sys.dm_database_copies (Windows Azure SQL Database)
Copy でエラーが発生したりしたら、このビューを監視していたらよさそうですね。
ちなみに、監視のクエリも MSDN に載っていたんですが…

Copying Databases in Windows Azure SQL Database Monitoring a Copy より引用。

-- execute on the master database
-- retrieve state of the new database
select name, state, state_desc from sys.databases
where name = 'databaseBackup'

-- retrieve copying details
select * from sys.dm_database_copies
where database_id = DB_ID('databaseBackup')

SQL Azure って DB_ID の戻りが変?なんかうまく動きませんでした。。