关于数据文件的回复:
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
数据恢复成功。