NOVOTS KMS 词汇表 Glossary    联系我们 Contact Us
查询 Search  
   
按类别浏览 Browse by Category
NOVOTS KMS .: 数据库 .: Oracle .: 一次OracleRAC重建undo表空间问题的解决过程

一次OracleRAC重建undo表空间问题的解决过程

一、事件概述 数据库版本:Oracle 11gR2 近日在项目中扩容undo表空间时,Oracle rac数据库的undo表空间不足,在增加datafile时写错了文件大小,于是删除新增的datafile文件,结果删除出错,不能恢复,导致新建的undo不能使用。 二、扩容undo,增加datafile: Uodotbs01(实例1使用)和undotbs02(实例2使用)均为30G,计划增加一个30G的datafile文件,undotbs01的新datafile大小写错了。 SQL>alter tablespace undotbs01 add datafie’+DATA/hfms2db/datafile/undotbs1_01.dbf’ size 3000m autoextend off; SQL>alter tablespace undotbs02 add datafie’+DATA/hfms2db/datafile/undotbs2_01.dbf’ size 30g autoextend off; --undotbs1_01.dbf大小写成了3000m,写错了,于是执行了如下操作 Alter database datafile‘+DATA/hfms2db/datafile/undotbs1_01.dbf’offline drop; 后经查资料确认,此操作是错误的: 1、在归档模式下系统或忽略drop,试试将datafie offline,而不会drop; 2、正确的命令应该是 Alter tablespace undotbs1 drop datafile‘+DATA/hfms2db/datafile/undotbs1_01.dbf’; 3、删除之后查询datafile显示如下 SQL>select FILE#,name,bytes/1024/1024 BYTES,status from v$datafile; 3 +DATA/hfms2db/datafile/undotbs1.261.871389013 30000 online 13 +DATA/hfms2db/datafile/undotbs2.272.871390663 30000 online 142 +DATA/hfms2db/datafile/undotbs1_01.dbf 3000 recover 143 +DATA/hfms2db/datafile/undotbs2_01.dbf 30720 online 可以看到实际datafile并没有真正的删除。 三、删除新增的datafile失败 使用正确的命令删除数据文件undotbs1_01.dbf SQL>Alter tablespace undotbs1 drop datafile‘+DATA/hfms2db/datafile/undotbs1_01.dbf’; 报错如下: ERROR at line 1 ORA-03264 cannot drop offline datafile of locally managed tablespace 将undotbs1_01.dbf置为online报错如下: SQL>Alter database datafile 142 online; ERROR at line 1 ORA-01113:file142 needs media recovery ORA-01110::data file 142: '+DATA/hfms2db/datafile/undotbs1_01.dbf’ 只能按照提示recover undotbs1_01.dbf SQL>recover datafile 142 ORA-00279:change 981220327 generated at 12/12/2020 19:04:07 needed for thread 1 ORA-00289:suggestion:+ARCH ORA-00280:change 981220327 for thread 1 is in sequence #62066 ORA-00278: log file '+ARCH' no longer needed for this recovery ORA-00308: cannot open archived log +ARCH' ORA-17503: ksfdopn:2 Failed to open file +ARCH ORA-15045: ASM file name '+ARCH' is not in reference form 经网上查询说这是由于找不到归档日志导致的,归档日志没有记录上drop的操作。设置自动归档日志依旧报错,如下: SQL>set autorecovery on; SQL>recover automatic datafile 142; ORA-00279:change 981220327 generated at 12/12/2020 19:10:07 needed for thread 1 ORA-00289:suggestion:+ARCH ORA-00280:change 981220327 for thread 1 is in sequence #62066 ORA-00278: log file '+ARCH' no longer needed for this recovery ORA-00308: cannot open archived log +ARCH' ORA-17503: ksfdopn:2 Failed to open file +ARCH ORA-15045: ASM file name '+ARCH' is not in reference form 至此实在找不到敢尝试的方法,也不敢盲目重启数据库,只能重建undo 四、重建undo表空间 为实例1创建一个新的undo:undotbs3 SQL>create undo tablespace undotbs3 datafile ‘+DATA/hfms2db/datafile/undotbs3_01.dbf’size 25g autoextend off; 切换undo SQL>alter system set undo tablespace=undotbs3 scope=both sid=’hfms2db1’; 注意,一定要指定sid=’hfms2db1’不然重启数据库还会回到undotbs1 查看修改是否成功: SQL>show parameter undo; 确认undotbs1上是否所有的回滚段都结束了 SQL>select segment_name,status,tablespace_name from dba_rollback_segs where (tablespace_name=’undotbs1’or tablespace_name=’undotbs3’)and status=’online’; 五、删除undotbs1失败 不管是否还存在的回滚段,删除undotbs1,报错 SQL>drop tablespace undotbs1 including contents and datafiles; ERROR at line 1 ORA-30013:undo tablespace 'UNDOTBS1' is currently in use 将undotbs1默认的datafile offline. SQL>Alter database datafile‘+DATA/hfms2db/datafile/undotbs1.261.871389013’ offline; 再次删除undotbs1报错依旧,默认的datafile也变成了recover,执行recover报同样的错 SQL>recover datafile 3; 六、重启数据库后删除undotbs1也仍然失败 使用两种重启数据库方法 Oracle$srvctl stop database -d hfms2db Oracle$srvctl start database -d hfms2db 也尝试了 shutdown immediate 和 startup的方式重启数据库后,执行删除报错如下: SQL>drop tablespace undotbs1 including contents and datafiles; ERROR at line 1 ORA-01548:active rollback segment '_SYSSMU6$' found, terminate dropping tablespace 数据库也变成了recover模式 七、独占模式启动数据库解决问题 在rac模式下才用独占模式启动数据库 首先创建用于启动数据库的pfile文件asm环境中不能直接cp pfile.要执行如下命令生成 SQL>create pfile=’/tmp/pfile.ora’from spfile; 修改/tmp/pfile.ora,加入以下内容 -corrupted_rollback_segments=(_SYSSMU33_529594311$) 关闭集群,root操作 #./crsctl stop has -f 在一个节点上启动独占模式 #./crsctl start crs -excl -nocrs 注意如果数据库随集群启动则要手动关闭数据库,采用如下方式启动: SQL>startup pfile=‘/tmp/pfile.ora’ 直接删除undotbs1 SQL>drop tablespace undotbs1 including contents and datafiles; 删除成功 使用grid在asmcmd中查看datafile是否存在 Asmcmd>pwd +DATA/hfms2db/datafile Asmcmd>ls 已经没有了undotbs1的datafile 关闭集群,正常启动集群和数据库,查看undo,hfms2db1已经正常使用undotbs3. 至此解决完毕。

这篇文章对你多有用?

相关文章

article 解决Excel文件无法打开,双击直接打印的问题及当调整后双击又提示找不到c:documents.xls和and.xls文件 ,但文件内容随后可以正常显示的问题

(No rating)  4-19-2011    Views: 1834   
article ThinkPad X61重启蓝屏的问题
问题:X61系统运行正常;重启按F1进入Bios,按F9恢...

(No rating)  10-9-2011    Views: 1962   
article 关于加域报错的问题

(No rating)  3-31-2011    Views: 1690   

用户评语

添加评语
当前还没有评语.


.: .: .: .: .:
[ 登陆 ]
北京护航科技有限公司 2006

Novots Technologies Limited