zoukankan      html  css  js  c++  java
  • linux 误删除数据文件

    问题:由于误删除数据文件,导致无法正常删除该表空间

    以下实验对问题做了重现,并且提供了详细的解决方案,前提是故障出现后操作系统没有重启

    实验:

    1.创建表空间TEST001,并创建表A默认表空间为TEST001,并且插入数值

    SYS@EMREP> create tablespace test001 datafile '/u01/app/oracle/oradata/EMREP/test001.dbf' size 1m;

    Tablespace created.

    SYS@EMREP> create table a(id number(10)) tablespace TEST001;

    Table created.

    SYS@EMREP> insert into a values(1);

    1 row created.

    SYS@EMREP> commit;

    Commit complete.

    2.模拟从操作系统删除数据文件

    rm -rf /u01/app/oracle/oradata/EMREP/test001.dbf

    3.此时删除表空间,发现报错

    drop tablespace TEST001 INCLUDING CONTENTS AND DATAFILES
    *
    ERROR at line 1:
    ORA-01116: error in opening database file 2
    ORA-01110: data file 2: '/u01/app/oracle/oradata/EMREP/test001.dbf'
    ORA-27041: unable to open file
    Linux-x86_64 Error: 2: No such file or directory
    Additional information: 3

    4.解决方案

    1)找到进程号

    ps -ef|grep dbw0 |grep -v grep

    2)进入进程句柄位置

    cd /proc/25334/fd

    3)查看被删除文件句柄

    ls -lrth

     4)把该句柄拷贝回原位置

    cp /proc/25334/fd/263 /u01/app/oracle/oradata/EMREP/test001.dbf

    5)此时,可以正常删除该表空间,问题解决

    SYS@EMREP> drop tablespace TEST001 INCLUDING CONTENTS AND DATAFILES;

    Tablespace dropped.

  • 相关阅读:
    Eclipse Mars5.4.2集成scala IDE
    ajax请求无法下载文件
    Linux
    解决IE下URL传参中文乱码的问题
    jquery easyui datagrid.load方法参数传递问题 .
    Easyui设置datagrid自适应屏幕宽度的方法
    MapReduce方法的理解和遇到的问题总结
    hadoop操作中遇到的问题
    Maven中常见的问题
    jdk及mysql安装常见问题
  • 原文地址:https://www.cnblogs.com/gw666/p/15020928.html
Copyright © 2011-2022 走看看