Snapshot too old.
Your rollback segments aren't sized big enough, oracle cannot create read consistent view of data.
scenario
User A updates emp, starts long running transaction and doesn't commit.
User B queries emp with long running transaction. Because Oracle is read consistent it will try and get a snapshot of the data at the time User B starts his transaction.
User A commits.
User C overwites User A's commited rollback segment data with his own update.
User B's query reaches the point where it needs to get rollback segment data prior to User A's update. Can't get it as User C has overwritten it. Result - User B gets Snapshot too old.
Solution : Larger rolback segments with larger minextents, initial, next size.
Once you have eliminated all of the impossible,
whatever remains however improbable,
must be true.
Bookmarks