Similar documents
说 明 为 了 反 映 教 运 行 的 基 本 状 态, 为 校 和 院 制 定 相 关 政 策 和 进 行 教 建 设 与 改 革 提 供 据 依 据, 校 从 程 资 源 ( 开 类 别 开 量 规 模 ) 教 师 结 构 程 考 核 等 维 度, 对 2015 年 春 季 期 教 运 行 基

<433A5C446F63756D656E E E67735C41646D696E F725CD7C0C3E65CC2DBCEC4CFB5CDB3CAB9D3C3D6B8C4CFA3A8BCF2BBAFA3A95CCAB9D3C3D6B8C4CF31302D31392E646F63>

何 秋 琳 张 立 春 视 觉 学 习 研 究 进 展 视 觉 注 意 视 觉 感 知

修改版-操作手册.doc

I

0 年 上 半 年 评 价 与 考 核 细 则 序 号 部 门 要 素 值 考 核 内 容 考 核 方 式 考 核 标 准 考 核 ( 扣 原 因 ) 考 评 得 3 安 全 生 产 目 30 无 同 等 责 任 以 上 道 路 交 通 亡 人 事 故 无 轻 伤 责 任 事 故 无 重 大 质 量

评 委 : 李 炎 斌 - 个 人 技 术 标 资 信 标 初 步 审 查 明 细 表 序 号 投 标 单 位 投 标 函 未 按 招 标 文 件 规 定 填 写 漏 填 或 内 容 填 写 错 误 的 ; 不 同 投 标 人 的 投 标 文 件 由 同 一 台 电 脑 或 同 一 家 投 标 单

18 上 报 该 学 期 新 生 数 据 至 阳 光 平 台 第 一 学 期 第 四 周 至 第 六 周 19 督 促 学 习 中 心 提 交 新 增 专 业 申 请 第 一 学 期 第 四 周 至 第 八 周 20 编 制 全 国 网 络 统 考 十 二 月 批 次 考 前 模 拟 题 第 一 学


抗 战 时 期 国 民 政 府 的 银 行 监 理 体 制 探 析 % # % % % ) % % # # + #, ) +, % % % % % % % %

,,,,, :,, (.,, );, (, : ), (.., ;. &., ;.. &.., ;, ;, ),,,,,,, ( ) ( ),,,,.,,,,,, : ;, ;,.,,,,, (., : - ),,,, ( ),,,, (, : ),, :,

龚 亚 夫 在 重 新 思 考 基 础 教 育 英 语 教 学 的 理 念 一 文 中 援 引 的 观 点 认 为 当 跳 出 本 族 语 主 义 的 思 维 定 式 后 需 要 重 新 思 考 许 多 相 连 带 的 问 题 比 如 许 多 发 音 的 细 微 区 别 并 不 影 响 理 解 和


《C语言基础入门》课程教学大纲

深圳市新亚电子制程股份有限公司

Microsoft Word - 第7章 图表反转形态.doc

( ) 信 号 与 系 统 Ⅰ 学 科 基 础 必 修 课 教 周 2016 年 06 月 13 日 (08:00-09:35) ( )

评 委 : 徐 岩 宇 - 个 人 技 术 标 资 信 标 初 步 审 查 明 细 表 序 号 投 标 单 位 投 标 函 未 按 招 标 文 件 规 定 填 写 漏 填 或 内 容 填 写 错 误 的 ; 不 同 投 标 人 的 投 标 文 件 由 同 一 台 电 脑 或 同 一 家 投 标 单

¹ º ¹ º 农 业 流 动 人 口 是 指 户 口 性 质 为 农 业 户 口 在 流 入 地 城 市 工 作 生 活 居 住 一 个 月 及 以 上 的 流 动 人 口 非 农 流 动 人 口 是 指 户 口 性 质 为 非 农 户 口 在 流 入 地 城 市 工 作 生 活 居 住 一 个

<4D F736F F D D323630D6D0B9FAD3A6B6D4C6F8BAF2B1E4BBAFB5C4D5FEB2DFD3EBD0D0B6AF C4EAB6C8B1A8B8E6>

一 公 共 卫 生 硕 士 专 业 学 位 论 文 的 概 述 学 位 论 文 是 对 研 究 生 进 行 科 学 研 究 或 承 担 专 门 技 术 工 作 的 全 面 训 练, 是 培 养 研 究 生 创 新 能 力, 综 合 运 用 所 学 知 识 发 现 问 题, 分 析 问 题 和 解 决

全国建筑市场注册执业人员不良行为记录认定标准(试行).doc

目 录 关 于 图 标... 3 登 陆 主 界 面... 3 工 单 管 理... 5 工 单 列 表... 5 搜 索 工 单... 5 工 单 详 情... 6 创 建 工 单... 9 设 备 管 理 巡 检 计 划 查 询 详 情 销 售 管

2006年顺德区高中阶段学校招生录取分数线

采 取 行 动 的 机 会 90% 开 拓 成 功 的 道 路 2

一 从 分 封 制 到 郡 县 制 一 从 打 虎 亭 汉 墓 说 起

Microsoft Word - 文件汇编.doc

金 不 少 于 800 万 元, 净 资 产 不 少 于 960 万 元 ; (3) 近 五 年 独 立 承 担 过 单 项 合 同 额 不 少 于 1000 万 元 的 智 能 化 工 程 ( 设 计 或 施 工 或 设 计 施 工 一 体 ) 不 少 于 2 项 ; (4) 近 三 年 每 年

HSK( 一 级 ) 考 查 考 生 的 日 常 汉 语 应 用 能 力, 它 对 应 于 国 际 汉 语 能 力 标 准 一 级 欧 洲 语 言 共 同 参 考 框 架 (CEF) A1 级 通 过 HSK( 一 级 ) 的 考 生 可 以 理 解 并 使 用 一 些 非 常 简 单 的 汉 语

<4D F736F F D20B9D8D3DAB0BABBAAA3A8C9CFBAA3A3A9D7D4B6AFBBAFB9A4B3CCB9C9B7DDD3D0CFDEB9ABCBBE C4EAC4EAB6C8B9C9B6ABB4F3BBE1B7A8C2C9D2E2BCFBCAE92E646F6378>

3 月 30 日 在 中 国 证 券 报 上 海 证 券 报 证 券 时 报 证 券 日 报 和 上 海 证 券 交 易 所 网 站 上 发 出 召 开 本 次 股 东 大 会 公 告, 该 公 告 中 载 明 了 召 开 股 东 大 会 的 日 期 网 络 投 票 的 方 式 时 间 以 及 审

<433A5C C6B73625C B746F705CB9FABCCAD6D0D2BDD2A9D7A8D2B5B8DFBCB6BCBCCAF5D6B0B3C6C6C0C9F3C9EAC7EBD6B8C4CFA3A CDA8D3C3B0E6A3A92E646F63>

一 开 放 性 的 政 策 与 法 规 二 两 岸 共 同 的 文 化 传 承 三 两 岸 高 校 各 自 具 有 专 业 优 势 远 见 杂 志 年 月 日


登录、注册功能的测试用例设计.doc

2014年中央财经大学研究生招生录取工作简报

 编号:

马 克 思 主 义 公 正 观 的 基 本 向 度 及 方 法 论 原 则!! # #

随着执业中医师资格考试制度的不断完善,本着为我校中医学专业认证服务的目的,本文通过对我校中医类毕业生参加2012年和2013年的中医执业医师考试成绩及通过率、掌握率进行分析,并与全国的平均水平进行差异比较分析,以此了解我校执业中医师考试的现状,进而反映我校中医类课程总体教学水平,发现考核知识模块教学中存在的不足,反馈给相关学院和教学管理部门,以此提高教学和管理水平。

中 国 软 科 学 年 第 期!!!

名 称 生 命 科 学 学 院 环 境 科 学 1 生 物 学 仅 接 收 院 内 调 剂, 初 试 分 数 满 足 我 院 生 物 学 复 试 最 低 分 数 线 生 命 科 学 学 院 生 态 学 5 生 态 学 或 生 物 学 生 命 科 学 学 院

课程类 别

世华财讯模拟操作手册

Template BR_Rec_2005.dot

黄 金 原 油 总 持 仓 增 长, 同 比 增 幅 分 别 为 4.2% 和 4.1% 而 铜 白 银 以 及 玉 米 则 出 现 减 持, 减 持 同 比 减 少 分 别 为 9.4%,9.4% 以 及 6.5% 大 豆, 豆 粕 结 束 连 续 4 周 总 持 仓 量 增 长, 出 现 小 幅

珠江钢琴股东大会

第 六 章 债 券 股 票 价 值 评 估 1 考 点 一 : 债 券 价 值 的 影 响 因 素 2

工 程 勘 察 资 质 标 准 根 据 建 设 工 程 勘 察 设 计 管 理 条 例 和 建 设 工 程 勘 察 设 计 资 质 管 理 规 定, 制 定 本 标 准 一 总 则 ( 一 ) 本 标 准 包 括 工 程 勘 察 相 应 专 业 类 型 主 要 专 业 技 术 人 员 配 备 技 术

合 并 计 算 配 售 对 象 持 有 多 个 证 券 账 户 的, 多 个 证 券 账 户 市 值 合 并 计 算 确 认 多 个 证 券 账 户 为 同 一 配 售 对 象 持 有 的 原 则 为 证 券 账 户 注 册 资 料 中 的 账 户 持 有 人 名 称 有 效 身 份 证 明 文 件

( 二 ) 现 行 统 一 高 考 制 度 不 利 于 培 养 人 的 创 新 精 神,,,,,,,,,,,,, [ ],,,,,,,,,,, :, ;,,,,,,? ( 三 ) 现 行 统 一 高 考 制 度 不 利 于 全 体 学 生 都 获 得 全 面 发 展,, [ ],,,,,,,,,,,

附件1:

附 件 : 上 海 市 建 筑 施 工 企 业 施 工 现 场 项 目 管 理 机 构 关 键 岗 位 人 员 配 备 指 南 二 一 四 年 九 月 十 一 日 2

目 录 一 系 统 访 问... 1 二 门 户 首 页 申 报 用 户 审 核 用 户... 2 三 系 统 登 录 用 户 名 密 码 登 录 新 用 户 注 册 用 户 登 录 已 注 册 用

3 复 试 如 何 准 备 4 复 试 成 绩 计 算 5 复 试 比 例 6 复 试 类 型 7 怎 么 样 面 对 各 种 复 试 04 05

正 规 培 训 达 规 定 标 准 学 时 数, 并 取 得 结 业 证 书 二 级 可 编 程 师 ( 具 备 以 下 条 件 之 一 者 ) (1) 连 续 从 事 本 职 业 工 作 13 年 以 上 (2) 取 得 本 职 业 三 级 职 业 资 格 证 书 后, 连 续 从 事 本 职 业

三门峡市质量技术监督局清单公示

21 业 余 制 -- 高 起 专 (12 级 ) 75 元 / 学 分 网 络 学 院 学 生 沪 教 委 财 (2005)49 号 江 西 化 校 工 科 22 业 余 制 -- 高 起 专 (12 级 ) 70 元 / 学 分 网 络 学 院 学 生 沪 教 委 财 (2005)49 号 吉

上证指数

第2章 数据类型、常量与变量

徐天宏:《基因天堂》.doc

ETF、分级基金规模、份额变化统计

Microsoft Word - 工业品封面.doc

新, 各 地 各 部 门 ( 单 位 ) 各 文 化 事 业 单 位 要 高 度 重 视, 切 实 加 强 领 导, 精 心 组 织 实 施 要 根 据 事 业 单 位 岗 位 设 置 管 理 的 规 定 和 要 求, 在 深 入 调 查 研 究 广 泛 听 取 意 见 的 基 础 上, 研 究 提

<4D F736F F D20BFC9B1E0B3CCD0F2BFD8D6C6CFB5CDB3C9E8BCC6CAA6B9FABCD2D6B0D2B5B1EAD7BC2E646F63>

第 一 部 分 MagiCAD for Revit 安 装 流 程


云信Linux SSH认证代理用户手册

01

!!!!!

Microsoft Word - 资料分析练习题09.doc

自 服 务 按 钮 无 法 访 问 新 系 统 的 自 服 务 页 面 因 此 建 议 用 户 从 信 网 中 心 ( 主 页, 右 下 角 位 置 的 常 用 下 载, 或 校 园 网 用 户 自 服 务 ( 首 页

抗 日 战 争 研 究! 年 第 期 # # # # #!!!!!!!! #!!



收 入 支 出 项 目 2016 年 预 算 项 目 2016 年 预 算 预 算 01 表 单 位 : 万 元 ( 保 留 两 位 小 数 ) 一 公 共 财 政 预 算 拨 款 一 人 员 经 费 一 般 财 力 人 员 支 出 成 品

<4D F736F F D20C6F3D2B5C5E0D1B5CAA6B9FABCD2D6B0D2B5B1EAD7BC2E646F63>

西 南 民 族 学 院 学 报 哲 学 社 会 科 学 版 第 卷 资 料 来 源 中 国 统 计 年 鉴 年 年 新 中 国 五 十 年 统 计 资 料 汇 编 中 国 人 口 统 计 年 鉴 年 数 据 资 料 来 源 中 国 统 计 年 鉴 中 国 统 计 出 版 社 年 版 资 料 来 源

境 外 上 市 外 资 股 股 东 持 有 股 份 总 数 (H 股 ) 489,157,907 3 出 席 会 议 的 股 东 所 持 有 表 决 权 股 份 数 占 公 司 有 表 决 权 股 份 总 数 的 其 中 :A 股 股 东 持 股 占 股 份 总 数 的

伊 犁 师 范 学 院 611 语 言 学 概 论 全 套 考 研 资 料 <2016 年 最 新 考 研 资 料 > 2-2 语 言 学 纲 要 笔 记, 由 考 取 本 校 本 专 业 高 分 研 究 生 总 结 而 来, 重 点 突 出, 借 助 此 笔 记 可 以 大 大 提 高 复 习 效


Cybozu Garoon 3 管理员手册

际 联 考 的 非 美 术 类 本 科, 提 前 批 本 科 体 育 类 第 一 批 第 二 批 第 三 批 的 理 工 类 和 文 史 类 本 科 平 行 志 愿, 考 生 可 以 填 报 6 所 院 校 志 愿 符 合 贫 困 地 区 专 项 计 划 和 农 村 考 生 专 项 计 划 报 考

证券代码: 证券简称:长城电脑 公告编号:

<443A5C6D B5C30312EB9A4D7F7CEC4B5B55C30322EBACFCDACCEC4B5B55C C30342EC8CBC9E7CCFC5C31332ECFEEC4BFC5E0D1B55C E30385C322EB2D9D7F7CAD6B2E12E646F63>

微软用户

公 开 刊 物 须 有 国 内 统 一 刊 (CN), 发 表 文 章 的 刊 物 需 要 在 国 家 新 闻 出 版 广 电 总 局 ( 办 事 服 务 便 民 查 询 新 闻 出 版 机 构 查 询 ) 上 能 够 查 到 刊 凡 在 有 中 国 标 准 书 公 开

教师上报成绩流程图

Transcription:

Oracle Database 11g RMAN 备 份 与 恢 复 ( 美 ) Robert G. Freeman Matthew Hart 王 念 滨 陈 子 阳 著 译 北 京

Robert G. Freeman, Matthew Hart Oracle RMAN 11g Backup and Recovery EISBN:978-0-07-162860-0 Copyright 2010 by The McGraw-Hill Companies, Inc. All Rights reserved. No part of this publication may be reproduced or transmitted in any form or by any means, electronic or mechanical, including without limitation photocopying, recording, taping, or any database, information or retrieval system, without the prior written permission of the publisher. This authorized Chinese translation is jointly published by McGraw-Hill Education (Asia) and Tsinghua University Press. This edition is authorized for sale in the People's Republic of China only, excluding Hong Kong, Macao SAR and Taiwan. Copyright 2011 by McGraw-Hill Education (Asia), a division of the Singapore Branch of The McGraw-Hill Companies, Inc. and Tsinghua University Press. 版 权 所 有 未 经 出 版 人 事 先 书 面 许 可, 对 本 出 版 物 的 任 何 部 分 不 得 以 任 何 方 式 或 途 径 复 制 或 传 播, 包 括 但 不 限 于 复 印 录 制 录 音, 或 通 过 任 何 数 据 库 信 息 或 可 检 索 的 系 统 本 授 权 中 文 简 体 字 翻 译 版 由 麦 格 劳 - 希 尔 ( 亚 洲 ) 教 育 出 版 公 司 和 清 华 大 学 出 版 社 合 作 出 版 此 版 本 经 授 权 仅 限 在 中 华 人 民 共 和 国 境 内 ( 不 包 括 香 港 特 别 行 政 区 澳 门 特 别 行 政 区 和 台 湾 ) 销 售 版 权 2011 由 麦 格 劳 - 希 尔 ( 亚 洲 ) 教 育 出 版 公 司 与 清 华 大 学 出 版 社 所 有 北 京 市 版 权 局 著 作 权 合 同 登 记 号 图 字 :01-2010-5500 本 书 封 面 贴 有 McGraw-Hill 公 司 防 伪 标 签, 无 标 签 者 不 得 销 售 版 权 所 有, 侵 权 必 究 侵 权 举 报 电 话 :010-62782989 13701121933 图 书 在 版 编 目 (CIP) 数 据 Oracle Database 11g RMAN 备 份 与 恢 复 /( 美 ) 弗 里 曼 (Freeman, R. G. ),( 美 ) 哈 特 (Hart, M. ) 著 ; 王 念 滨, 陈 子 阳 译. 北 京 : 清 华 大 学 出 版 社,2011.4 书 名 原 文 :Oracle RMAN 11g Backup and Recovery ISBN 978-7-302-24645-9 Ⅰ. O Ⅱ. 1 弗 2 哈 3 王 4 陈 Ⅲ. 关 系 数 据 库 - 数 据 库 管 理 系 统,Oracle 11g Ⅳ. TP311.138 中 国 版 本 图 书 馆 CIP 数 据 核 字 (2011) 第 006354 号 责 任 编 辑 : 王 军 梅 丹 装 帧 设 计 : 孔 祥 丰 责 任 校 对 : 胡 雁 翎 责 任 印 制 : 出 版 发 行 : 清 华 大 学 出 版 社 地 址 : 北 京 清 华 大 学 学 研 大 厦 A 座 http://www.tup.com.cn 邮 编 :100084 社 总 机 :010-62770175 邮 购 :010-62786544 投 稿 与 读 者 服 务 :010-62776969,c-service@tup.tsinghua.edu.cn 质 量 反 馈 :010-62772015,zhiliang@tup.tsinghua.edu.cn 印 刷 者 : 装 订 者 : 经 销 : 全 国 新 华 书 店 开 本 :185 260 印 张 :39.25 字 数 :907 千 字 版 次 :2011 年 4 月 第 1 版 印 次 :2011 年 4 月 第 1 次 印 刷 印 数 :1~4000 定 价 :78.00 元 产 品 编 号 :

本 书 是 关 于 RMAN 备 份 与 恢 复 的 最 新 版 本 Oracle Database 11g 是 值 得 信 赖 的 数 据 库 版 本, 其 RMAN 对 先 前 版 本 进 行 了 改 进, 增 加 了 一 些 新 的 功 能 和 出 色 的 新 特 性 从 Oracle 8 版 本 开 始, 多 年 来 RMAN 不 断 地 进 行 改 进 以 期 获 得 最 佳 的 效 果 0.1 解 决 旧 问 题 和 提 出 新 问 题 在 Oracle 9i RMAN 备 份 与 恢 复 技 术 ( 清 华 大 学 出 版 社 引 进 并 出 版 ) 一 书 中, 我 们 在 前 言 中 提 出 了 如 下 问 题 : 如 何 在 可 用 性 与 可 恢 复 性 之 间 寻 求 平 衡? 然 后 通 过 全 面 介 绍 Oracle 的 备 份 和 恢 复 解 决 方 案, 我 们 回 答 了 这 个 问 题 此 书 的 不 错 销 量 说 明 很 多 人 喜 欢 这 个 答 案 我 们 在 用 户 开 始 真 正 地 采 用 RMAN 作 为 备 份 与 恢 复 解 决 方 案 的 时 候 出 版 了 该 书 籍 随 着 Oracle Database 10g RMAN 备 份 与 恢 复 ( 清 华 大 学 出 版 社 引 进 并 出 版 ) 一 书 的

II Oracle Database 11g RMAN 备 份 与 恢 复 问 世, 我 们 发 现 许 多 读 者 对 RMAN 的 了 解 更 加 深 入 与 此 同 时, 他 们 提 出 了 一 些 更 加 复 杂 的 问 题, 尝 试 掌 握 Oracle Database 10g 提 供 的 所 有 新 特 性 随 着 数 据 库 不 断 发 展, 平 均 恢 复 时 间 成 为 人 们 关 注 的 焦 点,RMAN 成 为 数 据 库 管 理 员 常 用 工 具 集 中 不 可 或 缺 的 重 要 工 具 之 一 Oracle Database 11g 发 布 以 来, 上 述 趋 势 还 在 延 续 目 前 数 据 库 管 理 员 低 估 了 其 复 杂 性, 他 们 正 努 力 跟 上 已 经 出 现 的 变 化 从 网 格 计 算 到 高 可 用 性 以 及 平 均 恢 复 时 间, 问 题 变 得 越 发 复 杂, 解 决 这 些 问 题 也 越 发 困 难 当 然, 我 们 希 望 RMAN 能 够 提 供 解 决 这 些 问 题 的 方 法 RMAN 是 具 有 Oracle 数 据 库 许 可 的 就 是 说 当 数 据 库 安 装 后,RMAN 就 可 以 使 用 ( 初 始 最 小 配 置, 本 书 将 会 深 入 讨 论 这 些 配 置 ) RMAN 可 以 用 于 备 份 最 大 最 小 或 最 复 杂 等 各 种 类 型 的 Oracle 数 据 库 可 以 备 份 设 置 在 小 型 服 务 器 上 的 单 实 例 数 据 库, 也 可 以 备 份 设 置 在 多 个 服 务 器 上 的 多 节 点 RAC 集 群 数 据 库 Oracle Database 11g RMAN 仍 然 保 留 了 您 所 熟 悉 的 各 项 功 能, 同 时 提 供 了 大 量 的 新 特 性 以 提 高 其 性 能 0.2 为 DBA 和 系 统 管 理 员 提 供 帮 助 为 Oracle 数 据 库 选 择 稳 定 可 靠 的 备 份 策 略 时, 可 能 出 现 的 最 棘 手 的 问 题 是 : 备 份 策 略 总 是 会 使 数 据 库 管 理 员 和 系 统 管 理 员 的 任 务 出 现 重 叠 制 定 RMAN 的 备 份 策 略 也 存 在 同 样 的 问 题 RMAN 的 备 份 策 略 与 Oracle RDBMS 的 集 成 意 味 着 系 统 管 理 员 必 须 具 备 Oracle 数 据 库 的 实 际 经 验 但 是, 对 外 部 磁 带 存 储 系 统 和 网 络 拓 扑 结 构 的 依 赖 又 使 得 DBA 管 理 网 络 计 算 机 系 统 的 能 力 显 得 非 常 重 要 这 就 引 发 了 职 责 的 分 工, 对 两 边 来 说 都 是 一 个 难 题 此 外, 业 务 需 求 将 模 糊 DBA 和 系 统 管 理 员 的 职 责 范 围 或 者 更 为 准 确 地 说,DBA 会 发 现 他 们 的 工 作 不 断 增 加, 已 经 扩 展 到 要 做 一 些 系 统 管 理 员 的 工 作, 而 系 统 管 理 员 则 会 发 现 要 花 费 更 多 的 时 间 来 学 习 SQL 命 令 本 书 将 解 决 这 种 角 色 上 的 重 叠, 具 体 体 现 在 针 对 数 据 库 备 份 这 个 最 容 易 产 生 角 色 重 叠 的 领 域 提 供 指 导 性 的 建 议 0.3 更 为 优 秀 的 RMAN 从 Oracle 8.0.3 版 本 (Oracle 8 的 第 一 个 产 品 版 本 ) 开 始 引 入 了 RMAN 在 这 之 前, Oracle 提 供 的 直 接 在 磁 带 上 生 成 数 据 流 备 份 的 接 口 使 用 Export 实 用 程 序 进 行 逻 辑 备 份, 或 使 用 Enterprise Backup Utility(EBU) 现 在 已 经 不 再 使 用 EBU, 这 也 是 最 后 一 次 提 及 该 工 具 最 初 的 RMAN 版 本 难 免 有 不 尽 人 意 之 处, 而 且 存 在 不 少 错 误 但 是, 其 后 的 版 本 添 加 了 一 些 新 的 功 能, 修 正 了 软 件 故 障, 并 且 改 进 了 接 口 理 解 RMAN 版 本 演 化 的 最 好 方 法 是 想 象 一 下 演 示 人 类 进 化 过 程 的 传 统 海 报 在 海 报 上 的 左 边, 是 一 只 靠 四 肢 行 走 的 猴

前 言 III 子 稍 往 右 看, 是 一 个 逐 渐 直 立 行 走 的 人, 直 到 最 右 边, 所 看 到 的 是 一 个 完 全 直 立 行 走 的 现 代 人 在 Oracle 9i 版 本 中,RMAN 的 功 能 更 加 完 备, 并 且 已 经 成 为 用 于 高 可 用 性 数 据 库 系 统 的 各 种 重 要 策 略 的 必 要 组 件 现 在,RMAN 已 经 经 历 了 两 个 10g 版 本, 在 功 能 上 不 断 地 改 进 和 完 善, 其 目 标 是 成 为 功 能 完 善 的 可 用 组 件 0.4 本 书 主 要 内 容 本 书 介 绍 了 Oracle Database 11g Release 2 的 最 新 功 能, 帮 助 您 充 分 了 解 RMAN 接 口 的 最 新 功 能, 并 且 说 明 了 所 增 加 的 新 特 性 所 有 代 码 示 例 和 体 系 结 构 说 明 都 基 于 RMAN 的 11g R2 版 本 如 果 您 使 用 的 仍 然 是 Oracle 和 RMAW 早 期 的 版 本 (Oracle 8i,Oracle 9i,Oracle Database 10g), 该 书 仍 然 对 您 有 帮 助, 尽 管 一 些 新 特 性 您 体 验 不 到 显 而 易 见 的 是, 本 书 全 面 介 绍 了 在 Oracle 11g 中 执 行 各 项 操 作 的 方 式, 但 是 没 有 指 出 或 引 用 前 面 版 本 Oracle 9i RMAN 备 份 与 恢 复 或 者 Oracle Database 10g RMAN 备 份 与 恢 复 的 内 容 0.5 更 有 效 地 使 用 本 书 与 其 他 技 术 指 南 一 样, 可 以 通 过 阅 读 本 书 来 熟 悉 RMAN 及 其 在 高 可 用 性 或 灾 难 恢 复 解 决 方 案 中 的 作 用 本 书 采 用 由 简 入 繁 循 序 渐 进 的 方 式, 逐 步 地 讨 论 了 从 基 本 原 则 到 设 置 到 备 份 的 内 容, 最 后 介 绍 了 高 级 功 能 与 各 种 实 习 第 Ⅰ 部 分 介 绍 了 Oracle RDBMS 中 备 份 与 恢 复 的 基 本 原 理, 以 及 RMAN 的 概 念 和 体 系 结 构 该 部 分 的 两 章 内 容 是 其 他 章 节 的 基 础, 我 们 建 议 您 认 真 阅 读 和 理 解 这 些 概 念 如 果 能 够 理 解 该 部 分 中 描 述 的 概 念 和 内 部 运 行 机 制, 就 能 轻 而 易 举 地 理 解 本 书 的 其 余 部 分 第 Ⅱ 部 分 讨 论 了 RMAN 的 初 始 设 置 首 先 介 绍 了 所 有 可 能 的 RMAN 配 置 选 项, 然 后 讨 论 了 RMAN 与 介 质 管 理 器 的 集 成 介 质 管 理 层 允 许 用 户 将 备 份 直 接 写 入 磁 带 设 备 目 前 市 场 上 有 多 种 介 质 管 理 产 品, 该 部 分 将 讨 论 4 种 最 常 用 的 产 品 :Oracle 自 带 的 Secure Backup VERITAS NetBackup EMC NetWorker Module for Oracle, 以 及 IBM Tivoli Storage Manager 第 Ⅲ 部 分 提 供 了 有 关 RMAN 用 法 的 基 础 知 识, 其 范 围 从 最 基 本 的 备 份 操 作 到 最 高 级 的 恢 复 选 项 我 们 将 讨 论 目 录 维 护 和 查 看 目 录 的 方 法, 以 便 更 有 效 地 管 理 不 断 存 储 的 备 份 此 处 将 介 绍 Oracle 中 经 过 重 新 设 计 的 Enterprise Manager 产 品, 并 将 介 绍 如 何 使 用 闪 回 技 术 从 逻 辑 错 误 中 恢 复 最 后, 还 将 讨 论 为 优 化 性 能 对 RMAN 备 份 与 恢 复 进 行 的 调 整 第 Ⅳ 部 分 介 绍 了 备 份 与 恢 复 操 作 外 的 更 高 级 的 功 能, 让 您 了 解 利 用 RMAN 完 成 简 单 备 份 操 作 之 外 能 完 成 的 其 他 任 务 该 部 分 的 内 容 包 括 : 如 果 使 用 RMAN 备 份 生 成 数 据 库

IV Oracle Database 11g RMAN 备 份 与 恢 复 的 克 隆 副 本 和 如 何 使 用 备 份 创 建 Oracle Data Guard 使 用 的 备 用 数 据 库 ; 根 据 特 殊 的 需 求 和 要 求 在 Real Application Clusters(RAC) 环 境 中 使 用 RMAN; 对 一 系 列 RMAN 案 例 的 分 析 深 入 研 究 了 需 要 使 用 RMAN 的 各 种 情 况 第 V 部 分 中 的 附 录 A 包 括 RMAN 语 法 参 考, 可 以 借 助 该 附 录 成 功 地 构 建 RMAN 命 令 ; 附 录 B 探 讨 了 RMAN 目 录, 以 及 数 据 库 中 的 v$ 视 图 和 恢 复 目 录 中 的 rc_* 视 图 ; 附 录 C 详 细 介 绍 了 如 何 设 置 RMAN 测 试 环 境 在 实 现 产 品 备 份 与 恢 复 策 略 前, 您 可 以 使 用 这 个 测 试 环 境 来 测 试 各 种 RMAN 功 能 以 达 到 用 最 少 的 工 作 高 效 率 地 将 该 书 投 入 实 践 操 作 0.6 RMAN 实 践 当 然, 您 可 能 不 会 细 读 书 中 的 所 有 内 容 一 本 优 秀 的 技 术 书 籍 应 该 是 摆 放 在 计 算 机 旁 边, 带 有 折 角 页 重 点 章 节 标 记 和 书 签 标 记, 供 您 随 时 查 阅 除 了 概 念 解 释 外, 本 书 实 际 上 是 一 本 参 考 指 南 我 们 在 书 中 综 合 了 各 种 有 用 的 技 术 和 简 便 的 方 法 即 使 不 熟 悉 RMAN 的 整 个 体 系 结 构, 也 可 以 随 时 运 用 这 些 方 法 有 时 候, 尤 其 是 在 备 份 与 恢 复 操 作 中, 我 们 只 需 要 知 道 该 怎 么 做, 而 不 需 要 知 道 为 什 么 要 这 样 做 因 为 谁 都 不 希 望 被 一 大 堆 恢 复 工 作 和 操 作 语 法 弄 得 焦 头 烂 额, 而 使 得 产 品 数 据 库 处 于 空 闲 状 态, 并 导 致 时 间 和 金 钱 的 白 白 流 失 因 此, 为 了 突 出 重 点, 我 们 在 本 书 中 引 入 了 一 些 RMAN 实 习 的 章 节, 阅 读 过 Oracle 先 前 版 本 的 读 者 应 该 已 经 非 常 熟 悉 这 些 RMAN 实 习 在 这 些 RMAN 实 习 中, 我 们 提 供 了 用 于 执 行 指 定 操 作 的 代 码 或 用 于 完 成 特 定 项 目 的 一 系 列 步 骤, 以 帮 助 您 快 速 完 成 各 种 工 作 我 们 为 RMAN 实 习 添 加 了 灰 色 方 框, 当 您 看 到 这 种 方 框 时, 就 可 以 知 道 下 面 的 页 面 将 介 绍 一 些 实 际 的 步 骤, 遵 循 这 些 步 骤 可 以 快 速 地 完 成 工 作 可 以 将 RMAN 实 习 视 为 食 谱, 它 提 供 了 快 速 做 好 一 顿 饭 所 需 的 各 种 配 料 和 混 合 这 些 配 料 的 说 明 我 们 再 次 建 议 您 逐 章 地 阅 读 本 书 因 为 理 解 产 品 的 概 念 是 最 重 要 的, 特 别 是 用 于 保 护 最 有 价 值 的 数 据 库 的 产 品 总 之,RMAN 是 一 个 值 得 深 入 研 究 和 充 分 利 用 的 产 品, 它 能 够 节 省 您 的 时 间 和 精 力, 并 帮 助 您 解 决 运 行 中 断 压 力 等 各 种 问 题 最 后, 请 将 您 对 本 书 的 建 议 发 送 至 wkservice@vip.163.com, 我 们 将 不 胜 感 激

第 Ⅰ 部 分 Oracle RMAN 11g 基 础 知 识 第 1 章 Oracle Database 11g 备 份 与 恢 复 体 系 结 构 概 述... 3 1.1 备 份 和 恢 复 概 要... 4 1.1.1 高 可 用 性... 5 1.1.2 备 份 和 恢 复... 5 1.2 需 要 掌 握 的 Oracle 术 语... 7 1.3 数 据 库 软 件 的 控 制... 9 1.4 Oracle 体 系 结 构... 11 1.5 Oracle 内 存 和 RMAN... 12 1.6 更 多 关 于 Oracle 重 做 日 志 的 内 容... 16 1.6.1 ARCHIVELOG 模 式 与 NOARCHIVELOG 模 式... 20 1.6.2 Oracle 逻 辑 结 构... 20 1.7 组 合 情 况... 20 1.7.1 数 据 库 的 启 动 和 关 闭... 21 1.7.2 使 用 数 据 库 和 内 核... 23 1.8 Oracle 备 份 与 恢 复 入 门... 25 1.8.1 逻 辑 备 份 与 恢 复... 25 1.8.2 Oracle 物 理 备 份 与 恢 复... 25 1.8.3 备 份 其 他 Oracle 组 件... 30 1.9 小 结... 31

VI Oracle Database 11g RMAN 备 份 与 恢 复 第 2 章 RMAN 体 系 结 构 概 述... 33 2.1 服 务 器 管 理 恢 复... 34 2.2 RMAN 实 用 程 序... 34 2.3 RMAN 备 份 的 网 络 拓 扑 结 构... 36 2.3.1 远 程 运 行 RMAN... 36 2.3.2 在 目 标 数 据 库 的 ORACLE_ HOME 中 本 地 运 行 RMAN... 38 2.4 数 据 库 控 制 文 件... 39 2.4.1 在 控 制 文 件 中 重 用 记 录... 39 2.4.2 快 照 控 制 文 件... 41 2.5 RMAN 服 务 器 进 程... 42 2.5.1 RMAN 信 道 进 程... 42 2.5.2 RMAN 和 I/O 从 属... 43 2.6 RMAN 使 用 的 SYS 数 据 包... 43 2.6.1 SYS.DBMS_RCVMAN 数 据 包... 43 2.6.2 SYS.DBMS_BACKUP_ RESTORE 数 据 包... 43 2.7 备 份 数 据 块... 44 2.7.1 数 据 块 备 份 概 述... 44 2.7.2 块 级 备 份 的 优 点... 45 2.8 内 存 中 的 RMAN... 47 2.8.1 输 入 内 存 缓 冲 区... 47 2.8.2 用 于 还 原 的 内 存 缓 冲 区... 48 2.8.3 RMAN 内 存 利 用 :PGA 与 SGA... 49 2.9 恢 复 目 录... 50 2.10 辅 助 数 据 库... 51 2.11 版 本 兼 容 性... 52 2.11.1 目 标 数 据 库 与 RMAN 可 执 行 文 件... 53 2.11.2 恢 复 目 录 数 据 库 与 恢 复 目 录 模 式... 53 2.11.3 辅 助 数 据 库... 53 2.12 RMAN 进 程... 53 2.13 闪 回 恢 复 区... 56 2.14 小 结... 57 第 Ⅱ 部 分 设 置 原 则 和 实 践 第 3 章 RMAN 设 置 和 配 置... 61 3.1 配 置 数 据 库 以 在 ARCHIVELOG 模 式 中 运 行... 62 3.1.1 ARCHIVELOG 目 标 目 录... 62 3.1.2 闪 回 恢 复 区... 64 3.1.3 是 否 应 该 使 用 FRA... 70 3.1.4 ARCHIVELOG 模 式 之 间 的 切 换... 71 3.1.5 使 用 Oracle 数 据 库 配 置 助 手 创 建 数 据 库... 71 3.2 Oracle Database 11g 故 障 诊 断 基 础 架 构... 73 3.3 RMAN 命 令 行... 75 3.3.1 通 过 RMAN 命 令 行 连 接... 75 3.3.2 RMAN 客 户 端 兼 容 性... 78 3.3.3 使 用 RMAN 的 connect 命 令... 78 3.3.4 退 出 RMAN 客 户 端... 79 3.4 为 RMAN 操 作 配 置 数 据 库... 79 3.4.1 设 置 数 据 库 用 户... 79 3.4.2 设 置 数 据 库 安 全 性... 80 3.4.3 设 置 CONTROL_FILE_ RECORD_KEEP_TIME 参 数... 81 3.5 配 置 RMAN 默 认 设 置... 82 3.5.1 configure 命 令 介 绍... 82 3.5.2 配 置 多 种 RMAN 默 认 设 置... 83 3.5.3 configure 命 令 的 使 用 示 例... 84 3.5.4 使 用 共 享 服 务 器 的 情 况... 95 3.6 RMAN 配 置 任 务 总 结... 95 3.7 其 他 备 份 和 恢 复 设 置 与 配 置 问 题... 96 3.8 小 结... 96 第 4 章 介 质 管 理 问 题... 97 4.1 使 用 磁 带 备 份 的 原 因... 98 4.2 RMAN 和 介 质 管 理 器 概 述... 99 4.2.1 介 质 管 理 器 目 录... 99

目 录 VII 4.2.2 介 质 管 理 器 的 其 他 软 件 组 件... 100 4.2.3 介 质 管 理 库 (MML)... 100 4.2.4 连 接 MML 的 接 口... 102 4.3 SBT API... 103 4.4 磁 带 备 份 的 全 过 程... 104 4.5 磁 带 还 原 的 全 过 程... 104 4.6 使 用 sbttest 和 loadsbt.exe... 105 4.7 介 质 管 理 错 误... 106 4.8 小 结... 107 第 5 章 Oracle 安 全 备 份... 109 5.1 OSB 的 特 性... 110 5.1.1 OSB 和 恢 复 管 理 器... 110 5.1.2 OSB 和 OSB Express 的 区 别... 111 5.1.3 备 份 加 密... 111 5.1.4 快 速 数 据 库 备 份 压 缩... 111 5.1.5 Oracle 安 全 备 份 云 模 块... 111 5.2 OSB 的 接 口... 111 5.3 OSB 的 组 件... 112 5.3.1 OSB 守 护 进 程 (Daemons)... 114 5.3.2 主 机 访 问 模 式... 114 5.3.3 管 理 数 据... 114 5.3.4 OSB 用 户 和 类... 115 5.3.5 操 作 系 统 账 户... 115 5.3.6 NDMP 主 机... 116 5.3.7 OSB 权 限 和 类... 116 5.4 安 装 与 配 置 OSB... 117 5.5 使 用 OSB 备 份 Oracle 数 据 库 及 文 件 系 统 数 据... 128 5.6 使 用 OSB 云 模 块 备 份 数 据 库... 133 5.7 小 结... 136 第 6 章 使 用 OSB 云 模 块 将 数 据 库 备 份 到 Amazon Web 服 务... 137 6.1 传 统 备 份 : 前 提 与 限 制... 138 6.2 OSB 云 模 块... 138 6.3 云 计 算 的 含 义... 138 6.4 Oracle 与 Amazon 云... 139 6.4.1 弹 性 计 算 云 (EC2) 与 弹 性 块 存 储 (EBS)... 139 6.4.2 简 单 存 储 服 务 (S3) Oracle 的 云 备 份 解 决 方 案... 139 6.4.3 RMAN 备 份 到 S3:OSB 云 模 块... 139 6.4.4 通 过 Internet 备 份 或 Amazon EC2 备 份 到 S3... 139 6.5 Oracle 云 备 份 的 优 点... 140 6.6 使 用 OSB 云 模 块 执 行 备 份... 142 6.6.1 列 出 存 储 在 S3 中 的 RMAN 备 份 以 及 备 份 集... 144 6.6.2 通 过 Internet 使 用 OSB 云 模 块 和 Amazon S3 优 化 备 份 与 恢 复... 144 6.7 许 可 问 题... 146 6.8 小 结... 146 第 7 章 使 用 Oracle 的 VERITAS NetBackup 增 强 RMAN... 147 7.1 关 键 特 性... 148 7.2 必 要 的 组 件... 148 7.3 存 储 / 介 质 设 备 配 置... 149 7.4 NetBackup 的 安 装... 149 7.4.1 安 装 NetBackup for Oracle 代 理 之 前 的 任 务... 150 7.4.2 NetBackup for Oracle 代 理 安 装 步 骤... 150 7.5 链 接 Oracle 与 NetBackup 介 质 管 理 器 的 方 法... 151 7.5.1 自 动 链 接 方 法... 151 7.5.2 手 动 链 接 方 法... 152 7.6 体 系 结 构... 153 7.7 配 置 NetBackup 策 略... 154 7.7.1 添 加 新 策 略... 154

VIII Oracle Database 11g RMAN 备 份 与 恢 复 7.7.2 定 义 时 间 表... 157 7.7.3 定 义 备 份 选 项... 159 7.7.4 定 义 策 略 客 户 端... 159 7.8 管 理 到 期 的 备 份 映 像... 160 7.8.1 使 用 NetBackup 存 储 库 删 除 到 期 的 备 份... 160 7.8.2 使 用 RMAN 删 除 到 期 的 备 份... 160 7.9 RMAN 样 本 脚 本... 161 7.10 故 障 诊 断... 162 7.10.1 使 用 NetBackup 日 志... 162 7.10.2 确 定 正 在 使 用 的 库... 163 7.11 维 护 安 全 的 最 佳 方 法... 163 7.12 成 本 调 整... 163 7.13 小 结... 164 第 8 章 配 置 Oracle 的 HP Data Protector... 165 8.1 集 成 Oracle 与 DataProtector... 166 8.1.1 支 持 矩 阵... 166 8.1.2 集 成 组 件... 166 8.2 在 Data Protector 上 配 置 RMAN 备 份... 170 8.3 RMAN 备 份... 174 8.3.1 备 份 方 法... 174 8.3.2 备 份 过 程... 175 8.4 使 用 Data Protector GUI 还 原 Oracle 数 据 库... 175 8.4.1 还 原 控 制 文 件... 176 8.4.2 还 原 Oracle 数 据 库 对 象... 176 8.5 Oracle RMAN 元 数 据 与 Data Protector 介 质 管 理 数 据 库 同 步... 177 8.6 小 结... 178 第 9 章 RMAN 与 Tivoli Storage Manager... 179 9.1 Tivoli Storage Manager 概 述... 180 9.1.1 TSM 服 务 器 系 统 对 象... 181 9.1.2 TSM 客 户 端... 182 9.1.3 TSM Administration Center 和 Web 客 户 端... 183 9.2 使 用 TDPO 完 成 RMAN 备 份... 187 9.3 删 除 数 据 库 备 份... 192 9.4 公 共 备 份 场 景 的 故 障 诊 断... 193 9.5 其 他 故 障 诊 断... 194 9.6 小 结... 195 第 10 章 恢 复 目 录 的 使 用... 197 10.1 恢 复 目 录 的 含 义... 198 10.1.1 创 建 恢 复 目 录... 199 10.1.2 使 用 虚 拟 私 有 目 录... 202 10.2 合 并 多 个 恢 复 目 录... 203 10.3 维 护 恢 复 目 录... 204 10.3.1 取 消 RMAN 中 的 数 据 库 注 册... 204 10.3.2 数 据 库 迁 移 / 升 级 问 题... 205 10.3.3 手 动 重 新 设 置 数 据 库 对 应 物 (reset catalog)... 205 10.3.4 手 动 执 行 恢 复 目 录 的 再 同 步 操 作 (resync catalog)... 205 10.3.5 清 除 恢 复 目 录 记 录... 206 10.4 备 份 恢 复 目 录... 206 10.5 恢 复 目 录 视 图... 206 10.5.1 RC_ARCHIVED_LOG (V$ARCHIVED_LOG)... 207 10.5.2 RC_BACKUP_ CONTROLFILE (V$BACKUP_ DATAFILE)... 207 10.5.3 RC_BACKUP_ CORRUPTION (V$BACKUP_ CORRUPTION)... 208 10.5.4 RC_BACKUP_DATAFILE (V$BACKUP_ DATAFILE)... 208

目 录 IX 10.5.5 RC_BACKUP_FILES (V$BACKUP_FILES)... 208 10.5.6 RC_BACKUP_PIECE (V$BACKUP_PIECE)... 209 10.5.7 RC_BACKUP_REDOLOG (V$BACKUP_ REDOLOG)... 209 10.5.8 RC_BACKUP_SET (V$BACKUP_SET)... 209 10.5.9 RC_BACKUP_SPFILE (V$BACKUP_ SPFILE)... 209 10.5.10 RC_CONTROLFILE_ COPY(V$DATAFILE_ COPY)... 209 10.5.11 RC_COPY_CORRUPTION (V$COPY_ CORRUPTION)... 209 10.5.12 RC_DATABASE (V$DATABASE)... 209 10.5.13 RC_DATABASE_BLOCK_ CORRUPTION (V$DATABASE_BLOCK_ CORRUPTION)... 210 10.5.14 RC_DATABASE_ INCARNATION (V$DATABASE_ INCARNATION)... 210 10.5.15 RC_DATAFILE (V$DATAFILE)... 210 10.5.16 RC_DATAFILE_COPY (V$DATAFILE_ COPY)... 210 10.5.17 RC_LOG_HISTORY (V$LOG_HISTORY)... 210 10.5.18 RC_OFFLINE_RANGE (V$OFFLINE_ RANGE)... 211 10.5.19 RC_REDO_LOG (V$LOG, V$LOGFILE)... 211 10.5.20 RC_REDO_THREAD (V$THREAD)... 211 10.5.21 RC_RESYNC... 211 10.5.22 RC_RMAN_ CONFIGURATION (V$RMAN_ CONFIGURATION)... 211 10.5.23 RC_TABLESPACE (V$TABLESPACE)... 212 10.5.24 RC_TEMPFILE (V$TEMPFILE)... 212 10.5.25 为 Oracle 企 业 管 理 器 提 供 的 目 录 视 图... 212 10.6 小 结... 213 第 11 章 RMAN 备 份... 215 11.1 RMAN 备 份 优 于 脚 本 化 备 份... 215 11.2 RMAN 兼 容 性 问 题... 217 11.3 监 控 RMAN 备 份 状 态... 218 11.4 脱 机 RMAN 数 据 库 备 份... 218 11.4.1 使 用 默 认 的 设 置 执 行 脱 机 备 份 操 作... 219 11.4.2 不 使 用 默 认 的 设 置 执 行 脱 机 备 份 操 作... 222 11.5 Backup 命 令 选 项... 225 11.5.1 多 段 备 份... 225 11.5.2 压 缩... 226 11.5.3 标 记 和 还 原 点... 227 11.5.4 限 定 备 份 的 影 响... 228 11.5.5 限 定 备 份 集 的 大 小... 228 11.5.6 备 份 到 特 定 的 设 备 类 型... 229 11.5.7 修 改 备 份 集 的 保 留 策 略... 229 11.5.8 归 档 日 志 删 除 策 略... 231

X Oracle Database 11g RMAN 备 份 与 恢 复 11.5.9 重 写 configure exclude 命 令... 232 11.5.10 使 用 backup 命 令 检 查 数 据 库 的 错 误... 232 11.5.11 跳 过 脱 机 的 不 可 访 问 的 或 只 读 的 数 据 文 件... 232 11.5.12 强 制 备 份 只 读 的 数 据 文 件... 233 11.5.13 基 于 上 次 备 份 时 间 来 备 份 数 据 文 件... 233 11.5.14 在 RMAN 复 制 设 备 上 生 成 备 份 副 本... 235 11.5.15 捕 获 隐 蔽 的 控 制 文 件... 235 11.6 set 命 令 介 绍... 235 11.7 联 机 RMAN 数 据 库 备 份... 236 11.7.1 联 机 数 据 库 备 份... 236 11.7.2 表 空 间 备 份... 239 11.7.3 数 据 文 件 备 份... 239 11.7.4 归 档 重 做 日 志 备 份... 240 11.7.5 控 制 文 件 和 服 务 器 参 数 文 件 备 份... 241 11.7.6 备 份 集 备 份... 241 11.7.7 闪 回 恢 复 区 备 份... 242 11.8 副 本... 242 11.8.1 映 像 副 本 介 绍... 242 11.8.2 数 据 库 表 空 间 和 数 据 文 件 的 映 像 副 本... 242 11.8.3 控 制 文 件 副 本... 243 11.8.4 ARCHIVELOG 映 像 副 本... 244 11.9 增 量 RMAN 备 份... 244 11.9.1 块 更 改 跟 踪 文 件... 245 11.9.2 基 本 备 份... 246 11.9.3 差 异 增 量 备 份 与 累 积 增 量 备 份... 246 11.10 备 份 操 作 练 习... 250 11.11 小 结... 253 第 12 章 RMAN 还 原 与 恢 复... 255 12.1 RMAN 还 原 与 恢 复 基 础... 256 12.2 还 原 数 据 库 前 的 准 备 工 作... 257 12.3 RMAN 还 原 与 恢 复 前 的 操 作... 257 12.3.1 有 关 恢 复 恢 复 目 录 及 MML 层 的 注 意 事 项... 258 12.3.2 还 原 服 务 器 参 数 文 件 (SPFILE)... 258 12.3.3 还 原 控 制 文 件... 263 12.4 restore 和 recover 命 令... 270 12.4.1 restore 命 令... 270 12.4.2 recover 命 令... 271 12.5 在 NOARCHIVELOG 模 式 中 还 原 和 恢 复 数 据 库... 271 12.5.1 还 原 的 准 备 工 作... 271 12.5.2 在 不 同 的 位 置 上 还 原 数 据 库... 273 12.6 在 ARCHIVELOG 模 式 中 恢 复 数 据 库... 276 12.6.1 故 障 点 数 据 库 恢 复... 277 12.6.2 表 空 间 恢 复... 281 12.6.3 数 据 文 件 恢 复... 282 12.6.4 使 用 增 量 备 份 的 恢 复 操 作... 282 12.7 联 机 重 做 日 志 丢 失 的 恢 复... 283 12.7.1 非 活 动 的 联 机 重 做 日 志 文 件 组 成 员 的 丢 失... 284 12.7.2 非 活 动 的 联 机 重 做 日 志 文 件 组 的 丢 失... 284 12.7.3 丢 失 活 动 但 非 当 前 状 态 的 联 机 重 做 日 志 文 件 组... 285 12.7.4 丢 失 当 前 联 机 重 做 日 志 文 件 组... 286 12.8 数 据 恢 复 顾 问... 286 12.9 小 结... 292

目 录 XI 第 Ⅲ 部 分 更 有 效 地 使 用 RMAN 第 13 章 使 用 Oracle 企 业 管 理 器 实 现 备 份 和 恢 复 操 作... 295 13.1 Oracle 企 业 管 理 器 : 新 范 例... 296 13.2 Grid Control... 298 13.2.1 Grid Control 的 体 系 结 构... 299 13.2.2 安 装 和 配 置 Grid Control... 300 13.3 Database Control... 300 13.3.1 Database Control 的 体 系 结 构... 301 13.3.2 安 装 和 配 置 Database Control... 302 13.4 在 企 业 管 理 器 中 配 置 备 份 设 置... 305 13.4.1 设 备 配 置... 306 13.4.2 备 份 集 配 置... 307 13.4.3 策 略 配 置... 308 13.4.4 在 OEM 备 份 配 置 中 无 法 配 置 的 内 容... 308 13.5 配 置 恢 复 设 置... 310 13.5.1 实 例 恢 复... 310 13.5.2 介 质 恢 复... 310 13.5.3 闪 回 恢 复... 311 13.6 在 OEM 中 配 置 恢 复 目 录... 312 13.7 企 业 管 理 器 中 的 数 据 库 备 份... 314 13.7.1 Oracle 建 议 备 份 策 略... 314 13.7.2 调 度 自 定 义 的 备 份... 317 13.7.3 RMAN 脚 本 作 业 与 调 度 备 份 向 导... 318 13.8 在 企 业 管 理 器 中 执 行 恢 复 操 作... 320 13.8.1 数 据 恢 复 顾 问 和 OEM 检 查 器... 321 13.8.2 用 户 直 接 恢 复... 325 13.9 备 份 管 理 和 报 告... 328 13.9.1 管 理 当 前 备 份... 328 13.9.2 管 理 还 原 点... 329 13.9.3 创 建 备 份 报 告... 329 13.10 在 企 业 管 理 器 中 复 制 数 据 库... 329 13.11 小 结... 331 第 14 章 RMAN 的 高 级 恢 复 主 题... 333 14.1 不 完 全 恢 复... 333 14.1.1 使 用 resetlogs 命 令... 334 14.1.2 创 建 恢 复 点... 335 14.1.3 基 于 时 间 的 恢 复... 336 14.1.4 基 于 SCN 的 恢 复... 336 14.1.5 基 于 日 志 序 列 的 恢 复... 336 14.1.6 基 于 删 除 的 恢 复... 337 14.1.7 使 用 还 原 点 恢 复... 337 14.2 其 他 RMAN 恢 复 主 题... 337 14.2.1 只 读 表 空 间 的 恢 复... 337 14.2.2 归 档 重 做 日 志 的 还 原... 338 14.2.3 数 据 文 件 副 本 的 还 原... 338 14.2.4 恢 复 损 坏 的 数 据 块... 338 14.2.5 恢 复 前 一 个 对 应 物... 341 14.3 表 空 间 时 间 点 恢 复... 344 14.3.1 执 行 自 动 的 TSPITR... 345 14.3.2 手 动 执 行 TSPITR... 348 14.3.3 TSPITR 限 制... 353 14.4 验 证 备 份 可 恢 复... 354 14.4.1 restore preview 命 令... 354 14.4.2 使 用 validate 和 check logical 参 数 的 restore 命 令... 356 14.4.3 使 用 validate backupset 命 令... 358 14.5 跨 平 台 的 数 据 库 移 动 和 RMAN... 359

XII Oracle Database 11g RMAN 备 份 与 恢 复 14.5.1 可 跨 平 台 传 送 的 表 空 间... 359 14.5.2 字 节 排 序 和 数 据 文 件 转 换... 360 14.5.3 跨 平 台 移 动 数 据 库... 361 14.6 处 理 RMAN 的 异 常 情 况... 362 14.7 小 结... 363 第 15 章 从 用 户 错 误 中 恢 复 : 闪 回 技 术... 365 15.1 为 不 可 避 免 的 问 题 做 准 备 : 闪 回 技 术... 366 15.2 闪 回 查 询... 366 15.2.1 闪 回 和 撤 消 段 简 介... 366 15.2.2 执 行 闪 回 查 询... 367 15.2.3 使 用 Oracle 企 业 管 理 器 执 行 闪 回 版 本 查 询... 368 15.3 闪 回 表... 371 15.3.1 从 SQL 中 执 行 闪 回 表 操 作... 372 15.3.2 在 Oracle 企 业 管 理 器 中 使 用 闪 回 表... 372 15.4 闪 回 事 务... 374 15.5 闪 回 删 除... 376 15.6 闪 回 数 据 库... 380 15.6.1 闪 回 日 志... 380 15.6.2 闪 回 保 存 目 标... 381 15.6.3 闪 回 数 据 库 的 调 整... 382 15.7 闪 回 数 据 归 档 ( 完 全 撤 消 )... 384 15.8 小 结... 385 第 16 章 RMAN 维 护... 387 16.1 RMAN 的 维 护... 388 16.1.1 交 叉 校 验 RMAN 备 份... 388 16.1.2 RMAN 备 份 的 验 证... 392 16.1.3 备 份 保 留 策 略... 393 16.1.4 change 命 令... 396 16.1.5 delete 命 令... 404 16.1.6 在 RMAN 中 为 其 他 备 份 编 写 目 录... 405 16.2 RMAN 存 储 的 脚 本... 406 16.2.1 创 建 存 储 的 脚 本... 407 16.2.2 查 询 存 储 脚 本 信 息 的 恢 复 目 录... 407 16.2.3 修 改 存 储 的 脚 本... 407 16.2.4 删 除 存 储 的 脚 本... 407 16.2.5 使 用 存 储 的 脚 本... 407 16.2.6 打 印 存 储 的 脚 本... 408 16.3 删 除 数 据 库... 409 16.4 小 结... 409 第 17 章 RMAN 的 监 控 和 报 告... 411 17.1 RMAN 的 list 命 令... 411 17.1.1 列 出 对 应 物... 412 17.1.2 列 出 备 份... 412 17.1.3 列 出 映 像 副 本... 423 17.2 RMAN 的 report 命 令... 426 17.2.1 报 告 最 近 没 有 被 备 份 的 数 据 文 件... 426 17.2.2 报 告 备 份 冗 余 或 恢 复 窗 口... 427 17.2.3 报 告 数 据 文 件 的 不 可 恢 复 操 作... 428 17.2.4 报 告 数 据 库 模 式... 428 17.2.5 报 告 过 时 的 备 份... 428 17.3 用 于 报 告 的 数 据 字 典 视 图... 430 17.4 小 结... 431 第 18 章 调 整 RMAN 备 份 与 恢 复 操 作 的 性 能... 433 18.1 调 整 RMAN 前 的 工 作... 434 18.1.1 可 以 达 到 的 RMAN 性 能... 434 18.1.2 使 用 合 适 的 硬 件... 434 18.1.3 调 整 数 据 库... 436 18.2 调 整 RMAN... 438 18.2.1 调 整 RMAN 设 置... 439 18.2.2 调 整 MML 层... 441

目 录 XIII 18.2.3 确 认 与 数 据 库 相 关 的 RMAN 问 题... 442 18.3 跟 踪 RMAN 会 话... 448 18.4 小 结... 450 第 Ⅳ 部 分 Oracle 生 态 系 统 中 的 RMAN 第 19 章 复 制 目 标 数 据 库... 453 19.1 RMAN 复 制 的 基 础... 454 19.1.1 使 用 RMAN 复 制 的 原 因... 454 19.1.2 RMAN 复 制 的 不 同 类 型... 455 19.1.3 复 制 体 系 结 构... 456 19.2 复 制 的 位 置... 461 19.2.1 复 制 到 相 同 的 服 务 器... 461 19.2.2 复 制 到 相 同 服 务 器 的 不 同 ORACLE_HOME 目 录... 463 19.2.3 复 制 到 远 程 服 务 器... 463 19.2.4 复 制 和 网 络... 466 19.3 在 相 同 服 务 器 上 复 制... 469 19.4 在 远 程 服 务 器 上 复 制... 472 19.5 11g 的 无 目 标 复 制... 474 19.6 小 结... 476 第 20 章 RMAN 与 Data Guard... 477 20.1 RMAN 与 备 用 数 据 库... 478 20.1.1 使 用 RMAN 创 建 备 用 数 据 库 的 必 要 条 件... 478 20.1.2 duplicate for standby 命 令... 479 20.2 从 备 用 数 据 库 生 成 备 份... 483 20.2.1 从 备 用 数 据 库 生 成 的 数 据 文 件 备 份... 485 20.2.2 从 备 用 数 据 库 备 份 归 档 日 志... 485 20.2.3 使 用 闪 回 数 据 库 重 新 实 例 化 备 用 数 据 库... 486 20.3 小 结... 486 第 21 章 RMAN 与 Real Application Clusters... 487 21.1 Real Application Clusters: 独 特 的 备 份 问 题... 488 21.1.1 数 据 文 件 备 份... 489 21.1.2 归 档 日 志 备 份... 490 21.2 RAC 恢 复 问 题... 492 21.2.1 还 原 操 作... 493 21.2.2 还 原 操 作 期 间 的 介 质 管 理 问 题... 493 21.2.3 还 原 操 作 后 的 恢 复 问 题... 494 21.3 高 级 的 RMAN/RAC 功 能... 495 21.3.1 复 制 到 单 节 点 系 统... 495 21.3.2 单 节 点 上 的 备 用 数 据 库... 498 21.3.3 从 单 节 点 备 用 数 据 库 备 份 多 节 点 RAC 数 据 库... 501 21.4 小 结... 501 第 22 章 同 步 和 拆 分 技 术 中 的 RMAN... 503 22.1 同 步 和 拆 分 : 不 完 整 的 镜 像 备 份... 504 22.2 同 步 和 拆 分 卷 上 的 Oracle 数 据 库... 506 22.2.1 数 据 文 件... 507 22.2.2 控 制 文 件... 507 22.2.3 重 做 日 志 文 件... 508 22.2.4 归 档 日 志... 508 22.3 拆 分 镜 像 备 份 的 优 点... 509 22.3.1 快 速 时 间 点 恢 复... 509 22.3.2 相 对 快 速 的 备 份... 509 22.3.3 在 另 一 个 服 务 器 上 加 载 拆 分 镜 像... 509

XIV Oracle Database 11g RMAN 备 份 与 恢 复 22.3.4 从 拆 分 镜 像 中 获 得 备 份... 510 22.4 RMAN 与 同 步 和 拆 分... 510 22.4.1 使 用 RMAN 注 册 拆 分 镜 像 副 本... 510 22.4.2 从 拆 分 镜 像 中 获 得 RMAN 备 份... 510 22.4.3 廉 价 获 得 同 步 和 拆 分 功 能... 512 22.4.4 将 备 用 数 据 库 闪 回 数 据 库 以 及 增 量 应 用 于 同 步 和 拆 分... 512 22.4.5 Oracle 同 步 和 拆 分 解 决 方 案 的 优 点... 514 22.5 应 用 于 Windows 的 Oracle 集 成 卷 影 复 制 服 务... 514 22.6 小 结... 515 第 23 章 RMAN 案 例 研 究... 517 23.1 恢 复 操 作 前 的 准 备 工 作... 518 23.1.1 故 障 的 本 质... 518 23.1.2 可 用 的 恢 复 选 项... 518 23.1.3 可 能 需 要 的 Oracle 支 持... 519 23.1.4 在 恢 复 操 作 期 间 寻 求 帮 助... 519 23.2 恢 复 案 例 研 究... 519 23.3 小 结... 541 第 Ⅴ 部 分 附 录 附 录 A RMAN 语 法 参 考 指 南... 545 附 录 B RMAN 脚 本 示 例... 603 附 录 C 创 建 RMAN 测 试 环 境... 607

第 Ⅰ 部 分 第 1 章 Oracle Database 11g 备 份 与 恢 复 体 系 结 构 概 述 第 2 章 RMAN 体 系 结 构 概 述

第 1 章 欢 迎 阅 读 Oracle Database 11g RMAN 备 份 与 恢 复 一 书 如 果 已 经 购 买 了 前 一 版 的 书 籍 Oracle Database 10g RMAN 备 份 与 恢 复, 您 已 大 概 了 解 本 书 将 要 介 绍 的 内 容 然 而, 本 书 不 是 简 单 的 修 订 版 Oracle RMAN 11g 具 有 许 多 新 特 性, 因 此 本 书 除 了 修 订 外 还 添 加 了 许 多 新 内 容 希 望 您 发 现 这 些 新 的 特 征 和 修 订 非 常 有 用 我 们 也 倾 听 了 读 者 的 反 馈 并 针 对 一 些 反 馈 进 行 了 修 改

4 第 Ⅰ 部 分 Oracle RMAN 11g 基 础 知 识 如 果 已 经 使 用 过 RMAN, 您 可 能 会 关 注 Oracle Database 11g 中 的 改 动 对 您 已 有 的 备 份 和 恢 复 策 略 是 否 存 在 负 面 影 响, 请 不 要 为 此 感 到 担 心 RMAN 是 完 全 向 后 兼 容 的, 因 此 在 改 为 使 用 Oracle Database 11g 时, 不 需 要 改 变 已 有 的 备 份 和 恢 复 策 略 如 果 您 是 刚 开 始 使 用 RMAN, 那 么 欢 迎 加 入!RMAN 是 进 行 Oracle 数 据 库 备 份 和 恢 复 的 极 好 选 择 本 书 将 提 供 成 功 使 用 RMAN 所 需 的 所 有 信 息 本 书 的 目 的 是 帮 助 您 尽 快 掌 握 RMAN 的 用 法 然 而, 在 开 始 深 入 学 习 RMAN 之 前, 应 当 对 基 础 的 Oracle 备 份 和 恢 复 有 所 了 解, 这 在 Oracle Database 11g 中 并 没 有 多 大 的 改 动 真 正 的 改 动 存 在 于 RMAN, 在 Oracle Database 11g 中 这 样 的 改 动 有 很 多 因 此, 对 于 熟 悉 Oracle 备 份 和 恢 复 的 人 来 说, 可 以 阅 读 本 章 以 加 深 印 象, 或 者 直 接 从 第 2 章 开 始 学 习 对 于 Oracle 初 学 者 来 说, 这 部 分 内 容 会 帮 助 您 更 好 地 学 习 RMAN, 而 在 随 后 的 章 节 中 将 更 详 细 地 介 绍 这 些 内 容 现 在, 我 们 就 开 始 学 习 Oracle 备 份 和 恢 复 在 本 章 对 Oracle 数 据 库 备 份 和 恢 复 体 系 结 构 的 概 述 中, 会 介 绍 下 面 这 些 知 识 : 备 份 和 恢 复 概 要 需 要 掌 握 的 一 些 Oracle 术 语 Oracle 数 据 库 物 理 体 系 结 构 Oracle 操 作 内 核 ARCHIVELOG 模 式 操 作 与 NOARCHIVELOG 模 式 操 作 Oracle 恢 复 模 式 Oracle 中 的 手 动 备 份 操 作 Oracle 中 的 手 动 恢 复 操 作 在 阅 读 本 章 的 Oracle 概 述 的 过 程 中, 您 会 发 现 掌 握 Oracle 产 品 的 工 作 原 理 是 非 常 重 要 的, 只 有 这 样 才 能 在 恢 复 数 据 库 时 恰 当 地 应 用 本 书 所 介 绍 的 各 种 技 术 此 外, 您 还 会 发 现 备 份 和 恢 复 数 据 库 并 不 只 是 输 入 一 些 命 令 和 在 磁 带 驱 动 器 中 插 入 磁 带 错 误 应 用 某 种 技 术 或 者 不 理 解 某 种 体 系 结 构 原 则 的 直 接 后 果 可 能 会 导 致 大 范 围 的 停 机, 甚 至 会 丢 失 数 据 实 际 上, 我 们 在 遇 到 一 个 恢 复 实 例 时 花 费 十 小 时, 但 当 我 们 对 情 况 进 行 研 讨 后, 发 现 实 际 上 该 项 工 作 可 能 仅 需 两 小 时 就 能 完 成 在 此 实 例 中 的 时 间 开 销 的 差 别 就 在 于 DBA 缺 乏 对 其 需 要 恢 复 的 数 据 库 的 一 些 基 本 理 解, 该 问 题 导 致 其 对 恢 复 方 式 的 选 择 存 在 巨 大 的 错 误 在 备 份 与 恢 复 时, 切 记 在 学 会 跑 之 前 必 须 先 学 会 走 最 后 将 介 绍 您 需 要 了 解 的 有 关 RMAN 和 数 据 库 恢 复 的 基 础 知 识 如 果 您 想 学 习 这 方 面 的 更 多 知 识, 可 以 参 阅 Oracle 出 版 社 出 版 的 相 关 书 籍 可 以 在 www.oraclepressbooks.com 中 找 到 这 些 书 籍 1.1 备 份 和 恢 复 概 要 首 先 概 括 介 绍 备 份 和 恢 复 在 精 心 制 订 计 划 来 应 对 数 据 库 可 能 出 现 的 故 障 时, 通 常 需 要 处 理 两 个 不 同 的 问 题 : 一 个 有 关 体 系 结 构 方 面 的 问 题 是 高 可 用 性, 该 问 题 与 随 之 而 来 的 另 一 个 问 题 备 份 和 恢 复 具 有 松 耦 合 关 系 现 在 将 详 细 讨 论 高 可 用 性 与 备 份 和 恢 复

第 1 章 Oracle Database 11g 备 份 与 恢 复 体 系 结 构 概 述 5 问 题 1.1.1 高 可 用 性 高 可 用 性 (High Availability,HA) 指 的 是 一 种 防 止 用 户 发 现 部 分 或 整 个 系 统 ( 如 数 据 库 网 络 和 硬 件 等 ) 出 现 故 障 的 体 系 结 构 HA 解 决 方 案 包 括 的 要 素 可 以 是 镜 像 驱 动 器 RAID 体 系 结 构 数 据 库 群 集 数 据 库 故 障 切 换 (failover) 模 式, 当 然 还 包 括 备 份 和 恢 复 HA 增 加 了 整 个 数 据 库 体 系 结 构 解 决 方 案 的 开 销, 且 超 过 了 所 选 的 备 份 和 恢 复 解 决 方 案 的 花 费 虽 然 RMAN 不 是 一 个 HA 解 决 方 案, 但 它 是 整 个 数 据 库 解 决 方 案 的 一 部 分, 而 该 解 决 方 案 可 以 包 括 HA HA 解 决 方 案 不 能 取 代 数 据 库 备 份 与 恢 复, 但 是 如 何 对 数 据 库 进 行 备 份 与 恢 复 的 策 略 构 成 了 您 制 定 高 可 用 决 策 的 基 础 必 须 明 确 的 是, 如 何 备 份 和 恢 复 数 据 库 是 HA 决 策 的 一 部 分 如 果 您 对 HA 解 决 方 案 有 兴 趣, 那 么 可 以 参 阅 下 面 的 几 个 HA 解 决 方 案 : Guard/Stand-by Database Real Application Clusters Oracle Replication/Streams RAID 和 镜 像 驱 动 器 其 他 供 应 商 也 提 供 了 不 同 的 HA 解 决 方 案 由 于 HA 选 项 是 一 个 独 立 于 RMAN 的 主 题, 因 此 在 本 书 中 不 讨 论 此 主 题 介 绍 HA 解 决 方 案 的 书 籍 有 : 清 华 大 学 出 版 社 引 进 并 出 版 的 Oracle Database 10g 高 可 用 性 实 现 方 案 运 用 RAC Flashback 和 Data Guard 技 术, 该 书 也 是 由 本 书 作 者 之 一 Matthew Hart 先 生 撰 著 的 1.1.2 备 份 和 恢 复 接 下 来 将 介 绍 备 份 和 恢 复, 这 将 进 入 本 书 的 主 题 RMAN 贯 穿 本 章 将 详 细 介 绍 Oracle 中 的 各 种 备 份, 不 过 现 在 将 介 绍 主 要 的 备 份 类 型 : 脱 机 备 份 ( 冷 备 份 ) 和 联 机 备 份 ( 热 备 份 ) 脱 机 备 份 在 数 据 库 关 闭 时 工 作, 此 时 用 户 不 能 使 用 数 据 库 而 联 机 备 份 则 在 数 据 库 运 行 时 工 作, 此 时 用 户 仍 然 可 以 继 续 使 用 数 据 库 来 处 理 事 务 RMAN 支 持 这 两 种 备 份 类 型 事 实 上, 正 如 您 将 在 后 面 的 章 节 中 所 看 到 的 一 样,RMAN 的 某 些 功 能 使 其 成 为 执 行 联 机 数 据 库 备 份 的 较 好 选 择 另 外, 备 份 数 据 库 的 时 机 不 应 随 意 选 取 对 于 产 品 数 据 库 来 说 尤 其 如 此, 因 为 用 户 对 数 据 保 护 有 较 高 的 期 望 在 决 定 何 时 以 何 种 方 式 备 份 数 据 库 之 前, 应 当 收 集 用 户 的 需 求, 并 考 虑 公 司 的 一 般 备 份 策 略 只 有 在 收 集 这 些 需 求 之 后, 才 可 以 实 施 备 份 计 划 下 面 将 进 一 步 讨 论 如 何 收 集 这 些 需 求 1. 收 集 备 份 与 恢 复 策 略 需 求 在 收 集 用 户 需 求 时, 需 要 从 这 些 需 求 中 发 现 用 户 需 要 什 么 并 且 需 要 向 用 户 提 出 许 多 问 题, 作 为 一 名 数 据 库 管 理 员 (Database Administrator,DBA), 应 当 由 您 来 提 出 这 些 问 题 为 了 收 集 备 份 和 恢 复 需 求,DBA 要 向 用 户 提 出 下 面 的 一 系 列 问 题 : 在 数 据 库 发 生 故 障 时, 丢 失 多 少 数 据 是 可 承 受 的?

6 第 Ⅰ 部 分 Oracle RMAN 11g 基 础 知 识 恢 复 数 据 库 时, 能 够 忍 受 的 最 长 时 间 是 多 少? 为 了 确 保 您 的 数 据 能 够 被 恢 复, 愿 意 投 入 多 少 成 本? 备 份 期 间 可 以 关 闭 系 统 吗? 受 损 硬 件 设 备 的 替 换 需 要 多 长 时 间? 现 在, 我 们 将 详 细 讨 论 每 一 个 问 题 可 以 承 受 的 数 据 丢 失 量 这 可 能 是 上 述 问 题 中 最 重 要 的 问 题 所 有 的 备 份 和 恢 复 计 划 都 有 丢 失 数 据 的 风 险, 当 想 采 用 零 数 据 丢 失 解 决 方 案 时, 备 份 和 恢 复 计 划 的 成 本 会 非 常 昂 贵 就 像 选 用 HA 解 决 方 案 一 样, 机 构 需 要 量 化 数 据 丢 失 的 成 本, 并 且 在 此 基 础 上 实 施 成 本 效 益 最 高 的 备 份 和 恢 复 计 划 客 户 必 须 知 道 所 选 择 的 备 份 和 恢 复 计 划 会 带 来 怎 样 的 数 据 丢 失 风 险 当 然, 每 个 数 据 库 都 有 一 个 可 接 受 的 丢 失 量 范 围, 有 时, 一 个 数 据 库 所 允 许 的 数 据 丢 失 量 可 能 比 其 他 数 据 库 大 很 多 恢 复 数 据 库 时 允 许 的 最 长 时 间 不 同 的 技 术 以 不 同 的 方 式 执 行, 所 需 的 成 本 也 是 不 同 的 通 常 情 况 下, 要 求 恢 复 速 度 越 快, 技 术 所 需 的 成 本 就 越 高 例 如, 直 接 从 磁 盘 上 恢 复 数 据 库 的 成 本 比 从 磁 带 上 恢 复 数 据 库 的 成 本 要 高, 但 是 它 的 恢 复 速 度 更 快 对 于 客 户 来 说, 了 解 出 现 完 全 停 机 时 恢 复 数 据 库 所 花 费 的 时 间 是 非 常 重 要 的 针 对 某 些 不 能 恢 复 数 据 库 的 例 子, 则 可 以 考 虑 Oracle stand-by Database 这 样 的 技 术 恢 复 所 花 费 的 成 本 要 知 道, 在 可 接 受 的 数 据 丢 失 量 恢 复 数 据 库 所 用 的 时 间 和 提 供 给 定 的 保 护 等 级 所 花 费 的 成 本 之 间 存 在 直 接 的 关 系 在 开 始 阶 段, 了 解 客 户 愿 意 在 体 系 结 构 上 投 入 多 少 成 本 来 支 持 备 份 和 恢 复 计 划, 这 是 相 当 重 要 的 如 果 您 建 议 了 一 个 高 成 本 的 复 杂 体 系 结 构, 而 客 户 只 是 看 一 眼 预 计 的 成 本 然 后 付 之 一 笑, 那 将 是 多 么 让 人 难 堪 的 事 情 备 份 期 间 是 否 关 闭 系 统 另 一 个 要 了 解 的 主 要 信 息 是 备 份 期 间 数 据 库 所 需 的 状 态 备 份 时 是 否 能 够 接 受 停 机, 或 者 备 份 时 需 要 联 机 吗? 这 个 问 题 的 答 案 会 影 响 总 体 成 本 和 备 份 策 略 的 选 择 替 换 受 损 硬 件 设 备 需 要 多 长 时 间 这 是 一 个 值 得 考 虑 的 重 要 问 题 通 常 不 是 由 于 数 据 库, 而 是 由 于 硬 件 引 起 的 故 障 硬 件 故 障 将 会 严 重 影 响 数 据 库 重 新 运 行 的 时 间 DBA 应 当 使 系 统 各 利 益 相 关 方 理 解 硬 件 故 障 的 影 响 并 考 虑 使 用 有 助 于 防 止 产 生 硬 件 故 障 的 结 构, 例 如 采 用 Oracle Real Application Clusters

第 1 章 Oracle Database 11g 备 份 与 恢 复 体 系 结 构 概 述 7 2. 精 心 设 计 备 份 与 恢 复 计 划 收 集 用 户 需 求 之 后, 就 可 以 开 始 设 计 备 份 与 恢 复 计 划 需 要 解 决 下 面 这 些 问 题 : 基 于 用 户 ( 和 业 务 ) 需 求, 需 要 完 成 数 据 库 的 脱 机 备 份 还 是 联 机 备 份? 如 果 使 用 联 机 备 份, 那 么 需 要 多 久 备 份 一 次 归 档 的 重 做 日 志? 如 何 在 备 份 会 话 期 间 确 保 归 档 的 重 做 日 志 不 丢 失? 公 司 关 于 可 恢 复 性 的 策 略 和 标 准 是 什 么? 在 灾 难 事 件 中 如 何 确 保 系 统 是 可 恢 复 的? 是 否 需 要 制 定 体 系 结 构 方 面 的 决 策? 上 面 的 每 个 问 题 都 非 常 重 要 设 计 时 要 重 点 考 虑 到 灾 难 事 件, 因 为 灾 难 事 件 确 实 会 发 生 公 司 策 略 有 可 能 会 代 替 用 户 的 需 求 这 时, 实 现 并 执 行 备 份 策 略 和 标 准 非 常 重 要 因 为 管 理 一 个 数 据 库 的 备 份 和 恢 复 策 略 往 往 比 较 容 易, 但 管 理 多 个 具 有 不 同 备 份 和 恢 复 方 法 的 数 据 库 则 十 分 麻 烦 和 危 险 管 理 归 档 的 重 做 日 志 非 常 重 要, 这 是 由 于 归 档 的 重 做 日 志 对 于 恢 复 来 说 至 关 重 要, 并 且 能 够 最 大 限 度 地 支 持 用 户 需 求 毕 竟, 用 户 才 是 我 们 存 在 的 理 由! 为 了 能 够 决 定 如 何 设 计 备 份 策 略, 需 要 了 解 Oracle 的 工 作 原 理 以 及 Oracle 备 份 和 恢 复 的 工 作 原 理 稍 后 将 简 单 讨 论 这 些 内 容, 首 先 介 绍 一 些 基 本 的 Oracle 术 语 1.2 需 要 掌 握 的 Oracle 术 语 由 于 组 件 相 互 关 联, 因 此 在 讨 论 Oracle 体 系 结 构 时 通 常 不 知 如 何 着 手 比 如 介 绍 一 个 组 件 时, 如 果 不 引 用 其 他 组 件 就 会 相 当 困 难 因 此, 本 节 先 介 绍 了 一 些 常 用 术 语, 并 简 要 给 出 了 这 些 术 语 的 定 义 这 些 术 语 将 贯 穿 在 本 书 的 剩 余 章 节 中, 因 此 必 须 完 全 理 解 这 些 术 语 的 含 义 ( 在 后 面 还 将 详 细 定 义 这 些 术 语 ) 因 此, 如 果 您 对 Oracle 内 部 术 语 的 认 识 比 较 模 糊, 请 复 习 下 面 这 些 术 语, 直 至 清 楚 地 理 解 它 们 的 含 义 : 警 告 日 志 (alert log): 一 个 文 本 日 志 文 件, 记 录 数 据 库 的 错 误 和 状 态 消 息 警 告 日 志 是 判 断 数 据 库 故 障 种 类 的 一 个 关 键 结 构 通 常 情 况 下, 警 告 日 志 位 于 后 台 转 储 目 标 目 录 中, 该 目 录 是 由 数 据 库 参 数 BACKGROUND_DUMP_DEST 定 义 的, 其 中 警 告 日 志 称 为 alert<sid>.log 归 档 的 重 做 日 志 (archived redo log): 数 据 库 在 ARCHIVELOG 模 式 下 时, 每 次 Oracle 通 过 LGWR 进 程 切 换 联 机 重 做 日 志 时 都 会 生 成 归 档 的 重 做 日 志 数 据 库 恢 复 期 间 也 会 使 用 归 档 的 重 做 日 志 归 档 的 重 做 日 志 的 副 本 可 以 写 入 10 个 不 同 的 目 录, 这 些 目 录 是 由 数 据 库 参 数 文 件 中 的 Oracle 参 数 LOG_ARCHIVE_DEST_ n 定 义 的 同 样,Oracle Database 11g 允 许 在 称 为 闪 回 恢 复 区 (flash recovery area) 的 新 位 置 中 存 储 归 档 的 重 做 日 志, 在 第 3 章 中 将 详 细 讨 论 闪 回 恢 复 区 备 份 控 制 文 件 (backup control file): 控 制 文 件 的 备 份 是 由 命 令 alter database backup controlfile to 'file_name' 或 命 令 alter database backup control file to trace 生 成 的

8 第 Ⅰ 部 分 Oracle RMAN 11g 基 础 知 识 块 (block):oracle 中 最 小 的 存 储 单 元 默 认 的 块 大 小 由 数 据 库 参 数 文 件 中 的 参 数 DB_BLOCK_SIZE 决 定, 并 且 创 建 数 据 库 后 该 设 置 不 变 Oracle Database 11g 允 许 表 空 间 具 有 不 同 于 默 认 值 的 块 大 小 检 查 点 (checkpoint): 一 种 数 据 库 事 件, 使 数 据 库 将 脏 ( 已 使 用 ) 数 据 块 从 内 存 移 出 并 写 入 磁 盘 数 据 库 (database): 由 构 成 Oracle 数 据 库 的 不 同 组 件 ( 表 空 间 重 做 日 志 等 ) 组 成 数 据 库 不 同 于 实 例 数 据 库 用 于 存 储 数 据, 使 用 RMAN 可 以 备 份 和 恢 复 数 据 库 数 据 库 一 致 性 (database consistency): 这 是 指 数 据 库 中 的 每 个 对 象 在 某 个 相 同 的 时 间 点 是 一 致 的 其 含 义 是 数 据 库 数 据 文 件 中 的 数 据 在 某 个 相 同 的 时 间 点 保 持 一 致, 也 意 味 着 数 据 库 控 制 文 件 与 数 据 库 数 据 文 件 头 指 针 保 持 同 步 数 据 库 控 制 文 件 (database control file): 数 据 库 控 制 文 件 存 储 与 数 据 库 有 关 的 元 数 据 包 含 关 于 数 据 库 数 据 文 件, 归 档 重 做 日 志,RMAN 备 份 等 有 关 的 信 息, 以 及 其 他 数 据 库 内 部 信 息 数 据 库 数 据 文 件 (database datafile): 与 表 空 间 相 关 的 物 理 实 体 一 个 数 据 库 至 少 含 有 一 个 数 据 库 数 据 文 件 ( 该 文 件 属 于 SYSTEM 表 空 间 ) 大 部 分 数 据 库 是 由 多 个 不 同 的 数 据 库 数 据 文 件 组 成 的 尽 管 一 个 表 空 间 可 以 有 许 多 关 联 的 数 据 库 数 据 文 件, 但 是 一 个 给 定 的 数 据 库 数 据 文 件 只 能 有 一 个 关 联 的 表 空 间 数 据 库 参 数 文 件 (database parameter file): 含 有 实 例 和 数 据 库 配 置 信 息, 数 据 库 参 数 文 件 分 为 两 部 分 ( 各 部 分 相 互 独 立 ): 一 部 分 是 文 本 文 件 init.ora; 另 一 部 分 是 spfile.ora 文 件, 该 文 件 允 许 通 过 alter system 命 令 来 维 持 数 据 库 参 数 的 设 置 闪 回 恢 复 区 (Flash Recovery Area,FRA): 磁 盘 的 可 选 配 置 区 域, 用 于 存 储 各 种 与 恢 复 相 关 的 文 件 RMAN 备 份 文 件 归 档 的 重 做 日 志 联 机 重 做 日 志, 以 及 控 制 文 件 都 可 以 存 储 在 这 个 区 域 中 可 以 在 第 2 章 中 看 到 关 于 FRA 的 更 多 信 息, 第 3 章 中 则 有 它 的 相 关 的 设 置 信 息 在 本 书 的 大 多 数 章 节 中 都 会 看 到 关 于 FRA 使 用 的 示 例 区 组 (granule):oracle 连 续 内 存 单 位 所 有 的 系 统 全 局 区 (System Global Area, SGA) 其 内 存 分 配 都 近 似 为 最 接 近 的 区 组 单 位 区 组 大 小 由 预 计 的 整 个 SGA 内 存 决 定, 可 能 为 4MB 或 16MB 当 Oracle 使 用 较 大 的 区 组 大 小 时, 大 于 128MB 的 SGA 就 可 能 是 断 点 分 配 给 数 据 库 的 区 组 数 量 在 数 据 库 启 动 时 确 定 实 例 (instance): 一 个 实 例 是 Oracle 内 存 和 进 程 的 集 合 若 已 分 配 SGA 内 存, 且 相 应 的 Oracle 进 程 均 启 动 和 成 功 运 行 时, 就 可 以 说 启 动 了 Oracle 实 例 需 要 注 意 的 是,Oracle 实 例 运 行 不 表 示 数 据 库 自 身 被 打 开 在 给 定 时 间, 一 个 实 例 只 能 与 一 个 数 据 库 关 联 联 机 重 做 日 志 (online redo log): 发 生 重 做 时, 重 做 会 被 实 际 存 储 在 数 据 库 的 联 机 重 做 日 志 中 Oracle 要 求 至 少 为 一 个 数 据 库 的 操 作 创 建 两 个 联 机 重 做 日 志 这 些 联 机 重 做 日 志 可 以 含 有 多 个 保 护 重 做 的 镜 像 副 本 这 称 为 多 路 重 做 日 志 当 一 个 联 机 重 做 日 志 写 满 重 做 内 容 时,Oracle 会 切 换 到 下 一 个 联 机 重 做 日 志, 这 称 为 日 志 切 换 (log switch) 操 作

第 1 章 Oracle Database 11g 备 份 与 恢 复 体 系 结 构 概 述 9 每 个 联 机 重 做 日 志 文 件 都 有 关 联 的 唯 一 日 志 序 列 号 一 个 日 志 序 列 号 唯 一 地 标 识 一 个 联 机 重 做 日 志 文 件, 如 果 这 个 联 机 重 做 日 志 文 件 已 归 档, 那 么 就 标 识 相 关 联 的 归 档 的 重 做 日 志 文 件 通 过 V$LOG 视 图 查 询 可 以 查 找 到 联 机 重 做 日 志 的 日 志 序 列 号, 在 V$ARCHIVED_ LOG 视 图 或 V$LOG_HISTORY 视 图 中 可 以 查 找 给 定 的 归 档 重 做 日 志 的 日 志 序 列 号 此 外, 一 个 联 机 重 做 日 志 ( 以 及 一 个 归 档 的 重 做 日 志 ) 包 含 该 日 志 文 件 独 特 的 一 组 数 据 库 系 统 更 改 号 (System Change Number,SCN) 在 恢 复 期 间,Oracle 按 日 志 序 列 号 的 顺 序 来 应 用 联 机 重 做 日 志 ( 归 档 的 重 做 日 志 ) 中 的 撤 消 (undo) 操 作 进 程 (process): 执 行 Oracle 数 据 库 实 际 操 作 的 程 序 在 Oracle Database 11g 中 有 5 种 必 需 的 进 程, 也 有 其 他 一 些 进 程 重 做 (redo): 记 录 对 给 定 数 据 库 的 所 有 修 改 对 于 数 据 库 中 的 几 乎 每 一 个 修 改 来 说, 都 会 生 成 关 联 的 重 做 记 录 模 式 (schema): 拥 有 Oracle 中 的 多 种 逻 辑 对 象 ( 如 表 和 索 引 ), 实 际 上 与 用 户 的 意 义 相 同 系 统 全 局 区 (System Global Area,SGA):Oracle 启 动 时 分 配 的 共 享 内 存 区, 所 有 Oracle 进 程 都 共 享 这 部 分 内 存 系 统 更 改 号 (System Change Number,SCN): 一 个 表 示 某 时 间 点 上 数 据 库 当 前 状 态 的 计 数 器 与 VCR( 录 像 机 ) 的 计 数 器 相 同, 随 着 时 间 的 推 移,SCN 会 相 应 地 增 加 每 个 SCN 代 表 一 个 数 据 库 生 命 周 期 中 的 一 点 因 此, 在 上 午 11 点, 数 据 库 SCN 可 能 是 10ffx0( 十 进 制 数 4351), 而 在 中 午 12 点, 数 据 库 SCN 则 可 能 是 11f0x0( 十 进 制 数 4592) 表 空 间 (tablespace): 一 个 物 理 逻 辑 实 体 由 于 它 存 储 Oracle 逻 辑 对 象 ( 如 表 和 索 引 ), 所 以 是 逻 辑 实 体 ; 由 于 它 由 一 个 或 多 个 数 据 库 数 据 文 件 组 成, 所 以 又 是 物 理 实 体 一 个 数 据 库 必 须 至 少 包 含 一 个 表 空 间 ( 即 SYSTEM 表 空 间 ), 不 过 大 部 分 数 据 库 包 含 多 个 不 同 的 表 空 间 跟 踪 文 件 (trace file): 数 据 库 会 在 许 多 不 同 的 情 况 下 生 成 跟 踪 文 件, 这 些 情 况 包 括 进 程 错 误 每 个 数 据 库 进 程 也 会 生 成 自 己 的 跟 踪 文 件 在 试 图 解 决 数 据 库 故 障 问 题 时, 跟 踪 文 件 会 起 到 重 要 的 作 用 1.3 数 据 库 软 件 的 控 制 在 执 行 各 种 恢 复 操 作 期 间, 需 要 对 Oracle 数 据 库 和 它 的 相 关 实 例 的 状 态 进 行 控 制 下 面 先 简 单 回 忆 一 下 启 动 和 关 闭 Oracle 数 据 库 的 方 法 使 用 SQL*Plus Oracle 实 用 程 序 可 以 启 动 Oracle Database 11g 数 据 库 此 时, 可 以 使 用 SYSDBA 的 登 录 ID 来 登 录 用 户 系 统, 然 后 在 SQL*Plus 提 示 符 下 执 行 startup 命 令, 如 下 所 示 : /usr/oracle>sqlplus / as sysdba SQL*Plus: Release 10.2.0.1.0 - Production on Mon Jan 26 10:55:49 2010 Copyright (c) 1982, 2009, Oracle. All rights reserved.

10 第 Ⅰ 部 分 Oracle RMAN 11g 基 础 知 识 Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 Production With the Partitioning, Real Application Clusters,Automatic Storage Management, OLAP,Data Mining and Real Application Testing options Connected to an idle instance. SQL> startup 用 startup 命 令 启 动 Oracle 数 据 库 时, 执 行 的 操 作 要 经 历 3 个 不 同 的 阶 段 : 实 例 启 动 (instance startup): 启 动 Oracle 数 据 库 实 例 数 据 库 加 载 (database mount): 加 载 Oracle 数 据 库 数 据 库 打 开 (database open): 打 开 Oracle 数 据 库 以 供 用 户 活 动 注 意 : RMAN 客 户 端 ( 后 面 章 节 中 将 讨 论 ) 有 能 力 自 己 关 闭 和 启 动 Oracle 数 据 库 在 大 多 数 情 况 下, 不 需 要 在 恢 复 操 作 期 间 从 RMAN 转 移 到 SQL *Plus startup 命 令 有 几 种 不 同 的 变 体 ( 对 于 了 解 多 个 不 同 的 RMAN 操 作 非 常 重 要 ), 这 些 变 体 包 括 : startup: 使 Oracle 经 历 3 个 启 动 阶 段, 并 且 打 开 到 用 户 社 区 startup restrict: 使 Oracle 经 历 3 个 启 动 阶 段, 并 且 以 限 定 模 式 打 开 数 据 库 只 有 具 有 限 定 权 限 的 用 户 才 可 以 访 问 数 据 库 startup nomount: 在 成 功 启 动 数 据 库 实 例 后 停 止 启 动 进 程 通 常 在 创 建 数 据 库 之 前 使 用 该 命 令 来 启 动 数 据 库 实 例 如 果 需 要 重 新 创 建 控 制 文 件, 使 用 这 条 命 令 也 会 非 常 方 便 需 要 注 意 的 是, 为 了 在 给 定 数 据 库 中 使 用 RMAN, 必 须 能 够 使 用 startup nomount 命 令 成 功 地 启 动 实 例 startup mount: 在 成 功 启 动 数 据 库 实 例 并 加 载 数 据 库 后, 停 止 启 动 起 程 如 果 需 要 恢 复 SYSTEM 表 空 间, 这 个 命 令 非 常 有 用 startup read only: 使 Oracle 数 据 库 ( 或 备 用 数 据 库 ) 以 READ ONLY 模 式 打 开 因 此, 不 支 持 DML 操 作, 但 可 以 查 询 数 据 库 如 果 正 在 执 行 时 间 点 恢 复 操 作, 并 且 希 望 确 保 在 使 用 resetlogs 命 令 提 交 新 数 据 库 实 例 之 前 将 数 据 库 恢 复 到 当 前 的 时 间 点, 这 个 命 令 非 常 有 用 startup force: 与 shutdown abort 命 令 ( 接 下 来 会 讨 论 该 命 令 ) 一 起 关 闭 数 据 库 startup force 命 令 后 面 可 以 再 次 加 上 数 据 库 的 打 开 模 式 示 例 如 下 : startup force restrict startup force mount startup force nomount 现 在 已 经 知 道 启 动 数 据 库 的 方 法, 但 是, 怎 样 关 闭 数 据 库 呢? 同 样, 可 以 在 SQL*Plus 提 示 符 下 执 行 shutdown 命 令, 该 命 令 有 下 面 几 种 形 式

第 1 章 Oracle Database 11g 备 份 与 恢 复 体 系 结 构 概 述 11 shutdown( 还 有 shutdown normal): 使 Oracle 等 待 直 至 所 有 用 户 进 程 与 数 据 库 断 开 连 接 所 有 进 程 断 开 连 接 之 后, 数 据 库 将 会 完 全 关 闭 使 用 这 个 命 令 选 项 可 以 避 免 实 例 恢 复 执 行 shutdown 命 令 后, 任 何 新 的 用 户 进 程 都 不 能 连 接 到 数 据 库 shutdown immediate: 清 除 所 有 存 在 的 用 户 会 话, 并 且 回 滚 所 有 未 提 交 的 事 务 使 用 这 个 命 令 选 项 可 以 避 免 实 例 恢 复 执 行 shutdown immediate 命 令 后, 任 何 新 的 用 户 进 程 都 不 能 连 接 到 数 据 库 shutdown abort: 通 常 会 使 数 据 库 崩 溃 使 用 这 个 命 令 选 项 要 求 是 实 例 恢 复 ( 而 不 是 介 质 恢 复 ) 执 行 shutdown abort 命 令 后, 任 何 新 的 用 户 进 程 都 不 能 连 接 到 数 据 库 shutdown transactional: 使 Oracle 等 待 所 有 用 户 进 程 提 交 当 前 事 务, 然 后 断 开 这 些 用 户 进 程 并 关 闭 数 据 库 在 等 待 完 成 这 些 事 务 的 期 间, 任 何 新 的 用 户 会 话 都 不 能 连 接 到 数 据 库 由 于 本 书 频 繁 使 用 到 这 些 命 令, 因 此 很 有 必 要 了 解 执 行 这 些 命 令 之 后 数 据 库 和 相 关 实 例 的 状 态 1.4 Oracle 体 系 结 构 下 面 开 始 介 绍 Oracle 的 物 理 组 件 首 先 介 绍 构 成 Oracle 数 据 库 的 进 程, 然 后 介 绍 Oracle 内 存 结 构 以 及 Oracle 数 据 库 的 不 同 逻 辑 结 构 物 理 结 构 和 物 理 逻 辑 结 构, 最 后 再 讨 论 实 例 和 Oracle 数 据 库 之 间 的 差 异 1.4.1 Oracle 进 程 执 行 startup nomount 命 令 时,Oracle 会 试 图 启 动 Oracle 实 例 当 所 需 的 操 作 系 统 进 程 ( 程 序 ) 被 启 动, 且 分 配 了 一 个 称 为 系 统 全 局 区 (SGA) 的 内 存 区 之 后,Oracle 实 例 就 被 启 动 本 小 节 将 介 绍 启 动 Oracle 的 进 程 首 先 介 绍 的 是 实 现 Oracle 数 据 库 功 能 所 需 的 5 个 基 本 进 程, 然 后 介 绍 用 户 进 程 和 服 务 器 进 程, 最 后 还 将 介 绍 一 些 其 他 的 Oracle 进 程 注 意 : 这 里 只 简 要 介 绍 了 Oracle 进 程 如 果 要 获 取 更 详 细 的 信 息, 可 以 参 阅 Oracle 的 相 关 文 档 1. 五 种 必 需 的 Oracle 进 程 如 果 成 功 启 动 了 一 个 Oracle Database 11g 实 例, 就 至 少 启 动 了 5 种 不 同 的 进 程 当 然, 在 特 定 的 系 统 中 ( 如 基 于 Microsoft 的 各 种 操 作 系 统 ), 这 5 种 不 同 的 进 程 只 是 单 个 Oracle 进 程 中 的 线 程, 不 过 其 基 本 原 理 是 相 同 的 下 面 是 这 些 必 需 的 进 程 : PMON: 也 称 为 进 程 监 控 进 程 (process monitor process), 是 一 个 Jamaican 进 程 SMON: 也 称 为 系 统 监 控 进 程 (system monitor process), 是 另 一 个 Jamaican 进 程

12 第 Ⅰ 部 分 Oracle RMAN 11g 基 础 知 识 DBWn: 称 为 数 据 库 写 入 器 进 程 (database writer process) 在 Oracle Database 11g 中, 最 多 可 以 用 9 个 这 样 的 进 程 来 配 置 一 个 实 例 ( 不 过 通 常 只 需 要 一 个 这 样 的 进 程 ) DBWn 负 责 将 信 息 从 SGA 的 数 据 库 缓 存 区 写 到 数 据 库 数 据 文 件 中 LGWR: 日 志 写 入 器 进 程 (log writer process) 负 责 将 生 成 的 重 做 信 息 从 日 志 缓 冲 区 写 到 数 据 库 联 机 重 做 日 志 中 用 户 会 话 提 交 时 会 通 知 LGWR 写 入 信 息, 当 重 做 日 志 缓 冲 区 快 被 写 满 时 也 需 要 通 知 LGWR 进 程 CKPT: 在 执 行 检 查 点 操 作 时,CKPT 进 程 会 向 DBWn 通 知 该 检 查 点 CKPT 进 程 也 用 当 前 的 检 查 点 信 息 来 更 新 数 据 库 数 据 文 件 头 2. 用 户 进 程 和 服 务 器 进 程 用 户 连 接 到 数 据 库 时 会 生 成 一 个 用 户 进 程 ( 或 者 是 一 个 在 Windows NT 上 启 动 的 新 线 程 ), 该 进 程 将 与 另 一 个 生 成 的 服 务 器 进 程 连 接 这 些 进 程 使 用 多 种 协 议 ( 如 Bequeath 协 议 或 TCP/IP 协 议 ) 相 互 通 信 3. 其 他 可 选 的 Oracle 进 程 根 据 Oracle 数 据 库 参 数 文 件 的 配 置, 启 动 Oracle 实 例 时 可 能 会 运 行 许 多 其 他 的 Oracle 进 程 ( 在 某 些 情 况 下, 可 选 的 进 程 可 能 会 在 请 求 后 很 长 一 段 时 间 后 才 启 动 ) 由 于 大 多 数 可 选 的 进 程 与 RMAN 数 据 库 备 份 与 恢 复 都 没 有 关 系 ( 除 非 该 进 程 的 故 障 会 导 致 数 据 库 崩 溃, 但 这 种 情 况 很 少 发 生 ), 因 此 不 必 过 多 地 讨 论 这 些 进 程 Oracle 的 相 关 文 档 ( 可 通 过 otn.oracle.com 联 机 获 得 ) 中 收 录 了 所 有 可 选 的 进 程, 此 外 Oracle Press 出 版 的 书 籍 也 介 绍 了 一 些 有 关 这 方 面 的 知 识 与 RMAN 数 据 库 备 份 和 恢 复 有 一 定 关 系 的 一 种 可 选 进 程 是 ARCHn 进 程 如 果 需 要 进 行 联 机 备 份, 这 种 进 程 ( 事 实 上 可 能 存 在 一 个 或 多 个 这 样 的 进 程 ) 就 是 备 份 与 恢 复 进 程 的 关 键 因 素 参 阅 本 章 后 面 的 1.6.1 节, 可 以 更 深 入 地 了 解 ARCHn 进 程 1.5 Oracle 内 存 和 RMAN 本 小 节 将 介 绍 与 RMAN 有 关 的 内 存 区 与 任 何 进 程 相 同,RMAN 也 需 要 使 用 内 存, 这 些 内 存 用 于 RMAN 操 作, 也 用 于 数 据 库 交 互 首 先, 我 们 将 详 细 介 绍 Oracle SGA, 接 着 会 介 绍 私 有 全 局 区 (Private Global Area,PGA) Oracle 系 统 全 局 区 就 RMAN 备 份 和 恢 复 而 言, 我 们 所 关 心 的 主 要 内 存 结 构 称 为 系 统 全 局 区 (SGA) SGA 是 一 块 大 的 共 享 内 存 分 配 区, 它 可 以 分 为 以 下 几 个 内 存 子 结 构 : 数 据 库 缓 存 区 (database buffer cache) 共 享 池 (shared pool) 重 做 日 志 缓 冲 区 (redo log buffer) 大 池 (large pool)

第 1 章 Oracle Database 11g 备 份 与 恢 复 体 系 结 构 概 述 13 Java 池 (Java pool) 流 池 (Streams pool) 其 中,RMAN 用 户 最 关 心 的 是 共 享 池 和 大 池 RMAN 使 用 一 些 Oracle PL/SQL 程 序 包 来 执 行 操 作 ( 第 2 章 将 介 绍 这 些 内 容 ), 这 些 程 序 包 与 其 他 Oracle PL/SQL 程 序 包 相 同, 必 须 加 载 到 共 享 池 如 果 共 享 池 不 够 大 或 者 共 享 池 结 构 零 散, 就 有 可 能 不 能 够 执 行 RMAN 程 序 包 因 此, 为 共 享 池 分 配 用 于 RMAN 操 作 的 足 够 内 存 至 关 重 要 RMAN 在 特 定 情 况 下 才 使 用 大 池, 即 使 配 置 了 大 池,RMAN 也 不 会 在 默 认 情 况 下 使 用 大 池 如 果 BACKUP_TAPE_IO_SLAVES 或 DBWR_IO_SLAVES 数 据 库 参 数 中 的 任 一 参 数 被 设 置 为 TRUE, 那 么 RMAN 就 允 许 双 路 RMAN 备 份 ( 或 者 在 不 同 位 置 上 并 行 生 成 同 一 个 备 份 的 副 本 ) 如 果 希 望 模 拟 异 步 IO, 这 些 参 数 通 常 设 置 为 TRUE 这 时,Oracle 使 用 的 是 大 池 内 存, 而 不 是 本 地 内 存 默 认 情 况 下,Oracle 使 用 的 是 进 程 全 局 区 (Process Global Area,PGA), 因 此 没 有 必 要 为 很 少 使 用 的 大 池 配 置 大 量 的 内 存 在 SGA 中 定 义 内 存 分 配 基 于 数 据 库 参 数 文 件 中 的 参 数 设 置,Oracle 分 配 了 各 SGA 组 件 的 大 小 这 些 参 数 包 括 MEMORr_MAX_SIZE MEMORr_TARGET SGA_MAX_SIZE SGA_TARGET SHARED_POOL_SIZE DB_CACHE_SIZE DB_nK_CACHE_SIZE LOG_BUFFER LARGE_POOL_SIZE 和 JAVA_POOL_SIZE( 以 及 其 他 一 些 参 数 ), 基 于 使 用 的 不 同 的 版 本 可 能 会 有 些 差 别 Oracle 文 档 中 有 这 些 参 数 的 定 义, 可 以 参 阅 这 些 文 档 来 了 解 相 关 内 容 与 RMAN 使 用 有 关 的 主 要 参 数 有 SHARED_POOL_SIZE 和 LARGE_POOL_SIZE, 第 2 章 将 详 细 介 绍 这 两 个 参 数 前 面 简 要 讨 论 了 Oracle 实 例 的 组 成 部 分, 介 绍 了 不 同 的 Oracle 进 程 和 Oracle 内 存 结 构, 这 些 进 程 和 内 存 组 合 在 一 起 就 形 成 了 一 个 Oracle 实 例 现 在 我 们 创 建 了 一 个 Oracle 实 例, 可 以 准 备 讲 述 数 据 库 了 下 一 节 将 讨 论 组 成 Oracle 数 据 库 的 多 种 结 构 1.5.1 Oracle 数 据 库 下 面 将 介 绍 Oracle 数 据 库 自 身 的 体 系 结 构 一 个 Oracle 数 据 库 由 许 多 不 同 的 结 构 ( 包 括 一 些 逻 辑 结 构 物 理 结 构 和 物 理 逻 辑 结 构 ) 组 成 本 小 节 将 介 绍 每 种 结 构 类 型, 并 讨 论 Oracle 数 据 库 的 每 个 组 件 最 后 还 将 介 绍 闪 回 恢 复 区 (Flash Recovery Area,FRA) 和 自 动 存 储 管 理 (Automatic Storage Management,ASM) 来 结 束 本 节 Oracle 物 理 组 件 Oracle 数 据 库 物 理 体 系 结 构 包 括 以 下 组 件 : 数 据 库 数 据 文 件 联 机 重 做 日 志 归 档 重 做 日 志 数 据 库 控 制 文 件 Oracle 表 空 间

14 第 Ⅰ 部 分 Oracle RMAN 11g 基 础 知 识 闪 回 日 志 ( 可 选 组 件 ) 上 面 的 每 种 组 件 都 被 物 理 定 位 在 与 计 算 机 连 接 的 存 储 设 备 上 这 些 对 象 构 成 了 Oracle 数 据 库 的 物 理 实 体, 为 了 恢 复 数 据 库 还 可 能 需 要 从 备 份 中 还 原 和 恢 复 一 个 或 多 个 这 样 的 对 象 ( 除 了 闪 回 日 志 ) 下 面 将 详 细 介 绍 这 些 对 象 数 据 库 数 据 文 件 数 据 库 数 据 文 件 是 数 据 库 的 数 据 存 储 介 质, 这 些 数 据 文 件 与 表 空 间 相 联 系, 后 面 将 会 看 到 这 一 点 在 数 据 库 中 存 储 信 息 时, 信 息 最 终 会 存 储 在 这 些 物 理 文 件 中 每 个 数 据 库 数 据 文 件 都 包 含 一 个 数 据 文 件 头, 数 据 文 件 头 中 的 信 息 帮 助 跟 踪 这 个 数 据 文 件 的 当 前 状 态 数 据 文 件 头 在 检 查 点 操 作 期 间 被 更 新, 并 反 映 这 个 数 据 文 件 的 当 前 状 态 数 据 库 数 据 文 件 可 以 具 有 许 多 指 定 的 不 同 状 态 我 们 最 关 心 的 主 要 状 态 是 ONLINE 和 OFFLINE 状 态,ONLINE 是 正 常 状 态,OFFLINE 则 是 非 正 常 状 态 数 据 库 数 据 文 件 还 可 以 是 RECOVER 状 态, 该 状 态 表 示 这 个 数 据 文 件 存 在 问 题 并 且 需 要 被 恢 复 如 果 数 据 库 处 于 ARCHIVELOG 模 式 下 ( 后 面 将 详 细 介 绍 该 模 式 ), 可 以 使 数 据 文 件 脱 机, 这 可 能 是 特 定 的 恢 复 操 作 所 需 要 的 如 果 数 据 库 处 于 NOARCHIVELOG 模 式 下, 只 能 删 除 数 据 库 数 据 文 件 才 能 使 这 个 数 据 文 件 脱 机 因 为 脱 机 删 除 数 据 文 件 会 给 数 据 库 造 成 坏 影 响 ( 如 数 据 丢 失 ), 所 以 需 要 谨 慎 处 理 联 机 重 做 日 志 如 果 将 Oracle SCN 比 作 VCR 上 的 计 数 器, 那 么 重 做 日 志 就 好 比 录 像 带 联 机 重 做 日 志 负 责 记 录 数 据 库 中 发 生 的 每 个 原 子 操 作 更 改 考 虑 到 性 能 和 数 据 保 存 因 素, 每 个 Oracle 数 据 库 都 必 须 至 少 有 两 个 不 同 的 联 机 重 做 日 志 组, 大 部 分 数 据 库 通 常 都 具 备 两 个 以 上 的 联 机 重 做 日 志 组 出 于 保 护 的 目 的, 每 个 联 机 重 做 日 志 组 都 可 以 拥 有 多 个 位 于 不 同 磁 盘 驱 动 器 上 的 日 志 Oracle 将 并 行 地 写 入 不 同 的 日 志, 从 而 使 得 写 入 进 程 更 有 效 Oracle 以 轮 询 方 式 每 次 写 入 一 个 重 做 日 志 组 当 一 个 重 做 日 志 组 被 写 满 时,LGWR 进 程 会 关 闭 这 些 重 做 日 志 并 打 开 下 一 个 联 机 重 做 日 志 进 行 处 理 重 做 日 志 中 的 记 录 称 为 更 改 矢 量 (change vector) 每 个 更 改 矢 量 以 SCN 顺 序 来 代 表 一 个 原 子 数 据 库 更 改, 这 样 可 以 在 恢 复 (RMAN 恢 复 或 手 动 恢 复 ) 期 间 将 所 有 更 改 记 录 按 顺 序 应 用 于 数 据 库, 从 而 实 现 恢 复 故 障 时 间 点 ( 或 者 要 求 的 其 他 较 早 时 间 ) 的 数 据 库 LGWR 进 程 负 责 将 更 改 矢 量 ( 累 积 在 一 起 就 是 重 做 ) 从 重 做 日 志 缓 冲 区 中 写 入 到 联 机 重 做 日 志 中, 本 章 的 1.7 节 将 详 细 讨 论 这 个 问 题 归 档 的 重 做 日 志 Oracle 结 束 一 个 联 机 重 做 日 志 的 写 入 并 开 始 写 入 另 一 个 联 机 重 做 日 志 时, 会 发 生 日 志 切 换 (log switch) 如 果 数 据 库 处 于 ARCHIVELOG 模 式 下 并 且 正 在 运 行 ARCH 进 程, 日 志 切 换 的 结 果 是 生 成 联 机 重 做 日 志 的 一 个 副 本 这 个 联 机 重 做 日 志 的 副 本 称 为 归 档 的 重 做 日 志 Oracle 可 以 将 归 档 的 重 做 日 志 文 件 最 多 复 制 到 10 个 不 同 的 目 录 在 介 质 恢 复

第 1 章 Oracle Database 11g 备 份 与 恢 复 体 系 结 构 概 述 15 期 间, 数 据 库 使 用 归 档 的 重 做 日 志 来 执 行 恢 复 操 作, 在 1.7 节 中 将 详 细 讨 论 这 个 问 题 数 据 库 控 制 文 件 每 个 Oracle 数 据 库 都 有 一 个 或 多 个 数 据 库 控 制 文 件 控 制 文 件 中 包 含 了 许 多 数 据 库 信 息, 如 当 前 SCN 数 据 库 数 据 文 件 的 状 态 以 及 数 据 库 状 态 另 外, 控 制 文 件 也 存 储 多 种 RMAN 操 作 的 关 键 信 息, 如 每 个 数 据 库 数 据 文 件 的 备 份 状 态 如 果 丢 失 控 制 文 件, 则 需 要 遵 循 特 定 的 过 程 来 在 控 制 文 件 中 重 新 创 建 RMAN 类 别 在 控 制 文 件 中 还 包 含 一 类 DBA 感 兴 趣 的 关 于 检 查 点 SCN( 有 关 最 近 修 改 的 给 定 数 据 文 件 的 SCN) 的 信 息 Oracle 将 对 该 检 查 点 SCN 与 存 储 在 数 据 文 件 头 文 件 中 的 检 查 点 SCNs 进 行 交 叉 检 查 如 果 它 们 完 全 匹 配, 则 不 需 要 进 行 数 据 库 恢 复 工 作 反 之 则 需 要 进 行 某 种 类 型 的 恢 复 工 作, 例 如 当 系 统 崩 溃 时 进 行 的 自 动 恢 复 有 时 需 要 进 行 介 质 恢 复, 例 如 当 数 据 文 件 丢 失 时 Oracle 表 空 间 Oracle 表 空 间 是 Oracle 的 一 种 非 实 体 部 分 表 空 间 是 Oracle 物 理 世 界 ( 表 现 形 式 为 数 据 库 数 据 文 件 ) 和 逻 辑 世 界 ( 表 现 形 式 为 Oracle 表 空 间 ) 之 间 的 链 接 我 们 通 常 将 表 空 间 当 作 物 理 - 逻 辑 结 构 Oracle 在 表 空 间 中 存 储 对 象, 如 表 和 索 引 表 空 间 由 一 个 或 多 个 Oracle 数 据 库 数 据 文 件 组 成, 因 此 一 个 表 空 间 可 用 的 总 空 间 取 决 于 所 有 数 据 库 数 据 文 件 分 配 的 总 空 间 的 大 小 表 空 间 可 以 是 OFFLINE 状 态 或 ONLINE 状 态, 还 可 以 处 于 READ WRITE 或 READ ONLY 模 式 下 如 果 表 空 间 处 于 READ ONLY 模 式 下, 表 空 间 的 内 容 就 不 会 更 改 因 为 READ ONLY 表 空 间 的 内 容 不 会 更 改, 所 以 DBA 通 常 在 表 空 间 被 设 为 只 读 后 只 备 份 一 次 READ ONLY 表 空 间 的 数 据 库 数 据 文 件 当 然, 如 果 这 个 表 空 间 不 再 处 于 READ ONLY 模 式 下, 就 需 要 再 次 启 动 表 空 间 备 份 闪 回 日 志 Oracle Database 10g 引 入 了 将 Oracle 数 据 库 闪 回 到 其 他 时 间 点 的 功 能 通 常 要 用 闪 回 日 志 来 帮 助 实 现 该 功 能 闪 回 日 志 存 储 在 FRA 中 Oracle 单 独 负 责 管 理 闪 回 日 志, 因 此 它 将 根 据 需 要 创 建 删 除 和 调 整 闪 回 日 志 的 大 小 同 样 要 注 意,Oracle 没 有 归 档 闪 回 日 志, 因 此 不 需 要 进 行 恢 复 RMAN 支 持 闪 回 恢 复 闪 回 恢 复 区 Oracle Database 10g 引 入 了 FRA 的 概 念, 它 允 许 用 户 在 磁 盘 上 定 义 一 块 中 心 区 域 以 用 来 恢 复 相 关 文 件 ( 例 如 RMAN 备 份 和 归 档 的 重 做 日 志 ) 尽 管 FRA 的 确 参 与 闪 回 数 据 库 (Flashback Database) 操 作, 但 请 注 意 不 要 将 闪 回 恢 复 区 与 Oracle 的 闪 回 数 据 库 特 性 混 淆,FRA 比 闪 回 数 据 库 的 功 能 要 强 大 得 多 下 面 的 结 构 可 存 储 在 FRA 中 : 归 档 的 重 做 日 志 RMAN 备 份 固 定 形 式 RMAN 数 据 文 件 副 本 闪 回 日 志

16 第 Ⅰ 部 分 Oracle RMAN 11g 基 础 知 识 数 据 库 控 制 文 件 的 副 本 每 个 重 做 日 志 组 的 一 个 成 员 控 制 文 件 自 动 备 份 和 副 本 我 们 将 在 第 2 章 和 第 3 章 中 更 详 细 地 介 绍 FRA Oracle 自 动 存 储 管 理 (ASM) Oracle ASM(Automatic Storage Management) 是 Oracle 用 于 管 理 数 据 库 文 件 的 集 成 系 统 ASM 支 持 多 种 不 同 的 文 件 系 统 类 型, 包 括 已 使 用 的 磁 盘 驱 动 器 原 始 磁 盘 驱 动 器 和 NetFiler 设 备 等 ASM 的 思 路 是 通 过 让 Oracle 负 责 基 本 的 磁 盘 管 理 操 作 ( 例 如 负 载 平 衡 和 数 据 保 护 ) 来 简 化 DBA 的 工 作 RMAN 支 持 ASM 基 础 架 构, 通 过 该 基 础 架 构 可 将 数 据 库 FRA 放 置 在 ASM 磁 盘 上, 或 者 可 以 直 接 备 份 到 ASM 磁 盘 虽 然 ASM 有 一 定 的 作 用, 但 我 们 认 为 在 大 多 数 Oracle 安 装 中 不 需 要 安 装 ASM 如 果 有 一 个 单 一 的 非 RAC 的 带 有 两 个 或 3 个 数 据 库 的 服 务 器, 则 不 需 要 ASM 在 本 书 中, 我 们 给 出 ASM 的 介 绍 是 为 了 让 用 户 在 使 用 RMAN 和 ASM 时, 可 以 使 用 ASM 进 行 备 份 和 恢 复 1.6 更 多 关 于 Oracle 重 做 日 志 的 内 容 尽 管 已 经 介 绍 了 一 些 Oracle 重 做 日 志 的 内 容, 但 仍 然 需 要 进 行 深 入 的 讨 论 因 为 它 非 常 重 要, 尤 其 是 本 书 重 点 讨 论 的 是 RMAN 您 可 能 会 产 生 疑 问 难 道 RMAN 不 能 为 我 解 决 所 有 问 题 吗? RMAN 的 确 试 图 为 您 解 决 所 有 问 题, 但 是 您 将 会 发 现 正 是 您 的 洞 察 力 帮 助 您 节 省 时 间, 而 这 种 洞 察 力 来 源 于 您 所 拥 有 的 知 识 按 图 索 骥 并 非 最 佳 方 式, 应 该 理 解 Oracle 备 份 与 恢 复 的 原 理 和 机 制 正 如 Carl Jung 所 说 一 个 人 穿 着 合 适 的 鞋 子 会 夹 坏 其 他 人 的 脚 趾 生 活 中 不 存 在 万 能 的 方 法 仅 仅 知 道 备 份 和 恢 复 的 简 单 原 理, 您 将 很 难 面 对 将 会 出 现 的 潜 在 的 问 题 通 常 当 数 据 库 建 立 时 创 建 重 做 日 志 当 数 据 库 发 生 变 化 时, 需 要 对 联 机 重 做 日 志 文 件 进 行 修 改, 例 如 创 建 更 多 的 重 做 日 志, 修 改 重 做 日 志 的 大 小, 甚 至 可 能 会 对 重 做 日 志 重 新 命 名 作 为 一 名 称 职 的 DBA, 应 该 理 解 联 机 重 做 日 志 和 归 档 重 做 日 志 本 节 将 详 细 讨 论 重 做 日 志, 首 先 对 重 做 日 志 进 行 介 绍, 然 后 讨 论 多 路 联 机 重 做 日 志 组 以 及 重 做 日 志 序 列 号, 最 后 讨 论 联 机 重 做 日 志 的 管 理 问 题 重 做 日 志 概 述 Oracle 重 做 日 志 包 含 两 类 : 联 机 重 做 日 志 归 档 重 做 日 志 在 还 原 和 恢 复 Oracle 数 据 库 时, 重 做 日 志 是 最 重 要 的 组 件 之 一 因 为 重 做 日 志 存 储 了 数 据 库 发 生 的 所 有 变 化 数 据 库 操 作 期 间,Oracle LGWR 进 程 负 责 将 数 据 操 作 情 况 写 入 联 机 重 做 日 志, 创 建 您 永 远 也 不 希 望 使 用 的 更 改 记 录

第 1 章 Oracle Database 11g 备 份 与 恢 复 体 系 结 构 概 述 17 LGWR 进 程 负 责 将 由 Oracle 事 务 建 立 的 称 为 redo 的 信 息 写 入 联 机 重 做 日 志 文 化 Redo 是 发 生 在 数 据 库 中 的 事 件 以 及 事 件 发 生 顺 序 的 记 录 几 乎 所 有 的 DML, DDL, 事 务 提 交 操 作 都 会 创 建 redo 在 数 据 库 恢 复 期 间,Oracle 读 取 redo 并 按 照 redo 建 立 的 顺 序 恢 复 数 据 库 一 般 该 恢 复 过 程 在 后 台 进 行, 不 需 要 DBA 参 与 ( 例 如 崩 溃 恢 复 ), 但 有 时 情 况 有 所 不 同, 例 如 在 数 据 库 恢 复 和 数 据 文 件 恢 复 时, 需 要 DBA 参 与 其 中 联 机 重 做 日 志 文 件 大 小 固 定 当 LGWR 进 程 达 到 给 定 的 联 机 重 做 日 志 文 件 末 端 时, 它 将 会 关 闭 该 文 件, 并 寻 找 另 外 的 联 机 重 做 日 志 文 件 并 写 入 该 进 程 称 为 日 志 切 换 (Log Switch) 日 志 切 换 是 一 个 串 行 进 程, 从 性 能 角 度 来 看, 该 进 程 开 销 昂 贵 由 于 本 书 并 不 讨 论 性 能 问 题, 所 以 不 对 日 志 切 换 的 性 能 问 题 开 展 更 加 深 入 的 讨 论 在 日 志 切 换 期 间,LGWR 寻 找 可 写 入 的 联 机 重 做 日 志 文 件 如 果 找 到 可 用 的 联 机 重 做 日 志 文 件,LGWR 将 打 开 该 文 件 并 开 始 写 入 redo 如 果 LGWR 不 能 找 到 可 用 文 件, 则 等 待 联 机 重 做 日 志 文 件, 直 到 有 可 用 的 为 止 在 等 待 期 间,LGWR 将 不 厌 其 烦 地 向 报 警 日 志 和 其 他 地 方 发 送 抱 怨 信 息, 此 时 对 数 据 库 的 操 作 将 被 挂 起, 也 就 是 说 数 据 库 将 暂 时 停 止 工 作, 通 常 应 该 尽 可 能 地 避 免 这 种 情 况 发 生 每 个 创 建 的 联 机 重 做 日 志 文 件 分 配 给 一 个 联 机 重 做 日 志 组 在 非 集 群 配 置 环 境 下, Oracle 在 同 一 时 间 仅 向 一 个 重 做 日 志 组 写 入 日 志 如 果 运 行 在 RAC(Real Application Clusters) 环 境 中, 每 个 RAC 实 例 将 redo 写 入 它 自 己 的 重 做 日 志 组 中 联 机 重 做 日 志 组 具 有 几 个 不 同 的 状 态 : Current 正 在 使 用 的 联 机 重 做 日 志 Active 处 于 该 状 态 的 联 机 重 做 日 志 不 在 当 前 重 做 日 志 文 件 组 中, 它 正 在 等 待 归 档 进 程 (ARCH Process) 将 重 做 复 制 到 归 档 重 做 日 志 中 Inactive 已 经 被 归 档 的 不 活 跃 的 联 机 重 做 日 志 Unused 正 在 被 Oracle 数 据 库 使 用 的 联 机 重 做 日 志 通 过 查 询 V$LOG 视 图 可 以 获 得 联 机 重 做 日 志 组 的 状 态 SQL> select group#, status from v$log; GROUP# STATUS ---------- ------------------------------------ 1 INACTIVE 2 INACTIVE 3 INACTIVE 4 CURRENT 多 路 联 机 重 做 日 志 如 果 active 联 机 重 做 日 志 丢 失, 将 会 造 成 巨 大 的 损 失 一 旦 发 生 该 问 题, 数 据 库 将 会 崩 溃, 也 将 可 能 面 临 数 据 的 丢 失, 需 要 大 量 的 时 间 进 行 恢 复 工 作 因 为 Oracle 数 据 库 恢 复 到 失 败 时 间 点 的 工 作 主 要 依 靠 联 机 重 做 日 志 的 可 用 性 正 如 您 所 知, 联 机 重 做 日 志 将 使 数 据 库 易 于 产 生 磁 盘 设 备 的 丢 失, 发 出 不 正 确 的 删 除 命 令, 或 其 他 的 错 误 为 解 决 这 一 问 题, 可 以 为 每 个 联 机 重 做 日 志 创 建 镜 像 若 为 一 个 联 机 重 做 日 志 建 立 一 个 以 上 的 副 本, 该 日 志 所 在 的 组 称 为 多 路 联 机 重 做 日 志 组 为 给 联 机 重 做 日 志 组 提 供 多 重 保 护,

18 第 Ⅰ 部 分 Oracle RMAN 11g 基 础 知 识 通 常 将 多 路 日 志 副 本 放 在 不 同 的 物 理 设 备 中 从 高 可 用 性 角 度 考 虑, 建 议 将 联 机 重 做 日 志 组 中 的 成 员 分 别 存 放 到 不 同 的 磁 盘 驱 动 设 备 上 以 下 是 一 个 建 立 多 路 联 机 重 做 日 志 组 的 示 例 : alter database add logfile group 4 ('C:\ORACLE\ORADATA\BETA1\RED004a.LOG', 'C:\ORACLE\ORADATA\BETA1\RED004b.LOG') size 100m reuse; 由 于 多 路 联 机 重 做 日 志 组 的 多 个 成 员 可 以 并 行 写 入, 因 此 在 每 个 组 中 尽 管 由 多 个 日 志 成 员 组 成 也 不 会 带 来 性 能 问 题 日 志 序 列 号 当 写 入 每 个 联 机 重 做 日 志 组 时, 该 组 将 被 分 配 一 个 序 号 该 序 号 称 为 日 志 序 列 号 新 建 立 的 数 据 库 其 第 1 个 日 志 序 列 号 总 是 以 1 开 始 写 入 联 机 重 做 日 志 组 时, 该 序 号 在 发 生 日 志 切 换 操 作 后 将 按 顺 序 递 增 如 上 所 述, 下 一 个 写 入 的 联 机 重 做 日 志 序 列 号 为 2, 后 面 的 以 此 类 推 执 行 正 常 的 数 据 库 操 作 时,Oracle 将 打 开 一 个 可 用 的 联 机 重 做 日 志, 将 redo 写 入 其 中, 一 旦 填 满 联 机 重 做 日 志, 则 关 闭 它 一 旦 该 联 机 重 做 日 志 被 填 满,LGWR 进 程 将 切 换 到 另 一 个 联 机 重 做 日 志 组 此 时, 如 果 数 据 库 处 于 ARCHIVELOG 模 式,LGWR 将 激 活 ARCH 进 程,ARCH 进 程 将 以 顺 序 循 环 方 式 写 入 联 机 重 做 日 志 如 图 1-1 所 示 联 机 重 做 日 志 文 件 #1 联 机 重 做 日 志 文 件 #2 联 机 重 做 日 志 文 件 #3 图 1-1 写 入 联 机 重 做 日 志

第 1 章 Oracle Database 11g 备 份 与 恢 复 体 系 结 构 概 述 19 ARCH 进 程 响 应 LGWR 的 调 用, 将 在 由 Oracle 数 据 库 参 数 LOG_ARCHIVE_DEST_n 定 义 的 地 址 和 / 或 者 定 义 的 闪 回 恢 复 区 上 创 建 联 机 重 做 日 志 的 副 本 直 到 ARCH 进 程 至 少 创 建 了 一 个 归 档 重 做 日 志,Oracle 才 能 重 用 有 关 的 联 机 重 做 日 志 文 件 可 能 需 要 创 建 多 个 归 档 重 做 日 志 后, 相 关 联 的 联 机 重 做 日 志 才 能 够 被 Oracle 重 用, 这 将 由 系 统 的 配 置 所 决 定 在 创 建 归 档 重 做 日 志 时, 它 们 将 保 留 分 配 给 父 联 机 重 做 日 志 的 日 志 序 列 号 该 序 列 号 在 数 据 库 中 将 保 持 唯 一 性, 直 到 执 行 resetlogs 操 作 打 开 数 据 库 为 止 一 旦 执 行 resetlogs 操 作, 日 志 序 列 号 将 重 置 为 1 在 执 行 恢 复 操 作 期 间 使 用 resetlogs 命 令 启 动 数 据 库 时 还 需 要 注 意 一 点 如 果 使 用 的 是 Oracle Database 10g 或 者 更 高 的 版 本,Oracle 提 供 使 用 执 行 resetlogs 命 令 时 间 点 前 的 备 份 来 恢 复 数 据 库 的 功 能 当 执 行 resetlogs 命 令 时,Oracle 将 会 在 联 机 重 做 日 志 重 置 时 归 档 所 有 未 归 档 的 联 机 重 做 日 志 该 项 功 能 提 供 使 用 执 行 resetlogs 命 令 时 间 点 前 的 备 份 恢 复 数 据 库 的 功 能 使 用 备 份 文 件 和 所 有 的 归 档 重 做 日 志, 可 以 实 现 跨 越 resetlogs 命 令 的 数 据 库 恢 复, 该 功 能 使 DBA 在 使 用 基 于 resetlogs 的 命 令 恢 复 数 据 库 后 不 用 忙 于 立 即 进 行 备 份 ( 尽 管 该 备 份 仍 然 是 非 常 重 要 的 ) 该 功 能 减 少 了 平 均 恢 复 时 间, 用 户 可 以 在 恢 复 后 打 开 数 据 库, 而 不 需 要 首 先 去 备 份 数 据 库 联 机 重 做 日 志 管 理 alter database 命 令 可 用 于 增 加 或 删 除 联 机 重 做 日 志 下 例 所 示 的 是 为 数 据 库 增 加 一 个 联 机 重 做 日 志 组 新 的 日 志 文 件 组 的 组 号 为 4, 定 义 其 大 小 为 100m alter database add logfile group 4 'C:\ORACLE\ORADATA\BETA1\REDO04.LOG' size 100m; 可 以 通 过 视 图 V$LOG 和 视 图 V$LOGFILE 查 看 日 志 文 件 组 的 结 果 SQL> select group#, sequence#, bytes, members from v$log 2 where group#=4; GROUP# SEQUENCE# BYTES MEMBERS -------------------------------------------------------- 4 0 104, 857, 600 1 SQL> select group#, member from v$logfile 2 where group#=4; GROUP# MEMBERS -------------------------------------------------------- 4 C:\ORACLE\ORADATA\BETA1\REDO04.LOG 下 面 的 例 子 中, 将 重 做 日 志 文 件 组 4 从 数 据 库 中 删 除 注 意 这 并 不 能 完 全 删 除 其 物 理 文 件 在 删 除 日 志 文 件 组 后, 还 需 要 执 行 该 功 能 这 将 很 危 险, 所 以 操 作 时 要 谨 慎 : alter database drop logfile group 4; 注 意 : 若 使 用 FRA 或 者 设 置 了 参 数 DB_CREATE_ONLINE_LOG_DEST_n, 那 么 在 您 发 出 删 除 命 令 后,Oracle 将 删 除 联 机 重 做 日 志

20 第 Ⅰ 部 分 Oracle RMAN 11g 基 础 知 识 当 希 望 调 整 日 志 文 件 组 大 小 时, 需 要 先 删 除 该 日 志 文 件 组, 然 后 以 希 望 的 大 小 重 新 建 立 该 日 志 文 件 组 1.6.1 ARCHIVELOG 模 式 与 NOARCHIVELOG 模 式 Oracle 数 据 库 可 以 在 两 种 模 式 下 运 行 默 认 情 况 下, 数 据 库 在 NOARCHIVELOG 模 式 下 创 建, 这 种 模 式 允 许 正 常 的 数 据 库 操 作, 但 是 不 提 供 时 间 点 恢 复 操 作 或 联 机 备 份 的 功 能 如 果 要 实 现 联 机 备 份 ( 或 热 备 份 ), 就 需 要 以 ARCHIVELOG 模 式 运 行 数 据 库 在 ARCHIVELOG 模 式 下, 数 据 库 通 过 ARCH 进 程 在 一 个 或 多 个 归 档 日 志 目 标 目 录 中 生 成 所 有 联 机 重 做 日 志 的 副 本 使 用 ARCHIVELOG 模 式 不 仅 仅 是 简 单 地 将 数 据 库 置 入 ARCHIVELOG 模 式, 还 需 要 对 数 据 库 进 行 一 些 配 置 用 户 还 必 须 配 置 ARCH 进 程, 并 且 提 供 归 档 的 重 做 日 志 目 标 目 录 需 要 注 意 的 是, 一 旦 Oracle 数 据 库 处 于 ARCHIVELOG 模 式 下, 数 据 库 活 动 将 在 所 有 可 用 的 联 机 重 做 日 志 被 使 用 过 之 后 被 挂 起 数 据 库 在 归 档 这 些 联 机 重 做 日 志 前 保 持 挂 起 状 态 因 此, 对 于 处 在 ARCHIVELOG 模 式 下 的 数 据 库, 错 误 配 置 将 导 致 它 因 不 能 归 档 当 前 联 机 重 做 日 志 而 挂 起 所 有 的 操 作 这 听 起 来 很 严 重, 但 实 际 上 确 实 如 此, 归 结 于 以 下 的 一 些 基 本 方 面 : 适 当 地 配 置 数 据 库 ( 本 书 涉 及 数 据 库 的 备 份 与 恢 复 的 配 置 ) 确 保 有 足 够 的 可 用 空 间 确 保 操 作 与 预 期 一 致 例 如, 如 果 在 ARCHIVELOG 模 式 下 的 数 据 库 中 定 义 闪 回 恢 复 区, 则 要 确 保 归 档 重 做 日 志 已 被 成 功 写 入 到 该 目 录 中 第 3 章 将 深 入 介 绍 ARCHIVELOG 模 式 的 含 义, 实 现 ( 以 及 禁 用 ) 它 的 方 法, 以 及 ARCHIVELOG 模 式 操 作 的 配 置 1.6.2 Oracle 逻 辑 结 构 Oracle 中 存 在 一 些 不 同 的 逻 辑 结 构, 这 些 结 构 包 括 表 索 引 视 图 集 群 用 户 自 定 义 对 象 和 数 据 库 中 的 其 他 对 象 模 式 (schema) 由 这 些 对 象 组 成, 如 果 要 存 储 对 象, 就 需 要 从 表 空 间 中 分 配 存 储 空 间 Oracle 备 份 和 恢 复 策 略 的 最 终 目 标 是 能 使 这 些 逻 辑 结 构 恢 复 到 给 定 的 时 间 点 当 然, 使 用 这 些 逻 辑 结 构 恢 复 数 据, 使 数 据 状 态 与 给 定 时 间 点 一 致 也 是 非 常 重 要 的 例 如, 如 果 要 将 一 个 表 恢 复 到 上 午 10 点 所 示 的 状 态, 但 是 却 只 恢 复 了 与 该 表 关 联 的 上 午 9 点 所 对 应 的 一 个 索 引, 这 个 不 一 致 的 恢 复 会 导 致 可 怕 的 影 响 这 个 一 致 性 恢 复 概 念 就 是 Oracle 的 备 份 和 恢 复 机 制 的 原 则,RMAN 则 完 全 体 现 了 这 个 备 份 和 恢 复 体 系 结 构 的 架 构 1.7 组 合 情 况 现 在 已 介 绍 了 Oracle 数 据 库 的 多 种 组 件 ( 还 有 许 多 其 他 的 组 件 ), 下 面 综 合 地 说 明 它 们 如 何 一 起 运 作 首 先 将 介 绍 整 个 数 据 库 启 动 进 程, 随 后 说 明 数 据 库 的 基 本 操 作

第 1 章 Oracle Database 11g 备 份 与 恢 复 体 系 结 构 概 述 21 1.7.1 数 据 库 的 启 动 和 关 闭 Eliza 是 一 名 DBA, 她 刚 结 束 对 数 据 库 的 操 作, 此 时 需 要 重 新 启 动 这 个 数 据 库 Eliza 启 动 SQL*Plus, 使 用 系 统 数 据 库 管 理 员 的 账 号 作 为 SYS 连 接 数 据 库, 并 在 SQL 提 示 符 下 执 行 startup 命 令, 打 开 数 据 库 下 面 的 示 例 说 明 了 执 行 startup 命 令 的 结 果 : SQL> startup ORACLE instance started. Total System Global Area Fixed Size Variable Size Database Buffers Redo Buffers Database mounted. Database opened. 84700976 bytes 282416 bytes 71303168 bytes 12582912 bytes 532480 bytes 前 面 介 绍 过 执 行 startup 命 令 后 会 经 历 3 个 不 同 阶 段 : 实 例 启 动 数 据 库 加 载 以 及 数 据 库 打 开 现 在 将 详 细 介 绍 这 3 个 阶 段 1. 实 例 启 动 ( 未 加 载 启 动 ) 启 动 数 据 库 时 首 先 经 历 的 阶 段 是 实 例 启 动 在 这 个 阶 段,Oracle 分 析 数 据 库 参 数 文 件, 并 且 通 过 设 法 获 得 实 例 锁 来 确 定 实 例 还 未 运 行 随 后,Oracle 启 动 多 种 不 同 的 数 据 库 进 程 ( 参 阅 本 章 前 面 的 1.4.1 小 节 ), 如 DBWn 和 LGWR 进 程 Oracle 还 将 分 配 SGA 所 需 的 内 存 一 旦 启 动 了 实 例,Oracle 会 向 启 动 实 例 的 用 户 报 告 后 台 进 程 已 经 启 动 了 实 例, 以 及 为 SGA 分 配 了 多 少 内 存 如 果 Eliza 执 行 startup nomount 命 令, 那 么 Oracle 会 在 启 动 实 例 后 停 止 数 据 库 启 动 进 程 在 执 行 某 些 恢 复 操 作 ( 如 控 制 文 件 的 重 建 ) 时, 管 理 员 可 能 会 这 样 启 动 实 例 2. 数 据 库 加 载 ( 加 载 启 动 ) 启 动 进 程 中 的 第 二 个 阶 段 是 数 据 库 加 载 在 加 载 阶 段,Oracle 打 开 数 据 库 控 制 文 件 成 功 打 开 控 制 文 件 后,Oracle 从 这 个 控 制 文 件 中 析 取 数 据 库 数 据 文 件 名, 为 打 开 这 些 数 据 文 件 做 好 准 备 需 要 注 意 的 是, 这 个 时 候 Oracle 不 会 检 查 这 些 数 据 文 件 是 否 存 在, 而 只 是 从 控 制 文 件 中 标 识 数 据 文 件 的 位 置 完 成 这 个 步 骤 后,Oracle 向 用 户 报 告 已 经 加 载 了 数 据 库 如 果 Eliza 执 行 的 是 startup mount 命 令, 此 时 Oracle 会 停 止 打 开 数 据 库 并 等 待 下 一 个 指 令 当 Oracle 实 例 已 启 动 并 且 数 据 库 已 加 载 但 未 打 开 时, 可 以 执 行 某 些 恢 复 操 作, 这 些 操 作 包 括 将 数 据 库 数 据 文 件 和 恢 复 系 统 表 空 间 数 据 文 件 的 位 置 重 命 名 3. 数 据 库 打 开 Eliza 执 行 的 是 startup 命 令,Oracle 将 继 续 启 动 进 程 并 设 法 打 开 数 据 库 在 数 据 库 打 开 阶 段,Oracle 验 证 数 据 库 数 据 文 件 是 否 存 在 并 打 开 这 些 文 件 Oracle 打 开 数 据 文 件 时 会 检 查 数 据 文 件 头, 并 且 比 较 这 些 文 件 头 中 的 SCN 信 息 和 控 制 文 件 中 存 储 的 SCN 接 下

22 第 Ⅰ 部 分 Oracle RMAN 11g 基 础 知 识 来 将 讨 论 SCN SCN 是 跟 踪 数 据 库 状 态 的 Oracle 方 法 数 据 库 发 生 更 改 时, 就 会 生 成 与 更 改 关 联 的 SCN 在 数 据 库 数 据 文 件 中 写 入 更 改 时 ( 发 生 于 检 查 点 操 作 期 间 ), 数 据 文 件 头 会 更 新 当 前 SCN 当 前 SCN 也 会 被 记 录 在 数 据 库 控 制 文 件 中 Oracle 设 法 打 开 数 据 库 时 会 检 查 每 个 数 据 文 件 和 数 据 库 控 制 文 件 中 的 SCN 如 果 SCN 相 同 并 且 位 映 射 标 记 设 置 正 确, 就 认 为 这 个 数 据 库 是 一 致 的, 即 可 打 开 和 使 用 数 据 库 注 意 : SCN 可 以 看 作 是 VCR 上 的 计 数 器 随 着 时 间 的 推 移,VCR 计 数 器 会 不 断 增 加, 并 指 向 磁 带 所 在 的 当 前 时 间 点 因 此, 如 果 要 观 看 磁 带 上 的 节 目, 则 可 以 将 磁 带 倒 退 ( 或 快 进 ) 到 相 应 的 计 数 器 位 置 ( 即 该 节 目 的 开 始 位 置 ) SCN 的 工 作 原 理 与 VCR 计 数 器 相 同 Oracle 需 要 恢 复 数 据 库 时 会 倒 退 到 相 应 的 SCN, 然 后 重 放 这 个 SCN 后 的 所 有 事 务, 直 至 数 据 库 恢 复 如 果 SCN 不 相 同, 则 Oracle 会 自 动 执 行 灾 难 或 实 例 恢 复 如 果 联 机 重 做 日 志 文 件 中 存 在 生 成 一 致 的 映 像 所 需 要 的 重 做, 就 会 发 生 灾 难 或 实 例 恢 复 如 果 由 于 数 据 文 件 损 坏 或 者 由 于 恢 复 需 要 的 重 做 不 在 联 机 重 做 日 志 中 而 不 能 执 行 灾 难 或 实 例 恢 复,Oracle 会 要 求 DBA 执 行 介 质 恢 复 (media recovery) 介 质 恢 复 需 要 从 一 个 数 据 库 备 份 中 恢 复 一 个 或 多 个 数 据 库 数 据 文 件, 与 实 例 恢 复 不 同 的 是, 介 质 恢 复 是 一 个 手 动 执 行 的 进 程 RMAN 能 够 用 于 介 质 恢 复, 在 后 面 的 章 节 中 将 讨 论 这 个 问 题 一 旦 数 据 库 打 开 进 程 完 全 成 功 之 后 ( 没 有 恢 复 灾 难 恢 复 或 介 质 恢 复 ), 数 据 库 就 可 以 用 于 业 务 4. 关 闭 数 据 库 当 然,Eliza 在 某 时 间 点 可 能 要 关 闭 数 据 库 为 了 关 闭 数 据 库,Eliza 可 以 执 行 shutdown 命 令 这 条 命 令 将 关 闭 和 卸 载 数 据 库, 然 后 几 乎 完 全 按 照 与 前 面 介 绍 的 启 动 进 程 相 反 的 顺 序 来 关 闭 实 例 shutdown 命 令 有 若 干 选 项 需 要 特 别 注 意 的 是 : 使 用 shutdown abort 命 令 基 本 上 相 当 于 模 拟 的 数 据 库 灾 难, 这 条 命 令 很 常 用, 并 且 极 少 出 现 问 题 但 Oracle 通 常 建 议 如 果 有 可 能, 应 在 数 据 库 处 于 一 致 状 态 的 情 况 下 关 闭 数 据 库 如 果 必 须 使 用 shutdown abort 命 令 来 关 闭 数 据 库 ( 在 实 际 中, 由 于 断 电 约 束 会 经 常 出 现 这 种 情 况 ), 我 们 就 应 当 使 用 startup 命 令 ( 或 者 可 能 是 startup restrict 命 令 ) 重 新 打 开 这 个 数 据 库 接 下 来, 在 执 行 任 何 脱 机 备 份 操 作 前 应 当 使 用 shutdown immediate 命 令 来 关 闭 数 据 库 需 要 注 意 的 是, 由 于 在 关 闭 进 程 期 间 回 滚 事 务 需 要 一 定 的 时 间, 所 以 即 使 是 用 上 述 方 法 也 可 能 会 导 致 延 迟 关 闭 数 据 库

第 1 章 Oracle Database 11g 备 份 与 恢 复 体 系 结 构 概 述 23 注 意 : 只 要 备 份 / 恢 复 策 略 是 正 确 的, 数 据 库 在 脱 机 备 份 时 是 处 于 一 致 状 态 ( 如 正 常 的 shutdown 命 令 ) 还 是 非 一 致 状 态 ( 如 shutdown abort 命 令 ) 并 没 有 多 大 关 系 Oracle 建 议 在 数 据 库 处 于 一 致 状 态 时 执 行 冷 备 份, 我 们 也 建 议 执 行 这 样 的 操 作 ( 这 是 因 为 RMAN 不 会 备 份 联 机 重 做 日 志 ) 最 后 需 要 注 意 的 是 联 机 备 份 根 本 不 会 使 用 shutdown 命 令 1.7.2 使 用 数 据 库 和 内 核 本 小 节 将 介 绍 用 户 在 Oracle 数 据 库 中 执 行 的 一 些 不 同 事 务 首 先, 将 以 图 表 的 方 式 介 绍 数 据 库 的 所 有 进 程 内 存 结 构 和 数 据 库 的 其 他 组 件 ; 接 着 将 描 述 用 户 对 数 据 库 的 更 改 ; 然 后 查 看 提 交 更 改 及 相 应 的 操 作 方 式 最 后 还 要 讨 论 数 据 库 检 查 点 及 其 工 作 原 理 1. 进 程 和 数 据 库 关 系 前 面 已 经 介 绍 过 许 多 不 同 的 进 程 内 存 结 构 和 构 成 整 个 Oracle 数 据 库 的 其 他 对 象 如 图 1-2 所 示 的 图 形 能 够 帮 助 您 更 好 地 理 解 Oracle 中 不 同 组 件 之 间 的 相 互 关 系 可 选 进 程 SMON Oracle SGA PMON 共 享 的 服 务 器 进 程 实 时 的 应 用 程 序 集 群 其 他 进 程 工 作 队 列 RECO 并 行 查 询 CKPT 进 程 默 认 缓 冲 区 缓 存 DB 缓 冲 区 缓 存 共 享 池 重 做 日 志 缓 冲 区 LGWR 进 程 ARCH DBWn 进 程 大 池 Java 池 联 机 重 做 日 志 归 档 的 重 做 日 志 数 据 库 数 据 文 件 服 务 器 进 程 用 户 进 程 网 络 客 户 机 图 1-2 一 个 典 型 的 Oracle 数 据 库 2. 更 改 数 据 库 中 的 数 据 假 设 数 据 库 已 打 开, 用 户 Fred 要 在 DEPT 表 中 为 房 屋 管 理 部 门 添 加 一 条 新 记 录 为 此, 他 可 能 会 执 行 下 面 的 SQL 语 句

24 第 Ⅰ 部 分 Oracle RMAN 11g 基 础 知 识 INSERT INTO DEPT VALUES (60,'JANITOR', 'DALLAS'); insert 语 句 以 及 update 和 delete 命 令 统 称 为 数 据 操 作 语 言 (Data Manipulation Language, DML) 执 行 insert 语 句 时 会 生 成 重 做, 并 且 重 做 被 存 储 在 Oracle SGA 的 重 做 日 志 缓 冲 区 中 需 要 注 意 的 是 不 管 是 否 存 在 commit 命 令, 此 命 令 都 生 成 重 做 delete 和 update 命 令 也 一 样 DML 的 另 一 个 结 果 是 生 成 撤 消 (undo), 并 且 撤 消 被 存 储 在 回 滚 段 (rollback segment) 中 Undo 由 一 系 列 指 令 组 成, 该 指 令 用 来 撤 消 ( 或 回 滚 ) 已 执 行 的 语 句 通 过 使 用 Undo, Oracle 可 以 回 滚 数 据 库 的 更 改, 并 且 为 其 他 用 户 提 供 读 取 一 致 性 映 像 (read consistent image, 也 称 为 读 取 一 致 性 ) 下 面 将 进 一 步 介 绍 commit 命 令 和 读 取 一 致 性 3. 提 交 更 改 执 行 insert 命 令 之 后, 为 了 确 保 这 个 更 改 被 提 交 给 数 据 库,Fred 还 要 执 行 commit 命 令 : COMMIT; 执 行 commit 命 令 的 作 用 包 括 : 对 于 在 提 交 commit 命 令 后 的 某 个 时 间 点 对 表 进 行 查 询 的 所 有 用 户 来 说, 这 个 更 改 是 可 见 的 如 果 Eliza 在 提 交 commit 命 令 后 查 询 DEPT 表, 她 将 看 到 部 门 60 但 如 果 Eliza 在 提 交 commit 命 令 前 已 经 启 动 了 一 个 查 询, 该 查 询 就 不 会 发 现 DEPT 表 的 更 改 如 果 数 据 库 处 于 NOARCHIVELOG 模 式 下, 那 么 并 且 要 求 灾 难 或 实 例 恢 复, 这 个 更 改 就 是 可 恢 复 的 如 果 数 据 库 处 于 ARCHIVELOG 模 式 下 ( 采 用 一 种 有 效 的 备 份 和 恢 复 策 略 ), 并 且 要 求 介 质 恢 复, 同 时 所 有 归 档 的 重 做 日 志 和 联 机 重 做 日 志 都 是 可 用 的, 那 么 这 个 更 改 就 是 可 恢 复 的 commit 命 令 使 Oracle LGWR 进 程 将 联 机 重 做 日 志 缓 冲 区 中 的 内 容 写 入 到 联 机 重 做 日 志 中 其 实 不 考 虑 commit 命 令, 未 提 交 的 重 做 也 会 被 写 入 到 联 机 重 做 日 志 中 ( 实 际 上 未 提 交 的 更 改 也 被 写 入 到 数 据 文 件 中 ) 执 行 一 条 commit 命 令 时,Oracle 在 重 做 日 志 缓 冲 区 中 写 入 一 个 提 交 矢 量 (commit vector), 并 且 在 提 交 返 回 之 前 将 缓 冲 区 中 的 内 容 写 入 到 磁 盘 上 只 有 在 重 做 被 成 功 地 写 入 联 机 重 做 日 志 之 后,Fred 的 会 话 发 出 的 提 交 才 会 返 回, 这 个 事 实 和 上 述 的 提 交 矢 量 确 保 了 Fred 所 做 的 更 改 是 可 恢 复 的 commit 命 令 与 读 取 一 致 性 您 是 否 注 意 到 Eliza 只 有 在 Fred 执 行 commit 命 令 后 才 能 查 看 他 所 做 的 更 改? 这 就 是 所 谓 的 读 取 一 致 性 (read consistency) 读 取 一 致 性 的 另 一 个 示 例 是 Eliza 在 Fred 提 交 更 改 之 前 启 动 报 告 假 定 Fred 在 Eliza 的 报 告 期 间 提 交 了 更 改 在 这 个 案 例 中, 由 于 报 告 启 动 时 不 存 在 Fred 插 入 的 记 录, 所 以 Eliza 的 报 告 中 如 果 显 示 部 门 60 的 记 录, 将 会 是 不 一 致 的 在 继 续 运 行 Eliza 的 报 告 时,Oracle 会 检 查 报 告 查 询 的 起 始 SCN, 并 把 它 和 Oracle 中 生 成 报 告 输 出 所 读 取 的 数 据 块 的 SCN 进 行 比 较 如 果 报 告 的 启 动 时 间 早 于 数 据 块 的 当

第 1 章 Oracle Database 11g 备 份 与 恢 复 体 系 结 构 概 述 25 前 SCN,Oracle 会 在 回 滚 段 中 查 找 该 数 据 块 的 撤 消, 这 样 可 以 允 许 Oracle 构 造 一 个 与 报 告 启 动 时 间 一 致 的 映 像 Fred 在 数 据 库 上 继 续 其 他 工 作 时,LGWR 进 程 按 常 规 写 入 联 机 重 做 日 志 一 个 联 机 重 做 日 志 在 某 些 时 间 点 会 被 写 满, 此 时 LGWR 会 关 闭 这 个 日 志 文 件, 打 开 并 开 始 写 入 下 一 个 日 志 文 件 在 这 个 过 渡 期 间,LGWR 还 会 通 知 ARCH 进 程 将 刚 使 用 的 日 志 文 件 复 制 到 归 档 日 志 备 份 目 录 中 4. 检 查 点 现 在, 您 可 能 想 弄 清 更 改 的 数 据 到 底 在 何 时 被 写 入 到 数 据 库 数 据 文 件 中? 前 面 介 绍 过 检 查 点 是 Oracle( 通 过 DBWR) 将 数 据 写 入 到 数 据 文 件 中 的 事 件 Oracle 中 存 在 几 种 不 同 的 检 查 点 检 查 点 会 引 发 下 面 这 些 事 件 : 重 做 日 志 切 换 正 常 的 数 据 库 关 闭 表 空 间 进 入 或 退 出 联 机 备 份 模 式 ( 参 阅 本 章 后 面 的 1.8.2 节 ) 需 要 注 意 的 是, 由 于 数 据 库 的 整 个 生 命 周 期 内 会 一 直 标 记 增 量 检 查 点 (incremental checkpoint), 这 为 数 据 库 减 少 执 行 灾 难 恢 复 所 需 的 总 时 间 提 供 了 方 法 在 数 据 库 运 行 时, Oracle 不 断 地 将 数 据 流 写 入 到 数 据 库 数 据 文 件 中, 这 些 写 操 作 不 会 阻 碍 数 据 库 的 运 行 Oracle 提 供 特 定 的 数 据 库 参 数 来 帮 助 确 定 Oracle 必 须 处 理 增 量 检 查 点 的 频 率 1.8 Oracle 备 份 与 恢 复 入 门 在 使 用 RMAN 前, 您 应 当 理 解 Oracle 中 一 些 常 用 的 备 份 与 恢 复 概 念 Oracle 中 的 备 份 通 常 分 为 两 种 类 型 : 逻 辑 备 份 和 物 理 备 份 下 面 将 简 要 介 绍 逻 辑 备 份 和 恢 复, 然 后 重 点 介 绍 Oracle 物 理 备 份 和 恢 复 1.8.1 逻 辑 备 份 与 恢 复 Oracle Database 11g 使 用 Oracle Data Pump( 数 据 泵 ) 体 系 结 构 来 支 持 逻 辑 备 份 和 恢 复 这 些 实 用 程 序 包 括 数 据 泵 导 出 程 序 (expdp) 和 数 据 泵 导 入 程 序 (impdp) 对 于 逻 辑 备 份 来 说, 时 间 点 恢 复 是 不 可 能 的 RMAN 不 进 行 逻 辑 备 份 和 恢 复, 因 此 本 书 不 讨 论 逻 辑 备 份 和 恢 复 问 题 1.8.2 Oracle 物 理 备 份 与 恢 复 RMAN 实 际 上 是 物 理 备 份 本 书 后 面 的 章 节 将 深 入 探 讨 RMAN, 在 这 之 前, 我 们 先 看 看 手 动 进 行 Oracle 数 据 库 的 物 理 备 份 与 恢 复 时 的 要 求 RMAN 可 以 将 我 们 从 繁 重 的 备 份 和 恢 复 工 作 中 解 脱 出 来, 但 是 它 们 应 用 的 某 些 原 理 是 相 同 的 了 解 手 动 备 份 和 恢 复 的 基 础 知 识 可 以 帮 助 您 理 解 RMAN 的 工 作 方 式, 并 有 助 于 将 其 与 以 前 的 Oracle 备 份 方 法 进 行 比 较 前 面 已 经 讨 论 过 Oracle 中 的 ARCHIVELOG 模 式 和 NOARCHIVELOG 模 式, 在 这

26 第 Ⅰ 部 分 Oracle RMAN 11g 基 础 知 识 两 种 模 式 下,Oracle 都 可 以 执 行 脱 机 备 份 此 外, 如 果 数 据 库 处 于 ARCHIVELOG 模 式, 那 么 Oracle 既 可 以 执 行 脱 机 备 份, 也 可 以 执 行 联 机 备 份 本 书 后 面 的 章 节 将 介 绍 使 用 RMAN 执 行 这 些 备 份 操 作 的 细 节 当 然, 备 份 数 据 库 时 最 好 能 够 恢 复 这 个 数 据 库 在 介 绍 有 关 联 机 备 份 和 脱 机 备 份 的 内 容 之 后, 将 讨 论 不 同 的 Oracle 恢 复 选 项 最 后, 在 这 几 节 中 将 简 要 介 绍 Oracle 的 手 动 备 份 与 恢 复 1. NOARCHIVELOG 模 式 下 的 物 理 备 份 前 面 已 经 讨 论 过 Oracle 数 据 库 中 的 NOARCHIVELOG 模 式, 这 种 数 据 库 操 作 模 式 只 在 数 据 库 关 闭 时 支 持 数 据 库 备 份 此 外,NOARCHIVELOG 模 式 下 数 据 库 的 完 全 恢 复 只 能 恢 复 到 备 份 的 时 间 点 按 照 下 面 的 步 骤 可 以 在 NOARCHIVELOG 模 式 中 执 行 数 据 库 的 手 动 备 份 ( 需 要 注 意 的 是, 如 果 使 用 RMAN, 这 些 步 骤 会 有 所 不 同, 这 将 在 后 面 的 章 节 中 介 绍 ): (1) 完 全 关 闭 数 据 库 (2) 备 份 所 有 数 据 库 数 据 文 件 控 制 文 件 和 联 机 重 做 日 志 (3) 重 新 启 动 数 据 库 2. ARCHIVELOG 模 式 下 的 物 理 备 份 如 果 在 ARCHIVELOG 模 式 下 运 行 数 据 库, 那 么 既 可 以 在 数 据 库 运 行 时 完 全 备 份 数 据 库, 也 可 以 在 数 据 库 关 闭 时 进 行 即 使 是 在 数 据 库 关 闭 时 进 行 备 份, 步 骤 也 会 稍 有 不 同, 请 看 如 下 所 示 的 冷 备 份 步 骤 : (1) 完 全 关 闭 数 据 库 (2) 备 份 所 有 数 据 库 数 据 文 件 (3) 重 新 启 动 数 据 库 (4) 使 用 alter system switch logfile 命 令 强 制 执 行 一 个 联 机 重 做 日 志 切 换 一 旦 归 档 了 联 机 重 做 日 志, 那 么 就 备 份 所 有 归 档 的 重 做 日 志 (5) 使 用 alter database backup control file to trace 命 令 和 alter database backup controlfile to 'file_name' 命 令 创 建 控 制 文 件 的 一 个 备 份 当 然, 在 数 据 库 处 于 ARCHIVELOG 模 式 时, 您 有 可 能 想 完 成 数 据 库 的 联 机 备 份 ( 热 备 份 ) 数 据 库 处 于 ARCHIVELOG 模 式 时,Oracle 允 许 在 数 据 库 打 开 和 运 行 的 同 时 备 份 每 个 单 独 的 表 空 间 与 其 数 据 文 件, 甚 至 还 可 以 在 不 同 的 时 刻 备 份 选 择 的 数 据 库 部 分 使 用 下 面 的 步 骤 可 以 执 行 表 空 间 的 一 个 联 机 备 份 : (1) 使 用 alter tablespace begin backup 命 令 将 需 要 备 份 的 表 空 间 和 数 据 文 件 置 入 联 机 备 份 模 式 如 果 希 望 备 份 整 个 数 据 库, 则 可 以 使 用 alter database begin backup 命 令 将 所 有 数 据 库 表 空 间 置 入 热 备 份 模 式 (2) 备 份 与 刚 被 置 入 热 备 份 模 式 的 表 空 间 相 关 联 的 数 据 文 件 ( 可 以 选 择 备 份 指 定 的 数 据 文 件 ) (3) 对 于 在 步 骤 (1) 中 置 入 联 机 备 份 模 式 的 每 个 表 空 间 来 说, 都 要 执 行 alter tablespace

第 1 章 Oracle Database 11g 备 份 与 恢 复 体 系 结 构 概 述 27 end backup 命 令 将 其 从 热 备 份 模 式 中 取 出 如 果 希 望 将 所 有 表 空 间 从 热 备 份 模 式 中 取 出, 可 以 使 用 alter database end backup 命 令 (4) 使 用 alter system switch logfile 命 令 强 制 执 行 一 个 联 机 重 做 日 志 切 换 (5) 一 旦 完 成 了 日 志 切 换 并 归 档 了 当 前 的 联 机 重 做 日 志, 就 备 份 所 有 归 档 的 重 做 日 志 需 要 注 意 的 是, 步 骤 (5) 中 的 日 志 切 换 和 归 档 的 重 做 日 志 备 份 是 必 需 的, 这 是 因 为 恢 复 操 作 必 须 应 用 在 备 份 期 间 生 成 的 所 有 重 做 上 Oracle 在 联 机 备 份 期 间 不 断 地 物 理 更 新 数 据 文 件 ( 除 了 数 据 文 件 头 ) 时, 在 备 份 操 作 期 间 存 在 数 据 块 分 离 的 可 能 性, 这 种 可 能 性 会 导 致 备 份 的 数 据 文 件 不 一 致 此 外, 数 据 库 数 据 文 件 可 能 在 备 份 之 后 但 是 在 整 个 备 份 进 程 结 束 之 前 被 写 入, 由 于 备 份 中 的 每 个 数 据 文 件 当 前 可 能 会 有 不 同 的 SCN, 因 此 数 据 文 件 备 份 映 像 会 不 一 致, 所 以 拥 有 在 备 份 期 间 生 成 的 重 做 以 应 用 于 恢 复 是 非 常 重 要 的 执 行 alter tablespace begin backup 命 令 或 alter database begin backup 命 令 时, 重 做 生 成 会 发 生 更 改 一 般 来 说,Oracle 只 将 更 改 矢 量 存 储 为 重 做 记 录 这 些 小 型 的 记 录 只 定 义 已 经 发 生 的 更 改 当 数 据 文 件 处 于 联 机 备 份 模 式 时,Oracle 会 记 录 数 据 库 数 据 文 件 的 整 个 块 更 改, 而 不 是 仅 仅 记 录 更 改 矢 量, 这 意 味 着 联 机 备 份 期 间 总 的 重 做 生 成 会 大 幅 增 加, 这 样 在 热 备 份 进 程 执 行 期 间 所 需 的 磁 盘 空 间 和 CPU 开 销 会 受 到 影 响 RMAN 提 供 了 不 将 表 空 间 置 入 热 备 份 模 式 而 执 行 热 备 份 的 功 能, 这 样 就 避 免 了 使 用 额 外 的 I/O 操 作 当 结 束 数 据 文 件 的 联 机 备 份 状 态 时, 就 可 以 进 行 正 常 的 操 作 还 需 要 注 意 的 是 在 ARCHIVELOG 模 式 的 两 种 备 份 中 ( 联 机 备 份 和 脱 机 备 份 ), 并 不 备 份 联 机 重 做 日 志, 而 是 备 份 数 据 库 的 归 档 的 重 做 日 志 此 外, 也 不 会 备 份 控 制 文 件, 但 是 会 创 建 备 份 控 制 文 件, 这 是 因 为 在 恢 复 期 间 不 希 望 冒 险 重 写 联 机 重 做 日 志 或 控 制 文 件 至 于 为 什 么 不 恢 复 联 机 重 做 日 志, 那 是 因 为 在 ARCHIVELOG 模 式 的 恢 复 期 间, 联 机 重 做 日 志 中 可 能 有 最 新 的 重 做, 这 样 当 前 的 联 机 重 做 日 志 将 被 用 于 完 全 的 时 间 点 恢 复 由 于 这 个 原 因, 我 们 不 在 ARCHIVELOG 模 式 的 数 据 库 恢 复 期 间 重 写 联 机 重 做 日 志 如 果 数 据 库 丢 失 了 联 机 重 做 日 志 ( 希 望 不 会 发 生 这 种 情 况 ), 就 必 须 使 用 所 有 归 档 的 重 做 日 志 来 执 行 时 间 点 恢 复 出 于 与 不 备 份 联 机 重 做 日 志 相 同 的 原 因, 我 们 也 不 备 份 控 制 文 件 因 为 当 前 控 制 文 件 包 含 最 新 的 联 机 重 做 日 志 信 息 和 归 档 的 重 做 日 志 信 息, 所 以 我 们 不 想 用 这 些 对 象 先 前 的 信 息 来 重 写 最 新 的 信 息 如 果 丢 失 了 所 有 的 控 制 文 件, 则 可 以 使 用 备 份 控 制 文 件 来 恢 复 数 据 库 最 后 来 看 看 对 归 档 的 重 做 日 志 文 件 做 补 充 备 份 以 及 保 护 归 档 的 重 做 日 志 不 丢 失 的 其 他 方 法 丢 失 归 档 的 重 做 日 志 直 接 影 响 将 数 据 库 恢 复 到 故 障 点 的 能 力 如 果 丢 失 了 归 档 的 重 做 日 志 并 且 联 机 重 做 日 志 组 不 再 含 有 该 日 志 序 列 号, 数 据 库 就 只 能 恢 复 到 丢 失 的 归 档 的 重 做 日 志 序 列 号 之 前 的 日 志 序 列 号 3. NOARCHIVELOG 模 式 下 的 恢 复 如 果 需 要 在 NOARCHIVELOG 模 式 下 恢 复 一 个 备 份, 可 以 简 单 地 恢 复 所 有 数 据 库 数

28 第 Ⅰ 部 分 Oracle RMAN 11g 基 础 知 识 据 文 件 控 制 文 件 和 联 机 重 做 日 志, 然 后 再 启 动 数 据 库 当 然, 完 整 的 恢 复 可 能 还 需 要 恢 复 Oracle RDBMS 软 件 参 数 文 件 和 其 他 所 需 的 Oracle 项, 本 章 的 最 后 部 分 将 介 绍 这 些 内 容 需 要 注 意 的 是 在 NOARCHIVELOG 模 式 下 的 恢 复 只 能 恢 复 至 最 后 备 份 的 时 间 点 如 果 在 NOARCHIVELOG 模 式 中 恢 复 一 个 数 据 库 备 份, 我 们 只 能 恢 复 该 备 份 时 间 点 的 数 据 库 如 果 数 据 库 处 于 NOARCHIVELOG 模 式, 就 不 能 恢 复 备 份 时 间 点 后 的 任 何 更 改 4. ARCHIVELOG 模 式 下 的 恢 复 使 用 联 机 备 份 或 脱 机 备 份 都 可 以 备 份 ARCHIVELOG 模 式 下 的 数 据 库 与 NOARCHI- VELOG 模 式 相 比, 我 们 可 以 在 ARCHIVELOG 模 式 下 恢 复 故 障 点 发 生 时 的 数 据 库 此 外, 可 以 选 择 恢 复 到 指 定 时 间 点 的 数 据 库, 还 可 以 恢 复 基 于 更 改 号 的 指 定 时 间 点 的 数 据 库 ARCHIVELOG 模 式 恢 复 也 允 许 执 行 对 数 据 文 件 表 空 间 或 整 个 数 据 库 的 特 定 恢 复 此 外, 还 可 以 执 行 时 间 点 恢 复 或 指 定 SCN 的 恢 复 我 们 将 简 要 介 绍 这 些 恢 复 选 项 本 部 分 将 简 要 概 述 在 ARCHIVELOG 模 式 下 数 据 库 的 完 全 恢 复 接 下 来 将 讨 论 表 空 间 和 数 据 文 件 恢 复, 然 后 讨 论 时 间 点 恢 复 ARCHIVELOG 模 式 下 的 完 全 恢 复 假 定 数 据 库 故 障 没 有 损 害 当 前 每 个 联 机 重 做 日 志 组 中 的 所 有 成 员 和 未 备 份 的 任 何 归 档 的 重 做 日 志, 那 么 我 们 可 以 在 ARCHIVELOG 模 式 下 恢 复 故 障 点 的 数 据 库 备 份 如 果 丢 失 了 归 档 的 重 做 日 志 或 联 机 重 做 日 志, 就 需 要 执 行 某 些 形 式 的 时 间 点 恢 复, 后 面 将 讨 论 时 间 点 恢 复 问 题 此 外, 如 果 丢 失 了 当 前 控 制 文 件 的 所 有 副 本, 就 需 要 恢 复 控 制 文 件 并 执 行 不 完 全 恢 复 执 行 下 面 的 步 骤 可 以 在 ARCHIVELOG 模 式 下 从 数 据 库 的 一 个 备 份 中 执 行 数 据 库 的 完 全 恢 复 : (1) 从 备 份 中 还 原 所 有 数 据 库 数 据 文 件 (2) 还 原 所 有 备 份 的 归 档 的 重 做 日 志 (3) 加 载 数 据 库 ( 使 用 startup mount 命 令 ) (4) 恢 复 数 据 库 ( 使 用 recover database 命 令 ) (5) Oracle 提 示 您 应 用 归 档 的 重 做 日 志 中 的 重 做 在 提 示 符 下 只 需 要 简 单 地 输 入 AUTO,Oracle 会 自 动 应 用 所 有 重 做 日 志 (6) 一 旦 应 用 了 所 有 重 做 日 志, 就 可 以 打 开 恢 复 的 数 据 库 ( 使 用 alter database open 命 令 ) ARCHIVELOG 模 式 下 的 表 空 间 恢 复 和 数 据 文 件 恢 复 在 数 据 库 加 载 或 数 据 库 打 开 时 可 以 执 行 表 空 间 恢 复 和 数 据 文 件 恢 复 按 照 下 面 的 步 骤 可 以 在 Oracle 数 据 库 打 开 时 执 行 一 个 表 空 间 恢 复 : (1) 使 表 空 间 脱 机 ( 使 用 alter tablespace offline 命 令 )

第 1 章 Oracle Database 11g 备 份 与 恢 复 体 系 结 构 概 述 29 (2) 还 原 与 要 恢 复 的 表 空 间 相 关 联 的 所 有 数 据 文 件 (3) 联 机 恢 复 表 空 间 ( 使 用 recover tablespace 命 令 ) (4) 一 旦 完 成 了 恢 复, 使 表 空 间 联 机 ( 使 用 alter tablespace online 命 令 ) 正 如 可 以 恢 复 表 空 间 一 样, 还 可 以 恢 复 指 定 的 数 据 文 件 这 样 做 的 优 点 是 可 以 保 持 表 空 间 联 机 在 恢 复 进 程 期 间 仅 仅 是 驻 留 在 脱 机 数 据 文 件 中 的 数 据 不 可 用, 数 据 库 的 其 他 部 分 在 恢 复 期 间 都 是 可 用 的 数 据 文 件 恢 复 的 基 本 步 骤 为 : (1) 使 数 据 文 件 脱 机 ( 使 用 alter database datafile 'file_name' offline 命 令 ) (2) 还 原 所 有 要 恢 复 的 数 据 文 件 (3) 联 机 恢 复 表 空 间 ( 使 用 recover datafile 命 令 ) (4) 一 旦 完 成 了 恢 复, 就 使 数 据 文 件 联 机 ( 使 用 alter database datafile 'file_name' online 命 令 ) ARCHIVELOG 模 式 下 的 时 间 点 恢 复 ARCHIVELOG 模 式 的 另 一 个 优 点 是 可 以 将 数 据 库 恢 复 到 指 定 时 间 点, 而 不 是 恢 复 到 发 生 故 障 时 的 状 态 在 创 建 克 隆 数 据 库 时 ( 可 能 出 于 测 试 和 报 告 的 原 因 而 创 建 克 隆 数 据 库 ), 或 者 在 主 要 的 应 用 程 序 错 误 和 用 户 错 误 情 况 中, 经 常 会 用 到 上 述 功 能 我 们 既 可 以 将 数 据 库 恢 复 到 指 定 时 间 点, 也 可 以 恢 复 到 指 定 数 据 库 SCN 的 状 态 如 果 要 恢 复 某 个 时 间 点 的 表 空 间, 则 需 要 恢 复 相 同 时 间 点 的 整 个 数 据 库 ( 除 非 执 行 表 空 间 的 时 间 点 恢 复, 这 是 另 一 种 恢 复 方 式 ) 例 如, 假 设 您 有 一 个 账 户 管 理 数 据 库, 大 部 分 数 据 位 于 ACCT 表 空 间 中, 并 且 您 打 算 恢 复 两 天 前 的 数 据 库 因 为 其 余 的 表 空 间 ( 例 如 SYSTEM TEMP 和 RBS 表 空 间 ) 仍 然 与 当 前 时 间 点 一 致, 所 以 您 不 能 只 是 还 原 ACCT 表 空 间 并 将 其 恢 复 到 两 天 前 的 时 间 点, 否 则 由 于 数 据 库 的 不 一 致, 数 据 库 将 打 开 失 败 执 行 下 面 的 步 骤 可 以 恢 复 某 一 时 间 点 的 数 据 库 : (1) 从 一 个 备 份 中 恢 复 所 有 数 据 库 数 据 文 件, 这 个 备 份 在 要 恢 复 数 据 库 的 时 间 点 之 前 结 束 (2) 使 用 recover database until time '01-01-2010 21:00:00' 命 令 并 且 应 用 所 需 的 重 做 日 志, 恢 复 指 定 时 间 点 的 数 据 库 (3) 一 旦 完 成 恢 复, 就 使 用 alter database open resetlogs 命 令 打 开 数 据 库 也 可 以 执 行 下 面 的 步 骤, 选 择 使 用 SCN 号 恢 复 数 据 库 : (1) 从 一 个 备 份 中 恢 复 所 有 数 据 库 数 据 文 件, 这 个 备 份 在 要 恢 复 数 据 库 的 时 间 点 之 前 结 束 (2) 使 用 recover database until change '221122' 命 令 并 且 应 用 所 需 的 重 做 日 志, 恢 复 指 定 系 统 更 改 号 (SCN) 的 数 据 库 (3) 一 旦 完 成 恢 复, 则 打 开 数 据 库 进 一 步 来 说, 可 以 应 用 数 据 库 的 更 改 并 在 应 用 指 定 的 归 档 的 重 做 日 志 之 后 手 动 取 消 进 程 : (1) 从 一 个 备 份 中 恢 复 所 有 数 据 库 数 据 文 件, 这 个 备 份 在 要 恢 复 数 据 库 的 时 间 点 之 前 结 束

30 第 Ⅰ 部 分 Oracle RMAN 11g 基 础 知 识 (2) 使 用 recover database until cancel 命 令 并 且 应 用 所 需 的 重 做 日 志, 恢 复 指 定 时 间 点 的 数 据 库 当 应 用 了 最 后 一 个 归 档 的 重 做 日 志 后, 可 以 简 单 地 执 行 cancel 命 令 来 结 束 重 做 日 志 应 用 (3) 一 旦 完 成 恢 复, 则 打 开 数 据 库 执 行 时 间 点 恢 复 ( 或 者 有 关 这 一 问 题 的 任 何 恢 复 ) 时 一 定 要 牢 记 数 据 库 的 一 致 性 概 念 如 果 要 恢 复 给 定 时 间 点 的 数 据 库, 就 必 须 使 用 在 这 个 时 间 点 之 前 结 束 的 备 份 来 恢 复 数 据 库, 还 必 须 利 用 所 有 归 档 的 重 做 日 志 ( 可 能 还 需 要 剩 余 的 联 机 重 做 日 志 ) 来 完 成 恢 复 闪 回 数 据 库 恢 复 另 一 种 可 用 的 恢 复 方 法 是 使 用 Oracle 的 闪 回 特 性, 这 在 13 章 中 有 详 细 介 绍 由 于 各 种 闪 回 功 能 使 得 数 据 库 从 用 户 级 或 应 用 级 错 误 中 恢 复 的 时 间 大 大 减 少 因 此, RMAN 提 供 了 对 Oracle Database 11g 闪 回 特 性 的 支 持, 本 书 将 在 后 面 进 行 全 面 的 介 绍 1.8.3 备 份 其 他 Oracle 组 件 我 们 已 经 简 要 介 绍 了 Oracle 备 份 和 恢 复 的 概 要, 最 后 一 个 问 题 是 讨 论 需 要 备 份 的 项 因 为 需 要 备 份 的 项 极 少 更 改, 所 以 这 些 项 通 常 不 会 被 频 繁 地 备 份 需 要 备 份 的 项 包 括 : Oracle RDBMS 软 件 (Oracle 主 目 录 和 Oracle 目 录 清 单 ) 网 络 参 数 文 件 (names.ora 文 件 sqlnet.ora 文 件 和 tnsnames.ora 文 件 ) 数 据 库 参 数 文 件 (init.ora 文 件 INI 文 件 等 ) 需 要 注 意 的 是 RMAN 具 有 支 持 同 时 备 份 数 据 库 参 数 文 件 ( 只 有 是 数 据 库 参 数 文 件 的 情 况 下 ) 和 控 制 文 件 的 新 功 能 系 统 oratab 文 件 和 其 他 与 Oracle 相 关 的 系 统 文 件 ( 例 如 用 于 Oracle 的 所 有 rc 启 动 脚 本 ) 作 为 备 份 和 恢 复 进 程 的 一 部 分, 定 期 地 备 份 这 些 项 相 当 重 要 因 为 RMAN 也 不 会 备 份 这 些 项, 所 以 不 管 执 行 手 动 备 份 还 是 RMAN 备 份, 我 们 都 需 要 有 计 划 地 备 份 上 述 的 这 些 项 可 以 看 到,Oracle 数 据 库 的 备 份 和 恢 复 进 程 包 括 许 多 步 骤 因 为 DBA 每 次 都 要 确 认 正 确 执 行 了 备 份, 所 以 他 们 通 常 会 编 写 一 些 脚 本 来 实 现 这 个 功 能 这 样 会 存 在 一 些 问 题 首 先, 脚 本 会 中 断 当 脚 本 中 断 时, 如 果 编 写 该 脚 本 的 DBA 休 假 或 离 开 了, 那 么 由 谁 来 维 护 这 个 脚 本 呢? 其 次, 我 们 必 须 编 写 脚 本 来 跟 踪 添 加 或 删 除 数 据 文 件, 或 者 必 须 从 所 需 的 脚 本 中 手 动 添 加 或 删 除 数 据 文 件 使 用 RMAN 可 以 得 到 一 个 备 份 和 恢 复 产 品, 这 个 产 品 免 费 地 包 含 在 基 本 数 据 库 产 品 中, 它 将 简 化 备 份 和 恢 复 进 程 的 复 杂 性 在 遇 到 问 题 时,Oracle 也 会 提 供 支 持 另 外, 使 用 RMAN 可 以 得 到 其 他 备 份 和 恢 复 进 程 无 法 提 供 的 功 能 我 们 将 在 后 面 的 章 节 中 介 绍 这 些 功 能 RMAN 解 决 了 上 面 提 出 的 所 有 问 题, 并 且 为 DBA 提 供 了 更 加 有 用 的 其 他 功 能 本 书 将 介 绍 这 些 功 能, 并 介 绍 如 何 利 用 这 些 功 能 更 加 方 便 地 执 行 各 种 操 作 以 及 更 加 可 靠 地 备 份 数 据 库

第 1 章 Oracle Database 11g 备 份 与 恢 复 体 系 结 构 概 述 31 1.9 小 结 虽 然 本 章 没 有 详 细 介 绍 RMAN, 但 是 简 要 介 绍 了 一 些 重 要 的 RMAN 基 础 知 识, 后 面 的 章 节 将 继 续 讨 论 这 些 内 容 我 们 介 绍 了 基 础 性 的 备 份 和 恢 复 概 念 ( 如 高 可 用 性 与 备 份 和 恢 复 计 划 ), 这 些 概 念 描 述 了 RMAN 的 主 要 目 的 随 后 给 出 了 一 些 需 要 熟 悉 的 Oracle 术 语 的 定 义, 在 后 面 的 章 节 中 将 会 用 到 这 些 术 语 接 下 来 还 回 顾 了 Oracle 数 据 库 体 系 结 构 和 内 部 操 作, 并 且 反 复 强 调 在 突 发 情 况 下 恢 复 数 据 库 时, 理 解 Oracle 的 内 部 工 作 原 理 是 非 常 重 要 的 最 后, 讨 论 了 Oracle 中 的 手 动 备 份 和 恢 复 操 作, 与 后 面 章 节 介 绍 的 RMAN 备 份 和 恢 复 操 作 相 比, 您 会 发 现 RMAN 实 质 上 是 一 种 备 份 和 恢 复 Oracle 数 据 库 的 简 单 解 决 方 案

第 2 章 本 章 将 逐 一 介 绍 RMAN 体 系 结 构 中 的 每 个 组 件, 并 解 释 这 些 组 件 在 成 功 的 Oracle 数 据 库 备 份 和 恢 复 中 所 起 的 作 用, 要 很 好 地 理 解 这 些 内 容 需 要 读 者 具 有 良 好 的 关 于 Oracle RDBMS 体 系 结 构 的 知 识 如 果 对 Oracle 数 据 库 的 各 类 组 件 不 太 了 解, 应 当 先 阅 读 第 1 章 或 其 他 有 关 数 据 库 管 理 的 初 学 者 指 南 讨 论 完 备 份 和 恢 复 涉 及 的 不 同 的 组 件 之 后, 我 们 将 在 磁 盘 上 生 成 一 个 简 单 的 备 份 进 程, 同 时 介 绍 所 用 到 的 每 个 组 件

34 第 Ⅰ 部 分 Oracle RMAN 11g 基 础 知 识 2.1 服 务 器 管 理 恢 复 第 1 章 介 绍 了 Oracle 体 系 结 构 中 备 份 与 恢 复 的 原 理 和 实 践 Oracle 体 系 结 构 会 创 建 和 运 行 一 些 脚 本, 这 些 脚 本 可 以 获 得 文 件 名, 并 将 这 些 文 件 与 表 空 间 关 联, 将 表 空 间 置 入 备 份 模 式, 使 用 一 个 OS 实 用 程 序 来 执 行 复 制 操 作, 最 后 退 出 这 个 备 份 模 式 不 过, 本 书 将 介 绍 如 何 使 用 恢 复 管 理 器 (Recovery Manager,RMAN) RMAN 实 现 一 种 服 务 器 管 理 恢 复 (Server-Managed Recovery,SMR) SMR 是 一 种 数 据 库 执 行 所 需 的 操 作 以 确 保 自 身 备 份 成 功 的 能 力, 依 赖 于 Oracle RDBMS 内 核 中 的 内 置 代 码 可 以 完 成 这 一 功 能 想 想 看, 有 谁 能 比 数 据 库 本 身 更 了 解 数 据 库 结 构 的 呢? SMR 的 功 能 主 要 体 现 在 能 够 减 少 用 户 的 操 作 随 着 企 业 复 杂 程 度 的 增 加, 以 及 单 个 DBA 所 负 责 的 数 据 库 数 量 的 增 加, 很 少 有 人 能 够 亲 自 维 护 数 十 个 甚 至 数 百 个 单 独 的 脚 本 换 句 话 说, 随 着 网 格 计 算 成 为 主 流 的 计 算 方 法, 人 们 不 再 需 要 亲 自 仔 细 检 查 每 个 数 据 库 备 份 的 所 有 细 节 相 反, 要 由 数 据 库 自 身 处 理 备 份 管 理 的 许 多 细 节, 从 而 使 我 们 从 繁 琐 的 维 护 中 解 脱 出 来 去 从 事 更 重 要 的 工 作 当 然,RMAN 的 某 些 复 杂 用 法 超 出 了 SMR 所 宣 称 的 简 易 性, 这 也 正 是 本 书 介 绍 的 内 容 但 您 在 RMAN 上 花 费 的 心 血 和 努 力 将 会 得 到 巨 大 的 回 报, 这 是 毫 无 疑 问 的 2.2 RMAN 实 用 程 序 RMAN 是 SMR 的 具 体 实 现, 它 是 由 Oracle 提 供 的 RMAN 是 一 个 独 立 的 应 用 程 序, 它 负 责 建 立 到 Oracle 数 据 库 的 客 户 端 连 接, 以 访 问 数 据 库 内 部 的 备 份 和 恢 复 数 据 包 RMAN 的 核 心 是 命 令 解 释 程 序, 命 令 解 释 程 序 接 受 所 输 入 的 命 令, 并 将 这 些 命 令 转 换 为 在 数 据 库 上 执 行 的 远 程 进 程 调 用 (Remote Procedure Call,RPC) 需 要 指 出 并 明 确 的 一 点 是 :RMAN 只 做 少 量 的 工 作 虽 然 事 件 的 协 调 非 常 重 要, 但 是 备 份 和 恢 复 一 个 数 据 库 的 具 体 工 作 实 际 上 是 由 目 标 数 据 库 上 的 进 程 完 成 的, 目 标 数 据 库 (target database) 指 的 是 要 备 份 的 数 据 库 Oracle 数 据 库 的 内 部 数 据 包 可 以 将 RMAN 中 的 PL/SQL 块 变 为 系 统 调 用, 这 些 系 统 调 用 既 可 以 写 入 数 据 库 服 务 器 的 磁 盘 子 系 统, 也 可 以 读 取 数 据 库 服 务 器 的 磁 盘 子 系 统 RMAN 实 用 程 序 是 Database Utilities 套 件 的 一 部 分 Database Utilities 套 件 是 一 组 命 令 行 形 式 的 实 用 程 序, 它 包 括 Data Pump SQL*Loader DBNE.WID 和 dbverify 典 型 安 装 Oracle 时 会 自 动 安 装 RMAN RMAN 分 企 业 版 和 标 准 版 两 种, 如 果 您 只 能 使 用 标 准 版 的 RMAN( 而 不 能 使 用 企 业 版 ),RMAN 就 只 能 为 备 份 分 配 一 个 信 道 如 果 执 行 客 户 端 安 装, 并 且 选 择 的 是 Administrator 选 项 而 不 是 Runtime client 选 项, 就 会 安 装 RMAN

第 2 章 RMAN 体 系 结 构 概 述 35 RMAN 实 用 程 序 由 两 部 分 组 成 : 可 执 行 文 件 和 recover.bsq 文 件 recover.bsq 文 件 实 质 上 是 库 文 件, 可 执 行 文 件 从 recover.bsq 文 件 中 析 取 代 码 来 创 建 在 目 标 数 据 库 上 执 行 的 PL/SQL 调 用 recover.bsq 文 件 是 整 个 操 作 的 中 枢 这 两 个 文 件 始 终 保 持 链 接, 并 在 逻 辑 上 构 成 RMAN 客 户 端 实 用 程 序 需 要 指 出 的 是,recover.bsq 文 件 和 可 执 行 文 件 的 版 本 必 须 相 同, 否 则 就 不 能 正 常 工 作 RMAN 实 用 程 序 有 一 种 独 特 的 有 序 的 可 预 测 的 用 法 : 解 释 在 目 标 数 据 库 上 远 程 执 行 的 PL/SQL 调 用 中 的 命 令 RMAN 的 命 令 语 言 比 较 独 特, 需 要 具 备 一 定 经 验 才 能 掌 握 实 质 上,RMAN 实 用 程 序 完 成 了 我 们 需 要 做 的 所 有 备 份 还 原 恢 复 和 处 理 备 份 工 作 由 可 执 行 解 释 程 序 负 责 解 释 这 些 程 序 命 令, 并 且 使 这 些 命 令 与 recover.bsq 文 件 中 的 PL/SQL 块 匹 配 RMAN 随 后 将 这 些 RPC 传 递 给 数 据 库, 并 基 于 用 户 的 请 求 收 集 信 息 如 果 命 令 要 求 I/O 操 作 ( 即 一 条 备 份 命 令 或 一 条 还 原 命 令 ),RMAN 会 在 返 回 信 息 时 准 备 另 一 个 进 程 块, 并 将 这 个 进 程 块 传 递 回 目 标 数 据 库 这 些 进 程 块 负 责 执 行 OS 的 系 统 调 用 以 进 行 指 定 的 读 或 写 操 作 RMAN 与 数 据 库 权 限 RMAN 需 要 访 问 目 标 数 据 库 上 SYS 模 式 中 存 在 的 各 种 数 据 包, 还 需 要 具 有 启 动 和 关 闭 目 标 数 据 库 的 权 限, 以 便 在 还 原 数 据 库 时 能 够 建 立 目 标 数 据 库 因 此,RMAN 通 常 以 sysdba( 系 统 管 理 员 ) 用 户 的 身 份 连 接 到 目 标 数 据 库 我 们 不 需 要 像 SQL*Plus 那 样 指 定 RMAN 的 身 份, 由 于 假 定 每 个 目 标 数 据 库 连 接 中 的 RMAN 都 是 sysdba 用 户, 所 以 在 连 接 目 标 数 据 库 时,RMAN 会 自 动 作 为 sysdba 用 户 来 连 接 目 标 数 据 库 如 下 所 示 : RMAN> connect target sys/password connected to target database: PROD (DBID=4159396170) 如 果 试 图 以 不 具 有 sysdba 权 限 的 用 户 身 份 来 连 接 目 标 数 据 库,RMAN 会 给 出 下 面 的 错 误 信 息 : RMAN> connect target / RMAN-00571: ======================================================= RMAN-00569: ============= ERROR MESSAGE STACK FOLLOWS =========== RMAN-00571: ======================================================= ORA-01031: insufficient privileges 这 是 RMAN 设 置 和 配 置 阶 段 中 最 常 见 的 错 误, 它 出 现 在 没 有 作 为 dba 组 成 员 登 录 服 务 器 的 时 候 这 个 OS 组 将 控 制 服 务 器 上 所 有 Oracle 数 据 库 的 sysdba 权 限 的 身 份 验 证 dba 是 默 认 的 用 户 名, 但 不 是 必 需 的 ( 在 某 些 操 作 系 统 中 会 使 用 不 同 的 默 认 用 户 名, 而 不 会 强 迫 使 用 用 户 名 dba) 在 一 般 情 况 下, 大 多 数 Unix 系 统 中 都 有 一 个 Oracle 用 户, 它 是 dba 组 的 一 个 成 员 这 是 最 初 安 装 Oracle 软 件 的 用 户, 而 且 在 最 先 进 的 配 置 中 将 会 建 立 sudo 命 令 ; 则 可 以 执 行 sudo oracle 功 能, 即 以 自 己 的 身 份 登 录, 也 可 以 拥 有 Oracle 用 户 的 权 限 如 果 您 以 用 户 名 Oracle 登 录, 在 RMAN 中 以 什 么 身 份 连 接 就 变 得 不 重 要, 您 将 总 是 作 为 sysdba 用 户 来 连 接 目 标 数 据 库, 并 且 能 够 访 问 SYS 模 式, 同 时 具 有 启 动 和 关 闭 数 据 库 的 能 力 在 Windows 平 台 上,Oracle 会 创 建 一 个 ORA_DBA 本 地 组, 并 将 安

36 第 Ⅰ 部 分 Oracle RMAN 11g 基 础 知 识 装 Oracle 软 件 的 用 户 添 加 到 这 个 本 地 组 中 如 果 作 为 dba 组 成 员 之 外 的 用 户 登 录 并 需 要 使 用 RMAN, 就 必 须 创 建 和 使 用 一 个 口 令 文 件 来 连 接 目 标 数 据 库 如 果 要 使 用 一 个 客 户 端 系 统 通 过 网 络 来 连 接 RMAN, 也 需 要 创 建 和 使 用 一 个 口 令 文 件 第 3 章 将 介 绍 这 些 配 置 的 步 骤 2.3 RMAN 备 份 的 网 络 拓 扑 结 构 RMAN 的 客 户 端 / 服 务 器 体 系 结 构 不 可 避 免 地 会 带 来 混 淆, 这 与 人 类 空 间 记 忆 的 方 法 有 一 定 关 系 如 果 善 于 这 方 面 的 思 维, 您 就 能 非 常 轻 松 地 理 解 RMAN 但 如 果 对 这 个 问 题 感 到 困 惑, 那 么 请 认 真 阅 读 下 面 的 内 容 这 种 混 淆 完 全 基 于 执 行 RMAN 的 环 境, 与 之 相 对 应 的 是 备 份 工 作 的 环 境 RMAN 是 一 个 客 户 端 应 用 程 序, 它 通 过 Oracle Net 连 接 来 与 目 标 数 据 库 连 接 如 果 目 标 数 据 库 位 于 ORACLE_HOME 主 目 录 中, 运 行 同 样 位 于 这 个 主 目 录 中 的 RMAN 可 执 行 文 件,Oracle Net 连 接 就 会 是 一 个 本 地 连 接 只 要 在 Oracle 环 境 中 设 置 了 合 适 的 ORACLE_SID 变 量, 就 不 需 要 为 这 个 连 接 提 供 一 个 Oracle Net 别 名 否 则, 我 们 必 须 配 置 tnsnames.ora 文 件, 在 文 件 中 指 定 目 标 数 据 库, 并 且 在 将 要 运 行 RMAN 的 位 置 上 完 成 这 个 操 作 图 2-1 说 明 了 不 同 RMAN 位 置 的 网 络 拓 扑 结 构 管 理 员 工 作 站 PROD 数 据 库 服 务 器 测 试 和 开 发 服 务 器 10.2.0 Oracle 产 品 数 据 库 安 装 11.1.0 开 发 Oracle 安 装 11.2.0 Oracle 客 户 机 安 装 9.1.7 Oracle 传 统 数 据 库 安 装 11.2.0 测 试 和 加 载 数 据 库 安 装 图 2-1 RMAN 可 执 行 文 件 的 5 种 不 同 位 置 ( 版 本 ) 2.3.1 远 程 运 行 RMAN 如 果 您 负 责 管 理 遍 布 企 业 内 部 的 许 多 数 据 库, 最 好 在 单 个 客 户 端 系 统 上 将 RMAN 应 用 程 序 合 并, 这 样 就 可 以 在 这 个 客 户 端 系 统 上 更 好 地 管 理 tnsnames.ora 文 件 的 内 容 并

第 2 章 RMAN 体 系 结 构 概 述 37 且 可 以 合 并 所 有 RMAN 脚 本, 还 不 会 在 以 后 因 搞 不 清 RMAN 运 行 的 位 置 而 头 疼 您 将 清 楚 地 知 道 RMAN 运 行 的 位 置 : 在 膝 上 型 电 脑 上, 在 台 式 电 脑 上, 或 者 是 在 Linux 工 作 站 上 如 果 在 RMAN 配 置 中 使 用 了 恢 复 目 录 (recovery catalog), 由 于 每 次 操 作 RMAN 时 都 将 生 成 一 个 以 上 的 Oracle Net 连 接, 因 此 这 样 的 客 户 端 / 服 务 器 模 型 才 能 让 您 不 至 于 混 淆 另 一 方 面, 运 行 与 目 标 数 据 库 不 同 系 统 ( 或 者 是 不 同 的 ORACLE_HOME 主 目 录 ) 上 的 RMAN 时, 我 们 需 要 建 立 一 个 口 令 文 件, 这 样 在 每 个 目 标 数 据 库 上 都 需 要 更 多 的 配 置 和 管 理 谁 需 要 使 用 恢 复 目 录? 恢 复 目 录 用 于 存 储 RMAN 备 份 的 历 史 记 录, 它 含 有 有 关 备 份 发 生 时 间 备 份 内 容 和 备 份 大 小 的 元 数 据 历 史 记 录 中 还 含 有 恢 复 备 份 所 需 的 关 键 信 息 元 数 据 是 从 默 认 位 置 ( 目 标 数 据 库 控 制 文 件 ) 析 取 的, 并 保 留 在 用 户 模 式 的 数 据 库 表 内 是 否 一 定 需 要 使 用 恢 复 目 录 呢? 答 案 是 否 定 的 只 有 存 储 的 脚 本 功 能 实 际 需 要 该 目 录 时 才 使 用 如 果 最 终 要 使 用 standby 配 置 ( 第 20 章 将 介 绍 ) 或 sync/split 配 置 ( 第 22 章 将 介 绍 ) 来 配 置 更 为 复 杂 的 环 境, 将 需 要 使 用 恢 复 目 录 恢 复 目 录 会 带 来 方 便 吗? 答 案 是 肯 定 的 恢 复 目 录 是 否 增 加 了 复 杂 性? 答 案 也 是 肯 定 的 第 3 章 将 讨 论 恢 复 目 录 的 创 建 和 设 置, 并 详 细 解 释 是 否 使 用 恢 复 目 录 的 原 因 本 章 稍 后 部 分 会 介 绍 恢 复 目 录 体 系 结 构 如 果 要 建 立 一 个 RMAN 和 目 标 数 据 库 之 间 的 远 程 连 接, 则 需 要 创 建 一 个 使 用 专 用 服 务 器 进 程 连 接 到 目 标 数 据 库 的 tnsnames.ora 条 目 RMAN 不 能 使 用 共 享 服 务 器 ( 通 常 称 为 多 线 程 服 务 器 或 MTS) 来 建 立 数 据 库 连 接 因 此, 如 果 使 用 的 是 共 享 服 务 器 ( 共 享 服 务 器 是 所 有 新 安 装 的 默 认 设 置 ), 就 需 要 创 建 一 个 使 用 专 用 服 务 器 进 程 的 Oracle Net 别 名 从 下 面 的 tnsnames.ora 文 件 中 可 以 看 出 这 两 种 情 况 的 差 异 需 要 注 意 的 是 第 一 个 别 名 条 目 用 于 专 用 服 务 器 进 程, 第 二 个 条 目 则 使 用 共 享 服 务 器 体 系 结 构 PROD_RMAN = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = cervantes)(port = 1521)) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = prod) ) ) PROD = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = cervantes)(port = 1521)) ) (CONNECT_DATA =

38 第 Ⅰ 部 分 Oracle RMAN 11g 基 础 知 识 ) (SERVER = SHARED) (SERVICE_NAME = prod) ) 2.3.2 在 目 标 数 据 库 的 ORACLE_HOME 中 本 地 运 行 RMAN 从 每 个 目 标 数 据 库 中 本 地 运 行 RMAN 实 际 上 是 管 理 具 有 数 百 个 ( 或 数 千 个 ) 数 据 库 目 标 的 大 型 企 业 的 唯 一 方 法 因 此 RMAN 一 直 具 有 兼 容 性 问 题, 将 rman.exe 与 目 标 数 据 库 紧 密 绑 定 可 在 长 期 运 行 中 节 省 时 间 虽 然 以 这 种 方 式 部 署 RMAN 备 份 存 在 一 些 缺 陷, 但 根 据 我 们 多 年 以 来 的 部 署 经 验, 我 们 认 为 这 是 最 佳 的 方 式 本 地 运 行 RMAN 意 味 着 只 需 本 地 连 接 数 据 库, 而 不 需 要 建 立 口 令 文 件 和 配 置 tnsnames.ora 文 件 必 须 牢 记 : 这 种 方 式 的 简 易 性 同 时 也 正 是 它 的 缺 陷, 一 旦 要 引 入 恢 复 目 录 或 者 执 行 数 据 库 复 制 操 作, 就 必 然 会 引 入 我 们 先 前 设 法 避 免 的 那 些 问 题 这 种 方 式 在 使 用 中 也 会 产 生 混 淆, 由 于 我 们 通 常 在 本 地 连 接 数 据 库, 所 以 很 有 可 能 会 连 接 到 错 误 的 目 标 数 据 库 同 样, 这 种 方 式 也 往 往 会 让 我 们 不 明 白 究 竟 是 从 哪 个 环 境 连 接 的 如 果 系 统 中 安 装 了 多 个 Oracle 软 件, 您 就 会 陷 入 困 境 可 能 会 认 定 连 接 的 是 PROD 实 例, 而 实 际 上 设 置 的 却 是 用 于 TEST 实 例 的 ORACLE_HOME 和 ORACLE_SID 环 境 变 量 从 桌 面 工 作 站 中 运 行 RMAN 和 在 每 个 目 标 数 据 库 服 务 器 中 本 地 运 行 RMAN 的 真 正 区 别 可 能 在 于 OS 主 机 安 全 性 为 了 本 地 运 行 RMAN, 我 们 总 是 需 要 能 够 作 为 OS 级 别 上 的 oracle 用 户 登 录 到 每 个 数 据 库 服 务 器, 并 且 具 有 为 该 用 户 定 义 的 权 限 然 而, 如 果 总 是 从 远 程 RMAN 可 执 行 文 件 中 建 立 数 据 库 的 Oracle Net 连 接, 则 永 远 不 需 要 有 主 机 登 录 凭 证 因 此, 一 定 要 灵 活 地 选 择 运 行 RMAN 的 方 式 我 们 已 经 声 明 过 首 选 的 方 法, 接 下 来 就 要 告 诉 您 该 方 法 的 弊 端 即 使 我 们 的 设 计 被 简 化 为 客 户 端 RMAN 或 服 务 器 RMAN, 还 是 应 该 采 用 图 2-2 提 供 的 混 合 模 型 来 满 足 设 计 要 求 图 2-2 中 存 在 5 种 不 同 的 运 行 情 况 PRODUCTION 服 务 器 10.2.0 PROD Oracle 软 件 PRODWB 数 据 库 管 理 员 工 作 站 测 试 和 开 发 服 务 器 10.2 测 试 数 据 库 软 件 DW_PROD 数 据 库 11.2 客 户 机 软 件 11.1.0 开 发 数 据 库 软 件 11.2.0 开 发 数 据 库 软 件 图 2-2 在 企 业 中 运 行 不 同 版 本 的 RMAN 可 执 行 文 件

第 2 章 RMAN 体 系 结 构 概 述 39 (1) RMAN 将 作 为 DBA 工 作 站 上 的 一 个 客 户 端 连 接 来 运 行, 因 为 负 责 备 份 PRODWB 和 DW_PROD 的 DBA 没 有 产 品 数 据 库 服 务 器 上 的 oracle 用 户 口 令 (2) RMAN 将 远 程 备 份 DW_PROD, 和 PRODWB 一 样, 这 是 由 于 在 数 据 库 产 品 服 务 器 上 的 安 全 限 制 (3) 10.2 TEST 数 据 库 是 通 过 从 TEST $ORACLE_HOME 运 行 的 本 地 RMAN 可 执 行 文 件 来 备 份 的 (4) 本 地 执 行 11.1.0 DEV 数 据 库 备 份 因 为 DBA 具 有 测 试 和 开 发 服 务 器 上 的 oracle 用 户 权 限, 这 是 切 实 可 行 的 方 法, 并 且 它 最 小 化 在 本 地 工 作 站 上 维 护 的 客 户 端 安 装 数 量 (5) 出 于 与 11.1.0 DEV 数 据 库 相 同 的 原 因, 也 在 本 地 备 份 11.2.0 DEV 数 据 库 一 定 要 维 持 RMAN 拓 扑 结 构 的 灵 活 性, 这 样 既 可 以 在 NOCATALOG 模 式 中 使 用 本 地 RMAN 可 执 行 文 件 来 执 行 备 份 工 作, 也 可 以 在 其 他 情 况 下 执 行 远 程 RMAN 作 业 2.4 数 据 库 控 制 文 件 到 目 前 为 止, 我 们 已 经 讨 论 了 RMAN 可 执 行 文 件 及 其 在 Oracle 11g 的 服 务 器 管 理 恢 复 进 程 中 的 作 用, 并 且 指 出 实 际 工 作 是 在 目 标 数 据 库 上 完 成 的, 即 目 标 数 据 库 备 份 本 身 接 下 来 必 须 要 讨 论 控 制 文 件 在 RMAN 备 份 或 恢 复 进 程 中 的 作 用 控 制 文 件 平 常 的 作 用 是 负 责 数 据 库 的 物 理 结 构 顾 名 思 义, 控 制 文 件 控 制 数 据 库 查 找 物 理 文 件 的 位 置, 并 控 制 每 个 文 件 当 前 包 含 ( 或 应 当 包 含 ) 的 头 信 息, 其 内 容 包 括 数 据 文 件 信 息 重 做 日 志 信 息 和 归 档 日 志 信 息 控 制 文 件 还 含 有 与 数 据 库 关 联 的 关 键 文 件 的 每 一 个 文 件 头 的 快 照 (snapshot) 正 是 因 为 包 含 有 丰 富 的 信 息, 所 以 在 RMAN 出 现 之 前 的 任 何 恢 复 操 作 中, 控 制 文 件 一 直 是 主 要 的 组 件 ( 第 1 章 已 经 详 细 介 绍 了 这 个 问 题 ) 由 于 控 制 文 件 存 储 的 是 数 据 库 文 件 信 息, 所 以 RMAN 会 利 用 控 制 文 件 获 取 备 份 所 需 的 信 息, 具 体 的 操 作 方 式 是 :RMAN 使 用 控 制 文 件 来 编 译 文 件 列 表, 得 到 检 查 点 信 息, 并 确 定 可 恢 复 性 通 过 直 接 访 问 控 制 文 件,RMAN 可 以 编 译 文 件 列 表 而 不 需 要 用 户 创 建 文 件 列 表, 这 样 避 免 了 备 份 脚 本 时 的 一 个 非 常 繁 琐 的 步 骤, 并 且 在 添 加 一 个 新 文 件 时 不 需 要 更 改 这 个 脚 本 控 制 文 件 会 存 储 新 文 件 的 信 息, 因 此 RMAN 也 能 从 控 制 文 件 中 得 到 这 个 信 息 控 制 文 件 还 能 用 作 RMAN 目 录 RMAN 完 成 数 据 库 任 何 部 分 的 备 份 后, 会 在 控 制 文 件 中 添 加 该 备 份 的 记 录, 以 及 说 明 备 份 开 始 和 结 束 时 间 的 检 查 点 信 息 这 也 是 从 Oracle 7 到 Oracle 8 版 本 控 制 文 件 大 小 呈 指 数 增 长 的 一 个 主 要 原 因, 即 控 制 文 件 中 存 在 RMAN 表 控 制 文 件 中 的 这 些 记 录 通 常 称 为 元 数 据, 它 与 实 际 备 份 中 记 录 的 数 据 有 关, 它 也 可 以 存 储 在 恢 复 目 录 中 ( 参 阅 第 3 章 ) 2.4.1 在 控 制 文 件 中 重 用 记 录 控 制 文 件 可 以 增 长 以 满 足 空 间 增 长 的 需 求 例 如, 当 添 加 一 条 用 于 新 数 据 文 件 新 日 志 文 件 或 新 RMAN 备 份 的 记 录 时, 控 制 文 件 会 通 过 扩 展 来 解 决 增 加 空 间 的 问 题 不 过, 控 制 文 件 的 扩 展 有 一 定 的 限 制 通 常, 大 多 数 数 据 库 会 存 在 许 多 年, 成 千 上 万 的 重 做 日

40 第 Ⅰ 部 分 Oracle RMAN 11g 基 础 知 识 志 切 换 和 检 查 点 都 在 它 上 面 运 行 对 此, 控 制 文 件 必 须 能 够 删 除 某 些 不 再 需 要 的 数 据 这 样, 在 需 要 空 间 时, 控 制 文 件 会 根 据 时 间 来 删 除 信 息, 并 以 轮 询 (round_robin) 方 式 查 找 并 重 用 表 中 的 某 些 空 间 当 然, 有 些 信 息 是 不 能 被 删 除 的 例 如, 数 据 文 件 列 表 信 息 对 于 每 时 每 刻 的 数 据 库 操 作 来 说 至 关 重 要, 这 类 新 记 录 必 须 有 足 够 的 新 空 间 可 用 控 制 文 件 将 其 内 部 数 据 记 录 分 为 两 类 : 循 环 重 用 记 录 和 非 循 环 重 用 记 录 循 环 重 用 记 录 包 含 可 以 从 控 制 文 件 中 删 除 的 信 息 例 如, 归 档 日 志 历 史 信 息 可 以 被 删 除, 并 且 不 会 影 响 产 品 数 据 库 非 循 环 重 用 记 录 是 那 些 不 能 被 删 除 的 记 录, 如 果 控 制 文 件 因 这 类 记 录 而 空 间 不 足, 则 会 删 除 这 些 记 录 以 得 到 更 多 的 空 间 非 循 环 重 用 记 录 包 括 数 据 文 件 列 表 和 日 志 文 件 列 表 控 制 文 件 中 的 RMAN 备 份 记 录 属 于 循 环 重 用 记 录 类 别, 如 果 含 有 这 些 记 录 的 控 制 文 件 区 域 已 满, 这 些 记 录 就 会 被 删 除 这 会 给 恢 复 带 来 灾 难, 致 使 控 制 文 件 中 不 存 在 任 何 备 份 记 录, 就 好 像 从 未 发 生 过 备 份 一 样 一 定 要 记 住 : 如 果 控 制 文 件 不 含 有 任 何 RMAN 备 份 记 录,RMAN 就 不 能 使 用 备 份 来 执 行 恢 复 操 作 ( 第 12 章 将 介 绍 如 何 重 新 向 控 制 文 件 记 录 中 添 加 备 份 ) 因 此, 控 制 文 件 是 RMAN 的 一 个 关 键 因 素, 没 有 备 份 记 录, 我 们 就 不 能 执 行 恢 复 操 作 如 果 删 除 某 些 备 份 记 录, 我 们 就 不 能 再 使 用 这 些 记 录 指 向 的 备 份 但 是, 这 种 情 况 您 不 必 担 心 删 除 记 录 并 不 可 怕, 它 只 发 生 在 控 制 文 件 空 间 已 满 的 情 况 下, 因 此 被 删 除 的 备 份 肯 定 是 非 常 陈 旧 的 我 们 还 可 以 设 置 更 大 的 时 间 帧 (timeframe) 来 决 定 控 制 文 件 删 除 记 录 的 时 间 时 间 帧 由 init.ora 文 件 的 CONTROL FILE_RECORD_ KEEP_TIME 参 数 控 制, 该 参 数 的 默 认 值 为 7( 以 天 为 单 位 ), 这 表 明 如 果 记 录 的 保 留 时 间 少 于 7 天, 就 不 会 删 除 该 记 录, 此 时 只 能 扩 展 控 制 文 件 区 域 可 以 设 置 更 大 的 参 数 值, 如 30( 天 ), 这 样 就 会 经 常 扩 展 控 制 文 件, 且 只 有 当 记 录 的 保 留 时 间 超 过 一 个 月 时 才 会 重 写 这 些 记 录 一 般 来 说, 设 置 该 参 数 为 较 大 的 天 数 值 比 较 好 参 数 值 被 设 为 0 时 将 不 会 发 生 重 用 记 录 ( 不 过 我 们 不 建 议 这 种 设 置 ), 相 应 地 控 制 文 件 将 不 断 扩 展 直 至 无 法 管 理 此 外, 如 果 要 实 现 一 个 恢 复 目 录, 不 必 担 心 会 循 环 重 用 记 录 因 为 只 要 您 在 CONTROL FILE_ RECORD_KEEP_TIME 参 数 指 定 的 时 间 内 至 少 实 现 一 次 恢 复 目 录 同 步, 那 么 这 些 记 录 将 随 着 时 间 的 推 移 被 删 除 恢 复 目 录 则 从 来 不 会 删 除 记 录 重 新 构 建 控 制 文 件 (RMAN 用 户 必 读 ) 通 常 在 某 些 条 件 下 需 要 重 新 构 建 数 据 库 控 制 文 件, 如 重 新 设 置 MAXLOGFILES 参 数 或 MAXLOGHISTORY 参 数 由 于 某 些 参 数 定 义 了 保 存 非 循 环 重 用 记 录 的 内 部 控 制 文 件 表 的 大 小, 所 以 只 有 在 重 新 构 建 控 制 文 件 时 才 能 设 置 这 些 参 数 如 果 需 要 更 大 的 内 部 控 制 文 件 表, 就 必 须 重 新 构 建 控 制 文 件 如 果 使 用 RMAN 而 不 使 用 恢 复 目 录, 就 必 须 重 视 控 制 文 件 的 重 新 构 建 执 行 alter database backup control file to trace; 命 令 时, 生 成 的 脚 本 不 包 含 控 制 文 件 中 标 识 备 份 的 信 息 如 果 不 存 在 备 份 记 录, 就 不 能 在 使 用 这 些 备 份 进 行 恢 复 时 访 问 它 们, 此 时 所 有 的 RMAN 信 息 丢 失 并 且 无 法 恢 复 在 重 新 构 建 控 制 文 件 时, 只 有 那 些 用 RMAN 设 置 的 永 久 配 置 参 数 才 被 重 新 构 建 在 Oracle 10g 中 有 一 些 新 的 机 制 可 用 于 生 成 控 制 文 件 中 的 有 限 备 份 元 数 据, 但 仍 然 需 要 许 多 手 动

第 2 章 RMAN 体 系 结 构 概 述 41 操 作, 并 且 无 法 完 全 生 成 所 有 的 元 数 据 因 此 我 们 建 议 无 论 如 何 要 避 免 重 新 构 建 控 制 文 件 如 果 将 控 制 文 件 备 份 为 一 个 二 进 制 文 件 而 不 是 一 个 跟 踪 文 件, 所 有 备 份 信 息 都 将 被 保 留 该 命 令 类 似 于 : alter database backup controlfile to '/u01/backup/bkup_cfile.ctl'; 2.4.2 快 照 控 制 文 件 可 以 说 控 制 文 件 是 一 个 非 常 繁 忙 的 文 件, 它 存 储 数 据 库 的 结 构 信 息, 这 些 信 息 包 括 用 于 恢 复 的 检 查 点 SCN 信 息 连 续 的 SCN 和 文 件 管 理 对 于 数 据 库 的 生 命 周 期 来 说 至 关 重 要, 因 此 RDBMS 必 须 能 够 持 续 地 使 用 控 制 文 件 这 样 会 为 RMAN 带 来 一 个 问 题 RMAN 开 始 备 份 每 个 数 据 文 件 时 需 要 得 到 一 个 一 致 的 控 制 文 件 视 图, 此 时 RMAN 只 需 要 知 道 备 份 开 始 时 的 最 新 的 检 查 点 信 息 和 文 件 结 构 信 息 开 始 备 份 后,RMAN 需 要 这 些 信 息 在 备 份 操 作 期 间 保 持 一 致, 也 就 是 说 RMAN 需 要 一 个 读 取 一 致 的 控 制 文 件 视 图 除 非 RMAN 在 备 份 持 续 时 间 内 锁 定 控 制 文 件, 否 则 数 据 库 会 不 断 更 新 控 制 文 件, 所 以 这 是 不 可 能 的 但 是, 锁 定 控 制 文 件 意 味 着 数 据 库 不 能 执 行 检 查 点 操 作 和 切 换 日 志, 或 者 不 能 产 生 新 的 归 档 日 志, 这 些 操 作 是 不 可 能 的 RMAN 使 用 快 照 控 制 文 件 (snapshot controlfile) 来 解 决 前 面 提 出 的 问 题, 快 照 控 制 文 件 是 控 制 文 件 的 副 本 RMAN 只 在 备 份 和 同 步 操 作 期 间 使 用 快 照 控 制 文 件 这 些 操 作 开 始 时,RMAN 会 根 据 实 际 控 制 文 件 内 容 来 刷 新 快 照 控 制 文 件, 这 样 会 短 暂 地 锁 定 控 制 文 件 ; 随 后,RMAN 会 切 换 到 快 照 并 在 备 份 期 间 持 续 使 用 这 个 快 照 这 种 方 式 具 有 读 取 一 致 性, 且 不 妨 碍 数 据 库 活 动 在 默 认 情 况 下, 快 照 控 制 文 件 位 于 Unix 平 台 上 的 ORACLE_HOME/dbs 目 录 中, 或 者 是 在 Windows 的 ORACLE_HOME/database 目 录 中 快 照 控 制 文 件 的 默 认 名 为 SNCF <ORACLE_SID>.ORA 使 用 configure snapshot controlfile 命 令 可 以 在 任 何 时 候 更 改 快 照 控 制 文 件 名 : configure snapshot controlfile name to '<location\file_name>'; 在 某 些 情 况 下 可 能 出 现 以 下 有 关 快 照 控 制 文 件 的 错 误, 一 般 人 直 到 这 时 才 会 知 道 还 有 这 个 文 件 : RMAN-08512: waiting for snapshot controlfile enqueue 如 果 快 照 控 制 文 件 头 不 是 被 请 求 插 入 队 列 的 进 程 锁 定 而 是 被 另 一 个 进 程 锁 定 时, 就 会 出 现 这 样 的 错 误 如 果 执 行 多 个 备 份 工 作, 就 有 可 能 同 时 从 两 个 不 同 的 RMAN 会 话 进 程 执 行 两 个 备 份 操 作 要 修 正 这 个 错 误, 可 以 打 开 SQL*Plus 会 话 并 运 行 下 面 的 SQL 语 句 SELECT s.sid, username AS "User", program, module, action, logon_time"logon", l.*

42 第 Ⅰ 部 分 Oracle RMAN 11g 基 础 知 识 FROM v$session s, v$enqueue_lock l WHERE l.sid = s.sid and l.type = 'CF' AND l.id1 = 0 and l.id2 = 2; 2.5 RMAN 服 务 器 进 程 RMAN 生 成 一 个 到 目 标 数 据 库 的 客 户 端 连 接, 并 创 建 两 个 服 务 器 进 程 其 中 的 主 要 进 程 生 成 对 SYS 模 式 中 的 数 据 包 的 调 用, 从 而 执 行 备 份 和 恢 复 操 作, 该 进 程 会 在 备 份 和 还 原 期 间 协 调 信 道 进 程 的 工 作 另 外 一 个 次 要 进 程 ( 或 影 子 进 程 ) 轮 询 RMAN 中 的 所 有 长 事 务 (long-running transaction) 并 在 内 部 记 录 信 息 在 V$SESSION_LONGOPS 视 图 中 可 以 查 看 到 下 面 的 轮 询 结 果 : SELECT SID, SERIAL#, CONTEXT, SOFAR, TOTALWORK, ROUND(SOFAR/TOTALWORK*100,2) "%_COMPLETE" FROM V$SESSION_LONGOPS WHERE OPNAME LIKE 'RMAN%' AND OPNAME NOT LIKE '%aggregate%' AND TOTALWORK!= 0 AND SOFAR <> TOTALWORK / 还 可 以 在 V$SESSION 视 图 中 查 看 这 些 进 程 当 RMAN 分 配 一 个 信 道 时, 它 会 在 输 出 中 提 供 如 下 所 示 的 会 话 ID 信 息 : allocated channel: ORA_DISK_1 channel ORA_DISK_1: sid=16 devtype=disk sid 信 息 对 应 于 V$SESSION 中 的 SID 列 因 此, 我 们 可 以 构 造 下 面 的 查 询 : SQL> column client_info format a30 SQL> column program format a15 SQL> select sid, saddr, paddr, program, client_info from v$session where sid=16; SID SADDR PADDR PROGRAM CLIENT_INFO --------- ------- ---------- ------------- ---------------------- 16 682144E8 681E82BC RMAN.EXE rman channel=ora_disk_1 2.5.1 RMAN 信 道 进 程 除 了 默 认 的 两 个 进 程 之 外, 在 备 份 或 还 原 操 作 期 间 还 会 为 分 配 的 每 个 信 道 单 独 创 建 一 个 进 程 RMAN 将 信 道 视 为 目 标 数 据 库 上 的 服 务 器 进 程, 该 进 程 在 备 份 期 间 协 调 读 取 数 据 文 件 和 写 入 指 定 位 置 的 操 作, 在 还 原 期 间 则 协 调 读 取 备 份 位 置 和 在 数 据 文 件 位 置 写 入 数 据 块 的 操 作 信 道 只 有 两 种 类 型 : 磁 盘 信 道 和 磁 带 信 道 我 们 不 能 为 一 个 备 份 操 作 同 时 分 配 这 两 种 信 道, 备 份 只 能 写 入 磁 盘 或 写 入 磁 带 与 后 台 RMAN 进 程 一 样, 可 以 从 数 据 字 典 (data dictionary) 跟 踪 信 道 进 程, 并 且 将 信 道 进 程 在 OS 级 别 (OS level) 上 与 一 个

第 2 章 RMAN 体 系 结 构 概 述 43 SID 关 联 正 是 这 些 信 道 进 程 的 活 动 被 轮 询 的 影 子 进 程 记 录 到 V$SESSION_LONGOPS 视 图 中 2.5.2 RMAN 和 I/O 从 属 如 果 在 目 标 数 据 库 上 配 置 了 I/O 从 属,RMAN 就 可 以 利 用 I/O 从 属 为 了 使 用 RMAN 备 份 和 还 原, 有 两 种 可 用 的 I/O 从 属 : 磁 盘 I/O 从 属 和 磁 带 I/O 从 属 使 用 DBWR_IO_SLAVES 参 数 可 以 配 置 磁 盘 I/O 从 属 这 个 参 数 可 以 被 设 置 为 任 意 数 值, 它 的 主 要 作 用 是 在 将 脏 缓 冲 区 ( 即 写 满 的 缓 冲 区 ) 的 内 容 写 入 磁 盘 时 唤 醒 另 外 的 DBWR 从 属 来 执 行 磁 盘 写 操 作 如 果 该 参 数 被 设 置 为 非 0 值 ( 如 1 12 或 32),RMAN 会 自 动 在 每 个 信 道 中 切 换 使 用 4 个 I/O 从 属 来 帮 助 将 数 据 块 读 入 RMAN 内 存 缓 冲 区 这 是 一 个 不 错 的 功 能, 但 是 RMAN 分 配 内 存 的 方 式 有 很 大 的 变 化 只 有 在 OS 平 台 不 支 持 本 地 异 步 I/O 或 者 禁 止 Oracle RDBMS 使 用 异 步 I/O 时,DBWR_IO_SLAVES 参 数 才 会 起 到 重 要 的 作 用 如 果 支 持 异 步 I/O, 就 不 需 要 使 用 磁 盘 I/O 从 属 磁 带 I/O 从 属 可 帮 助 服 务 器 进 程 访 问 磁 带 设 备 如 果 BACKUP_TAPE_IO_SLAVES 参 数 被 设 置 为 TRUE,RMAN 会 为 每 个 磁 带 信 道 进 程 分 配 一 个 I/O 从 属 来 帮 助 在 磁 带 位 置 上 执 行 写 操 作 与 磁 盘 I/O 从 属 不 同 的 是,BACKUP_TAPE_IO_SLAVES 参 数 只 对 RMAN 磁 带 备 份 起 作 用 由 于 磁 带 设 备 不 存 在 本 地 异 步 I/O, 我 们 建 议 将 该 参 数 设 置 为 TRUE, 这 有 助 于 保 持 磁 带 设 备 传 输, 以 达 到 更 佳 的 备 份 和 还 原 性 能 第 16 章 将 详 细 讨 论 磁 带 传 输 问 题 2.6 RMAN 使 用 的 SYS 数 据 包 RMAN 服 务 器 进 程 在 协 调 信 道 的 工 作 时 要 访 问 两 个 SYS 数 据 包 :DBMS_RCVMAN 数 据 包 和 DBMS_BACKUP_RESTORE 数 据 包, 这 两 个 数 据 包 包 含 了 目 标 数 据 库 中 RMAN 的 所 有 功 能 2.6.1 SYS.DBMS_RCVMAN 数 据 包 DBMS_RCVMAN 数 据 包 用 来 访 问 控 制 文 件 中 的 表 并 将 此 信 息 传 递 给 RMAN, 使 RMAN 可 以 构 建 准 确 反 映 数 据 库 结 构 的 备 份 与 还 原 操 作 DBMS_RCVMAN 数 据 包 负 责 在 执 行 任 何 操 作 前 设 置 TIME 运 算 符 和 校 验 数 据 文 件 头 中 的 检 查 点 信 息, 并 检 查 文 件 位 置 和 大 小, 以 及 有 关 节 点 相 似 性 ( 在 RAC 环 境 中 ) 和 磁 盘 相 似 性 的 其 他 信 息 这 种 信 息 会 影 响 RMAN 的 性 能, 并 且 RMAN 在 构 建 实 际 备 份 / 还 原 命 令 之 前 自 动 执 行 负 载 均 衡 (load-balancing) 算 法 和 性 能 增 强 (performance-enhancing) 算 法 这 些 将 在 第 16 章 详 细 介 绍 2.6.2 SYS.DBMS_BACKUP_RESTORE 数 据 包 SYS.DBMS_RCVMAN 数 据 包 访 问 控 制 文 件 并 校 验 所 有 必 需 的 信 息 这 些 必 需 的 信 息 被 传 递 回 RMAN 服 务 器 进 程,RMAN 服 务 器 进 程 随 后 会 基 于 recover.bsq 文 件 中 的 代 码 创 建 一 些 PL/SQL 块 这 些 PL/SQL 块 含 有 对 DBMS_BACKUP_RESTORE 数 据 包 的 调

44 第 Ⅰ 部 分 Oracle RMAN 11g 基 础 知 识 用, 实 际 上 RMAN 中 是 由 DBMS_BACKUP_RESTORE 数 据 包 来 创 建 系 统 调 用 以 备 份 数 据 文 件 控 制 文 件 和 归 档 的 重 做 日 志 RMAN 接 收 从 DBMS_RCVMAN 数 据 包 返 回 的 信 息, 并 在 信 道 间 基 于 负 载 均 衡 算 法 分 配 工 作, 然 后 创 建 一 系 列 DBMS_BACKUP_RESTORE 数 据 包 调 用 在 V$SESSION_LONGOPS 视 图 中 可 以 跟 踪 的 是 DBMS_BACKUP_RESTORE 数 据 包 的 工 作 它 执 行 备 份 和 还 原 操 作, 此 外 还 可 以 以 受 限 方 式 访 问 控 制 文 件 DBMS_ BACKUP_RESTORE 数 据 包 访 问 控 制 文 件 以 备 份 该 文 件 ( 实 际 上 备 份 的 是 快 照 控 制 文 件 ), 在 备 份 完 成 后 写 入 备 份 信 息 一 旦 完 成 了 一 个 备 份 集,DBMS_BACKUP_RESTORE 数 据 包 就 会 在 控 制 文 件 的 表 中 写 入 备 份 开 始 时 间 备 份 时 间 备 份 大 小 和 备 份 名 的 信 息 内 核 中 的 RMAN 数 据 包 创 建 数 据 库 时, 运 行 catproc.sql 脚 本 可 以 默 认 安 装 上 述 两 个 RMAN 数 据 包 数 据 库 创 建 期 间 无 法 跳 过 这 一 步 骤, 因 此 在 8.0.3 版 本 以 后 的 每 个 Oracle 数 据 库 中 都 存 在 这 些 RMAN 数 据 包 这 样 就 不 必 配 置 RMAN, 我 们 可 以 立 即 运 行 RMAN 并 开 始 备 份 数 据 库 这 些 RMAN 数 据 包 还 具 有 另 一 个 重 要 的 特 性 : 它 们 被 硬 编 码 到 Oracle 软 件 的 库 文 件 中, 因 此 即 使 没 有 打 开 数 据 库 也 可 以 调 用 这 些 数 据 包 我 们 知 道, 大 多 数 数 据 包 只 在 数 据 库 打 开 时 才 能 被 使 用 不 过,RMAN 可 以 在 数 据 库 实 例 处 于 未 加 载 模 式 或 加 载 模 式 时 编 写 对 DBMS_BACKUP_RESTORE 数 据 包 的 调 用 这 是 一 个 关 键 要 素, 其 原 因 显 而 易 见 : 需 要 在 没 有 打 开 数 据 库 时 也 能 够 备 份 和 还 原 这 个 数 据 库 您 会 注 意 到 这 样 的 问 题 : 如 果 要 使 用 RMAN 连 接 目 标 数 据 库, 目 标 数 据 库 应 该 处 于 什 么 状 态? 需 要 启 动 实 例 吗? 数 据 库 需 要 加 载 吗? 还 是 必 须 打 开? 实 际 上 RMAN 可 以 连 接 这 3 种 状 态 的 目 标 数 据 库, 但 是 目 标 数 据 库 必 须 至 少 处 于 未 加 载 模 式 下 2.7 备 份 数 据 块 正 如 第 1 章 所 述, 即 使 使 用 高 级 的 备 份 技 术, 备 份 的 单 元 仍 然 是 数 据 文 件 最 终 进 行 备 份 的 OS 实 用 程 序 将 查 看 并 备 份 整 个 文 件, 因 此 需 要 特 别 注 意 保 证 Oracle 数 据 块 的 完 整 性 然 而,RMAN 与 之 不 同, 因 为 RMAN 是 集 成 在 RDBMS 中 的, 它 是 在 数 据 块 层 面 访 问 数 据, 这 与 数 据 库 本 身 所 使 用 的 方 式 相 同 块 级 别 的 访 问 是 RMAN 区 别 于 其 他 备 份 工 具 之 处, 也 许 您 现 在 对 这 一 点 还 不 太 明 白, 不 过 本 书 将 帮 助 您 逐 步 了 解 RMAN 的 备 份 策 略 正 是 由 于 RMAN 采 用 了 这 一 层 面 的 访 问, 才 使 得 它 具 有 诸 多 优 势, 因 此 我 们 可 以 更 有 效 地 利 用 数 据 块 进 行 备 份 和 恢 复 2.7.1 数 据 块 备 份 概 述 数 据 块 备 份 的 工 作 原 理 是 :RMAN 基 于 备 份 算 法 规 则 来 编 译 要 备 份 的 文 件 列 表 基 于 信 道 数 和 同 时 备 份 的 文 件 数,RMAN 在 Oracle 共 享 内 存 段 中 创 建 一 些 内 存 缓 冲 区 一 般 是 在 PGA 中, 不 过 有 时 内 存 缓 冲 区 会 被 推 入 SGA 信 道 服 务 器 进 程 随 后 开 始 读 取 数 据 文 件, 并 在 RMAN 缓 冲 区 中 填 充 这 些 数 据 块 一 个 缓 冲 区 被 填 满 时, 输 入 缓 冲 区 中 的

第 2 章 RMAN 体 系 结 构 概 述 45 数 据 块 会 被 推 入 输 出 缓 冲 区 数 据 文 件 中 的 每 个 数 据 块 都 会 发 生 这 种 内 存 对 内 存 的 写 操 作 (memory-to-memory write) 如 果 数 据 块 符 合 备 份 的 标 准 并 且 内 存 对 内 存 的 写 操 作 没 有 检 测 到 损 坏 (corruption), 则 该 数 据 块 会 保 留 在 输 出 缓 冲 区 中 直 至 输 出 缓 冲 区 被 填 满 一 旦 输 出 缓 冲 区 被 填 满, 输 出 缓 冲 区 中 的 内 容 就 会 被 推 至 备 份 位 置 ( 可 能 是 磁 盘 或 磁 带 ) 一 旦 所 有 文 件 已 通 过 内 存 缓 冲 区 过 滤, 就 完 成 了 备 份 片, 同 时 RMAN 会 在 目 标 数 据 库 的 控 制 文 件 中 写 入 备 份 片 的 完 成 时 间 和 备 份 片 的 名 称 2.7.2 块 级 备 份 的 优 点 每 个 数 据 块 从 磁 盘 移 入 内 存 时 都 会 发 生 内 存 对 内 存 的 写 操 作, 在 这 个 操 作 期 间 会 检 查 数 据 块 的 损 坏 损 坏 检 查 是 RMAN 的 一 个 重 要 特 性, 第 12 章 将 详 细 介 绍 这 个 问 题 需 要 记 住 的 是, 执 行 代 理 复 制 操 作 时 不 会 使 用 数 据 块 检 查 空 块 压 缩 访 问 数 据 块 时 可 以 选 择 空 块 压 缩 (null block compression), 我 们 可 以 删 除 从 来 没 有 使 用 过 的 数 据 块 ( 头 为 0), 并 在 执 行 内 存 对 内 存 的 写 操 作 时 丢 弃 这 些 数 据 块 因 此, 我 们 只 需 要 备 份 使 用 过 的 数 据 块, 从 而 执 行 更 有 效 的 备 份 操 作 这 里 适 合 介 绍 与 空 块 压 缩 有 关 的 各 种 误 解 第 一 个 误 解 是 要 删 除 空 数 据 块 RMAN 到 数 据 库 的 两 个 接 入 点 是 文 件 头 和 数 据 块 头 RMAN 只 能 从 数 据 块 头 信 息 或 文 件 头 信 息 中 推 断 该 数 据 块 的 内 容 为 什 么 不 需 要 空 间 管 理 信 息 呢? 事 实 上, 空 间 管 理 信 息 只 在 数 据 库 打 开 时 有 效, 而 RMAN 不 依 赖 于 打 开 的 数 据 库 我 们 必 须 只 依 赖 于 无 需 打 开 数 据 库 就 能 获 得 的 信 息, 也 就 是 文 件 头 和 数 据 块 头 因 此 如 果 截 断 一 个 表, 表 中 所 有 存 储 过 信 息 的 空 数 据 块 都 会 备 份, 因 为 RMAN 只 知 道 内 存 段 初 始 化 了 这 些 数 据 块, 而 不 知 道 这 些 数 据 块 为 空 第 二 个 与 空 块 压 缩 有 关 的 常 见 误 解 是 备 份 期 间 的 增 量 备 份 可 以 节 省 备 份 的 时 间 对 特 定 的 情 况 ( 备 份 设 备 是 一 个 大 瓶 颈 ) 来 说, 这 种 说 法 在 某 种 程 度 上 是 正 确 的 如 果 到 备 份 位 置 ( 磁 盘 或 磁 带 ) 的 数 据 流 很 快, 那 么 删 除 内 存 中 数 据 块 的 动 作 不 会 节 省 多 少 时 间 这 是 因 为 RMAN 仍 会 将 文 件 中 的 每 个 数 据 块 都 读 入 内 存, 它 只 是 不 将 这 些 数 据 块 都 写 入 到 输 出 设 备 即 使 是 在 增 量 备 份 期 间 ( 增 量 备 份 基 于 增 量 检 查 点 SCN 来 删 除 数 据 块 ), 我 们 仍 然 要 通 过 检 查 每 个 数 据 块 头 来 观 察 数 据 块 自 前 一 次 增 量 备 份 以 来 是 否 被 更 改 过 增 量 备 份 可 以 节 省 备 份 位 置 的 空 间, 并 提 供 更 快 的 恢 复 形 式, 但 是 这 不 意 味 在 实 际 的 备 份 期 间, 增 量 备 份 可 以 有 效 地 节 省 时 间 未 使 用 的 块 压 缩 未 使 用 的 块 压 缩 是 忽 略 未 使 用 块 的 第 二 种 机 制 它 与 空 块 压 缩 的 结 果 匹 配 : 即, 未 初 始 化 的 块 不 会 被 备 份 然 而, 在 10.2.0.3 版 本 之 后, 即 使 是 使 用 过 的 块, 如 果 是 空 块, 也 不 会 被 备 份 这 种 方 法 减 少 了 备 份 的 时 间, 因 为 它 访 问 空 间 管 理 信 息 并 检 查 每 个 段 的 位 图, 从 上 述 的 信 息 中 构 建 初 始 化 的 块 的 列 表, 不 会 对 未 初 始 化 的 块 进 行 备 份 这 意 味 着 一 般 不 会 将 所 有 数 据 读 入 到 内 存 中, 由 此 节 省 了 备 份 时 间

46 第 Ⅰ 部 分 Oracle RMAN 11g 基 础 知 识 未 使 用 的 块 压 缩 可 以 自 动 使 用, 但 是 它 不 能 在 数 据 库 中 所 有 的 块 中 使 用 这 种 方 法 有 体 系 结 构 上 的 限 制, 并 且 它 需 要 满 足 如 下 条 件 : 要 求 备 份 是 完 全 备 份 或 是 0 级 增 量 备 份 备 份 是 磁 盘 备 份 ( 或 是 Oracle 安 全 备 份 ) COMPATIBLE 的 初 始 化 参 数 设 置 为 10.2 或 是 更 高 的 值 待 备 份 的 数 据 库 没 有 可 靠 的 还 原 点 数 据 文 件 是 本 地 管 理 的 ( 也 就 是 说, 空 间 管 理 信 息 保 存 在 文 件 头 中, 而 不 是 保 存 在 数 据 字 典 中 ) 最 后 一 个 条 件, 数 据 文 件 的 本 地 管 理, 允 许 RMAN 获 得 成 功 的 未 使 用 的 块 压 缩 的 位 图 信 息, 该 方 法 不 需 要 两 次 访 问 ( 可 能 不 可 用 的 ) 数 据 字 典 二 进 制 压 缩 在 10g 版 本 中,RMAN 最 终 使 用 空 白 压 缩, 如 同 ZIP 实 用 程 序 所 完 成 的 那 样 这 就 提 供 了 备 份 块 自 身 的 实 际 压 缩 此 外, 新 的 块 更 改 跟 踪 文 件 允 许 RMAN 在 备 份 期 间 跳 过 一 些 数 据 块, 不 将 它 们 读 入 内 存 缓 冲 区, 因 此 如 果 启 动 更 改 跟 踪, 增 量 备 份 就 可 以 节 省 时 间 关 于 压 缩 和 块 更 改 跟 踪 的 更 多 细 节, 请 查 看 第 9 章 的 完 整 介 绍 在 11gR2 中, 可 以 使 用 Oracle 高 级 压 缩, 它 提 供 了 三 个 不 同 级 别 的 压 缩 方 法, 可 以 让 二 进 制 压 缩 与 您 所 在 的 环 境 相 匹 配 三 个 级 别 分 别 为 高 级 中 级 和 低 级 高 级, 用 在 限 制 带 宽 的 环 境 中, 在 这 种 环 境 中 网 络 资 源 的 限 制 访 问 权 是 优 先 的 ; 中 级, 用 在 对 CPU 利 用 的 压 缩 率 的 合 并 ; 低 级,CPU 的 使 用 成 为 网 络 带 宽 或 备 份 片 大 小 的 限 制 因 素 块 级 备 份 的 备 份 性 能 块 级 备 份 从 生 成 重 做 的 角 度 也 提 供 性 能 增 益 正 如 第 1 章 所 介 绍 的, 如 果 使 用 老 式 的 热 备 份 方 法, 则 运 行 热 备 份 模 式 的 表 空 间 时 生 成 的 重 做 数 量 有 时 会 呈 指 数 增 长 这 会 造 成 过 多 的 重 做 日 志 切 换 检 查 点 故 障 和 生 成 巨 量 的 归 档 日 志, 巨 量 的 归 档 日 志 会 给 日 志 归 档 位 置 上 的 空 间 管 理 带 来 一 定 困 难 另 一 方 面, 由 于 在 备 份 期 间 不 要 求 保 证 数 据 块 的 一 致 性, 因 此 RMAN 不 要 求 使 用 热 备 份 模 式 RMAN 对 数 据 块 的 访 问 允 许 RMAN 与 写 脏 缓 冲 区 的 DBWR 进 程 协 调, 并 且 在 将 这 个 数 据 块 读 入 内 存 以 前 它 可 以 等 待 直 至 数 据 块 达 到 一 致 因 此, 数 据 块 不 会 被 转 储 为 重 做, 并 且 备 份 中 的 数 据 块 总 是 一 致 的 当 然,RMAN 也 不 要 求 使 用 ARCHIVELOG 模 式 事 实 上,RMAN 不 允 许 我 们 在 数 据 库 打 开 时 备 份 一 个 数 据 文 件, 除 非 是 处 于 ARCHIVELOG 模 式, 否 则 会 给 出 下 面 的 错 误 信 息 : ORA-19602: cannot backup or copy active file in NOARCHIVELOG mode RMAN 可 以 利 用 块 级 备 份 提 供 容 易 被 忽 略 但 及 其 有 用 的 恢 复 选 项 : 块 介 质 恢 复 (block media recovery) 现 在, 如 果 出 现 错 误 ora-1578: block corruption detected( 检 测 到 数 据 块 损 坏 ), 不 需 要 恢 复 整 个 文 件 以 及 执 行 恢 复 操 作,RMAN 可 以 简 单 地 恢 复 坏 数 据 块 并 执

第 2 章 RMAN 体 系 结 构 概 述 47 行 恢 复 操 作, 也 就 是 说 数 据 文 件 中 的 其 他 数 据 在 恢 复 期 间 仍 然 可 用 第 12 章 将 进 一 步 讨 论 这 个 问 题 上 面 简 单 介 绍 了 块 级 备 份 的 要 点 使 用 RMAN 进 行 块 级 备 份 会 带 来 很 大 的 好 处, 本 书 后 面 部 分 会 大 量 介 绍 使 用 块 级 备 份 的 优 点 2.8 内 存 中 的 RMAN RMAN 会 在 内 存 中 构 建 一 些 缓 冲 区, 然 后 通 过 这 些 缓 冲 区 将 数 据 块 写 入 到 备 份 中 内 存 的 利 用 与 PGA( 有 时 是 SGA) 的 总 体 大 小 有 关 内 存 缓 冲 区 分 为 输 入 缓 冲 区 和 输 出 缓 冲 区 输 入 缓 冲 区 (input buffer) 填 充 从 备 份 文 件 中 读 取 的 数 据 块 ; 输 出 缓 冲 区 (output buffer) 则 在 执 行 内 存 对 内 存 的 写 操 作 时 填 充 需 要 备 份 的 数 据 块, 一 旦 输 出 缓 冲 区 被 填 满, 输 出 缓 冲 区 的 内 容 就 会 被 写 到 备 份 位 置 在 磁 盘 或 磁 带 上 备 份 与 从 磁 盘 或 磁 带 上 还 原 相 比, 内 存 缓 冲 区 之 间 存 在 不 同 图 2-3 示 例 了 内 存 中 的 输 入 缓 冲 区 和 输 出 缓 冲 区 的 分 配, 并 说 明 了 如 何 将 两 个 数 据 文 件 的 备 份 多 路 复 用 在 一 个 备 份 集 中 内 存 中 的 RMAN 信 道 进 程 一 个 缓 冲 区 填 满 时, 数 据 块 会 被 写 入 到 输 出 缓 冲 区 中 磁 盘 或 磁 带 上 的 备 份 片 数 据 文 件 1 缓 冲 区 RMAN 确 认 需 要 备 份 的 数 据 块, 并 执 行 检 验 和 操 作 数 据 块 被 写 入 从 接 收 的 内 容, 来 自 不 同 数 据 文 件 的 数 据 块 混 合 在 一 起 数 据 文 件 2 缓 冲 区 备 份 片 输 出 缓 冲 区 输 出 缓 冲 区 填 满 时, 数 据 块 会 被 写 入 到 备 份 片 中 图 2-3 内 存 中 的 输 入 缓 冲 区 和 输 出 缓 冲 区 2.8.1 输 入 内 存 缓 冲 区 备 份 数 据 库 时, 输 入 内 存 缓 冲 区 的 大 小 和 数 目 取 决 于 实 际 执 行 的 备 份 命 令, 事 实 上 它 主 要 取 决 于 在 一 个 备 份 中 多 路 复 用 (multiplexing) 的 文 件 数 多 路 复 用 指 的 是 在 同 一 个 备 份 片 中 备 份 其 数 据 块 的 文 件 数 为 了 保 持 合 理 范 围 的 内 存 分 配, 根 据 一 起 备 份 的 文 件 数, 分 配 内 存 缓 冲 大 小 时 需 要 应 用 下 面 的 规 则 如 果 备 份 集 内 的 文 件 数 小 于 或 等 于 4 个, 则 RMAN 会 为 每 个 文 件 分 配 4 个 大 小 为 1MB 的 缓 冲 区 缓 冲 区 总 和 小 于 或 等 于 16MB

48 第 Ⅰ 部 分 Oracle RMAN 11g 基 础 知 识 如 果 备 份 集 内 的 文 件 数 多 于 4 个 但 少 于 或 等 于 8 个, 则 RMAN 会 为 每 个 文 件 分 配 4 个 大 小 为 512KB 的 缓 冲 区 缓 冲 区 总 和 确 保 少 于 或 等 于 16MB 如 果 多 路 复 用 的 文 件 数 多 于 8 个, 则 RMAN 会 为 每 个 文 件 分 配 4 个 大 小 为 128KB 的 缓 冲 区 这 就 确 保 每 个 要 备 份 的 文 件 占 用 512KB 的 缓 冲 区 内 存 一 定 要 记 住 要 在 每 个 信 道 基 础 上 分 配 内 存 大 小 因 此, 如 果 分 配 两 个 信 道 来 备 份 具 有 32 个 数 据 文 件 的 数 据 库,RMAN 会 根 据 负 载 均 衡 来 分 配 两 个 信 道, 而 不 是 为 每 个 信 道 分 配 16 个 文 件 如 果 某 些 文 件 比 其 他 的 文 件 大 很 多, 我 们 可 能 在 一 个 备 份 集 内 备 份 8 个 文 件, 在 另 一 个 备 份 集 内 备 份 24 个 文 件 如 果 是 这 样, 则 用 于 第 一 个 信 道 (8 个 文 件 ) 的 缓 冲 区 会 分 配 16MB 的 输 入 缓 冲 区 (8 个 文 件, 每 个 文 件 有 4 个 缓 冲 区, 每 个 缓 冲 区 为 512KB), 用 于 第 二 个 信 道 (24 个 文 件 ) 的 缓 冲 区 会 分 配 12MB 的 输 入 缓 冲 区 (24 个 文 件, 每 个 文 件 的 缓 冲 区 为 512KB) 可 以 使 用 如 下 的 查 询 来 监 控 备 份 运 行 时 基 于 每 个 文 件 的 缓 冲 区 大 小 : SELECT set_count, device_type, type, filename, buffer_size, buffer_count, open_time, close_time FROM v$backup_async_io ORDER BY set_count,type, open_time, close_time; 1. 备 份 到 磁 盘 时 的 输 出 内 存 缓 冲 区 除 了 输 入 缓 冲 区 之 外,RMAN 还 会 根 据 输 出 设 备 分 配 输 出 缓 冲 区 如 果 备 份 到 磁 盘, 则 RMAN 将 分 配 输 出 缓 冲 区 以 在 数 据 溢 出 到 备 份 片 之 前 接 受 来 自 输 入 缓 冲 区 的 数 据 块 此 时, 每 个 信 道 有 4 个 输 出 缓 冲 区, 每 个 输 出 缓 冲 区 的 大 小 为 1MB, 因 此 每 个 信 道 的 内 存 区 域 通 常 为 4MB 2. 备 份 到 磁 带 时 的 输 出 内 存 缓 冲 区 备 份 到 磁 带 时 的 内 存 分 配 是 不 同 的, 这 是 由 于 磁 带 设 备 的 I/O 速 率 较 慢 在 磁 带 上 备 份 或 从 磁 带 上 还 原 时,RMAN 会 为 每 个 信 道 进 程 分 配 4 个 输 出 缓 冲 区, 每 个 输 出 缓 冲 区 的 大 小 为 256KB, 因 此 每 个 信 道 的 内 存 区 域 通 常 为 1MB 2.8.2 用 于 还 原 的 内 存 缓 冲 区 还 原 操 作 期 间 的 内 存 利 用 与 备 份 操 作 期 间 的 内 存 利 用 稍 有 不 同, 这 是 因 为 它 们 的 作 用 是 相 反 的 : 备 份 操 作 是 读 取 数 据 文 件 并 写 入 备 份 位 置, 而 还 原 操 作 则 是 读 取 备 份 位 置 并 写 入 数 据 文 件 还 原 磁 盘 备 份 时, 输 入 缓 冲 区 的 大 小 为 1MB, 同 时 RMAN 会 为 每 个 信 道 分 配 4 个 缓 冲 区 还 原 磁 带 备 份 时,RMAN 会 分 配 4 个 输 入 缓 冲 区, 每 个 缓 冲 区 的 大 小 等 于 BLKSIZE 参 数 的 值 ( 默 认 值 为 256KB) 用 于 还 原 的 输 出 缓 冲 区 通 常 为 128KB, 并 且 每 个 信 道 有 4 个 输 出 缓 冲 区 多 节 备 份 和 存 储 器 在 11g 中,Oracle 引 进 了 一 个 新 的 功 能, 允 许 RMAN 使 用 多 信 道 备 份 一 个 单 一 的 大

第 2 章 RMAN 体 系 结 构 概 述 49 容 量 文 件 这 意 味 着 先 前 的 存 储 器 的 内 存 输 入 / 输 出 缓 冲 区 会 话 仍 然 有 效, 但 缓 冲 区 是 按 信 道 备 份 的, 而 不 需 要 按 文 件 备 份 以 此 方 式, 每 个 信 道 为 将 要 备 份 的 文 件 的 每 个 部 分 打 开 四 个 输 入 缓 冲 区 输 出 缓 冲 区 按 备 份 片 保 留 与 前 述 算 法 一 致 2.8.3 RMAN 内 存 利 用 :PGA 与 SGA 在 磁 盘 上 的 备 份 会 使 用 PGA 内 存 空 间 作 为 备 份 缓 冲 区,PGA 内 存 空 间 从 用 于 信 道 进 程 的 内 存 空 间 中 分 配 如 果 操 作 系 统 没 有 配 置 本 地 异 步 I/O, 则 可 以 利 用 DBWR_IO_ SLAVES 参 数 使 用 I/O 从 属 来 填 充 内 存 中 的 输 入 缓 冲 区 如 果 设 置 DBWR_IO_SLAVES 参 数 为 任 意 的 非 零 值, 则 RMAN 会 自 动 分 配 4 个 I/O 从 属 来 协 调 输 入 缓 冲 区 内 存 中 的 数 据 块 加 载 为 了 实 现 这 一 功 能,RMAN 必 须 利 用 一 个 共 享 内 存 区 域 因 此, 用 于 磁 盘 备 份 的 内 存 缓 冲 区 会 被 推 入 共 享 池, 如 果 存 在 大 池, 则 被 推 入 大 池 如 果 没 有 使 用 磁 带 I/O 从 属, 则 会 在 PGA 中 分 配 用 于 磁 带 输 出 缓 冲 区 的 内 存 设 置 init.ora 参 数 BACKUP_TAPE_IO_SLAVES 为 TRUE, 可 以 使 用 磁 带 I/O 从 属, 必 要 时 还 可 以 在 服 务 器 参 数 文 件 (SPFILE) 中 动 态 地 设 置 该 参 数 BACKUP_TAPE_IO_SLAVES 参 数 设 置 为 TRUE 时,RMAN 会 为 每 个 信 道 创 建 一 个 从 属 进 程 来 协 助 备 份 工 作 为 了 协 调 这 一 功 能,RMAN 会 将 内 存 分 配 推 入 SGA 如 果 配 置 了 任 一 种 I/O 从 属 选 项 并 且 没 有 配 置 大 池, 则 会 从 SGA 的 共 享 池 区 中 分 配 内 存 如 果 没 有 配 置 大 池 却 又 要 使 用 I/O 从 属, 我 们 建 议 最 好 创 建 一 个 大 池, 这 个 大 池 的 大 小 基 于 为 备 份 分 配 的 信 道 总 数 ( 加 上 1MB 用 于 开 销 ) 第 16 章 将 介 绍 如 何 确 定 分 配 的 信 道 数 如 果 已 经 具 有 用 于 共 享 服 务 器 ( 多 线 程 服 务 器 ) 和 JDBC 连 接 池 的 大 池, 或 者 将 PARALLEL_ AUTOMATIC_TUNING 参 数 的 值 设 置 为 TRUE, 则 可 以 根 据 RMAN 内 存 缓 冲 区 来 增 加 大 池 的 大 小 上 面 这 些 对 RMAN 内 存 体 系 结 构 的 介 绍 未 涉 及 根 据 RMAN 备 份 来 调 整 系 统 的 内 容 显 而 易 见, 运 行 RMAN 时 会 发 生 资 源 占 用 事 实 上, 可 以 根 据 需 要 调 整 RMAN 使 用 更 多 或 更 少 的 资 源 第 16 章 将 详 细 讨 论 实 现 这 个 功 能 的 方 法 有 关 内 存 使 用 的 最 后 一 个 注 意 事 项 是 : 如 果 在 磁 带 上 做 备 份, 就 需 要 使 用 一 个 介 质 管 理 服 务 器 (Media Management Server) 产 品 如 果 从 与 目 标 数 据 库 相 同 的 系 统 运 行 介 质 管 理 器 (Media Manager), 则 磁 带 子 系 统 会 需 要 额 外 的 系 统 资 源 调 整 备 份 时 一 定 要 考 虑 到 这 个 因 素 Oracle SGA 中 的 大 池 大 池 是 Oracle 内 存 空 间 的 系 统 全 局 区 (System Global Area,SGA) 中 的 一 个 特 定 区 域 使 用 init.ora 文 件 或 SPFILE 文 件 中 的 LARGE_POOL_SIZE 参 数 可 以 配 置 大 池, 这 个 参 数 值 被 指 定 为 一 个 字 节 数 对 于 某 些 需 要 共 享 空 间 且 涉 及 共 享 池 中 常 见 操 作 的 内 存 活 动 可 以 利 用 大 池 占 用 大 池 的 区 主 要 限 于 RMAN 内 存 缓 冲 区 ( 如 果 使 用 了 I/O 从 属 ) 和 用 于 连 接 池 (connection pooling) 的 共 享 服 务 器 大 池 有 时 用 于 Java 连 接, 如 果 PARALLEL_AUTOMATIC_ TUNING 参 数 ( 在 10g 中 已 不 使 用 该 参 数 ) 被 设 置 为 TRUE, 大 池 还 会 包 含 并 行 查 询 从 属 (parallel query slave)

50 第 Ⅰ 部 分 Oracle RMAN 11g 基 础 知 识 实 际 上, 我 们 不 一 定 需 要 大 池 如 果 没 有 大 池, 所 有 可 能 占 用 大 池 的 区 会 直 接 使 用 共 享 池 中 的 空 间 这 并 不 是 没 有 解 决 办 法, 但 是 最 好 将 RMAN 缓 冲 区 分 到 PGA 中 其 自 己 的 独 立 空 间 中 这 样 一 来,SQL 和 PL/SQL 分 析 以 及 其 他 普 通 的 共 享 池 操 作 都 不 会 受 到 RMAN 备 份 的 影 响, 反 之 亦 然 此 外 还 可 以 更 方 便 更 直 接 地 调 整 RMAN 的 Oracle 内 存 空 间 2.9 恢 复 目 录 到 目 前 为 止, 我 们 已 经 讨 论 了 两 个 最 重 要 的 RMAN 组 件 :RMAN 客 户 端 实 用 程 序 和 内 部 数 据 库 数 据 包 不 过, 还 存 在 另 一 个 涉 及 RMAN 备 份 的 重 要 组 件 ( 虽 然 它 是 完 全 可 选 的 ): 恢 复 目 录 恢 复 目 录 存 储 的 是 与 RMAN 备 份 有 关 的 元 数 据 在 某 种 意 义 上, 恢 复 目 录 可 以 看 作 是 保 存 RMAN 备 份 和 恢 复 所 需 的 控 制 文 件 中 的 相 关 信 息 的 副 本 我 们 可 以 在 Oracle 数 据 库 中 的 用 户 模 式 下 创 建 恢 复 目 录, 这 个 恢 复 目 录 仅 仅 是 一 些 数 据 包 表 索 引 和 视 图 RMAN 中 的 再 同 步 命 令 会 使 得 按 目 标 数 据 库 控 制 文 件 中 的 内 容 刷 新 这 些 表 中 的 数 据 当 然, 其 区 别 在 于 恢 复 目 录 可 以 包 含 企 业 中 所 有 数 据 库 的 信 息, 而 控 制 文 件 只 包 含 关 于 它 自 己 的 数 据 库 的 信 息 为 了 使 用 恢 复 目 录, 首 先 要 从 RMAN 连 接 到 目 标 数 据 库, 随 后 还 要 在 RMAN 中 生 成 连 接 到 恢 复 目 录 的 第 二 个 Net 连 接, 如 下 所 示 : Rman>connect target / rman>connect catalog rman/password@rcat 在 连 接 恢 复 目 录 的 连 接 字 符 串 中, 要 输 入 该 RMAN 目 录 用 户 的 用 户 名 和 口 令 与 连 接 目 标 数 据 库 不 同, 连 接 到 恢 复 目 录 的 连 接 不 是 一 个 sysdba 连 接, 因 此 不 需 要 sysdba 权 限 一 旦 连 接 了 恢 复 目 录, 就 可 以 手 动 再 同 步 恢 复 目 录, 或 者 任 何 备 份 操 作 都 可 以 隐 式 地 再 同 步 恢 复 目 录 再 同 步 是 指 用 目 标 数 据 库 控 制 文 件 中 的 内 容 刷 新 恢 复 目 录 中 表 内 的 信 息 一 个 恢 复 目 录 可 以 存 储 多 个 目 标 数 据 库 的 信 息, 这 样 可 以 集 中 管 理 许 多 不 同 数 据 库 的 备 份 通 过 SQL*Plus 可 以 查 询 恢 复 目 录 的 视 图, 由 此 确 定 在 恢 复 目 录 中 注 册 的 每 个 目 标 数 据 库 的 备 份 数 备 份 大 小 和 备 份 范 围 图 2-4 介 绍 了 采 用 恢 复 目 录 时 的 网 络 拓 扑 结 构 在 恢 复 目 录 中 存 在 两 个 数 据 包 :DBMS_ RCVMAN 数 据 包 和 DBMS_RCVCAT 数 据 包 DBMS_RCVMAN 数 据 包 与 SYS 模 式 中 的 DBMS_RCVMAN 数 据 包 形 式 是 一 样 的, 因 此 RMAN 实 用 程 序 既 可 以 使 用 恢 复 目 录, 也 可 以 使 用 目 标 数 据 库 控 制 文 件 来 提 供 备 份 和 恢 复 的 有 关 信 息, 并 且 不 必 担 心 其 实 现 方 式 的 不 同

第 2 章 RMAN 体 系 结 构 概 述 51 PRODUCTION DB 服 务 器 数 据 库 服 务 器 10.2 PROD db 11.2.0 Oracle 软 件 存 储 数 据 库 10.2.0 RMAN.exe 用 户 RMAN 模 式 9.2.0 PROD db 9.2.0 RMAN.exe 图 2-4 连 接 一 个 恢 复 目 录 恢 复 目 录 中 存 在 的 数 据 包 DBMS_RCVMAN 会 给 包 含 该 恢 复 目 录 的 数 据 库 带 来 混 乱, 这 样 的 数 据 库 通 常 称 为 目 录 数 据 库 (catalog database) 目 录 数 据 库 也 可 能 是 潜 在 的 目 标 数 据 库, 它 也 含 有 SYS 模 式 中 的 DBMS_RCVMAN 数 据 包, 因 此 如 果 选 择 目 录 数 据 库 中 的 DBA_OBJECTS, 就 会 存 在 模 式 不 同 但 是 名 称 相 同 的 两 个 数 据 包 这 样 并 不 会 发 生 错 误 或 问 题 因 为 其 中 一 个 数 据 包 在 数 据 库 创 建 时 由 catproc.sql 构 建 ( 在 SYS 模 式 下 ), 另 一 个 数 据 包 则 是 在 创 建 恢 复 目 录 时 构 建 ( 在 常 规 的 用 户 模 式 下 ) 恢 复 目 录 中 的 第 二 个 数 据 包 是 DBMS_RCVCAT 数 据 包, 这 个 数 据 包 只 在 RMAN 操 作 期 间 执 行 特 定 的 恢 复 目 录 操 作 实 质 上, 可 以 将 这 个 数 据 包 看 作 恢 复 目 录 的 DBMS_ BACKUP_ RESTORE 数 据 包 实 现, 区 别 仅 在 于 DBMS_BACKUP_RESTORE 数 据 包 在 目 标 数 据 库 控 制 文 件 中 写 入 备 份 完 成 信 息, 而 DBMS_RCVCAT 数 据 包 则 将 这 些 信 息 写 入 恢 复 目 录 另 外, 包 含 恢 复 目 录 中 的 信 息 的 基 表 (base table) 并 不 重 要, 因 为 我 们 不 想 手 动 修 改 这 些 基 表 为 了 保 护 恢 复 目 录,Oracle 创 建 了 一 系 列 前 缀 为 RC_ 的 视 图, 使 用 这 些 视 图 可 以 从 恢 复 目 录 中 析 取 信 息 手 动 执 行 任 何 针 对 目 录 对 象 的 DML 命 令 是 非 常 危 险 的, 我 们 并 不 建 议 执 行 这 样 的 操 作 第 10 章 简 要 介 绍 了 RC_* 视 图 及 其 提 供 的 信 息 需 要 注 意 的 是, 这 些 视 图 是 数 据 库 控 制 文 件 中 相 应 v$ 视 图 的 不 同 实 现 2.10 辅 助 数 据 库 辅 助 数 据 库 (auxiliary database) 是 指 在 表 空 间 时 间 点 恢 复 (Tablespace Point In Time Recovery,TSPITR) 复 制 操 作 ( 克 隆 数 据 库 ) 或 使 用 RMAN 备 份 创 建 备 用 数 据 库 时, 为 了 还 原 目 标 数 据 库 的 文 件 而 临 时 生 成 的 实 例 执 行 上 述 任 何 一 种 任 务 时, 我 们 都 要 在 RMAN 中 同 时 连 接 目 标 数 据 库 和 辅 助 数 据 库, 这 样 就 可 以 利 用 目 标 数 据 库 控 制 文 件 中 的 备 份 信 息 在 辅 助 数 据 库 位 置 调 整 这 些 备 份 的 还 原 下 面 所 示 的 是 连 接 到 目 标 数 据 库 ( 本 地 )

52 第 Ⅰ 部 分 Oracle RMAN 11g 基 础 知 识 和 辅 助 数 据 库 ( 使 用 Oracle Net 连 接 ) 的 连 接 : rman>connect target / rman>connect auxiliary sys/pwd@aux1 执 行 这 些 命 令 后,RMAN 会 同 时 生 成 到 每 个 数 据 库 的 连 接, 并 要 求 访 问 目 标 数 据 库 与 辅 助 数 据 库 中 的 SYS.DBMS_BACKUP_RESTORE 数 据 包 和 SYS.DBMS_RCVMAN 数 据 包 这 样,RMAN 要 求 辅 助 数 据 库 具 有 与 目 标 数 据 库 相 同 的 sysdba 权 限 由 于 RMAN 必 须 生 成 到 这 两 个 数 据 库 的 sysdba 连 接, 而 且 不 可 能 本 地 连 接 两 个 不 同 的 数 据 库, 因 此 必 须 至 少 配 置 一 个 数 据 库, 创 建 一 个 口 令 文 件, 并 且 生 成 到 这 个 数 据 库 的 Oracle Net 连 接 第 19 章 将 详 细 讨 论 辅 助 数 据 库 的 设 置 图 2-5 介 绍 了 使 用 辅 助 数 据 库 时 的 RMAN 配 置 网 络 拓 扑 结 构 在 Oracle 8i 中 的 辅 助 数 据 库 上 执 行 任 何 动 作 时 都 需 要 恢 复 目 录, 因 此 图 2-5 显 示 了 包 含 一 个 恢 复 目 录 的 拓 扑 结 构 数 据 库 服 务 器 1 管 理 员 的 工 作 站 数 据 库 服 务 器 2 11.2.0 Oracle 软 件 11.2.0 Oracle 软 件 目 标 数 据 库 恢 复 目 录 数 据 库 11.2.0 Oracle 客 户 机 用 户 RMAN 模 式 数 据 库 服 务 器 1 11.2.0 Oracle 软 件 辅 助 数 据 库 图 2-5 包 含 辅 助 数 据 库 的 网 络 拓 扑 结 构 2.11 版 本 兼 容 性 鉴 于 必 须 使 用 很 多 种 不 同 的 组 件, 因 此 在 使 用 RMAN 时 必 须 注 意 数 据 库 版 本 的 限 制 版 本 兼 容 性 问 题 分 为 5 部 分, 每 一 部 分 都 有 一 个 版 本 号 : RMAN 可 执 行 文 件 版 本 ( 客 户 端 实 用 程 序 ) 目 标 数 据 库 恢 复 目 录 模 式 恢 复 目 录 数 据 库

第 2 章 RMAN 体 系 结 构 概 述 53 辅 助 数 据 库 ( 用 于 复 制 TSPITR 和 备 用 数 据 库 的 创 建 ) 当 然, 解 决 兼 容 性 问 题 的 最 佳 方 法 是 保 证 这 些 组 件 都 使 用 最 新 的 11.2 版 本 如 果 使 用 相 同 版 本 的 这 些 组 件, 一 切 都 会 井 然 有 序 当 然, 在 所 有 数 据 库 都 是 相 同 版 本 的 情 况 下, 所 有 事 情 都 会 按 部 就 班, 并 且 因 为 不 会 产 生 故 障 而 不 需 要 进 行 备 份 但 是, 在 实 际 生 活 中, 还 是 需 要 了 解 关 于 RMAN 版 本 兼 容 性 的 一 些 问 题 2.11.1 目 标 数 据 库 与 RMAN 可 执 行 文 件 首 先, 要 遵 守 的 第 一 个 通 用 规 则 是 尽 量 保 证 目 标 数 据 库 与 RMAN 可 执 行 文 件 使 用 的 是 相 同 的 版 本 如 果 在 目 标 数 据 库 环 境 下 运 行 RMAN, 做 到 这 一 点 是 很 容 易 的 如 果 从 一 个 集 中 的 客 户 端 接 口 运 行 所 有 的 RMAN 工 作, 这 将 非 常 棘 手, 这 意 味 着 客 户 端 系 统 需 要 安 装 一 个 ORACLE_HOME 客 户 端 软 件, 版 本 上 要 对 应 需 要 连 接 和 备 份 的 每 个 数 据 库 的 版 本, 该 解 决 方 案 相 当 复 杂 使 用 Oracle Enterprise Manager Grid Control 软 件 可 以 解 决 这 个 问 题, 该 软 件 支 持 集 中 的 客 户 端 接 口, 因 此 我 们 可 以 从 单 个 控 制 台 使 用 远 程 RMAN 可 执 行 文 件, 或 者 在 多 个 DBA 完 成 备 份 任 务 时 从 多 个 控 制 台 使 用 远 程 RMAN 可 执 行 文 件 第 11 章 将 介 绍 Enterprise Manager 接 口 2.11.2 恢 复 目 录 数 据 库 与 恢 复 目 录 模 式 实 质 上, 需 要 考 虑 3 种 版 本 的 兼 容 性 :Oracle 9i Oracle 10g 和 Oracle 11g 针 对 恢 复 目 录 数 据 库 与 恢 复 目 录 模 式 的 兼 容 性 问 题, 一 种 简 单 的 解 决 方 法 是 : 如 果 在 Oracle 11.2 版 本 的 数 据 库 中 创 建 了 一 个 Oracle 11.2 版 本 的 恢 复 目 录, 那 么 这 个 恢 复 目 录 可 以 注 册 Oracle 8.1.7.4 版 本 以 上 的 所 有 数 据 库 如 果 无 法 实 现 这 一 点, 则 版 本 向 前 兼 容, 即 一 个 8.1.x 版 本 的 恢 复 目 录 可 以 注 册 所 有 Oracle 8 版 本 的 数 据 库 但 是,Oracle 8i 版 本 的 恢 复 目 录 不 能 注 册 Oracle 9.0.1 版 本 或 Oracle 9.2.0 版 本 的 数 据 库 Oracle 10x 版 本 的 数 据 库 也 不 能 注 册 到 Oracle 9x 版 本 的 目 录 中,11g 版 本 的 数 据 库 也 不 能 在 低 版 本 的 目 录 中 注 册 因 此, 如 果 数 据 库 不 能 在 Oracle 10g 恢 复 目 录 中 注 册, 就 需 要 在 NOCATALOG( 非 目 录 ) 模 式 下 运 行 和 使 用 这 个 数 据 库 不 要 考 虑 运 行 多 版 本 的 目 录 不 需 要 这 样 做 记 住, 当 在 您 的 系 统 环 境 中 引 进 一 个 新 版 本 的 RDBMS 时, 同 时 需 要 获 得 该 版 本 的 RMAN 目 录 2.11.3 辅 助 数 据 库 从 兼 容 性 角 度 来 看, 辅 助 数 据 库 必 须 与 要 复 制 的 目 标 数 据 库 采 用 相 同 的 版 本 实 际 上, 最 好 使 复 制 的 ORACLE_HOME 主 目 录 匹 配 为 与 目 标 数 据 库 的 ORACLE_HOME 主 目 录 相 同 的 版 本 第 17 章 将 详 细 讨 论 辅 助 数 据 库 的 使 用 方 法 2.12 RMAN 进 程 到 目 前 为 止, 我 们 已 经 讨 论 了 使 用 RMAN 来 执 行 备 份 的 不 同 组 件 您 可 能 会 注 意 到, 备 份 操 作 分 为 多 个 步 骤 为 了 使 您 对 备 份 操 作 有 一 定 的 了 解, 我 们 将 执 行 一 个 典 型 的 备

54 第 Ⅰ 部 分 Oracle RMAN 11g 基 础 知 识 份 操 作, 并 且 解 释 每 个 步 骤 发 生 的 内 在 RMAN 活 动 同 时, 您 应 当 将 这 些 实 际 步 骤 与 本 章 介 绍 过 的 各 种 内 容 联 系 起 来 下 面 将 举 例 说 明 对 PROD 数 据 库 的 备 份 操 作, 备 份 将 存 储 在 磁 盘 上 本 书 的 第 4 章 到 第 8 章 将 介 绍 如 何 设 置 和 使 用 磁 带 备 份 用 到 的 介 质 管 理 器 目 标 数 据 库 PROD 有 20 个 数 据 文 件, 并 在 ARCHIVELOG 模 式 中 运 行 在 备 份 操 作 期 间,PROD 数 据 库 继 续 运 行 下 面 是 备 份 操 作 的 命 令 : C$>rman rman>connect target / rman>backup database; 上 面 就 是 备 份 操 作 的 所 有 命 令, 接 下 来 将 详 细 讨 论 备 份 操 作 RMAN 生 成 连 接 到 目 标 数 据 库 ( 已 经 在 我 们 的 环 境 中 设 置 ) 的 bequeath 连 接, 这 就 是 说 RMAN 会 检 查 ORACLE_SID 变 量 中 的 实 例 名, 并 在 该 实 例 上 产 生 一 个 服 务 器 进 程, 然 后 作 为 sysdba 用 户 登 录 这 样, 我 们 被 连 接 为 内 部 数 据 库 用 户 SYS,RMAN 会 立 即 产 生 一 个 用 于 执 行 备 份 操 作 的 信 道 进 程 在 这 个 示 例 中, 由 于 使 用 默 认 的 设 置, 因 此 只 会 分 配 一 个 信 道 我 们 没 有 使 用 I/O 从 属, 因 此 信 道 进 程 会 在 PGA 中 分 配 内 存 随 后,RMAN 通 过 编 译 一 个 对 SYS.DBMS_RCVMAN 的 调 用, 从 目 标 数 据 库 控 制 文 件 中 请 求 数 据 库 结 构 信 息, 先 是 确 定 目 标 数 据 库 的 版 本 RMAN 从 控 制 文 件 中 收 集 版 本 信 息 和 控 制 文 件 本 身 的 信 息, 控 制 文 件 本 身 的 信 息 包 括 控 制 文 件 的 类 型 控 制 文 件 中 的 当 前 序 列 号 以 及 控 制 文 件 的 创 建 时 间 由 于 指 定 了 数 据 库 的 完 整 备 份, 所 以 RMAN 会 请 求 数 据 库 中 每 个 数 据 文 件 的 信 息, 并 且 判 断 是 否 存 在 离 线 的 数 据 文 件 这 些 数 据 文 件 信 息 中 包 括 每 个 数 据 文 件 所 在 磁 盘 和 工 作 方 式 的 信 息 由 于 使 用 了 默 认 设 置, 所 以 只 存 在 一 个 信 道 和 一 个 备 份 集 这 样,RMAN 会 忽 略 所 有 的 磁 盘 相 似 性 信 息, 把 注 意 力 放 在 编 译 包 含 在 备 份 集 内 的 文 件 列 表 上 编 译 了 文 件 列 表 之 后,RMAN 就 准 备 开 始 执 行 备 份 进 程 为 了 保 证 一 致 性,RMAN 必 须 构 建 快 照 控 制 文 件 如 果 存 在 快 照 控 制 文 件, 则 RMAN 会 将 这 个 文 件 重 写 为 新 的 快 照 控 制 文 件 接 下 来,RMAN 创 建 对 DBMS_BACKUP_RESTORE 数 据 包 的 调 用, 该 调 用 可 以 创 建 备 份 片 备 份 片 在 默 认 的 文 件 位 置 中 构 建,UNIX 系 统 中 的 这 个 文 件 的 默 认 位 置 是 ORACLE_HOME/dbs, 而 在 Windows 系 统 中, 这 个 文 件 的 默 认 位 置 是 ORACLE_ HOME/database RMAN 拥 有 文 件 列 表, 因 此 它 可 以 为 磁 盘 读 取 操 作 分 配 内 存 缓 冲 区 PROD 数 据 库 拥 有 20 个 数 据 文 件, 这 样 RMAN 会 分 配 一 些 大 小 为 128KB 的 输 入 缓 冲 区, 由 于 每 个 文 件 有 4 个 输 入 缓 冲 区, 因 此 这 些 输 入 缓 冲 区 总 共 需 要 使 用 10MB 的 内 存 RMAN 将 只 分 配 4 个 输 出 缓 冲 区, 每 个 输 出 缓 冲 区 的 大 小 为 1MB 这 样, 备 份 操 作 需 要 使 用 的 总 内 存 为 14MB 分 配 了 内 存 之 后,RMAN 初 始 化 备 份 片 备 份 片 会 得 到 一 个 唯 一 的 默 认 名 随 后, RMAN 开 始 备 份 在 数 据 库 版 本 9.2 10.1 和 10.2 中,RMAN 以 50MB 为 增 量 分 配 磁 盘 空 间 : 在 磁 盘 上 分 配 50MB 的 空 间 并 且 填 充 输 出 缓 冲 区 ; 当 输 出 缓 冲 区 已 填 满 时, 则 获 取 另 一 个 50MB 空 间, 直 到 将 最 后 一 个 数 据 块 转 储 到 备 份 片 当 备 份 完 成 时, 释 放 最 后 一 个 50MB 数 据 块 中 的 剩 余 空 间 有 必 要 指 出 的 是,RMAN 不 再 检 查 是 否 存 在 完 成 所 有

第 2 章 RMAN 体 系 结 构 概 述 55 备 份 操 作 的 足 够 空 间 这 是 由 于 空 值 压 缩 和 新 的 10g 空 白 压 缩 可 极 大 地 减 少 备 份 中 的 数 据 文 件 大 小 相 反,RMAN 将 运 行 它 的 备 份 直 到 空 间 用 完 为 止, 然 后 就 会 运 行 失 败 一 旦 初 始 化 了 备 份 片, 信 道 进 程 就 可 以 开 始 数 据 库 备 份 进 程 RMAN 会 判 断 是 否 使 用 了 服 务 器 参 数 文 件 (SPFILE), 如 果 使 用 了 服 务 器 参 数 文 件, 则 RMAN 会 自 动 将 该 文 件 备 份 为 备 份 集 的 一 部 分 RMAN 还 要 在 备 份 集 中 备 份 当 前 控 制 文 件 只 要 备 份 了 SYSTEM 表 空 间, 就 会 自 动 备 份 当 前 控 制 文 件, 但 如 果 打 开 了 控 制 文 件 自 动 备 份 (control file autobackup) 功 能, 情 况 就 会 有 所 变 化 ( 参 阅 第 9 章 ) 完 成 服 务 器 参 数 文 件 和 控 制 文 件 的 备 份 后, 就 应 当 开 始 读 取 数 据 文 件 并 将 数 据 块 推 入 内 存 为 了 实 现 这 一 功 能, 信 道 进 程 在 磁 盘 上 执 行 预 读 (read-ahead) 操 作, 并 且 将 多 个 数 据 块 同 时 推 入 内 存 随 后 发 生 的 是 从 输 入 缓 冲 区 到 输 出 缓 冲 区 的 内 存 对 内 存 的 写 操 作, 在 这 个 写 操 作 期 间,RMAN 会 判 断 数 据 块 是 否 初 始 化, 或 者 数 据 块 头 信 息 是 否 仍 然 为 零 如 果 数 据 块 未 被 使 用 过, 就 不 会 发 生 到 输 出 缓 冲 区 的 写 操 作, 同 时 会 丢 弃 这 个 数 据 块 如 果 数 据 块 被 使 用 过, 则 RMAN 会 在 这 个 数 据 块 上 执 行 检 验 和 (checksum) 操 作 如 果 数 据 块 头 和 脚 注 不 匹 配, 则 RMAN 会 指 出 存 在 损 坏 的 数 据 块 并 中 止 备 份 如 果 数 据 块 初 始 化 并 通 过 了 检 验 和 操 作, 这 个 数 据 块 就 会 被 写 入 输 出 缓 冲 区 一 旦 输 出 缓 冲 区 被 填 满, 就 会 将 输 出 缓 冲 区 中 的 内 容 转 储 到 备 份 文 件 位 置 由 于 RMAN 缓 冲 区 填 充 来 自 所 有 数 据 文 件 的 数 据 块, 所 以 在 转 储 文 件 中 的 数 据 块 是 杂 乱 无 序 的 转 储 文 件 只 是 一 个 存 储 段, 只 有 RMAN 能 够 在 还 原 时 将 这 些 数 据 块 还 原 为 正 确 的 位 置 在 备 份 片 中 写 入 数 据 块 时, 可 以 从 RMAN 影 子 (shadow) 进 程 中 得 到 备 份 的 状 态 信 息 RMAN 影 子 进 程 在 目 标 数 据 库 上 检 查 远 程 进 程 调 用 (RPC), 并 将 信 息 传 递 给 V$SESSION_LONGOPS 视 图 以 供 用 户 查 看 基 于 在 备 份 操 作 开 始 时 收 集 的 信 息,RMAN 会 估 计 每 个 信 道 进 程 完 成 的 百 分 比, 这 可 以 在 下 面 的 V$SESSION_LONGOPS 视 图 中 查 看 : SELECT SID, SERIAL#, CONTEXT, SOFAR, TOTALWORK, ROUND(SOFAR/TOTALWORK*100,2) "%_COMPLETE" FROM V$SESSION_LONGOPS WHERE OPNAME LIKE 'RMAN%' AND OPNAME NOT LIKE '%aggregate%' AND TOTALWORK!= 0 AND SOFAR <> TOTALWORK / SID SERIAL# CONTEXT SOFAR TOTALWORK %_COMPLETE ---------- ---------- ---------- ---------- ---------- ---------- 17 167 1 4784 116328 4.11 在 备 份 进 程 期 间, 我 们 还 可 以 重 新 执 行 这 样 的 查 询, 并 可 以 得 到 剩 余 工 作 的 最 新 信 息, 如 下 所 示 : SID SERIAL# CONTEXT SOFAR TOTALWORK %_COMPLETE ---------- ---------- ---------- ---------- ---------- ----------- 17 167 1 96999 116328 83.38

56 第 Ⅰ 部 分 Oracle RMAN 11g 基 础 知 识 一 旦 一 个 数 据 文 件 的 所 有 数 据 块 都 被 读 入 输 入 缓 冲 区 并 且 确 定 了 状 态,RMAN 就 会 通 过 将 这 个 数 据 文 件 头 写 入 备 份 片 来 结 束 该 文 件 的 备 份 操 作 在 所 有 数 据 文 件 头 都 被 写 入 备 份 片 之 后,RMAN 会 生 成 最 后 一 个 对 SYS.DBMS_BACKUP_RESTORE 数 据 包 的 调 用, 该 调 用 在 控 制 文 件 中 写 入 备 份 信 息, 这 些 信 息 包 括 备 份 片 名 启 动 备 份 操 作 时 的 检 查 点 的 SCN 和 完 成 备 份 操 作 的 时 间 上 面 介 绍 的 就 是 备 份 操 作 的 所 有 进 程 显 然, 如 果 选 择 更 多 的 备 份 选 项 ( 如 使 用 多 个 信 道 使 用 FILESPERSET 参 数 及 备 份 到 磁 带 等 ), 备 份 操 作 将 会 更 加 复 杂 不 过, 每 种 配 置 用 到 的 基 本 进 程 都 与 前 面 所 介 绍 的 相 同 在 学 习 和 测 试 RMAN 时, 如 果 要 进 一 步 了 解 备 份 期 间 RMAN 内 部 的 工 作 流 程, 则 可 以 打 开 备 份 操 作 的 调 试 选 项, 从 而 得 到 一 个 完 整 的 进 程 列 表 : Rman target / debug trace=/u02/oradata/trace/rmanbkup.out 需 要 注 意 的 是, 这 个 输 出 列 表 非 常 详 细, 并 可 能 妨 碍 备 份 操 作 的 性 能 最 好 只 在 测 试 实 例 时 使 用 这 个 列 表 来 进 行 调 试, 或 者 只 在 检 查 产 品 备 份 问 题 时 在 Oracle Support Services 的 指 导 下 使 用 这 个 列 表 来 进 行 调 试 2.13 闪 回 恢 复 区 闪 回 恢 复 区 (FRA) 不 是 使 用 RMAN 所 需 的 组 件, 但 它 应 该 成 为 RMAN 所 需 的 组 件 作 为 10g 版 本 的 新 增 内 容,FRA 是 磁 盘 上 所 设 定 的 用 于 存 储 所 有 Oracle 恢 复 文 件 的 特 定 位 置 恢 复 文 件 是 指 进 行 介 质 恢 复 操 作 时 所 需 的 所 有 文 件 : 完 全 的 数 据 文 件 备 份 增 量 备 份 数 据 文 件 副 本 备 份 控 制 文 件 以 及 归 档 的 日 志 FRA 也 存 储 联 机 重 做 日 志 文 件 块 更 改 跟 踪 文 件 以 及 当 前 控 制 文 件 的 镜 像 副 本 如 果 进 行 设 置,FRA 中 也 存 储 使 用 闪 回 数 据 库 选 项 的 闪 回 日 志 ( 在 第 13 章 中 将 讨 论 闪 回 技 术 ) FRA 的 潜 在 作 用 是 简 化 备 份 和 恢 复 工 作 的 管 理, 方 法 是 将 必 需 的 文 件 合 并 到 一 个 位 置, 从 而 使 Oracle 和 RMAN 可 以 进 行 细 节 管 理, 而 DBA 就 可 以 转 为 处 理 其 他 重 要 的 工 作 这 种 简 化 是 基 于 关 注 可 用 性 的 牢 固 备 份 策 略 的 一 些 潜 在 原 理 : 在 数 据 库 可 以 进 行 本 地 访 问 的 磁 盘 上 应 该 保 存 重 要 数 据 文 件 的 至 少 一 个 副 本 ( 如 果 没 有 保 存 整 个 数 据 库 的 副 本 的 话 ) 根 据 本 地 磁 盘 的 存 储 压 力, 应 该 将 一 段 时 间 以 前 的 备 份 转 移 到 磁 带 上 根 据 业 务 规 则, 长 期 的 备 份 管 理 应 该 是 自 动 进 行 的 您 设 置 的 FRA 可 以 是 普 通 磁 盘 卷 上 的 目 录 或 自 动 存 储 管 理 (ASM) 磁 盘 组 FRA 通 过 两 个 初 始 参 数 确 定 :DB_RECOVERY_FILE_DEST 和 DB_RECOVERY_FILE_DEST_SIZE 第 一 个 参 数 确 定 其 位 置, 第 二 个 参 数 则 确 定 其 大 小 可 以 在 init.ora 文 件 ( 如 果 仍 然 使 用 该 文 件 ) 中 设 置 这 些 参 数, 或 者 在 SPFILE 中 通 过 执 行 alter system set 命 令 设 置 这 些 参 数 通 过 配 置 FRA, 我 们 就 不 需 要 为 归 档 的 日 志 设 置 任 何 其 他 的 LOG_ARCHIVE_DEST_n 参 数 ; 对 于 FRA,Oracle 将 默 认 值 LOG_ARCHIVE_DEST_10 分 配 给 FRA 也 应 该 注 意, 使 用 FRA 时, 不 可 以 使 用 LOG_ARCHIVE_DEST 或 LOG_ARCHIVE_DUPLEX_ DEST;

第 2 章 RMAN 体 系 结 构 概 述 57 不 过, 您 应 该 已 经 很 久 没 有 使 用 过 这 些 过 时 的 参 数 了 FRA 在 内 部 管 理 恢 复 文 件 首 先 是 基 于 数 据 库 名, 然 后 基 于 文 件 类 型, 接 下 来 是 文 件 的 生 成 日 期 文 件 本 身 则 根 据 Oracle 管 理 文 件 (Oracle Managed Files,OMF) 格 式 命 名 这 样, 这 些 文 件 就 很 难 解 密 ( 除 了 归 档 的 日 志, 它 仍 然 保 留 使 用 LOG_ARCHIVE_FORMAT 参 数 提 供 的 结 构 ) 也 有 一 些 重 要 的 内 部 目 录 结 构 因 文 件 管 理 的 需 要 而 存 在 然 而,FRA 的 作 用 在 于 不 需 要 花 费 过 多 的 时 间 来 操 心 文 件 本 身 这 也 就 是 说, 应 该 关 注 内 部 的 结 构 并 且 熟 悉 文 件 的 位 置 因 为 您 早 晚 都 会 要 用 手 动 来 查 找 特 定 文 件 多 个 数 据 库 可 以 使 用 相 同 的 FRA 这 可 以 提 供 极 大 的 好 处, 特 别 是 对 于 数 据 保 护 (Data Guard) 配 置 如 果 在 相 同 系 统 上 有 较 大 的 ASM 磁 盘 组 和 多 个 数 据 库, 也 可 以 使 用 该 方 法 当 需 要 复 制 数 据 库 以 进 行 测 试 时, 使 用 该 方 法 也 会 非 常 方 便 需 要 注 意 的 是, 使 用 相 同 FRA 的 所 有 数 据 库 必 须 具 有 不 同 的 DB_NAME 值, 或 者 对 于 值 DB_UNIQUE_ NAME 具 有 不 同 的 名 称 2.14 小 结 本 章 介 绍 了 RMAN 执 行 Oracle Database 11g 数 据 库 备 份 操 作 的 内 在 体 系 结 构, 涉 及 到 RMAN 可 执 行 文 件 目 标 数 据 库 数 据 包 和 控 制 文 件, 并 且 详 细 讨 论 了 进 程 体 系 结 构 和 如 何 分 配 用 于 RMAN 备 份 的 内 存, 还 介 绍 了 RMAN 恢 复 目 录 的 用 途, 以 及 连 接 辅 助 数 据 库 的 方 法 结 束 对 这 些 不 同 组 件 的 介 绍 之 后, 我 们 简 要 描 述 了 一 个 典 型 的 备 份 操 作 流 程, 并 说 明 了 在 流 程 中 使 用 的 各 种 不 同 组 件

第 Ⅱ 部 分 第 3 章 RMAN 设 置 和 配 置 第 4 章 介 质 管 理 问 题 第 5 章 Oracle 安 全 备 份 第 6 章 使 用 OSB 云 模 块 将 数 据 库 备 份 到 Amazon Web 服 务 第 7 章 使 用 Oracle 的 VERITAS NetBackup 增 强 RMAN 第 8 章 配 置 Oracle 的 HP Data Protector 第 9 章 RMAN 与 Tivoli Storage Manager 第 10 章 恢 复 目 录 的 使 用 第 11 章 RMAN 备 份 第 12 章 RMAN 还 原 与 恢 复

第 3 章 在 使 用 RMAN 执 行 实 际 的 备 份 和 恢 复 操 作 之 前, 首 先 需 要 设 置 用 于 备 份 和 恢 复 操 作 的 RMAN 与 数 据 库 本 章 将 介 绍 最 初 的 RMAN 设 置 要 求 和 选 项 首 先, 由 于 重 做 日 志 在 Oracle 数 据 库 恢 复 中 具 有 关 键 地 位, 因 此 我 们 将 在 第 1 章 关 于 Oracle 重 做 日 志 介 绍 的 基 础 上, 进 一 步 深 入 讨 论 Oracle 重 做 日 志 在 上 述 讨 论 的 基 础 上, 将 学 习 为 执 行 联 机 备 份 操 作 而 将 数 据 库 置 入 ARCHIVELOG 模 式 的 情 况, 然 后 再 介 绍 基 本 的 RMAN 接 口, 使 您 对 RMAN 有 进 一 步 的 认 识 接 下 来, 将 讨 论 如 何 为 数 据 库 备 份 操 作 对 RMAN 进 行 配 置 最 后, 还 要 讨 论 RMAN 恢 复 目 录, 包 括 使 用 恢 复 目 录 的 原 因 以 及 配 置 恢 复 目 录 的 方 法

62 第 Ⅱ 部 分 设 置 原 则 和 实 践 3.1 配 置 数 据 库 以 在 ARCHIVELOG 模 式 中 运 行 在 第 1 章, 我 们 已 经 介 绍 了 ARCHIVELOG 模 式 和 NOARCHIVELOG 模 式, 了 解 redo 对 数 据 库 的 重 要 性, 了 解 为 何 多 数 DBA 将 其 数 据 库 设 置 为 ARCHIVELOG 模 式 的 原 因 如 果 您 认 为 自 己 的 数 据 库 可 以 设 置 为 NOARCHIVELOG 模 式, 则 本 节 的 多 数 讨 论 不 适 合 应 用 于 该 种 方 式 如 果 您 打 算 采 用 ARCHIVELOG 模 式, 则 需 要 做 一 些 基 本 的 配 置 工 作 本 章 主 要 讨 论 这 些 配 置 工 作 当 数 据 库 在 ARCHIVELOG 模 式 运 行 时, 归 档 重 做 日 志 的 复 制 位 置 可 采 用 两 种 配 置 方 法 实 际 上, 也 可 以 同 时 采 用 两 种 方 式 第 一 种 选 择 是 配 置 ARCHIVELOG 目 标 目 录, 第 二 种 选 择 是 配 置 Oracle 闪 回 恢 复 区 (Flash Recovery Area,FRA) 在 后 续 内 容 中, 首 先 将 讨 论 这 两 种 配 置, 然 后 讨 论 将 数 据 库 配 置 为 在 ARCHIVELOG 模 式 中 运 行 的 实 际 操 作 方 法 3.1.1 ARCHIVELOG 目 标 目 录 在 配 置 ARCHIVELOG 模 式 时, 需 要 确 定 让 Oracle 在 何 处 创 建 归 档 重 做 日 志 选 择 使 用 归 档 日 志 目 标 目 录 可 长 期 有 效 要 采 用 归 档 日 志 目 标 目 录 方 式, 需 要 在 Oracle 中 设 置 一 些 特 定 参 数 来 配 置 选 项 首 先, 可 使 用 LOG_ARCHIVE_DEST_n(n 是 1~10 的 一 个 范 围 值 ) 参 数 定 义 最 多 10 个 不 同 的 归 档 日 志 目 标, 这 些 目 标 可 以 是 本 地 目 录 网 络 目 录 ( 如 NT 文 件 夹 ) 或 网 络 连 接 存 储 (NAS), 如 果 使 用 Oracle 的 备 用 数 据 库 / 数 据 保 护 产 品, 目 标 还 可 能 是 一 个 定 义 的 数 据 库 服 务 器 名 需 要 注 意 的 是 LOG_ARCHIVE_DEST_n 参 数 没 有 默 认 定 义 如 果 使 用 SPFILES, 则 可 以 使 用 alter system 命 令 设 置 LOG_ARCHIVE_DEST_n 参 数, 示 例 如 下 : alter system set log_archive_dest_1 = 'location = c:\oracle\oraarc\beta1'; 注 意 : 在 该 设 置 中, 常 见 的 错 误 是 设 置 的 LOG_ARCHIVE_DEST 目 录 不 存 在, 或 者 Oracle 不 能 对 该 目 录 执 行 写 操 作 为 确 保 正 确 设 置 该 参 数 并 且 数 据 库 处 于 archive 模 式, 可 执 行 alter system switch logfile 命 令, 以 确 保 ARCH 进 程 正 确 地 执 行 写 归 档 重 做 日 志 的 工 作 每 一 个 LOG_ARCHIVE_DEST_n 位 置 都 可 以 定 义 为 强 制 或 任 选 两 种 方 式 之 一 在 Oracle Database 11g 中,LOG_ARCHIVE_DEST_n 位 置 默 认 定 义 为 任 选 方 式 如 果 定 义 为 强 制 方 式, 则 意 味 着 归 档 重 做 日 志 必 须 写 到 该 位 置 当 ARCH 进 程 在 对 采 用 强 制 方 式 的 位 置 写 入 发 生 错 误 时, 数 据 库 所 有 活 动 将 被 快 速 挂 起 ( 在 循 环 通 过 所 有 联 机 重 做 日 志 后 ) 任 选 重 做 位 置 对 数 据 库 操 作 没 有 影 响

第 3 章 RMAN 设 置 和 配 置 63 alter system set log_archive_dest_1 = 'location = c:\oracle\oraarc\beta1 mandatory'; 在 Oracle Database 11g 中, 所 有 LOG_ARCHIVE_DEST_n 参 数 的 位 置 在 默 认 情 况 下 都 是 可 选 的 ( 尽 管 位 置 总 是 按 顺 序 排 列 的, 因 为 LOG_ARCHIVE_MIN_SUCCEED_DEST 最 小 的 设 置 是 1) 参 数 LOG_ARCHIVE_MIN_SUCCEED_DEST 指 定, 归 档 多 少 日 志 目 标 目 录 中 必 须 包 含 联 机 重 做 日 志 的 成 功 复 制 的 副 本 才 能 认 为 是 已 成 功 归 档 LOG_ARCHIVE_ MIN_SUCCEED_DEST 参 数 默 认 的 设 置 是 1, 并 且 是 该 参 数 的 最 小 设 置 以 下 是 该 参 数 值 设 置 为 2 的 示 例 alter system set log_archive_min_succeed_dest=2; 除 了 配 置 LOG_ARCHIVE_DEST 参 数, 可 能 还 需 要 考 虑 配 置 与 数 据 库 归 档 重 做 日 志 ARCH 进 程 和 LOG_ARCHIVE_OEST 一 系 列 参 数 相 关 的 如 下 参 数 LOG_ARCHIVE_STATE_n 参 数 : 为 每 个 归 档 日 志 目 标 定 义 两 种 不 同 状 态 中 的 一 种 状 态 如 果 设 置 为 ENABLE,ARCH 进 程 会 认 为 与 该 状 态 关 联 的 目 标 为 一 个 有 效 的 归 档 日 志 目 标 ; 如 果 设 置 为 DEFER,ARCH 进 程 就 不 会 在 相 关 的 LOG_ARCHIVE_DEST_n 位 置 归 档 日 志 LOG_ARCHIVE_FORMAT 参 数 : 在 命 名 归 档 的 重 做 日 志 时 提 供 一 个 供 Oracle 使 用 的 模 板 Oracle 创 建 归 档 的 重 做 日 志 时, 按 以 下 方 式 重 命 名 这 些 归 档 的 重 做 日 志, 即 每 个 归 档 的 重 做 日 志 都 有 唯 一 的 名 称 可 以 使 用 LOG_ARCHIVE_FORMAT 参 数 来 设 置 所 需 的 默 认 命 名 标 准 该 参 数 对 在 FRA 中 创 建 的 归 档 重 做 日 志 没 有 影 响 LOG_ARCHIVE_START 参 数 : 该 参 数 在 Oracle Database 10g 和 其 后 版 本 中 不 再 使 用 Oracle 现 在 会 自 动 启 动 ARCH 进 程 LOG_ARCHIVE_MAX_PROCESS 参 数 : 该 参 数 定 义 在 Oracle 数 据 库 启 动 时 ARCH 进 程 的 数 量 注 意 : 如 果 您 使 用 的 是 Oracle Database 9i 或 更 早 的 数 据 库 版 本, 在 将 数 据 库 配 置 为 ARCHIVELOG 模 式 时, 必 须 将 LOG_ARCHIVE_START 参 数 设 置 为 TRUE 在 10g 以 后 的 版 本 中, 不 再 使 用 该 参 数 目 前 提 到 的 这 些 参 数 在 Oracle Database 11g Reference Manual 中 有 定 义 ( 它 是 Oracle 文 档 的 一 部 分 ), 该 指 南 介 绍 了 更 多 的 信 息 在 接 下 来 的 示 例 中, 有 一 个 需 要 设 置 为 ARCHIVELOG 模 式 的 数 据 库 我 们 将 创 建 3 个 不 同 的 归 档 日 志 目 标 目 录, 其 中 一 个 被 指 定 为 支 持 Oracle 备 用 数 据 库 的 服 务 器 名 我 们 还 将 实 现 这 样 的 要 求, 即 至 少 有 两 个 目 录 必 须 被 写 入 以 便 完 成 归 档 的 重 做 日 志 的 复 制, 并 且 备 用 数 据 库 必 须 是 其 中 一 个 目 录 下 面 是 与 ARCHIVELOG 模 式 操 作 相 关 的 数 据 库 参 数 文 件 的 多 个 参 数 的 使 用 示 例

64 第 Ⅱ 部 分 设 置 原 则 和 实 践 log_archive_dest_1='location=d:\oracle\oraarc\robt mandatory' log_archive_dest_2='location=z:\oracle\oraarc\robt optional' log_archive_dest_3='service=recover1 mandatory' log_archive_min_succeed_dest=2 log_archive_format="robt_%s_%t.arc" 在 这 个 示 例 中, 第 一 个 归 档 日 志 目 标 位 置 为 d:\oracle\oraarc\robt; 第 二 个 归 档 日 志 目 标 位 置 为 Z: 驱 动 器, 由 于 这 是 一 个 网 络 设 备 ( 它 不 一 定 可 靠 ), 所 以 设 置 其 为 可 选 的 位 置 ; 第 三 个 归 档 日 志 目 标 位 置 为 一 个 名 为 recover1 的 Oracle Net 服 务 器 ( 可 能 是 备 用 数 据 库 ), 在 生 成 归 档 的 重 做 日 志 时, 该 目 标 会 使 得 Oracle 通 过 Oracle Net 发 送 这 些 归 档 的 重 做 日 志 在 上 面 的 示 例 中, 我 们 通 过 使 用 LOG_ARCHIVE_MIN_SUCCEED_DEST 参 数 指 定 归 档 的 重 做 日 志 必 须 成 功 地 复 制 到 至 少 两 个 不 同 的 位 置 上 ;LOG_ARCHIVE_FORMAT 参 数 定 义 了 归 档 的 重 做 日 志 的 格 式 3.1.2 闪 回 恢 复 区 闪 回 恢 复 区 (FRA) 允 许 集 中 存 储 所 有 与 恢 复 相 关 的 文 件 FRA 可 以 本 地 使 用 附 加 的 存 储 Oracle 的 群 集 文 件 系 统 (Oracle Cluster File System,OCFS) 或 Oracle Database 10g 中 新 的 自 动 存 储 管 理 (ASM) 特 性 表 3-1 列 出 了 可 以 包 含 在 FRA 中 的 备 份 文 件 类 型 表 3-1 闪 回 恢 复 区 中 的 文 件 类 型 文 件 类 型 说 明 归 档 的 重 做 日 志 控 制 文 件 控 制 文 件 自 动 备 份 闪 回 日 志 重 做 日 志 RMAN 数 据 文 件 副 本 RMAN 备 份 和 其 他 相 关 文 件 归 档 的 重 做 日 志 将 存 储 在 FRA 中 当 创 建 数 据 库 时, 在 FRA 中 创 建 控 制 文 件 的 一 个 副 本 RMAN 控 制 文 件 自 动 备 份 的 默 认 位 置 是 FRA( 如 果 定 义 了 FRA) 闪 回 日 志 ( 本 章 后 面 将 讨 论 ) 将 存 储 在 FRA 中 ( 如 果 定 义 了 FRA) 每 个 重 做 日 志 组 成 员 的 一 个 副 本 可 以 存 储 在 FRA 中 RMAN 数 据 文 件 副 本 的 默 认 位 置 将 是 FRA( 如 果 定 义 了 FRA) RMAN 常 规 文 件 ( 备 份 集 片 等 ) 的 默 认 位 置 将 是 FRA( 如 果 定 义 了 FRA) FRA 帮 助 管 理 全 部 的 磁 盘 空 间 分 配, 并 且 为 所 有 与 恢 复 相 关 的 文 件 提 供 集 中 的 存 储 区 域 FRA 也 提 供 更 快 速 的 备 份 和 恢 复 操 作 FRA 中 文 件 的 保 留 与 否 由 RMAN 保 留 策 略 决 定 通 过 执 行 RMAN configure retention policy 命 令 设 置 该 策 略 本 章 将 详 细 讨 论 该 命 令 和 RMAN 保 存 如 果 文 件 没 有 关 联 的 保 留 策 略, 或 者 是 永 久 的 文 件, 则 该 文 件 永 远 不 会 被 删 除 如 果 文 件 在 RMAN 保 留 策 略 下 没 有 过 时, 则 不 会 被 删 除 最 后, 如 果 归 档 的 日 志 过 时, 则 可 以 删 除 它 们 FRA 在 由 参 数 DB_RECOVERY_FILE_DEST 定 义 的 特 定 位 置 中 创 建 该 位 置 可 以 是 文 件 系 统 或 ASM 卷 DB_RECOVERY_FILE_DEST_SIZE 参 数 则 用 来 定 义 FRA 的 最 大 尺

第 3 章 RMAN 设 置 和 配 置 65 寸 这 是 Oracle 控 制 的 文 件 空 间 限 制, 而 与 文 件 系 统 自 身 中 的 全 部 可 用 空 间 无 关 Oracle 监 控 FRA 中 的 可 用 空 间, 一 旦 FRA 中 的 可 用 空 间 数 量 减 少 到 不 安 全 的 程 度,Oracle 就 会 在 警 报 日 志 中 生 成 警 告 在 Oracle Database 11g 中, 当 可 收 回 的 空 间 低 于 DB_RECOVERY_ FILE_DEST_SIZE 参 数 定 义 值 的 15% 时, 将 会 生 成 警 报, 当 低 于 3% 时 将 产 生 危 险 性 警 报 这 些 警 报 将 会 出 现 在 OEM 中 的 警 报 日 志 中, 也 可 以 通 过 DBA_OUTSTANDING_ ALERTS 表 获 知 如 果 希 望 知 道 您 的 闪 回 恢 复 区 空 间 使 用 情 况 时, 可 以 通 过 几 个 视 图 获 取 该 类 信 息 下 面 将 详 细 讨 论 这 些 视 图 注 意 : 如 果 闪 回 恢 复 区 是 唯 一 的 归 档 日 志 目 标, 那 么 FRA 中 的 空 间 被 用 完 时 就 会 非 常 麻 烦, 因 为 这 可 能 造 成 数 据 库 最 终 异 常 终 止 如 果 FRA 将 是 唯 一 的 归 档 日 志 目 标, 则 应 该 仔 细 地 监 控 空 间 可 用 性 为 FRA 分 配 多 少 空 间 合 适 是 一 个 难 题 一 般 可 以 通 过 监 视 空 间 使 用 情 况, 按 照 FRA 需 要 对 空 间 大 小 进 行 调 整 在 数 据 库 已 经 构 建 完 成 时, 可 以 检 查 DBA_HIST_LOG 视 图 获 得 归 档 日 志 空 间 使 用 的 情 况 该 视 图 的 数 据 来 源 于 Oracle 的 AWR 基 础 架 构 通 过 该 视 图 可 以 获 知 归 档 重 做 日 志 的 平 均 容 量 以 及 日 志 切 换 时 间 下 面 给 出 查 询 DBA_HIST_LOG 视 图 的 示 例 : SQL> alter session set nls_date_format='mm/dd/yyyy hh24:mi:ss'; Session altered. SQL> select sequence#, first_time Log_started 2,lead(first_time, 1,NULL) over (order by first_time) Log_ended 3 from (select distinct sequence#, first_time 4 from dba_hist_log 5 where archived='yes' 6 and sequence#!=0 7 order by first_time) 8 order by sequence#; SEQUENCE# LOG_STARTED LOG_ENDED ---------- ------------------- ------------------- 82 05/18/2009 22:02:56 05/19/2009 12:52:06 83 05/19/2009 12:52:06 05/19/2009 22:01:24 84 05/19/2009 22:01:24 05/20/2009 15:25:39 85 05/20/2009 15:25:39 05/21/2009 10:00:58 86 05/21/2009 10:00:58 05/21/2009 17:02:00 87 05/21/2009 17:02:00 05/21/2009 22:01:28 88 05/21/2009 22:01:28 7 rows selected. 许 多 大 型 系 统 往 往 运 行 多 个 Oracle 数 据 库 每 个 数 据 库 都 会 使 用 归 档 日 志 存 储 空 间 通 常 所 有 数 据 库 产 生 的 归 档 重 做 日 志 将 会 存 储 在 同 一 个 文 件 系 统 中 有 时 某 个 数 据 库 可 能 会 将 存 储 设 备 上 的 所 有 空 间 都 消 耗 殆 尽 此 时 所 有 使 用 该 存 储 设 备 的 数 据 库 都 会 受 到

66 第 Ⅱ 部 分 设 置 原 则 和 实 践 影 响, 因 为 它 们 已 没 有 用 于 建 立 其 归 档 重 做 日 志 的 空 间 使 用 FRA 的 好 处 在 于, 它 能 够 为 每 个 数 据 库 分 配 特 定 的 可 用 空 间 配 额 由 此, 若 使 用 FRA, 将 会 消 除 由 于 单 个 数 据 库 消 耗 所 有 归 档 日 志 空 间 而 影 响 其 他 所 有 数 据 库 的 风 险 如 果 发 现 FRA 中 无 可 用 的 空 间, 则 有 一 些 不 同 的 方 法 可 应 对 该 问 题 : (1) 如 果 问 题 是 因 DB_RECOVERY_FILE_DEST_SIZE 参 数 导 致 的 空 间 分 配 不 足, 并 且 存 在 足 够 的 物 理 磁 盘 空 间 来 增 加 分 配 给 FRA 的 空 间, 则 增 加 该 参 数 值 的 大 小 这 将 立 刻 为 FRA 增 加 额 外 的 空 间 当 然, 不 能 将 该 参 数 的 值 设 置 为 大 于 文 件 系 统 中 的 可 用 物 理 空 间 数 量 (2) 如 果 需 要 更 多 的 物 理 空 间, 则 分 配 额 外 的 物 理 空 间 给 文 件 系 统, 然 后 增 加 DB_RECOVERY_FILE_DEST_SIZE 参 数 值 的 大 小 (3) 如 果 没 有 额 外 的 空 间, 可 以 将 FRA 移 动 到 具 有 较 多 可 用 空 间 的 另 一 个 文 件 系 统 (4) 也 可 以 在 FRA 中 留 出 空 间, 方 法 是 使 用 RMAN backup recovery area 命 令 将 FRA 的 内 容 移 动 到 另 一 个 位 置 将 在 讨 论 执 行 RMAN 备 份 时 介 绍 backup recovery area 命 令 和 其 限 制 (5) 最 后 一 个 方 法 是, 物 理 删 除 FRA 中 较 早 的 备 份 集 片 和 / 或 FRA 的 归 档 的 重 做 日 志, 然 后 使 用 RMAN crosscheck 命 令 来 让 数 据 库 认 可 已 经 删 除 了 这 些 文 件 设 置 闪 回 恢 复 区 注 意 : 如 果 对 是 否 删 除 FRA 中 的 物 理 文 件 犹 豫 不 决, 则 应 该 相 信 您 的 直 觉 本 质 上, 这 意 味 着 您 的 保 留 策 略 不 正 确 或 没 有 分 配 足 够 的 空 间 来 支 持 为 数 据 库 建 立 的 保 留 策 略 同 样, 删 除 文 件 会 潜 在 地 损 害 数 据 库 的 可 恢 复 性, 因 此 在 删 除 文 件 时 需 要 特 别 谨 慎 为 了 设 置 FRA, 需 要 配 置 如 表 3-2 所 示 的 参 数 : 表 3-2 设 置 FRA 所 需 配 置 的 参 数 参 数 示 例 目 标 DB_RECOVERY_FI LE_DEST_SIZE DB_RECOVERY_FI LE_DEST Alter system set db_recovery_ file_dest_size=20g scope=both; Alter system set db_recovery_ file_dest='/u01/oracle/flash_ recovery' scope=both; 设 置 FRA 的 已 分 配 大 小 ( 以 字 节 为 单 位 ), 并 且 必 须 定 义 具 体 的 大 小 以 启 用 FRA 这 就 允 许 对 分 配 给 FRA 的 磁 盘 空 间 大 小 进 行 控 制 不 应 该 将 这 个 值 设 置 为 大 于 全 部 可 用 磁 盘 空 间 数 量 的 大 小 指 定 FRA 的 位 置 这 可 能 是 文 件 系 统 ASM 磁 盘 位 置 或 OMF 位 置 注 意, 必 须 在 指 定 DB_RECOVERY_FILE_DEST 参 数 之 前 指 定 DB_RECOVERY_

第 3 章 RMAN 设 置 和 配 置 67 FILE_DEST_SIZE 参 数 如 果 没 有 这 样 做, 将 会 产 生 ORA-32001 错 误 消 息 类 似 的 情 况 是, 必 须 在 复 位 DB_RECOVERY_FILE_DEST_SIZE 参 数 之 前 禁 用 DB_RECOVERY_FILE_ DEST 参 数 保 留 DB_RECOVERY_FILE_DEST 参 数 为 空 将 可 以 禁 用 FRA 下 面 是 通 过 复 位 DB_RECOVERY_FILE_DEST 参 数 禁 用 FRA 的 示 例 alter system set db_recovery_file_dest=' ' scope=both; Oracle 允 许 将 归 档 重 做 日 志 归 档 到 FRA 及 通 过 使 用 LOG_ARCHIVE_DEST_n 参 数 定 义 的 一 个 或 多 个 附 加 位 置, 允 许 同 时 采 用 两 种 方 法 当 您 配 置 了 备 份 数 据 库 并 且 希 望 利 用 FRA 的 优 点 时, 您 可 能 希 望 采 取 该 种 方 法 为 了 配 置 FRA 和 归 档 日 志 目 标 目 录, 需 要 设 置 标 准 的 FRA 参 数 DB_RECOVERY_FILE_ DEST, 以 定 义 FRA 的 位 置 还 需 要 定 义 各 种 所 需 的 LOG_ARCHIVE_DEST_n 参 数 默 认 情 况 下, 当 定 义 了 LOG_ARCHIVE_DEST_n 参 数 后, 归 档 时 将 会 使 用 该 位 置 而 不 是 使 用 FRA 在 此 情 况 下, 若 在 设 置 LOG_ARCHIVE_DEST_n 参 数 时 要 使 用 FRA, 就 需 要 为 FRA 定 义 一 个 额 外 的 LOG_ARCHIVE_DEST_n 参 数 通 常 使 用 LOG_ARCHIVE_DEST_10, 使 用 Oracle 支 持 的 参 数 USE_DB_RECOVERY_FILE_DEST 以 此 定 义 该 位 置 是 FRA 如 下 例 所 示,Oracle 被 配 置 为 使 用 FRA 和 普 通 的 归 档 日 志 目 标 目 录 : alter system set log_archive_dest_10='location=use_db_recovery_file_ DEST'; alter system set log_archive_dest_1='location=c:\oracle\oraarc\beta1 mandatory'; 在 该 示 例 中,ARCH 进 程 将 在 LOG_ARCHIVE_DEST_1 参 数 与 LOG_ARCHIVE_ DEST_10 参 数 中 建 立 归 档 日 志, 后 者 空 间 属 于 FRA 闪 回 恢 复 区 视 图 可 以 使 用 一 些 视 图 来 帮 助 管 理 FRA 这 些 视 图 包 括 : DBA_OUTSTANDING_ALERTS V$RECOVERY_FILE_DEST V$FLASH_RECOVERY_AREA_USAGE 同 样, 可 以 使 用 其 他 一 些 视 图 中 的 列 来 帮 助 管 理 FRA 接 下 来 详 细 介 绍 这 些 视 图 和 列 DBA_OUTSTANDING_ALERTS 视 图 从 FRA 中 添 加 或 删 除 文 件 时, 这 些 事 件 被 记 录 到 数 据 库 警 报 日 志 中 可 以 检 查 新 的 DBA 视 图 DBA_OUTSTANDING_ALERTS 来 了 解 关 于 FRA 一 些 显 著 问 题 的 信 息 注 意, 空 间 相 关 问 题 产 生 的 时 间 和 警 告 出 现 在 DBA_OUTSTANDING_ALERTS 视 图 中 的 时 间 存 在 一 定 程 度 的 延 迟 下 面 是 FRA 使 用 完 空 间 并 且 提 交 警 报 给 DBA_OUTSTANDING_ALERTS 视 图 的 示 例 此 时, 您 可 能 需 要 快 速 处 理 这 种 情 况, 否 则 数 据 库 就 可 能 完 全 停 止 在 这 种 情 况 下, 可 以 使 用 alter system 命 令 来 增 加 分 配 给 FRA 的 空 间 数 量

68 第 Ⅱ 部 分 设 置 原 则 和 实 践 SQL> select reason from dba_outstanding_alerts; REASON -------------------------------------------------------------- db_recovery_file_dest_size of 524288000 bytes is 100.00% used and has 0 remaining bytes available. SQL> alter system set db_recovery_file_dest_size=800m; V$RECOVERY_FILE_DEST 视 图 V$RECOVERY_FILE_DEST 视 图 提 供 在 数 据 库 中 定 义 的 FRA 的 概 述 该 视 图 提 供 配 置 的 FRA 的 大 小 所 使 用 的 空 间 数 量 可 以 回 收 多 少 空 间, 以 及 FRA 中 的 文 件 数 量 在 下 面 的 示 例 中, 可 以 看 到 已 经 记 录 FRA 的 空 间 增 加 到 800MB(SPACE_LIMIT) 然 而, 仍 然 使 用 了 过 多 的 空 间 (SPACE_USED) 并 且 FRA 已 满 SQL> select * from v$recovery_file_dest; NAME ---------------------------------------------------------------------- SPACE_LIMI TSPACE_USED SPACE_RECLAIMABLE NUMBER_OF_FILES -------------- -------------------- ------------------ ------------- c:\oracle\product\10.2.0\flash_recovery_area 838,860,800 1,057,116,672 338,081,280 11 关 于 Oracle 的 一 个 较 好 的 方 面 是, 它 会 尽 可 能 好 地 管 理 FRA 空 间, 如 果 有 可 回 收 的 空 间, 它 就 会 根 据 需 要 释 放 这 些 空 间 注 意, 在 前 面 的 查 询 中,Oracle 指 示 已 经 用 完 FRA 空 间 您 是 否 注 意 到 了 SPACE_RECLAIMABLE 列? 该 列 指 示 有 可 回 收 的 空 间 该 空 间 由 归 档 的 重 做 日 志 或 备 份 集 片 占 用, 根 据 已 经 选 择 的 保 存 标 准 ( 本 章 后 面 将 讨 论 保 存 标 准 以 及 如 何 设 置 该 标 准 ), 已 经 不 再 需 要 这 些 空 间 当 Oracle 需 要 FRA 中 的 空 间 时 ( 例 如 强 制 实 施 日 志 切 换 ), 它 将 删 除 可 回 收 的 任 何 文 件 并 释 放 空 间 在 下 面 的 查 询 中, 可 以 看 到 已 经 执 行 了 这 项 操 作 在 运 行 前 面 的 查 询 ( 该 查 询 表 明 FRA 空 间 被 用 完 ) 后, 强 制 实 施 一 个 日 志 切 换 这 会 使 Oracle 回 收 FRA 中 的 空 间 以 重 新 使 用, 然 后 就 能 够 写 出 归 档 的 重 做 日 志 可 以 查 询 V$RECOVERY_FILE_DEST 视 图 并 看 到 已 经 实 际 执 行 了 这 些 操 作 : SQL> alter system switch logfile; System altered. SQL> select * from v$recovery_file_dest; NAME ---------------------------------------------------------------------- SPACE_LIMIT SPACE_USED SPACE_RECLAIMABLE NUMBER_OF_FILES -------------- --------------------- ------------------ -------------- c:\oracle\product\10.2.0\flash_recovery_area 838,860,800 719,412,736 64,000 7 V$FLASH_RECOVERY_AREA_USAGE 视 图 V$FLASH_RECOVERY_AREA_USAGE 视 图 提 供 了 关 于 占 用 FRA 空 间 的 文 件 类 型

第 3 章 RMAN 设 置 和 配 置 69 的 详 细 信 息 该 视 图 对 文 件 类 型 分 组, 然 后 提 供 每 个 文 件 类 型 所 使 用 的 空 间 百 分 比 来 自 于 该 组 的 总 FRA 可 回 收 空 间 百 分 比, 以 及 来 自 于 该 组 的 FRA 中 的 文 件 数 量 下 面 是 V$FLASH_RECOVERY_AREA_USAGE 视 图 的 查 询 : SQL> SELECT * FROM V$FLASH_RECOVERY_AREA_USAGE; FILE_TYPE PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES ------------ ------------------ ------------------------- ------------- CONTROLFILE 0 0 0 ONLINELOG 0 0 0 ARCHIVELOG 17.14 17.09 7 BACKUPPIECE 108.88 23.22 4 IMAGECOPY 0 0 0 FLASHBACKLOG 0 0 0 在 这 个 示 例 中, 可 以 注 意 到 : 超 出 了 已 定 义 的 空 间 分 配 ( 所 有 行 的 PERCENT_SPACE_USED 超 过 100%) 造 成 这 种 情 况 的 原 因 可 能 是 FRA 容 量 在 近 期 被 修 改 过,Oracle 还 没 有 将 空 间 重 新 回 收 ( 如 果 该 工 作 执 行, 则 总 的 使 用 空 间 将 低 于 100%) 备 份 集 片 占 用 了 大 多 数 的 空 间, 并 且 该 空 间 的 23.22% 是 可 回 收 的 归 档 的 重 做 日 志 只 使 用 分 配 给 FRA 的 空 间 的 17%, 即 使 删 除 所 有 的 归 档 重 做 日 志, 也 不 会 释 放 出 足 够 的 空 间 来 使 FRA 小 于 分 配 给 它 的 空 间 数 量 包 含 FRA 列 的 其 他 视 图 可 以 在 许 多 Oracle Database 的 V$ 视 图 中 找 到 列 IS_RECOVERY_DEST_FILE, 例 如 V$CONTROLFILE V$LOGFILE V$ARCHIVED_LOG V$DATAFILE_COPY V$DATAFILE 和 V$BACKUP_PIECE 该 列 是 一 个 布 尔 值, 用 来 指 示 文 件 是 否 位 于 FRA 中 另 一 个 列 BYTES 可 以 在 V$BACKUP_PIECE 和 RC_BACKUP_PIECE(RMAN 恢 复 目 录 视 图 ) 视 图 中 找 到 该 列 以 字 节 为 单 位 指 示 备 份 集 片 的 大 小 注 意 : 手 动 删 除 FRA 中 固 定 的 文 件 会 产 生 无 法 预 料 的 结 果 Oracle 不 会 立 刻 检 测 出 这 些 文 件 是 否 已 删 除, 因 此 不 会 回 收 相 应 的 空 间 如 果 最 终 手 动 删 除 文 件 ( 或 者 释 放 磁 盘 ), 则 使 用 RMAN crosscheck 命 令 结 合 delete 命 令 来 使 Oracle 更 新 FRA 上 的 当 前 控 制 文 件 信 息 Oracle 专 家 建 议 尽 可 能 不 要 手 动 删 除 由 Oracle 管 理 的 文 件 其 他 闪 回 恢 复 区 特 性 在 Oracle 数 据 库 中, 如 果 没 有 设 置 OMF 相 关 的 DB_CREATE_ONLINE_LOG_ DEST_n 参 数, 则 alter database add logfile 和 alter database add standby logfile 命 令 创 建 FRA 中 的 联 机 重 做 日 志 成 员 alter database drop logfile 和 alter database rename file 命 令 也 支 持 FRA 中 的 文 件 使 用 OMF 相 关 的 特 性 带 来 的 好 处 是 Oracle 将 会 为 您 管 理 物 理 文 件, 当

70 第 Ⅱ 部 分 设 置 原 则 和 实 践 删 除 联 机 重 做 日 志 组, 而 该 组 包 含 的 物 理 文 件 是 由 Oracle 基 于 DB_CREATE_ ONLINE_ LOG_DEST_n 参 数 创 建 时,Oracle 将 为 您 删 除 这 些 物 理 文 件 在 数 据 库 创 建 期 间,Oracle 可 以 使 用 FRA 存 储 数 据 库 控 制 文 件 和 联 机 重 做 日 志 如 果 定 义 了 OMF 相 关 的 参 数 DB_CREATE_ONLINE_LOG_DEST_n, 则 将 在 这 些 位 置 创 建 控 制 文 件 和 重 做 日 志, 但 不 会 在 FRA 中 创 建, 即 使 定 义 了 FRA 如 果 没 有 定 义 DB_CREATE_ONLINE_LOG_DEST_n 参 数, 但 定 义 了 CREATE_FILE_DEST 参 数, 则 在 由 CREATE_FILE_DEST 参 数 定 义 的 位 置 中 创 建 控 制 文 件 和 联 机 重 做 日 志 如 果 也 定 义 了 DB_RECOVERY_FILE_DEST 参 数, 则 也 在 相 应 位 置 创 建 控 制 文 件 和 联 机 重 做 日 志 的 副 本 其 结 果 是 多 路 复 用 的 联 机 重 做 日 志 最 后, 如 果 只 定 义 了 DB_RECOVERY_FILE_ DEST, 则 在 该 位 置 创 建 控 制 文 件 如 果 没 有 定 义 任 何 这 些 参 数, 则 在 OS 特 定 的 默 认 位 置 创 建 控 制 文 件 和 联 机 重 做 日 志 FRA 还 有 另 外 一 种 使 用 特 性, 该 特 性 与 Flashback Database 有 关 在 第 15 章 将 对 Flashback Database 进 行 详 细 地 讨 论 FRA 和 ASM RMAN 支 持 使 用 自 动 存 储 管 理 (ASM) 存 储 RMAN 备 份 ASM 是 磁 盘 管 理 工 具, 使 用 该 工 具,DBA 就 不 再 需 要 管 理 与 给 定 数 据 库 关 联 的 物 理 文 件 ASM 在 一 定 程 度 上 类 似 于 可 用 于 UNIX 系 统 中 的 逻 辑 卷 组 ASM 使 用 ASM 磁 盘 组, 该 磁 盘 组 是 存 储 的 逻 辑 单 元 物 理 磁 盘 被 分 配 给 ASM 磁 盘 组, 构 成 ASM 磁 盘 组 的 整 体 存 储 功 能 ASM 磁 盘 组 可 以 存 在 于 前 面 分 配 的 文 件 系 统 上, 或 者 存 储 在 原 始 磁 盘 上 结 合 OCFS, 群 集 服 务 器 可 以 共 享 RAC 配 置 中 的 ASM 磁 盘 配 置 ASM 并 定 义 各 种 磁 盘 组 后, 就 可 以 分 配 数 据 文 件 控 制 文 件 联 机 重 做 日 志 以 及 各 种 RMAN 备 份 文 件 到 ASM 磁 盘 组 ASM 提 供 了 大 量 特 性, 包 括 负 载 平 衡 数 据 冗 余, 并 且 很 容 易 添 加 和 删 除 ASM 磁 盘 组 中 的 新 磁 盘 讨 论 ASM 的 常 规 配 置 超 出 了 本 书 的 范 围 然 而, 需 要 注 意 的 是,RMAN 支 持 ASM 磁 盘 组, 因 此 可 以 在 必 要 时 使 用 它 们 在 本 书 中 并 不 建 议 使 用 ASM 大 多 数 非 RAC 站 点 使 用 ASM 实 现 并 没 有 多 少 价 值 然 而, 如 果 是 RAC 站 点, 就 会 希 望 考 虑 使 用 ASM 结 合 OCFS 作 为 其 他 群 集 选 项 的 替 代 方 法, 这 取 决 于 当 前 的 平 台 如 果 正 在 使 用 ASM, 则 可 以 配 置 FRA, 从 而 在 ASM 文 件 系 统 中 创 建 FRA, 如 同 下 面 的 示 例 所 示 : alter system set db_recovery_file_dest='+asmv01'; 在 该 示 例 中,Oracle 将 ASM 磁 盘 卷 ASMV01 用 作 FRA 然 后 就 可 以 使 用 RMAN 将 备 份 存 放 到 FRA 上 我 们 将 在 第 11 章 中 讨 论 备 份 3.1.3 是 否 应 该 使 用 FRA 我 们 认 为 使 用 在 FRA 的 想 法 是 不 错 的 我 们 也 希 望 将 备 份 复 制 到 一 些 其 他 的 介 质 中, 例 如 磁 带, 从 而 可 以 异 地 使 用 它 们 以 进 行 灾 难 恢 复 ( 当 发 生 真 正 的 灾 难 时, 灾 难 恢 复 计 划 就 会 变 得 非 常 重 要 ) 我 们 希 望 将 FRA 用 于 归 档 的 重 做 日 志, 但 也 希 望 将 归 档 的 重 做 日 志 复 制 到 多 个 位 置

第 3 章 RMAN 设 置 和 配 置 71 ( 更 为 具 体 地 说, 是 复 制 到 多 个 磁 盘 ) 需 要 牢 记 的 是, 归 档 的 重 做 日 志 对 于 数 据 库 恢 复 至 关 重 要, 如 果 丢 失 一 个 归 档 的 重 做 日 志, 则 在 该 重 做 日 志 之 后 的 所 有 其 他 重 做 日 志 就 没 有 任 何 价 值 因 此, 我 们 倾 向 于 使 用 FRA 和 至 少 一 个 位 于 不 同 磁 盘 位 置 上 的 其 他 的 归 档 日 志 目 标 来 配 置 数 据 库 这 意 味 着 使 用 LOG_ARCHIVE_DEST_n 参 数 来 配 置 数 据 库, 而 使 用 FRA 和 另 一 个 单 独 的 文 件 系 统 来 存 储 归 档 重 做 日 志 促 使 我 们 倾 向 于 使 用 FRA 的 另 外 一 个 重 要 的 原 因 是 其 存 储 空 间 配 额 机 制 当 前 相 当 多 的 数 据 库 服 务 器 上 运 行 多 个 数 据 库 前 面 讨 论 过 关 于 一 个 数 据 库 将 所 有 归 档 重 做 日 志 的 物 理 磁 盘 空 间 消 耗 殆 尽 的 情 况 发 生 这 种 情 况 不 仅 对 填 满 归 档 重 做 日 志 目 标 目 录 的 数 据 库 本 身 有 影 响, 而 且 会 影 响 系 统 上 的 其 他 所 有 数 据 库 采 用 配 额 系 统, 能 够 限 制 某 数 据 库 影 响 其 他 数 据 库 有 关 我 们 希 望 涉 及 的 内 容 有 很 多, 例 如 备 用 数 据 库 等 方 面, 但 这 并 不 是 本 书 所 要 介 绍 的 内 容 只 要 记 住, 底 线 是 尽 到 保 护 数 据 的 责 任, 因 为 没 有 什 么 比 星 期 一 早 上 开 始 工 作 但 发 现 系 统 在 周 末 时 已 经 崩 溃, 而 整 个 数 据 库 以 及 所 有 的 备 份 都 已 经 丢 失 更 糟 的 了 3.1.4 ARCHIVELOG 模 式 之 间 的 切 换 一 旦 将 数 据 库 配 置 为 在 ARCHIVELOG 模 式 下 运 行, 则 可 以 非 常 容 易 地 实 现 数 据 库 在 NOARCHIVELOG 模 式 和 ARCHIVELOG 模 式 之 间 的 切 换 为 了 将 数 据 库 置 于 ARCHIVELOG 模 式, 必 须 首 先 使 用 如 下 的 一 种 命 令 以 一 致 的 方 式 关 闭 数 据 库 :shutdown 命 令 shutdown immediate 命 令 或 shutdown transactional 命 令 一 旦 正 常 地 关 闭 了 数 据 库, 就 可 以 执 行 startup mount 命 令 来 加 载 这 个 数 据 库 一 旦 加 载 了 数 据 库, 就 可 以 执 行 命 令 alter database archivelog 来 将 数 据 库 置 于 ARCHIVELOG 模 式 然 后 可 以 使 用 alter database open 命 令 打 开 该 数 据 库 如 果 希 望 数 据 库 跳 出 ARCHIVELOG 模 式, 则 可 以 采 用 相 反 的 过 程 首 先 关 闭 数 据 库 一 旦 关 闭 了 数 据 库, 则 通 过 执 行 startup mount 命 令 加 载 数 据 库 一 旦 加 载 了 数 据 库, 则 执 行 alter database noarchivelog 命 令 将 数 据 库 置 于 NOARCHIVELOG 模 式 然 后 可 以 使 用 alter database open 命 令 打 开 该 数 据 库 3.1.5 使 用 Oracle 数 据 库 配 置 助 手 创 建 数 据 库 如 果 使 用 Oracle 数 据 库 配 置 助 手 (Oracle Database Configuration Assistant,ODBCA) 创 建 数 据 库, 则 很 可 能 Oracle 已 经 配 置 了 大 部 分 的 RMAN ODBCA 将 在 ARCHIVELOG 模 式 中 配 置 数 据 库, 配 置 FRA, 以 及 安 排 RMAN 备 份 的 调 度 对 于 较 小 的 安 装 软 件, 这 可 能 就 是 需 要 完 成 的 所 有 工 作, 并 且 不 需 要 担 心 任 何 其 他 的 基 本 RMAN 配 置 问 题 尽 管 如 此, 了 解 RMAN 提 供 的 所 有 选 项 仍 然 是 必 要 的 例 如, 当 使 用 ODBCA 创 建 数 据 库 时, 不 会 启 用 备 份 的 加 密, 并 且 您 可 能 需 要 启 用 该 特 性 RMAN 实 习 : 将 数 据 库 置 入 ARCHIVELOG 模 式 实 习 注 意 事 项 为 了 完 成 这 个 RMAN 实 习, 您 需 要 安 装 Oracle 软 件, 并 且 在 NOARCHIVELOG 模

72 第 Ⅱ 部 分 设 置 原 则 和 实 践 式 下 启 动 和 运 行 一 个 数 据 库 在 开 始 这 个 实 习 前, 确 定 闪 回 恢 复 区 的 位 置 还 要 确 定 Oracle 第 二 个 归 档 日 志 目 标 目 录 的 位 置, 该 练 习 将 归 档 到 两 个 不 同 的 位 置 步 骤 1 为 归 档 的 重 做 日 志 配 置 FRA 和 单 独 的 归 档 日 志 目 标 首 先, 设 置 FRA 参 数 DB_RECOVERY_FILE_DEST_SIZE 和 DB_RECOVERY_FILE_DEST: SQL> alter system set db_recovery_file_dest_size=2g; System altered. SQL> alter system set db_recovery_file_dest='c:\oracle\product\10.2.0\flash_recovery_area'; System altered. 步 骤 2 现 在, 定 义 两 个 归 档 日 志 目 标 目 录, 其 中 一 个 是 FRA 设 置 数 据 库 参 数 文 件 并 设 置 LOG_ARCHIVE_DEST_1 参 数, 让 它 指 向 预 先 定 义 的 文 件 系 统, 该 文 件 系 统 将 是 第 一 个 归 档 日 志 目 录 由 于 要 配 置 LOG_ARCHIVE_DEST_1 参 数 目 使 用 1=RA, 因 此 需 要 使 用 USE_DB_RECOVERY_FILE_DEST 参 数 来 设 置 LOG_ARCHIVE_DEST_10 参 数 以 指 向 FRA 使 用 show parameter 命 令 来 验 证 该 设 置 是 否 正 确 : SQL> alter system set log_archive_dest_1='location=d:\archive\rob10r2'; System altered. SQL> alter system set log_archive_dest_10='location=use_db_recovery_file_dest'; SQL> show parameter log_archive_dest NAME TYPE VALUE ---------------------- ----------- -------- log_archive_dest_1 string location=d:\archive\rob10r2 log_archive_dest_10 string LOCATION=USE_DB_RECOVERY_FILE_DEST 步 骤 3 关 闭 数 据 库 : SQL> shutdown immediate Database closed. Database dismounted. ORACLE instance shut down. 步 骤 4 加 载 数 据 库 : SQL> startup mount ORACLE instance started. Total System Global Area Fixed Size Variable Size Database Buffers Redo Buffers Database mounted. 84700976 bytes 282416 bytes 71303168 bytes 12582912 bytes 532480 bytes 步 骤 5 将 数 据 库 置 入 ARCHIVELOG 模 式 : SQL> alter database archivelog ;

第 3 章 RMAN 设 置 和 配 置 73 Database altered. 步 骤 6 打 开 数 据 库 : SQL> alter database open; Database altered. 虽 然 不 是 该 实 习 的 一 部 分, 但 这 里 给 出 的 将 这 个 数 据 库 从 ARCHIVELOG 模 式 切 换 到 NOARCHIVELOG 模 式 的 过 程, 即 该 实 习 中 所 描 述 过 程 的 一 个 简 单 的 逆 过 程 : 关 闭 数 据 库 ; 执 行 startup mount 命 令 来 重 新 启 动 这 个 数 据 库 实 例 ; 执 行 命 令 alter database noarchivelog 将 该 数 据 库 置 入 NOARCHIVELOG 模 式 需 要 注 意, 从 ARCHIVELOG 模 式 切 换 到 NOARCHIVELOG 模 式 时 不 要 求 以 一 致 的 方 式 关 闭 数 据 库 下 面 是 一 个 将 数 据 库 切 换 回 NOARCHIVELOG 模 式 的 示 例 : SQL> shutdown ORACLE instance shut down. SQL> startup mount ORACLE instance started. Total System Global Area 84700976 bytes Fixed Size 282416 bytes Variable Size 71303168 bytes Database Buffers 12582912 bytes Redo Buffers 532480 bytes Database mounted. SQL> alter database noarchivelog; Database altered. SQL> alter database open; Database altered. 只 要 完 成 了 上 述 的 任 一 种 切 换 任 务, 我 们 都 应 当 立 即 备 份 这 个 数 据 库 3.2 Oracle Database 11g 故 障 诊 断 基 础 架 构 故 障 诊 断 基 础 架 构 (Fault Diagnosability Infrastructure) 是 Oracle Database 11g 重 要 的 新 特 性 之 一 贯 穿 本 书 各 个 章 节, 将 涵 盖 与 新 的 故 障 诊 断 有 关 的 各 种 特 性 该 基 础 架 构 用 于 防 止 检 测 诊 断 解 决 诸 如 类 似 数 据 库 bug 以 及 各 种 形 式 的 崩 溃 等 问 题 新 基 础 架 构 对 以 前 的 系 统 作 了 一 些 改 变, 例 如 建 立 警 报 日 志 的 位 置, 并 为 Oracle 数 据 库 增 加 了 许 多 新 的 功 能 本 书 将 详 细 讨 论 故 障 诊 断 基 础 架 构, 并 讨 论 为 数 据 库 各 类 问 题 提 供 自 动 响 应 的 支 持 工 作 台 第 13 章 讨 论 数 据 库 健 康 检 查 器 (health checker), 是 与 Oracle Automatic Diagnostic Repository(ADR) 有 关 联 的 一 个 新 组 件 在 第 12 章 和 第 13 章 中, 还 将 讨 论 数 据 库 恢 复 顾 问 的 使 用 问 题, 在 数 据 库 恢 复 期 间, 该 问 题 与 ADR 密 切 相 关 出 于 为 Oracle 数 据 库 设 置 故 障 诊 断 基 础 架 构 的 目 的, 本 章 将 关 注 新 的 参 数 DIAGNOSTIC_ DEST 的 设 置 问 题 新 的 参 数 DIAGNOSTIC_DEST 定 义 了 ADR 根 目 录, 并 且 不 鼓 励 使 用 参 数 USER_DUMP_DEST, 参 数 CORE_DUMP_DEST 和 参 数 BACKGROUND_ DUMP_

74 第 Ⅱ 部 分 设 置 原 则 和 实 践 DEST 等 参 数 结 果 是, 如 果 使 用 DBCA 建 立 新 的 Oracle Database 11g 数 据 库, 将 无 法 找 到 以 前 存 在 的 警 报 日 志 和 用 户 跟 踪 文 件 默 认 情 况 下,DIAGNOSTIC_DEST 参 数 被 设 置 为 $ORACLE_BASE 如 果 $ORACLE_ BASE 未 被 设 置, 则 设 置 为 $ORACLE_HOME 的 值 ADR 目 录 结 构 的 根 目 录 结 构 以 名 为 diag 的 目 录 开 始, 其 下 是 表 示 产 品 类 型 的 子 目 录 例 如, 对 于 数 据 库, 其 产 品 类 型 称 为 rdbms 在 rdbms 下 是 每 个 数 据 库 的 目 录 数 据 库 目 录 下 是 各 个 独 立 的 实 例 例 如, 如 果 $ORACLE_BASE 的 目 录 为 /u01/oracle, 数 据 库 名 为 mydb, 数 据 库 实 例 名 为 mydb1, 则 该 数 据 库 的 ADR 目 录 结 构 为 /u01/oracle/diag/rdbms/mydb/mydb1 该 目 录 结 构 称 为 ADR 主 目 录, 不 同 的 实 例 都 有 其 自 己 的 ADR 主 目 录 若 使 用 RAC, 则 ADR 可 以 使 用 共 享 存 储 方 式, 也 可 以 使 用 各 个 节 点 独 立 存 储 的 方 式 如 果 处 于 RAC 环 境 中, 建 议 使 用 共 享 存 储 方 式, 采 用 该 方 式 可 以 将 各 个 节 点 的 诊 断 数 据 聚 集 到 共 享 存 储 中 一 个 共 享 的 ADR 能 够 为 Data Recovery Advisor 提 供 更 加 强 大 的 恢 复 选 项 在 该 目 录 结 构 中 包 含 另 外 一 些 目 录, 最 常 用 的 目 录 包 括 : Alert 目 录 该 目 录 为 XML 格 式 的 警 报 日 志 位 置 cdump 目 录 该 目 录 数 据 库 核 心 转 储 位 置 Trace 目 录 该 目 录 包 括 系 统 建 立 的 跟 踪 文 件, 以 及 警 报 日 志 的 文 本 副 本 Incident 目 录 该 目 录 包 含 多 个 子 目 录, 每 个 子 目 录 包 含 一 个 事 件 图 3-1 所 示 为 ADR 目 录 的 基 本 架 构 图 数 据 库 名 称 主 目 录 图 3-1 ADR 目 录 基 本 架 构 图 ( 其 他 目 录 )

第 3 章 RMAN 设 置 和 配 置 75 各 种 ADR 位 置 的 信 息, 以 及 ADR 有 关 联 的 其 他 信 息 ( 如 活 动 的 事 件 ) 都 可 以 通 过 新 的 视 图 V$DIAG_INFO 获 得 以 下 是 通 过 V$DIAG_INFO 视 图 查 询 的 示 例 SQL> select * from v$diag_info; INST_ID NAME VALUE ---------- --------------------- ---------------------------------- 1 Diag Enabled TRUE 1 ADR Base C:\ORACLE\PRODUCT 1 ADR Home C:\ORACLE\PRODUCT\diag\rdbms\rob11gr4\ rob11gr4 1 Diag Trace C:\ORACLE\PRODUCT\diag\rdbms\rob11gr4\ rob11gr4\trace 1 Diag Alert C:\ORACLE\PRODUCT\diag\rdbms\rob11gr4\ rob11gr4\alert 1 Diag Incident C:\ORACLE\PRODUCT\diag\rdbms\rob11gr4\ rob11gr4\incident 1 Diag Cdump C:\ORACLE\PRODUCT\diag\rdbms\rob11gr4\ rob11gr4\cdump 1 Health Monitor C:\ORACLE\PRODUCT\diag\rdbms\rob11gr4\ rob11gr4\hm 1 Default Trace File C:\ORACLE\PRODUCT\diag\rdbms\rob11gr4\ rob11gr4\trace\rob11gr4_ora_7832.trc 1 Active Problem Count 1 1 Active Incident Count 1 11 rows selected. 3.3 RMAN 命 令 行 如 果 要 执 行 联 机 备 份 操 作, 数 据 库 应 当 处 于 ARCHIVELOG 模 式 下, 这 时 要 准 备 配 置 RMAN 和 数 据 库, 以 便 于 备 份 操 作 不 过, 最 好 先 了 解 使 用 RMAN 可 执 行 文 件 的 方 法 下 面 将 暂 时 放 下 有 关 设 置 的 讨 论, 简 单 地 介 绍 RMAN 命 令 行 接 口 (CLI) 及 其 使 用 方 法 进 入 RMAN 有 两 种 不 同 的 方 法 : 一 种 是 通 过 命 令 行, 另 一 种 是 使 用 OEM 第 11 章 将 详 细 介 绍 OEM 接 口 的 有 关 知 识 本 书 中 的 大 多 数 示 例 是 使 用 命 令 行 接 口 完 成 的, 如 果 能 够 通 过 命 令 行 进 入 RMAN, 其 他 方 法 都 将 是 轻 而 易 举 的 在 下 一 节 中, 将 介 绍 如 何 使 用 RMAN 命 令 行 连 接 数 据 库 以 及 如 何 使 用 connect 命 令 3.3.1 通 过 RMAN 命 令 行 连 接 在 OS 提 示 符 下 简 单 地 输 入 rman 命 令 就 可 以 启 动 RMAN 一 旦 启 动 了 RMAN 命 令 解 释 程 序, 就 可 以 执 行 任 何 所 需 的 操 作 使 用 命 令 行 参 数 完 成 一 些 预 备 工 作 通 常 会 非 常 方 便, 因 此 可 以 在 启 动 RMAN 时 传 递 一 些 命 令 行 参 数 可 以 使 用 这 些 命 令 行 参 数 来 使 RMAN 连 接 到 需 要 备 份 的 数 据 库 ( 即 目 标 数 据 库 ) 恢 复 目 录 或 其 他 一 些 任 务 表 3-3 提 供 了 一 个 命 令 行 参 数 参 数 变 量 数 据 类 型 ( 如 果 存 在 ) 和 参 数 用 途 的 清 单

76 第 Ⅱ 部 分 设 置 原 则 和 实 践 表 3-3 RMAN 命 令 行 参 数 RMAN 命 令 行 参 数 参 数 变 量 类 型 用 途 target 字 符 串 定 义 要 连 接 的 目 标 数 据 库 的 用 户 名 口 令 和 服 务 器 名 catalog 字 符 串 定 义 恢 复 目 录 的 用 户 名 口 令 和 服 务 器 名 nocatalog 不 存 在 变 量 表 示 会 话 不 使 用 恢 复 目 录, 这 是 Oracle 8i 和 Oracle 9i 中 的 默 认 参 数 cmdfile 字 符 串 表 示 要 执 行 的 命 令 文 件 脚 本 名 log 字 符 串 表 示 RMAN 会 话 应 当 记 入 日 志, 日 志 文 件 名 为 该 参 数 的 变 量 ; 还 要 删 除 显 示 屏 上 的 所 有 RMAN 消 息 ( 除 了 RMAN 提 示 符 之 外 ) trace 字 符 串 表 示 应 当 跟 踪 RMAN 会 话, 跟 踪 文 件 名 为 该 参 数 的 变 量 append 不 存 在 变 量 表 示 应 当 追 加 的 日 志 文 件 ( 由 日 志 参 数 定 义 ) debug 多 种 变 量 表 示 应 当 以 调 试 模 式 启 动 RMAN msgno 不 存 在 变 量 表 示 应 当 显 示 每 种 错 误 消 息 的 RMAN 前 缀 如 果 没 有 选 中 这 个 选 项, 某 些 非 错 误 消 息 就 不 会 包 含 消 息 号 send 字 符 串 将 字 符 串 消 息 发 送 至 介 质 管 理 层 pipe 字 符 串 调 用 RMAN 管 道 接 口 timeout 整 数 表 示 等 待 管 道 输 入 的 时 间 ( 以 秒 为 单 位 ) Auxiliary 字 符 串 定 义 连 接 的 辅 助 数 据 库 的 用 户 名 口 令 和 服 务 器 名 checksyntax None 检 查 命 令 文 件 以 列 出 语 法 错 误 salxdebug None 命 令 行 及 RMAN 提 示 语 法 分 析 错 误 检 查 下 面 是 一 些 使 用 命 令 行 参 数 启 动 RMAN 的 示 例 ( 后 面 还 将 介 绍 其 他 的 示 例 ): RMAN target=system/manager@robt nocatalog RMAN target='sys/robert as sysdba@robt'nocatalog RMAN target=system/manager@robt catalog=system/manager@catalog log="rman.log" RMAN target system/manager@robt nocatalog log "RMAN.log" 注 意 : 命 令 行 参 数 和 参 数 值 之 间 的 = 号 是 可 选 的 另 外, 如 果 运 行 Oracle Database 11g Real Application Clusters 软 件, 就 只 能 连 接 群 集 中 的 一 个 实 例 注 意,RMAN 总 是 以 SYSDBA 身 份 连 接 到 目 标 数 据 库 了 解 这 一 点 很 重 要, 因 为 这 暗 示 连 接 的 账 户 必 须 具 有 SYSDBA 权 限 如 果 忘 记 了 与 RMAN 有 关 的 命 令 行 变 量, 还 有 一 种 方 法 可 以 显 示 有 效 的 命 令 行 参 数 : 简 单 地 使 用 一 个 无 效 的 参 数 来 启 动 RMAN 在 下 面 的 方 法 示 例 中, 我 们 可 以 看 到

第 3 章 RMAN 设 置 和 配 置 77 RMAN 会 返 回 一 个 错 误, 不 过 同 时 也 会 提 供 一 个 有 效 命 令 行 参 数 的 列 表 ( 下 面 省 略 了 列 表 末 尾 的 一 些 错 误 ): C:\Documents and Settings\Robert>rman help Argument Value Description ---------------------------------------------------------------------- target quoted-string connect-string for target database catalog quoted-string connect-string for recovery catalog nocatalog none if specified, then no recovery catalog cmdfile quoted-string name of input command file log quoted-string name of output message log file trace quoted-string name of output debugging message log file append none if specified, log is opened in append mode debug optional-args activate debugging msgno none show RMAN-nnnn prefix for all messages send quoted-string send a command to the media manager pipe string building block for pipe names timeout integer number of seconds to wait for pipe input checksyntax none check the command file for syntax errors ---------------------------------------------------------------------- Both single and double quotes (' or ") are accepted for a quoted-string. Quotes are not required unless the string contains embedded white-space. RMAN 提 供 了 checksyntax 参 数, 它 允 许 用 户 对 有 问 题 的 RMAN 命 令 进 行 检 查 下 面 是 使 用 checksyntax 参 数 的 示 例 : C:\Documents and Settings\Robert>rman checksyntax Recovery Manager: Release 11.2.0.1.0 - Production on Thu Nov 5 04:03:03 2009 Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. RMAN> backup database pls archivelog; RMAN-00571: ========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: ========================================================== RMAN-00558: error encountered while parsing input commands RMAN-01009: syntax error: found "identifier": expecting one of: "archivelog, auxiliary, backupset, backup, channel, controlfilecopy, copy, current, database, datafilecopy, datafile, db_recovery_file_dest, delete, diskratio, filesperset, force, format, from, include, keep, maxsetsize, noexclude, nokeep, not, plus, pool, recovery, reuse, section, skip readonly, skip, spfile, tablespace, tag, to, (, ;" RMAN-01008: the bad identifier was: pls RMAN-01007: at line 1 column 17 file: standard input RMAN> backup database plus archivelog; The command has no syntax errors

78 第 Ⅱ 部 分 设 置 原 则 和 实 践 注 意, 许 多 人 都 可 能 不 仔 细 查 看 RMAN 错 误 消 息 在 该 消 息 中 通 常 可 以 看 出 RMAN 期 望 出 现 特 定 的 关 键 字 或 短 语 3.3.2 RMAN 客 户 端 兼 容 性 在 使 用 RMAN 客 户 端 时, 应 该 考 虑 该 客 户 端 与 所 连 接 的 目 标 数 据 库 的 兼 容 性 问 题 还 需 要 考 虑 恢 复 目 录 的 兼 容 性 ( 该 问 题 将 在 第 9 章 详 细 讨 论 ) 一 般 来 说,RMAN 客 户 端 的 版 本 应 该 与 所 连 接 的 目 标 数 据 库 版 本 相 同 或 更 高 表 3-4 所 示 的 列 表 对 目 标 数 据 库 与 辅 助 数 据 库 及 RMAN 客 户 端 之 间 的 RMAN 的 兼 容 性 问 题 提 供 参 考 和 指 导 表 3-4 目 标 数 据 库 辅 助 数 据 库 和 RMAN 客 户 端 之 间 的 RMAN 兼 容 性 列 表 目 标 数 据 库 / 辅 助 数 据 库 客 户 端 版 本 要 求 8.0.6 只 有 8.0.6 适 用 8.1.7 只 有 8.0.6.1 或 8.1.7 适 用 8.1.7.4 只 有 8.1.7.4 适 用 9.0.1 只 有 9.0.1 适 用 9.2.0 9.0.1.3 和 目 标 数 据 库 可 执 行 版 本 10.1.0 9.0.1.3 和 目 标 数 据 库 可 执 行 版 本 10.2.0 9.0.1.3 和 目 标 数 据 库 可 执 行 版 本 11.1.0 9.0.1.3 和 目 标 数 据 库 可 执 行 版 本 11.2.0 9.0.1.3 和 目 标 数 据 库 可 执 行 版 本 RMAN 存 储 在 $ORACLE_HOME/bin 目 录 中 该 目 录 应 该 在 ORACLE 运 行 的 操 作 系 统 的 路 径 上 若 存 在 多 个 ORACLE_HOME 目 录 就 应 该 引 起 注 意 在 启 动 RMAN 前 应 确 保 操 作 系 统 路 径 指 向 正 确 的 ORACLE_HOME 目 录 如 果 路 径 设 置 不 正 确, 则 会 造 成 使 用 错 误 的 ORACLE_HOME 目 录 另 外 还 需 要 注 意 在 RMAN 执 行 前 没 有 其 他 的 rman 命 令 正 在 运 行 例 如, 某 种 已 存 在 路 径 中 的 Unix 版 本 的 rman 命 令 正 在 运 行 而 不 是 RMAN 正 在 运 行, 因 为 它 在 路 径 的 首 位 若 存 在 这 样 的 情 况, 则 需 要 对 路 径 进 行 调 整, 或 者 将 其 改 变 为 $ORACLE_HOME/bin 目 录, 直 接 从 该 位 置 运 行 rman 命 令 通 常 来 说, 如 果 使 用 不 兼 容 的 客 户 端 版 本, 则 RMAN 会 产 生 一 个 错 误 可 以 使 用 操 作 系 统 级 实 用 程 序 ( 如 oraenv) 检 查 使 用 的 目 录 是 否 是 正 确 的 ORACLE_HOME 目 录, 或 者 检 查 RMAN 客 户 端 的 标 志 3.3.3 使 用 RMAN 的 connect 命 令 如 果 启 动 了 RMAN, 发 现 没 有 连 接 到 正 确 的 数 据 库, 或 者 是 要 连 接 一 个 不 同 的 数 据 库 ( 目 标 数 据 库 目 录 数 据 库 或 辅 助 数 据 库 ), 可 以 使 用 connect 命 令 来 更 改 RMAN 要 连 接 的 数 据 库 使 用 connect target 命 令 可 以 连 接 到 一 个 不 同 的 目 标 数 据 库 ; 使 用 connect catalog 命 令 可 以 连 接 到 一 个 不 同 的 恢 复 目 录 ; 使 用 connect auxiliary 命 令 可 以 连 接 到 一 个

第 3 章 RMAN 设 置 和 配 置 79 不 同 的 辅 助 数 据 库 下 面 是 一 些 使 用 connect 命 令 的 示 例 : connect target sys/password@testdb; connect catalog rcat_user/password@robdb; 3.3.4 退 出 RMAN 客 户 端 当 使 用 完 RMAN 时, 有 必 要 退 出 RMAN 客 户 端 RMAN 提 供 了 两 个 命 令 :quit 和 exit 使 用 这 些 命 令 可 返 回 到 OS 提 示 符 RMAN 也 允 许 使 用 host 命 令 返 回 到 OS 下 面 是 一 些 示 例 C:\>rman target=/ Recovery Manager: Release 11.2.0.1.0-Production on Wed Oct 4 22:49:14 2006 Copyright (c) 1982, 2005, Oracle. All rights reserved. connected to target database: ORCL2 (DBID=582838926) RMAN> host; Microsoft Windows XP [Version 5.1.2600] (C) Copyright 1985-2001 Microsoft Corp. C:\>exit host command complete RMAN> exit Recovery Manager complete. 3.4 为 RMAN 操 作 配 置 数 据 库 现 在 我 们 已 经 了 解 了 启 动 RMAN 的 方 法, 接 下 来 就 需 要 处 理 某 些 配 置 项 虽 然 只 是 启 动 RMAN 也 可 以 执 行 备 份 操 作, 但 在 这 样 做 之 前, 最 好 能 够 先 解 决 一 些 配 置 问 题 首 先, 需 要 设 置 要 使 用 RMAN 的 数 据 库 用 户 ; 随 后 还 要 配 置 RMAN 使 用 的 一 些 默 认 设 置, 所 以 还 将 介 绍 这 些 默 认 设 置 3.4.1 设 置 数 据 库 用 户 在 默 认 情 况 下, 可 以 通 过 SYS 账 户 ( 即 sysdba) 来 使 用 RMAN, 该 账 户 不 需 要 任 何 配 置 当 然, 在 执 行 产 品 备 份 操 作 时,sysdba 并 不 是 最 佳 的 账 户 建 议 在 使 用 RMAN 执 行 备 份 操 作 之 前 创 建 一 个 用 于 RMAN 备 份 的 单 独 账 户 设 置 操 作 如 下 所 示 RMAN 实 习 : 创 建 目 标 数 据 库 RMAN 备 份 账 户 实 习 注 意 事 项 为 了 完 成 这 个 RMAN 实 习, 需 要 安 装 Oracle 软 件, 并 且 启 动 和 运 行 一 个 数 据 库 您 需 要 拥 有 这 个 数 据 库 的 管 理 权 限 步 骤 1 确 定 要 使 用 的 用 户 账 户 名, 使 用 数 据 库 create user 命 令 创 建 这 个 账 户 : CREATE USER backup_admin IDENTIFIED BY backupuserpassword default TABLESPACE users;

80 第 Ⅱ 部 分 设 置 原 则 和 实 践 步 骤 2 授 予 BACKUP_ADMIN 用 户 sysdba 权 限, 这 是 因 为 RMAN 会 经 常 使 用 sysdba 登 录 来 连 接 数 据 库 下 面 是 一 个 授 予 BACKUP_ADMIN 账 户 sysdba 权 限 的 示 例 : GRANT sysdba TO backup_admin; 使 用 Oracle 数 据 库 配 置 助 手 创 建 的 数 据 库 如 果 使 用 dbca 创 建 数 据 库, 则 有 一 个 选 项 可 用 来 设 置 自 动 执 行 的 每 日 备 份 如 果 选 择 这 个 选 项,Oracle 将 执 行 一 些 初 始 的 RMAN 备 份 ( 例 如, 配 置 FRA) 虽 然 这 种 RMAN 配 置 对 于 不 重 要 的 数 据 库 已 经 足 够, 但 如 果 正 在 管 理 的 是 至 关 重 要 的 数 据 库, 则 应 该 遵 循 本 章 中 前 面 介 绍 的 步 骤, 并 确 保 正 确 配 置 了 数 据 库 如 果 试 图 将 RMAN 与 一 个 没 有 正 确 创 建 的 账 户 连 接, 就 会 产 生 下 面 的 错 误 : D:\oracle\oradata\robt>RMAN target=backup/backup@robt Recovery Manager: Release 11.2.0.1.0 Production on Tue Aug 22 21:40:51 2006 Copyright (c) 1982, 2005, Oracle. All rights reserved. RMAN-00571: ========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: ========================================================== RMAN-00554: initialization of internal recovery manager package failed RMAN-04005: error from target database: ORA-01031: insufficient privileges 现 在 已 经 创 建 了 账 户 并 授 予 其 所 需 的 权 限, 然 而 要 使 用 RMAN, 还 必 须 配 置 一 些 RMAN 的 默 认 设 置 下 面 将 介 绍 这 些 默 认 设 置 3.4.2 设 置 数 据 库 安 全 性 下 面 简 要 讨 论 在 本 地 服 务 器 上 连 接 RMAN 与 通 过 Oracle Net 连 接 RMAN 两 者 之 间 的 差 异 启 动 RMAN 时, 可 能 登 录 到 数 据 库 所 在 的 服 务 器 在 这 种 情 况 下, 如 果 使 用 特 许 的 OS 用 户 账 户 登 录, 只 需 要 执 行 前 面 的 RMAN 实 习 中 的 步 骤 1 和 步 骤 2 即 可 根 据 使 用 的 操 作 系 统, 可 以 确 定 我 们 的 用 户 账 户 是 否 是 特 许 的 如 果 使 用 UNIX 系 统, 通 常 会 存 在 一 个 名 为 dba( 名 字 有 可 能 不 同 ) 的 UNIX 组, 它 是 在 创 建 Oracle 特 有 的 账 户 ( 通 常 名 为 Oracle) 时 创 建 的 如 果 在 这 个 UNIX 组 中 指 定 我 们 的 UNIX 用 户 账 户, 就 可 以 不 再 执 行 其 他 操 作 而 连 接 到 一 个 目 标 数 据 库 如 果 使 用 Windows 平 台, 特 许 用 户 会 指 定 到 一 个 通 常 名 为 ORA_DBA 的 NT 组 如 果 没 有 使 用 特 许 的 账 户 登 录 本 地 服 务 器, 或 者 从 客 户 端 工 作 站 使 用 Oracle Net 来 连 接 目 标 数 据 库 ( 例 如 使 用 system/manager@testdb 来 连 接 ), 就 需 要 配 置 数 据 库 使 用 口 令 文 件 配 置 口 令 文 件 时, 首 先 要 创 建 口 令 文 件, 然 后 要 配 置 数 据 库, 使 数 据 库 明 确 使 用 这 个 口 令 文 件 下 面 将 详 细 介 绍 这 两 个 步 骤 1. 创 建 口 令 文 件 使 用 Oracle 实 用 程 序 orapwd 可 以 创 建 数 据 库 口 令 文 件, 该 命 令 具 有 3 个 参 数

第 3 章 RMAN 设 置 和 配 置 81 file 参 数 : 口 令 文 件 名 password 参 数 :sys 用 户 的 口 令 entries 参 数 : 为 其 他 特 许 的 Oracle 用 户 账 户 保 留 的 条 目 数 在 默 认 情 况 下,NT 上 的 Oracle 数 据 库 对 口 令 文 件 采 用 这 样 的 命 名 标 准 :PWDsid.ora, 其 中 的 sid 就 是 数 据 库 名 下 面 是 创 建 口 令 文 件 的 示 例 : orapwd file=pwdrobt.ora password=robert entries=20 创 建 了 口 令 文 件 后, 接 下 来 需 要 配 置 数 据 库, 以 让 它 使 用 口 令 文 件, 以 便 可 以 通 过 Oracle Net 来 执 行 远 程 备 份 操 作 2. 配 置 数 据 库 使 用 口 令 文 件 在 默 认 情 况 下,Oracle 数 据 库 不 会 被 配 置 为 使 用 口 令 文 件 ( 除 非 使 用 ODBCA 创 建 数 据 库 ) 要 配 置 数 据 库, 可 以 在 常 用 的 编 辑 器 中 编 辑 参 数 文 件 (init.ora) 我 们 要 编 辑 的 参 数 为 REMOTE_LOGIN_PASSWORDFILE, 在 Oracle Database 11g 中 该 参 数 可 以 设 置 为 下 面 的 3 个 参 数 中 的 一 个 : none 参 数 : 默 认 值 在 这 种 情 况 下,Oracle 会 忽 略 口 令 文 件, 并 且 sysdba 访 问 只 给 予 本 地 特 许 的 登 录 shared 参 数 : 该 参 数 说 明 多 个 数 据 库 可 以 使 用 相 同 的 口 令 文 件 这 种 模 式 只 能 保 存 SYS 用 户 账 户 的 口 令 exclusive 参 数 : 该 参 数 说 明 只 有 一 个 数 据 库 可 以 使 用 这 个 口 令 文 件 在 这 种 模 式 中, 口 令 文 件 可 以 包 含 用 于 多 个 特 许 的 Oracle 账 户 的 口 令 这 是 推 荐 的 操 作 模 式, 特 别 是 在 运 行 RMAN 时 如 果 希 望 将 RMAN 与 来 自 于 远 程 客 户 端 的 数 据 库 连 接, 则 必 须 使 用 该 参 数 设 置 如 果 使 用 的 是 Oracle Database 的 SPFILE 而 不 是 基 于 文 本 的 参 数 文 件, 则 使 用 alter system 命 令 可 以 更 改 这 个 参 数 的 设 置, 如 下 所 示 : alter system set REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE scope=spfile; 最 后 需 要 说 明 的 是,REMOTE_LOGIN_PASSWORDFILE 参 数 不 是 可 动 态 改 变 的, 所 以 不 能 在 数 据 库 启 动 和 运 行 时 更 改 这 个 参 数 相 反, 需 要 更 改 SPFILE( 使 用 alter system 命 令 的 scope=spfile 参 数 更 改 ), 然 后 关 闭 并 重 启 数 据 库 3.4.3 设 置 CONTROL_FILE_RECORD_KEEP_TIME 参 数 为 RMAN 配 置 数 据 库 时, 应 当 考 虑 在 控 制 文 件 中 存 储 备 份 记 录 的 时 间 备 份 记 录 包 括 完 全 的 数 据 库 备 份 记 录, 以 及 指 定 的 数 据 文 件 控 制 文 件 参 数 文 件 和 归 档 目 录 的 备 份 记 录 数 据 库 参 数 CONTROL_FILE_RECORD_KEEP_TIME 以 天 为 单 位 ( 默 认 值 为 7), 因 此 在 默 认 情 况 下,Oracle 会 将 RMAN 备 份 和 恢 复 记 录 保 留 7 天 可 以 将 该 参 数 设 置 为 0 到 365 之 间 的 任 意 值 CONTROL_FILE_RECORD_KEEP_TIME 参 数 会 影 响 一 系 列 数 据 库 操 作 首 先, 产

82 第 Ⅱ 部 分 设 置 原 则 和 实 践 生 RMAN 备 份 时, 由 于 与 这 些 备 份 相 关 的 记 录 存 储 在 控 制 文 件 中, 所 以 该 参 数 直 接 影 响 数 据 库 控 制 文 件 的 大 小 备 份 记 录 将 不 断 地 保 存 在 控 制 文 件 中, 控 制 文 件 将 耗 尽 空 间 这 时,Oracle 会 扩 展 控 制 文 件 来 调 整 备 份 记 录 所 需 的 存 储 空 间 此 外, 该 参 数 设 为 0 时 将 禁 止 扩 展 控 制 文 件, 并 会 使 得 RMAN 备 份 的 保 存 周 期 不 确 定 我 们 建 议 将 CONTROL_FILE_RECORD_KEEP_TIME 参 数 值 设 置 为 不 小 于 选 中 数 据 库 的 备 份 保 存 周 期 的 值, 否 则 有 可 能 在 备 份 介 质 上 有 数 据 库 备 份, 但 在 控 制 文 件 中 不 存 在 与 备 份 相 关 的 备 份 记 录 如 果 由 于 某 些 原 因 需 要 恢 复 这 些 较 早 的 记 录, 就 会 导 致 严 重 的 问 题 注 意 : 如 果 在 某 些 位 置 上 错 误 设 置 了 文 件 保 存 策 略, 则 会 导 致 备 份 保 存 策 略 失 败 这 包 括 错 误 设 置 了 CONTROL_FILE_RECORD_KEEP_TEME 参 数, RMAN 保 存 策 略, 及 磁 带 供 应 商 产 品 提 供 的 保 存 策 略 确 保 正 确 设 置 了 保 存 策 略, 以 保 证 能 正 常 地 还 原 备 份 3.5 配 置 RMAN 默 认 设 置 RMAN 允 许 执 行 自 动 的 数 据 库 备 份 和 恢 复, 后 面 将 详 细 讨 论 这 个 问 题 为 了 支 持 这 个 功 能,RMAN 允 许 为 一 些 设 置 定 义 默 认 值 ( 如 信 道 配 置 ) 本 节 将 介 绍 RMAN 默 认 设 置 的 配 置 如 果 能 够 配 置 这 些 设 置, 就 意 味 着 可 以 更 改 这 个 配 置, 有 必 要 的 话 甚 至 可 以 完 全 删 除 这 个 配 置 所 以 这 一 节 也 会 介 绍 更 改 和 删 除 配 置 的 内 容 所 有 这 些 配 置 工 作 都 是 为 了 方 便 执 行 备 份 操 作 的 进 程 首 先, 我 们 会 大 致 介 绍 RMAN 中 的 configure 命 令 和 该 命 令 提 供 的 所 有 功 能, 随 后 还 将 介 绍 可 能 需 要 使 用 configure 命 令 配 置 的 一 些 默 认 值 我 们 将 在 本 节 中 使 用 一 些 您 可 能 还 不 熟 悉 的 术 语, 后 面 的 章 节 将 讲 述 这 些 术 语 虽 然 您 对 有 些 术 语 的 概 念 比 较 模 糊, 但 是 许 多 术 语 已 经 在 第 2 章 中 介 绍 过 对 于 RMAN 来 说, 没 有 任 何 默 认 配 置 选 项 是 必 需 的 我 们 建 议 您 先 粗 略 阅 读 一 下 本 节, 对 能 够 设 置 的 多 种 默 认 值 有 一 个 基 本 的 认 识, 然 后 在 学 习 和 应 用 后 面 的 章 节 后 再 重 新 阅 读 这 一 节 届 时, 您 就 能 很 容 易 地 判 断 要 采 用 Oracle 数 据 库 的 哪 些 默 认 设 置 3.5.1 configure 命 令 介 绍 RMAN 提 供 了 configure 命 令, 该 命 令 允 许 用 户 为 备 份 和 恢 复 操 作 定 义 默 认 值 RMAN 还 允 许 用 户 使 用 configure 命 令 来 更 改 多 种 参 数 的 默 认 值, 这 些 参 数 值 会 持 续 到 再 次 被 清 除 或 被 更 改 自 定 义 默 认 配 置 选 项 的 能 力 允 许 我 们 执 行 自 动 的 RMAN 操 作 下 面 是 可 以 配 置 的 几 个 不 同 设 置 : 用 于 RMAN 操 作 的 默 认 设 备 类 型, 如 磁 盘 或 SBT( 系 统 备 份 磁 带 设 备 ) 执 行 自 动 的 备 份 和 还 原 操 作 时 自 动 分 配 的 信 道 数 配 置 将 指 定 表 空 间 排 除 在 完 全 数 据 库 备 份 操 作 之 外 的 表 空 间 排 斥 策 略 自 动 备 份 时 任 何 给 定 备 份 片 的 最 大 空 间 和 任 何 备 份 集 的 大 小

第 3 章 RMAN 设 置 和 配 置 83 备 份 优 化 的 默 认 值 为 ON 或 OFF 备 份 优 化 会 删 除 同 一 数 据 文 件 ( 例 如 与 只 读 表 空 间 关 联 的 数 据 文 件 ) 和 归 档 的 重 做 日 志 的 复 制 备 份 快 照 控 制 文 件 的 默 认 文 件 名 ( 第 2 章 介 绍 过 快 照 控 制 文 件 ) 控 制 文 件 自 动 备 份 默 认 为 ON 或 OFF, 控 制 文 件 备 份 的 输 出 文 件 的 默 认 格 式, 以 及 创 建 这 些 备 份 的 默 认 设 备 也 如 此 辅 助 数 据 库 文 件 的 默 认 文 件 名 默 认 的 保 留 策 略, 该 策 略 用 于 确 定 哪 些 备 份 和 副 本 符 合 删 除 条 件 默 认 的 加 密 值 和 关 联 的 加 密 算 法 当 需 要 压 缩 时, 使 用 的 默 认 压 缩 算 法 归 档 重 做 日 志 的 删 除 策 略 上 面 的 每 一 种 可 配 置 设 置 都 具 有 指 定 的 默 认 值, 这 些 默 认 值 ( 与 任 何 配 置 值 一 样 ) 存 储 在 数 据 库 控 制 文 件 中 即 使 是 连 接 到 恢 复 目 录, 情 况 仍 然 如 此 使 用 show 命 令 可 以 查 看 各 种 RMAN 参 数 的 当 前 配 置 值 V$RMAN_CONFIGURATION 数 据 库 视 图 还 会 列 出 非 默 认 的 RMAN 配 置 设 置 下 面 是 一 些 使 用 show 命 令 的 示 例 : show default device type; show maxsetsize; show retention policy; show all; 3.5.2 配 置 多 种 RMAN 默 认 设 置 本 节 将 介 绍 RMAN 默 认 值 的 设 置 首 先, 将 介 绍 信 道 默 认 设 置 的 配 置 可 以 采 用 不 同 的 方 法 来 配 置 信 道 : 使 用 configure channel device type 命 令 可 以 配 置 用 于 所 有 信 道 的 默 认 值 ; 使 用 configure channel n device type 命 令 可 以 配 置 用 于 指 定 默 认 信 道 的 默 认 值 使 用 configure channel device type clear 命 令 可 以 清 除 用 于 所 有 信 道 的 默 认 值, 使 用 configure channel n device type clear 命 令 可 以 清 除 用 于 指 定 默 认 信 道 的 默 认 值 使 用 allocate channel 命 令 分 配 一 个 信 道 时, 可 以 为 分 配 的 这 个 信 道 指 定 名 称 例 如, allocate channel d1 device type disk 命 令 会 创 建 一 个 名 为 d1 的 信 道 自 动 分 配 信 道 时, Oracle 会 为 这 些 信 道 指 定 名 称, 它 们 的 默 认 名 称 取 决 于 其 默 认 设 备 类 型, 如 表 3-5 所 示 : 表 3-5 信 道 的 默 认 名 称 及 示 例 设 备 类 型 默 认 名 格 式 示 例 磁 盘 ORA_DISK_n ORA_DISK_1, ORA_DISK_2 磁 带 ORA_SBT_TAPE_n ORA_SBT_TAPE_1, ORA_SBT_TAPE_2 自 动 分 配 的 信 道 数 取 决 于 所 定 义 的 默 认 并 行 级 别 ( 本 章 后 面 部 分 将 做 介 绍 ) 执 行 configure 命 令 时,Oracle 显 示 先 前 的 配 置 设 置, 然 后 显 示 新 的 配 置 设 置 下 面 介 绍 使 用 configure 命 令 来 自 动 执 行 RMAN 备 份 和 还 原 进 程 的 一 些 方 法

84 第 Ⅱ 部 分 设 置 原 则 和 实 践 3.5.3 configure 命 令 的 使 用 示 例 本 节 介 绍 一 些 使 用 configure 命 令 定 义 默 认 值 的 示 例 在 本 节 中 将 介 绍 一 些 有 关 config 命 令 的 主 题, 包 括 : 配 置 信 道 默 认 设 置 使 用 格 式 串 配 置 默 认 的 控 制 文 件 自 动 备 份 和 SPFILE 自 动 备 份 配 置 默 认 的 保 留 策 略 配 置 默 认 的 加 密 级 别 默 认 归 档 日 志 删 除 策 略 1. 配 置 信 道 默 认 设 置 首 先 要 介 绍 的 是 将 默 认 的 备 份 / 还 原 设 备 配 置 为 磁 带 或 磁 盘 的 示 例 在 该 示 例 中, 为 备 份 操 作 指 定 的 所 有 信 道 都 分 配 到 磁 盘 上 : CONFIGURE DEFAULT DEVICE TYPE TO SBT; CONFIGURE DEFAULT DEVICE TYPE TO DISK; 当 配 置 默 认 的 设 备 类 型 时, 信 道 除 非 使 用 backup device type 参 数 重 写 默 认 值,Oracle 将 使 用 默 认 的 信 道 也 将 自 动 分 配 用 于 delete 命 令 的 维 护 信 道 和 用 于 复 制 操 作 的 辅 助 信 道 一 旦 配 置 了 默 认 的 设 备 类 型, 就 可 以 配 置 特 定 备 份 类 型 的 默 认 值, 当 使 用 设 备 时 应 该 进 行 这 种 备 份 例 如, 当 备 份 到 磁 盘 时, 可 以 让 Oracle 默 认 地 使 用 标 准 的 Oracle 备 份 集 方 法 备 份 数 据 库, 或 者 可 以 让 其 默 认 为 使 用 副 本 ( 只 可 以 备 份 到 磁 盘 ) 也 可 以 默 认 为 压 缩 备 份 集, 并 表 明 并 行 程 度 ( 这 表 示 将 分 配 给 备 份 的 信 道 数 ) 下 面 是 这 些 不 同 选 项 的 配 置 示 例 : CONFIGURE DEVICE TYPE DISK BACKUP TYPE TO BACKUPSET; CONFIGURE DEVICE TYPE DISK BACKUP TYPE TO COMPRESSED BACKUPSET; CONFIGURE DEVICE TYPE DISK BACKUP TYPE TO COPY; CONFIGURE DEVICE TYPE DISK PARALLELISM 2; 压 缩 是 Oracle Database 10g 中 RMAN 提 供 的 新 特 性 压 缩 提 供 了 Oracle 备 份 集 的 真 正 压 缩, 而 不 同 于 ZIP 压 缩 它 可 以 有 效 地 减 小 备 份 集 的 大 小 当 然, 压 缩 将 占 用 资 源, 并 且 需 要 更 长 的 时 间 来 完 成 备 份 和 还 原 现 在 再 来 看 一 个 在 自 动 备 份 或 恢 复 操 作 期 间 配 置 要 分 配 的 信 道 数 的 示 例 同 样, 在 这 个 示 例 中, 我 们 设 置 磁 盘 操 作 的 默 认 并 行 级 别 为 2, 这 样, 如 果 启 动 自 动 的 备 份 操 作, 就 会 分 配 两 个 信 道 来 并 行 执 行 备 份 操 作, 如 下 所 示 CONFIGURE CHANNEL 1 DEVICE TYPE DISK FORMAT 'd:\backup\robt\backup_%u'; CONFIGURE CHANNEL 2 DEVICE TYPE DISK FORMAT 'e:\backup\robt\backup_%u';

第 3 章 RMAN 设 置 和 配 置 85 注 意 : 通 常 在 设 置 默 认 的 并 行 级 别 时, 应 当 设 置 其 为 连 接 备 份 数 据 库 的 磁 盘 数 或 磁 带 驱 动 器 数 在 使 用 磁 盘 时, 需 要 通 过 反 复 试 验 确 定 因 为 磁 盘 有 多 个 磁 头, 且 可 能 会 卸 下, 由 此 使 用 多 信 道 可 能 会 获 得 更 好 的 吞 吐 率 由 此 需 要 对 实 际 使 用 磁 盘 并 行 性 能 进 行 测 试, 并 根 据 测 试 结 果 设 置 在 配 置 信 道 时 有 一 些 可 用 的 选 项 使 用 maxpiecesize 参 数, 可 以 控 制 备 份 集 片 的 大 小 使 用 maxopenfiles 参 数, 可 以 控 制 RMAN 一 次 最 多 可 以 打 开 的 文 件 数 rate 参 数 用 于 限 制 RMAN 并 控 制 备 份 时 读 取 字 节 的 比 率 为 B/S KB/S MB/S 或 GB/S 下 面 的 示 例 综 合 使 用 所 有 这 些 选 项 我 们 限 定 信 道 1 创 建 的 每 个 备 份 片 最 大 为 100MB, 并 且 限 定 RMAN 在 该 信 道 上 最 多 打 开 8 个 文 件 最 后, 信 道 被 限 制 为 只 允 许 拥 有 100MB 以 内 的 吞 吐 量 CONFIGURE CHANNEL 1 DEVICE TYPE DISK MAXPIECESIZE 100m maxopenfiles 8 rate 100MB; 注 意 : 不 要 混 淆 maxpiecesize 参 数 和 maxsetsize 参 数 之 间 的 区 别 :maxpiecesize 限 定 单 个 备 份 集 片 的 大 小, 该 参 数 对 备 份 的 整 体 大 小 没 有 影 响 另 一 方 面,maxsetsize 参 数 可 以 限 定 备 份 的 整 体 大 小, 因 此 需 要 谨 慎 使 用 如 果 要 限 定 所 有 信 道, 我 们 执 行 的 命 令 会 稍 有 不 同, 该 命 令 如 下 所 示 : CONFIGURE CHANNEL DEVICE TYPE DISK MAXPIECESIZE 100m; 为 什 么 需 要 更 改 给 定 备 份 集 片 的 最 大 尺 寸 呢? 首 先, 某 些 指 定 文 件 的 大 小 存 在 限 制 例 如 磁 带 只 能 处 理 一 定 量 的 数 据, 而 某 些 磁 盘 文 件 系 统 对 给 定 的 数 据 文 件 的 大 小 有 一 些 限 制 此 外, 还 可 能 要 将 一 个 磁 带 设 备 设 置 为 所 有 信 道 的 默 认 设 备, 并 且 指 定 一 些 参 数 的 设 置 在 这 种 情 况 下,configure 命 令 可 能 会 如 下 所 示 : -- Note that we could have used the = sign after the PARMS clause if -- we preferred like this: -- PARMS='ENV=(NB_ORA_CLASS=RMAN_rs100_tape). -- This is true with many parameters. CONFIGURE CHANNEL DEVICE TYPE sbt MAXPIECESIZE 100m PARMS 'ENV=(NB_ORA_CLASS=RMAN_rs100_tape)'; 使 用 configure 命 令 时, 可 能 会 发 现 需 要 清 除 给 定 的 配 置, 这 样 才 能 使 用 默 认 值 使 用 configure 命 令 的 clear 选 项 可 以 完 成 这 一 操 作 在 下 面 的 示 例 中, 将 清 除 为 默 认 信 道 1 设 置 的 默 认 选 项 CONFIGURE CHANNEL 1 DEVICE TYPE DISK CLEAR;

86 第 Ⅱ 部 分 设 置 原 则 和 实 践 2. 配 置 与 备 份 集 有 关 的 设 置 可 能 还 要 配 置 整 个 备 份 集 的 默 认 最 大 尺 寸, 这 时 只 需 对 语 法 稍 作 修 改 ( 下 面 的 示 例 把 最 大 尺 寸 设 置 回 默 认 值, 即 没 有 限 制 ): CONFIGURE MAXSETSIZE TO 7500K; CONFIGURE MAXSETSIZE CLEAR; 警 告 : 使 用 maxsetsize 来 限 定 创 建 的 整 个 备 份 的 大 小 时 需 要 特 别 小 心 这 是 因 为 数 据 库 在 初 始 阶 段 可 能 小 于 定 义 的 maxsetsize 值, 不 过 数 据 库 很 快 就 会 超 过 maxsetsize 值, 并 会 导 致 数 据 库 备 份 操 作 失 败 在 后 面 的 章 节 中, 可 以 将 备 份 进 程 配 置 为 创 建 双 路 备 份 (duplexed backup), 也 就 是 说 在 不 同 的 位 置 创 建 同 一 个 备 份 的 多 个 副 本 还 可 以 使 用 configure 命 令 来 配 置 数 据 库 的 默 认 设 置, 以 使 用 configure 命 令 执 行 双 路 的 自 动 备 份 操 作 下 面 的 示 例 定 义 了 任 何 备 份 到 磁 盘 上 的 备 份 都 将 被 复 制, 拥 有 两 个 副 本 : configure datafile backup copies for device type disk to 2; 在 自 动 备 份 期 间, 可 能 要 将 指 定 的 表 空 间 排 除 在 备 份 之 外,Oracle 允 许 使 用 configure 命 令 来 实 现 这 一 功 能 下 面 的 示 例 配 置 默 认 为 排 除 一 个 表 空 间 : configure exclude for tablespace old_data; configure 命 令 允 许 我 们 启 用 或 禁 止 备 份 优 化 启 用 备 份 优 化 时, 它 会 使 Oracle 跳 过 在 备 份 设 备 上 已 有 相 同 备 份 的 文 件 的 备 份 下 面 是 一 个 配 置 备 份 优 化 的 示 例 : configure backup optimization on; 需 要 注 意 的 是, 要 执 行 优 化 操 作, 就 必 须 启 用 备 份 优 化 此 外, 我 们 也 必 须 执 行 backup database 命 令 ( 或 backup archivelog 命 令 ) 与 like 选 项 ( 或 all 选 项 ), 或 者 是 使 用 backup backupset all 命 令 ( 后 面 章 节 将 详 细 介 绍 这 些 备 份 类 型 ) 最 后, 还 可 以 使 用 backup 命 令 的 force 参 数 来 禁 止 设 置 备 份 优 化 3. 配 置 快 照 控 制 文 件 设 置 第 2 章 介 绍 过 快 照 控 制 文 件, 该 文 件 是 RMAN 备 份 操 作 期 间 数 据 库 控 制 文 件 的 时 间 点 副 本, 这 样 可 以 确 保 备 份 与 给 定 时 间 点 一 致 因 此, 如 果 启 动 备 份 操 作 ( 假 定 为 一 个 联 机 备 份 操 作 ) 后 在 数 据 库 中 添 加 一 个 表 空 间 或 数 据 文 件, 这 个 表 空 间 或 数 据 文 件 就 不 会 包 含 在 备 份 中 有 时 候 我 们 希 望 RMAN 在 默 认 位 置 以 外 的 位 置 创 建 备 份 控 制 文 件, 这 时 可 以 使 用 下 面 的 configure 命 令 为 快 照 控 制 文 件 定 义 一 个 新 的 默 认 位 置 configure snapshot controlfile name to 'd:\oracle\backup\scontrolf_mydb';

第 3 章 RMAN 设 置 和 配 置 87 注 意, 即 使 配 置 了 FRA,Oracle 也 不 会 在 FRA 中 创 建 快 照 控 制 文 件 注 意 上 面 的 示 例, 它 包 含 数 据 库 名 ( 如 果 运 行 在 RAC 环 境 可 能 是 数 据 库 实 例 ), 以 此 方 法 确 保 快 照 控 制 文 件 名 是 唯 一 的 4. 使 用 格 式 串 注 意 在 前 面 的 示 例 中, 在 一 些 位 置 中 定 义 了 一 个 或 多 个 磁 盘 位 置 和 文 件 名 格 式 这 称 为 格 式 串 规 范 本 书 中 将 大 量 地 使 用 格 式 串 规 范, 而 在 使 用 RMAN 时 也 会 经 常 用 到 格 式 串, 除 非 使 用 FRA FRA 使 用 Oracle 本 身 的 文 件 名 命 名 规 则, 当 备 份 到 FRA 中 时, 建 议 不 要 使 用 格 式 串 ( 可 能 为 文 件 维 护 带 来 问 题 ) 由 于 FRA 是 备 份 的 默 认 位 置, 由 此 不 需 要 将 备 份 设 备 指 向 FRA 可 能 或 有 其 他 原 因 导 致 您 需 要 配 置 信 道, 不 要 将 它 们 配 置 为 指 向 FRA 的 格 式 串 格 式 串 与 平 台 无 关 ( 尽 管 目 录 结 构 与 平 台 有 关 ) Windows 上 的 格 式 串 与 Unix 或 其 他 平 台 均 基 本 相 同 例 如, 如 果 使 用 Unix 系 统, 格 式 串 类 似 于 如 下 所 示 : CONFIGURE CHANNEL 1 DEVICE TYPE DISK FORMAT '/u01/opt/oracle/backup/robt/backup_%u'; CONFIGURE CHANNEL 2 DEVICE TYPE DISK FORMAT '/u01/opt/oracle/backup/robt/backup_%u'; 注 意 : 如 果 使 用 format 参 数,Oracle 将 不 会 管 理 备 份 文 件, 即 使 是 备 份 到 FRA, 这 是 因 为 Oracle 不 会 管 理 备 份 如 果 使 用 format 参 数, 则 保 留 策 略 就 必 须 删 除 格 式 化 的 备 份 如 果 没 有 使 用 format 参 数, 则 采 用 OMF 名 称 并 在 FRA 中 创 建 文 件 当 备 份 到 FRA 时, 不 要 使 用 format 选 项 在 configure 命 令 中 会 经 常 使 用 格 式 串 在 backup restore 和 allocate channel 等 其 他 RMAN 命 令 中 也 会 经 常 看 到 格 式 串 RMAN 提 供 了 与 格 式 串 规 范 关 联 的 一 些 语 法 元 素 这 些 元 素 是 占 位 符,RMAN 将 使 用 相 应 的 定 义 值 替 换 它 们 例 如, 前 面 示 例 中 的 %U 语 法 元 素 告 诉 RMAN 要 使 用 系 统 生 成 的 唯 一 标 识 符 替 换 文 件 名 %U 用 于 确 保 每 个 备 份 文 件 名 的 唯 一 表 3-6 列 出 了 有 效 的 语 法 元 素 并 提 供 了 这 些 元 素 用 法 的 简 单 说 明 表 3-6 格 式 串 规 范 说 明 元 素 说 明 %a 表 示 应 该 替 换 数 据 库 的 激 活 ID %b 定 义 没 有 任 何 目 录 路 径 的 文 件 名 该 定 义 只 能 被 set newname 命 令 使 用, 或 者 用 于 使 用 图 像 副 本 建 立 备 份 %c 指 定 应 该 替 换 一 组 双 路 备 份 片 中 的 备 份 片 副 本 数 量 ( 最 大 值 为 256) 数 字 为 1 表 示 非 双 路 备 份 集,0 表 示 代 理 副 本 %d 表 示 应 该 替 换 数 据 库 的 名 称 %D 表 示 应 该 替 换 某 个 月 的 当 前 日 期, 格 式 为 DD

88 第 Ⅱ 部 分 设 置 原 则 和 实 践 ( 续 表 ) 元 素 说 明 %e 表 示 应 该 替 换 归 档 的 日 志 的 序 列 号 %f 表 示 应 该 替 换 绝 对 的 文 件 数 %F 提 供 唯 一 的 和 可 重 复 的 名 称, 该 名 称 结 合 了 数 据 库 ID(DBID) 日 期 月 份 年 份 和 顺 序 %h 表 示 应 该 替 换 归 档 的 重 做 日 志 线 程 数 %l 表 示 应 该 替 换 DBID %M 表 示 应 该 替 换 日 历 中 的 某 个 月, 格 式 为 MM %N 表 示 应 该 替 换 表 空 间 名 %n 表 示 应 该 替 换 数 据 库 名 称, 右 边 用 x 字 符 填 充 直 到 总 长 为 8 个 字 符 例 如, 如 果 ROBDB 是 数 据 库 名, 则 填 充 后 的 名 称 是 ROBDBxxx %p 表 示 应 该 替 换 备 份 集 中 的 片 数 量 对 于 每 个 备 份 集, 该 值 最 初 为 1, 在 创 建 每 个 备 份 片 时, 该 值 增 加 1 %s 表 示 应 该 替 换 备 份 集 数 量 该 数 量 是 控 制 文 件 中 的 计 数 器, 根 据 每 个 备 份 集 增 加 计 数 器 的 值 计 数 器 值 初 始 为 1 该 数 量 将 在 控 制 文 件 的 生 命 周 期 中 唯 一 ( 因 此, 在 执 行 RESETLOGS 时 复 位 该 数 量, 或 者 在 还 原 或 重 新 创 建 控 制 文 件 时 复 位 该 数 量 ) %t 表 示 应 该 替 换 备 份 集 时 间 标 记, 这 是 根 据 从 固 定 参 考 时 间 以 来 已 经 过 去 的 秒 数 得 出 的 4 位 字 节 值 可 以 结 合 使 用 %s 和 %t 来 形 成 备 份 集 的 唯 一 名 称 %T 表 示 应 该 替 换 格 式 为 YYYYMMDD 的 年 月 日 %u 表 示 应 该 替 换 8 位 字 符 的 名 称, 该 名 称 由 备 份 集 或 图 像 副 本 数 量 以 及 备 份 集 或 镜 像 副 本 的 创 建 时 间 的 压 缩 表 示 组 成 %U 这 是 默 认 的 文 件 命 名 模 式, 它 为 RMAN 相 关 的 文 件 提 供 了 系 统 生 成 的 唯 一 文 件 名 当 处 理 镜 像 副 本 或 备 份 片 时, 这 种 替 换 为 串 的 意 义 会 有 所 不 同 当 使 用 备 份 集 片 时,%U 代 表 %u_%p_%c 的 缩 写,%u_%p_%c 保 证 生 成 的 备 份 文 件 名 的 唯 一 性 当 使 用 镜 像 副 本 时, 意 义 会 有 所 不 同, 并 且 会 因 镜 像 副 本 类 型 的 不 同 也 会 有 不 同 的 意 义 用 于 数 据 文 件 的 镜 像 副 本 时, 意 义 如 下 : data-d-%d_id-%i_ts-%n_fno-%f_%u 用 于 归 档 的 重 做 日 志 的 镜 像 副 本 时, 意 义 如 下 : arch-d_%d_id-%i_s-%e_t-%h_a-%a_%u 用 于 控 制 文 件 的 镜 像 副 本 时, 意 义 如 下 : cf-d_%d-id-%i-%u %Y 表 示 应 该 替 换 格 式 为 YYYY 的 年 份 %% 表 示 希 望 使 用 % 字 符 ; 例 如 %%Y

第 3 章 RMAN 设 置 和 配 置 89 5. 配 置 控 制 文 件 和 数 据 库 参 数 文 件 的 自 动 备 份 Oracle Database 10g 以 上 版 本 的 RMAN 提 供 备 份 控 制 文 件 和 数 据 库 参 数 文 件 的 功 能, 可 以 配 置 默 认 执 行 这 些 备 份 操 作 可 以 再 次 使 用 configure 命 令 进 行 配 置, 使 得 在 备 份 操 作 期 间 自 动 执 行 这 个 自 动 备 份 进 程 下 面 的 示 例 配 置 自 动 备 份 这 些 重 要 的 数 据 库 文 件 并 关 闭 默 认 配 置 : configure controlfile autobackup on; configure controlfile autobackup off; 配 置 控 制 文 件 和 参 数 文 件 的 自 动 备 份 时, 可 以 应 用 下 面 的 规 则 : 在 run 程 序 块 之 外 执 行 每 个 RMAN 的 backup 或 copy 命 令 时, 都 会 自 动 备 份 控 制 文 件 和 服 务 器 参 数 文 件 如 果 使 用 了 run 程 序 块 而 且 该 程 序 块 的 最 后 一 条 命 令 不 是 backup 或 copy 命 令, 则 在 run 程 序 块 结 尾 处 会 备 份 控 制 文 件 和 参 数 文 件 注 意 : 如 果 不 打 算 使 用 恢 复 目 录, 则 应 该 满 足 下 列 条 件 : 在 控 制 文 件 自 动 备 份 后, 希 望 能 恢 复 控 制 文 件 没 有 使 用 FRA 除 了 上 面 这 两 种 自 动 的 控 制 文 件 备 份 类 型, 我 们 还 可 以 配 置 另 一 种 特 殊 的 控 制 文 件 备 份 类 型, 该 类 型 发 生 在 数 据 库 变 化 时, 这 些 变 化 包 括 添 加 新 的 表 空 间 添 加 数 据 文 件 添 加 联 机 重 做 日 志 等 这 种 自 动 备 份 类 型 只 在 磁 盘 上 发 生, 使 用 configure controlfile autobackup 命 令 的 一 种 特 殊 选 项 可 以 简 化 这 种 备 份 下 面 是 一 个 示 例 : RMAN> configure controlfile autobackup format for device type disk to 'd:\backup\contf\robt_%f' 使 用 该 选 项 时,Oracle RDBMS 会 在 数 据 库 结 构 的 变 化 对 控 制 文 件 产 生 影 响 时 自 动 备 份 控 制 文 件 这 些 变 化 可 能 包 括 添 加 新 的 表 空 间, 改 变 表 空 间 或 数 据 文 件 的 状 态 ( 如 使 其 联 机 ), 添 加 新 的 联 机 重 做 日 志, 重 命 名 文 件, 以 及 添 加 新 的 重 做 线 程 等 需 要 注 意 的 是, 这 种 自 动 备 份 只 在 磁 盘 上 发 生, 它 并 不 支 持 磁 带 操 作 这 些 备 份 可 能 较 大 ( 这 是 因 为 控 制 文 件 包 含 许 多 老 备 份 的 历 史 记 录 ), 因 此 必 须 确 保 为 备 份 目 录 分 配 了 足 够 大 的 磁 盘 空 间 若 不 考 虑 所 需 的 额 外 空 间, 这 些 备 份 对 于 恢 复 操 作 来 说 极 为 方 便 最 后 注 意, 即 使 由 于 某 种 原 因 备 份 操 作 失 败, 数 据 库 操 作 本 身 也 不 会 失 败

90 第 Ⅱ 部 分 设 置 原 则 和 实 践 注 意 : 如 果 不 使 用 恢 复 目 录 而 又 希 望 在 自 动 备 份 控 制 文 件 后 能 够 恢 复 控 制 文 件, 就 必 须 知 道 数 据 库 的 数 据 库 ID(DBID) 作 为 RMAN 初 始 化 设 置 和 配 置 的 一 部 分, 我 们 应 当 记 住 要 备 份 数 据 库 的 DBID, 并 在 安 全 的 地 方 保 存 这 个 DBID 可 以 从 V$DATABASE 视 图 的 DBID 列 中 获 得 数 据 库 的 DBID 当 启 动 RMAN 并 连 接 到 目 标 数 据 库 时, 也 会 显 示 数 据 库 的 DBID, 如 同 下 面 的 示 例 所 示 : 6. 配 置 默 认 的 保 留 策 略 [oracle@robertgfreeman ~ ] $ rman target=/ Recovery Manager: Release 11.2.0.1.0 Production on Thu Nov 5 04:040:6 2009 Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. connected to target database: ROB1 (DBID=1854903786) 那 么, 数 据 库 备 份 需 要 保 留 多 长 时 间 呢?RMAN 允 许 用 户 使 用 configure retention policy 命 令 配 置 备 份 保 留 策 略 如 果 在 使 用 FRA 的 情 况 下 配 置 了 保 留 策 略, 则 当 备 份 过 时 后,ORACLE RMAN 将 会 自 动 删 除 这 些 过 时 的 备 份 若 未 使 用 FRA, 配 置 的 保 留 策 略 不 会 自 动 删 除 备 份 在 执 行 report obsolete 命 令 时, 将 会 列 出 到 期 的 备 份 集 ( 第 15 章 会 详 细 介 绍 RMAN 的 report obsolete 命 令 ) Oracle 包 含 三 类 保 留 策 略 : 基 于 窗 口 的 恢 复, 基 于 冗 余 的 恢 复, 无 保 留 策 略 的 恢 复 下 面 将 详 细 分 析 每 一 种 恢 复 基 于 窗 口 保 留 策 略 的 恢 复 基 于 窗 口 保 留 策 略 的 恢 复 可 确 保 数 据 库 能 够 恢 复 到 特 定 的 时 间 点 例 如, 如 果 希 望 将 数 据 库 恢 复 到 三 天 前 某 个 确 定 的 时 间 点 ( 当 然, 该 数 据 库 运 行 在 ARCHIVELOG 模 式 下 ), 就 应 该 将 基 于 窗 口 的 保 留 策 略 恢 复 设 置 为 3 天 配 置 该 保 留 策 略 的 命 令 如 下 : RMAN> configure retention policy to recovery window of 3 days; Old RMAN configuration parameters: CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS; new RMAN configuration parameters: CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 3 DAYS; new RMAN configuration parameters are successfully stored 需 要 注 意 的 是 即 使 采 用 基 于 窗 口 的 保 留 策 略, 实 际 的 备 份 存 在 的 时 间 将 比 定 义 的 保 存 时 间 长 例 如, 假 定 恢 复 窗 口 是 3 天, 系 统 中 最 近 的 完 整 备 份 是 5 天 前, 该 备 份 将 会 始 终 有 效, 直 到 不 再 需 要 该 备 份 还 原 数 据 库 为 止 即 使 该 备 份 是 当 天 的 备 份,5 天 后, 这 个 5 天 前 的 备 份 仍 然 有 效, 因 为 该 备 份 是 将 数 据 库 系 统 恢 复 到 3 天 前 的 状 态 的 唯 一 可 靠 的 备 份 图 3-2 给 出 了 图 示 化 的 说 明

第 3 章 RMAN 设 置 和 配 置 91 需 要 这 些 备 份 来 还 原 第 1-4 天 的 状 态 需 要 该 备 份 来 还 原 第 5 天 的 状 态 日 期 还 原 窗 口 是 3 天 Key B: 完 整 备 份 完 整 备 份 需 要 还 原 到 A: 归 档 日 志 备 份 3 天 前 的 状 态 不 再 需 要 这 些 备 份 仍 然 需 要 这 些 备 份 日 期 还 原 窗 口 是 3 天 Key B: 完 整 备 份 A: 归 档 日 志 备 份 不 再 需 要 第 1~4 天 的 备 份 仍 然 需 要 第 6~8 天 的 备 份 图 3-2 恢 复 窗 口 保 持 的 旧 的 备 份 配 置 完 保 留 策 略 后, 我 们 可 以 查 看 已 生 成 的 已 作 废 的 备 份 : RMAN> report obsolete; RMAN retention policy will be applied to the command RMAN retention policy is set to recovery window of 3 days Report of obsolete backups and copies Type Key Completion Time Filename/Handle -------------------- ------ ------------------ -------------------- Archive Log 12 08-SEP-09 /oracle/app/oracle/flash_recovery_area/rob1/archivelog/2009_09_08/ O1_mf_1_9_5bd8qv45_.arc Backup Set 24 08-SEP-09 Backup Piece 34 08-SEP-09 /oracle/app/oracle/flash_recovery_area/rob1/backupset/2009_09_08/ O1_mf_annn_TAG20090908T202600_5bg4kr90_.bkp Backup Set 25 08-SEP-09 Backup Piece 35 08-SEP-09

92 第 Ⅱ 部 分 设 置 原 则 和 实 践 /oracle/app/oracle/flash_recovery_area/rob1/backupset/2009_09_08/ O1_mf_nnnd0_TAG20090908T202601_5bg4ktk1_.bkp 该 示 例 显 示 基 于 保 留 策 略, 有 两 个 备 份 集 和 两 个 相 关 的 备 份 片 过 期 另 外, 还 有 一 个 归 档 重 做 日 志 也 需 要 删 除 如 果 这 些 备 份 在 定 义 的 FRA 中,Oracle 将 按 照 需 要 删 除 它 们 如 果 没 有 使 用 FRA, 或 者 是 这 些 备 份 在 尚 未 转 换 到 使 用 FRA 时 已 经 建 立, 需 要 使 用 delete obsolete 命 令 删 除 它 们 在 第 15 章 中 有 更 多 关 于 delete obsolete 命 令 的 详 细 介 绍 下 面 提 供 一 个 示 例 : RMAN> delete obsolete; RMAN retention policy will be applied to the command RMAN retention policy is set to recovery window of 3 days using channel ORA_DISK_1 using channel ORA_DISK_2 Deleting the following obsolete backups and copies: Type Key Completion Time Filename/Handle -------------------- ------ ------------------ -------------------- Archive Log 12 08-SEP-09 /oracle/app/oracle/flash_recovery_area/rob1/archivelog/2009_09_08/ o1_mf_1_9_5bd8qv45_.arc Backup Set 24 08-SEP-09 Backup Piece 34 08-SEP-09 /oracle/app/oracle/flash_recovery_area/rob1/backupset/2009_09_08/ o1_mf_annnn_tag20090908t202600_5bg4kr90_.bkp Backup Set 25 08-SEP-09 Backup Piece 35 08-SEP-09 /oracle/app/oracle/flash_recovery_area/rob1/backupset/2009_09_08/ o1_mf_nnnd0_tag20090908t202601_5bg4ktk1_.bkp Do you really want to delete the above objects (enter YES or NO)? yes 需 要 注 意 的 是, 在 前 面 的 示 例 中, 系 统 会 请 求 您 确 认 是 否 删 除 这 些 对 象 如 果 列 出 的 某 个 对 象 不 能 被 删 除, 就 需 要 运 行 crosscheck 命 令 ( 第 14 章 将 讨 论 该 命 令 ) 否 则,Oracle 会 删 除 delete obsolete 命 令 输 出 中 列 出 的 所 有 项 基 于 冗 余 的 保 留 策 略 如 果 很 少 备 份 数 据 库, 就 可 能 需 要 使 用 冗 余 策 略 冗 余 策 略 的 依 据 是 备 份 数, 而 不 是 备 份 生 成 的 天 数 该 策 略 是 默 认 的 保 留 策 略, 在 系 统 中 其 值 为 1. 若 将 该 值 设 置 为 3,Oracle 将 会 保 存 最 近 三 个 备 份, 其 他 备 份 将 被 删 除 示 例 如 下 : RMAN> configure retention policy to redundancy 3; old RMAN configuration parameters: CONFIGURE RETENTION POLICY TO REDUNDANCY 3; new RMAN configuration parameters: CONFIGURE RETENTION POLICY TO REDUNDANCY 3; new RMAN configuration parameters are successfully stored 注 意 该 配 置 命 令 执 行 将 显 示 过 去 的 和 新 的 设 置 结 果

第 3 章 RMAN 设 置 和 配 置 93 无 保 留 策 略 的 恢 复 最 后, 如 果 要 禁 止 保 留 策 略, 可 以 使 用 configure retention policy to none 命 令, 这 样 将 不 应 用 任 何 保 留 策 略 使 用 configure retention policy clear 命 令 可 以 将 保 留 策 略 重 置 为 默 认 值 ( 冗 余 为 1) 注 意 : 如 果 使 用 磁 带 管 理 系 统, 该 系 统 会 具 有 自 己 的 保 留 策 略 如 果 磁 带 管 理 系 统 的 保 留 策 略 与 RMAN 中 定 义 的 备 份 保 留 策 略 冲 突, 则 磁 带 管 理 系 统 的 保 留 策 略 优 先, 同 时 恢 复 备 份 的 能 力 会 大 受 影 响 7. 配 置 默 认 的 加 密 级 别 在 Oracle Database 10g Release 2 和 后 面 的 版 本 中,RMAN 可 以 创 建 加 密 备 份 在 备 份 期 间,Oracle 在 创 建 备 份 集 时 对 其 进 行 加 密 当 还 原 备 份 时, 则 对 其 进 行 解 密 在 本 节 中, 我 们 将 讨 论 可 用 的 加 密 类 型, 然 后 查 看 如 何 配 置 RMAN 以 使 用 加 密 Oracle 提 供 了 3 种 不 同 的 加 密 模 式 : 透 明 模 式 : 透 明 模 式 加 密 不 需 要 DBA 干 涉 为 了 使 用 该 模 式, 必 须 配 置 Oracle 加 密 电 子 皮 夹 (Encryption Wallet) 口 令 模 式 : 口 令 模 式 加 密 需 要 在 创 建 将 要 加 密 的 备 份 或 还 原 ( 在 创 建 时 ) 加 密 的 备 份 时 提 供 口 令 在 RMAN 备 份 脚 本 中 使 用 命 令 set encryption on identified by password only 提 供 口 令 这 是 本 书 中 将 采 用 的 加 密 模 式 双 重 模 式 : 可 以 通 过 口 令 或 Oracle 加 密 电 子 皮 夹 来 还 原 双 重 模 式 的 备 份 因 为 不 需 要 安 装 Oracle 加 密 电 子 皮 夹, 双 重 模 式 简 化 了 备 份 的 异 地 还 原 可 以 使 用 set encryption on identified by password 命 令 ( 注 意 缺 少 only 关 键 字 ) 创 建 双 重 模 式 加 密 备 份 使 用 configure 命 令 可 配 置 各 种 与 RMAN 备 份 加 密 相 关 的 持 久 性 设 置 可 以 使 用 RMAN configure 命 令 来 设 定 以 下 相 关 的 内 容 : 是 否 应 该 加 密 所 有 的 数 据 库 文 件? 是 否 应 该 加 密 特 定 的 表 空 间? 应 该 使 用 哪 种 可 用 的 加 密 算 法 来 加 密 备 份? 如 果 正 在 使 用 基 于 Oracle 加 密 电 子 皮 夹 的 安 全 保 护, 则 只 需 要 设 置 configure 命 令 所 需 的 持 久 性 RMAN 设 置 如 果 希 望 使 用 口 令 模 式 加 密 或 双 重 模 式 加 密, 就 需 要 使 用 configure 命 令 配 置 持 久 性 安 全 默 认 值, 然 后 在 启 动 备 份 时 使 用 set 命 令 设 置 备 份 口 令, 则 在 每 次 RMAN 备 份 或 恢 复 会 话 期 间 必 须 输 入 该 口 令 第 9 章 将 详 细 介 绍 set 命 令 以 及 在 备 份 期 间 它 的 用 法 在 下 面 的 命 令 中, 我 们 为 整 个 数 据 库 配 置 并 启 用 备 份 加 密 注 意, 如 果 没 有 配 置 Oracle 加 密 电 子 皮 夹, 随 后 的 任 何 备 份 都 将 会 失 败, 除 非 使 用 set 命 令 建 立 会 话 的 加 密 口 令 ( 对 此, 我 们 省 略 了 一 些 内 容, 但 提 供 了 使 用 set 命 令 设 置 适 当 上 下 文 的 备 份 口 令 的 示 例 ) -- Configures default encryption. -- Uses transparent mode encryption by default.

94 第 Ⅱ 部 分 设 置 原 则 和 实 践 RMAN> CONFIGURE ENCRYPTION FOR DATABASE ON; -- For this session, we want password mode encryption, -- so we have to set the -- password. This is good only for this session, until we exit RMAN or issue -- another connect command. RMAN> SET ENCRYPTION ON IDENTIFIED BY robert ONLY; -- Way ahead of ourselves, but this backs up the database! RMAN> BACKUP DATABASE PLUS ARCHIVELOG; 如 果 满 足 下 列 情 况, 则 使 用 加 密 备 份 归 档 的 重 做 日 志 备 份 : 在 进 行 归 档 重 做 日 志 的 备 份 时 执 行 set encryption on 命 令 已 经 为 整 个 数 据 库 配 置 了 加 密, 或 者 至 少 为 数 据 库 的 一 个 表 空 间 配 置 了 加 密 也 可 以 通 过 configure 命 令 来 确 定 所 希 望 使 用 的 加 密 算 法 这 些 可 用 的 算 法 可 以 在 V$RMAN_ENCRYPTION_ALGORITHMS 视 图 中 找 到, 如 下 面 的 例 子 所 示 : SQL> select algorithm_name from V$RMAN_ENCRYPTION_ALGORITHMS; ALGORITHM_NAME ------------------------------------------------------------ AES128 AES192 AES256 知 道 可 用 的 加 密 算 法 后, 现 在 就 可 以 配 置 希 望 使 用 的 默 认 加 密 算 法, 如 下 例 所 示 : RMAN> Configure encryption algorithm 'AES128'; using target database control file instead of recovery catalog new RMAN configuration parameters: CONFIGURE ENCRYPTION ALGORITHM 'AES128'; new RMAN configuration parameters are successfully stored 8. 配 置 归 档 日 志 删 除 策 略 可 以 配 置 RMAN 来 管 理 归 档 重 做 日 志 的 删 除 策 略 默 认 情 况 下,Oracle 将 配 置 的 备 份 保 留 策 略 应 用 于 归 档 重 做 日 志 在 Oracle Database 11g 中, 还 可 以 为 归 档 重 做 日 志 另 外 配 置 自 己 的 删 除 策 略 在 此 环 境 下, 配 置 的 策 略 对 FRA 中 以 及 存 储 在 FRA 之 外 的 归 档 重 做 日 志 均 有 效 但 是 只 有 那 些 保 存 在 FRA 中 的 归 档 重 做 日 志 由 Oracle 删 除 如 果 日 志 在 FRA 中,Oracle 将 尽 可 能 保 存 这 些 日 志, 除 非 有 空 间 的 需 求 才 会 删 除 如 果 日 志 不 在 FRA 中, 则 需 要 使 用 delete obsolete 或 delete archivelog 命 令 才 能 将 标 记 为 过 时 的 归 档 重 做 日 志 删 除 下 面 的 示 例 将 使 用 configure 命 令 配 置 归 档 日 志 删 除 策 略, 在 这 种 情 况 下 所 有 备 份 超 过 3 次 的 归 档 重 做 日 志 将 会 被 删 除 RMAN> Configure archivelog deletion policy to backed up 3 times to device type disk; new RMAN configuration parameters: CONFIGURE ARCHIVELOG DELETION POLICY TO BACKED UP 3 TIMES TO DISK; new RMAN configuration parameters are successfully stored

第 3 章 RMAN 设 置 和 配 置 95 在 Oracle Database 11g 以 前 的 版 本 中, 归 档 重 做 日 志 删 除 策 略 仅 对 应 用 到 备 份 数 据 库 的 归 档 重 做 日 志 有 效 在 11g 以 前 的 版 本 中, 如 果 正 在 使 用 FRA 和 备 用 数 据 库, 就 可 以 配 置 RMAN, 在 使 用 configure archivelog deletion policy to applied on standby 命 令 将 归 档 的 重 做 日 志 应 用 于 强 制 的 备 用 数 据 库 后 将 其 标 记 为 可 删 除 在 这 种 情 况 中, 一 旦 已 经 成 功 将 归 档 的 重 做 日 志 应 用 于 强 制 的 备 用 数 据 库 位 置,Oracle 就 可 以 将 其 从 FRA 中 删 除 Oracle Database 11g 以 及 今 后 的 版 本 保 留 了 该 功 能 3.5.4 使 用 共 享 服 务 器 的 情 况 如 果 使 用 Oracle 的 共 享 服 务 器 选 项 ( 在 以 前 的 Oracle 版 本 中 称 为 MTS, 或 多 线 程 服 务 器 ), 就 必 须 配 置 一 个 RMAN 使 用 的 专 用 服 务 器, 这 是 因 为 RMAN 不 能 使 用 共 享 服 务 器 会 话 连 接 到 数 据 库 如 果 使 用 一 个 共 享 服 务 器 体 系 结 构, 则 可 以 参 考 Oracle Database Backup and Recovery Advanced Users Guide(11g Release 2) 第 5 章, 得 到 有 关 使 用 Oracle Database 11g 共 享 服 务 器 选 项 配 置 RMAN 的 更 多 信 息 最 后, 必 须 使 用 SERVER=dedicated 语 法 来 为 服 务 器 配 置 Oracle Net 中 的 专 用 连 接, 如 下 面 的 示 例 所 示 ( 注 意,Oracle Net 配 置 会 经 常 改 动, 因 此 所 需 要 的 内 容 可 能 会 有 所 不 同 ): Rob1_ded = (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=robpc)(port1521)) (CONNECT_DATA=(SERVICE_NAME=rob1_ded)(SERVER=dedicated))) 3.6 RMAN 配 置 任 务 总 结 本 章 介 绍 了 大 量 信 息, 现 在 就 概 括 一 下 在 使 用 RMAN 执 行 备 份 的 数 据 库 上 应 当 执 行 的 任 务 下 面 是 这 些 任 务 的 总 结 : (1) 确 定 是 在 ARCHIVELOG 模 式 中 还 是 在 NOARCHIVELOG 模 式 中 运 行 数 据 库, 并 相 应 地 配 置 数 据 库 大 多 数 情 况 下, 推 荐 ARCHIVELOG 模 式, 因 为 它 可 以 提 供 大 量 的 恢 复 选 项 (2) 建 议 配 置 并 应 用 FRA (3) 设 置 RMAN 使 用 的 一 个 独 立 的 数 据 库 用 户 账 户 ( 不 是 sys) (4) 在 数 据 库 参 数 文 件 中, 将 CONTROL_FILE_RECORD_KEEP_TIME 参 数 设 置 为 某 个 天 数, 这 个 数 应 大 于 等 于 要 保 留 数 据 库 备 份 的 天 数 保 存 是 能 够 从 RMAN 得 到 的 区 域 应 该 确 保 RMAN 的 保 留 策 略,CONTROL_FILE_RECORD_KEEP_TIME 参 数, 以 及 所 有 由 磁 带 管 理 员 ( 若 采 用 磁 带 备 份 策 略 ) 建 立 的 保 留 策 略 不 产 生 冲 突 (5) 如 果 使 用 共 享 服 务 器, 就 要 为 RMAN 设 置 一 个 连 接 数 据 库 的 专 用 服 务 器 地 址 (6) 使 用 RMAN 连 接 到 目 标 数 据 库, 确 保 数 据 库 的 设 置 正 确 ( 如 果 没 有 正 确 设 置 RMAN 账 户, 就 会 显 示 错 误 消 息 )

96 第 Ⅱ 部 分 设 置 原 则 和 实 践 (7) 使 用 configure 命 令 建 立 默 认 的 RMAN 值, 特 别 要 考 虑 下 面 这 些 配 置 情 况 : 配 置 磁 带 或 磁 盘 备 份 的 默 认 并 行 级 别 设 置 一 个 默 认 值, 这 个 默 认 值 等 于 要 创 建 备 份 的 磁 盘 或 磁 带 驱 动 器 数 如 果 要 使 用 多 个 磁 盘 驱 动 器 来 备 份 到 SAN, 则 应 考 虑 使 用 并 行 信 道 来 备 份 这 些 磁 盘 设 备 配 置 自 动 的 信 道 和 设 备 类 型 配 置 与 独 立 设 备 数 目 相 同 的 信 道 配 置 自 动 化 控 制 文 件 / 数 据 库 参 数 文 件 的 自 动 备 份 操 作 如 果 拥 有 ASO(Advanced Security Option, 使 用 加 密 的 许 可 选 项 ), 则 配 置 自 动 数 据 库 备 份 加 密 (8) 有 必 要 则 配 置 保 留 策 略 确 认 这 个 保 留 策 略 与 其 他 保 留 策 略 ( 如 与 磁 带 管 理 系 统 关 联 的 保 留 策 略 ) 同 步 同 样, 如 果 有 需 要 则 为 归 档 重 做 日 志 配 置 保 留 策 略 (9) 配 置 RMAN, 使 其 进 行 控 制 文 件 和 SPFILE 的 自 动 备 份 (10) 使 用 RMAN 执 行 产 品 数 据 库 备 份 操 作 时, 使 用 后 面 章 节 介 绍 的 备 份 和 恢 复 方 法 来 测 试 RMAN 配 置 3.7 其 他 备 份 和 恢 复 设 置 与 配 置 问 题 最 后 再 介 绍 一 些 其 他 的 数 据 库 备 份 和 恢 复 问 题 在 整 个 备 份 和 恢 复 策 略 计 划 中, 我 们 需 要 考 虑 到 RMAN 不 会 备 份 的 一 些 文 件, 它 们 包 括 基 本 的 Oracle RDBMS 软 件 和 参 数 文 件 ( 如 tnsnames.ora names.ora sqlnet.ora 等 文 件 ) 必 须 在 整 个 备 份 与 恢 复 计 划 中 考 虑 到 这 些 文 件 的 备 份 与 恢 复 还 需 要 考 虑 针 对 RMAN 备 份 和 非 RMAN 备 份 的 灾 难 计 划 如 何 确 保 这 些 备 份 不 受 到 洪 水 火 灾 或 地 震 的 威 胁? 最 好 先 做 好 准 备, 以 应 付 突 如 其 来 的 灾 难 3.8 小 结 本 章 介 绍 了 大 量 的 基 础 知 识, 可 以 看 到 在 开 始 使 用 RMAN 前, 必 须 先 做 一 些 前 期 的 准 备 工 作 首 先, 介 绍 了 设 置 数 据 库 为 ARCHIVELOG 模 式 的 方 法 接 下 来, 介 绍 了 RMAN 命 令 行, 并 说 明 了 如 何 配 置 数 据 库, 包 括 设 置 口 令 文 件 和 配 置 用 户 账 户, 以 供 RMAN 使 用 还 介 绍 了 配 置 RMAN 默 认 设 置, 并 强 烈 建 议 充 分 利 用 RMAN 中 的 这 一 功 能 本 章 还 概 述 了 RMAN 配 置 任 务, 讨 论 了 其 他 备 份 与 恢 复 问 题