SQL Azureを徹底活用

第3回 SQL Azureのバックアップ

この記事を読むのに必要な時間:およそ 2 分

大災害復旧対策

データセンター全体または一部が使用できなくなる大災害対策として,遠く離れた別のデータセンターにデータをバックアップする対応が考えられます。

Windows Azureストレージは,すでに自動的にジオ・レプリケーションが実施されています。同じリージョン内にある別のDCに自動的にデータが複製され多重化されています。SQL Azureは,今のところジオ・レプリケーションは実施されていないため,ユーザ側で対応を検討する必要があります。

データベースを作成したデータセンターと異なるデータセンターに,データを同期し複製する対応が考えられます。コーディングすることなくデータベースの同期をとれるSQL Azure Data Sync※1を使用することで実現できます。

たとえば,本番運用のために作成した東アジアのDCのデータベースをSQL Azure Data Syncの同期グループのハブ・データベースに設定します。大災害復旧対応のために,離れた場所にあるヨーロッパのデータセンターのSQL Azureデータベースと,日本のオンプレミスのSQL Serverをメンバー・データベースとして同期設定します。すると別々の場所にあるデータセンターにデータを複製でき,災害復旧対策となります。ただし,災害発生時にはアプリケーションの設定変更が必要になってしまいます。

図3 SQL Azure Data Sync

図3 SQL Azure Data Sync

※1)
SQL Azure Data Syncは,最終CTP(Community Technical Preview)版の提供のため,今のところ本番運用している環境に導入することは推奨されていません。

アプリケーションバグによるデータ不整合からの復旧

定期的にデータをバックアップする必要がありますが,現時点で最も対応が面倒なパターンです。定期的なジョブを実行するSQL Server Agentに相当するサービスは,今のところSQL Azureでは提供されていません。そのため,定期的にデータをバックアップするためにDAC Frameworkなどを活用してWorkerロールに自分で実装する必要があります。

SQL Azureでは,定期的にバックアップをとる必要が無くなる対応が実施される予定です。Tech ED 2011 North Americaにて,発表されたPoint in time restoreが発表されました。Point in time restoreは,過去二週間以内の指定した日時の状態のデータベースをリストアすることができる機能です。二週間が要件に合致する場合は,本機能リリース後は定期的なバックアップの必要性が無くなります。今のところ機能提供の開始時期は発表されていません。

開発環境や評価環境の構築

本用途の場合,データベースの複製が必要になった段階で手動で作業ができれば問題ありません。SQL Azureで提供されているバックアップ方法は,本用途に適した方法です。SQL Azureで提供されているバックアップ方法は,Database Copyと「インポートとエクスポート」⁠⁠ExtractとDeploy」の3種類です※2)⁠

Database Copyは,T-SQLを発行して,同じSQL Azureサーバ内,もしくは同じデータセンター内の別のSQL Azureサーバにデータベースの複製を作成することができる機能です。評価環境の作成や,開発環境の作成に適しています。

Windows Azure管理ポータルで提供されている「インポートとエクスポート」は,データベース定義とデータをSQL AzureとWindows AzureストレージのBlob間で出し入れできる機能です。SQL Azure管理ポータルで提供されている「ExtractとDeploy」は,データベース定義とデータをSQL Azureとローカル間で出し入れできる機能です。

また,SQL Server 2012で提供されるSQL Server Management Studioでも「インポートとエクスポート」⁠⁠ExtractとDeploy」に相当する機能がウィザード形式で提供されます。

※2)
「インポートとエクスポート」⁠⁠ExtractとDeploy」は現在CTP版での提供です。

まとめ

SQL Azureでは,データファイル破損からの復旧については対応する必要がありません。しかし,大災害復旧対策の場合はSQL Azure Data Syncなどを使用して別のDCにデータを同期しておく必要があります。開発環境や評価環境の構築目的の場合,SQL Azureでは選択肢が充実しつつあります。

アプリケーションバグによるデータ不整合への対応の場合,活用できるソリューションが無いので,ユーザ側で実装が必要になります。

表2 バックアップの目的と必要な対応のまとめ

目的必要なデータ対応方法
データファイル破損からの復旧障害発生直前のデータ対応不要
大災害復旧対策可能な限り新しいデータSQL Azure Data Syncによるデータ同期
アプリケーションバグによるデータ不整合からの復旧数日前~2週間前のデータ何らかの実装が必要
⁠Point in time restore)
開発環境や評価環境の構築直近のデータ
作業直前のデータ
Database Copy
インポートとエクスポート
ExtractとDeploy

著者プロフィール

大和屋貴仁(やまとやたかひと)

Microsoft MVP for SQL Azure

2010年1月のWindows Azure正式リリース直後に,sqlazure.jpドメインを取得。ネタを探す日々ですので,SQL Azureで不明点があれば遠慮なくTwitterなどでご相談くださいませ。

Twitter:SQLAzureJP

URL:http://sqlazure.jp