做系统管理的都是这样,难免会误删文件,某天要是把某个Oracle数据文件删除,那该如何恢复呢?(这里数据库是开放的,并且未关闭)
- <李>
建立测试表空间
李> <李>创建测试用户
李> <李>插入测试数据
李> <李>删除数据文件
李> <李>恢复数据库文件
李>
- <李>
建立测试表空间
完成,select name 得到v $丢失; 的名字 --------------------------------------------------------------------------------/opt/oracle/oradata/会员/system01.dbf/opt/oracle/oradata/会员/sysaux01.dbf/opt/oracle/oradata/会员/undotbs01.dbf/opt/oracle/oradata/会员/users01.dbf 完成,create tablespace test  datafile '/opt/oracle/oradata/会员/test01.dbf’, size 10米; Tablespace 创建。 完成,select name 得到v $丢失; 的名字 --------------------------------------------------------------------------------/opt/oracle/oradata/会员/system01.dbf/opt/oracle/oradata/会员/sysaux01.dbf/opt/oracle/oradata/会员/undotbs01.dbf/opt/oracle/oradata/会员/users01.dbf/opt/oracle/oradata/会员/test01.dbf
2。创建测试账户
完成,create user test identified by test default tablespace 测试; 完成,grant 连接,resource 用测试;
3。插入测试数据
完成conn 测试/测试 完成,create table  t1 (id int); 完成,insert into  t1 价值(1); 完成,select *,得到t1; ,,,,,,,ID ---------- ,,,,,,,,1
4。删除数据文件
(oracle@db2 ~),美元rm -f /opt/oracle/oradata/会员/test01.dbf (oracle@db2 ~),美元sqlplus 测试/测试 完成,create table t2  as select *,得到t1; create table  t2 as  select *,得到t1 ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ERROR at  line 1: ora - 01116: error 拷贝opening database file 5 ora - 01110: data file 5:,“/opt/oracle/oradata/会员/test01.dbf” ora - 27041: unable 用open 文件 错误:Linux-x86_64 2:, No such file 或是目录 Additional 信息:3 完成,select table_name tablespace_name 得到user_tables; TABLE_NAME ,,,,,,,,,,,,,,,,,,, TABLESPACE_NAME - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -,- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - T1 ,,,,,,,,,,,,,,,,,,,,,,,,,,,,测试
数据文件被删除了,这怎么办呢?这个时候千万别重启数据库,否则数据就丢失了
5。数据文件恢复
(oracle@db2 ~),美元ps -ef | grep dbw0 3309年oracle ,,,,,,,, 1,, 0, 12:07 ?,,,,,,,, 00:00:00 ora_dbw0_member oracle ,,, 6217,, 5105,, 0, 15:29 pts/0,,,, 00:00:00 grep dbw0 #找到ora_dbw0_SID的进程号3309 (oracle@db2 ~),美元cd /proc/3309/fd #以上3309就是进程号,然后执行ls 过程查看文件的链接
可以看到文件27就是被删除的文件
(oracle@db2 fd)美元,cp 27,/opt/Oracle/oradata/会员/test01。dbf
查看测试表空间状态
完成,select 名字,status 得到v $丢失; NAME ,,,,,,,,,,,,,,,,,,,,,的地位 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -,,- - - - - - -/opt/oracle/oradata/会员/system01.dbf ,,系统/opt/oracle/oradata/会员/sysaux01.dbf ,,在线/opt/oracle/oradata/会员/undotbs01.dbf ,,在线/opt/oracle/oradata/会员/users01.dbf ,,在线/opt/oracle/oradata/会员/test01.dbf ,,,网上
下线test01表文件
完成,alter database datafile '/opt/oracle/oradata/会员/test01.dbf’,离线; 完成,recover datafile  '/opt/oracle/oradata/会员/test01.dbf”; Media recovery 完成。 null null null null null null null null甲骨文数据文件物理删除后的恢复