ITPub博客

首页 > 数据库 > Oracle > RMAN完全恢复丢失的数据文件

RMAN完全恢复丢失的数据文件

原创 Oracle 作者:nathanzhn 时间:2014-02-19 15:41:24 0 删除 编辑

前提条件:

         丢失前做过RMAN备份,全库的

         控制文件、归档、联机日志文件完好无损

SYS@PROD>conn amy/amy

Connected.

AMY@PROD>create table t_amy02(b int);

 

Table created.

 

 

AMY@PROD>conn / as sysdba

Connected.

SYS@PROD>conn amy/amy

Connected.

 

AMY@PROD>insert into t_amy02 values(11);

 

1 row created.

 

AMY@PROD>commit;

 

Commit complete.

 

AMY@PROD>select * from t_amy02;

 

         B

----------

        11

 

-- 此时做rman的全库备份

-- 下面再继续插入数据

 

AMY@PROD>insert into t_amy02 values(12);

 

1 row created.

 

AMY@PROD>commit;

 

Commit complete.

 

AMY@PROD>select * from t_amy02;

 

         B

----------

        11

        12

 

AMY@PROD>conn / as sysdba

Connected.

SYS@PROD>alter system switch logfile;

 

System altered.

 

SYS@PROD>conn amy/amy

Connected.

AMY@PROD>insert into t_amy02 values(13);

 

1 row created.

 

AMY@PROD>commit;

 

Commit complete.

 

AMY@PROD>select * from t_amy02;

 

         B

----------

        11

        12

        13

 

-- 以上三条记录,11rman备份里,12在归档里,13在联机日志里

-- 接着删除用户AMY的默认表空间TBS_AMY的数据文件'/u01/app/oracle/oradata/PROD/disk1/tbs_amy01.dbf'

 

AMY@PROD>create table t_amy03(c int);

create table t_amy03(c int)

*

ERROR at line 1:

ORA-01116: error in opening database file 10

ORA-01110: data file 10: '/u01/app/oracle/oradata/PROD/disk1/tbs_amy01.dbf'

ORA-27041: unable to open file

Linux Error: 2: No such file or directory

Additional information: 3

 

--发现数据文件丢失后,需要做RMAN恢复

--如果不关机直接做restore会失败,报错ORA-19573,需要shutdown immediate然后再做RMAN restore and recover

RMAN> shutdown immediate

 

database closed

database dismounted

Oracle instance shut down

 

RMAN> startup mount

 

connected to target database (not started)

Oracle instance started

database mounted

 

Total System Global Area     314572800 bytes

 

Fixed Size                     1219184 bytes

Variable Size                 79693200 bytes

Database Buffers             230686720 bytes

Redo Buffers                   2973696 bytes

 

RMAN> restore database;

 

Starting restore at 23-JAN-14

allocated channel: ORA_DISK_1

channel ORA_DISK_1: sid=287 devtype=DISK

allocated channel: ORA_DISK_2

channel ORA_DISK_2: sid=285 devtype=DISK

 

channel ORA_DISK_1: starting datafile backupset restore

channel ORA_DISK_1: specifying datafile(s) to restore from backup set

restoring datafile 00002 to /u01/app/oracle/oradata/PROD/disk1/undotbs01.dbf

restoring datafile 00004 to /u01/app/oracle/oradata/PROD/disk1/example1.dbf

restoring datafile 00007 to /u01/app/oracle/oradata/PROD/disk1/users1.dbf

restoring datafile 00008 to /u01/app/oracle/oradata/PROD/disk1/oltp1.dbf

restoring datafile 00009 to /u01/app/oracle/oradata/PROD/disk1/tbs_tommie01.dbf

channel ORA_DISK_1: reading from backup piece /home/oracle/backup/PROD_0jouptng_1_1

channel ORA_DISK_2: starting datafile backupset restore

channel ORA_DISK_2: specifying datafile(s) to restore from backup set

restoring datafile 00001 to /u01/app/oracle/oradata/PROD/disk1/system001.dbf

restoring datafile 00003 to /u01/app/oracle/oradata/PROD/disk1/sysaux01.dbf

restoring datafile 00005 to /u01/app/oracle/oradata/PROD/disk1/indx1.dbf

restoring datafile 00006 to /u01/app/oracle/oradata/PROD/disk1/tools1.dbf

restoring datafile 00010 to /u01/app/oracle/oradata/PROD/disk1/tbs_amy01.dbf

channel ORA_DISK_2: reading from backup piece /home/oracle/backup/PROD_0iouptng_1_1

channel ORA_DISK_1: restored backup piece 1

piece handle=/home/oracle/backup/PROD_0jouptng_1_1 tag=TAG20140123T142135

channel ORA_DISK_1: restore complete, elapsed time: 00:00:56

channel ORA_DISK_2: restored backup piece 1

piece handle=/home/oracle/backup/PROD_0iouptng_1_1 tag=TAG20140123T142135

channel ORA_DISK_2: restore complete, elapsed time: 00:01:04

Finished restore at 23-JAN-14

 

RMAN> recover database;

 

Starting recover at 23-JAN-14

using channel ORA_DISK_1

using channel ORA_DISK_2

 

starting media recovery

media recovery complete, elapsed time: 00:00:03

 

Finished recover at 23-JAN-14

 

RMAN> alter database open;

 

database opened

 

AMY@PROD>conn / as sysdba

Connected.

SYS@PROD>conn amy/amy

ERROR:

ORA-03135: connection lost contact

 

 

ERROR:

ORA-24315: illegal attribute type

 

 

Warning: You are no longer connected to ORACLE.

@>conn / as sysdba

ERROR:

ORA-24313: user already authenticated

 

 

@>exit

[oracle@odd-oelr4u8 ~]$ sqlplus / as sysdba

 

SQL*Plus: Release 10.2.0.1.0 - Production on Thu Jan 23 14:41:14 2014

 

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

 

 

Connected to:

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production

With the Partitioning, Oracle Label Security, OLAP and Data Mining options

 

SYS@PROD>conn amy/amy

Connected.

AMY@PROD>select * from t_amy02;

select * from t_amy02

              *

ERROR at line 1:

ORA-00376: file 10 cannot be read at this time

ORA-01110: data file 10: '/u01/app/oracle/oradata/PROD/disk1/tbs_amy01.dbf'

 

 

SYS@PROD>alter tablespace tbs_amy begin backup;

alter tablespace tbs_amy begin backup

*

ERROR at line 1:

ORA-01128: cannot start online backup - file 10 is offline

ORA-01110: data file 10: '/u01/app/oracle/oradata/PROD/disk1/tbs_amy01.dbf'

 

 

SYS@PROD>alter database datafile 10 online;

 

Database altered.

 

SYS@PROD>alter tablespace tbs_amy begin backup;

 

Tablespace altered.

 

SYS@PROD>alter tablespace tbs_amy end backup;

 

Tablespace altered.

 

SYS@PROD>conn amy/amy

Connected.

AMY@PROD>select * from t_amy02;

 

         B

----------

        11

        12

        13

       

-- 至此,完全恢复完成

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26521853/viewspace-1083918/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2014-01-23

  • 博文量
    49
  • 访问量
    262702