数据文件在无备份情况的恢复

恢复没有备份的数据文件,关键是启动数据库归档模式,可以从重做日志或者归档日志所保护好。

建表空间和表

create tablespace bank_tbs datafile '/oracle/oradata/kgdb/bank_data02.dbf';

create table tsb (id number,name varch2(20)) tablespace bank_tbs;

向表插入数据

SQL> begin for i in 1..1000 loop
  2  insert into tsb values(i,'name'||i);
  3  end loop;
  4  end;
  5  /


PL/SQL 过程已成功完成。

SQL> commit

SQL> select count(*) from tsb;

  COUNT(*)
----------
      1000

模拟事故 rm -fr /oracle/oradata/kgdb/bank_data02.dbf

oracle@linux235:/oracle>rm -fr /oracle/oradata/kgdb/bank_data02.dbf
oracle@linux235:/oracle>sqlplus / as sysdba;

SQL*Plus: Release 11.2.0.3.0 Production on 星期四 8月 4 17:34:33 2016

Copyright (c) 1982, 2011, Oracle.  All rights reserved.


连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options


SQL> alter system flush buffer_cache;    清除buffer cache数据查询tsb

系统已更改。

SQL> select * from tsb;
select * from tsb
              *
第 1 行出现错误:
ORA-01116: 打开数据库文件 6 时出错
ORA-01110: 数据文件 6: '/oracle/oradata/kgdb/bank_data02.dbf'
ORA-27041: 无法打开文件
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3


SQL> alter database datafile 6 offline;    -

数据库已更改。

SQL> alter database create datafile '/oracle/oradata/kgdb/bank_data02.dbf';

数据库已更改。

SQL> alter database datafile 6 online;
alter database datafile 6 online
*
第 1 行出现错误:
ORA-01113: 文件 6 需要介质恢复
ORA-01110: 数据文件 6: '/oracle/oradata/kgdb/bank_data02.dbf'


SQL> recover datafile 6;
完成介质恢复。
SQL> alter database datafile 6 online;

数据库已更改。

SQL> select count(*) from tsb;

  COUNT(*)
----------
      1000

SQL> select count(*) from tsb;

  COUNT(*)
----------
      1000

SQL> select count(*) from tsb;

  COUNT(*)
----------
      1000



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值