- 締切済み
オラクルのバックアップ・リカバリについて
入社一年目(ようやく丸一年)の新人です。文章に不備があるかもしれませんがご教授ください。 Windows上でOracle10gをアーカイブログモードで運用しているバックアップの設計を行っています。 そこで、次のように行いたいと思っています。 月~土がオンラインバックアップ(ホットバックアップ) 日曜日はオフラインバックアップ(コールドバックアップ) ここで、質問なのですが、次のようなことがしたいと考えています。 オンラインバックアップの取得方法などの資料をみると、すべてのデータファイルを取得することが 書かれていますが、オンラインバックアップでは、データファイルは取得せず、 日曜日のオフラインバックアップで取得したバックアップにオンラインバックアップで取得した アーカイブログ・オンラインREDOログを適用しリカバリすることは可能なのでしょうか? たとえば、水曜日にDBがクラッシュしたとした場合。 (1)日曜日のオフラインバックアップで日曜日の状態に復旧する。 (2)火曜日に取得したオンラインバックアップを使用し、 日曜日のオフラインバックアップ以降のアーカイブログと、オンラインRedoログを適用し、 火曜日の状態に戻す。 こういったことって可能なのでしょうか? また、関連するホームページなどありましたら教えてください。 わかりにくい文章で申し訳ありませんがよろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- gdcootie
- ベストアンサー率42% (3/7)
10gからだとフラッシュバックログもとれるようになっていますので、1日分くらいは取得してもいいかもしれません。 アーカイブログの適用だと一旦過去に戻して現在を適用していきますが、フラッシュバックはその逆で現在から過去にさかのぼり、現在に戻すことで調整します。 bigin backup〜はアーカイブ出力を抑制するためUNIXシステムのディスクアレイBCV同期を行うために使用するのが一般的であると思います。
- entree
- ベストアンサー率55% (405/735)
障害復旧時に必要なのは、ある時点でのコールド完全バックアップ (全てのデータファイルおよび1つの制御ファイル)、その時点からの全てのアーカイブログファイル、障害発生時点でアーカイブされていない REDO ログファイルです。これらが全て揃っていれば、フルバックアップが1週間に1回であろうと2週間に1回であろうとリカバリは可能です。つまり、ご質問の回答としては「可能」ということになります。 その他には、リカバリ・マネージャ (RMAN) を使うことでバックアップを容易にすることができます。これにより、運用中でもフルバックアップを取得することが出来ますし、さらに Enterprise Edition をご利用の場合は差分バックアップを行うことも可能です (どちらもバックアップ中は高負荷になるのであまり現実的じゃないような気がしますが)。 あと、考えられる方法は、ALTER DATABASE BEGIN BACKUP コマンドでデータファイルをバックアップモードにして全てのデータファイルを順番にバックアップしていく方法 (ホッとバックアップ) があります。この方法を使う場合の最大の注意点として、制御ファイルのバックアップ (ALTER DATABASE BACKUP CONTROL FILE TO path; で取得可能) を最後に行う必要があるということ、バックアップ中は REDO の生成量が増加することです。また、この方法の場合は全てのデータファイルの一貫性が取れていないので、障害時にはそれらをリストアするだけではデータベースを OPEN することができず、リカバリを行う必要があります (つまり、最も古いバックアップ・データファイルのタイムスタンプからのアーカイブログファイルが必要)。
できますよ。 というか、それが一般的だと思います。 アーカイブログモードでの運用をするには、まず最初に全体のコールドバックアップをすると思います。 それが日曜日の運用に当たるでしょう。 何も難しいことはないと思うのですが。
お礼
この一言で霧が晴れた気がします。 オンラインバックアップにはフルバックアップと増分バックアップがあって リカバリをする場合は、オンラインフル(全てのデータファイル含む)のみ もしくは、オフラインバックアップ+オンライン増分(データファイルを取得しない) でオンラインバックアップを取得した状態まで戻せるということですね。 なるほど、私が見ていた資料では、オンラインバックアップには、 全てのデータファイルは必須のように書いてあったので、戸惑ってしまいました。 どうも、ありがとうございました。
お礼
詳しく回答いただきありがとうございます。 ホットバックアップの取得方法の資料を見ていたら、バックアップ対象のファイルの中に、 「表領域のデータ・ファイル (ローカル管理一時表領域のファイルを除く)」という項目があり、 「ALTER DATABASE BEGIN/END BACKUP」コマンドを実行し、云々の手順が書いてあったため、 オンライン中に取得するバックアップは、この方法でやるしかないのかなと誤解しておりました。 コールドバックアップ+その時点からの全てのアーカイブログファイル、障害発生時点で アーカイブされていない REDO ログファイルさえあればリカバリ可能ということですね。 すごく良くわかりました。また、バックアップ取得時の注意事項など大変参考になりました。 ありがとうございました。