Oracle 10g中UNDO数据的作用及UNDO表空间的操作详解.docVIP

Oracle 10g中UNDO数据的作用及UNDO表空间的操作详解.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Oracle 10g中UNDO数据的作用及UNDO表空间的操作详解.doc

UNDO数据也称为回滚 ROLLBACK 数据,它用于确保数据的一致性.当执行DML操作时,事务操作前的数据被称为UNDO记录.UNDO段用于保存事务所修改数据的旧值,其中存储着被修改数据块的位置以及修改前数据。 UNDO数据的作用: 1.回退事务 当执行DML操作修改数据时,UNDO数据被存放到UNDO段,而新数据则被存放到数据段中,如果事务操作存在问题,旧需要回退事务,以取消事务变化.假定用户A执行了语句UPDATE emp SET sal 1000 WHERE empno 7788后发现,应该修改雇员7963的工资,而不是雇员7788的工资,那么通过执行ROLLBACK语句可以取消事务变化.当执行ROLLBACK命令时,oracle会将UNDO段的UNDO数据800写回的数据段中. 2.读一致性 用户检索数据库数据时,oracle总是使用用户只能看到被提交过的数据 读取提交 或特定时间点的数据 SELECT语句时间点 .这样可以确保数据的一致性.例如,当用户A执行语句UPDATE emp SET sal 1000 WHERE empno 7788时,UNDO记录会被存放到回滚段中,而新数据则会存放到EMP段中;假定此时该数据尚未提交,并且用户B执行SELECT sal FROM emp WHERE empno 7788,此时用户B将取得UNDO数据800,而该数据正是在UNDO记录中取得的. 3.事务恢复 事务恢复是例程恢复的一部分,它是由oracle server自动完成的.如果在数据库运行过程中出现例程失败 如断电,内存故障,后台进程故障等 ,那么当重启oracle server时,后台进程SMON会自动执行例程恢复,执行例程恢复时,oracl会重新做所有未应用的记录.回退未提交事务. 4.倒叙查询 FlashBack Query 倒叙查询用于取得特定时间点的数据库数据,它是9i新增加的特性,假定当前时间为上午11:00,某用户在上午10:00执行UPDATE emp SET sal 3500 WHERE empno 7788语句,修改并提交了事务 雇员原工资为3000 ,为了取得10:00之前的雇员工资,用户可以使用倒叙查询特征. 使用UNDO参数 1.UNDO_MANAGEMENT 该初始化参数用于指定UNDO数据的管理方式.如果要使用自动管理模式,必须设置该参数为AUTO,如果使用手工管理模式,必须设置该参数为MANUAL,使用自动管理模式时,oracle会使用undo表空间管理undo管理,使用手工管理模式时,oracle会使用回滚段管理undo数据,需要注意,使用自动管理模式时,如果没有配置初始化参数UNDO_TABLESPACE,oracle会自动选择第一个可用的UNDO表空间存放UNDO数据,如果没有可用的UNDO表空间,oracle会使用SYSTEM回滚段存放UNDO记录,并在ALTER文件中记载警告. 2.UNDO_TABLESPACE 该初始化参数用于指定例程所要使用的UNDO表空间,使用自动UNDO管理模式时,通过配置该参数可以指定例程所要使用的UNDO表空间. 在RAC Real Application Cluster 结构中,因为一个UNDO表空间不能由多个例程同时使用,所有必须为每个例程配置一个独立的UNDO表空间. 3.UNDO_RETENTION 该初始化参数用于控制UNDO数据的最大保留时间,其默认值为900秒,从9i开始,通过配置该初始化参数,可以指定undo数据的保留时间,从而确定倒叙查询特征 Flashback Query 可以查看到的最早时间点. 建立UNDO表空间 UNDO表空间专门用于存放UNDO数据,并且在UNDO表空间尚不能建立任何数据对象 表,索引,簇 1.使用CREATE DATABASE命令建立UNDO表空间. 当使用CREATE DATABASE命令建立数据库时,通过指定UNDO TABLESPACE选项,可以建立UNDO表空间.示例如下: CREATE?DATABASE?db01 ? … ? UNDO?TABLESPACE?undotbs_01 ? DATAFILE?/opt/oracle/oradata/ge01/UNDOTBS1.dbf?SIZE?30M;? 注意:UNDO TABLESPACE 子句不是必须的,如果使用自动UNDO管理模式,并且没有指定该子句,那么建立数据库时会自动生成名为UNDOTBS1的UNDO表空间. 2.使用CREATE UNDO TABLESPACE命令建立UNDO表空间. create?undo?tablespace?undotbs2?datafile?/opt/oracle/oradata/ge01/UNDOTBS2.

文档评论(0)

zhiminwei + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档