Chinaunix首页 | 论坛 | 博客
  • 博客访问: 116126
  • 博文数量: 23
  • 博客积分: 1583
  • 博客等级: 上尉
  • 技术积分: 250
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-06 00:49
文章分类

全部博文(23)

文章存档

2011年(2)

2010年(21)

分类: Oracle

2010-10-11 14:24:31

公司需要搭建一个测试环境,于是从现网用rman做了个全备份,然后down下来
rman target /
RMAN>startup nomount;
RMAN>retore controlfile from autobackup;
RMAN>alter database mount;
RMAN>restore database;
RMAN>recover database;
此时报ora-01110的错误,由于是测试库,数据丢失一点没关系,所以也不那么麻烦了,不然用
recover database using backup controlfile until cancel;然后用归档日志应该是能恢复的,
归档还在现网,有10G大。。down下来太慢了。。所以打算假如隐含参数_allow_resetlogs_corruption来解决,现在只要能把库打开就ok,其他的不用想了。。

SQL> alter system set "_allow_resetlogs_corruption"=true scope=spfile;

System altered.
SQL>startup mount
SQL>alter database open resetlogs;
查看
alert.log开始报ORA-00600[2663]错误
对于ORA-00600第一个参数是2662或者2663都是由于SCN不一致造成的,要做adjust scn操作
1. create pfile=’/tmp/tan.ora’ from spfile;
2. shutdown abort
3. startup mount pfile=’/tmp/tan.ora’
4. alter session set events ‘10015 trace name adjust_scn level 1′;
5. alter database open; 这里的level根据实际的需要,从1往上增,直到不再出现ORA-00600[2662]/[2663]为止,由于我这是测试库,不想那么麻烦,所以直接设成了10

ORACLE终于顺利打开了,然而alter.log中又报ORA-00600[4193]/[4194],这个错误是由于UNDO引起的,方法是将undo改成manual模式,然后重建undo,再改成auto,根据metalink上的方法,如下:


Basic Steps to be Followed While Solving ORA-00600 [4194]/[4193] Errors Without Using Unsupported parameter [ID 281429.1]
Single instance

This error normally happens for a new transaction. The trace file actually shows an active transaction for the undo segment because this is the transaction created by the same process.If the undo segment happens to have an active transaction , then Oracle
may recover it later with no problems .

Normally if the header is dumped after the error, the active transactin is gone.

So a Simpler option to resolve this issue is.

Step 1
——–

SQL> Startup nomount ;    –> using spfile

SQL> Create pfile=’/tmp/corrupt.ora’ from spfile ;

SQL> Shutdown immediate;

Step 2
——-

Modify the corrupt.ora and set Undo_managment=Manual

SQL> Startup mount pfile=’/tmp/corrupt.ora’

SQL> Show parameter undo

   it should show manual

SQL> Alter database open ;

If it comes up

SQL> Create rollback segment r01 ;

SQL> Alter rollback segment r01 online ;

Create a new undo tablespace

SQL> Create undo tablespace undotbs_new datafile ‘<>’ size <> M ;

Drop the Old undo tablespace

SQL> Drop tablespace including contents and datafiles

 

Step 3
——-

SQL> Shutdown immediate;

SQL> Startup nomount ; —> Using spfile

SQL>Alter system set undo_tablespace= scope=spfile;

SQL> Shutdown immediate ;

SQL> Startup

Check if error is reported

由于是测试用的库,所以很多东西不用考虑,如果是生产库,以上方法请慎用。
阅读(2785) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~