iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >Oracle数据库不同损坏级别的恢复详解
  • 291
分享到

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

2024-04-02 19:04:59 291人浏览 安东尼
摘要

数据块损坏的恢复 当数据文件中仅有少量的数据块发生了介质损坏时,我们可以利用RMAN对其进行数据块一级的恢复。数据块级的局部恢复可以大大缩短恢复时间,甚至缩短到其他恢复方式的千分之几

数据块损坏的恢复



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


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


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;

至此,一个非系统表空间的数据文件恢复过程完成。



表空间损坏的恢复



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


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


下面用备份来恢复表空间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的控制文件自动备份,对控制文件进行恢复。


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


为了描述的方便,这里我们假设在一套归档方式运行的数据库中,所有控制文件由于介质损坏导致不可用。其他数据库文件,包括数据文件、参数文件(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方式打开,虽然本系统数据并未丢失,但由于所有日志文件已被重置,因此,需要进行完全数据库备份。 如果控制文件损坏,且伴着其他数据文件等的损坏,则按照本节介绍的控制文件恢复,加上数据库的崩溃恢复,可以实现数据库的完全恢复(或不完全恢复)。



日志文件损坏的恢复



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


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


第一步:进行数据库的不完全恢复


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'; }


您可能感兴趣的文档:

--结束END--

本文标题: Oracle数据库不同损坏级别的恢复详解

本文链接: https://www.lsjlt.com/news/45827.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Oracle数据库不同损坏级别的恢复教程
    前言 在 DBA 的日常工作中不可避免存在着数据库的损坏,本文将主要介绍 Oracle 数据库遇到不同损坏级别下的应该采用的恢复方法,供读者在遇到此类情景时,能的找到适合自己的恢复方法,提高工作效率。 数据...
    99+
    2024-04-02
  • Oracle数据库不同损坏级别的恢复是怎样的
    这期内容当中小编将会给大家带来有关Oracle数据库不同损坏级别的恢复是怎样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。  在 DBA 的日常工作中不可避免存在着数据...
    99+
    2024-04-02
  • oracle数据库损坏的恢复过程是什么
    这篇文章主要介绍“oracle数据库损坏的恢复过程是什么”,在日常操作中,相信很多人在oracle数据库损坏的恢复过程是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”or...
    99+
    2024-04-02
  • Oracle数据库UNDO损坏后的恢复是怎样的
    这期内容当中小编将会给大家带来有关Oracle数据库UNDO损坏后的恢复是怎样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。    UND...
    99+
    2024-04-02
  • Oracle数据块损坏之10231内部事件不完全恢复
    什么是块损坏: 所谓损坏的数据块,是指块没有采用可识别的 Oracle 格式,或者其内容在内部不一致。通常情况下,损坏是由硬件故障或操作系统问题引起的。Oracle 数据库将损坏的块标识为“逻辑损坏”或“介...
    99+
    2024-04-02
  • 怎么恢复SQL Server 2000损坏的数据库文件
    这篇文章主要讲解了“怎么恢复SQL Server 2000损坏的数据库文件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么恢复SQL Server 200...
    99+
    2024-04-02
  • mysql数据库的数据损坏要怎么修复
    这篇文章主要介绍“mysql数据库的数据损坏要怎么修复”,在日常操作中,相信很多人在mysql数据库的数据损坏要怎么修复问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mysq...
    99+
    2024-04-02
  • 【mysql数据损坏,通过ibd和frm文件批量恢复数据库数据】
    问题描述 客户那边的测试服务器下午3:00左右因不明原因,所有服务访问不了,ssh也无法连接,客户手动进行强制重启服务器,重启后将所有应用、中间件重启,重启nacos时发现无法连接数据库,通过账号密码...
    99+
    2023-09-02
    数据库 mysql
  • Oracle数据库的备份与恢复案例详解
    目录1 逻辑备份/恢复(导出/导入)1.必备参数2.owner参数3.tables参数4.关于inctype参数2 物理备份/恢复1.冷备份/恢复2.热备份/恢复3 利用PL/SQL...
    99+
    2024-04-02
  • Mysql的Binlog数据恢复:不小心删除数据库详解
    Mysql的Bin log数据恢复:不小心删除数据库 前言:因为不小心删除了测试机器上Mysql的一整个数据库Schema,因为是测试机所以没有做备份,现在通过MySQL的Bin log方式恢复到删除以前的...
    99+
    2024-04-02
  • oracle数据库中如何格式化不属于任何段的损坏块
    oracle数据库中如何格式化不属于任何段的损坏块,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一、问题症状:1. Rman 备份失败,显示 ...
    99+
    2024-04-02
  • 数据库事务的隔离级别:探索不同级别下的数据一致性
    1. 事务与隔离级别 在数据库系统中,事务是一组原子性、一致性、隔离性和持久性的数据库操作。事务可以确保数据操作的正确性和完整性,防止数据在并发操作过程中出现不一致的情况。隔离级别是数据库系统用来控制事务并发执行时彼此隔离程度的机制。不...
    99+
    2024-02-25
    数据库事务 隔离级别 数据一致性 并发控制 演示代码
  • oracle数据库delete的数据怎么恢复
    oracle数据库中已删除的数据可以通过以下步骤恢复:检查回收站:进入回收站查看已删除的数据,如在则恢复。使用flashback query:在数据不在回收站时使用flashback q...
    99+
    2024-04-18
    oracle 数据丢失
  • MYSQL Binlog恢复误删数据库详解
    对表误删或执行缺少条件的修改 SQL 导致修改了表内其他数据时,我们需要想办法将数据恢复回来。 先创建两个测试表 table_1 CREATE TABLE `table_1` ( `id` int(0) NOT N...
    99+
    2022-11-18
    MYSQL Binlog数据还原 MYSQL Binlog恢复数据
  • Oracle数据库的备份与恢复
    本篇内容介绍了“Oracle数据库的备份与恢复”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、备份与恢复...
    99+
    2024-04-02
  • 数据库中不同的隔离级别对事务处理有哪些不同
    这篇文章给大家分享的是有关数据库中不同的隔离级别对事务处理有哪些不同的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在数据库操作中,为了有效保证并发读取数据的正确性,提出的事务隔离...
    99+
    2024-04-02
  • oracle数据库怎么恢复删除的数据
    启用闪回查询,然后使用恢复点目标 (rpo) 或闪回区域查询表恢复已删除的数据:1. 启用闪回查询以指定数据库保留已提交事务时所创建数据的时长。2. 使用 rpo 根据特定时间点恢复数据...
    99+
    2024-04-18
    oracle
  • 深入解析数据库事务隔离级别:理解不同等级之间的差异
    事务隔离级别介绍 数据库事务隔离级别是指在并发环境下,不同事务之间如何相互影响的规则。它决定了事务何时能看到其他事务所做的修改,以及在一个事务中所做的修改何时对其他事务可见。 数据库管理系统(DBMS)通常提供多种事务隔离级别,以适应不...
    99+
    2024-02-23
    数据库 事务 隔离级别 并发控制
  • oracle数据库delete删除的数据怎么恢复
    oracle数据库中删除的数据可以通过以下方法恢复:事务回滚:可还原事务内已删除数据。闪回查询:访问特定时间点已删除的数据。闪回表空间:创建数据库副本,包含已删除数据。日志文件:使用专业...
    99+
    2024-04-18
    oracle
  • springboot连接不同数据库的写法详解
    目录MySQL达梦MySQL 当url连接不指定/数据库名可以访问到mysql服务器上有权限的任何库,但是所有sql需要加上库名前缀. pom <dependency> ...
    99+
    2023-05-16
    springboot连接数据库 springboot连接不同数据库
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作