Workshop 1-Lesson 10 Managing Undo Data

来源:互联网 发布:绯夜传奇 知乎 编辑:程序博客网 时间:2024/05/17 09:16

1 UNDO Data
1) 支持读一致性和闪回查询
为了让读一致性查询成功,原始信息必须仍然作为undo信息存在;
如果原始信息不可用,则会收到ORA-01555错误。
只要undo信息存在,oracle可以重建数据以满足读一致性查询
2)undo信息会保留所有事务,至少到如下其中一种情况的事务结束:
a.用户撤销一个事务(事务回滚)
b.用户结束一个事务(事物提交)
c.用户执行DDL语句,例如create drop rename alter
如果当前事务包含DML语句,数据库首先提交当前事务,然后执行和提交DDL语句作为一个新的事务
d.用户会话异常终止(事物回滚)
e.用户会话正常终止退出(事务提交)

2.事务和undo data
* 每个事务仅能被分配给一个undo segment
* 每个undo segment可以同时服务多个事务

1)当事务启动,数据变化,原始数据会拷贝一份到undo segment中,可通过v$transaction查看
2)undo segments是一种被实例创建的特殊段,但也是由数据块组成。会按需自动增长和收缩。循环存储缓存中的事务。
3)事务会自动填充undo segments直到事务结束或空间耗尽;如果事务需要更多的空间,会从下一个extents获取;在所有extents被消耗完后,事务会循环写第一个extent或从undo segments里请求一个新的extent。
NOTE:并行DML和DDL会引起一个事物使用多个undo segment

3.存储undo信息
1)undo表空间:
- 仅用于undo segments
- 有一些特殊的恢复注意事项,仅能在mount阶段恢复
- 只能用于一个实例
- 对于在给定时间的给定实例,当前可写的undo表空间只能有一个
- 对于大容量的OLTP环境来说,有许多短小并行事务,文件头会被争用,所以创建多个数据文件,可以解决这个潜在问题
- undo segments自动创建且永远属于sys
- 每个undo segment最少有2个extents;对于8KB的块,最大有32765个extents
- undo表空间是permanent,本地管理表空间自动段分配

4. undo data VS. redo data
1)undo用于回滚,读一致性,闪回(多用户的不一致读)
redo用于前滚数据库的改变(数据丢失)
2)回滚块的变换也会被写进redo log

5. 管理undo
自动undo管理
- 全自动管理undo数据和空间管一个专用undo表空间
- 支持所有会话
- 自动调节AUTOEXTEND类型表空间以满足长查询的需要
- 自动调节固定大小表空间以满足最佳保留时间
如果使用闪回操作,则DBA需要:
- 配置undo retention
- 把undo表空间配置为fix-size
- 避免空间不足或01555错误

6. 配置undo retention
1)UNDO_RETENTION:已经被commit的信息至少可以保留多长时间(秒)
2)什么情况需要设置这个参数?
* undo表空间启动了AUTOEXTEND
* 有LOB大对象
* 想要启用retention guarantee
3)对于fixed-size表空间,系统会基于历史记录和表空间大小调整最佳的保留时间,他会忽略undo_retention除非retention guarantee启用。

7. Guaranteeing undo retention
RETENTION GUARANTEE:用于强制启用undo保留时间最小值。当事务产生的undo信息超过表空间容量的时候,事务会失败。

SQL> ALTER TABLESPACE undotbs1 RETENTION GUARANTEE;

8. 更改undo表空间到fixed-size
1)原因:
- 支持闪回操作
- 限制表空间增长
2)评估:
- 最长运行的查询
- undo产生的频率

decide to change the undo tablespace to a fixed size, you must choose a large enough size to avoid the following two errors:

DML failures (because there is not enough space to the undo for new transactions)

“Snapshot too old” errors (because there was insufficient undo data for read consistency)

0 0
原创粉丝点击