X

A blog about Oracle Technology Network Japan

  • May 18, 2020

第20回 DBのバックアップとリストア (DBCS/ExaCS) : もしもみなみんがDBをクラウドで動かしてみたら

Eriko Minamino
Solution Engineer

もしもみなみんがDBをクラウドで動かしてみたら 連載Indexページ

※本記事は2020/05/18時点のものになります

みなさん、こんにちは。

今回は、Database Cloud Service (DBCS) と Exadata Cloud Service (ExaCS) 上のバックアップ・リカバリについて解説していきます。

目次
  1. Oracle Databaseのバックアップとリカバリについて
  2. Oracle Cloudでの構成パターン
  3. DBCSとExaCSの自動バックアップ機能について
  4. 自動バックアップの前提条件と設定
  5. オンデマンド・バックアップの取得
  6. 取得されたバックアップの確認
  7. リストア(復旧)方法
  8. いざという時に使えるバックアップであるために
  9. まとめ
  10. よくある質問

 

1. Oracle Databaseのバックアップとリカバリについて

サービスを利用していくにあたり、利用している環境のインスタンスやデータが壊れてしまった場合や、過去の時点にデータを戻したい場合など、何か起きた時のデータ復旧のためにバックアップやリカバリについての検討は重要です。ですが、設計や運用の考慮が後回しになりがちなものの1つが、バックアップ・リカバリだったりもします。とはいえ、やはりデータが壊れてしまうと作業や業務継続ができなくなり、どんなシステムでも影響は少なからずあります。こういったことから、バックアップをとるという面では「オンラインでとれること」「バックアップを素早くとれること」「簡単にとれること」が大事になってきます。

バックアップの本来の目的は、バックアップをとること自体ではなくシステムをきちんと復旧できることです。一刻も早い復旧が求められているにも関わらず、すぐに戻せないケースは少なくありません。よくあるケースとしては、「リカバリを想定した運用や手順が用意されていない」「復旧作業時のオペミスが発生し、リカバリに失敗」「いざ戻そうと思っても使えないバックアップだった」といったものがあります。そういったことからも、リカバリ面では「簡単に復旧ができる」「きちんと戻せるバックアップをとっている」ことが大事になります。Oracle Databaseのバックアップ・リカバリ手法としては、これらのことを考慮されたOracle Recovery Manager(RMAN) を使ったバックアップ・リカバリが推奨です。DBCSやExaCSでは、RMANを利用した自動バックアップが機能が利用可能で、リカバリも最新時点やPoint in Time Recovery(PITR)の任意の時点まで復旧ができます。
 

 

2. Oracle Cloudでの構成パターン

Oracle Cloud上でデータベースのバックアップを取得する際の基本的な構成については、大きく分けて3つのパターンがあります。

  1. DBシステム内に取得 : DBシステム内の、高速リカバリ領域(FRA)のRECOディスク・グループに取得するローカル・バックアップ。データベースが稼働するDBシステム上に腹持ちする形なので、リストアの速度は速いが、対応可能な障害ケースとしてはDB障害となるため範囲が限られており、DBシステムが起動しなくなった場合には使えないバックアップとなる。そのため、DBシステム内にとるとしても、システム外にバックアップをとることが推奨。
  2. 同一リージョン内のオブジェクト・ストレージに取得 : コンソールからの自動バックアップ設定での構成。バックアップは、DBシステムの障害を想定し、バックアップをDBシステムと別の場所に置くことが推奨され、リストア時間も考慮し、この構成がデフォルト。
  3. 同一リージョンと異なるリージョン内のオブジェクト・ストレージに取得 : 同一リージョン内だけでなく、遠隔地として異なるリージョン内にもバックアップを取得する構成。前述の2ケースよりも可用性が高い構成となり、大規模障害時は異なるリージョンでの復旧が可能。

クラウドの画面(コンソール)上からは、(2) 同一リージョン内のオブジェクト・ストレージに取得する構成が、簡単に設定可能です。(1)や(3)場合は、自動バックアップ設定はCLIやオブジェクト・ストレージのレプリケーション機能を利用することで設定可能となります。

 

3. DBCSとExaCSの自動バックアップ機能について

自動バックアップは日次で初回ならびに日曜はフルバックアップ、それ以外は自動増分バックアップにて取得されます。デフォルトは、DBシステムのリージョンのタイム・ゾーンでの0時~6時に設定されますが、自動バックアップ設定時にバックアップ開始時間枠(UTC)を指定可能です。設定された時間枠内で、自動でバックアップ・ジョブが実行されます。保持期間は、7/15/30/45/60日のいずれかを選択可能です。指定した保持期間に必要なバックアップ以外の増分バックアップファイルは、自動的に削除されます。デフォルトのオブジェクト・ストレージへの取得の場合、その分のオブジェクト・ストレージの使用量が加算されます。バックアップについては、圧縮は有効、並列実行(DBCSのSE以外)など、デフォルトで設定がされています。エディションやシェイプなど、環境によって異なりますので、気になる方はRMAN の SHOW ALL コマンドで設定を確認してみてください。

なお、ExaCSのオブジェクト・ストレージでのバックアップ・リストアに関するベストプラクティスや性能に関して、下記のホワイトペーパーにまとめられているためご参照ください。

  • Cloud Object Storageを使用した、Oracle Cloud Infrastructure Exadataのバックアップとリストアのベスト・プラクティス 日本語 / 英語

 

4. 自動バックアップの前提条件と設定

まずは、設定するにあたり前提条件を確認してみましょう。オブジェクト・ストレージに取得することを前提にまとめています。DBシステム内(FRA)にとる場合など、CLI(dbcliやbkup_api)で設定する場合には、バックアップはコンソールからの管理対象外となります。

前提条件

1) 必要なエディション

  • 自動バックアップの機能は、DBCS/ExaCSともに全エディションで利用可能
  • DBCSの場合、並列実行(チャネル数やセクション・サイズの指定など)や高速増分バックアップなどを使う場合にはEnterprise Edition以上が必要

特にリストア時間(RTO)の観点で、並列処理でのリストアができることはメリットになります。RTOが厳しい場合には、DBCSの場合はEnterprise Edition以上をおすすめします。

2) Oracle Cloudのインフラ側の前提条件

  • 管理ユーザーのIAMサービス・ポリシーでの権限が付与済
  • DBシステムからオブジェクト・ストレージへのアクセス設定(VCNでサービス・ゲートウェイの利用がおすすめ)

3) DBシステムとデータベースの状態

自動バックアップの機能が動作するためには、データベースが下記の状態である必要があります。下記の状態ではない場合、バックアップジョブが失敗する可能性があるのでご注意ください。その他にも、DBCS・ExaCSそれぞれの前提条件の最新情報は、下記のドキュメントをご確認ください

  • DBシステム、データベースともに使用可能な状態(起動)
  • データベースのアーカイブログモードが有効(デフォルト有効) 
  • Data Guardアソシエーションに含まれるデータベースの場合、プライマリ・ロールであること
  • RMANコマンドを用いたRMANバックアップ設定を手動で変更されていないこと 

など

・Oracle Cloud Infrastructure ドキュメント DBCS 前提条件

・Oracle Cloud Infrastructure ドキュメント ExaCS 前提条件

 

データベース作成時の自動バックアップの設定方法

DBCSの場合はDBシステム作成時、ExaCSの場合はDBシステム作成時もしくはDB作成時に、『データベース・バックアップの構成』の項目で『自動バックアップの有効化』にチェックを入れます。そして、『バックアップ保持期間』と『バックアップ・スケジューリング(UTC)』を必要に応じて選択してください。

 

自動バックアップの設定内容の確認

自動バックアップの設定は、『データベース情報』から確認可能です。

 

データベース作成後の自動バックアップの設定・変更方法

データベースの作成後にも自動バックアップを有効化したり、設定済のバックアップ設定を変更、無効化することが可能です。

1.対象のデータベースの『データベースの詳細』ぺージの『自動バックアップの構成』をクリック

2.変更内容を選択の上、『変更の保存』をクリック

 

5. オンデマンド・バックアップの取得

自動バックアップとは別に、フルバックアップを任意の時点で取得することが可能です。例えば、『大きな変更を加えた直後』や『別環境への複製やリストアのため』などで、フルバックアップを取っておくことで、フル+増分バックアップをリストアするよりもリストア時間の短縮が期待できます。

1. 対象のデータベースの『データベースの詳細』ページから、リソースの中の『バックアップ』を選択し、『バックアップの作成』をクリック

2. 識別するためのバックアップの任意の『名前』を入力し、『バックアップの作成』をクリック

 

6. 取得されたバックアップの確認

対象のデータベースの『データベースの詳細』ページから、リソースの中の『バックアップ』を選択すると、そのデータベースのバックアップが一覧で表示されます。

また、オンデマンド・バックアップとして取得したフル・バックアップは、スタンドアロン・バックアップとして確認することができます。『ベア・メタル、VMおよびExadata』で『スタンドアロン・バックアップ』をクリックすると、スタンドアロン・バックアップの一覧が表示されます。

データベースを終了(削除)する際に、自動バックアップでとられたバックアップは削除されますが、オンデマンド・バックアップとして取得したフル・バックアップはスタンドアロン・バックアップとして残ります。上記のイメージだと、ソース・データベース"DGP"は利用中のデータベースなのでその詳細ページへのリンクがありますが、それ以外のソース・データベースは既に終了済のものになります。データベース削除後に再度バックアップを利用する可能性がある場合には、オンデマンド・バックアップを取得しておくといいでしょう。

 

7.リストア(復旧)方法

リストアは、リストアに必要なバックアップならびにアーカイブログやREDOログがある『最新にリストア』、任意の時間の『タイムスタンプにリストア』『システム変更番号(SCN)にリストア』のいずれかを選択可能です。また、リストア先としてバックアップ元のデータベースに対してリストアする方法と、別DBシステム上もしくはDBCS-Bare Metal(BM)やExaCSの場合は同一システム上に別データベースとしてリストアする方法があります。

バックアップ元のデータベースに対してリストア

1.対象のデータベースの『データベースの詳細』ぺージの『リストア』をクリック

2.リストアしたい地点を選択の上、『データベースのリストア』をクリック

別データベースとしてリストア

1. 「6. 取得されたバックアップの確認」のいずれかの方法でリストア対象のバックアップを表示し、『データベースの作成』をクリック

2. リストア先の『DBシステムの構成』について入力

  • DBCS-VMの場合は『新規DBシステムの作成』を選択し、新規でDBシステムを作成する時と同様の内容を入力。DBCS-BMの場合は『既存のDBシステムを使用』もしくは『新規DBシステムの作成』を選択し、DBシステムを選択するもしくは情報を入力
  • ExaCSの場合はリストア先のDBシステムを選択

3. リストア対象の『データーベースの構成』について入力

 

8.いざという時に使えるバックアップであるために

  • RMANのRESTORE VALIDATEコマンドを使ったバックアップ・ファイルの検証。リストアは実行せずに、バックアップの破損などを検出することができます。検証中の負荷を考慮し、検証できるタイミングに定期的に実行していただくことが推奨です。

RESTORE VALIDATE コマンド例

[oracle@dgp ~]$ rman target /
RMAN> RESTORE  DATABASE VALIDATE CHECK LOGICAL;
  • リストア・リカバリのテスト。いざという時に復旧ができるように、定期的に復旧テストの実施をご検討ください。この場合、ソース・データベースへのリストアをしてしまうと利用中のデータベースに影響があるので、別のデータベースとして作成するという形でリストア検証をすることをおすすめします。

バックアップの・ファイルの検証についての詳細は、下記の記事もぜひご参照ください。

しばちょう先生の試して納得!DBAへの道 第44回 Recovery ManagerのVALIDATEでリストア・リカバリに備える

9.まとめ

取得されているバックアップは、元の場所にリストアするだけでなく、そのバックアップを使った新しいデータベースの作成にも有効です。「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データベースのバックアップの管理

もしもみなみんがDBをクラウドで動かしてみたら 連載Indexページ

Be the first to comment

Comments ( 0 )
Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.