Oracle 8i中回滚段使用和ORA-1555
2007-05-10 12:20:34 来源:WEB开发网6. Read the last undo block (Uba).
7. Compare the block transaction ID with the transaction table transaction ID. If the Transaction ID in the undo block doesnt equal the Transaction ID from the Transaction Table, then issue ORA-1555, Snapshot Too Old. 表示回滚段中回滚信息被覆盖,无法为一致读提供必需的before image。
8. If the Transaction IDs are identical, make a copy of the data block in memory. Starting with the head undo entry, apply the changes to the copied data block.
9. If the tail undo entry (the actual first undo entry in the chain, or the last in the chain going backwards!) indicates another data block address, read the indicated undo block into memory and repeat steps 7 and 8 until the undo entries dont contain a value for the data block address.
10. When theres no previous data block address, the transaction has been completely undone.
11. If the undo entry contains:
a. a pointer to a previous transaction undo block address, read the Transaction ID in the previous transaction undo block header and read the appropriate Transaction Table entry. Return to step 5.
b. an ITL record, restore the ITL record to the data block. Return to step 4.
出现1555的时候,首先判断是哪个原因导致,可以设置event;如果因为transaction slot被覆盖导致,则增加回滚段数目;如果因为回滚信息被覆盖,则增加回滚大大小。1555错误比较复杂,通常需要考虑很多问题。
event = 1555 trace name processstate forever, level 10
That will give you a process state dump for any process that gets an ORA-1555 error. The dump will show you which block the process was trying to rollback to its snapshot SCN. If its a rollback segment header block, then you have your proof. see more from http://www.ixora.com.au/q+a/undo.htm
- ››使用linux中的quota教程
- ››oracle 中 UPDATE nowait 的使用方法
- ››Oracle ORA-12560解决方法
- ››Oracle 10g RAC 常用维护命令
- ››Oracle如何在ASM中定位文件的分布
- ››使用jxl生成带动态折线图的excel
- ››Oracle的DBMS_RANDOM.STRING 的用法
- ››oracle 外部表导入时间日期类型数据,多字段导入
- ››Oracle中查找重复记录
- ››oracle修改用户登录密码
- ››Oracle创建删除用户、角色、表空间、导入导出等命...
- ››Oracle中登陆时报ORA-28000: the account is lock...
赞助商链接