1. Restore(修复)将数据文件带回到过去(备份的时间点)+Recover(恢复)恢复从备份到数据文件崩溃这段时间内所有提交的数据=>数据库的完全恢复(所有提交的数据都恢复);

1)修复损坏的或丢失的操作系统文件就是使用操作系统命令或其他工具将备份的数据文件复制回来以替换已经损坏或丢失的操作系统的文件;

2)恢复就是使用SQL*Plus的recover命令将备份开始到数据文件崩溃这段时间内所有提交的数据从归档日志文件或重做日志文件写回到修复的数据文件。

2. 在归档模式下进行数据库全恢复时数据库所经过的状态如下:

1)利用备份修复(Restores)损坏或丢失的数据文件,即将备份的操作系统文件复制回数据库中原来的位置;

2)将从 备份到系统崩溃这段时间内的所有提交数据由归档日志文件和联机重做日志文件中还原成数据文件所需的数据块;

3)此时数据库中包含了所有的提交数据,也可能包含没有提交的数据;

4)系统使用还原(回滚)数据块回滚未提交的数据;

5)最后,数据库到达了已恢复的状态。

3. 数据库的完全恢复就是所有提交数据都得以恢复,而数据库的 不完全恢复是将数据库恢复到系统崩溃之前的某个时间点。

4. 进行数据库的完全恢复时要进行如下的操作:

1)将要恢复的文件或表空间设为脱机(offline),但是不包括系统表空间或活动的还原表空间;

2)仅修复损坏的或丢失的操作系统文件,不修复(Restore)其他的任何文件;

3)恢复数据文件。

5. 归档模式下的数据库全恢复优点:

1)在恢复时不必关闭数据库;

2)所有的提交数据都可以恢复;

3)仅需要修复损坏的或丢失的数据文件;

4)恢复的全部时间=将损坏的或丢失的数据文件的备份复制回数据库的时间+使用归档日志文件或重做日志文件恢复提交的数据所用的时间;

6. 归档模式下的数据库全恢复缺点:

1)数据库必须运行在归档模式下,增大系统的内存和CPU的开销;

2)必须保证所有的归档日志文件完好无损;

3)对DBA只是和技能的要求明显提高

7. recover命令使用:

1)recover [automatic] database:该命令只能在数据库加载状态时使用;

2)recover [automatic] tablespace "表空间号" | "表空间名":该命令只能在数据库打开状态时使用;

3)recover [automatic] datafile "数据文件名" | "数据文件号"

注意:automatic表示自动搜寻和恢复归档日志文件及联机重做日志文件中提交的数据;

4)相关的数据字典

  a)查看所有数据文件的文件号,文件名和对应的表空间;

   select file_id,file_name,tablespace_name from dba_data_files;

  b)查看所以表空间当前状态

   select tablespace_name,status from dba_tablespaces;

  c)查看所有数据文件的当前状态

   select file#,status from v$datafile;

  d)查看标识需要恢复的数据文件以及恢复从何处开始

  select * from v$recover_file;

  e)查看定位在恢复期间所需的归档日志文件

  select * from v$recovery_log;

8. 演示表空间脱机与表空间所对应的数据文件脱机区别

1)演示表空间脱机

  表空间脱机:alter tablespace xiaoming_index offline;

  查看表空间是否脱机:select tablespace_name,status from dba_tablespaces;

  查看数据文件是否脱机:select file#,status frin v$datafile;数据文件的状态变为offline

  查看所有数据文件当前的与备份相关信息:select * from v$recover_file;
注意:第4列ERROR显示的结果有两种可能:offline normal表示该数据文件在设置在联机之前不需要进行恢复;null表示该数据文件脱机的原因不清楚;

2)演示数据文件脱机

  数据文件脱机:alter database datafile 7 offline;

  查看数据文件当前状态:select file#,status from v$datafile;数据文件的状态变为recover

9. 数据库完全恢复方法

1)在数据库最初处于打开的状态下,进行开启数据库的恢复;

2)在数据库最初处于关闭的状态下,进行开启数据库的恢复;

3)恢复没有备份的数据文件;

4)在关闭的状态下进行数据库的恢复

10. 最初处于打开状态下进行的开启数据库恢复

a)适用如下情况:

  1)所需恢复的数据文件不属于系统表空间或还原/回滚段表空间;

  2)磁介质的损坏,数据文件的崩溃,或数据文件的丢失并未造成数据库的关闭;

  3)数据库是以每天24小时每周7天运营的方式操作的,数据库的当机时间必须保持最小

b)操作步骤:

  1)使用数据字典dba_data_files获取要恢复的数据文件与所对应的表空间及它们的相关信息;

  2)dba_tablespaces获取要恢复的表空间是处在脱机还是联机状态,可以使用v$datafile确认要恢复的数据文件是处在脱机还是联机状态;

  3)如果表空间处在联机状态,将表空间设为脱机状态,也可以将数据文件设为脱机;

  4)使用操作系统复制命令将备份的数据文件复制回数据库中原来的位置,如果硬盘损坏,将备份的数据文件复制到其他硬盘上,之后使用alter命令修改数据文件名;

  5)使用recover命令将所有提交的数据从归档日志文件和重做日志文件重新写入已经修复的数据文件

  6)当恢复完成后将表空间或数据文件重新设置为联机状态;

  7)检查是否正常;

11. 最初处于关闭状态下进行的开启数据库恢复

a)适用如下情况:

  1)所需恢复的数据文件不属于系统表空间或还原/回滚段表空间;

  2)磁介质的损坏,硬盘的损毁,或数据文件的丢失已经造成数据库的关闭;

  3)数据库是以每天24小时每周7天运营的方式操作的,数据库的当机时间必须保持最小;

b)步骤:

  1)使用startup mount加载数据库。因为损坏的数据文件不能打开

  2)使用v$datafile确认要恢复的数据文件的文件名。这时不能使用数据字典dba_tablespaces,因为该数据字典只能在数据库开启状态下使用;

  3)使用 alter database datafile "数据文件名" offline:将出问题的数据文件设为脱机,这时不能使用alter tablespace命令将出文件的表空间设为脱机,因为该命令只能在数据库开启状态下使用;

  4)使用alter database open 将数据库打开。因为出问题的数据文件已经脱机,所有其他的数据文件都是同步的;

  5)使用操作系统复制命令将备份的数据文件复制回数据库中原来的位置,如果硬盘损坏,将备份的数据文件复制到其他硬盘上,之后使用alter命令修改数据文件名;

  6)使用recover命令将所有提交的数据从归档日志文件和重做日志文件重新写入已经修复的数据文件;

  7)当恢复完成后将表空间或数据文件重新设置为联机状态;

12. 恢复没有备份的数据文件

a)适用如下情况:

  1)所需恢复的数据文件不属于系统表空间或还原/回滚段表空间;

  2)由于介质损坏或用户错误导致数据文件的丢失,但是这个数据文件从来没有备份过;

  3)从这个数据文件创建以来所有的归档日志文件都完好无损;

b)oracle提供两个重新建立数据文件的结构的命令

  alter database create datafile "原始文件名":该命令重建与原来数据文件同名的数据文件

  alter database create datafile "原文件名" as "新文件名"

c)步骤:

  1)使用数据字典dba_data_file获取要恢复的数据文件与所对应的表空间及它们的相关信息;

  2)dba_tablespaces获取要恢复的表空间是处在脱机还是联机状态,可以使用v$datafile确认要恢复的数据文件是处在脱机还是联机状态;

  3)如果表空间处在联机状态,将表空间设为脱机状态,也可以将数据文件设为脱机;

  4)使用数据字典v$recover_file查看数据文件的恢复状态此时error列的显示应该为file not found,change#列的显示应该为0,而time列应该没有显示输出;

  5)使用alter database create datafile命令重建数据文件的结构;

  6)使用数据字典v$recover_file确认数据文件的恢复状态,此时ERROR列应该没有显示输出,change#列和time列的显示都有了新值;

  7)使用recover命令将所有提交的数据从归档日志文件和重做日志文件重新写入已经修复的数据文件;

  8)当恢复完成后将表空间或数据文件重新设置为联机状态;

12. 在关闭的状态下进行数据库的恢复

a)适用如下情况:

  1)所需恢复的数据文件属于系统表空间或还原/回滚段表空间;

  2)整个数据库或大多数数据文件都需要恢复;

  3)数据库不是以每天24小时每周7天运营的方式操作的,数据库在工作期间可以关闭;

b)步骤:

  1)使用数据字典dba_data_file获取要恢复的数据文件与所对应的表空间及它们的相关信息;

  2)如果数据库是打开状态,使用shutdown关闭数据库shutdown abort;

  3)以加载方式启动数据库startup mount

  4)使用操作系统复制命令将备份的数据文件复制回数据库中原来的位置,如果硬盘损坏,将备份的数据文件复制到其他硬盘上,之后使用alter命令修改数据文件名;

  5)使用recover命令将所有提交的数据从归档日志文件和重做日志文件重新写入已经修复的数据文件;

  6)使用alter database open命令将数据库打开;

13.最初在关闭状态下进行开启数据库恢复的实例

  1)准备工作,备份数据库

    alter tablespace system begin backup;

    host copy E:\app\kxbin\oradata\orcl\system01.dbf D:\orcl\Backup\

    alter tablespace system end backup;

  2)关闭数据库

    shutdown immediate;

  3)模拟xiaoming_index.dbf文件丢失,删除xiaoming_index.dbf文件

  4)试着启动数据库

    shtartup

  5)第6号数据文件出现问题,将该文件设为脱机

    alter database datafile 6 offline;

  6)打开数据库

    alter database open;

  7)查看数据文件的状态

    select file#,status from v$datafile;

  8)查看与数据文件相关的恢复信息

    select * from v$recover_file; (提示第6号数据文件已经丢失)

  9)使用操作系统的复制命令将备份文件复制回第6号数据文件原来的目录下

    host copy D:\orcl\Backup\xiaoming_index.dbf  E:\app\kxbin\oradata\orcl\

  10)对第6号数据文件进行恢复

    recover datafile 6;

  11)将xiaoming_index表空间重新设置为联机

    alter tablespace xiaoming_index online;

  12)查看数据文件的当前状态

    select file#,status from v$datafile;

14. 在关闭的状态下进行数据库恢复的实例 

  1)准备工作,备份数据库

    alter tablespace xiaoming_index begin backup;

    host copy E:\app\kxbin\oradata\orcl\system01.dbf D:\orcl\Backup\

    alter tablespace xiaoming_index end backup;

  2)关闭数据库

    shutdown immediate;

  3)模拟由于系统表空间所对应的数据文件的损坏造成数据库关闭的情况,删除system01.dbf文件

  4)以加载的方式启动数据库

    startup mount

  5)使用操作系统的复制命令将备份文件复制到新的硬盘上

    host copy D:\orcl\Backup\system01.dbf  E:\app\kxbin\oradata\orcl\

    alter database rename file 'D:\orcl\Backup\system01.dbf' to 'E:\app\kxbin\oradata\orcl\';

  6)恢复数据库

    recover database;

  7)打开数据库

    alter database open;

转载于:https://www.cnblogs.com/kangxuebin/archive/2013/01/23/2873062.html

第19章 归档模式下的数据库恢复相关推荐

  1. 非归档模式下重做日志覆盖后的rman恢复

    非归档模式下重做日志覆盖后的rman恢复 实验原理:在非归档模式下,数据库的重做日志不会写入归档日志中,对数据库的恢复只能依靠3个联机重做日志.当第一个重做日志满了,就切换第二个重做日志中,以此类推, ...

  2. Oracle10g数据库归档与非归档模式下的备份与恢复

    一.总述 1.数据库归档模式: * 非归档模式:当数据库数据只读不会改变时,数据不会改变,数据库适合用非归档模式,  这样提高机能 * 归档模式:对于数据库数据经常变换,数据库最好用归档模式,这样可以 ...

  3. oracle10g利用归档恢复,Oracle10g数据库归档与非归档模式下的备份与恢复

    一.总述 1.数据库归档模式: * 非归档模式:当数据库数据只读不会改变时,数据不会改变,数据库适合用非归档模式,  这样提高机能 * 归档模式:对于数据库数据经常变换,数据库最好用归档模式,这样可以 ...

  4. oracle非归档模式下如何备份,Oracle之RMAN数据库在非归档模式下的备份和恢复

    1.数据库在非归档模式下的备份 SQLgt; archive log list;数据库日志模式 非存档模式自动存档 禁用存档终点 USE_DB_RECOVERY_FIL 1.数据库在非归档模式下的备份 ...

  5. rman一致性备份oracle数据库可以在非归档模式下么,探索ORACLE之RMAN_03一致性备份...

    探索ORACLE之RMAN_03一致性备份 作者:吴伟龙 在之前的已经提到过备份分为一致性备份和非一致性备份,它们的区别就在于数据库所处的备份状态不同,并且一致性备份不能做增量备份恢复,需停业务,一致 ...

  6. 第19章 解释器模式(Interpreter Pattern)

    原文 第19章 解释器模式(Interpreter Pattern) 解释器模式 导读:解释器模式,平常用的比较的少,所以在写这个模式之前在博客园搜索了一番,看完之后那叫一个头大.篇幅很长,我鼓足了劲 ...

  7. oracle在非归档模式下,Oracle在非归档模式下不能更改表空间为备份模式

    Oracle表空间设置为备份模式后,便可以联机对表空间下数据文件进行文件系统级别的copy备份操作,因为期间对表空间的修改都记录到数据库的重做日志文件中. 由此想到数据库如果是非归档模式,那么这个表空 ...

  8. 第 19 章 迭代器模式

    第 19 章 迭代器模式 1.学校院系展示需求 编写程序展示一个学校院系结构:需求是这样,要在一个页面中展示出学校的院系组成,一个学校有多个学院,一个学院有多个系. 如图: 2.传统方案解决学校院系展 ...

  9. 利用 BBED 恢复非归档模式下 OFFLINE 数据文件

    利用 BBED 恢复非归档模式下 OFFLINE 数据文件 今天来模拟一个非归档模式下恢复OFFLINE数据文件的场景,主要有2种情况: 一种是在线日志没有被覆盖,另一种是在线日志被覆盖. 第一种情况 ...

最新文章

  1. Tasklets 机制浅析
  2. java栈代码执行_这段实现栈的java代码执行错误..
  3. java 获取当前目录_java获得当前文件路径
  4. PHP-代码审计-XSS
  5. codeforces 337D Book of Evil(dp)
  6. 【题解】洛谷P4145 花神游历各国(线段树)
  7. matlab画滤波器频响应,matlab如何画出“凯泽窗FIR滤波器”的幅频相频响应图
  8. PCDN实现flash无延时直播的技术原理与优点 1
  9. python真的是吹过了-被吹的神乎其神的Python到底都能干什么
  10. js文件/图片从电脑里面拖拽到浏览器上传文件/图片
  11. Web前端开发如何提高技术水平!
  12. 优先队列 STL (转)
  13. 【独家】阿里云罗庆超:对象存储 OSS 海量数据管理和应用最佳实践
  14. ELK 学习笔记之 elasticsearch Bulk操作
  15. log4j错误log4j:WARN No appenders could be found for logger
  16. 《蜗居》的经典台词(转载)一
  17. Xposed工具的安装
  18. 2020年9月指数定期审核与调整 | TokenInsight
  19. nginx+uwsgi+django1.9+mysql+python2.7部署到CentOS6.5
  20. 应用组件的名字与已安装应用有冲突

热门文章

  1. Winform下载文件
  2. 将SmartForms转换为PDF保存到本地
  3. Handler消息处理机制
  4. 思科——RIP的运用
  5. 47.2. 配置 Tomcat 服务器
  6. wireshark从入门到精通(协议排错安全篇)4
  7. ActiveMQ简单使用介绍
  8. mysql function 与 procedure
  9. JSON的使用・小结
  10. 元旦是星期天,春节是1.29,也是星期天哦,祝贺大家节日了!