表空间数据文件丢失的恢复

  数据库处于归档模式。

  在数据库里新建了一个表空间,共有3个数据文件。

  各10M,表空间内有一张23M的表。

  SQL> select count(*) from ldy.t1;

  COUNT(*)

  ----------

  605136

  SQL> col segment_name for a20

  SQL> col tablespace_name for a20

  SQL> select segment_name,tablespace_name,bytes/1024/1024 mb from dba_segments where owner='LDY';

  SEGMENT_NAME         TABLESPACE_NAME              MB

  -------------------- -------------------- ----------

  T1                   LDY                          23

  关闭数据库,将表空间的其中一个数据文件删除,启动后报错:

  SQL> startup

  ORACLE 例程已经启动。

  Total System Global Area  612368384 bytes

  Fixed Size                  1250428 bytes

  Variable Size             230689668 bytes

  Database Buffers          373293056 bytes

  Redo Buffers                7135232 bytes

  数据库装载完毕。

  ORA-01157: 无法标识/锁定数据文件 6 - 请参阅 DBWR 跟踪文件

  ORA-01110: 数据文件 6: 'E:/ORACLE/ORADATA/LDY01.DBF'

  此时数据库为mount状态。

  SQL> select open_mode from v$database;

  OPEN_MODE

  ----------

  MOUNTED

  增加回该数据文件。

  SQL>alter database create datafile 'E:/ORACLE/ORADATA/LDY01.DBF';

  数据库已更改。

  介质恢复。

  SQL>recover datafile 6;

  完成介质恢复。

  数据库打开,正常查询。

  SQL> alter database open;

  数据库已更改。

  SQL> select count(*) from ldy.t1;

  COUNT(*)

  ----------

  605136

 

 

同样一张表:

  SQL> select count(*) from t1;

  COUNT(*)

  ----------

  706000

  SQL> select segment_name,tablespace_name,bytes/1024/1204 mb from dba_segments where

  owner='LDY';

  SEGMENT_NAME           TABLESPACE_NAME                        MB

  -----------------      ------------------------------ ----------

  T1                     LDY                            22.9634551

  之后切换log。

  SQL> alter system switch logfile;

  系统已更改。

  将数据库关闭后,删除E:/ORACLE/ORADATA/目录,该目录下只有LDY表空间的文件。

  同样启动:

  SQL> startup

  ORACLE 例程已经启动。

  Total System Global Area  612368384 bytes

  Fixed Size                  1250428 bytes

  Variable Size             243272580 bytes

  Database Buffers          360710144 bytes

  Redo Buffers                7135232 bytes

  数据库装载完毕。

  ORA-01157: 无法标识/锁定数据文件 6 - 请参阅 DBWR 跟踪文件

  ORA-01110: 数据文件 6: 'E:/ORACLE/ORADATA/LDY01.DBF'

  在新的路径下创建数据文件:

  alter database create datafile  'E:/ORACLE/ORADATA/LDY01.DBF' as 'E:/ORACLE/LDY01.DBF';

  alter database create datafile  'E:/ORACLE/ORADATA/LDY02.DBF' as 'E:/ORACLE/LDY02.DBF';

  alter database create datafile  'E:/ORACLE/ORADATA/LDY03.DBF' as 'E:/ORACLE/LDY03.DBF';

  之后恢复表空间:

  SQL> recover tablespace ldy;

  完成介质恢复。

  打开数据库:

  SQL> alter database open;

  数据库已更改。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值