SlideShare a Scribd company logo
Configure Database
For Backup & Recovery
Overview
• 作为一个DBA, 最重要的职责之一就是保证数据库
  不会丢失数据, oracle适当配置的情况下可以确保
  这一点. 包含以下内容:
 –   确定oracle数据库能承受的失败
 –   实例恢复调优(Instance Recovery Tuning)
 –   检查点, 重做日志文件以及归档重做日志文件
 –   配置数据库归档日志模式
 –   配置多个归档日志存储目录以提供可用性
 –   理解和配置闪回区(flash recovery area)
 –   使用闪回区
MTBF & MTTR & Data Loss
• 关于数据库备份与恢复有下面的两个术语:
 – MTBF
 Max Time Between Failure, 该术语表示数据库故障的发生
 频率, 这个值应该尽可能的大. oracle提供了两种方式实
 现数据库的100%可用性: RAC和高级流(Streams).
 – MTTR
 Max Time to Recover, 此术语表示从数据库故障恢复的时
 间, 应当尽可能地缩小这个值.
• Data Loss
  除了提高MTBF降低MTTR, 数据库管理的另一个目
  标是预防数据丢失. Oracle数据库提供给了Data
  Guard选项实现数据的零丢失率.
Categories of Failures
• 数据库故障可以分为以下类型
 – 语句失败(statement failure)
 SQL语句在执行时有可能会失败, 可分为以下类型:
  • 不合法的数据, 比如违反数据库约束条件;
  • 逻辑错误, 比如死锁;
  • 与数据库存储相关的错误, 比如表空间无法扩展导致数据不
    能被插入;
  • 权限错误, 比如没有表的insert权限.
 – 用户进程失败(user process failure)
 很多原因会导致用户进程失败, 比如用户异常退出/终端
 重启/或者程序错误等. 不管因为什么原因导致用户进程
 失败, PMON进程会负责服务端进程和内存的清理.
Categories of Failures
– 网络错误(network failure)
网络错误有可能发生在数据库监听器, 网络接口, 以
及路由. 理想情况下应当为数据库所在的服务器配置
至少两个网卡并分别创建数据库监听器.
– 用户错误(user errors)
常见的用户错误是某些误操作, 比如执行不带where条件的
update或者delete语句并提交.
Tip: 执行DDL语句会导致当前会话被提交.
– 介质故障(Media Failure)
介质故障是所有数据库故障中最为棘手的, 通常指的是操作
系统磁盘硬件故障或者误删除了数据库文件(比如使用rm命
令). 为了预防介质故障, 需要:
 • 对控制文件, 在线重做日志文件, 归档日志文件做多个拷贝;
 • 备份控制文件, 数据文件以及归档日志文件
Categories of Failures
– 实例故障(instance failure)
实例故障指的是实例的异常关闭, 常被描述为实例崩
溃(crash), 出现的原因可能是断点/重启服务器/或者
一些严重的硬件异常. 另外shutdown abort命令也会
导致实例故障.
当实例故障发生时, 某些已提交的事务可能没有写入
数据文件, 而另外一些未提交事务则可能被写入, 这
导致数据库处在一种不一致的(inconsistent)状态.
实例故障不会导致数据库不可用, 系统会自动进行实
例恢复操作, 重做日志文件是其中的关键.
Instance Recovery
• 当数据库存在不一致性(inconsistency)时, 系统将会自动检测到并进
  行实例恢复. 实例恢复的本质是通过重做日志文件, 将数据缓冲区恢
  复到实例崩溃之前的状态. 实例恢复完全是自动进行的.
• Mechanics
  实例恢复分为以下步骤:
  – roll forward
  这一步读取并执行重做日志, 将实例崩溃时未写入磁盘的内存块在内存中
  进行重建. 这些内存块包括数据块(data block)和回滚块(undo block).
  Tip: 在此操作之后, 虽然数据库仍然处在不一致的状态, 但此时应当允许
       用户登录.
  – rollback
  此时数据库(文件)中可能包含未提交的事务, 系统在此阶段将执行rollback
  操作以回滚这些事务.
  Tip: 实例恢复由startup命令在启动数据库时执行, 由SMON进程进行.
Instance Recovery
               - Tuning
• 虽然实例恢复机制保证了数据库不会因为崩溃而不可用, 但
  是实例恢复有可能会花费大量的时间(可以查看系统告警日
  志文件), 这取决于在实例恢复时重做日志的读取量, 以及执
  行这些重做操作时对数据文件的读写量. 这两者均可以使用
  检查点(checkpoint)进行控制.
• 检查点保证了在该检查点发生时数据库处在一致的状态, 实
  例恢复只需要读取并执行从最近检查点开始的重做日志. 因
  此检查点越新, 那么实例恢复将会越快, 但是这也带来了一个
  问题就是需要执行更多的磁盘IO从而导致系统性能的下降.
• FAST_START_MTTR_TARGET
  此参数用于设置实例恢复的目标时间(单位: 秒), 默认值为0.
  在默认设置下DBWn遵循”尽量执行写操作, 每次尽量少写”的
  原则. 如果设置了非0值, 那么系统将根据该值设置DBWn进程
  的调用频率. 设置该参数的另一个效果是, 如果操作系统有额
  外的空闲资源 (IO/cpu etc.), 那么会尽量利用这些资源更积极
  推动检查点操作(checkpoint auto-turing).
MTTR Advisor
• oracle提供了系统当前进行实例恢复的相关信
  息, 这些信息可以通过Database Control(Advisor
  Central)或者通过v$instance_recovery视图进行
  查询, 该视图比较重要的列如下:
Checkpoint
• 如前所述, 检查点的位置决定了实例恢复时读取重做日志的起始位置. 检查
  点操作分为两种类型:
 – full
 此类型的检查点操作会将所有的脏数据块写入数据库, 11g版本中在两种情况下会
 发生此种类型的检查点操作:
    • 手动检查点, 执行命令alter system checkpoint;
    • shutdown normal|immediate|transactional
 – partial
 在执行某些动作时会导致部分检查点操作, 这些动作包括:
Database Recoverability
                - Controlfile
• 控制文件对于oracle数据库至关重要. 可以通过多路复用
  (multiplex)或者备份(backup)的方式保护控制文件不被丢失.
  Tip: 采用多路复用的方式时, 控制文件最多可以有8份拷贝.
  Tip: 在理想情况下控制文件应当至少保存两份拷贝, 并且分
  别保存在不同的磁盘上面.
• 使用如下步骤实现控制文件的多路复用:
  – 关闭数据库
  – 使用操作系统命令将控制文件移动到指定的位置
  – 修改control_files实例参数以指向这些位置, 如果是pfile则直接修改文
    件, 如果是spfile这将数据库启动至nomount模式执行alter system操
    作, 示例:
    alter system set control_files="/path1/to/file", "/path2/to/file"
      scope=spfile;
  – 关闭(如果需要)并重启数据库.
Database Recoverability
                - Online redo log files
•   丢失当前的重做日志文件组可能会导致数据丢失, 因为实例恢复依赖于这些重
    做日志. 可以使用多路复用的方式保护重做日志文件, 使用至少两个日志组, 每
    个日志组设置至少两个成员(multiplex), 并将每个成员分别放在不同的磁盘上
    面.
•   与控制文件不同的是, 重做日志组的成员丢失或者损坏不会导致数据库崩溃,
    提前是日志组中还有其他的成员可用. 通过v$log和v$logfile视图查看重做日志
    组的相关信息. 示例:
      select group#, sequence#, members, status from v$log;



    sequence# 日志组处在log switch的序号
    status    CURRENT表示当前正在使用的日志组, 如果状态为ACTIVE则表
          示该日志组会被用于实例恢复. INACTIVE表示日志组暂时不被       使
    用.
•   如果使用DBCA创建的数据库, 那么默认会创建3个重做日志组, 但每个组只有一
    个成员, 可以在数据库打开的情况下添加或者删除重做日志组, 修改日志组的
    成员. 示例添加一个日志组成员:
      alter database add logfile member '/path/to/logfile' to group 1;
Database Recoverability
          - Archivelog Mode
• oracle的实例恢复机制确保数据库不会因为崩溃而丢失数据, 如需要在介质
  故障的情况下仍保持数据的完整性, 则需要将数据库设置为归档模式
  (archivelog). 在归档模式下, 每次进行重做日志组的切换时会将重做日志拷
  贝至相应的位置, 这样就记录了数据库所有的变更历史.
• Archiver process
  在归档模式下归档进程ARCn被启动, 默认情况下会启动四个归档进程分别
  为ARC0, ARC1...
• Archive log destination
  通过数据库参数log_archive_dest_n指定归档日志的存放目录, 最多可以指
  定10个目录. 这里采用了多路复用机制, 每个目录下面存储的归档日志内容
  是相同的.
• Archive log file name
  通过数据库参数log_archive_format指定归档日志文件的名称, 可以使用如
  下占位符
  %d              数据库标识符
  %t              线程号
  %r              incarnation number
  %s              日志切换序号
Database Recoverability
                     - Archivelog Mode
•   默认情况下归档模式不被打开, 可以在数据库处在mount阶段时设置归档模式(SYSDBA登录), 需要执
    行如下动作:
    –   设置归档日志目录
        alter system set log_archive_dest_1='location=/opt/oracle/archive1/' scope=spfile;
        alter system set log_archive_dest_2='location=/opt/oracle/archive2/' scope=spfile;
        最多可以设置10个目录, 并保证至少一个在本地磁盘. 每个归档目录可以指定为optional或者
        mandatory, 这与另外一个参数log_archive_min_succeed_dest相关, 示例:
        log_archive_dest_1='location=/u02/orcl/arch1/ mandatory'
        log_archive_dest_2='location=/u03/orcl/arch2/ optional'
        log_archive_dest_3='location=/u03/orcl/arch3/ optional'
        log_archive_min_succeed_dest=2
    –   设置归档日志文件名
        alter system set log_archive_format='arch_%d_%t_%r_%s.log' scope=spfile;
    –   关闭数据库并将数据库启动至mount节点
        shutdown immediate;
        startup mount;
    –   设置归档模式并打开数据库
        alter database archivelog;
        alter database open;
•   可以通过v$database, v$instance等性能视图查看归档模式的相关信息, 比如:
        select log_mode from v$database;
        select archiver from v$instance;
    手动切换日志, 并查看归档文件:
          alter system switch logfile;
          select name from v$archived_log;
Flash Recovery Area
              - Overview
• 闪回区是所有与数据库还原和恢复相关文件的默认存储位
  置, 闪回区可以使文件系统目录也可以是ASM磁盘组. 闪回
  区可以简化与数据库还原和恢复操作相关文件的管理, 默认
  情况下闪回区被禁用, 如果使用DBCA创建数据库则会自动
  启用闪回区.
• Recovery Files
  闪回区可以存储以下文件:
 – Contolfile multiplexed copies
 如果没有指定CONTROL_FILES和DB_CREATE_FILE_DEST参
 数, 会自动在闪回区创建控制文件的拷贝.
 – Online redo log file multiplexed copies
 如果没有指定DB_CREATE_ONLINE_LOG_DEST_N参数, 并且在
 创建数据库(create database)时没有指定重做日志组成员, 将
 会在闪回区创建重做日志文件.
 Tip: 以上两类文件在闪回区会被永久存储, 即不会被自动删除.
Flash Recovery Area
             - Overview
• Recovery Files
  除了闪回日志文件之外, 这些闪回区文件被称为是临时
  的, 它们可以被重置到其它的位置或者被RMAN删除. 可
  以定义相应的规则如果清除这些文件.
 – Archive redo log files
 如果设置归档模式时, 没有指定任何的LOG_ARCHIVE_DEST_n
 参数, 则会自动设置参数LOG_ARCHIVE_DEST_10执行闪回区.
 – RMAN backups
 – RMAN copies
 – CONTROLFILE auto-backups
 – Flashback log files
Flash Recovery Area
             - Configure
• 使用如下两个参数对闪回区进行配置:
 – DB_RECOVERY_FILE_DEST
 指定闪回区的位置, 可以使文件系统目录或者ASM磁盘组.
 – DB_RECOVERY_FILE_DEST_SIZE
  此参数必须先于上一参数进行设置, 用于指定闪回区的
  大小.
• 通过以下视图的IS_RECOVERY_DEST_FILE字段判断文件
  是否为闪回区文件, 这些视图有:
  v$controlfile
  v$logfile
  v$archived_log
  v$backup_piece
Flash Recovery Area
                         - Space Usage
• RMAN用于对闪回区的空间进行管理, 当闪回区空
  间被使用完时, 可以根据规则删除相应的文件拷
  贝和备份. 另外数据库提供了相应的机制实现对
  闪回区的备份.
• 通过视图v$flash_recovery_area_usage查看闪回区
  空间的使用情况, 该视图如下:
 SQL> desc v$flash_recovery_area_usage
 Name                                      Null? Type
 ----------------------------------------- -------- ----------------------------
 FILE_TYPE                                             VARCHAR2(20)
 PERCENT_SPACE_USED                                    NUMBER
 PERCENT_SPACE_RECLAIMABLE                             NUMBER
 NUMBER_OF_FILES                                       NUMBER
 第二, 三列根据当前使用的空间和剩余空间除以参数
 DB_RECOVERY_FILE_DEST_SIZE得到.
Flash Recovery Area
          - Database Control
• Database Control提供了相关的链接用于对闪回
  区进行查询和设置, 通过路径: Home >
  Availability > Recovery Settings导航到相应的页
  面如下:
END

More Related Content

PPTX
3, OCP - instance management
PPTX
9, OCP - restore and recovery with rman
PDF
Oracle Tablespace介紹
PDF
11g新特性streams同步捕获
PDF
Oracle 資料庫檔案介紹
PDF
Mysql企业备份发展及实践
PPT
分区表基础知识培训
PPTX
10, OCP - flashback
3, OCP - instance management
9, OCP - restore and recovery with rman
Oracle Tablespace介紹
11g新特性streams同步捕获
Oracle 資料庫檔案介紹
Mysql企业备份发展及实践
分区表基础知识培训
10, OCP - flashback

What's hot (20)

PDF
Oracle 資料庫建立
PDF
Oracle管理藝術第1章 在Linux作業體統安裝Oracle 11g
PDF
Oracle SGA 介紹
PDF
Oracle使用者安全設定
PDF
TomCat迁移步骤简述以及案例
PDF
Oracle Instance 介紹
PDF
【Ask maclean技术分享】oracle dba技能列表 z
PDF
dbdao.com 汪伟华 my-sql-replication复制高可用配置方案
PDF
A.oracle 查询结果的缓存问题
PDF
【诗檀软件 郭兆伟-技术报告】跨国企业级Oracle数据库备份策略
PDF
配置Oracle 10g 双向流复制
PDF
诗檀软件 Oracle数据块损坏知识
PPTX
5, OCP - oracle storage
PPTX
2, OCP - installing and creating a database
PPTX
1, OCP - architecture intro
PDF
Oracle 索引介紹
PPT
Oracle Data Buffer Cache
PDF
Oracle试题Exam Adminv1.1
PDF
Itpub电子杂志(第五期)
PPTX
IoTDB OptimizeAndCaseStudy
Oracle 資料庫建立
Oracle管理藝術第1章 在Linux作業體統安裝Oracle 11g
Oracle SGA 介紹
Oracle使用者安全設定
TomCat迁移步骤简述以及案例
Oracle Instance 介紹
【Ask maclean技术分享】oracle dba技能列表 z
dbdao.com 汪伟华 my-sql-replication复制高可用配置方案
A.oracle 查询结果的缓存问题
【诗檀软件 郭兆伟-技术报告】跨国企业级Oracle数据库备份策略
配置Oracle 10g 双向流复制
诗檀软件 Oracle数据块损坏知识
5, OCP - oracle storage
2, OCP - installing and creating a database
1, OCP - architecture intro
Oracle 索引介紹
Oracle Data Buffer Cache
Oracle试题Exam Adminv1.1
Itpub电子杂志(第五期)
IoTDB OptimizeAndCaseStudy
Ad

Viewers also liked (16)

PDF
Gable Estates_Sept16
PPTX
CIO Event - Is the IT department dead?
PPTX
6, OCP - oracle security
PDF
Untitled Presentation
PPT
Caso ACA-Comunicación e Imagen-2007
PDF
alzhosaportfolio2 (1)
PPTX
Brandmark Work
PDF
Facts&Figures E-Commerce Paris (FR)
PPTX
Sitemans Geekstipend (uoffisiell)
DOC
שיטות הסתברותיות - תרגול 8
PPTX
Bid Winning Graphics
PDF
INTERNSHIP ON EXPORT-IMPORT PROCEDURES AT MARKS CARGO PRIVATE LIMITED, PUDUCH...
PDF
Triskalia - Plaquette Institutionnelle
PDF
Innovative lesson plan
PPTX
5.(2주제 절삭가공) 구체적으로 추진하는 원가절감 수법
PDF
Template transfer or change of ownership – no objection letter - mobile number
Gable Estates_Sept16
CIO Event - Is the IT department dead?
6, OCP - oracle security
Untitled Presentation
Caso ACA-Comunicación e Imagen-2007
alzhosaportfolio2 (1)
Brandmark Work
Facts&Figures E-Commerce Paris (FR)
Sitemans Geekstipend (uoffisiell)
שיטות הסתברותיות - תרגול 8
Bid Winning Graphics
INTERNSHIP ON EXPORT-IMPORT PROCEDURES AT MARKS CARGO PRIVATE LIMITED, PUDUCH...
Triskalia - Plaquette Institutionnelle
Innovative lesson plan
5.(2주제 절삭가공) 구체적으로 추진하는 원가절감 수법
Template transfer or change of ownership – no objection letter - mobile number
Ad

Similar to 7, OCP - configure database for backup and recovery (20)

PPTX
8, OCP - backup with rman
PPTX
12, OCP - performance tuning
PPTX
11, OCP - awr & alert system
PDF
Oracle数据库升级前必要的准备工作
PDF
深入了解Oracle自动内存管理asmm
PPTX
4, OCP - oracle networking
PPT
第4章 数据库管理
PDF
Install Oracle11g For Aix 5 L
PPT
数据库性能诊断的七种武器
PDF
【Maclean liu技术分享】开oracle调优鹰眼,深入理解awr性能报告 第二讲 正式版 20130410
PPT
Altibase管理培训 管理篇
PPT
Oracle数据库体系结构简介.ppt
DOC
Mysql Replication
PDF
诗檀软件 Oracle开发优化基础
PPT
Altibase管理培训 优化篇 v1.1
PPT
MySQL Replication新功能介绍
PPT
Oracle北大青鸟完全教程
PPT
Oracle dgha
PPTX
Nosql三步曲
PPTX
4, files & folders
8, OCP - backup with rman
12, OCP - performance tuning
11, OCP - awr & alert system
Oracle数据库升级前必要的准备工作
深入了解Oracle自动内存管理asmm
4, OCP - oracle networking
第4章 数据库管理
Install Oracle11g For Aix 5 L
数据库性能诊断的七种武器
【Maclean liu技术分享】开oracle调优鹰眼,深入理解awr性能报告 第二讲 正式版 20130410
Altibase管理培训 管理篇
Oracle数据库体系结构简介.ppt
Mysql Replication
诗檀软件 Oracle开发优化基础
Altibase管理培训 优化篇 v1.1
MySQL Replication新功能介绍
Oracle北大青鸟完全教程
Oracle dgha
Nosql三步曲
4, files & folders

More from ted-xu (18)

PPTX
7, business event system
PPTX
6, workflow miscellaneous
PPTX
5, workflow function activity
PPTX
4, workflow tables & api
PPTX
3, workflow in ebs
PPTX
2, a simple workflow
PPTX
1, workflow intro
PPTX
8, bes tables & api
DOCX
OPM Recipe designer notes
PPTX
5, sed
PPTX
4, grep
PPTX
3, regular expression
PPTX
2, bash synax simplified
PPTX
1, shell intro
PPTX
6, awk
PPTX
8, lamp
PPTX
6, vim
PPTX
5, system admin
7, business event system
6, workflow miscellaneous
5, workflow function activity
4, workflow tables & api
3, workflow in ebs
2, a simple workflow
1, workflow intro
8, bes tables & api
OPM Recipe designer notes
5, sed
4, grep
3, regular expression
2, bash synax simplified
1, shell intro
6, awk
8, lamp
6, vim
5, system admin

7, OCP - configure database for backup and recovery

  • 2. Overview • 作为一个DBA, 最重要的职责之一就是保证数据库 不会丢失数据, oracle适当配置的情况下可以确保 这一点. 包含以下内容: – 确定oracle数据库能承受的失败 – 实例恢复调优(Instance Recovery Tuning) – 检查点, 重做日志文件以及归档重做日志文件 – 配置数据库归档日志模式 – 配置多个归档日志存储目录以提供可用性 – 理解和配置闪回区(flash recovery area) – 使用闪回区
  • 3. MTBF & MTTR & Data Loss • 关于数据库备份与恢复有下面的两个术语: – MTBF Max Time Between Failure, 该术语表示数据库故障的发生 频率, 这个值应该尽可能的大. oracle提供了两种方式实 现数据库的100%可用性: RAC和高级流(Streams). – MTTR Max Time to Recover, 此术语表示从数据库故障恢复的时 间, 应当尽可能地缩小这个值. • Data Loss 除了提高MTBF降低MTTR, 数据库管理的另一个目 标是预防数据丢失. Oracle数据库提供给了Data Guard选项实现数据的零丢失率.
  • 4. Categories of Failures • 数据库故障可以分为以下类型 – 语句失败(statement failure) SQL语句在执行时有可能会失败, 可分为以下类型: • 不合法的数据, 比如违反数据库约束条件; • 逻辑错误, 比如死锁; • 与数据库存储相关的错误, 比如表空间无法扩展导致数据不 能被插入; • 权限错误, 比如没有表的insert权限. – 用户进程失败(user process failure) 很多原因会导致用户进程失败, 比如用户异常退出/终端 重启/或者程序错误等. 不管因为什么原因导致用户进程 失败, PMON进程会负责服务端进程和内存的清理.
  • 5. Categories of Failures – 网络错误(network failure) 网络错误有可能发生在数据库监听器, 网络接口, 以 及路由. 理想情况下应当为数据库所在的服务器配置 至少两个网卡并分别创建数据库监听器. – 用户错误(user errors) 常见的用户错误是某些误操作, 比如执行不带where条件的 update或者delete语句并提交. Tip: 执行DDL语句会导致当前会话被提交. – 介质故障(Media Failure) 介质故障是所有数据库故障中最为棘手的, 通常指的是操作 系统磁盘硬件故障或者误删除了数据库文件(比如使用rm命 令). 为了预防介质故障, 需要: • 对控制文件, 在线重做日志文件, 归档日志文件做多个拷贝; • 备份控制文件, 数据文件以及归档日志文件
  • 6. Categories of Failures – 实例故障(instance failure) 实例故障指的是实例的异常关闭, 常被描述为实例崩 溃(crash), 出现的原因可能是断点/重启服务器/或者 一些严重的硬件异常. 另外shutdown abort命令也会 导致实例故障. 当实例故障发生时, 某些已提交的事务可能没有写入 数据文件, 而另外一些未提交事务则可能被写入, 这 导致数据库处在一种不一致的(inconsistent)状态. 实例故障不会导致数据库不可用, 系统会自动进行实 例恢复操作, 重做日志文件是其中的关键.
  • 7. Instance Recovery • 当数据库存在不一致性(inconsistency)时, 系统将会自动检测到并进 行实例恢复. 实例恢复的本质是通过重做日志文件, 将数据缓冲区恢 复到实例崩溃之前的状态. 实例恢复完全是自动进行的. • Mechanics 实例恢复分为以下步骤: – roll forward 这一步读取并执行重做日志, 将实例崩溃时未写入磁盘的内存块在内存中 进行重建. 这些内存块包括数据块(data block)和回滚块(undo block). Tip: 在此操作之后, 虽然数据库仍然处在不一致的状态, 但此时应当允许 用户登录. – rollback 此时数据库(文件)中可能包含未提交的事务, 系统在此阶段将执行rollback 操作以回滚这些事务. Tip: 实例恢复由startup命令在启动数据库时执行, 由SMON进程进行.
  • 8. Instance Recovery - Tuning • 虽然实例恢复机制保证了数据库不会因为崩溃而不可用, 但 是实例恢复有可能会花费大量的时间(可以查看系统告警日 志文件), 这取决于在实例恢复时重做日志的读取量, 以及执 行这些重做操作时对数据文件的读写量. 这两者均可以使用 检查点(checkpoint)进行控制. • 检查点保证了在该检查点发生时数据库处在一致的状态, 实 例恢复只需要读取并执行从最近检查点开始的重做日志. 因 此检查点越新, 那么实例恢复将会越快, 但是这也带来了一个 问题就是需要执行更多的磁盘IO从而导致系统性能的下降. • FAST_START_MTTR_TARGET 此参数用于设置实例恢复的目标时间(单位: 秒), 默认值为0. 在默认设置下DBWn遵循”尽量执行写操作, 每次尽量少写”的 原则. 如果设置了非0值, 那么系统将根据该值设置DBWn进程 的调用频率. 设置该参数的另一个效果是, 如果操作系统有额 外的空闲资源 (IO/cpu etc.), 那么会尽量利用这些资源更积极 推动检查点操作(checkpoint auto-turing).
  • 9. MTTR Advisor • oracle提供了系统当前进行实例恢复的相关信 息, 这些信息可以通过Database Control(Advisor Central)或者通过v$instance_recovery视图进行 查询, 该视图比较重要的列如下:
  • 10. Checkpoint • 如前所述, 检查点的位置决定了实例恢复时读取重做日志的起始位置. 检查 点操作分为两种类型: – full 此类型的检查点操作会将所有的脏数据块写入数据库, 11g版本中在两种情况下会 发生此种类型的检查点操作: • 手动检查点, 执行命令alter system checkpoint; • shutdown normal|immediate|transactional – partial 在执行某些动作时会导致部分检查点操作, 这些动作包括:
  • 11. Database Recoverability - Controlfile • 控制文件对于oracle数据库至关重要. 可以通过多路复用 (multiplex)或者备份(backup)的方式保护控制文件不被丢失. Tip: 采用多路复用的方式时, 控制文件最多可以有8份拷贝. Tip: 在理想情况下控制文件应当至少保存两份拷贝, 并且分 别保存在不同的磁盘上面. • 使用如下步骤实现控制文件的多路复用: – 关闭数据库 – 使用操作系统命令将控制文件移动到指定的位置 – 修改control_files实例参数以指向这些位置, 如果是pfile则直接修改文 件, 如果是spfile这将数据库启动至nomount模式执行alter system操 作, 示例: alter system set control_files="/path1/to/file", "/path2/to/file" scope=spfile; – 关闭(如果需要)并重启数据库.
  • 12. Database Recoverability - Online redo log files • 丢失当前的重做日志文件组可能会导致数据丢失, 因为实例恢复依赖于这些重 做日志. 可以使用多路复用的方式保护重做日志文件, 使用至少两个日志组, 每 个日志组设置至少两个成员(multiplex), 并将每个成员分别放在不同的磁盘上 面. • 与控制文件不同的是, 重做日志组的成员丢失或者损坏不会导致数据库崩溃, 提前是日志组中还有其他的成员可用. 通过v$log和v$logfile视图查看重做日志 组的相关信息. 示例: select group#, sequence#, members, status from v$log; sequence# 日志组处在log switch的序号 status CURRENT表示当前正在使用的日志组, 如果状态为ACTIVE则表 示该日志组会被用于实例恢复. INACTIVE表示日志组暂时不被 使 用. • 如果使用DBCA创建的数据库, 那么默认会创建3个重做日志组, 但每个组只有一 个成员, 可以在数据库打开的情况下添加或者删除重做日志组, 修改日志组的 成员. 示例添加一个日志组成员: alter database add logfile member '/path/to/logfile' to group 1;
  • 13. Database Recoverability - Archivelog Mode • oracle的实例恢复机制确保数据库不会因为崩溃而丢失数据, 如需要在介质 故障的情况下仍保持数据的完整性, 则需要将数据库设置为归档模式 (archivelog). 在归档模式下, 每次进行重做日志组的切换时会将重做日志拷 贝至相应的位置, 这样就记录了数据库所有的变更历史. • Archiver process 在归档模式下归档进程ARCn被启动, 默认情况下会启动四个归档进程分别 为ARC0, ARC1... • Archive log destination 通过数据库参数log_archive_dest_n指定归档日志的存放目录, 最多可以指 定10个目录. 这里采用了多路复用机制, 每个目录下面存储的归档日志内容 是相同的. • Archive log file name 通过数据库参数log_archive_format指定归档日志文件的名称, 可以使用如 下占位符 %d 数据库标识符 %t 线程号 %r incarnation number %s 日志切换序号
  • 14. Database Recoverability - Archivelog Mode • 默认情况下归档模式不被打开, 可以在数据库处在mount阶段时设置归档模式(SYSDBA登录), 需要执 行如下动作: – 设置归档日志目录 alter system set log_archive_dest_1='location=/opt/oracle/archive1/' scope=spfile; alter system set log_archive_dest_2='location=/opt/oracle/archive2/' scope=spfile; 最多可以设置10个目录, 并保证至少一个在本地磁盘. 每个归档目录可以指定为optional或者 mandatory, 这与另外一个参数log_archive_min_succeed_dest相关, 示例: log_archive_dest_1='location=/u02/orcl/arch1/ mandatory' log_archive_dest_2='location=/u03/orcl/arch2/ optional' log_archive_dest_3='location=/u03/orcl/arch3/ optional' log_archive_min_succeed_dest=2 – 设置归档日志文件名 alter system set log_archive_format='arch_%d_%t_%r_%s.log' scope=spfile; – 关闭数据库并将数据库启动至mount节点 shutdown immediate; startup mount; – 设置归档模式并打开数据库 alter database archivelog; alter database open; • 可以通过v$database, v$instance等性能视图查看归档模式的相关信息, 比如: select log_mode from v$database; select archiver from v$instance; 手动切换日志, 并查看归档文件: alter system switch logfile; select name from v$archived_log;
  • 15. Flash Recovery Area - Overview • 闪回区是所有与数据库还原和恢复相关文件的默认存储位 置, 闪回区可以使文件系统目录也可以是ASM磁盘组. 闪回 区可以简化与数据库还原和恢复操作相关文件的管理, 默认 情况下闪回区被禁用, 如果使用DBCA创建数据库则会自动 启用闪回区. • Recovery Files 闪回区可以存储以下文件: – Contolfile multiplexed copies 如果没有指定CONTROL_FILES和DB_CREATE_FILE_DEST参 数, 会自动在闪回区创建控制文件的拷贝. – Online redo log file multiplexed copies 如果没有指定DB_CREATE_ONLINE_LOG_DEST_N参数, 并且在 创建数据库(create database)时没有指定重做日志组成员, 将 会在闪回区创建重做日志文件. Tip: 以上两类文件在闪回区会被永久存储, 即不会被自动删除.
  • 16. Flash Recovery Area - Overview • Recovery Files 除了闪回日志文件之外, 这些闪回区文件被称为是临时 的, 它们可以被重置到其它的位置或者被RMAN删除. 可 以定义相应的规则如果清除这些文件. – Archive redo log files 如果设置归档模式时, 没有指定任何的LOG_ARCHIVE_DEST_n 参数, 则会自动设置参数LOG_ARCHIVE_DEST_10执行闪回区. – RMAN backups – RMAN copies – CONTROLFILE auto-backups – Flashback log files
  • 17. Flash Recovery Area - Configure • 使用如下两个参数对闪回区进行配置: – DB_RECOVERY_FILE_DEST 指定闪回区的位置, 可以使文件系统目录或者ASM磁盘组. – DB_RECOVERY_FILE_DEST_SIZE 此参数必须先于上一参数进行设置, 用于指定闪回区的 大小. • 通过以下视图的IS_RECOVERY_DEST_FILE字段判断文件 是否为闪回区文件, 这些视图有: v$controlfile v$logfile v$archived_log v$backup_piece
  • 18. Flash Recovery Area - Space Usage • RMAN用于对闪回区的空间进行管理, 当闪回区空 间被使用完时, 可以根据规则删除相应的文件拷 贝和备份. 另外数据库提供了相应的机制实现对 闪回区的备份. • 通过视图v$flash_recovery_area_usage查看闪回区 空间的使用情况, 该视图如下: SQL> desc v$flash_recovery_area_usage Name Null? Type ----------------------------------------- -------- ---------------------------- FILE_TYPE VARCHAR2(20) PERCENT_SPACE_USED NUMBER PERCENT_SPACE_RECLAIMABLE NUMBER NUMBER_OF_FILES NUMBER 第二, 三列根据当前使用的空间和剩余空间除以参数 DB_RECOVERY_FILE_DEST_SIZE得到.
  • 19. Flash Recovery Area - Database Control • Database Control提供了相关的链接用于对闪回 区进行查询和设置, 通过路径: Home > Availability > Recovery Settings导航到相应的页 面如下:
  • 20. END