もしもみなみんがDBをクラウドで動かしてみたら 連載Indexページ
※本記事は2020/05/18時点のものになります
みなさん、こんにちは。
今回は、Database Cloud Service (DBCS) と Exadata Cloud Service (ExaCS) 上のバックアップ・リカバリについて解説していきます。
目次
サービスを利用していくにあたり、利用している環境のインスタンスやデータが壊れてしまった場合や、過去の時点にデータを戻したい場合など、何か起きた時のデータ復旧のためにバックアップやリカバリについての検討は重要です。ですが、設計や運用の考慮が後回しになりがちなものの1つが、バックアップ・リカバリだったりもします。とはいえ、やはりデータが壊れてしまうと作業や業務継続ができなくなり、どんなシステムでも影響は少なからずあります。こういったことから、バックアップをとるという面では「オンラインでとれること」「バックアップを素早くとれること」「簡単にとれること」が大事になってきます。
バックアップの本来の目的は、バックアップをとること自体ではなくシステムをきちんと復旧できることです。一刻も早い復旧が求められているにも関わらず、すぐに戻せないケースは少なくありません。よくあるケースとしては、「リカバリを想定した運用や手順が用意されていない」「復旧作業時のオペミスが発生し、リカバリに失敗」「いざ戻そうと思っても使えないバックアップだった」といったものがあります。そういったことからも、リカバリ面では「簡単に復旧ができる」「きちんと戻せるバックアップをとっている」ことが大事になります。Oracle Databaseのバックアップ・リカバリ手法としては、これらのことを考慮されたOracle Recovery Manager(RMAN) を使ったバックアップ・リカバリが推奨です。DBCSやExaCSでは、RMANを利用した自動バックアップが機能が利用可能で、リカバリも最新時点やPoint in Time Recovery(PITR)の任意の時点まで復旧ができます。
Oracle Cloud上でデータベースのバックアップを取得する際の基本的な構成については、大きく分けて3つのパターンがあります。
クラウドの画面(コンソール)上からは、(2) 同一リージョン内のオブジェクト・ストレージに取得する構成が、簡単に設定可能です。(1)や(3)場合は、自動バックアップ設定はCLIやオブジェクト・ストレージのレプリケーション機能を利用することで設定可能となります。
自動バックアップは日次で初回ならびに日曜はフルバックアップ、それ以外は自動増分バックアップにて取得されます。デフォルトは、DBシステムのリージョンのタイム・ゾーンでの0時~6時に設定されますが、自動バックアップ設定時にバックアップ開始時間枠(UTC)を指定可能です。設定された時間枠内で、自動でバックアップ・ジョブが実行されます。保持期間は、7/15/30/45/60日のいずれかを選択可能です。指定した保持期間に必要なバックアップ以外の増分バックアップファイルは、自動的に削除されます。デフォルトのオブジェクト・ストレージへの取得の場合、その分のオブジェクト・ストレージの使用量が加算されます。バックアップについては、圧縮は有効、並列実行(DBCSのSE以外)など、デフォルトで設定がされています。エディションやシェイプなど、環境によって異なりますので、気になる方はRMAN の SHOW ALL コマンドで設定を確認してみてください。
なお、ExaCSのオブジェクト・ストレージでのバックアップ・リストアに関するベストプラクティスや性能に関して、下記のホワイトペーパーにまとめられているためご参照ください。
まずは、設定するにあたり前提条件を確認してみましょう。オブジェクト・ストレージに取得することを前提にまとめています。DBシステム内(FRA)にとる場合など、CLI(dbcliやbkup_api)で設定する場合には、バックアップはコンソールからの管理対象外となります。
1) 必要なエディション
特にリストア時間(RTO)の観点で、並列処理でのリストアができることはメリットになります。RTOが厳しい場合には、DBCSの場合はEnterprise Edition以上をおすすめします。
2) Oracle Cloudのインフラ側の前提条件
3) DBシステムとデータベースの状態
自動バックアップの機能が動作するためには、データベースが下記の状態である必要があります。下記の状態ではない場合、バックアップジョブが失敗する可能性があるのでご注意ください。その他にも、DBCS・ExaCSそれぞれの前提条件の最新情報は、下記のドキュメントをご確認ください
など
・Oracle Cloud Infrastructure ドキュメント DBCS 前提条件
・Oracle Cloud Infrastructure ドキュメント ExaCS 前提条件
DBCSの場合はDBシステム作成時、ExaCSの場合はDBシステム作成時もしくはDB作成時に、『データベース・バックアップの構成』の項目で『自動バックアップの有効化』にチェックを入れます。そして、『バックアップ保持期間』と『バックアップ・スケジューリング(UTC)』を必要に応じて選択してください。
自動バックアップの設定は、『データベース情報』から確認可能です。
データベースの作成後にも自動バックアップを有効化したり、設定済のバックアップ設定を変更、無効化することが可能です。
1.対象のデータベースの『データベースの詳細』ぺージの『自動バックアップの構成』をクリック
2.変更内容を選択の上、『変更の保存』をクリック
自動バックアップとは別に、フルバックアップを任意の時点で取得することが可能です。例えば、『大きな変更を加えた直後』や『別環境への複製やリストアのため』などで、フルバックアップを取っておくことで、フル+増分バックアップをリストアするよりもリストア時間の短縮が期待できます。
1. 対象のデータベースの『データベースの詳細』ページから、リソースの中の『バックアップ』を選択し、『バックアップの作成』をクリック
2. 識別するためのバックアップの任意の『名前』を入力し、『バックアップの作成』をクリック
対象のデータベースの『データベースの詳細』ページから、リソースの中の『バックアップ』を選択すると、そのデータベースのバックアップが一覧で表示されます。
また、オンデマンド・バックアップとして取得したフル・バックアップは、スタンドアロン・バックアップとして確認することができます。『ベア・メタル、VMおよびExadata』で『スタンドアロン・バックアップ』をクリックすると、スタンドアロン・バックアップの一覧が表示されます。
データベースを終了(削除)する際に、自動バックアップでとられたバックアップは削除されますが、オンデマンド・バックアップとして取得したフル・バックアップはスタンドアロン・バックアップとして残ります。上記のイメージだと、ソース・データベース"DGP"は利用中のデータベースなのでその詳細ページへのリンクがありますが、それ以外のソース・データベースは既に終了済のものになります。データベース削除後に再度バックアップを利用する可能性がある場合には、オンデマンド・バックアップを取得しておくといいでしょう。
リストアは、リストアに必要なバックアップならびにアーカイブログやREDOログがある『最新にリストア』、任意の時間の『タイムスタンプにリストア』『システム変更番号(SCN)にリストア』のいずれかを選択可能です。また、リストア先としてバックアップ元のデータベースに対してリストアする方法と、別DBシステム上もしくはDBCS-Bare Metal(BM)やExaCSの場合は同一システム上に別データベースとしてリストアする方法があります。
1.対象のデータベースの『データベースの詳細』ぺージの『リストア』をクリック
2.リストアしたい地点を選択の上、『データベースのリストア』をクリック
1. 「6. 取得されたバックアップの確認」のいずれかの方法でリストア対象のバックアップを表示し、『データベースの作成』をクリック
2. リストア先の『DBシステムの構成』について入力
3. リストア対象の『データーベースの構成』について入力
RESTORE VALIDATE コマンド例
[oracle@dgp ~]$ rman target / RMAN> RESTORE DATABASE VALIDATE CHECK LOGICAL;
バックアップの・ファイルの検証についての詳細は、下記の記事もぜひご参照ください。
しばちょう先生の試して納得!DBAへの道 第44回 Recovery ManagerのVALIDATEでリストア・リカバリに備える
取得されているバックアップは、元の場所にリストアするだけでなく、そのバックアップを使った新しいデータベースの作成にも有効です。「DBシステムが壊れた時の復旧方法」などの復旧手段としても使えますが、「(バックアップ地点の)複製データベースを作成したい」「開発・テスト環境を作りたい」「DBシステム間での移行の方法として使いたい」など、様々なケースで利用可能です。
Q1) バックアップを取る場合、別途コストがかかりますか
A1) デフォルトのバックアップ取得先はオブジェクト・ストレージになりますので、オブジェクト・ストレージの使用料がかかります
Q2) Oracle Database Backup Serviceというのがありますが、これはDBCSやExaCSのバックアップを利用する際に関係しますか
A2) DBCSやExaCSの自動バックアップを利用する際、こちらのサービスは関係しません。Oracle Database Backup Serviceで提供されるモジュールを使ってOCIのオブジェクト・ストレージにバックアップを取得する場合、例えばオンプレミスのデータベースのバックアップなどで関係してくるサービスとなります。Oracle Database Backup Serviceについてはこちら
Q3) 自動バックアップが失敗していたのですぐに対処したのですが、取れる状態になればリトライされますか
A3) 自動バックアップが失敗した場合、次の日のバックアップ・ウィンドウで再試行が行われます。
関連リンク
・Oracle Cloud Infrastructure ドキュメント DBCS データベースのバックアップ
・Oracle Cloud Infrastructure ドキュメント ExaCS Exadataデータベースのバックアップの管理