Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Oracle数据库不同损坏级别的恢复详情

Oracle数据库不同损坏级别的恢复详情

作者头像
数据和云01
发布于 2019-06-21 05:05:12
发布于 2019-06-21 05:05:12
8140
举报
文章被收录于专栏:数据库新发现数据库新发现

导读:在 DBA 的日常工作中不可避免存在着数据库的损坏,本文将主要介绍 Oracle 数据库遇到不同损坏级别下的应该采用的恢复方法,供读者在遇到此类情景时,能的找到适合自己的恢复方法,提高工作效率。

数据块损坏的恢复


当数据文件中仅有少量的数据块发生了介质损坏时,我们可以利用RMAN对其进行数据块一级的恢复。数据块级的局部恢复可以大大缩短恢复时间,甚至缩短到其他恢复方式的千分之几。此外,在数据块存在损坏而进行的恢复中,系统可以处于运行状态,这个数据文件也可以处于联机应用状态,无须将其设置为脱机,保持应用运行状态。

1)连接RMAN环境,并以 SYSDBA(SYSOPER) 身份连接数据库:    $rman target / 2)执行下面的数据块修复命令进行数据块的修复:    rman>blockrecover datafile 3 block 2,150,152; 现在数据块得以恢复,系统继续运行。

数据文件损坏的恢复


第一步:设置损坏的数据文件脱机         SQL>alter database datafile 4 offline; 第二步:由RMAN装载数据文件         RMAN>restore datafile 4; 第三步:对损坏的数据文件进行恢复         RMAN>recover datafile 4; 第四步:设置已恢复数据文件联机         RMAN>sql “alter database datafile 4 online”; 第五步:查看数据文件的可用性         SQL>select name,enabled,status from v$datafile; 至此,一个非系统表空间的数据文件恢复过程完成。

表空间损坏的恢复


当然数据库恢复方法不仅一个,管理员也可以按照表空间恢复的方法进行恢复操作。还是上面的案例,如果发生了失败,现在按照表空间损坏情况下的恢复方法进行恢复。

下面用备份来恢复表空间users中的全部数据文件:

第一步:将表空间脱机

        SQL> alter tablespace users offline; 第二步:装载表空间         RMAN>restore tablespace users; 第三步:恢复表空间         RMAN>recover tablespace users; 第四步:将表空间联机         RMAN>sql “alter tablespace users online”; 第五步:查看数据文件的可用性         SQL>select name,enabled,status from v$datafile;

系统表空间的恢复


如果是还原表空间或者系统表空间损坏,则数据库系统不能运行,数据库一定不能处于打开状态,在RMAN环境下连接Oracle,注意,此时的连接并不是连接到已经打开的数据库,而是连接到处于装载状态下的数据库:

第一步:连接RMAN         $rman target / 第二步:装载表空间         RMAN>restore tablespace system; 第三步:恢复表空间         RMAN>recover tablespace system; 第四步:打开数据库         SQL>alter database open;

数据库的崩溃恢复


一种全数据库恢复方法,用于数据库彻底崩溃,不可以进行数据库局部恢复操作的情况。这种方法很简单---装载回数据库的一个完整备份集进行恢复操作。虽然方法是简单的,但代价是庞大的----时间可能会很长! 首先需要启动数据库实例。在控制文件完好的情况下,启动到mount状态是没有问题的,如果控制文件损坏,则只能启动到nomount状态。在本例中,数据库可以启动到mount状态:

第一步:启动实例         SQL>startup mount 第二步:进入到RMAN环境下         $rman target / 第三步:装载数据库备份         RMAN>restore database; 第四步:执行下面的命令进行数据库的完全恢复         RMAN>recover database; 第五步:打开数据库         RMAN>alter database open;

控制文件损坏的恢复


由于某种原因,例如介质损坏导致所有控制文件都不可用时,管理员可以使用RMAN的控制文件自动备份,对控制文件进行恢复。

为了描述的方便,这里我们假设在一套归档方式运行的数据库中,所有控制文件由于介质损坏导致不可用。其他数据库文件,包括数据文件、参数文件(SPFILE)、归档日志文件、联机重做日志文件等均完好无损。 我们可以按照下面的步骤进行恢复。由于数据库控制文件损坏,因此数据库这时只能处于脱机状态。

第一步:启动数据库到nomount状态         SQL>startup nomount 第二步:在RMAN环境中,注册数据库ID(DBID)         $rman target /         rman>set DBID=1195474494 第三步:从数据库备份集中装载控制文件备份         RMAN>restore controlfile from autobackup 第四步:将数据库开启到mount状态:         RMAN>alter database mount 第五步:用RMAN备份恢复数据库         RMAN>recover database; 第六步:将数据库实例打开,但需要进行日志的重置(resetlogs):         RMAN>alter database open resetlogs; 由于数据库以resetlogs方式打开,虽然本系统数据并未丢失,但由于所有日志文件已被重置,因此,需要进行完全数据库备份。 如果控制文件损坏,且伴着其他数据文件等的损坏,则按照本节介绍的控制文件恢复,加上数据库的崩溃恢复,可以实现数据库的完全恢复(或不完全恢复)。

日志文件损坏的恢复


由于数据库日志可以采用多成员机制,这种方式保证在单个日志文件损坏下的系统连续运行。即便一个日志组的所有成员都已经损坏,如果是当前日志组,则数据丢失、数据库执行不完全恢复是必然的选择。如果不是当前日志组,可能根本无须修复,直接将日志组删除,再创建新的日志组就可以了。

第一步:进行数据库的不完全恢复         SQL>recover database until cancel; 第二步:按照重置日志的方式打开数据库         SQL>alter database open resetlogs; 数据库得到不完全恢复。当然,上述过程也可以在RMAN中完成。 从指定备份集中恢复         RMAN>         run{         set until scn=1645604; --执行不完全恢复         restore database from tag='TAG20110702T231137'; --指定备份集的tag值,在list backup of database中可以查到         recover database;         sql 'alter database open resetlogs';          }

出处:头条号老王谈运维

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019年06月20日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Oracle 基于用户管理恢复的处理
Oracle支持多种方式来管理数据文件的备份与恢复来保证数据库的可靠与完整。除了使用RMAN工具以及第三方备份与恢复工具之外,基于
Leshami
2018/08/07
5550
Oracle 只读数据文件的备份与恢复
SQL> alter tablespace yhqt read only; SQL> alter tablespace yhqt read write;
星哥玩云
2022/08/18
8230
RMAN 还原与恢复
在Oracle中,三大文件即控制文件,数据文件,日志文件的丢失与破坏都将需要使用还原或恢复来使数据库正常化。而RMAN还原与恢复
Leshami
2018/08/07
2.2K0
ORACLE备份恢复
备份就是把数据库复制到转储设备的过程。其中,转储设备是指用于放置数据库副本的磁带或磁盘。通常也将存放于转储设备中的数据库的副本称为原数据库的备份或转储。备份是一份数据副本
全栈程序员站长
2022/09/13
2.7K0
ORACLE备份恢复
基于catalog 的RMAN 备份与恢复
RMAN的备份与恢复存储仓库的数据通常存放于控制文件或恢复目录中,本文主要讲述基于catalog的备份与恢复。
Leshami
2018/08/07
1K0
Oracle Recovery 02 - 常规恢复之不完全恢复
背景:这里提到的常规恢复指的是数据库有完备可用的RMAN物理备份。 实验环境:RHEL6.4 + Oracle 11.2.0.4 单实例.
Alfred Zhao
2019/05/24
1.2K0
Oracle Recovery 01 - 常规恢复之完全恢复
背景:这里提到的常规恢复指的是数据库有完备可用的RMAN物理备份。 实验环境:RHEL6.4 + Oracle 11.2.0.4 DG primary.
Alfred Zhao
2019/05/24
1.4K0
Oracle 普通数据文件备份与恢复
普通数据文件指:非system表空间、undo_tablespace表空间、临时表空间和只读表空间的数据文件。它们损坏导致用户数据不能访问,不会导致db自身异常、实例崩溃、数据库不恢复就无法启动的情况。
星哥玩云
2022/08/18
9370
Oracle 表空间时点恢复(TSPITR)
表空间时点恢复,是Oracle在基于冷备,热备恢复以外的一种以表空间为粒度的,不完全恢复的形式来将表空间恢复到过去某个特定的时间点的一种恢复方式。它整合了RMAN以及DataPump这2个备份恢复工具来实现时点恢复。那它具体的过程和逻辑是怎样的?下文是其具体的描述。
Leshami
2018/08/13
1.7K0
Oracle 表空间时点恢复(TSPITR)
第46章 执行数据库恢复
目标: ·确定是否需要执行恢复 ·访问不同的界面(如em和命令行) ·描述并使用可用的选项,如RMAN和数据库恢复向导 ·对以下文件执行恢复 控制文件 重做日志文件 数据文件
全栈程序员站长
2021/06/16
2410
【循序渐进Oracle】Oracle的物理备份(上)
编辑手记:备份重于一切,我们必需知道,系统总是要崩溃的,没有有效的备份只是等哪一天死!今天你备份了吗?我们一起来回顾Oracle的物理备份,本文摘自《循序渐进Oracle》 逻辑备份:Oracle的逻辑备份与恢复 正文: 物理备份是指针对Oracle的文件进行的备份,这与逻辑备份针对数据的备份不同。在物理备份中,数据库使用的重要文件都需要进行针对性的备份,这些文件包括数据文件(DATA FILE)、控制文件(CONTROL FILE)、联机日志文件(REDO LOG)、归档日志文件(ARCHIVE LOG)
数据和云
2018/03/07
1.3K0
【循序渐进Oracle】Oracle的物理备份(上)
Oracle 基于备份控制文件的恢复(unsing backup controlfile)
    通常在当前控制文件丢失,或者当前的控制文件与需要恢复的控制文件不一致的情况下,我们需要重新创建一个控制文件或者使用 unsing backup controlfile方式来恢复控制文件。说简单点,只要是备份的控制文件与当前的控制文件不一致进行恢复数据库,就需要使用到 unsing backup controlfile方式,而一旦使用了该方式,则需使用resetlgos选项来打开数据库。
Leshami
2018/08/14
8070
SYSTEM 表空间管理及备份恢复
SYSTEM表空间是Oracle数据库最重要的一个表空间,存放了一些DDL语言产生的信息以及PL/SQL包、视图、函数、过程等,称之为数据字典,
Leshami
2018/08/07
1K0
只读表空间的备份与恢复
--====================== --  只读表空间的备份与恢复 --====================== 一、只读表空间的特性     使用只读表空间避免对静态数据的频繁备份     当使用alter tablespace tbs read only时,数据文件会执行检查点进程(将所有脏缓冲区的内容写至磁盘),         当前的SCN号会被标注,同时存储了SCN的数据文件头部被冻结.控制文件内也会记录该数据文件的冻结信息。     可以清除只读表空间的对象 二、只读表空间的备份     一般情况下,只读表空间只需要进行一次备份,即当表空间状态发生改变时应立即进行备份     可以使用OS系统cp命令来备份或RMAN进行备份只读表空间     使用RMAN时建议启用备份优化选项         RMAN> CONFIGURE BACKUP OPTIMIZATION ON;     只读表空间不支持热备     SQL> alter tablespace tbs1 begin backup;     alter tablespace tbs1 begin backup     *     ERROR at line 1:     ORA-01642: begin backup not needed for read only tablespace 'TBS1' 三、只读表空间的还原与恢复     还原与恢复只读表空间的问题在于控制文件如何控制只读表空间,分为下列三种情况:         ---------  ---------------  ----------------  -------------------------------------     case           backup 1     crash status                   recovery     ---------  ---------------  ----------------  -------------------------------------     case 1        Read-Only        Read-Only      将备份的只读表空间复制到目的地(Restore)     case 2        Read-Only        Read-Write     先Restore backup1,后recover(applied log )     case 3        Read-Write       Read-only       先Restore backup1,后recover(applied log )     只读表空间恢复时需要考虑的问题         重建一个控制文件时         重命名数据文件时         使用一个备份的控制文件时     下面对表空间tbs1置为只读后对比前后生成的重建控制文件的脚本       
Leshami
2018/08/07
5970
Oracle备份和恢复(RMAN篇)
数据库备份与恢复是数据库管理员必须掌握的。没有任何系统能免遭硬盘物理损坏、粗心用户的错误操作、或一些可能会威胁到存储数据的潜在灾难的侵袭。为了能够最大限度地恢复数据库数据,保证数据库的安全运行,应该选择最合理的备份方法来防止各种故障所导致的用户数据丢失。
星哥玩云
2022/08/17
2.6K0
Oracle备份和恢复(RMAN篇)
Oracle 备份恢复概念
数据库维护中,备份或恢复是重中之重的问题。尽管很多时候数据库系统运行缓慢,但对数据库数据的丢失而言,显然后者损失的代价是
Leshami
2018/08/07
8620
一步步使用RMAN还原数据库
写在前面: 参数文件中的相关目录需要事先建立 脚本中通道分配为第三方磁带备份,磁盘请使用常规方式 allocate channel c1 type disk; release channel c1; 1. 恢复spfile 1. 1 手动指定备份文件目录 RMAN>catalog start with '/rman/'; 1.2 通过alert日志或pfile恢复 建议定期备份pfile 由于参数信息会放到alert’日志中,可以拷贝参数至文件中然后恢复 SQL> create spfile f
bsbforever
2020/08/19
1.3K0
Oracle rman备份和恢复常规操作
差异增量备份(Differential Incremental Backup)模式(默认): LV0:全备。 LV1:最近一次LV0或LV1至今的变化。 LV2:最近一次LV0或LV1或LV2至今的变化。 优缺点:速度较快、因为仅存储少量变化的块、但需要更长的时间来恢复
mingjie
2022/05/12
7160
基于时间点的不完全恢复的例子(r6笔记第9天)
说到不完全恢复,一般有三种场景,基于时间点的不完全恢复,基于scn的不完全恢复,基于cancel的不完全恢复。 三种情况都是不完全恢复采用的方式,而不完全恢复都是在完全恢复的过程中出现了这样那样的错误,数不胜数,基本就是归档,redo损坏丢失,控制文件丢失,备份的问题,手工失误等等。 我们可以举一个不完全恢复的案例,其实在实际操作的过程中还是有一些值得总结和学习的地方。 第一步准备基本的数据。目前我们可以看到在表空间data上只有一个表new_recover SQL> select owner,segmen
jeanron100
2018/03/16
7210
RMAN 备份异机恢复 Oracle 数据库
源端和目标端的数据库版本需要保持一致,补丁版本可以不一致,目标端磁盘空间不能小于源端空间,目标端只需要安装 Oracle 软件即可!
用户8006012
2022/08/20
2.5K0
相关推荐
Oracle 基于用户管理恢复的处理
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档