数据文件的 rman 恢复 - 单个和多个

 

关于数据文件的回复:

1: 先备份:
RMAN> backup full database;

Starting backup at 06-DEC-11
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=142 devtype=DISK
channel ORA_DISK_1: starting full datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
input datafile fno=00001 name=/u02/ezhou/system01.dbf
input datafile fno=00002 name=/u02/ezhou/undotbs01.dbf
input datafile fno=00003 name=/u02/ezhou/sysaux01.dbf
input datafile fno=00005 name=/u02/ezhou/example01.dbf
input datafile fno=00007 name=/u02/ezhou/test01.dbf
input datafile fno=00004 name=/u02/ezhou/users01.dbf
input datafile fno=00006 name=/u02/ezhou/example02.dbf
channel ORA_DISK_1: starting piece 1 at 06-DEC-11
channel ORA_DISK_1: finished piece 1 at 06-DEC-11
piece handle=/u01/pp/oracle/product/10.2/db_1/dbs/0vmthk25_1_1 tag=TAG20111206T141013 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:03:17
Finished backup at 06-DEC-11

Starting Control File and SPFILE Autobackup at 06-DEC-11
piece handle=/u02/rman/ctl_c-4046377924-20111206-01 comment=NONE
Finished Control File and SPFILE Autobackup at 06-DEC-11

2:使数据文件remove:
[oracle@aoracle ezhou]$ mv test01.dbf test001.dbf
[oracle@aoracle ezhou]$ ls -lrt
total 1591336
drwxr-xr-x 3 oracle oinstall      4096 Sep 28 16:34 patch
-rw-r----- 1 oracle oinstall  52429312 Dec  6 11:09 redo02.log
-rw-r----- 1 oracle oinstall 524296192 Dec  6 11:12 temp01.dbf
-rw-r----- 1 oracle oinstall  52429312 Dec  6 13:14 redo03.log
-rw-r----- 1 oracle oinstall  66854912 Dec  6 14:10 users01.dbf
-rw-r----- 1 oracle oinstall 104865792 Dec  6 14:10 test001.dbf
-rw-r----- 1 oracle oinstall  10493952 Dec  6 14:10 example02.dbf
-rw-r----- 1 oracle oinstall 104865792 Dec  6 14:10 example01.dbf
-rw-r----- 1 oracle oinstall 272637952 Dec  6 14:16 sysaux01.dbf
-rw-r----- 1 oracle oinstall 513810432 Dec  6 14:18 system01.dbf
-rw-r----- 1 oracle oinstall 298852352 Dec  6 14:18 undotbs01.dbf
-rw-r----- 1 oracle oinstall  52429312 Dec  6 14:18 redo01.log
-rw-r----- 1 oracle oinstall  52429312 Dec  6 14:18 redo01a.rdo
-rw-r----- 1 oracle oinstall   7061504 Dec  6 14:19 control03.ctl
-rw-r----- 1 oracle oinstall   7061504 Dec  6 14:19 control02.ctl
-rw-r----- 1 oracle oinstall   7061504 Dec  6 14:19 control01.ctl

把数据库shutdown:

SQL> shutdown immediate;
ORA-01116: error in opening database file 7
ORA-01110: data file 7: '/u02/ezhou/test01.dbf'
ORA-27041: unable to open file
Linux Error: 2: No such file or directory
Additional information: 3
SQL> select status from v$instance;

STATUS
------------
OPEN

SQL> shutdown abort;
ORACLE instance shut down.
SQL> select status from v$instance;
select status from v$instance
*
ERROR at line 1:
ORA-01034: ORACLE not available

SQL> startup;
ORACLE instance started.

Total System Global Area  335544320 bytes
Fixed Size                  1219280 bytes
Variable Size              79693104 bytes
Database Buffers          251658240 bytes
Redo Buffers                2973696 bytes
Database mounted.
ORA-01157: cannot identify/lock data file 7 - see DBWR trace file
ORA-01110: data file 7: '/u02/ezhou/test01.dbf'

3:好,下面进行恢复:
RMAN> run {
2> restore datafile 7;
3> recover datafile 7;
4> sql 'alter database datafile 7 online';
5> sql 'alter database open';
6> }

Starting restore at 06-DEC-11
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=154 devtype=DISK

channel ORA_DISK_1: starting datafile backupset restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
restoring datafile 00007 to /u02/ezhou/test01.dbf
channel ORA_DISK_1: reading from backup piece /u01/pp/oracle/product/10.2/db_1/dbs/0vmthk25_1_1
channel ORA_DISK_1: restored backup piece 1
piece handle=/u01/pp/oracle/product/10.2/db_1/dbs/0vmthk25_1_1 tag=TAG20111206T141013
channel ORA_DISK_1: restore complete, elapsed time: 00:00:35
Finished restore at 06-DEC-11

Starting recover at 06-DEC-11
using channel ORA_DISK_1

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

Finished recover at 06-DEC-11

sql statement: alter database datafile 7 online

sql statement: alter database open

成功。

看一下:
[oracle@aoracle ezhou]$ ls -lrt
total 1693848
drwxr-xr-x 3 oracle oinstall      4096 Sep 28 16:34 patch
-rw-r----- 1 oracle oinstall 524296192 Dec  6 11:12 temp01.dbf
-rw-r----- 1 oracle oinstall 104865792 Dec  6 14:10 test001.dbf
-rw-r----- 1 oracle oinstall  66854912 Dec  6 14:37 users01.dbf
-rw-r----- 1 oracle oinstall 298852352 Dec  6 14:37 undotbs01.dbf
-rw-r----- 1 oracle oinstall 104865792 Dec  6 14:37 test01.dbf
-rw-r----- 1 oracle oinstall 513810432 Dec  6 14:37 system01.dbf
-rw-r----- 1 oracle oinstall 272637952 Dec  6 14:37 sysaux01.dbf
-rw-r----- 1 oracle oinstall  52429312 Dec  6 14:37 redo03.log
-rw-r----- 1 oracle oinstall  52429312 Dec  6 14:37 redo01.log
-rw-r----- 1 oracle oinstall  52429312 Dec  6 14:37 redo01a.rdo
-rw-r----- 1 oracle oinstall  10493952 Dec  6 14:37 example02.dbf
-rw-r----- 1 oracle oinstall 104865792 Dec  6 14:37 example01.dbf
-rw-r----- 1 oracle oinstall  52429312 Dec  6 14:40 redo02.log
-rw-r----- 1 oracle oinstall   7061504 Dec  6 14:41 control03.ctl
-rw-r----- 1 oracle oinstall   7061504 Dec  6 14:41 control02.ctl
-rw-r----- 1 oracle oinstall   7061504 Dec  6 14:41 control01.ctl


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

数据文件文件全部损坏的恢复:

[oracle@aoracle ezhou]$ mv *.dbf ./bak
[oracle@aoracle ezhou]$ ls -lrt
total 225772
drwxr-xr-x 3 oracle oinstall     4096 Sep 28 16:34 patch
-rw-r----- 1 oracle oinstall 52429312 Dec  6 14:37 redo03.log
-rw-r----- 1 oracle oinstall 52429312 Dec  6 14:37 redo01.log
-rw-r----- 1 oracle oinstall 52429312 Dec  6 14:37 redo01a.rdo
-rw-r----- 1 oracle oinstall  7061504 Dec  6 15:20 control03.ctl
-rw-r----- 1 oracle oinstall  7061504 Dec  6 15:20 control02.ctl
-rw-r----- 1 oracle oinstall  7061504 Dec  6 15:20 control01.ctl
drwxr-xr-x 2 oracle oinstall     4096 Dec  6 15:20 bak
-rw-r----- 1 oracle oinstall 52429312 Dec  6 15:20 redo02.log

SQL> shutdown abort
ORACLE instance shut down.
SQL> startup;
ORACLE instance started.

Total System Global Area  335544320 bytes
Fixed Size                  1219280 bytes
Variable Size              79693104 bytes
Database Buffers          251658240 bytes
Redo Buffers                2973696 bytes
Database mounted.
ORA-01157: cannot identify/lock data file 1 - see DBWR trace file
ORA-01110: data file 1: '/u02/ezhou/system01.dbf'

下面进行恢复:
[oracle@aoracle u02]$ rman target /

Recovery Manager: Release 10.2.0.1.0 - Production on Tue Dec 6 15:23:05 2011

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

connected to target database: EZHOU (DBID=4046377924, not open)

RMAN> run {
2> restore database;
3> recover database;
4> sql 'alert database open';
5> }

Starting restore at 06-DEC-11
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=155 devtype=DISK

channel ORA_DISK_1: starting datafile backupset restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
restoring datafile 00001 to /u02/ezhou/system01.dbf
restoring datafile 00002 to /u02/ezhou/undotbs01.dbf
restoring datafile 00003 to /u02/ezhou/sysaux01.dbf
restoring datafile 00004 to /u02/ezhou/users01.dbf
restoring datafile 00005 to /u02/ezhou/example01.dbf
restoring datafile 00006 to /u02/ezhou/example02.dbf
restoring datafile 00007 to /u02/ezhou/test01.dbf
channel ORA_DISK_1: reading from backup piece /u01/pp/oracle/product/10.2/db_1/dbs/0vmthk25_1_1
channel ORA_DISK_1: restored backup piece 1
piece handle=/u01/pp/oracle/product/10.2/db_1/dbs/0vmthk25_1_1 tag=TAG20111206T141013
channel ORA_DISK_1: restore complete, elapsed time: 00:01:45
Finished restore at 06-DEC-11

Starting recover at 06-DEC-11
using channel ORA_DISK_1

starting media recovery
media recovery complete, elapsed time: 00:00:06

Finished recover at 06-DEC-11

sql statement: alert database open
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: failure of sql command on default channel at 12/06/2011 15:26:45
RMAN-11003: failure during parse/execution of SQL statement: alert database open
ORA-00900: invalid SQL statement

发现缺少了temp 文件:
报错

[oracle@aoracle ezhou]$ ls -lrt
total 1567332
drwxr-xr-x 3 oracle oinstall      4096 Sep 28 16:34 patch
-rw-r----- 1 oracle oinstall  52429312 Dec  6 14:37 redo03.log
-rw-r----- 1 oracle oinstall  52429312 Dec  6 14:37 redo01.log
-rw-r----- 1 oracle oinstall  52429312 Dec  6 14:37 redo01a.rdo
drwxr-xr-x 2 oracle oinstall      4096 Dec  6 15:20 bak
-rw-r----- 1 oracle oinstall  52429312 Dec  6 15:22 redo02.log
-rw-r----- 1 oracle oinstall  66854912 Dec  6 15:26 users01.dbf
-rw-r----- 1 oracle oinstall 298852352 Dec  6 15:26 undotbs01.dbf
-rw-r----- 1 oracle oinstall 104865792 Dec  6 15:26 test01.dbf
-rw-r----- 1 oracle oinstall 513810432 Dec  6 15:26 system01.dbf
-rw-r----- 1 oracle oinstall 272637952 Dec  6 15:26 sysaux01.dbf
-rw-r----- 1 oracle oinstall  10493952 Dec  6 15:26 example02.dbf
-rw-r----- 1 oracle oinstall 104865792 Dec  6 15:26 example01.dbf
-rw-r----- 1 oracle oinstall   7061504 Dec  6 15:29 control03.ctl
-rw-r----- 1 oracle oinstall   7061504 Dec  6 15:29 control02.ctl
-rw-r----- 1 oracle oinstall   7061504 Dec  6 15:29 control01.ctl

SQL> alter database tempfile '/u02/ezhou/temp01.dbf' drop;

Database altered.

Elapsed: 00:00:00.20

SQL> alter database open;

Database altered.

Elapsed: 00:00:22.65

SQL> alter tablespace temp add tempfile '/u02/ezhou/temp01.dbf' size 50M autoextend on next 5M maxsize unlimited
  2  ;

Tablespace altered.

Elapsed: 00:00:02.11

[oracle@aoracle ezhou]$ ls -l
total 1567408
drwxr-xr-x 2 oracle oinstall      4096 Dec  6 15:20 bak
-rw-r----- 1 oracle oinstall   7061504 Dec  6 15:46 control01.ctl
-rw-r----- 1 oracle oinstall   7061504 Dec  6 15:46 control02.ctl
-rw-r----- 1 oracle oinstall   7061504 Dec  6 15:46 control03.ctl
-rw-r----- 1 oracle oinstall 104865792 Dec  6 15:40 example01.dbf
-rw-r----- 1 oracle oinstall  10493952 Dec  6 15:40 example02.dbf
drwxr-xr-x 3 oracle oinstall      4096 Sep 28 16:34 patch
-rw-r----- 1 oracle oinstall  52429312 Dec  6 15:40 redo01a.rdo
-rw-r----- 1 oracle oinstall  52429312 Dec  6 15:40 redo01.log
-rw-r----- 1 oracle oinstall  52429312 Dec  6 15:40 redo02.log
-rw-r----- 1 oracle oinstall  52429312 Dec  6 15:46 redo03.log
-rw-r----- 1 oracle oinstall 272637952 Dec  6 15:45 sysaux01.dbf
-rw-r----- 1 oracle oinstall 513810432 Dec  6 15:45 system01.dbf
-rw-r----- 1 oracle oinstall  52436992 Dec  6 15:46 temp01.dbf
-rw-r----- 1 oracle oinstall 104865792 Dec  6 15:40 test01.dbf
-rw-r----- 1 oracle oinstall 298852352 Dec  6 15:45 undotbs01.dbf
-rw-r----- 1 oracle oinstall  66854912 Dec  6 15:40 users01.dbf

数据恢复成功。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shenghuiping2001

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值