非归档模式下恢复某个表空间: 测试目的只恢复USER表空间数据到备份时的状态: SQL> create table table_recover (a number) SQL> tablespace users
SQL> insert into table_recover values (1); SQL> insert into table_recover values (2); SQL> commit; SQL> select * from table_recove; A ----------- 1 2
SQL> shutdown immediate;
############################################################################## 这里,先把system、undo、users、controlfile拷备一份到A目录 ##############################################################################
SQL> startup
SQL> insert into table_recover values (3); SQL> insert into table_recover values (4); SQL> commit; SQL> select * from table_recove; A ----------- 1 2 3 4 sthudown immediate;
############################################################################## 删除所有数据文件,REDO,controlfile,UNDO,把A目录下的system、undo、users、 controlfile拷备回来 ##############################################################################
SQL> startup mount; ORACLE 例程已经启动。
Total System Global Area 135338868 bytes Fixed Size 453492 bytes Variable Size 109051904 bytes Database Buffers 25165824 bytes Redo Buffers 667648 bytes 数据库装载完毕。 SQL> SQL> alter database backup controlfile to trace;
数据库已更改。
SQL> alter database open 2 ; alter database open * ERROR 位于第 1 行: ORA-01157: 无法标识/锁定数据文件 3 - 请参阅 DBWR 跟踪文件 ORA-01110: 数据文件 3: 'E:\ORACLE\ORADATA\SKY\CWMLITE01.DBF' SQL> SQL> alter database datafile 'E:\ORACLE\ORADATA\SKY\CWMLITE01.DBF' offline drop;
数据库已更改。
SQL> alter database datafile 'E:\ORACLE\ORADATA\SKY\DRSYS01.DBF' offline drop;
数据库已更改。
SQL> alter database datafile 'E:\ORACLE\ORADATA\SKY\EXAMPLE01.DBF' offline drop;
数据库已更改。
SQL> alter database datafile 'E:\ORACLE\ORADATA\SKY\INDX01.DBF' offline drop;
数据库已更改。
SQL> alter database datafile 'E:\ORACLE\ORADATA\SKY\ODM01.DBF' offline drop;
数据库已更改。
SQL> alter database datafile 'E:\ORACLE\ORADATA\SKY\TOOLS01.DBF' offline drop;
数据库已更改。
SQL> alter database datafile 'E:\ORACLE\ORADATA\SKY\XDB01.DBF' offline drop;
数据库已更改。
SQL> alter database open; alter database open * ERROR 位于第 1 行: ORA-00313: 无法打开日志组 1 (线程 1) 的成员 ORA-00312: 联机日志 1 线程 1: 'E:\ORACLE\ORADATA\SKY\REDO01.LOG'
SQL> recover database until cancel; 完成介质恢复。 SQL> alter database open resetlogs;
数据库已更改。
SQL> select * from dual;
D - X
SQL> select * from table_recover;
A ---------- 1 2
SQL> |