■例題2
誤って表のすべてのデータをDELETEし、コミットしてしまいました。この表のデータを元に戻すためにフラッシュバックテーブルを使用します。フラッシュバックテーブルの動作として正しいものをすべて選択してください。
a.削除してしまったデータはUNDO表領域から取り出される
b.削除してしまったデータはREDOログから取り出される
c.データは元に戻るが表に定義されていた制約や索引は無効になる
d.データとともに表に定義されていた制約や索引も元に戻る
e.表に外部キーが設定され依存表が存在していた場合、依存表はフラッシュバックできない
■例題の範囲をおさらい
参考:「Oracleのデータを復元する」
フラッシュバックテーブル機能は、表のすべてのデータを削除してしまった、あるいは表のデータを誤った内容で更新しコミットしてしまったというような場合に、表のデータを過去の状態に戻すことができます。
バックアップからリストアを実行することなく、簡単に指定した時点の状態に戻すことが可能です。削除前のデータはUNDO表領域から取り出されます。
フラッシュバックテーブルを使用するには、以下の条件が必要です。
■正解
a、d
■解説
選択肢a:削除したデータは、UNDO表領域から取り出されます。このためUNDO表領域にフラッシュバックするデータが保存されている必要があります。
選択肢b:削除したデータは、REDOログからは取り出されません。
選択肢c:表に定義されていた制約や索引は無効にはなりません。フラッシュバックテーブルを実行すると、その表のデータが指定した過去の状態に戻るとともに、表に定義されていた索引や制約などの関連オブジェクトのデータも同時に元に戻ります。
選択肢d:フラッシュバックテーブルにより、データとともに表に定義されていた制約や索引も元に戻ります。
選択肢e:表に外部キーが設定され依存表が存在していた場合、依存表も同時にフラッシュバックすることが可能です。フラッシュバックテーブルの実行時に、依存表も同時にフラッシュバックするかしないかを指定することができます。
よって、正しいものはa、dです。
■例題3
フラッシュバックドロップの説明として誤っているものをすべて選択してください。
a.表とともに表に定義されていた制約や索引も元に戻る
b.SYSTEM表領域内の表はフラッシュバックドロップできない
c.パージした後は、フラッシュバックドロップを使用して削除した表を元に戻すことはできない
d.削除してしまった表はUNDO表領域から取り出される
■例題の範囲をおさらい
参考:「Oracleのデータを復元する」
フラッシュバックドロップ機能は、削除された表を元に戻します。
DROP TABLE文で削除された表は、一度ごみ箱へ格納されます。フラッシュバックドロップを実行することで、ごみ箱から表データを取り出し、復活させることができます。
ただし削除後にパージしてしまうと、フラッシュバックドロップで元に戻すことはできません。パージ後に表を元に戻す場合はフラッシュバックデータベースが最適です。表を削除する権限があれば、フラッシュバックドロップを使用することができます。
■正解
d
■解説
選択肢a:フラッシュバックドロップにより、表に定義されていた制約や索引も元に戻ります。
選択肢b:SYSTEM表領域内の表は削除と同時にパージされるため、SYSTEM表領域内の表はフラッシュバックドロップできません。
選択肢c:表を削除し、パージした後は、フラッシュバックドロップを使用して元に戻すことはできません。フラッシュバックドロップで削除した表を元に戻せるのは、削除した表がごみ箱に格納されている場合です。パージしてしまった場合は、フラッシュバックデータベースなどを使用して元に戻すことができます。
選択肢d:削除した表データは、UNDO表領域ではなくゴミ箱から取り出されます。
よって、誤っているものはdです。
■まとめ
次の内容をチェックしましょう。
フラッシュバックテーブル、フラッシュバックドロップの機能および実行時の動作について、しっかりと覚えておきましょう。
次回は、データベース監視とアドバイザの使用について、間違いやすい点にポイントを絞って説明します。
【関連キーワード】
▼データベーススキル
Copyright © ITmedia, Inc. All Rights Reserved.