■例題3
UNDO表領域およびUNDOデータに関する説明として、正しいものをすべて選択してください。
a.UNDO表領域は複数作成することができる
b.UNDOデータは、トランザクション変更前後のデータである
c.UNDO表領域は、多重化することが推奨される
d.UNDO保存期間を指定する初期化パラメータUNDO_RETENTIONは、分単位で指定する
e.UNDOデータを使用し、フラッシュバック機能が実現できる
f.UNDO保存期間で設定した期間内のUNDOデータは必ず保証される
■例題の範囲をおさらい
UNDO表領域は、UNDOデータを管理するための領域です。UNDOデータは、トランザクションによって変更されたコミットされていない値を、明示的もしくは暗黙的なロールバックにより変更前の値に戻すために使用します。
読み取り一貫性を保証しているため、あるユーザーがデータの変更を行っている最中に別のユーザーが問い合わせを行った場合は、UNDOデータから確定されているデータを戻します。
UNDOデータを利用して、フラッシュバック問い合わせやフラッシュバックテーブルなどのフラッシュバック機能を使用し、以前のある時点のデータを表示したり、リカバリしたりすることも可能です。
UNDO表領域のUNDOデータは循環利用され、期限切れのUNDOデータ(コミット済みのもの)から上書きされますが、UNDO保存期間(UNDO_RETENTION)で設定した期間内のUNDOデータは保証されます。
ただし、UNDO表領域のサイズが不十分な場合、UNDO保存期間内のUNDOデータも上書きされてしまう可能性があります。長時間UNDOデータを保存する必要がある場合は、大きなUNDO表領域を用意するか、UNDO表領域を自動拡張にしておくかする必要があります。
長時間実行される問い合わせでは、古いUNDOデータが必要になることがあります。このため、UNDO保存期間は長めに設定することが推奨されます。
Oracle Enterprise Managerでは、「UNDO管理」ページの「UNDOアドバイザ」にて、最適なUNDO保存期間やUNDO表領域のサイズなどの分析が可能です。
■正解
a、e
■解説
選択肢a:UNDO表領域は、複数作成することができます。ただしアクティブにできるUNDO表領域は1つのみです。
選択肢b:UNDOデータは、トランザクション変更前のデータです。変更後のデータは保存されません。
選択肢c:UNDO表領域を多重化することはできません。
選択肢d:Oracle Enterprise Managerの「UNDO管理」ページには分単位で表示されますが、初期化パラメータUNDO_RETENTIONでは秒単位で指定します。
選択肢e:UNDOデータにより、フラッシュバック機能が利用できます以前のある時点のデータを表示したり、リカバリしたりすることが可能です。
選択肢f:UNDO表領域のサイズが不十分な場合、UNDO保存期間で設定した期間内のUNDOデータを確保できず、上書きされてしまうことがあります。
よって、正しいものはa、eです。
■まとめ
次の内容をチェックしましょう。
次回は、ユーザーおよびセキュリティの管理について、間違いやすい点にポイントを絞って説明します。
Copyright © ITmedia, Inc. All Rights Reserved.