完全リカバリのUNDOデータの由来、扱いについて教えて下さい。
完全リカバリの大まかな流れとして、
1.リストア
2.アーカイブ、オンラインREDOログでロールフォワード
3.UNDOでロールバック
4.完了
となるかと思いますが、
UNDOデータはどこから持ってころれるのでしょうか?
もしUNDO表領域から持ってくるのであれば、ロールフォワード分をロールバック出来るだけのUNDOが残ってる保証はないかもしれない、と疑問を持ちました。
(現実的にはまずないのかもしれませんが)
となると、完全リカバリが失敗するケースもあるのでしょうか?
No.6ベストアンサー
- 回答日時:
No.4の方の回答を補足すると、
> 2.アーカイブ、オンラインREDOログでロールフォワード
するときに、REDOログに記録されたトランザクションが再実行されます。
「更新トランザクションが再実行される」=「更新に伴うUNDOデータが再生成される」
となるので、「2.」が完了した時点で、
「ロールバックに必要なUNDOデータはREDOログを元に再生成済み」
の状態になっています。
従って
> 3.UNDOでロールバック
は、「2.」で再生成済みのUNDOデータを使ってロールバックすることになります。
余談ですが、この挙動はOracleだけの話であり、他のDBMSソフトウェアでは
また異なる動きをしているので注意してください。
No.5
- 回答日時:
アーカイブREDOログとオンラインREDOログが生き残っていればOKです。
11gのドキュメントが見つからなかったので10gのドキュメントです。
バックアップおよびリカバリ基礎
http://otndnld.oracle.co.jp/document/products/or …
22ページと23ページを参照してください。
>UNDOセグメント
>通常、データ・ファイル内のデータを更新すると、そのデータの変更前のイメージがUNDO
>セグメントに書き込まれます。トランザクションがロールバックされると、このUNDO 情報を
>使用して、元のデータ・ファイルの内容がリストアされます。
>
>リカバリの処理では、UNDO 情報は、データ・ファイルのすべての変更がREDOログから
>データ・ファイルに適用された直後に、コミットされていないトランザクションの影響を元に
>戻すために使用されます。データベースは、UNDO が適用される前にオープンされます。
>バックアップおよびリカバリ処理の中では、UNDO セグメントに関与する必要も、これを直接
>管理する必要もありません。
おそらく大規模の更新処理中に障害が発生した場合などを想定しているとは思いますが、
アーカイブREDOログとオンラインREDOログさえ残っていればコミット済みのデータは保証されます。そのためのRedoログです。
疑問点があるならバックアップ・リカバリは納得がいくまで試しておいた方がよいですよ。
回答ありがとうございました。
>アーカイブREDOログとオンラインREDOログさえ残っていればコミット済みのデータは保証されます。そのためのRedoログです。
それは何となくわかってはいたのですが、なぜ保証できるのかが飲み込めてませんでした。
UNDOを適用する際、そのUNDO表領域も障害が発生していたら。。。とか。
マニュアルや参考書からは、UNDOにデータ残ってれば~みたいに読めてしまいまして。。^^;
No.4
- 回答日時:
Oracleの場合、UNDOの情報もREDOログに書き込むからです。
なので、完全リカバリの場合、UNDO情報を復旧し、そこからCOMMITしていない分のロールバックが可能です。
回答ありがとうございました。
No.6さんの補足がないとちょっと難しかったです^^;
でも勉強になりました。
ありがとうございました。
No.2
- 回答日時:
>ただ、ちょっと回答の意味がわからないです
私にもわかりませんが、システム管理者から見た場合と、オラクル単体で考える場合と、見方が違います。特に規模が大きくなると、システム=オラクルなんて、同等に扱われます(ストレージ系のクラスターを含むので)。
オラクルはものすごくスケラビリティーがあり、いろんなレベルのバックアップも用意されていると言うことです。
それよりも私は、この質問の趣旨がわかりません。単にマニュアルに書いて在るので読めば分かるレベルですよ。ネットで検索してもでてきますが・・・
http://download.oracle.com/docs/cd/E16338_01/ser …
http://docs.oracle.com/cd/E16338_01/server.112/b …
など、オンラインマニュアルにでている事では違うという事でしょうか? 分からない箇所を具体的に指摘してオラクル専門掲示板で質問してください。
回答ありがとうございましました。
1.リカバリからロールフォワード→ロールバックする際、UNDO データが使用される
2.でもUNDOデータは、保存期間の保証はRETENTION GUARANTEEが有効の場合のみだったはず
3.ということはトランザクション中のUNDOデータは無い可能性があるのではないか(今となってはここが間違い)
4.つまり、完全リカバリに失敗する可能性がある
という思考回路でした。
質問した背景としては、OracleMasterの試験勉強中に発生した疑問を質問させていただいた次第です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 高齢者・シニア 「運動能力」と「学力」の相関関係 1 2022/07/01 09:56
- USBメモリー・SDカード・フラッシュメモリー 完全無料のデータ復旧ソフトはありますか? SDカードの写真データを誤って消してしまいました。 データ 5 2023/05/05 09:55
- USBメモリー・SDカード・フラッシュメモリー SDカードの修復について 4 2022/08/30 08:24
- 飲み物・水・お茶 茶葉 2 2023/04/23 20:55
- ソフトウェア スマホからパソコンに繋がっているUSBにデータを移行した場合、 パソコン側に(復元される可能性がある 1 2022/06/12 21:57
- Windows 10 BitLocker 回復キーの入力 1 2022/10/09 15:23
- 野球 北海道に住んでる人達の中で日本ハムを全く応援しない人達が中にはいるけど、北海道の全放送局と非常にうる 5 2022/08/12 13:47
- バックアップ データのバックアップの仕方について 2 2022/06/29 17:15
- Windows 10 Mcfeeの「抹消」を実行すれば、そのファイルが完全に消去された分 PCの空き容量は増えますか? 5 2023/05/06 14:40
- InternetExplorer(IE) リカバリでエクセルの中身が消えた 1 2022/03/27 14:04
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
DB(oracle)のフルバック容量...
-
誰か・・お願い。。オラクルの...
-
Oracleデータベースの復旧方法
-
まるごとバックアップ→リカバリ...
-
ORA-01013のエラーについて経験...
-
AccessでORA-01114
-
トレースファイルの削除スクリプト
-
PL/SQL PLS-00103エラーについて
-
はじめまして!
-
シェルスクリプトでオラクルの...
-
DOSプロンプトとコマンドプロン...
-
CASE文のエラーについて
-
ACCESS:保存済みのインポート...
-
DATABSE LINKについて
-
4GB = 4096MB ではない?
-
8iで保存したDMPデータの...
-
Console.ReadLine()で、入力デ...
-
PL/SQLのコンパイルエラーにつ...
-
ACCESSでパススルークエリにパ...
-
DBCDで作られた USERS(表領...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
レストア時の空き容量不足について
-
Oracleデータベースの復旧方法
-
DB(oracle)のフルバック容量...
-
RMANのlist backup コマンド
-
ノートンインターネットセキュ...
-
Oracleのarchivelogアーカイブ...
-
RMANを使用してのバックアップ...
-
RMAN(Oracle9i)を使ったDB移行
-
ARCserve Agent for Oracleでの...
-
フラッシュバックデータベース...
-
Oracle別バージョンの移行
-
ORACLE9iのリカバリ方法
-
インスタンスリカバリとメディ...
-
リストアとリカバリの違い
-
MSDE2000SP4のデータベースをMS...
-
10gのバックアップ方法とリスト...
-
Oracle9iのTEMPORARYファイルの...
-
iTunesに接続
-
ORA-01013のエラーについて経験...
-
CASE文のエラーについて
おすすめ情報