设为首页  
联系我们  
加入收藏  
网页制作 冲浪宝典 图形图像 操作系统 软件教学 编程开发 认证考试 安全技术 站长专区 文学驿站 娱乐天地 游戏天地 办公软件
文章搜索
您的位置: 首页 >> 文章首页 >> 编程开发 >> 数据库开发 >> Oracle备份与恢复案例
精品推荐
数据库开发点击TOP10
·MYSQL 新版出现 Client does not support authentication protocol requested by server; consider upgrading MySQL client解决办法
·生成助记码(取汉字的第一个字母)
·ORA-01034错误的解决办法
·ORACLE数据库管理员的职责
·将DW数据窗口导出为EXCEL文件的方法(整理)
·Oracle中分区表的使用
·SQL Server 2000+ MS WIN2003群集服务配置
·SQL中UNION 与 UNION ALL 的区别
·ORA-00257: archiver error. Connect internal only, until freed.
·Oracle备份与恢复案例
编程开发点击TOP10
·数字小键盘指法练习
·ASP.NET 程序中常用的三十三种代码
·用C语言编通讯录程序(初学者级别的)
·我写的Java学生成绩管理系统源代码
·CHK文件恢复工具
·Modem 常用AT指令集
·java笔试题
·异常java.sql.SQLException: Io exception:The Network Adapter could not establish connection
·单片机模拟I2C总线及24C02(I2C EEPROM)读写实例(源代码)
·C++经典电子书下载
精选专题

Oracle备份与恢复案例

作者: 来源:网络文章 时间:2005-12-17 21:03:50

Oracle备份与恢复案例(10) 下面分别用来说明这两种恢复方法:

 

5.1.2.1 通过备份来恢复

1 打开数据库,会遇到一个类似的错误

ORA-00313: open failed for members of log group 1 of thread 1

ORA-00312: online log 1 thread 1: 'D:\Oracle\ORADATA\TEST\REDO01.LOG'

ORA-27041: unable to open file

OSD-04002: unable to open file

O/S-Error: (OS 2) 系统找不到指定的文件

 

2 查看V$log,发现是当前日志

SQL> select group#,sequence#,archived,status from v$log;

 

    GROUP#      SEQUENCE# ARCHIVED STATUS

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

         1          1     NO       CURRENT

         2          2     YES      INACTIVE

         3          3     YES      INACTIVE

 

3 发现clear不成功

SQL> alter database clear unarchived logfile group 1;

alter database clear unarchived logfile group 1

*

ERROR at line 1:

ORA-01624: log 1 needed for crash recovery of thread 1

ORA-00312: online log 1 thread 1: 'D:\Oracle\ORADATA\TEST\REDO01.LOG'

 

4 拷贝有效的数据库的全备份,并不完全恢复数据库:

可以采用获取最近的SCN的办法用until scn恢复或用until cnacel恢复

recover database until cancel

先选择auto,尽量恢复可以利用的归档日志,然后重新

recover database until cancel

这次输入cancel,完成不完全恢复,也就是说恢复两次。

如:

SQL> recover database until cancel;

Auto

……

SQL> recover database until cancel;

Cancel;

5 利用alter database open resetlogs打开数据库.

 

说明:

  1、这种办法恢复的数据库是一致的不完全恢复,会丢失当前联机日志中的事务数据;

  2、这种方法适合于归档数据库并且有可用的数据库全备份;

  3、恢复成功之后,记得再做一次数据库的全备份;

  4、建议联机日志文件一定要实现镜相在不同的磁盘上,避免这种情况的发生,因为任何数据的丢失对于生产来说都是不容许的。

 

5.1.2.2 如果没有备份,进行强制性恢复

1 打开数据库,会遇到一个类似的错误

ORA-00313: open failed for members of log group 1 of thread 1

ORA-00312: online log 1 thread 1: 'D:\Oracle\ORADATA\TEST\REDO01.LOG'

ORA-27041: unable to open file

OSD-04002: unable to open file

O/S-Error: (OS 2) 系统找不到指定的文件

 

2 查看V$log,发现是当前日志

SQL> select group#,sequence#,archived,status from v$log;

 

    GROUP#  SEQUENCE# ARCHIVED STATUS

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

         1          1 NO       CURRENT

         2          2 YES      INACTIVE

         3          3 YES      INACTIVE

 

3 发现clear不成功

SQL> alter database clear unarchived logfile group 1;

alter database clear unarchived logfile group 1

*

ERROR at line 1:

ORA-01624: log 1 needed for crash recovery of thread 1

ORA-00312: online log 1 thread 1: 'D:\Oracle\ORADATA\TEST\REDO01.LOG'

 

4 把数据库down

    SQL>shutdown immediate

 

5 init<sid>.ora中加入如下参数

     _allow_resetlogs_corruption=TRUE

 

6 重新启动数据库,利用until cancel恢复

    SQL>recover database until cancel;

    Cancel

如果出错,不再理会,发出

SQL>alter database open resetlogs;

 

7 数据库被打开后,马上执行一个full eXPort

 

8 shutdown数据库,去掉_all_resetlogs_corrupt参数

 

9 重建库

 

10import并完成恢复

 

11、建议执行一下ANALYZE TABLE ...VALIDATE STRUCTURE CASCADE;

说明:

1、该恢复方法是没有办法之后的恢复方法,一般情况下建议不要采用,因为该方法可能导致数据库的不一致;

2、该方法也丢失数据,但是丢失的数据没有上一种方法的数据多,主要是未写入数据文件的已提交或未提交数据;

3、建议成功后严格执行以上的711步,完成数据库的检查与分析;

4、全部完成后做一次数据库的全备份;

5、建议联机日志文件一定要实现镜相在不同的磁盘上,避免这种情况的发生,因为任何数据的丢失对于生产来说都是不容许的。

5.2 损坏控制文件的恢复方法

 

5.2.1 损坏单个控制文件

损坏单个控制文件是比较容易恢复的,因为一般的数据库系统,控制文件都不是一个,而且所有的控制文件都互为镜相,只要拷贝一个好的控制文件替换坏的控制文件就可以了。

 

1 控制文件损坏,最典型的就是启动数据库出错,不能mount数据库

SQL>startup

ORA-00205: error in identifying controlfile, check alert log for more info

查看报警日志文件,有如下信息

alter database  mount

Mon May 26 11:59:52 2003

ORA-00202: controlfile: 'D:\Oracle\oradata\chen\control01.ctl'

ORA-27041: unable to open file

OSD-04002: unable to open file

O/S-Error: (OS 2) 系统找不到指定的文件。

 

2 停止数据库:

SQL>shutdown immediate

 

3 拷贝一个好的控制文件替换坏的控制文件或修改init.ora中的控制文件参数,取消这个坏的控制文件。

 

4 重新启动数据:

SQL>startup

 

说明:

1、损失单个控制文件是比较简单的,因为数据库中所有的控制文件都是镜相的,只需要简单的

拷贝一个好的就可以了;

2、建议镜相控制文件在不同的磁盘上;

3、建议多做控制文件的备份,长期保留一份由alter database backup control file to trace产生的控制文件的文本备份。


共16页 9 7 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [168 :>

Oracle备份与恢复案例 相关文章:
Oracle备份与恢复案例 相关软件:
特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
转载请注明来源:http://www.xgdown.com