ORA-01555: Snapshot too old: rollback segment number too small(スナップショットが古すぎる)
Oracle意味
長時間実行中のクエリが、開始時点の読み取り一貫性イメージを構築するのに必要な古い undo データにアクセスできなかった。その undo 情報が上書きされたため。
原因
小さい undo 表領域、短い UNDO_RETENTION、非常に高負荷な同時 DML 中の長時間クエリ、またはクエリ内で同じテーブルに対してコミットするループ (fetch across commit)。
対処方法
UNDO_RETENTION を増やし、undo 表領域を拡大する。可能なら自動管理 (AUTOEXTEND on) に任せる。長いクエリを小さく分割するか、オフピークに実行する。RETENTION GUARANTEE を検討する: ALTER TABLESPACE undotbs1 RETENTION GUARANTEE。ループ内でコミットするアプリケーションロジックを修正する。
同じデータベースの他の項目
- ORA-00054Resource busy and acquire with NOWAIT specified or timeout expired(リソースがビジー。NOWAIT 指定またはタイムアウト)
- ORA-00060Deadlock detected while waiting for resource(リソース待機中にデッドロックを検出)
- ORA-01017Invalid username/password; logon denied(ユーザー名/パスワードが無効。ログオン拒否)
- ORA-01652Unable to extend temp segment by N in tablespace(表領域で一時セグメントを拡張できない)
- ORA-04031Unable to allocate N bytes of shared memory(共有メモリを割り当てられない)
- ORA-12154TNS: could not resolve the connect identifier specified(接続識別子を解決できない)
- ORA-12514TNS: listener does not currently know of service requested in connect descriptor(リスナーが要求されたサービスを認識していない)