前回は、UNDO表領域の削除を行った。UNDO_RETENTIONで設定した期間内でもUNDO表領域が削除でき、フラッシュバック問合せができなくなった。前回紹介できなかったが、UNDO表領域の削除・変更で注意する点がもう1つある。それはSYSTEMロールバック・セグメントについてである。域に作成されるが、これはOracleが内部的な処理を実行するために使用されるもので、一般的な用途では使用されない。データベースを起動させる前に、初期化パラメータ(UNDO_TABLESPACE)を「”」(2つの一重引用符)に設定すると、使用可能なUNDO表領域に自動的に割当てて起動する。UNDO表領域が使用可能な状態なら問題ない。動的にSQL文から「”」を設定すべきではない。使用可能なテーブルスペースを確認する。UNDOTBS_01現在使用中のUNDO表領域は、UNDOTBS_01である。ここで、パラメータ値を「”」(2つの一重引用符)に変更する。ALTERED.使用UNDO表領域を確認する。STRINGVALUEの値が何も入っていない状態になった。現在のロールバック・セグメントの使用状態を確認する。0使用しているロールバック・セグメントはSYSTEMだけになっている。ここで、INSERT文を発行してみる。'MAG'やはりSYSTEMしか利用可能になっていなかったのでエラーになってしまった。ALERTログを見ると以下のようになっていた。可能だったにもかかわらず、何も選択されない状態になり、現在使用しているUNDO表領域の割当てを解除してしまった。そのため、SYSTEMロールバック・セグメントのみが使用可能な状態になり、エラーになった。動的に、UNDO_TABLESPACE=”とは設定すべきではないということになった。SYSTEMロールバック・セグメントだけで説明が終わってしまったが、次回こそ、V$UNDOSTATを使用してUNDO_RETENTIONについて検証していきたい。reserved.トップページ企業概要プライバシーポリシ。