ORACLE数据库不同故障下的恢复总结

ORACLE数据库不同故障下的恢复总结
1. 非归档模式下丢失或损坏的文件
--1.1 数据文件
--启动数据库的状态到MOUNT
--恢复方法:
通过之前创建的数据库完整备份,修复整个数据库,不过备份之后发生的所有修改将丢失;修复数据库之后不需要进行RECOVER操作。(由于没有归档,也无从RECOVER),直接通过RESETLOGS方式打开数据库即可。

--1.2 数据文件及联机重做日志文件
--启动数据库的状态到MOUNT
--恢复方法(同上):
通过之前创建的数据库完整备份,修复整个数据库,不过备份之后发生的所有修改将丢失;修复数据库之后不需要进行RECOVER操作。(由于没有归档,也无从RECOVER),直接通过RESETLOGS方式打开数据库即可。

--1.3 数据文件及控制文件
--启动数据库的状态到NOMOUNT(控制文件丢失或损坏,只能启动数据库到NOMOUNT状态)
--恢复方法(同上):
通过之前创建的数据库完整备份,修复整个数据库,不过备份之后发生的所有修改将丢失;修复数据库之后不需要进行RECOVER操作。(由于没有归档,也无从RECOVER),直接通过RESETLOGS方式打开数据库即可。
======
说明:以上三种情况下执行数据库修复,都必须有正确的控制文件备份。另外,在上述几种情况下进行数据库恢复时,唯一一种可以不使用RESETLOGS选项打开数据库的情况,就是创建数据库完整备份之后,联机重做日志文件中的内容还没有被覆盖掉,那么可心通过RECOVER操作应用这部分日志。
============================
2. 归档模式下丢失或损坏的文件
--2.1 一个或多个数据文件
--启动数据库的状态到MOUNT/OPEN均可
--恢复方法:
在数据库打开可是加载的状态下执行表空间或数据文件的恢复操作,首先要将表空间或数据文件置于OFFLINE状态,然后通过备份RETORE和RECOVER,最后再将其置为ONLINE状态。这种操作不会丢失数据,并且在操作的过程中,数据库的其他数据文件仍可被正常访问。

--2.2 全部数据文件
--启动数据库的状态到NOMOUNT
--恢复方法
应用之前的全库备份进行恢复,在联机重做日志文件和归档文件仍在的情况下,不会丢失数据。

--2.3 控制文件及一个或多个数据文件
--启动数据库的状态到NOMOUNT
--恢复方法:
首先通过备份的控制文件先对控制文件进行恢复,然后即可打开数据库到MOUNT状态。再对数据文件进行RESTORE和RECOVER操作;在联机重做日志文件都在的情况下,这种操作不会丢失数据。
==========================================
只要是有控制文件或是全部的数据文件丢失,则只能启动数据库到NOMOUNT状态。在归档模式下,不需要以OPEN RESETLOGS方式打开数据库。

时间: 2024-12-28 19:47:15

ORACLE数据库不同故障下的恢复总结的相关文章

64位操作系统在本地安装oracle数据库的情况下,怎么使用plsql连接远程或者本地的oracle数据

目前plsql只支持32位的oracle客户端,如何在本地安装了64位oracle数据库的情况下使用plsql连接数据呢? 1)首页要安装32位的oracle客户端. 2)在plsql配置中把安装的32位的oracle客户端配置进来: 在"Tools"->"preferences"的Connection 选项的Oracle Home选择32位的oracle客户端. 在OCi library中选项32位oci.dll连接文件:

oracle数据库常见故障情况数据恢复分析

一.Oracle启动后无法工作或者数据库无法启动 一旦数据库出现无法启动的情况,首先需要检查system表是否为未损坏状态,通常情况而言,如果system表未被损坏那么很容易进行数据恢复,如果system表已经被损坏,那么就需要数据恢复工作人员手动对表结构进行分析核对,这样数据恢复的周期就相对较长,但是数据恢复成功率依然较高,不用担心数据恢复失败. 二.Oracle 数据库的ASM存储受到损坏 这种故障情况通常是因为ASM的部分设备故障或者由于ASM重置等原因导致的数据库数据丢失.出现这种情况后

ORACLE数据库文件丢失后的恢复测试

一.测试环境 数据库版本是11GR2,在做完一份完全备份之后,关机,做一份快照,每一次开机之后都执行数次alter system switch logfile以产生归档日志. 之后的测试都是基于这么一个完全备份来恢复. CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/backup/%F'; backup incremental level 0 format '/backup/%T_%f' database; 二.

测试oracle数据库的脱机备份和恢复

环境:windows7.Oracle11g 一.脱机备份 脱机备份是指在数据库关闭情况下的数据备份,也称为冷备份. 在书上学到的备份步骤: 1.记录所要备份数据库文件所在的操作系统路径: 2.关闭数据库,不要使用shutdown abort这种关闭方式: 3.拷贝数据库文件到备份目录中: 4.重启数据库,完成备份. 了解到这些步骤后,做了一个备份测试,要备份的数据库为testdb. 1.记录所要备份数据库文件所在的操作系统路径     (1)查看数据文件的路径(用管理员账户连接) 备注:可以在s

Oracle数据库误删除数据3种恢复语句

有很多朋友都遇到过在操作数据库时误删除某些重要数据的情况,如果数据库没有备份而且数据有十分重要的情况下怎么做才能找回误删除的数据呢?我在这里为大家介绍几种误删除数据库中重要数据的恢复方法(不考虑全库备份和利用归档日志)第一种数据恢复方法是利用oracle提供的闪回方法进行数据恢复,适用于delete删除(一条记录)方式:首先需要知道是什么时间进行的删除操作,如果不能确定具体时间点则选择尽量准确的删除数据前的时间.然后利用select from 表名 as of timestamp to_time

oracle数据库什么情况下创建索引比较好

索引就好象一本字典的目录.凭借字典的目录,我们可以非常迅速的找到我们所需要的条目.数据库也是如此.凭借Oracle数据库的索引,相关语句可以迅速的定位记录的位置,而不必去定位整个表. 虽 然说,在表中是否创建索引,不会影响到Oracle数据库的使用,也不会影响数据库语句的使用.这就好像即使字典没有目录的话,用户仍然可以使用它一 样.可是,若字典没有目录,那么可想而知,用户要查某个条目的话,其不得不翻遍整本字典.数据库也是如此.若没有建立相关索引的话,则数据库在查询记录的 时候,不得不去查询整个表

oracle数据库rman备份计划及恢复

1.rman完全恢复的前提条件:历史的datafile,controlfile和spfile备份,加上完整的archivelog和完好的redolog. 2.rman备份脚本: a.RMAN 0级备份命令: run{ allocate channel c1 type disk; allocate channel c2 type disk; allocate channel c3 type disk; backup incremental level 0 tag 'level0' format "

Oracle数据库常见的误操作恢复方法(上)

实验环境:Linux6.4 + Oracle 11g 面向读者:Oracle开发维护人员 本文以Oracle自带的scott用户进行演示: 首先逻辑备份导出scott的对象数据 $ exp scott/tiger file='/u01/app/backup/scott.dmp' log='/u01/app/backup/scott.log' owner=scott; 1.误操作drop了emp表 利用表级闪回恢复,只要回收站中有就可以恢复. SQL> drop table emp; Table

Oracle数据库中Linux下多路径使用及大容量硬盘挂载

一.应用环境及需求 操作系统为Red Hat 6.5 64位 挂载的存储容量为2.5T 基于此应用环境,需要解决两个问题: 为保证链路的稳定性及传输性能等,可以使用多路径技术: 挂载的存储硬盘超过了2T,MBR分区格式不能支持,需要使用到GPT分区格式 二.什么是多路径 摘自:http://rootking.blog.51cto.com/2619611/476212 普通的电脑主机都是一个硬盘挂接到一个总线上,这里是一对一的关系.而到了有光纤组成的SAN环境,或者由iSCSI组成的IPSAN环境