- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Oracle9i新特性:Undo Space管理
作者:Lunar
控制Undo空间的初始化参数是什么? 2
可以使用多个Undo表空间么? 4
如何在SMU或者AMU模式下监视Undo空间的使用? 6
如何减少回滚段的竞争? 10
总结 11
在Oracle 9i 之前,Oracle使用回滚段来管理Undo,即事务的读一致性是通过回滚段来保证的。在Oracle 9i 中,已经可以有两种解决方法来维护事务的读一致性,即使用自Oracle 6以来就一直使用的回滚段,或者是使用Undo Tablespace来进行的自动重做管理(system-managed undo (SMU) 或者automatically managed undo (AMU)),但是这两种方法不能同时使用。
当一个事务开始的时候会被分配一个回滚段来存储数据修改前(事务开始前)的前印象。通常,ORACLE DBA 不得不花很多时间和精力来考虑undo 空间的设计和使用:
在数据库中设置足够多数量的回滚段是非常重要的。太少的回滚段会导致新事物尝试写回滚段时的等待。太多的回滚段也许对于提高不了事务的并发处理却浪费了大量空间。
回滚段的大小要适当。如果回滚段太小,并且有长时间运行的事务或者大事务就会需要更多的空间。回滚段就会扩张到表空间中剩余的自由空间中。如果回滚段需要的(扩张的)空间比表空间中的可用空间多,这个事务就会失败。
回滚段的extents应该设置为合适的尺寸。理想情况下,一个事务应该正好在一个回滚段的extents中。如果一个事务比这个extents大,这个事务就会从一个extent环装延伸到同一个回滚段中的下一个extents。过多的环绕就会导致性能的降低喝内部空间的使用问题。
在Oracle 9i 以前,回滚段不得不通过DBA手工管理。关于回滚段尺寸和数量的不恰当地选择都会对系统和并发事务有重大的性能影响。在Oracle 9i 允许使用两种方法管理回滚段:
手工方式。这种方式就是我们通常说的rollback-managed undo (RMU)。它是通过把UNDO_MANAGEMENT 参数设置为 MANUAL。手工方式本质上和Oracle 9i 以前的回滚段管理是一样的。
自动管理。这种方式就是我们通常说的system-managed undo (SMU) 或者automatically managed undo (AMU)。它是通过把UNDO_MANAGEMENT 参数设置为 AUTO。使用这种方式,Oracle可以自己管理Undo 空间的使用,它自己考虑 Undo 空间的使用,Undo Blocks的竞争和维护读一致性。使用这种方式,Oracle 允许DBA 给Undo 空间分配一个单独的Undo 表空间,Undo Segments就会自动的创建在在Undo表空间中,并且这些Undo Segments的创建,删除等工作全部由Oracle来维护。
Oracle 9i允许DBA把Oracle 9i数据库配置为RMU or SMU模式,但是即便是使用SMU模式,DBA也还是要考虑UNDO 表空间的大小。此外所有的Undo Segments在Undo 表空间中具有相同的尺寸,对于混合型事务的应用,这种设置是很难的。比如说,有些应用中,有一些长时间运行的事务和改变大量数据的事务运行,同时还有其他一些小事务(生命周期很短的事务)不需要改变很多数据。
控制Undo空间的初始化参数是什么?
UNDO_MANAGEMENT:这个参数确定了Undo空间的管理方式。该参数是个静态参数(不可以动态修改)。如果设置为MANUAL,则使用rollback-managed undo (RMU)管理模式;如果设置为AUTO,则使用system-managed undo (SMU) 或者automatically managed undo (AMU)管理模式。在Oracle 9i数据库中,AUTO是缺省值。
UNDO_TABLESPACE:只有使用system-managed undo (SMU) 或者automatically managed undo (AMU)管理模式的时候才需要设置这个参数。它指定了SMU或者AMU所使用的Undo表空间(该表空间必须是已经创建的表空间)。这个设置可以通过ALTER SYSTEM命令动态改变。如果忽略设置这个参数,那么数据库中的第一个Undo表空间就会被使用,如果没有可用的Undo表空间,SYSTEM 回滚段就会被使用。
创建Undo Tablespace:
SQL CREATE UNDO TABLESPACE UNDO_TEST
2 DATAFILE E:\TEST_TEST.ora SIZE 1
文档评论(0)