Oracle数据文件物理删除后的恢复
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,做系统管理的都是这样,难免会误删文件,某天要是把某个Oracle数据文件删除,那该如何恢复呢?(这里数据库是OPEN的,并且未关闭)建立测试表空间创建测试用户插入测试数据删除数据文件恢复数据库文件建立
千家信息网最后更新 2025年11月07日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安全错误
数据库的锁怎样保障安全
武汉优虎互联网科技有限公司
在数据库原理系统中
管理dns服务器的组织
阿里云云服务器价格
哪些土地项目需要数据库
广州软件开发有哪些网站
网络技术岗位是做什么的
cms管理服务器
acc数据库关系
淄博掌沃软件开发公司
泰源网络技术团队
软件开发过程文档管理
浙大大学网络安全陈焰
落实网络安全责任制情况汇报
国家机构网络安全软件中标
成都市人力资源外包软件开发
c 数据库工具
服务器延时
游戏加速服务器需要多少带宽
客户关系采集与图数据库
双网卡服务器的网络安全
虹口区管理软件开发代理品牌
软件开发测试pf是什么意思
网络安全风险预警方法
军队网络安全保密制度
iis7远程管理服务器
万方数据库期刊群
全球同服游戏服务器实现
绿色地狱怎么开服务器
施耐德网络安全问题