Windows Azureストレージは、すでに自動的にジオ・レプリケーションが実施されています。同じリージョン内にある別のDCに自動的にデータが複製され多重化されています。SQL Azureは、今のところジオ・レプリケーションは実施されていないため、ユーザ側で対応を検討する必要があります。
データベースを作成したデータセンターと異なるデータセンターに、データを同期し複製する対応が考えられます。コーディングすることなくデータベースの同期をとれるSQL Azure Data Sync[1]を使用することで実現できます。
たとえば、本番運用のために作成した東アジアのDCのデータベースをSQL Azure Data Syncの同期グループのハブ・データベースに設定します。大災害復旧対応のために、離れた場所にあるヨーロッパのデータセンターのSQL Azureデータベースと、日本のオンプレミスのSQL Serverをメンバー・データベースとして同期設定します。すると別々の場所にあるデータセンターにデータを複製でき、災害復旧対策となります。ただし、災害発生時にはアプリケーションの設定変更が必要になってしまいます。
図3 SQL Azure Data Sync
アプリケーションバグによるデータ不整合からの復旧
定期的にデータをバックアップする必要がありますが、現時点で最も対応が面倒なパターンです。定期的なジョブを実行するSQL Server Agentに相当するサービスは、今のところSQL Azureでは提供されていません。そのため、定期的にデータをバックアップするためにDAC Frameworkなどを活用してWorkerロールに自分で実装する必要があります。
SQL Azureでは、定期的にバックアップをとる必要が無くなる対応が実施される予定です。Tech ED 2011 North Americaにて、発表されたPoint in time restoreが発表されました。Point in time restoreは、過去二週間以内の指定した日時の状態のデータベースをリストアすることができる機能です。二週間が要件に合致する場合は、本機能リリース後は定期的なバックアップの必要性が無くなります。今のところ機能提供の開始時期は発表されていません。