前提條件:
丟失前做過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
-- 以上三條記錄,11在rman備份裡,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
-- 至此,完全恢複完成