Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

0

积分

1

好友

2

主题
1#
发表于 2013-12-9 16:54:08 | 查看: 4256| 回复: 9

有个rac的库,然后每天夜里数据库在不shutdown的情况下,运行begin backup,然后对这个库进行一个bcv的copy,复制到另一个库,这个新库跑批处理,然后打开这个跑批的库(直接就打开了也不做任何recover的操作),就出现ora 600 4194错误,据说他们这么运行已经很久了,只是最近出现了这个错

我觉得这应该本身就是不合理的,因为bcv是运行在begin backup的状态,应该进行resetlog (bcv复制非常彻底,连Oracle binary也复制了)

但是这个库如果把undo_management设为manual ,屁事都没了,设成manual之后建个新的Undo tablespace并且把undo 指定为新建的undo tablespace也啥问题没有

或者在主库上建个多余的undo tablespace ,然后让跑批的机器的undo tablespace设为这个多余的Undo tablespace也没事了
最后我就用最后这种办法解决了问题,建个大表回滚啥问题都没了

附件是对这个问题的事先分析,但是实际情况是补丁打了,问题依旧。

问题.zip

20.08 KB, 下载次数: 1473

2#
发表于 2013-12-9 18:52:34
从trace文件中发现
Version: 0x01
  FREE BLOCK POOL::
    uba: 0x00c27e59.1d3e.02 ext: 0x14 spc: 0x1dde  

UNDO BLK:  
xid: 0x005f.01c.000407cf  seq: 0x1d3e cnt: 0x3   irb: 0x3   icl: 0x0   flg: 0x0000

Rec Offset      Rec Offset      Rec Offset      Rec Offset      Rec Offset
---------------------------------------------------------------------------
0x01 0x1eec     0x02 0x1df4     0x03 0x1cfc     

这个free block不一致

回复 只看该作者 道具 举报

3#
发表于 2013-12-9 19:41:51
1、为啥不用data guard来替代这种方案?

回复 只看该作者 道具 举报

4#
发表于 2013-12-9 19:44:10
2、
针对这个问题 其实可以通过  disable smon rollback 来绕过, ORACLE仍能维护一致性, 但可能存在一直不释放的行锁

FYI
http://www.askmaclean.com/archiv ... ad-transaction.html

回复 只看该作者 道具 举报

5#
发表于 2013-12-9 22:01:39
Liu Maclean(刘相兵 发表于 2013-12-9 19:44
2、
针对这个问题 其实可以通过  disable smon rollback 来绕过, ORACLE仍能维护一致性, 但可能存在一直 ...

100513这个事件,我设了,仍然报错,我怀疑是oracle open之后,smon发现undo tablespace里面空间很多free,他在shrink的时候出错的。

回复 只看该作者 道具 举报

6#
发表于 2013-12-9 22:02:43
dbatravel 发表于 2013-12-9 18:52
从trace文件中发现
Version: 0x01
  FREE BLOCK POOL::

眼拙,能加亮给个提示么?老实说我不会看free这块,就会看活动事物和slot

回复 只看该作者 道具 举报

7#
发表于 2013-12-9 22:09:08
附个完整的smon,文件尺寸实在是不小

回复 只看该作者 道具 举报

8#
发表于 2013-12-9 22:10:32
怎么没附件

cpxutf1_smon_29709.zip

5.43 MB, 下载次数: 834

smon

回复 只看该作者 道具 举报

9#
发表于 2013-12-9 22:16:09
http://www.askmaclean.com/archiv ... llback-segment.html
了解你所不知道的SMON功能(十二):Shrink UNDO(rollback) SEGMENT

如何禁止SMON SHRINK UNDO SEGMENT?

可以通过设置诊断事件event=’10512 trace name context forever, level 1′来禁用SMON OFFLINE UNDO SEGS;

回复 只看该作者 道具 举报

10#
发表于 2013-12-10 11:24:08
dblive 发表于 2013-12-9 22:02
眼拙,能加亮给个提示么?老实说我不会看free这块,就会看活动事物和slot

Version: 0x01
  FREE BLOCK POOL::
    uba: 0x00c27e59.1d3e.02 ext: 0x14 spc: 0x1dde  

UNDO BLK:  
xid: 0x005f.01c.000407cf  seq: 0x1d3e cnt: 0x3   irb: 0x3   icl: 0x0   flg: 0x0000

Rec Offset      Rec Offset      Rec Offset      Rec Offset      Rec Offset
---------------------------------------------------------------------------
0x01 0x1eec     0x02 0x1df4     0x03 0x1cfc

这里 FREE BLOCK POOL 描述   uba: 0x00c27e59.1d3e.02 ext: 0x14 spc: 0x1dde  

在块  0x00c27e59 seq 1d3e  02
而实际上这个块 已经用到 0x00c27e59.1d3e.03 ,这个0x03 0x1cfc  事务已经提交,但是oracle没更新free block Pool   
oracle检查到 这个信息和实际块的信息部相符

回复 只看该作者 道具 举报

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-12-21 09:57 , Processed in 0.051284 second(s), 23 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569