Oracle数据文件物理删除后的恢复
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,做系统管理的都是这样,难免会误删文件,某天要是把某个Oracle数据文件删除,那该如何恢复呢?(这里数据库是OPEN的,并且未关闭)建立测试表空间创建测试用户插入测试数据删除数据文件恢复数据库文件建立
千家信息网最后更新 2026年11月02日Oracle数据文件物理删除后的恢复
做系统管理的都是这样,难免会误删文件,某天要是把某个Oracle数据文件删除,那该如何恢复呢?(这里数据库是OPEN的,并且未关闭)
建立测试表空间
创建测试用户
插入测试数据
删除数据文件
恢复数据库文件
建立测试表空间
SQL> select name from v$datafile;NAME--------------------------------------------------------------------------------/opt/oracle/oradata/member/system01.dbf/opt/oracle/oradata/member/sysaux01.dbf/opt/oracle/oradata/member/undotbs01.dbf/opt/oracle/oradata/member/users01.dbfSQL> create tablespace test datafile '/opt/oracle/oradata/member/test01.dbf' size 10m;Tablespace created.SQL> select name from v$datafile;NAME--------------------------------------------------------------------------------/opt/oracle/oradata/member/system01.dbf/opt/oracle/oradata/member/sysaux01.dbf/opt/oracle/oradata/member/undotbs01.dbf/opt/oracle/oradata/member/users01.dbf/opt/oracle/oradata/member/test01.dbf
2.创建测试账户
SQL> create user test identified by test default tablespace test;SQL> grant connect,resource to test;
3.插入测试数据
SQL> conn test/testSQL> create table t1(id int);SQL> insert into t1 values(1);SQL> select * from t1; ID---------- 1
4.删除数据文件
[oracle@db2 ~]$ rm -f /opt/oracle/oradata/member/test01.dbf[oracle@db2 ~]$ sqlplus test/testSQL> create table t2 as select * from t1;create table t2 as select * from t1 *ERROR at line 1:ORA-01116: error in opening database file 5ORA-01110: data file 5: '/opt/oracle/oradata/member/test01.dbf'ORA-27041: unable to open fileLinux-x86_64 Error: 2: No such file or directoryAdditional information: 3SQL> select table_name,tablespace_name from user_tables;TABLE_NAME TABLESPACE_NAME------------------------------ ------------------------------T1 TEST
数据文件被删除了,这怎么办呢?这个时候千万别重启数据库,否则数据就丢失了
5.数据文件恢复
[oracle@db2 ~]$ ps -ef |grep dbw0oracle 3309 1 0 12:07 ? 00:00:00 ora_dbw0_memberoracle 6217 5105 0 15:29 pts/0 00:00:00 grep dbw0#找到ora_dbw0_SID的进程号3309[oracle@db2 ~]$ cd /proc/3309/fd#以上3309就是进程号,然后执行ls -al查看文件的链接

可以看到文件27就是被删除的文件
[oracle@db2 fd]$ cp 27 /opt/oracle/oradata/member/test01.dbf
查看test表空间状态
SQL> select name,status from v$datafile;NAME STATUS---------------------------------------- -------/opt/oracle/oradata/member/system01.dbf SYSTEM/opt/oracle/oradata/member/sysaux01.dbf ONLINE/opt/oracle/oradata/member/undotbs01.dbf ONLINE/opt/oracle/oradata/member/users01.dbf ONLINE/opt/oracle/oradata/member/test01.dbf ONLINE
下线test01表文件
SQL> alter database datafile '/opt/oracle/oradata/member/test01.dbf' offline;SQL> recover datafile '/opt/oracle/oradata/member/test01.dbf';Media recovery complete.SQL> alter database datafile '/opt/oracle/oradata/member/test01.dbf' online;Database altered.
#以上就成功恢复了,若是出现
SQL> recover datafile '/opt/oracle/oradata/member/test01.dbf';ORA-00283: recovery session canceled due to errorsORA-01110: data file 5: '/opt/oracle/oradata/member/test01.dbf'ORA-01157: cannot identify/lock data file 5 - see DBWR trace fileORA-01110: data file 5: '/opt/oracle/oradata/member/test01.dbf'
则有可能是/opt/oracle/oradata/member/test01.dbf文件的权限问题引起,在root用户下
[root@db2 ~]# chown -R oracle.oinstall /opt/oracle/oradata/member/test01.dbf 再recover datafile '/opt/oracle/oradata/member/test01.dbf'
实验完成后,删除测试用户及测试表空间
SQL> drop user test cascade;SQL> drop tablespace test INCLUDING CONTENTS AND DATAFILES;
文件
数据
测试
空间
数据库
用户
就是
进程
成功
下线
怎么办
时候
权限
状态
系统
若是
要是
账户
链接
问题
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技工作委员会毛军
科技赋能下的互联网金融
没上市的科技互联网公司
互联网科技公司发展
互联网科技金融公司
广州善班互联网科技
互联网科技视频素材
科技类的互联网平台
四个字互联网科技公司取名
华夏互联网科技业
想开互联网科技公司怎么样
阿里互联网科技企业
互联网科技如何创业
科技赋能视角下互联网保险发展
中国互联网有什么科技
银行科技岗属于互联网吗
互联网与数字科技关系
杭州融税互联网科技有限公司
恒生科技互联网指数十大成分股
颐高云石互联网科技
互联网科技公司华为
期待互联网科技
哈尔滨秒房互联网科技有限公司
重庆威客帮互联网科技
中化能源互联网科技招聘
互联网还是高科技吗
苏州五指互联网络科技有限
互联网与医疗科技
开一家科技互联网公司需要多少钱
陕西彩京云互联网科技有限公司