电脑软硬件应用网
当前位置: 电脑软硬件应用网 > 设计学院 > 网络编程 > 数据库 > 正文
教你快速掌握解决RMAN-06026错误的方法
教你快速掌握解决RMAN-06026错误的方法
2008-4-3 15:21:15  文/Root   出处:赛迪网   

问题:在数据库损坏的情况下,如果恢复时报RMAN-06026错误应当如何解决?

解答:如果你没有使用catalog,你可以选择dbms_backup_restore来进行恢复。

1、具体的错误信息示例:

你可以发现虽然list backup可以显示备份集,但是已经没有办法再进行恢复了,错误为RMAN-06026,RMAN-06026。

[oracle@jumper oradata]$ rman target /


Recovery Manager: Release 9.2.0.4.0 - Production


Copyright (c) 1995, 2002, Oracle Corporation. All rights reserved.


connected to target database: CONNER (DBID=3152029224)


RMAN> restore database;


Starting restore at 11-JUN-05


using target database controlfile instead of recovery catalog

allocated channel: ORA_DISK_1

channel ORA_DISK_1: sid=11 devtype=DISK

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-03002: failure of restore command at 06/11/2005 01:19:01

RMAN-06026: some targets not found - aborting restore

RMAN-06023: no backup or copy of datafile 3 found to restore

RMAN-06023: no backup or copy of datafile 2 found to restore

RMAN-06023: no backup or copy of datafile 1 found to restore


RMAN> list backup;

 

List of Backup Sets

===================


BS Key Type LV Size Device Type Elapsed Time Completion Time

------- ---- -- ---------- ----------- ------------ ---------------

13 Full 1G DISK 00:03:20 09-JUN-05

BP Key: 13 Status: AVAILABLE Tag: TAG20050609T173346

Piece Name: /opt/oracle/product/9.2.0/dbs/0ggmiabq_1_1

SPFILE Included: Modification time: 08-JUN-05

List of Datafiles in backup set 13

File LV Type Ckp SCN Ckp Time Name

---- -- ---- ---------- --------- ----

1 Full 240560269 09-JUN-05 /opt/oracle/oradata/conner/system01.dbf

2 Full 240560269 09-JUN-05 /opt/oracle/oradata/conner/undotbs01.dbf

3 Full 240560269 09-JUN-05 /opt/oracle/oradata/conner/users01.dbf


RMAN> exit


Recovery Manager complete.


2、然后使用dbms_backup_restore来进行恢复

dbms_backup_restore是一个非常强大的package,可以在数据库nomount下使用,用于从备份集中读取各类文件。

本例使用如下脚本:

DECLARE

devtype varchar2(256);

done boolean;

BEGIN

devtype:=sys.dbms_backup_restore.deviceAllocate (type=>'',ident=>'t1');

sys.dbms_backup_restore.restoreSetDatafile;

sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>01,toname=>'/opt/oracle/oradata/conner/system01.dbf');

sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>02,toname=>'/opt/oracle/oradata/conner/undotbs01.dbf');

sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>03,toname=>'/opt/oracle/oradata/conner/users01.dbf');

sys.dbms_backup_restore.restoreBackupPiece(done=>done,handle=>'/opt/oracle/product/9.2.0/dbs/0ggmiabq_1_1', params=>null);

sys.dbms_backup_restore.deviceDeallocate;

END;

/

 

3、执行恢复的过程

[oracle@jumper conner]$ sqlplus "/ as sysdba"


SQL*Plus: Release 9.2.0.4.0 - Production on Sat Jun 11 01:24:34 2005


Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.


Connected to an idle instance.


SQL> startup nomount;

ORACLE instance started.


Total System Global Area 101782828 bytes

Fixed Size 451884 bytes

Variable Size 37748736 bytes

Database Buffers 62914560 bytes

Redo Buffers 667648 bytes


SQL> DECLARE

2 devtype varchar2(256);

3 done boolean;

4 BEGIN

5 devtype:=sys.dbms_backup_restore.deviceAllocate (type=>'',ident=>'t1');

6 sys.dbms_backup_restore.restoreSetDatafile;

7 sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>01,toname=>'/opt/oracle/oradata/conner/system01.dbf');

8 sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>02,toname=>'/opt/oracle/oradata/conner/undotbs01.dbf');

9 sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>03,toname=>'/opt/oracle/oradata/conner/users01.dbf');

10 sys.dbms_backup_restore.restoreBackupPiece(done=>done,handle=>'/opt/oracle/product/9.2.0/dbs/0ggmiabq_1_1',


params=>null);

11 sys.dbms_backup_restore.deviceDeallocate;

12 END;

13 /


PL/SQL procedure successfully completed.


SQL>

注释:从备份集中读取文件完成。

4、恢复控制文件


如果由于疏忽没有备份控制文件,你可以选择重建控制文件。

SQL> alter database mount;


Database altered.


SQL> alter database backup controlfile to trace;


Database altered.

 

然后找到trace文件,编辑并且执行重建控制文件需要部分:


[oracle@jumper oracle]$ sqlplus "/ as sysdba"

SQL*Plus: Release 9.2.0.4.0 - Production on Sat Jun 11 01:30:50 2005


Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.


Connected to:

Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production

With the Partitioning option

JServer Release 9.2.0.4.0 - Production

 

SQL> shutdown immediate;

ORA-01109: database not open

 

Database dismounted.

ORACLE instance shut down.


SQL> startup nomount;

ORACLE instance started.


Total System Global Area 101782828 bytes

Fixed Size 451884 bytes

Variable Size 37748736 bytes

Database Buffers 62914560 bytes

Redo Buffers 667648 bytes

SQL> set echo on

SQL> @ctl

SQL>

SQL> CREATE CONTROLFILE REUSE DATABASE "CONNER" RESETLOGS ARCHIVELOG

2 -- SET STANDBY TO MAXIMIZE PERFORMANCE

3 MAXLOGFILES 5

4 MAXLOGMEMBERS 3

5 MAXDATAFILES 100

6 MAXINSTANCES 1

7 MAXLOGHISTORY 1361

8 LOGFILE

9 GROUP 1 '/opt/oracle/oradata/conner/redo01.log' SIZE 10M,

10 GROUP 2 '/opt/oracle/oradata/conner/redo02.log' SIZE 10M,

11 GROUP 3 '/opt/oracle/oradata/conner/redo03.log' SIZE 10M

12 -- STANDBY LOGFILE

13 DATAFILE

14 '/opt/oracle/oradata/conner/system01.dbf',

15 '/opt/oracle/oradata/conner/undotbs01.dbf',

16 '/opt/oracle/oradata/conner/users01.dbf'

17 CHARACTER SET ZHS16GBK

18 ;


Control file created.

 

 

5、执行恢复步骤

SQL> recover database;

ORA-00283: recovery session canceled due to errors

ORA-01610: recovery using the BACKUP CONTROLFILE option must be done

 

SQL> recover database using backup controlfile until cancel;

ORA-00279: change 240560269 generated at 06/09/2005 17:33:48 needed for thread 1

ORA-00289: suggestion : /opt/oracle/oradata/conner/archive/1_7.dbf

ORA-00280: change 240560269 for thread 1 is in sequence #7

 

Specify log: {=suggested | filename | AUTO | CANCEL}


auto

ORA-00279: change 240600632 generated at 06/10/2005 10:42:26 needed for thread 1

ORA-00289: suggestion : /opt/oracle/oradata/conner/archive/1_8.dbf

ORA-00280: change 240600632 for thread 1 is in sequence #8

ORA-00278: log file '/opt/oracle/oradata/conner/archive/1_7.dbf' no longer needed for this recovery

 

Specify log: {=suggested | filename | AUTO | CANCEL}

auto

ORA-00279: change 240620884 generated at 06/10/2005 10:45:42 needed for thread 1

ORA-00289: suggestion : /opt/oracle/oradata/conner/archive/1_9.dbf

ORA-00280: change 240620884 for thread 1 is in sequence #9

ORA-00278: log file '/opt/oracle/oradata/conner/archive/1_8.dbf' no longer needed for this recovery

 

ORA-00283: recovery session canceled due to errors

ORA-00600: internal error code, arguments: [3020], [4242465], [1], [9], [314], [272], [], []

ORA-10567: Redo is inconsistent with data block (file# 1, block# 48161)

ORA-10564: tablespace SYSTEM

ORA-01110: data file 1: '/opt/oracle/oradata/conner/system01.dbf'

ORA-10560: block type 'DATA SEGMENT HEADER - UNLIMITED'

 

ORA-01112: media recovery not started


SQL> recover database using backup controlfile until cancel;

ORA-00279: change 240620949 generated at 06/10/2005 10:45:44 needed for thread 1

ORA-00289: suggestion : /opt/oracle/oradata/conner/archive/1_9.dbf

ORA-00280: change 240620949 for thread 1 is in sequence #9

 

Specify log: {=suggested | filename | AUTO | CANCEL}

cancel

Media recovery cancelled.

SQL> alter database open resetlogs;


Database altered.


SQL> select name from v$datafile;


NAME

------------------------------------------------------------

/opt/oracle/oradata/conner/system01.dbf

/opt/oracle/oradata/conner/undotbs01.dbf

/opt/oracle/oradata/conner/users01.dbf


SQL>

恢复现已完成

  • 上一篇文章:

  • 下一篇文章:
  • 最新热点 最新推荐 相关文章
    MySQL转换Oracle的七大注意事项
    如何把文本数据导入Oracle中
    oracle中如何取消密码管理停止密码验…
    Mysql数据库名和表名在不同系统下的…
    mysql全文搜索:sql的写法
    了解Oracle启动模式的三个阶段
    Oracle同义词的定义给数据库管理的好…
    解答SQL不许在视图定义ORDER BY子句…
    ORACLE普遍错误代码地说明与处理
    数据库海量数据查询与优化
    关于45IT | About 45IT | 联系方式 | 版权声明 | 网站导航 |

    Copyright © 2003-2011 45IT. All Rights Reserved 浙ICP备09049068号