ARCHIVELOG模式下用户管理的完全恢复(4)——在没有数据文件备份的情况下恢复数据文件!
2011-10-09 16:56
921 查看
这个情况需要满足两个条件:只从数据文件创建以后,所有的归档日志文件和控制文件都在就可以使用这种方式来恢复数据。假如数据库是关闭的,发现该数据文件丢失了,又没有备份
现在正常关闭数据库,删除数据文件
现在肯定不能启动数据库,查询出丢失的文件的文件号码,也可以看见需要恢复文件记录。
恢复
SQL> conn /as sysdba 已连接。 SQL> create tablespace tb3 datafile '/u01/app/oracle/oradata/orcl/tb3.dbf' size 10m; 表空间已创建。 SQL> create user u3 identified by u3 default tablespace tb3; 用户已创建。 SQL> grant connect,resource to u3; 授权成功。 SQL> create table u3.t as select * from all_objects; 表已创建。
现在正常关闭数据库,删除数据文件
SQL> shutdown immediate 数据库已经关闭。 已经卸载数据库。 ORACLE 例程已经关闭。 SQL> ! rm -rf /u01/app/oracle/oradata/orcl/tb3.dbf
现在肯定不能启动数据库,查询出丢失的文件的文件号码,也可以看见需要恢复文件记录。
SQL> startup ORACLE 例程已经启动。 Total System Global Area 167772160 bytes Fixed Size 1266392 bytes Variable Size 117443880 bytes Database Buffers 46137344 bytes Redo Buffers 2924544 bytes 数据库装载完毕。 ORA-01157: 无法标识/锁定数据文件 15 - 请参阅 DBWR 跟踪文件 ORA-01110: 数据文件 15: '/u01/app/oracle/oradata/orcl/tb3.dbf' SQL> select status from v$instance; STATUS ------------ MOUNTED SQL> select file#,name,status from v$datafile; FILE# NAME STATUS ---------- -------------------------------------------------- ------- 1 /u01/app/oracle/oradata/orcl/system01.dbf SYSTEM 2 /u01/app/oracle/oradata/orcl/undotbs01.dbf ONLINE 3 /u01/app/oracle/oradata/orcl/sysaux01.dbf ONLINE 4 /u01/app/oracle/oradata/orcl/users01.dbf ONLINE 5 /u01/app/oracle/oradata/orcl/test01.dbf ONLINE 6 /u01/app/oracle/oradata/orcl/perfstat01.dba ONLINE 7 /u01/app/oracle/oradata/orcl/undo01.dbf ONLINE 8 /u01/app/oracle/oradata/orcl/tbspart01.dbf ONLINE 9 /u01/app/oracle/oradata/orcl/tbspart02.dbf ONLINE 10 /u01/app/oracle/oradata/orcl/tbspart03.dbf ONLINE 11 /u01/app/oracle/oradata/orcl/tbspart04.dbf ONLINE FILE# NAME STATUS ---------- -------------------------------------------------- ------- 12 /u01/app/oracle/oradata/orcl/tb1.dbf ONLINE 13 /u01/app/oracle/oradata/orcl/tb2.dbf ONLINE 14 /u01/app/oracle/oradata/orcl/ttb1.dbf ONLINE 15 /u01/app/oracle/oradata/orcl/tb3.dbf ONLINE 已选择15行。 SQL> select * from v$recover_file; FILE# ONLINE ONLINE_ ERROR CHANGE# TIME ---------- ------- ------- ----------------------------------------------------------------- ---------- -------------- 15 ONLINE ONLINE FILE NOT FOUND 0
恢复
SQL> alter database datafile 15 offline; 数据库已更改。 SQL> alter database create datafile '/u01/app/oracle/oradata/orcl/tb3.dbf'; 数据库已更改。 SQL> select * from v$recover_file; FILE# ONLINE ONLINE_ ERROR CHANGE# TIME ---------- ------- ------- ----------------------------------------------------------------- ---------- -------------- 15 OFFLINE OFFLINE 1026698 08-10月-11 SQL> recover datafile 15; 完成介质恢复。 SQL> alter database datafile 15 online; 数据库已更改。 SQL> alter database open; 数据库已更改。 SQL> conn u3/u3 已连接。 SQL> select * from tab; TNAME TABTYPE CLUSTERID ------------------------------ ------- ---------- T TABLE SQL> select count(*) from t; COUNT(*) ---------- 49945
相关文章推荐
- ARCHIVELOG模式下用户管理的不完全恢复—基于备份控制文件的不完全恢复
- ARCHIVELOG模式下用户管理的不完全恢复(4)——基于备份控制文件的不完全恢复!
- ARCHIVELOG模式下用户管理恢复联机重做日志文件(2)——当前活动组所有成员全部损坏!
- 拥有所有归档文件,但没有备份情况下的数据文件恢复
- ARCHIVELOG模式下用户管理恢复联机重做日志文件—当前活动组所有成员全部损坏
- oracle用户管理的完全恢复4:在ARCHIVELOG 模式(恢复打开的数据库)
- ARCHIVELOG模式下用户管理恢复联机重做日志文件(1)——非活动组所有成员全部损坏!
- 归档模式下,恢复没有备份的数据文件
- 我的备份与恢复实验(归档模式下用户管理的不完全恢复,基于时间点的)
- ARCHIVELOG模式下用户管理恢复控制文件(1)——使用二进制控制文件恢复!
- 归档模式下有备份数据文件损坏的完全恢复-1
- ARCHIVELOG模式下用户管理的不完全恢复—基于取消的不完全恢复
- 拥有所有归档文件,但没有备份情况下的数据文件恢复
- oracle用户管理的完全恢复2:在NOARCHIVELOG 模式下执行恢复(无联机日志的备份)
- 拥有所有归档文件,但没有备份情况下的数据文件恢复
- 无备份有完全归档日志情况下恢复数据文件
- 归档模式下无备份数据文件损坏的完全恢复-2
- ARCHIVELOG模式下用户管理的完全恢复—恢复关闭的数据库
- ARCHIVELOG模式下用户管理恢复临时文件!
- ARCHIVELOG模式下用户管理的完全恢复—恢复打开的数据库,并且数据库最初是打开的