ARCHIVELOG模式下用户管理的不完全恢复(3)——基于取消的不完全恢复!

 基于取消的恢复只要适用于以下情况: 归档日志丢失导致完全恢复失败; 丢失了数据文件和未归档的重做日志(联机重做日志);

 

先关闭数据库,执行一次全库冷备份。

SQL> conn /as sysdba
已连接。
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> ! cp /u01/app/oracle/oradata/orcl/* /u01/app/oracle/backup/


然后打开数据库继续使用,可以看见在备份的时候数据库用户u1的t表里面就有一条记录。接着在向t表里插入数据,多切换几次日志,模拟数据库使用了很久的样子,让redo log归档。

SQL> startup
ORACLE 例程已经启动。

Total System Global Area  167772160 bytes
Fixed Size                  1266392 bytes
Variable Size              62917928 bytes
Database Buffers          100663296 bytes
Redo Buffers                2924544 bytes
数据库装载完毕。
数据库已经打开。
SQL> conn u1/u1
已连接。
SQL> select * from t;

        ID VALUE
---------- ----------
         1 a

SQL> insert into t values(2,'b');

已创建 1 行。

SQL> commit;

提交完成。

SQL> select * from t;

        ID VALUE
---------- ----------
         1 a
         2 b

SQL> conn /as sysdba
已连接。
SQL> alter system switch logfile;

系统已更改。

SQL> /

系统已更改。

SQL> /

系统已更改。

SQL> /

系统已更改。

SQL> /

系统已更改。

SQL> /

系统已更改。

SQL> /

系统已更改。


现在模拟数据库还没来得及再一次备份,数据文件都丢失了。归档日志也丢失了,所以数据库只能不完全恢复。

SQL> conn /as sysdba
已连接。
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> ! rm -rf /u01/app/oracle/oradata/orcl/*.dbf

SQL> ! cp /u01/app/oracle/backup/*.dbf /u01/app/oracle/oradata/orcl/


基于取消的不完全恢复

SQL> startup
ORACLE 例程已经启动。

Total System Global Area  167772160 bytes
Fixed Size                  1266392 bytes
Variable Size              62917928 bytes
Database Buffers          100663296 bytes
Redo Buffers                2924544 bytes
数据库装载完毕。
ORA-01113: 文件 1 需要介质恢复
ORA-01110: 数据文件 1: '/u01/app/oracle/oradata/orcl/system01.dbf'

SQL> select * from v$recover_file;

     FILE# ONLINE  ONLINE_ ERROR                                                                CHANGE# TIME
---------- ------- ------- ----------------------------------------------------------------- ---------- --------------
         1 ONLINE  ONLINE                                                                        500797 09-10月-11
         2 ONLINE  ONLINE                                                                        500797 09-10月-11
         3 ONLINE  ONLINE                                                                        500797 09-10月-11
         4 ONLINE  ONLINE                                                                        500797 09-10月-11
         5 ONLINE  ONLINE                                                                        500797 09-10月-11
         6 ONLINE  ONLINE                                                                        500797 09-10月-11

已选择6行。
SQL> recover database until cancel;
ORA-00279: 更改 500797 (在 10/09/2011 06:24:47 生成) 对于线程 1 是必需的
ORA-00289: 建议: /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_10_09/o1_mf_1_2_%u_.arc
ORA-00280: 更改 500797 (用于线程 1) 在序列 #2 中


指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
cancel
介质恢复已取消。
SQL> select * from v$recover_file;

     FILE# ONLINE  ONLINE_ ERROR                                                                CHANGE# TIME
---------- ------- ------- ----------------------------------------------------------------- ---------- --------------
         1 ONLINE  ONLINE                                                                        500797 09-10月-11
         2 ONLINE  ONLINE                                                                        500797 09-10月-11
         3 ONLINE  ONLINE                                                                        500797 09-10月-11
         4 ONLINE  ONLINE                                                                        500797 09-10月-11
         5 ONLINE  ONLINE                                                                        500797 09-10月-11
         6 ONLINE  ONLINE                                                                        500797 09-10月-11

已选择6行。
SQL> alter database open;
alter database open
*
第 1 行出现错误:
ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项

SQL> alter database open resetlogs;

数据库已更改。

SQL> select status from v$instance;

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

SQL> conn u1/u1;
已连接。
SQL> select * from t;

        ID VALUE
---------- ----------
         1 a

你可能感兴趣的:(ARCHIVELOG模式下用户管理的不完全恢复(3)——基于取消的不完全恢复!)