知识大全 如何为用户提供回滚操作时间的准确评估

Posted 视图

篇首语:别裁伪体亲风雅,转益多师是汝师。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 如何为用户提供回滚操作时间的准确评估相关的知识,希望对你有一定的参考价值。

  在回滚长期运行的事务时 经常会有些用户不停地询问相同的问题 这些问题是合理的 因为该事务进行了锁定 正常的处理经常受到回滚进程的影响

  在 Oracle i Database 及更低的版本中 您可以执行查询

  SELECT USED_UREC

  FROM V$TRANSACTION

  该语句返回由当前事务所使用的重做记录的数量 而如果重复地执行该语句 将会显示连续减少的数值 因为回滚进程在其处理过程中会释放重做记录 随后您可以通过对一段间隔进行快照来计算其速率 然后推断出评估结束时间的结果

  虽然在视图 V$TRANSACTION 中有一个名为 START_TIME 的列 但该列只显示整个事务的起始时间(也就是在回滚执行之前) 因此 除了推断 您没有办法知道回滚实际上是在什么时间执行的

  事务回滚的扩展统计信息

  在 Oracle Database g 中 这种操作很简单 当事务回滚时 事件被记录在视图 V$SESSION_LONGOPS 中 该视图显示长期运行的事务 用于回滚 如果进程耗时超过六秒 则记录出现在该视图中 在回滚执行以后 您可能会隐藏所查看的监视屏幕并执行以下的查询

  select time_remaining

  from v$session_longops

  where sid = <sid of the session doing the rollback>

  既然您意识到这个视图 V$SESSION_LONGOPS 的重要性 就让我们来看它必须提供的其他信息 该视图在 Oracle Database g 的预览版中提供 但没有捕获关于回滚事务的信息 为了以一种易读的方式显示所有的列 我们将使用由 Tom Kyte 在 中所描述的 PRINT_TABLE 函数 此过程简单地以表格方式而不是常用的行方式来显示列

  

  SQL> set serveroutput on size SQL> exec print_table(@#select * from v$session_longops where sid = @#) SID : SERIAL# : OPNAME :Transaction Rollback TARGET : TARGET_DESC :xid: x e c SOFAR : TOTALWORK : UNITS :Blocks START_TIME : dec : : LAST_UPDATE_TIME : dec : : TIME_REMAINING : ELAPSED_SECONDS : CONTEXT : MESSAGE :Transaction Rollback:xid: x e c : out of Blocks done USERNAME SYS SQL_ADDRESS : B ED SQL_HASH_VALUE : SQL_ID : w c amyanr QCSID :

  注意 此处显示对行的所有更改 即使删除并重新插入行时也是如此 VERSION_OPERATION 列显示对该行执行的操作 (Insert/Update/Delete) 完成这些操作不需要历史表或额外的列

  让我们仔细检查这些列中的每一列 在会话中可能会有超过多个长期运行操作 — 特别是因为视图中包含以前的会话中所有长期运行操作的历史 列 OPNAME 显示该记录用于 事务回滚 这为我们指出了正确的方向 列 TIME_REMAINING 显示所评估的剩余时间秒数 这在前面已经描述过 而列 ELAPSED_SECONDS 显示到目前为止所消耗的时间

  那么该表如何提供对剩余时间的评估呢?可以在列 TOTALWORK 中找到线索 该列显示要完成的 工作 总量 还有 SOFAR 显示到目前为止已经完成了多少工作 工作的单位显示在列 UNITS 中 在本例中以数据块为单位 因此 到目前为止已经回滚了 个数据块中共计 个数据块 此操作到目前为止已消耗了 秒 因此 剩余数据块将消耗

   * ( / ( ) ) ? 秒

  但您不必利用这种方法来获得该数值 它已经清楚地显示出来了 最后 列 LAST_UPDATE_TIME 显示有关当前视图内容的时间 这将用于加强您对结果的解释

  SQL语句

  另一部分重要的新信息是正在被回滚的 SQL 语句的标识符 在早先 SQL_ADDRESS 和 SQL_HASH_VALUE 用于获取正在被回滚的 SQL 语句 新的列 SQL_ID 对应于视图 V$SQL 的 SQL_ID 如下所示

  

  SELECT SQL_TEXT FROM V$SQL WHERE SQL_ID = <value of SQL_ID from V$SESSION_LONGOPS>;

  该查询返回所回滚的语句 因此提供了额外的校验以及 SQL 语句的地址和散列值

  并行实例恢复

  如果 DML 操作是并行操作 则列 QCSID 显示并行查询服务器会话的 SID 在并行回滚事件中 如实例恢复以及随后的故障事务恢复期间 经常用到该信息经常

  例如 假设在大型的更新期间 实例异常关闭 当实例启动时 发生故障的事务被回滚 如果启用了用于并行恢复的初始化参数值 则回滚并行地而不是串行地发生 如同它发生在常规事务回滚中一样 下一步的任务是评估回滚进程的完成时间

  视图 V$FAST_START_TRANSACTIONS 显示为回滚故障事务所产生的事务 类似的视图 V$FAST_START_SERVERS 显示对回滚进行处理的并行查询服务器的数量 这两个视图都在以前的版本中提供 但显示事务标识符的新列 XID 使得联接更方便了 在 Oracle i Database 以及更低的版本中 您必须通过三列(USN — 重做段号 SLT — 重做段中的存储区号 SEQ — 序列号)来联接视图 其父集显示在 PARENTUSN PARENTSLT 和 PARENTSEQ 中 在 Oracle Database g 中 您只需将其联接到 XID 列 其父 XID 由直观的名称表示 PXID

  最有用的信息部分来自于 V$FAST_START_TRANSACTIONS 视图中的列 RCVSERVERS 如果发生并行回滚 则该列中显示并行查询服务器的数量 您可以查看该列 了解启动了多少并行查询进程

  select rcvservers from v$fast_start_transactions

  如果输出是 则事务正在由 SMON 进程进行串行回滚 — 显然这是完成工作的一种不充分的方法 您可以将初始化参数 RECOVERY_PARALLELISM 的值改为除 或 以外的值 重新启动实例进行并行回滚 随后您可以执行 ALTER SYSTEM SET FAST_START_PARALLEL_ROLLBACK = HIGH 按 CPU 数量的 倍创建并行服务器

  如果上述查询的输出显示不是 则正在进行并行回滚 您可以查询同一视图 (V$FAST_START_TRANSACTIONS) 来获得父事务和子事务(父事务 id — PXID 而子事务 id — XID) XID 还可用于联接此视图与 V$FAST_START_SERVERS 以获得其他详细信息

  结论

cha138/Article/program/Oracle/201311/18740

相关参考

任何处置工作的开展都必须以对现场形势的准确评估为前提。因此,事故应急处置人员到达现场后,需要对现场状态与情景进行评估,以获取准确的事故现场信息,从而有效进行现场控制。下列选项中,属于现场状态与情景评估

任何处置工作的开展都必须以对现场形势的准确评估为前提。因此,事故应急处置人员到达现场后,需要对现场状态与情景进行评估,以获取准确的事故现场信息,从而有效进行现场控制。下列选项中,属于现场状态与情景评估

知识大全 用Javascript评估用户输入密码的强度

用Javascript评估用户输入密码的强度  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs

用户想装管道天然气,怎么申报?

第一步:客户申请  民用户:客户提交申请,提供准确的用气地址;  公用户:客户提交申请,提供用气规模和所需供气压力等的数据;  第二步:勘测  根据客户提供的数据,燃气公司设计部门派员进行现场勘测,与

知识大全 查看哪些session正在使用哪些回滚段

  系统环境操作系统Windows  数据库 OracleiR()forNT企业版  安装路径C:\\ORACLE    测试方法打开多个SQL*Plus窗口一些做一些需要回滚的操作如insertde

知识大全 临时表更适合做插入和查询操作

  ORACLE数据库除了可以保存永久表外还可以建立临时表temporarytables这些临时表用来保存一个会话SESSION的数据或者保存在一个事务中需要的数据当会话退出或者用户提交mit和回滚r

咨询:是指人们以信息为基础,对信息情报、资料进行综合加工和创造,为社会有关用户提供各项服务的一项智力活动。下列属于咨询的

咨询:是指人们以信息为基础,对信息情报、资料进行综合加工和创造,为社会有关用户提供各项服务的一项智力活动。下列属于咨询的一项是_____。A、老师上课向学生提问B、某学生课余时间到图书馆向值班人员询问

根据《生产经营单位生产安全事故应急预案评估指南》中,在对应急预案评估过程中,对主要事故风险评估内容说法不准确是()。

电力安全生产知识竞赛题:根据《生产经营单位生产安全事故应急预案评估指南》中,在对应急预案评估过程中,对主要事故风险评估内容说法不准确是()。A、风险等级确定是否合理B、是否有新增事故风险C、事故风险防

根据《生产经营单位生产安全事故应急预案评估指南》中,在对应急预案评估过程中,对主要事故风险评估内容说法不准确是()。

电力安全生产知识竞赛题:根据《生产经营单位生产安全事故应急预案评估指南》中,在对应急预案评估过程中,对主要事故风险评估内容说法不准确是()。A、风险等级确定是否合理B、是否有新增事故风险C、事故风险防

评估自杀有哪些基本线索?

虽然目前还没有准确的标准用于预测自杀,但是当一个人在同一时间里出现下面的几种表现时,自杀的风险就开始增加。  (1)通过各种途径流露出消极、悲观的情绪,表达自杀意愿者。自杀者在自杀前曾流露出相当多的征

评估自杀有哪些基本线索?

虽然目前还没有准确的标准用于预测自杀,但是当一个人在同一时间里出现下面的几种表现时,自杀的风险就开始增加。  (1)通过各种途径流露出消极、悲观的情绪,表达自杀意愿者。自杀者在自杀前曾流露出相当多的征