暂无图片
暂无图片
4
暂无图片
暂无图片
暂无图片

【每日一练 048】日常管理: undo管理(二)

原创 李美静 恩墨学院 2020-09-07
2014

1 管理Undo

Oracle数据库服务器提供了自动undo管理,这是一种完全自动化的机制,用于管理所有会话的专用undo表空间中的undo信息和空间。系统会自动调整自己,以提供最好的undo信息保留。更准确地说,自动扩展表空间的undo保留期被调优为比运行时间最长的活动查询稍微长一点。对于固定大小的undo表空间,数据库会动态调整以获得最佳保留。
虽然默认情况下Oracle数据库服务器自动管理undo数据和空间,但如果数据库使用闪回操作,可能需要执行一些任务。undo的管理应该防止空间错误、使用太多空间和“快照太旧”的错误。

2 undo_retention

初始化参数UNDO_RETENTION指定undo保留的低阈值(以秒为单位)。将自动扩展undo表空间的最小undo保留期设置为与预期最长的闪回操作一样长。为了自动扩展undo表空间,系统将至少在此参数中指定的时间内保留undo,并自动调整undo保持期,以满足查询的undo需求。但是这种自动调整的保留期可能不足以用于闪回操作。
对于固定大小的undo表空间,系统会根据undo表空间的大小和使用历史自动调整最佳的undo保留时间;除非启用了guarantee,否则它将忽略UNDO_RETENTION。因此,对于自动undo管理,列出的三种情况下使用UNDO_RETENTION设置:
The undo tablespace has the AUTOEXTEND option enabled
You want to set undo retention for LOBs
You want to guarantee retention
除了这三种情况外,此参数将被忽略。

3 undo信息分类

undo信息分为三类:
未提交的undo信息(活动的):支持当前运行的事务,如果用户希望回滚或事务失败,则必须使用该信息。未提交的undo信息永远不会被覆盖。
已提交的undo信息(未过期):在支持正在运行的事务时不再需要,但在满足undo保留时间间隔时仍然需要。它也被称为“未过期”的undo信息。尽可能保留已提交的undo信息,而不会因为缺少空间而导致活动事务失败。
过期的undo信息(Expired):在支持正在运行的事务时不再需要。当活动事务需要空间时,过期的undo信息将被覆盖。

4 guarantee

默认的undo行为是覆盖尚未过期的已提交事务的undo信息,而不是允许活动事务因为缺少undo空间而失败。
可以通过guarantee保留来更改此行为。通过保证保留,即使undo保留设置导致事务失败,也会强制执行。
guarantee是一个表空间属性,而不是初始化参数。这个属性只能用SQL命令行语句来更改。改变undo表空间以guarantee保留的语法是:
SQL> ALTER TABLESPACE undotbs1 RETENTION GUARANTEE;
使用下面的命令可以保证undo表空间恢复到正常设置:
SQL> ALTER TABLESPACE undotbs1 RETENTION NOGUARANTEE;
guarantee只适用于undo表空间。试图在一个非undo表空间上设置它导致以下错误:
SQL> ALTER TABLESPACE example RETENTION GUARANTEE;
ERROR at line 1:
ORA-30044: ‘Retention’ can only specified for undo tablespace

5 undo表空间设置固定大小考虑因素

将undo表空间更改为固定大小可能有两个原因:为了支持闪回操作(希望在将来使用undo),或者为了防止表空间增长得太大。
如果决定将undo表空间更改为一个固定的大小,必须选择一个足够大的大小来避免以下两个错误:
DML失败(因为没有足够的空间为新事务创建undo)
“快照太旧”错误(因为没有足够的undo数据来保持读取一致性)
Oracle建议运行常规的、完整的工作负载,允许undo表空间增长到所需的最小大小。自动收集的统计信息包括运行时间最长的查询的持续时间和undo生成速率。对于没有闪回操作的系统,以及对于将来不会有长时间运行的查询的系统,根据这些统计数据计算最小undo表空间大小是可取的。
可以使用Enterprise Manager Cloud Control Undo Advisor为长时间运行的查询和闪回输入所需的undo period持续时间。

6 练习题

判断题:
要保证15分钟以内的所有查询都能找到读取一致性所需的undo数据,只需将UNDO_RETENTION参数设置为15分钟。
True
False

最后修改时间:2020-09-08 10:31:03
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论