狠狠撸

狠狠撸Share a Scribd company logo
Restore and Recovery
     with RMAN
Overview
? 前面介绍了RMAN的备份, 这一章的主题是使用
  RMAN进行还原(restore)和恢复(recovery)操作. 还
  原指的是从某个备份中还原整个文件, 恢复指的
  是应用重做日志, 将数据恢复到最新的状态. 本章
  包含以下内容:
  –   数据恢复顾问(DRA, Data Recovery Advisor)
  –   使用DRA进行数据库恢复
  –   对数据文件丢失执行完全恢复
  –   执行不完全恢复
  –   使用增量备份执行恢复
  –   执行基于镜像备份的快速恢复
  –   使用控制文件备份进行恢复
  –   执行介质恢复(Block Media Recovery)
Data Recovery Advisor
? DRA用于诊断与数据库恢复相关的问题, 它能够生成相应的脚本对
  数据文件和控制文件进行修复, 可以通过RMAN或者database control
  调用DRA. DRA依赖于Health Monitor和Automatic diagnostic repository
  (ADR).
? Health Monitor & ADR
  HM用于执行预定义的检查(自动执行或者由DBA手动执行)并将检查
  的结果存放在指定的文件系统目录中, 目录的位置由数据库参数
  DIAGNOSTIC_DEST参数指定. 该目录就被称为ADR. 不同的HM检查在
  不同的数据库运行阶段被执行:
   – 在nomount阶段, 只有”db structure integrity”检查能够执行, 它用于检查
     控制文件的完整性;
   – 在mount阶段, ”db structure integrity”用于检查控制文件、在线重做日
     志文件以及数据文件的完整性; “redo integrity check”检查在线重做日志
     和归档日志的可访问性和是否有损坏;
   – 在open阶段, 可以运行相应的检查扫描数据文件发现是否有坏块, 检查
     数据字典和回滚段的完整性.
  当数据库处于open状态时, 可以通过DMBS_HM接口或者database
  control调用HM检查, 路径Advisor Central -> Checkers.
Data Recovery Advisor
            - Capabilities & Limitations
?   DRA可以提供下面的功能:
    – 当数据库处在nomount阶段, DRA可以诊断控制文件是否有问题, 并生成相应的修复脚本;
    – 当数据库处在mount阶段, DRA检查与数据文件、在线重做日志文件相关的问题, 并生成相应的
      修复脚本.
    Tip: DRA只能使用在单实例的情况, 不能使用在RAC环境.
?   DRA Exercise
    -- 登录RMAN并备份sysaux表空间, 之后关闭数据库
      rman target /;
      backup as backupset tablespace sysaux;
      shutdown immediate;
    -- 使用操作系统命令删除sysaux表空间文件
      mv sysaux01.dbf sysaux01.dbf.bak
    -- 启动数据库, 在mount阶段出现错误
      startup;
    -- 登录rman使用DRA查看错误并修复
      rman target /;
      list failure;           -- 指出sysaux表空间文件丢失
      advise failure;         -- 生成修复脚本, 并指明脚本的位置. 该脚本包含如下RMAN指令:
        restore datafile 2;
        recover datafile 2;
Data Recovery Advisor
         - DRA in Action
? DRA使用HM收集的信息发现问题, 并生成RMAN脚本,
  按照如下方式使用DRA:
 – 运行HM检查收集错误信息, 比如在启动数据库时会自动运
   行HM;
 – 列出错误, 在RMAN中运行命令list failure列出错误;
 – 生成错误建议, 在RMAN中运行命令advise failure;
 – 执行RMAN脚本进行修复. 可以通过手动执行修复脚本中的
   命令或者直接运行命令repair failure.
 可以通过RMAN交互式命令行执行DRA或者使用
 database control图形界面进行操作, 接下来演示使用
 后者.
Data Recovery Advisor
                   - DRA in Action
                                启动之后数据库处在mount阶段,
                                此时登录em将显示perform
                                recovery按钮, 点击.


点击Advise and Recover按钮生成
RMAN修复脚本.




                            点击执行RMAN脚本.
Database Restore
                 & Recovery
? 对于oracle数据库而言有的文件是关键的(critical), 另一些文件则是非关键
  (non-critical)文件. 关键文件有:
  – 控制文件的所有拷贝;
  – SYSTEM表空间的数据文件;
  – 回滚表空间的数据文件.
 非关键文件有:
  – 在线重做日志文件的多路复用拷贝;
  – 临时表空间数据文件;
  – 非SYSTEM表空间和回滚表空间的数据文件.
? 作为一个通用的原则, 对于数据文件的错误应该使用完全修复(complete
  recovery): 还原数据文件, 并应用重做日志恢复所有数据; 非完全修复
  (incomplete recovery)则是将数据文件恢复到过去的某个时间点, 该时间点
  之后的数据被丢失. 应该尽量执行完全修复, 但是在某些情况下比如归档日
  志丢失则需要执行不完全修复. 执行完全修复的步骤如下:
  –   将数据文件设置为offline;
  –   还原数据文件;
  –   恢复数据文件;
  –   将数据文件设置为online.
Complete Recovery
                 - Data File Loss
? 根据数据库归档模式的设置, 数据文件的修复需要采取不同的动作:
 – 非归档模式
 对整个数据库进行还原, 这会造成大量的数据丢失. 执行下面
 的脚本:
   shutdown abort;
   startup mount;
   restore database;
   alter database open resetlogs;
 如果数据库执行了增量备份则需要在还原之后执行下面的命
 令应用增量备份:
   recover database noredo;
 – 归档模式/non-critical
 非关键文件损坏会导致数据库仅部分可用(partial available), 相应的文件被
 设置为offline状态而不能被访问. 如果备份是使用RMAN进行的, 那么非关
 键文件的修复可以完全自动进行. RMAN会选择最有效的全量备份和增量
 备份, 并应用相应的归档日志实现文件的修复.
 Tip: 如果存在增量备份, 那么RMAN会优先应用这些增量备份而不是使用
      归档日志.
Complete Recovery
               - Data File Loss
– 归档模式/non-critical
演示非关键数据文件的恢复.
  ? 创建一个表空间, 并在其中创建一张表;
     create tablespace noncrit
        datafile '/opt/oracle/oradata/noncrit.dbf' size 2m;
     create table ex16(c1 date) tablespace noncrit;
     insert into ex16 values(sysdate);
     commit;
  ? 备份该表空间
       backup as backupset tablespace noncrit;
  ? 使用文本编辑器(vi/notepad)删除数据文件的前几个字节, 这会导致该
    数据文件损坏.
  ? 清空SGA数据块缓存, 之后查询ex16表将出现错误.
     alter system flush buffer_cache;
     select * from ex16;                          sql 'alter database datafile 7 offline';
  ? 使用DRA修复数据文件,                                    restore datafile 7;
     list failure; -- 提示数据文件损坏;                     recover datafile 7;
     advise failure; -- 生成RMAN修复脚本                  sql 'alter database datafile 7 online';
     repair failure; -- 执行数据文件修复
Complete Recovery
       - Data File Loss
– 归档模式/critical
关键数据文件的损坏或者丢失会导致实例被立即终
止, 应该使用硬件冗余的手段防止这种问题出现, 比
如使用RAID. 关键数据文件的修复步骤与非关键文件
的基本是相同的, 差别在于:
 ? 将数据库启动到mount阶段;
 ? 无需将数据文件offline, 此时数据库实例已经终止.
Incomplete Recovery
? 不完全恢复首先将整个数据库还原到某一个时间点, 然后应用自该时间点
  开始的部分重做日志, 这意味着有一部分数据被丢失. 通常而言只有在归档
  日志文件丢失或者丢失所有的在线重做日志文件时, 才会执行不完全恢复.
  另外一种执行部分恢复的理由是, 用户进行了误操作(比如批量更新和删除)
  需要将数据库还原到某个时间点.
  Tip: 对于用户的误操作, oracle提供了一系列的闪回技术, 可以在不执行恢
  复的情况下将数据库”闪回”到之前的状态.
? 不完全恢复按照以下四个步骤执行:
  –   启动数据库到mount阶段;
  –   还原所有的数据文件;
  –   恢复数据库到指定的时间点;
  –   使用reset logs选项打开数据库.
 与完全恢复的区别是:
  – 在丢失非关键文件的情况下, 完全恢复可以在数据库open阶段执行; 不完全恢
    复只能在数据库处于mount阶段执行;
  – 完全恢复只需要处理特定的数据文件(已损坏或者丢失), 不完全恢复则首先需
    要对所有的数据文件进行还原.
  – 非完全恢复仅应用部分重做日志到某个时间点, 完全恢复应用所有.
  – 非完全恢复使用reset logs选项打开数据库.
Incomplete Recovery
? 非完全恢复在执行了数据文件的还原之后, 可以有以下三个选项将
  数据库恢复到某个时间点,
 – 指定时间(until time)
 在RMAN中使用”until time”;
 – 指定SCN(util system change number)
 在RMAN中使用”until SCN”;
 – 指定日志切换序号(util log sequence number).
 在RMAN中使用”until SEQUENCE”.
 使用RMAN进行不完全恢复, 示例:
   run {startup mount;
   set until time = "to_date('27-10-08 10:00:00','dd-mm-yy hh24:mi:ss')";
   restore database;
   recover database;
   alter database open resetlogs;}
 也可以使用如下语法:
   restore database until time 'sysdate - 7';
   recover database until time '27-OCT-08';
Controlfile
           - Autobackup & Restore
? 控制文件对于oracle数据库至关重要, 控制文件的丢失或者损坏会导
  致数据库直接崩溃. 另外RMAN也严重依赖于控制文件, 因为RMAN将
  所有的备份信息存储在控制文件. 有两种方式可以避免控制文件丢
  失导致的灾难性后果, 使用RMAN目录数据库(RMAN catalog database)
  或者启用控制文件自动备份, 这里介绍后者.
? 在RMAN中使用如下configure命令开启控制文件的自动备份:
    configure controlfile autobackup on;
 在这种情况下, 每一个RMAN操作都会自动对控制文件和SPFILE进行
 备份. 在需要的时候使用如下命令还原控制文件:
    restore controfile from autobackup; -- nomount phase
 如果SPFILE丢失, 首选创建一个包含DB_NAME参数的静态pfile文件,
 使用该文件启动实例, 然后再执行以下命令:
    set dbid 1234567890; -- dbid column of v$database
    restore spfile from autobackup; -- nomount phase
 Tip: 以上两个从自动备份中恢复SPFILE和控制文件的命令可以在数
 据库处在nomount阶段执行, 其他的RMAN命令均需要数据库处在
 mount和open阶段.
Using Image Copies
                        for Recovery
? 如果对数据库作了镜像备份(实际上是将数据库文件拷贝至另一个位置, 文件名
  会发生变化), 那么应该使用该镜像对数据库进行还原, 这会大大地提高
  还原的速度. 使用下面的命令执行镜像备份:
    backup as copy database;
    backup as copy datafile 4 format '/u02/df_copies/users.dbf';
 使用如下RMAN脚本将数据文件切换到镜像:
     run {sql 'alter database datafile 4 offline';
   set newname for datafile 4 to '/u02/df_copies/users.dbf';
   switch datafile 4;
   recover datafile 4;
   sql 'alter database datafile 4 online';}
 使用以下命令将整个数据库还原至某个镜像:
   switch database to copy;
 镜像备份的另一个用法是, 首先创建一个镜像然后定时对该镜像应
 用增量备份, 这样可以保证该镜像处在较新的状态, 从而大大缩小数
 据库修复的时间, 使用下面的脚本:
      run {backup incremental level 1 for recover of copy with tag 'inc_copy' database;
      recover copy of database with tag 'inc_copy' ;}
Block Recovery
                   - Detection
? 如果数据文件仅仅是少数的数据块(非header部分)被损
  坏, 那么该文件仍可以保持可用, 只有在查询需要读取
  这些坏块的数据时会提示错误. RMAN可以用于检查数
  据文件中的坏块, 并进行修复.
? Detection of Corrupt Blocks
  RMAN在执行备份时, 如果遇到坏块默认会立即停止备
  份并且抛出错误. 可以设置RMAN允许一定的坏块存在,
  示例允许最多100个坏数据块:
     run {set maxcorrupt for datafile 7 to 100;
           backup datafile 7;}
 备份中的坏块信息根据备份类型的不同分别保存在视
 图v$backup_corruption和v$copy_corruption中. 另外可
 以设置RMAN不检查物理坏块, 如下:
     backup nochecksum datafile 7;
Block Recovery
           - Block Media Recovery
? RMAN在检测到数据文件坏块时可以执行数据块介质恢复
  (BMR), 这样的好处是: 数据文件仍可用并且恢复的时间大大
  减少. BMR会使用相应的数据块备份对坏块进行还原, 之后
  再应用重做日志. 块恢复必须是完全的.
? 使用如下命令执行坏块的恢复:
 – 指定单个数据文件的单个数据块进行恢复
 block recover datafile 7 block 5;
 – 指定多个数据文件的多个数据块进行恢复
 block recover datafile 7 block 5,6,7 datafile 9 block 21,25;
 – 使用指定序号或者标签的备份集进行坏块恢复
 block recover datafile 7 block 5 from backupset 1093;
 block recover datafile 7 block 5 from tag monthly_whole;
 – 修复上一次备份中所有的坏块, 使用至少7天之前的备份
 block recover corruption list until time sysdate - 7;
END

More Related Content

What's hot (20)

Times Ten Training
Times Ten TrainingTimes Ten Training
Times Ten Training
Li Chen
?
Oracle管理藝術第1章 在Linux作業體統安裝Oracle 11g
Oracle管理藝術第1章 在Linux作業體統安裝Oracle 11gOracle管理藝術第1章 在Linux作業體統安裝Oracle 11g
Oracle管理藝術第1章 在Linux作業體統安裝Oracle 11g
Chien Chung Shen
?
dbdao.com 汪伟华 my-sql-replication复制高可用配置方案
dbdao.com 汪伟华 my-sql-replication复制高可用配置方案dbdao.com 汪伟华 my-sql-replication复制高可用配置方案
dbdao.com 汪伟华 my-sql-replication复制高可用配置方案
maclean liu
?
【诗檀软件 郭兆伟-技术报告】跨国公司级翱谤补肠濒别数据库备份策略
【诗檀软件 郭兆伟-技术报告】跨国公司级翱谤补肠濒别数据库备份策略【诗檀软件 郭兆伟-技术报告】跨国公司级翱谤补肠濒别数据库备份策略
【诗檀软件 郭兆伟-技术报告】跨国公司级翱谤补肠濒别数据库备份策略
maclean liu
?
数据库性能诊断的七种武器
数据库性能诊断的七种武器数据库性能诊断的七种武器
数据库性能诊断的七种武器
Leyi (Kamus) Zhang
?
Oracle Tablespace介紹
Oracle Tablespace介紹Oracle Tablespace介紹
Oracle Tablespace介紹
Chien Chung Shen
?
Oracle 資料庫建立
Oracle 資料庫建立Oracle 資料庫建立
Oracle 資料庫建立
Chien Chung Shen
?
罢辞尘颁补迟迁移步骤简述以及案例
罢辞尘颁补迟迁移步骤简述以及案例罢辞尘颁补迟迁移步骤简述以及案例
罢辞尘颁补迟迁移步骤简述以及案例
maclean liu
?
Oracle Instance 介紹
Oracle Instance 介紹Oracle Instance 介紹
Oracle Instance 介紹
Chien Chung Shen
?
【Ask maclean技术分享】oracle dba技能列表 z
【Ask maclean技术分享】oracle dba技能列表 z【Ask maclean技术分享】oracle dba技能列表 z
【Ask maclean技术分享】oracle dba技能列表 z
maclean liu
?
11, OCP - awr & alert system
11, OCP - awr & alert system11, OCP - awr & alert system
11, OCP - awr & alert system
ted-xu
?
Oracle 資料庫檔案介紹
Oracle 資料庫檔案介紹Oracle 資料庫檔案介紹
Oracle 資料庫檔案介紹
Chien Chung Shen
?
翱谤补肠濒别使用者安全设定
翱谤补肠濒别使用者安全设定翱谤补肠濒别使用者安全设定
翱谤补肠濒别使用者安全设定
Chien Chung Shen
?
Oracle SGA 介紹
Oracle SGA 介紹Oracle SGA 介紹
Oracle SGA 介紹
Chien Chung Shen
?
Baidu Cloud Foundry
Baidu Cloud FoundryBaidu Cloud Foundry
Baidu Cloud Foundry
James Watters
?
翱谤补肠濒别数据库升级前必要的准备工作
翱谤补肠濒别数据库升级前必要的准备工作翱谤补肠濒别数据库升级前必要的准备工作
翱谤补肠濒别数据库升级前必要的准备工作
maclean liu
?
罢厂惭6培训教程
罢厂惭6培训教程罢厂惭6培训教程
罢厂惭6培训教程
acqua young
?
惭测厂蚕尝数据库生产环境维护
惭测厂蚕尝数据库生产环境维护惭测厂蚕尝数据库生产环境维护
惭测厂蚕尝数据库生产环境维护
mysqlops
?
Oracle 索引介紹
Oracle 索引介紹Oracle 索引介紹
Oracle 索引介紹
Chien Chung Shen
?
诗檀软件 Oracle数据块损坏知识
诗檀软件 Oracle数据块损坏知识诗檀软件 Oracle数据块损坏知识
诗檀软件 Oracle数据块损坏知识
maclean liu
?
Times Ten Training
Times Ten TrainingTimes Ten Training
Times Ten Training
Li Chen
?
Oracle管理藝術第1章 在Linux作業體統安裝Oracle 11g
Oracle管理藝術第1章 在Linux作業體統安裝Oracle 11gOracle管理藝術第1章 在Linux作業體統安裝Oracle 11g
Oracle管理藝術第1章 在Linux作業體統安裝Oracle 11g
Chien Chung Shen
?
dbdao.com 汪伟华 my-sql-replication复制高可用配置方案
dbdao.com 汪伟华 my-sql-replication复制高可用配置方案dbdao.com 汪伟华 my-sql-replication复制高可用配置方案
dbdao.com 汪伟华 my-sql-replication复制高可用配置方案
maclean liu
?
【诗檀软件 郭兆伟-技术报告】跨国公司级翱谤补肠濒别数据库备份策略
【诗檀软件 郭兆伟-技术报告】跨国公司级翱谤补肠濒别数据库备份策略【诗檀软件 郭兆伟-技术报告】跨国公司级翱谤补肠濒别数据库备份策略
【诗檀软件 郭兆伟-技术报告】跨国公司级翱谤补肠濒别数据库备份策略
maclean liu
?
数据库性能诊断的七种武器
数据库性能诊断的七种武器数据库性能诊断的七种武器
数据库性能诊断的七种武器
Leyi (Kamus) Zhang
?
罢辞尘颁补迟迁移步骤简述以及案例
罢辞尘颁补迟迁移步骤简述以及案例罢辞尘颁补迟迁移步骤简述以及案例
罢辞尘颁补迟迁移步骤简述以及案例
maclean liu
?
【Ask maclean技术分享】oracle dba技能列表 z
【Ask maclean技术分享】oracle dba技能列表 z【Ask maclean技术分享】oracle dba技能列表 z
【Ask maclean技术分享】oracle dba技能列表 z
maclean liu
?
11, OCP - awr & alert system
11, OCP - awr & alert system11, OCP - awr & alert system
11, OCP - awr & alert system
ted-xu
?
翱谤补肠濒别使用者安全设定
翱谤补肠濒别使用者安全设定翱谤补肠濒别使用者安全设定
翱谤补肠濒别使用者安全设定
Chien Chung Shen
?
翱谤补肠濒别数据库升级前必要的准备工作
翱谤补肠濒别数据库升级前必要的准备工作翱谤补肠濒别数据库升级前必要的准备工作
翱谤补肠濒别数据库升级前必要的准备工作
maclean liu
?
罢厂惭6培训教程
罢厂惭6培训教程罢厂惭6培训教程
罢厂惭6培训教程
acqua young
?
惭测厂蚕尝数据库生产环境维护
惭测厂蚕尝数据库生产环境维护惭测厂蚕尝数据库生产环境维护
惭测厂蚕尝数据库生产环境维护
mysqlops
?
诗檀软件 Oracle数据块损坏知识
诗檀软件 Oracle数据块损坏知识诗檀软件 Oracle数据块损坏知识
诗檀软件 Oracle数据块损坏知识
maclean liu
?

Viewers also liked (16)

5, system admin
5, system admin5, system admin
5, system admin
ted-xu
?
2, bash synax simplified
2, bash synax simplified2, bash synax simplified
2, bash synax simplified
ted-xu
?
4, files & folders
4, files & folders4, files & folders
4, files & folders
ted-xu
?
Condensation Silicone-MSDS
Condensation Silicone-MSDSCondensation Silicone-MSDS
Condensation Silicone-MSDS
Iris He
?
Наши партнеры
Наши партнерыНаши партнеры
Наши партнеры
Vladimir Pokladov
?
lee RESUME
lee RESUMElee RESUME
lee RESUME
leelakrshnan leelakrishnan
?
Barn i barnevernet
Barn i barnevernetBarn i barnevernet
Barn i barnevernet
University Library of Stavanger / Universitetsbiblioteket i Stavanger
?
fit-PC - Product line overview (v3.0)
fit-PC - Product line overview (v3.0)fit-PC - Product line overview (v3.0)
fit-PC - Product line overview (v3.0)
Maxim Birger (马克斯)
?
Good company
Good companyGood company
Good company
Hugh Choi ???
?
2, OCP - installing and creating a database
2, OCP - installing and creating a database2, OCP - installing and creating a database
2, OCP - installing and creating a database
ted-xu
?
SCL Event - Egil Moller Nielsen & Chee Yew Wong - Innovative Delivery Solutio...
SCL Event - Egil Moller Nielsen & Chee Yew Wong - Innovative Delivery Solutio...SCL Event - Egil Moller Nielsen & Chee Yew Wong - Innovative Delivery Solutio...
SCL Event - Egil Moller Nielsen & Chee Yew Wong - Innovative Delivery Solutio...
Global Business Intel
?
CIO Event - Bid Winning: How can technology in your business assist your next...
CIO Event - Bid Winning: How can technology in your business assist your next...CIO Event - Bid Winning: How can technology in your business assist your next...
CIO Event - Bid Winning: How can technology in your business assist your next...
Global Business Intel
?
Τεστ στα διαν?σματα
Τεστ στα διαν?σματαΤεστ στα διαν?σματα
Τεστ στα διαν?σματα
Μ?κη? Χατζ?πουλο?
?
Social Media Marketing and Your Targeted Audience
Social Media Marketing and Your Targeted AudienceSocial Media Marketing and Your Targeted Audience
Social Media Marketing and Your Targeted Audience
Moshiur Monty
?
CIO Event - HP - Digital Disruption : How can IT play its part?
CIO Event - HP - Digital Disruption : How can IT play its part?CIO Event - HP - Digital Disruption : How can IT play its part?
CIO Event - HP - Digital Disruption : How can IT play its part?
Global Business Intel
?

Similar to 9, OCP - restore and recovery with rman (20)

配置Oracle 10g 双向流复制
配置Oracle 10g 双向流复制配置Oracle 10g 双向流复制
配置Oracle 10g 双向流复制
maclean liu
?
10, OCP - flashback
10, OCP - flashback10, OCP - flashback
10, OCP - flashback
ted-xu
?
第4章 数据库管理
第4章 数据库管理第4章 数据库管理
第4章 数据库管理
zhang shuren
?
Oracle试题Exam Adminv1.1
Oracle试题Exam Adminv1.1Oracle试题Exam Adminv1.1
Oracle试题Exam Adminv1.1
Zianed Hou
?
MySQL Replication新功能介绍
MySQL Replication新功能介绍 MySQL Replication新功能介绍
MySQL Replication新功能介绍
orczhou
?
12, OCP - performance tuning
12, OCP - performance tuning12, OCP - performance tuning
12, OCP - performance tuning
ted-xu
?
賽門鐵克 Storage Foundation 6.0 簡報
賽門鐵克 Storage Foundation 6.0 簡報賽門鐵克 Storage Foundation 6.0 簡報
賽門鐵克 Storage Foundation 6.0 簡報
Wales Chen
?
Install Oracle11g For Aix 5 L
Install Oracle11g For Aix 5 LInstall Oracle11g For Aix 5 L
Install Oracle11g For Aix 5 L
heima911
?
无数据库日志文件恢复数据库方法两则
无数据库日志文件恢复数据库方法两则无数据库日志文件恢复数据库方法两则
无数据库日志文件恢复数据库方法两则
wensheng wei
?
Mysql proxy cluster
Mysql proxy clusterMysql proxy cluster
Mysql proxy cluster
Yiwei Ma
?
Oracle enterprise manager cloud control 12c release 5 installation on oracle ...
Oracle enterprise manager cloud control 12c release 5 installation on oracle ...Oracle enterprise manager cloud control 12c release 5 installation on oracle ...
Oracle enterprise manager cloud control 12c release 5 installation on oracle ...
Zhaoyang Wang
?
5, OCP - oracle storage
5, OCP - oracle storage5, OCP - oracle storage
5, OCP - oracle storage
ted-xu
?
深入了解翱谤补肠濒别自动内存管理补蝉尘尘
深入了解翱谤补肠濒别自动内存管理补蝉尘尘深入了解翱谤补肠濒别自动内存管理补蝉尘尘
深入了解翱谤补肠濒别自动内存管理补蝉尘尘
maclean liu
?
Orclrecove 1 pd-prm-dul testing for oracle database recovery_20141030_biot_wang
Orclrecove 1 pd-prm-dul testing for oracle database recovery_20141030_biot_wangOrclrecove 1 pd-prm-dul testing for oracle database recovery_20141030_biot_wang
Orclrecove 1 pd-prm-dul testing for oracle database recovery_20141030_biot_wang
maclean liu
?
8, lamp
8, lamp8, lamp
8, lamp
ted-xu
?
叠测辫补迟博客出品-服务器运维集群方法总结2
叠测辫补迟博客出品-服务器运维集群方法总结2叠测辫补迟博客出品-服务器运维集群方法总结2
叠测辫补迟博客出品-服务器运维集群方法总结2
redhat9
?
P6 数据库安装和配置
P6 数据库安装和配置P6 数据库安装和配置
P6 数据库安装和配置
epst
?
配置Oracle 10g 双向流复制
配置Oracle 10g 双向流复制配置Oracle 10g 双向流复制
配置Oracle 10g 双向流复制
maclean liu
?
10, OCP - flashback
10, OCP - flashback10, OCP - flashback
10, OCP - flashback
ted-xu
?
第4章 数据库管理
第4章 数据库管理第4章 数据库管理
第4章 数据库管理
zhang shuren
?
Oracle试题Exam Adminv1.1
Oracle试题Exam Adminv1.1Oracle试题Exam Adminv1.1
Oracle试题Exam Adminv1.1
Zianed Hou
?
MySQL Replication新功能介绍
MySQL Replication新功能介绍 MySQL Replication新功能介绍
MySQL Replication新功能介绍
orczhou
?
12, OCP - performance tuning
12, OCP - performance tuning12, OCP - performance tuning
12, OCP - performance tuning
ted-xu
?
賽門鐵克 Storage Foundation 6.0 簡報
賽門鐵克 Storage Foundation 6.0 簡報賽門鐵克 Storage Foundation 6.0 簡報
賽門鐵克 Storage Foundation 6.0 簡報
Wales Chen
?
Install Oracle11g For Aix 5 L
Install Oracle11g For Aix 5 LInstall Oracle11g For Aix 5 L
Install Oracle11g For Aix 5 L
heima911
?
无数据库日志文件恢复数据库方法两则
无数据库日志文件恢复数据库方法两则无数据库日志文件恢复数据库方法两则
无数据库日志文件恢复数据库方法两则
wensheng wei
?
Mysql proxy cluster
Mysql proxy clusterMysql proxy cluster
Mysql proxy cluster
Yiwei Ma
?
Oracle enterprise manager cloud control 12c release 5 installation on oracle ...
Oracle enterprise manager cloud control 12c release 5 installation on oracle ...Oracle enterprise manager cloud control 12c release 5 installation on oracle ...
Oracle enterprise manager cloud control 12c release 5 installation on oracle ...
Zhaoyang Wang
?
5, OCP - oracle storage
5, OCP - oracle storage5, OCP - oracle storage
5, OCP - oracle storage
ted-xu
?
深入了解翱谤补肠濒别自动内存管理补蝉尘尘
深入了解翱谤补肠濒别自动内存管理补蝉尘尘深入了解翱谤补肠濒别自动内存管理补蝉尘尘
深入了解翱谤补肠濒别自动内存管理补蝉尘尘
maclean liu
?
Orclrecove 1 pd-prm-dul testing for oracle database recovery_20141030_biot_wang
Orclrecove 1 pd-prm-dul testing for oracle database recovery_20141030_biot_wangOrclrecove 1 pd-prm-dul testing for oracle database recovery_20141030_biot_wang
Orclrecove 1 pd-prm-dul testing for oracle database recovery_20141030_biot_wang
maclean liu
?
叠测辫补迟博客出品-服务器运维集群方法总结2
叠测辫补迟博客出品-服务器运维集群方法总结2叠测辫补迟博客出品-服务器运维集群方法总结2
叠测辫补迟博客出品-服务器运维集群方法总结2
redhat9
?
P6 数据库安装和配置
P6 数据库安装和配置P6 数据库安装和配置
P6 数据库安装和配置
epst
?

More from ted-xu (17)

6, OCP - oracle security
6, OCP - oracle security6, OCP - oracle security
6, OCP - oracle security
ted-xu
?
4, OCP - oracle networking
4, OCP - oracle networking4, OCP - oracle networking
4, OCP - oracle networking
ted-xu
?
7, business event system
7, business event system7, business event system
7, business event system
ted-xu
?
6, workflow miscellaneous
6, workflow miscellaneous6, workflow miscellaneous
6, workflow miscellaneous
ted-xu
?
5, workflow function activity
5, workflow function activity5, workflow function activity
5, workflow function activity
ted-xu
?
4, workflow tables & api
4, workflow tables & api4, workflow tables & api
4, workflow tables & api
ted-xu
?
3, workflow in ebs
3, workflow in ebs3, workflow in ebs
3, workflow in ebs
ted-xu
?
2, a simple workflow
2, a simple workflow2, a simple workflow
2, a simple workflow
ted-xu
?
1, workflow intro
1, workflow intro1, workflow intro
1, workflow intro
ted-xu
?
8, bes tables & api
8, bes tables & api8, bes tables & api
8, bes tables & api
ted-xu
?
OPM Recipe designer notes
OPM Recipe designer notesOPM Recipe designer notes
OPM Recipe designer notes
ted-xu
?
5, sed
5, sed5, sed
5, sed
ted-xu
?
4, grep
4, grep4, grep
4, grep
ted-xu
?
3, regular expression
3, regular expression3, regular expression
3, regular expression
ted-xu
?
1, shell intro
1, shell intro1, shell intro
1, shell intro
ted-xu
?
6, awk
6, awk6, awk
6, awk
ted-xu
?
6, vim
6, vim6, vim
6, vim
ted-xu
?
6, OCP - oracle security
6, OCP - oracle security6, OCP - oracle security
6, OCP - oracle security
ted-xu
?
4, OCP - oracle networking
4, OCP - oracle networking4, OCP - oracle networking
4, OCP - oracle networking
ted-xu
?
7, business event system
7, business event system7, business event system
7, business event system
ted-xu
?
6, workflow miscellaneous
6, workflow miscellaneous6, workflow miscellaneous
6, workflow miscellaneous
ted-xu
?
5, workflow function activity
5, workflow function activity5, workflow function activity
5, workflow function activity
ted-xu
?
4, workflow tables & api
4, workflow tables & api4, workflow tables & api
4, workflow tables & api
ted-xu
?
3, workflow in ebs
3, workflow in ebs3, workflow in ebs
3, workflow in ebs
ted-xu
?
2, a simple workflow
2, a simple workflow2, a simple workflow
2, a simple workflow
ted-xu
?
1, workflow intro
1, workflow intro1, workflow intro
1, workflow intro
ted-xu
?
8, bes tables & api
8, bes tables & api8, bes tables & api
8, bes tables & api
ted-xu
?
OPM Recipe designer notes
OPM Recipe designer notesOPM Recipe designer notes
OPM Recipe designer notes
ted-xu
?
3, regular expression
3, regular expression3, regular expression
3, regular expression
ted-xu
?
1, shell intro
1, shell intro1, shell intro
1, shell intro
ted-xu
?

9, OCP - restore and recovery with rman

  • 2. Overview ? 前面介绍了RMAN的备份, 这一章的主题是使用 RMAN进行还原(restore)和恢复(recovery)操作. 还 原指的是从某个备份中还原整个文件, 恢复指的 是应用重做日志, 将数据恢复到最新的状态. 本章 包含以下内容: – 数据恢复顾问(DRA, Data Recovery Advisor) – 使用DRA进行数据库恢复 – 对数据文件丢失执行完全恢复 – 执行不完全恢复 – 使用增量备份执行恢复 – 执行基于镜像备份的快速恢复 – 使用控制文件备份进行恢复 – 执行介质恢复(Block Media Recovery)
  • 3. Data Recovery Advisor ? DRA用于诊断与数据库恢复相关的问题, 它能够生成相应的脚本对 数据文件和控制文件进行修复, 可以通过RMAN或者database control 调用DRA. DRA依赖于Health Monitor和Automatic diagnostic repository (ADR). ? Health Monitor & ADR HM用于执行预定义的检查(自动执行或者由DBA手动执行)并将检查 的结果存放在指定的文件系统目录中, 目录的位置由数据库参数 DIAGNOSTIC_DEST参数指定. 该目录就被称为ADR. 不同的HM检查在 不同的数据库运行阶段被执行: – 在nomount阶段, 只有”db structure integrity”检查能够执行, 它用于检查 控制文件的完整性; – 在mount阶段, ”db structure integrity”用于检查控制文件、在线重做日 志文件以及数据文件的完整性; “redo integrity check”检查在线重做日志 和归档日志的可访问性和是否有损坏; – 在open阶段, 可以运行相应的检查扫描数据文件发现是否有坏块, 检查 数据字典和回滚段的完整性. 当数据库处于open状态时, 可以通过DMBS_HM接口或者database control调用HM检查, 路径Advisor Central -> Checkers.
  • 4. Data Recovery Advisor - Capabilities & Limitations ? DRA可以提供下面的功能: – 当数据库处在nomount阶段, DRA可以诊断控制文件是否有问题, 并生成相应的修复脚本; – 当数据库处在mount阶段, DRA检查与数据文件、在线重做日志文件相关的问题, 并生成相应的 修复脚本. Tip: DRA只能使用在单实例的情况, 不能使用在RAC环境. ? DRA Exercise -- 登录RMAN并备份sysaux表空间, 之后关闭数据库 rman target /; backup as backupset tablespace sysaux; shutdown immediate; -- 使用操作系统命令删除sysaux表空间文件 mv sysaux01.dbf sysaux01.dbf.bak -- 启动数据库, 在mount阶段出现错误 startup; -- 登录rman使用DRA查看错误并修复 rman target /; list failure; -- 指出sysaux表空间文件丢失 advise failure; -- 生成修复脚本, 并指明脚本的位置. 该脚本包含如下RMAN指令: restore datafile 2; recover datafile 2;
  • 5. Data Recovery Advisor - DRA in Action ? DRA使用HM收集的信息发现问题, 并生成RMAN脚本, 按照如下方式使用DRA: – 运行HM检查收集错误信息, 比如在启动数据库时会自动运 行HM; – 列出错误, 在RMAN中运行命令list failure列出错误; – 生成错误建议, 在RMAN中运行命令advise failure; – 执行RMAN脚本进行修复. 可以通过手动执行修复脚本中的 命令或者直接运行命令repair failure. 可以通过RMAN交互式命令行执行DRA或者使用 database control图形界面进行操作, 接下来演示使用 后者.
  • 6. Data Recovery Advisor - DRA in Action 启动之后数据库处在mount阶段, 此时登录em将显示perform recovery按钮, 点击. 点击Advise and Recover按钮生成 RMAN修复脚本. 点击执行RMAN脚本.
  • 7. Database Restore & Recovery ? 对于oracle数据库而言有的文件是关键的(critical), 另一些文件则是非关键 (non-critical)文件. 关键文件有: – 控制文件的所有拷贝; – SYSTEM表空间的数据文件; – 回滚表空间的数据文件. 非关键文件有: – 在线重做日志文件的多路复用拷贝; – 临时表空间数据文件; – 非SYSTEM表空间和回滚表空间的数据文件. ? 作为一个通用的原则, 对于数据文件的错误应该使用完全修复(complete recovery): 还原数据文件, 并应用重做日志恢复所有数据; 非完全修复 (incomplete recovery)则是将数据文件恢复到过去的某个时间点, 该时间点 之后的数据被丢失. 应该尽量执行完全修复, 但是在某些情况下比如归档日 志丢失则需要执行不完全修复. 执行完全修复的步骤如下: – 将数据文件设置为offline; – 还原数据文件; – 恢复数据文件; – 将数据文件设置为online.
  • 8. Complete Recovery - Data File Loss ? 根据数据库归档模式的设置, 数据文件的修复需要采取不同的动作: – 非归档模式 对整个数据库进行还原, 这会造成大量的数据丢失. 执行下面 的脚本: shutdown abort; startup mount; restore database; alter database open resetlogs; 如果数据库执行了增量备份则需要在还原之后执行下面的命 令应用增量备份: recover database noredo; – 归档模式/non-critical 非关键文件损坏会导致数据库仅部分可用(partial available), 相应的文件被 设置为offline状态而不能被访问. 如果备份是使用RMAN进行的, 那么非关 键文件的修复可以完全自动进行. RMAN会选择最有效的全量备份和增量 备份, 并应用相应的归档日志实现文件的修复. Tip: 如果存在增量备份, 那么RMAN会优先应用这些增量备份而不是使用 归档日志.
  • 9. Complete Recovery - Data File Loss – 归档模式/non-critical 演示非关键数据文件的恢复. ? 创建一个表空间, 并在其中创建一张表; create tablespace noncrit datafile '/opt/oracle/oradata/noncrit.dbf' size 2m; create table ex16(c1 date) tablespace noncrit; insert into ex16 values(sysdate); commit; ? 备份该表空间 backup as backupset tablespace noncrit; ? 使用文本编辑器(vi/notepad)删除数据文件的前几个字节, 这会导致该 数据文件损坏. ? 清空SGA数据块缓存, 之后查询ex16表将出现错误. alter system flush buffer_cache; select * from ex16; sql 'alter database datafile 7 offline'; ? 使用DRA修复数据文件, restore datafile 7; list failure; -- 提示数据文件损坏; recover datafile 7; advise failure; -- 生成RMAN修复脚本 sql 'alter database datafile 7 online'; repair failure; -- 执行数据文件修复
  • 10. Complete Recovery - Data File Loss – 归档模式/critical 关键数据文件的损坏或者丢失会导致实例被立即终 止, 应该使用硬件冗余的手段防止这种问题出现, 比 如使用RAID. 关键数据文件的修复步骤与非关键文件 的基本是相同的, 差别在于: ? 将数据库启动到mount阶段; ? 无需将数据文件offline, 此时数据库实例已经终止.
  • 11. Incomplete Recovery ? 不完全恢复首先将整个数据库还原到某一个时间点, 然后应用自该时间点 开始的部分重做日志, 这意味着有一部分数据被丢失. 通常而言只有在归档 日志文件丢失或者丢失所有的在线重做日志文件时, 才会执行不完全恢复. 另外一种执行部分恢复的理由是, 用户进行了误操作(比如批量更新和删除) 需要将数据库还原到某个时间点. Tip: 对于用户的误操作, oracle提供了一系列的闪回技术, 可以在不执行恢 复的情况下将数据库”闪回”到之前的状态. ? 不完全恢复按照以下四个步骤执行: – 启动数据库到mount阶段; – 还原所有的数据文件; – 恢复数据库到指定的时间点; – 使用reset logs选项打开数据库. 与完全恢复的区别是: – 在丢失非关键文件的情况下, 完全恢复可以在数据库open阶段执行; 不完全恢 复只能在数据库处于mount阶段执行; – 完全恢复只需要处理特定的数据文件(已损坏或者丢失), 不完全恢复则首先需 要对所有的数据文件进行还原. – 非完全恢复仅应用部分重做日志到某个时间点, 完全恢复应用所有. – 非完全恢复使用reset logs选项打开数据库.
  • 12. Incomplete Recovery ? 非完全恢复在执行了数据文件的还原之后, 可以有以下三个选项将 数据库恢复到某个时间点, – 指定时间(until time) 在RMAN中使用”until time”; – 指定SCN(util system change number) 在RMAN中使用”until SCN”; – 指定日志切换序号(util log sequence number). 在RMAN中使用”until SEQUENCE”. 使用RMAN进行不完全恢复, 示例: run {startup mount; set until time = "to_date('27-10-08 10:00:00','dd-mm-yy hh24:mi:ss')"; restore database; recover database; alter database open resetlogs;} 也可以使用如下语法: restore database until time 'sysdate - 7'; recover database until time '27-OCT-08';
  • 13. Controlfile - Autobackup & Restore ? 控制文件对于oracle数据库至关重要, 控制文件的丢失或者损坏会导 致数据库直接崩溃. 另外RMAN也严重依赖于控制文件, 因为RMAN将 所有的备份信息存储在控制文件. 有两种方式可以避免控制文件丢 失导致的灾难性后果, 使用RMAN目录数据库(RMAN catalog database) 或者启用控制文件自动备份, 这里介绍后者. ? 在RMAN中使用如下configure命令开启控制文件的自动备份: configure controlfile autobackup on; 在这种情况下, 每一个RMAN操作都会自动对控制文件和SPFILE进行 备份. 在需要的时候使用如下命令还原控制文件: restore controfile from autobackup; -- nomount phase 如果SPFILE丢失, 首选创建一个包含DB_NAME参数的静态pfile文件, 使用该文件启动实例, 然后再执行以下命令: set dbid 1234567890; -- dbid column of v$database restore spfile from autobackup; -- nomount phase Tip: 以上两个从自动备份中恢复SPFILE和控制文件的命令可以在数 据库处在nomount阶段执行, 其他的RMAN命令均需要数据库处在 mount和open阶段.
  • 14. Using Image Copies for Recovery ? 如果对数据库作了镜像备份(实际上是将数据库文件拷贝至另一个位置, 文件名 会发生变化), 那么应该使用该镜像对数据库进行还原, 这会大大地提高 还原的速度. 使用下面的命令执行镜像备份: backup as copy database; backup as copy datafile 4 format '/u02/df_copies/users.dbf'; 使用如下RMAN脚本将数据文件切换到镜像: run {sql 'alter database datafile 4 offline'; set newname for datafile 4 to '/u02/df_copies/users.dbf'; switch datafile 4; recover datafile 4; sql 'alter database datafile 4 online';} 使用以下命令将整个数据库还原至某个镜像: switch database to copy; 镜像备份的另一个用法是, 首先创建一个镜像然后定时对该镜像应 用增量备份, 这样可以保证该镜像处在较新的状态, 从而大大缩小数 据库修复的时间, 使用下面的脚本: run {backup incremental level 1 for recover of copy with tag 'inc_copy' database; recover copy of database with tag 'inc_copy' ;}
  • 15. Block Recovery - Detection ? 如果数据文件仅仅是少数的数据块(非header部分)被损 坏, 那么该文件仍可以保持可用, 只有在查询需要读取 这些坏块的数据时会提示错误. RMAN可以用于检查数 据文件中的坏块, 并进行修复. ? Detection of Corrupt Blocks RMAN在执行备份时, 如果遇到坏块默认会立即停止备 份并且抛出错误. 可以设置RMAN允许一定的坏块存在, 示例允许最多100个坏数据块: run {set maxcorrupt for datafile 7 to 100; backup datafile 7;} 备份中的坏块信息根据备份类型的不同分别保存在视 图v$backup_corruption和v$copy_corruption中. 另外可 以设置RMAN不检查物理坏块, 如下: backup nochecksum datafile 7;
  • 16. Block Recovery - Block Media Recovery ? RMAN在检测到数据文件坏块时可以执行数据块介质恢复 (BMR), 这样的好处是: 数据文件仍可用并且恢复的时间大大 减少. BMR会使用相应的数据块备份对坏块进行还原, 之后 再应用重做日志. 块恢复必须是完全的. ? 使用如下命令执行坏块的恢复: – 指定单个数据文件的单个数据块进行恢复 block recover datafile 7 block 5; – 指定多个数据文件的多个数据块进行恢复 block recover datafile 7 block 5,6,7 datafile 9 block 21,25; – 使用指定序号或者标签的备份集进行坏块恢复 block recover datafile 7 block 5 from backupset 1093; block recover datafile 7 block 5 from tag monthly_whole; – 修复上一次备份中所有的坏块, 使用至少7天之前的备份 block recover corruption list until time sysdate - 7;
  • 17. END