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 の戻りが変?なんかうまく動きませんでした。。