归档模式关闭数据库的恢复

原创
2016-06-07 15:23:45 727浏览

欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入 一。非归档模式关闭数据库的恢复 1.shutdown immediate; 关闭数据库 2.使用操作系统命令拷贝最新的备份(数据文件和控制文件,如果备份了日志文件) 3.进行不完全恢复recover database until cancel

欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入

一。非归档模式关闭数据库的恢复

1.shutdown immediate; 关闭数据库

2.使用操作系统命令拷贝最新的备份(数据文件和控制文件,如果备份了日志文件)

3.进行不完全恢复recover database until cancel using backup;

4.重置日志打开数据库alter database open resetlogs;

二。数据文件离线或者表空间离线的恢复

SQL> create table t1 tablespace tbs_sf as select * from dba_objects; --创建测试表到指定表空间

SQL> select file_id,file_name from dba_data_files where TABLESPACE_NAME='TBS_SF'; --可以看到数据文件时26号

FILE_ID FILE_NAME

---------- --------------------------------------------------

26 /database/oradata/skyread/sf01.dbf

SQL> alter database datafile 26 offline drop; --数据文件脱机,这里是模拟故障,恢复的时候相当于从备份拷贝一个新文件回来

Database altered.

SQL> select count(*) from t1; --可见无法查看该表空间的表

select count(*) from t1

*

ERROR at line 1:

ORA-00376: file 26 cannot be read at this time

ORA-01110: data file 26: '/database/oradata/skyread/sf01.dbf'

SQL> select hxfil file_id,fhsta status,fhscn scn,fhrba_seq seq from x$kcvfh where hxfil=26;

FILE_ID STATUS SCN SEQ

---------- ---------- ---------------- ----------

26 4 122693804311 2

SQL> select GROUP#,BYTES,ARCHIVED,STATUS,SEQUENCE# from v$log; --可见红色的日志没有被覆盖,可以进行恢复

GROUP# BYTES ARC STATUS SEQUENCE#

---------- ---------- --- ---------------- ----------

1 536870912 YES INACTIVE 1

2 536870912 NO CURRENT 2

3 536870912 YES UNUSED 0

4 536870912 YES UNUSED 0

5 536870912 YES UNUSED 0

SQL> recover datafile 26; --进行恢复

Media recovery complete.

SQL> alter database datafile 26 online;

Database altered.

SQL> select count(*) from t1;

COUNT(*)

----------

50483

[1] [2]

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。