oracle备份与恢复(8)

2019-02-21 01:14

www.imissha.com 谜尚bb霜 SQL> set transaction use rollback segment rbs0; Transaction set.

SQL> insert into test (a) values (1); 1 row created. 2、异常关闭

SQL> shutdown abort;

ORACLE instance shut down. 3、删除rbs的一个数据文件

C:>del D:Oracleoradatachenrbs01. 4、修改INIT.ora

rollback_segments=(system)

添加_corrupted_rollback_segments=(rbs0,rbs1,rbs2??) 5、SQL>Startup mount

6、SQL>alter database datafile ’d:oracleoradatat8irbs01.dbf’ offline drop; 数据库已更改。

7、SQL>recover database ; 完成介质恢复。

8、SQL>alter database open ; 数据库已更改。

9、SQL>select * from v$rollname; USN NAME

----------------- --------------------- 0 SYSTEM 10、SQL>select segment_name,tablespace_name,status from dba_rollback_segs;

SEGMENT_NAME TABLESPACE_NAME STATUS

------------------------------ ------ ------------------------------------ SYSTEM SYSTEM ONLINE RBS0 RBS NEEDS RECOVERY RBS1 RBS NEEDS RECOVERY RBS2 RBS NEEDS RECOVERY

11、SQL>drop rollback segment rbs0; 重算段已丢弃。

SQL>drop rollback segment rbs1; 重算段已丢弃。

SQL>drop rollback segment rbs2; 重算段已丢弃。 12、SQL>select segment_name,tablespace_name,status from dba_rollback_segs;

SEGMENT_NAME TABLESPACE_NAME STATUS

------------------------------ ------ ------------------------------------ SYSTEM SYSTEM ONLINE

13、SQL>drop tablespace rbs including contents; 表空间已丢弃。

14、重建新的回滚表空间及回滚段,并联机。

www.imissha.com 谜尚bb霜 15、SQL>shutdown abort 16、再修改INIT.ora

rollback_segments=(rbs0,rbs1,rbs2)

将_corrupted_rollback_segments=(rbs0,rbs1,rbs2)去掉。 17、SQL>startup

1、这种办法是万不得以的时候使用的方法,如果有备份,都建议从备份上进行恢复 2、这种方法恢复的数据库,可能会引起数据库的数据错误

3、恢复成功以后,建议exp/imp数据,并重新分析检查数据库

5.3.4 数据库关闭,数据文件中有活动事务,从备份恢复

1。从一个有效的备份中恢复损坏的数据文件。 2。mount数据库。 3。执行以下查询

SELECT FILE#, NAME, STATUS FROM V$DATAFILE; 如果发现要恢复的文件是offline状态的话,要先online它

ALTER DATABASE DATAFILE '' ONLINE; 4。执行以下查询

SELECT V1.GROUP#, MEMBER, SEQUENCE#, FIRST_CHANGE# FROM V$LOG V1, V$LOGFILE V2

WHERE V1.GROUP# = V2.GROUP# ;

这个将列出redlog文件所代表的sequence和first change numbers。 5。如果数据库是非归档情况下,执行以下查询:

SELECT FILE#, CHANGE# FROM V$RECOVER_FILE;

如果CHANGE#大于最小的redolog文件的FIRST_CHANGE#,则数据文件可以被恢复,记得在应用日志的时候要把所有redolog文件全部应用一遍。

如果CHANGE#小于最小的redolog文件的FIRST_CHANGE#,则数据文件就不可以被恢复了,这时候你要从一个有效的全备份中去恢复数据库了,如果没有全备份的话,那你就只能把数据库强制打开到一个不一致的状态去exp出数据,然后重新建库导入数据,因为这种方式的恢复oracle是不推荐用户自己做的,所以这里我就不详细说明了。 6。恢复数据文件

RECOVER DATAFILE '' 7。确信你应用了所有的redolog文件,直至出现提示信息\。 8。打开数据库。 说明:

1、这种方法要求在归档有备份的方式下进行,而且是建议方式 2、这种方法不会导致数据库的错误

5.4 损坏临时数据文件的恢复方法

临时数据文件的恢复是比较简单的,因为临时文件中不涉及到其它的有用的数据,所以可以删除后重建 1、关闭数据库

SQL>shutdown immediate

www.imissha.com 谜尚bb霜 2、删除临时数据文件,模拟媒体失败 3、启动数据库,检测到文件错误 4、脱机该数据文件

SQL>alter database datafile ‘文件名全名’ offline drop; 5、打开数据库

SQL>alter database open 6、删除该临时表空间

SQL>drop tablespace temp(或其它临时表空间名称); 7、重新创建该表空间,并重新分配给用户 说明:

1、临时数据文件是非重要文件,不保存永久数据,可以随时删除重建,不影响数据库的数据安全

2、如果重新建立以后,别忘了重新分配给用户。

第六章. 常见恢复误区

1、可以不需要备份,只有归档就能进行数据库的向前的恢复

答:这个在ORACLE 9i以前起码是不可能的,在别的数据库我也没有听说过,不完全恢复的主要思路是利用不完全点之前的备份,加上归档日志,恢复到不完全恢复点,9i中出现了一个flashback的特性,这个特性的使用,也是有很多局限的。 2、进行不完全恢复只需要拷贝一个需要恢复的备份数据文件

答:不完全恢复需要拷贝所有的数据文件,最好包括临时数据文件在内,否则需要另外的处理,如果有一个数据文件的SCN大于不完全恢复点,那么这个恢复都将是失败的。 3、使用RMAN目录与目标数据库在同一数据库能很好进行数据库的恢复

答:使用恢复目录与目标数据库在同一个数据库中,将存在很大的恢复局限,如该数据库的系统数据文件的损害,数据库根本不能open,那么RMAN也就无法连接恢复目录,也就不存在恢复了。

第七章. 小结

这里我们反复演示了多种情况下的恢复方案,通过这些演示,我们应该掌握了如下内容: 1、利用OS与RMAN进行各种常规备份与恢复。 2、熟悉没有备份或简单的非常规备份与恢复的方法。


oracle备份与恢复(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2011高中数学知识点总结大全

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: