16 ✓初期化パラメーター undo_tablespace ✓インスタンスが使用する UNDO 表領域名を指定する ✓指定しない場合は使用可能な UNDO 表領域が自動的に設定される ✓RAC / RAC One Node 環境ではインスタンス単位に独立した UNDO 表領域を指定する ✓複数インスタンスで同一 UNDO 表領域を使おうとした場合 SQL> ALTER SYSTEM SET undo_tablespace = UNDOTBS1; ALTER SYSTEM SET undo_tablespace = UNDOTBS1 * ERROR at line 1: ORA-02097: parameter cannot be modified because specified value is invalid ORA-30013: undo tablespace 'UNDOTBS1' is currently in use
LP 25 ✓UNDO 表領域領域不足 ✓ORA-30036: unable to extend segment by {#id} in undo tablespace {tablespace_name} ✓ORA-01650: unable to extend rollback segment {name#1} {name#2} in tablespace {tablespace_name} ✓更新 DML 自体がエラーになる ✓必要な対応 ✓UNDO 表領域を拡大する(データファイルの追加または拡大) ✓例 SQL> DELETE FROM data1; DELETE FROM data1 * ERROR at line 1: ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS2'
✓UNDO データの参照エラー ✓ORA-01555: snapshot too old: rollback segment number {#id} with name {name} too small ✓必要な UNDO レコードが上書きされている ✓更新トランザクションにエラーは発生しないが、過去 SCN を参照する検索にエラーが発生 ✓必要な対応 ✓UNDO 表領域の拡大 ✓初期化パラメーター undo_retention の拡大 ✓UNDO 表領域の RETENTION GUARANTEE 設定 ✓例 SQL> SELECT count(*) FROM data1; SELECT count(*) FROM data1 * ERROR at line 1: ORA-01555: snapshot too old: rollback segment number 23 with name "_SYSSMU23_2432033955$" too small
✓参考となる情報 ✓Undo Related Wait Events & Known Issues (Doc ID 1575701.1) https://support.oracle.com/knowledge/Oracle%20Database%20Products/1575701_1.html ✓UNDO保存期間の自動チューニングの問題 (Doc ID 2374515.1) https://support.oracle.com/knowledge/Oracle%20Database%20Products/2374515_1.html ✓Solving UNDO Corruption (Doc ID 1950230.1) https://support.oracle.com/knowledge/Oracle%20Database%20Products/1950230_1.html ✓遅延ブロッククリーンアウトの性能対策/JPOUG Tech Talk Night #8 https://speakerdeck.com/takahashikzhr/jpoug-tech-talk-night-number-8