Azure SQL Databaseのバックアップを調べる

ここ最近はAzureの最新の話題を追っかけてきましたが、また改めて基礎、基本に戻り、バックアップについての第三弾、つまり、VM、ストレージと今まで書いてきましたので、SQL Databaseのバックアップについて見ていきたいと思います。
バックアップはこれでひと段落と。。と書いたところでふと思い出したのですが、あとはWebシステムによく使われるのはApp Servicesでしょうか。
軽く先ほど検索してみると当たり前ではありますが、App Servicesもバックアップ方法が存在しているので近々に確認してみたいと思います。
恐らくそれで本当にバックアップにについて調べるのは一旦終わりにすると思います。

SQL Databaseもストレージと同様比較的簡単にバックアップの取得と復元ができます。
詳しい内容はAzureのドキュメントを読んでもらうとして、簡単に手順と気付いたことをまとめていきたいと思います。

まずはバックアップとは関係ないのですが、わかったことがありまして、今回バックアップを試すにあたって、サンプルデータを作る必要があると考えていました。
SQLを流すだけなので特に問題ではなく、ネットに落ちているだろうとも思っていたのですが、やはり手間はなるべく減らしたい。
と思っていたら、SQL Databaseの作成時に以下のようなものを見つけました。

画面に書かれている通り、サンプルがこの時点で作れるのです。
AdventureWorksというデータはSQL Server用にも用意されていて、以下のサイトからダウンロードできます。

SSMSで見てみるとテーブル1つだけとかいったレベルではなく、以下のようにそれなりのテーブル、データが揃っています。
まあ、バックアップの確認だけなので今回はテーブル1個とかでも全然良いのですが。。
とにかく手軽にこのレベルのテストデータが作れますので、今後Azureの機能を色々調べるにあたっても色々使えそうな気がします。

さて、本題となるバックアップですが、まずは今回Azureのドキュメントより「同じサーバー上に、保有期間内の特定の時点に復旧された新しいデータベースを作成する。」ということを試してみたいと思います。
導線は2つありまして、1つはSQL Serverから左側のメニューで「バックアップ」を選択。


もう1つはSQL Databaseの上の部分のタブから「復元」を選択します。

すると以下のような画面になりまして、復元ポイントや復元先のデータベース名を選択することができます。

そして、復元ポイントの内容を持つデータベースが新しく作られます。
私の文章から、あるいは実際に作成して気付いた(というほどではないですが)方もいるかもしれませんが、この方法はあくまで「新しいデータベースをもう1つ作る」になります。
ストレージの場合は現在のストレージに以前の内容が復元されましたが、データベースは異なります。

単に今のシステムに影響なく、昔のデータを取得したいという場合はこれで全く問題無いと思います。私も実際に3、4年前、この復元を案件で実践したことがあり、お客様はこのバックアップの存在を知らなかったので非常に感謝され、「本当に特に何もしてないのになぁ」とAzureの便利さに感心したことを今でも覚えています。
ただ、新しく作ることになりますので現在稼働しているシステム上のデータベースはそのままです。
もしその現在稼働中のデータベースに以前の状態で復旧させたいのであれば、このやり方ですと

  • 新しく復元したデータベースに接続し直す

  • 復元したデータベースからデータをエクスポートして、既存のデータベースにインポートする

といった方法になるかと思います。前者は接続するサーバー側のソースコードの修正等も発生する可能性もありますし、そこまでいかずとも何らかの設定変更が必要となり、リスクが高そうですのでやるなら後者でしょうか。
と、書いているうちに復元が完了し、SSMSで見てみると以下のように新しくデータベースが作られていることが確認できます。

先に書いた通り、単に別のデータベースとして復元するだけでよければ、逆に言えば既存のデータベースには影響がないということですので安心・安全に復元ができます。

今回はもう1つ、私自身としても新しい試みとして「削除されたデータベースの復元」をやってみたいと思います。
まずは既存のデータベースを削除します(もし私の記事を見て試される方はくれぐれもそのデータベースを削除してしまって問題無いか、ご注意ください。。)。
そして、SQL Serverの「削除されたデータベース」を選択すると以下のように削除したデータベースが表示されます。
ちなみに削除してすぐは表示されませんのでご注意ください。私が試した場合も5分ぐらい?はかかったかなと。

上の画面で対象となるデータベースを選ぶと、1つ前の復元時と同様、データベース作成のウィザード画面になりますので、そこで作成して。。という流れです。
もし間違って削除した場合もこのように簡単に復元ができます。とはいえ、あまり実際にこれを使う機会が発生することは想像したくないですね。。
背中がゾワゾワします。
さて、最後に注意点ですが、復元したデータベース、こちらもコストがかかります。つまり、そのままにしておくと現行のものと復元したもの、2倍のコストがかかってしまうため、くれぐれもご注意ください。


いいなと思ったら応援しよう!