2024年6月15日发(作者:)

仅仅丢失一个普通用户数据文件的恢复A(联机恢复)

(例如,丢失D:)

准备工作, 通过下面的工作,如果完全恢复,应该可以看到;insert into test1 values(2);

SQL> conn lunar/lunar

SQL> select * from tab;

TESTBACKUP3 TABLE

SQL> create table test1 (a number);

SQL> insert into test1 values(1);

SQL> alter system switch logfile;

SQL> commit;

SQL> alter system switch logfile;

SQL> insert into test1 values(2);

SQL> commit;

SQL> alter system switch logfile;

SQL> conn internal

SQL> archive log list

数据库日志模式 存档模式

自动存档 启用

存档终点 d:BACKUPDBarchive

最早的概要信息日志序列 3

下一个存档日志序列 5

当前日志序列 5

shutdown abort关闭例程,模拟数据文件丢失

SQL> shutdown abort

ORACLE 例程已经关闭。

Mount数据库

SQL> startup mount

数据库装载完毕。

使损坏的数据文件脱机

SQL> alter database datafile 'D:' offline;

打开数据库

SQL> alter database open;

拷贝刚才热备的数据文件()

恢复损坏的数据文件

SQL> recover datafile 'D:';

ORA-00279: ?? 424116 (? 10/20/2002 20:42:04 ??) ???? 1 ????

ORA-00289: ??: D:

ORA-00280: ?? 424116 ???? 1 ???? # 1 ???

指定日志: {=suggested | filename | AUTO | CANCEL}

auto

1

ORA-00279: ?? 424125 (? 10/20/2002 20:44:14 ??) ???? 1 ????

ORA-00289: ??: D:

ORA-00280: ?? 424125 ???? 1 ???? # 2 ???

ORA-00278: ??????????? 'D:'

……………………..

已应用的日志。

完成介质恢复。

使恢复完成的数据文件联机

SQL> alter database datafile 'D:' online;

验证恢复的结果:完全恢复

SQL> select * from tab;

TNAME TABTYPE CLUSTERID

SQL> select * from test1;

说明:

1. shutdown abort关闭例程,模拟数据文件丢失

2. Mount数据库

3. 使损坏的数据文件脱机

4. 打开数据库

5. 拷贝刚才热备的数据文件()

6. 恢复损坏的数据文件

7. 使恢复完成的数据文件联机

2