oracle database 10g 数据库管理-课堂练习 iice%a2%cb%bc%cd%f8%c2%e7ocp_dbaii... ·...

418
Oracle Database 10g数据库管理 - 课堂练习 II 学生指南第 2 D17092CN31 版本 3.1 2009 8 D61385 厦门微思ORACLE授权培训中心 http://www.xmws.cn

Upload: others

Post on 18-Mar-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II

学生指南第 2 册

D17092CN31

版本 3.1

2009 年 8 月

D61385厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 2: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

版权所有 © 2009,Oracle。保留所有权利。

免责声明

本文档包含专有权信息,并受版权法和其它知识产权法的保护。您可以复制和打印本文档,但只能在 Oracle 培训课程中使用。不得以任何方式修改或变更本文档。除了在

依照版权法中制定的“合理使用”范围内使用本文档外,在未经 Oracle 明确授权的

情况下,您不得以全部或部分的形式使用、共享、下载、上载、复制、打印、显示、

展示、再版、发布、许可、张贴、传播或散布本文档。

本文档中包含的信息如有更改,恕不另行通知。如果您在本文档中发现任何问题,请书面通知:Oracle University, 500 Oracle Parkway, Redwood Shores, California 94065 USA。Oracle 不保证本文档中没有错误。

有限权利声明

如果将本文档交付给美国政府或代表美国政府使用本文档的任何人,则适用以下通知中的规定:

U.S. GOVERNMENT RIGHTSThe U.S. Government’s rights to use, modify, reproduce, release, perform, display, or disclose these training materials are restricted by the terms of the applicable Oracle license agreement and/or the applicable U.S. Government contract.

商标声明

Oracle 是 Oracle 公司和(或)其分公司的注册商标。其它名称可能是其各自拥有者的

商标。

作者

Tom BestMaria Billings

技术撰稿人和审稿人

Herbert BradburyHoward BradleyHarald van BreederodeM.J. BryksaDonna CookseyJoe FongAndy FortunakGerlinde FrenzenJoel GoodmanBert van GorkomSushma JagannathChristine JealDonna KeeslingPierre LabrousseJerry LeeStefan LindbladWendy LoYi LuClaudia O'CallaghanAndreas ReinhardtIra SingerJames SpillerJanet SternJean-Francois Verrier

编辑

Aju KumarNita PavitranArijit Ghosh

制图员

Steve Elwood

出版商

Joseph FernandezSujatha Nagendra

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 3: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

iii

目录 前言 1 简介

课程目标 1-2 建议计划 1-4 DBAI 课程中介绍的内容 1-5 课程示例:HR 方案 1-6 Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述 1-8 Oracle 内存结构 1-9 Oracle 进程 1-11 概述 Oracle 实例管理 1-12 物理数据库结构 1-14 Oracle Managed Files (OMF) 1-16 逻辑和物理数据库结构 1-17 数据库体系结构:结构组件汇总 1-19 小结 1-20

2 配置 Oracle Recovery Manager

课程目标 2-2 备份和恢复:概述 2-3 Oracle Recovery Manager 的功能 2-4 Oracle Recovery Manager 组件 2-6 配置 RMAN 的步骤 2-8 RMAN 资料档案库数据存储:选项比较 2-9 备份目标 2-11 介质管理 2-12 将快速恢复区与 RMAN 配合使用 2-14 使用 EM 监视快速恢复区 2-16 快速恢复区的空间使用 2-17 V$FLASH_RECOVERY_AREA_USAGE 2-18 备份快速恢复区 2-20

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 4: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

iv

使用快速恢复区的优点 2-21 设置影响 RMAN 的参数 2-22 RMAN 使用注意事项 2-24 RMAN 的连接类型 2-25 启动 RMAN 2-26 其它 RMAN 命令行参数 2-27 配置 RMAN 的永久性设置 2-28 使用 EM 配置 RMAN 设置 2-29 控制文件自动备份 2-30 保留策略 2-32 管理永久性设置 2-34 通道分配 2-35 自动和手动通道分配 2-36 通道控制选项 2-37 小结 2-39 练习概览:配置 RMAN 2-40

3 使用 Recovery Manager

课程目标 3-2 发出 Oracle Recovery Manager 命令 3-3 RMAN 命令的类型 3-5 作业命令:示例 3-6 RMAN 命令:概览 3-7 BACKUP 命令 3-9 备份约束条件 3-10 并行备份集 3-11 压缩备份 3-13 映像副本 3-14 备份和映像副本的标记 3-16 BACKUP 命令选项 3-17 备份归档重做日志 3-19 数据库整体备份 3-21 RMAN 备份类型 3-23 差异与累积 3-25 块更改跟踪 3-26 启用块更改跟踪 3-27

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 5: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

v

增量更新备份 3-28 LIST 命令 3-29 REPORT 命令 3-30 REPORT NEED BACKUP 命令 3-31 REPORT NEED BACKUP:示例 3-32 REPORT OBSOLETE 和 DELETE OBSOLETE 3-33 使用 EM 管理备份 3-34 RMAN 动态视图 3-35 监视 RMAN 备份 3-37 小结 3-39 练习概览:备份数据库 3-40

4 恢复不太严重的损失

课程目标 4-2 文件丢失的原因 4-3 关键性与非关键性 4-4 丢失 TEMPFILE 4-5 恢复 TEMPFILE 丢失 4-6 日志组状态:概述 4-7 丢失重做日志组成员 4-8 重新创建重做日志文件 4-9 重新创建索引 4-13 数据库管理员的验证方法 4-15 重新创建口令验证文件 4-16 小结 4-18 练习概览:恢复丢失的 TEMPFILE 和重做日志文件 4-19

5 数据库恢复

课程目标 5-2 恢复方法 5-3 用户管理的恢复:RECOVER 命令 5-4 RMAN 恢复:RESTORE 和 RECOVER 命令 5-5 使用 Oracle Enterprise Manager 进行恢复 5-6 完全恢复与不完全恢复 5-7 完全恢复过程 5-8 不完全恢复过程 5-9

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 6: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

vi

需要不完全恢复的情况 5-11 不完全恢复的类型 5-12 执行用户管理的不完全恢复 5-14 用户管理的基于时间的恢复:示例 5-16 用户管理的基于取消的恢复:示例 5-18 使用 RMAN 执行不完全恢复 5-20 使用 RMAN 的基于时间的恢复:示例 5-21 使用 RMAN 的日志序列恢复:示例 5-23 使用 Oracle Enterprise Manager 的不完全恢复 5-24 不完全备份和预警日志 5-25 还原点 5-26 不完全恢复: 佳方案 5-27 恢复控制文件自动备份 5-29 创建新的控制文件 5-31 恢复只读表空间 5-33 只读表空间恢复问题 5-35 小结 5-37 练习概览:执行不完全恢复 5-38

6 闪回 课程目标 6-2 闪回技术:概述 6-3 闪回删除和回收站 6-4 回收站 6-5 从回收站还原表 6-7 回收站:自动回收空间 6-8 回收站:手动回收空间 6-10 不使用回收站 6-11 查询回收站 6-12 查询已删除的表中的数据 6-13 闪回数据库:概述 6-14 闪回数据库体系结构 6-15 配置闪回数据库 6-16 使用 EM 配置闪回数据库 6-17 闪回数据库:示例 6-19 使用 EM 执行闪回数据库 6-20

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 7: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

vii

闪回数据库注意事项 6-23 监视闪回数据库 6-25 使用 EM 监视闪回数据库 6-27 可靠还原点 6-28 小结 6-29 练习概览:执行闪回数据库 6-30

7 处理数据库损坏

课程目标 7-2 什么是块损坏 7-3 块损坏故障现象:ORA-01578 7-4 如何处理损坏 7-5 与损坏相关的功能 7-7 DBVERIFY 实用程序 7-8 解释 DBVERIFY 输出 7-9 ANALYZE 命令 7-11 实时验证块完整性:DB_BLOCK_CHECKING 7-12 实时验证块完整性:DB_BLOCK_CHECKSUM 7-13 使用 EXP 检测损坏 7-14 使用闪回检查逻辑损坏 7-15 DBMS_REPAIR 程序包 7-16 使用 DBMS_REPAIR 7-17 块介质恢复 (BMR) 7-21 BLOCKRECOVER 命令 7-22 使用 BLOCKRECOVER 的示例 7-23 RMAN BMR 接口 7-25 可以采用的替代操作 7-26 小结 7-27 练习概览:执行块介质恢复 7-28

8 监视和管理内存

课程目标 8-2 内存管理:概览 8-3 Oracle 内存结构 8-4 缓冲区高速缓存 8-6 使用多个缓冲区池 8-8

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 8: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

viii

共享池 8-10 大型池 8-11 Java 池 8-12 重做日志缓冲区 8-13 自动管理共享内存:概览 8-14 自动管理共享内存的好处 8-15 ASMM 的工作原理 8-16 使用 Database Control 配置 ASMM 8-17 手动配置 ASMM 8-18 自动优化的 SGA 参数的行为 8-21 手动优化的 SGA 参数的行为 8-22 使用 V$PARAMETER 视图 8-23 修改 SGA_TARGET 参数 8-24 禁用 ASMM 8-25 手动调整动态 SGA 参数的大小 8-26 程序全局区 (PGA) 8-27 自动 PGA 内存管理 8-29 PGA 管理资源 8-30 使用内存指导调整 SGA 的大小 8-31 使用内存指导调整 PGA 的大小 8-32 有效使用内存:准则 8-33 库高速缓存的内存优化准则 8-35 小结 8-37 练习概览:使用 ASMM 纠正内存分配问题 8-38

9 自动性能管理 课程目标 9-2 优化活动 9-3 性能规划 9-4 实例优化 9-6 性能优化方法 9-7 收集统计信息 9-8 Oracle 等待事件 9-10 系统统计信息 9-11 显示与会话有关的统计信息 9-13 显示与服务有关的统计信息 9-14

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 9: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

ix

故障排除和优化视图 9-15 字典视图 9-16 诊断挂起或速度异常慢的数据库 9-17 使用内存访问模式 9-18 使用挂起分析页 9-19 自动工作量资料档案库 9-21 AWR 快照基线 9-23 指导框架:概览 9-24 Database Control 和指导 9-26 典型的指导优化会话 9-27 手动调用 ADDM 9-28 使用 SQL 优化指导:概述 9-29 SQL 访问指导:概览 9-30 典型的 SQL 访问指导会话 9-31 工作量来源 9-32 建议选项 9-33 复查建议 9-36 异步 COMMIT 9-37 使用异步 COMMIT 9-38 小结 9-39 练习概览:使用 ADDM 诊断性能问题 9-40

10 管理方案对象

课程目标 10-2 表类型 10-3 什么是分区,为什么使用分区 10-4 分区 10-5 创建分区 10-6 分区方法 10-7 分区维护 10-8 按索引组织的表 10-9 按索引组织的表和堆表 10-10 创建按索引组织的表 10-12 簇 10-13 簇类型 10-14 簇的应用场合 10-16

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 10: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

x

已排序的散列簇:概览 10-17 已排序的散列簇:示例 10-18 已排序的散列簇:基本体系结构 10-19 方案管理任务 10-20 估计资源使用量 10-21 分析增长趋势 10-22 管理优化程序统计信息 10-23 联机重组方案对象 10-24 重组对象:效果报告 10-26 重组对象:概述 10-27 手动联机重组的基本步骤 10-28 小结 10-29 练习概览:管理方案对象 10-30

11 管理存储

课程目标 11-2 空间管理:概览 11-3 空闲空间管理 11-4 段的类型 11-5 分配区 11-6 块空间管理 11-7 行链接和移植 11-8 预先表空间监视 11-9 阈值和解决空间问题 11-10 监视表空间的空间使用量 11-11 收缩段 11-12 收缩操作的结果 11-13 使用 ASSM 回收空间 11-14 段指导:概览 11-15 段指导 11-16 实施建议 11-18 数据库控制和段收缩 11-19 使用 SQL 收缩段 11-20 管理可恢复的空间分配 11-21 使用可恢复的空间分配 11-22 恢复挂起的语句 11-24

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 11: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

xi

移动表空间 11-26 概念: 低兼容级别 11-27 可移动表空间过程 11-28 确定平台的 Endian 格式 11-29 移动数据库 11-30 数据库移动过程:源系统转换 11-31 数据库移动过程:目标系统转换 11-32 数据库移动:注意事项 11-33 小结 11-34 练习概览:管理存储 11-35

12 自动存储管理

课程目标 12-2 自动存储管理:概述 12-3 ASM 常规体系结构 12-5 ASM 实例任务 12-7 创建 ASM 实例 12-8 ASM 实例初始化参数 12-9 数据库实例参数更改 12-10 启动 ASM 实例 12-11 访问 ASM 实例 12-12 ASM 主页 12-14 ASM 性能页 12-15 ASM 配置页 12-16 关闭 ASM 实例 12-17 DBCA 和存储选项 12-19 ASM 存储:概念 12-20 ASM 磁盘组 12-21 故障组 12-22 磁盘组镜像 12-23 磁盘组动态重新平衡 12-24 管理磁盘组 12-25 ASM 管理页 12-26 “Create Disk Group(创建磁盘组)”页 12-27 创建和删除磁盘组 12-28 将磁盘添加至磁盘组 12-29

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 12: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

xii

其它 ALTER 命令 12-30 ASM 文件 12-32 ASMCMD 实用程序 12-33 将数据库移植到 ASM 存储区 12-34 小结 12-35 练习概览:使用自动存储管理 12-36

13 管理资源

课程目标 13-2 数据库资源管理器:概览 13-3 数据库资源管理器概念 13-4 使用资源管理器的原因 13-5 访问资源计划 13-7 示例:SYSTEM_PLAN 13-8 创建新的资源计划 13-9 创建使用者组 13-10 将用户分配至使用者组 13-11 指定资源计划指令 13-12 资源计划的资源分配方法 13-13 EMPHASIS 和 RATIO 的比较 13-14 活动会话池机制 13-16 设置活动会话池 13-17

大估计执行时间 13-18 使用者组切换 13-19 调用结束时重新切换至初始使用者组 13-20 设置空闲超时 13-22 资源使用者组映射 13-23 激活实例的资源计划 13-25 数据库资源管理器信息 13-26 监视资源管理器 13-27 小结 13-30 练习概览:使用资源管理器 13-31

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 13: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

xiii

14 使用调度程序自动执行任务 课程目标 14-2 简化管理任务 14-3 一个简单作业 14-4 主要组件和步骤 14-5 1. 创建程序 14-6 2. 创建并使用计划 14-7 3. 创建并运行作业 14-8 4. 监视作业 14-9 使用基于时间的或基于事件的计划 14-10 创建基于时间的作业 14-11 创建基于事件的调度 14-13 用 Enterprise Manager 创建基于事件的计划 14-14 创建基于事件的作业 14-15 基于事件的调度 14-16 创建复杂调度 14-18 创建作业链 14-19 链的示例 14-21 1. 创建链对象 14-22 2. 定义链步骤 14-23 3. 定义链规则 14-24 4. 启动链 14-25 监视作业链 14-26 高级调度程序概念 14-27 创建作业类 14-28 创建窗口 14-29 区分窗口内作业的优先级 14-30 小结 14-31 练习概览:使用调度程序自动执行任务 14-32

15 数据库安全性

课程目标 15-2 Oracle 透明数据加密 (TDE):概览 15-3 TDE 过程 15-5 实施透明数据加密 15-6 现有表和 TDE 15-9

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 14: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

xiv

透明数据加密:注意事项 15-10 Wallet 对用户名和口令的支持 15-11 数据泵和透明数据加密 15-12 RMAN 加密备份:概览 15-13 透明模式设置 15-14 口令模式设置 15-15 双重模式设置 15-16 RMAN 加密的备份:注意事项 15-17 数据私密性的需要 15-18 术语定义和用法 15-19 虚拟专用数据库:概览 15-20 虚拟专用数据库:功能 15-21 列级 VPD:示例 15-22 创建列级策略 15-23 小结 15-24 练习概览:使用 Oracle 数据库安全性 15-25

16 使用全球化支持

课程目标 16-2 每个 DBA 必备的知识 16-3 什么是字符集 16-4 了解 Unicode 16-6 如何使用字符集 16-8 要避免的问题 16-9 其它问题示例 16-10 选择字符集 16-11 数据库字符集和国家字符集 16-12 获取字符集信息 16-13 指定基于语言的行为 16-14 为会话指定基于语言的行为 16-15 基于语言和基于地区的参数 16-16 指定基于语言的行为 16-18 语言搜索和排序 16-19 使用语言搜索和排序 16-21 不区分大小写和重音的搜索和排序 16-23 SQL 和函数支持的设置 16-24

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 15: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

xv

语言索引支持 16-25 自定义语言搜索和排序 16-26 CLOB 和 NCLOB 之间的隐式转换 16-27 使用 Oracle 实用程序进行 NLS 数据转换 16-28 使用数据泵进行 NLS 数据转换 16-30 全球化支持功能 16-31 小结 16-32 练习概览:使用全球化支持功能 16-33

17 课堂练习

课程目标 17-2 课堂练习方法 17-3 业务要求 17-5 数据库配置 17-6 解决数据库问题的方法 17-7 小结 17-9 练习概览:课堂练习设置 17-10

附录 A:练习

附录 B:练习解答

附录 C:基本的 Linux 和 vi 命令

附录 D:缩写词和术语 附录 E:Oracle 共享服务器

课程目标 E-2 建立连接 E-3 专用服务器进程 E-4 用户会话 E-5 用户会话:专用服务器 E-6 用户会话:共享服务器 E-7 处理请求 E-8 SGA 和 PGA E-9 UGA 和 Oracle 共享服务器 E-10 配置 Oracle 共享服务器 E-11

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 16: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

xvi

DISPATCHERS E-12 SHARED_SERVERS E-14 MAX_SHARED_SERVERS E-15 CIRCUITS E-16 SHARED_SERVER_SESSIONS E-17 相关参数 E-18 验证共享服务器设置 E-19 数据字典视图 E-21 选择连接类型 E-22 何时不使用共享服务器 E-23 小结 E-24

附录 F:Oracle Secure Backup

课程目标 F-2 把 Oracle 积累的数据保护到磁带 F-3 客户优势:完整的 Oracle 解决方案 F-4 用于集中磁带备份管理的 Oracle Secure Backup F-5 Oracle Secure Backup 管理域 F-6 Oracle Secure Backup:备份管理概览 F-7 Oracle Secure Backup 目录 F-8 Oracle Secure Backup 用户 F-9 预定义的分类 F-11 Oracle Secure Backup 界面选项 F-12 管理待保护的数据 F-13 Oracle Secure Backup 介质概念 F-14 卷集的重复利用 F-15 自动设备管理 F-17 库管理操作 F-18 Oracle Secure Backup:安装 F-19 安装 Oracle Secure Backup 软件 F-20 管理服务器的安装:示例 F-21 在 EM 中定义管理服务器 F-22 “Oracle Secure Backup Device and Media(Oracle Secure Backup 设备和介质)”页 F-23 添加设备 F-24 通过使用 EM 管理设备 F-25 RMAN 和 Oracle Secure Backup F-26

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 17: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

xvii

从 RMAN 访问 Oracle Secure Backup F-27 用户预授权 F-28 数据库备份存储选择器 F-29 RMAN 和 Oracle Secure Backup:使用模型 F-30 定义数据库存储选择器 F-31 测试磁带机 F-32 使用 EM Database Control 调度备份 F-33 Oracle 建议的备份策略 F-34 管理磁带备份 F-35 使用磁带备份执行数据库恢复 F-36 使用 Oracle Secure Backup 备份文件系统文件 F-37 Oracle Secure Backup Web 工具 F-38 Oracle Secure Backup 数据集脚本 F-40 数据集脚本:示例 F-41 数据集组织 F-42 使用 Web 界面创建数据集 F-43 文件系统文件:备份概念 F-44 Oracle Secure Backup 作业 F-45 创建按需备份请求 F-47 发送备份请求至调度程序 F-48 创建备份计划 F-49 创建备份触发器 F-50 查看作业属性和副本 F-51 使用 Oracle Secure Backup 还原文件系统文件 F-52 创建基于目录还原的请求 F-53 将基于目录还原的请求发送至调度程序 F-55 列出客户机的所有备份 F-56 小结 F-57

附录 G:其它主题

附录概览 G-2 大文件表空间:概览 G-3 大文件表空间的优点 G-4 大文件表空间:使用模型 G-5 创建大文件表空间 G-6 SQL 语句子句 G-7

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 18: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

xviii

BFT 和 SQL 语句:示例 G-8 支持 VLDB 的数据字典增加 G-9 扩展的 ROWID 格式和 BFT G-10 VLDB 支持:DBMS_ROWID 程序包 G-11 临时表空间组 (TTG):概览 G-12 临时表空间组:优点 G-13 创建和维护临时表空间组 G-14 临时表空间组:SQL 示例 G-15 小结 G-17

附录 H:下一步:继续培训

您想从本课堂学到什么 H-2 继续培训资源 H-3 Oracle University H-4 继续培训 H-5 Oracle University 知识中心 H-6 Oracle 技术网络 H-7 Oracle 技术培训 H-8 Oracle 示例 H-9 Oracle 杂志 H-10 Oracle 应用产品社区 H-11 技术支持:Oracle MetaLink H-12 谢谢 H-13

索引

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 19: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

版权所有 © 2009,Oracle。保留所有权利。

数据库安全性

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 20: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 15-2

版权所有 © 2009,Oracle。保留所有权利。

课程目标

学完本课后,应能完成下列工作:

• 实施透明数据加密 (TDE) • 对加密列使用 TDE • 描述数据泵 (DP) 加密

• 确定 Recovery Manager (RMAN) 加密备份的组件

• 定义虚拟专用数据库 (VPD) 的基本概念

• 应用列级 VPD 策略

TDEDPRMANVPD

其它资源

Oracle Database 10g 的 Oracle by Example (OBE):http://www.oracle.com/technology/obe/admin/db10gr2_manage.html • “使用透明数据加密”

• “使用虚拟专用数据库限制数据访问”

文档:

• 《Oracle 数据安全性指南》

• 《Oracle 数据库高级安全管理员指南》厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 21: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 15-3

版权所有 © 2009,Oracle。保留所有权利。

Oracle 透明数据加密 (TDE):概览

• 安全信息的需要

• 敏感信息的自动加密:

– 内嵌于 Oracle 数据库中

– 无需更改应用程序逻辑

– 加密数据和索引值

• 使用加密密钥:

– 整个数据库的主密钥

– 存储在 Oracle Wallet 中

加密/解密

列和索引数据 Wallet

Oracle 透明数据加密 (TDE):概览

安全信息的需要

Oracle Database 10g Release 2 的透明数据库加密简化了对敏感个人信息(如信用卡号和

社会保险编号等)的加密操作。透明数据加密无需在现有应用程序中嵌入加密例行程序,

因而大大降低了加密的成本和复杂程度。只需几条简单的命令即可加密敏感应用程序数据。

敏感信息的自动加密

大多数加密解决方案需要在应用程序代码中专门调用加密函数。这通常需要允分了解应用

程序并需要具备编写和维护软件的能力,因此,成本高昂。对于大多数组织来说,通常都

没有时间或具备专业知识来修改现有应用程序以调用加密例行程序。Oracle 透明数据加密

通过将加密深入嵌入到 Oracle 数据库中,解决了这一加密问题。

通过 SQL 执行的应用程序逻辑仍可正常使用而无需修改。也就是说,应用程序可以使用

相同的语法向应用程序表中插入数据,而 Oracle 数据库在向磁盘写入信息之前会自动加

密数据。随后的 select 操作会以透明方式解密数据,因此应用程序仍可以正常工作。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 22: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 15-4

Oracle 透明数据加密 (TDE):概览(续)

由于现有应用程序一般希望查看未加密的应用程序数据,因此此功能十分重要。显示加密

数据轻者可能会使应用程序用户糊涂,重者甚至有可能会破坏现有应用程序。

由于索引数据是未加密的,因此加密通常会使现有应用程序索引产生问题。Oracle 透明数

据加密会加密与给定应用程序表关联的索引值。这意味着对于在应用程序中执行的等式搜

索,几乎看不到性能有任何降低。

使用加密密钥

Oracle 透明数据加密提供了实施加密所需的密钥管理基础结构。加密的原理如下:将明文

数据及密码(称为密钥)传递给加密程序,加密程序使用提供的密钥加密明文数据,然后

返回加密数据。过去一直是由应用程序来创建和维护密码或密钥的。而 Oracle 透明数据

加密通过自动为整个数据库生成主密钥,解决了这一问题。启动 Oracle 数据库后,管理

员必须通过口令(不同于系统口令或 DBA 口令)打开一个名为 Oracle Wallet 的对象。该

Wallet 使用证书颁发机构颁发的证书。然后,管理员初始化数据库主密钥。主密钥是自动

生成的。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 23: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 15-5

版权所有 © 2009,Oracle。保留所有权利。

TDE 过程

外部安全模块

Wallet名称 薪金 信用卡 地址

JFV 10000 A0023 Rognes20000 B152410000 C256830000 D148320000 E073240000 F3456

明文数据 加密数据

名称 薪金 信用卡 地址

JFV É&à{ +”~é[ Rognes])°=# §!?&}&(è`$ }{|\ç{@”#|} #{[|è`µ£*°{ }|_@}~{([ç^ “&²#è

ALTER TABLE

主密钥

SELECT|INSERT|UPDATE|CREATE TABLE

列密钥

TDE 过程

虽然授权和验证安全机制可有效地保护数据库中的数据,但这两种机制并不能禁止对存储

数据的操作系统文件的访问。将数据库列中的敏感数据放置在、存储在操作系统文件中或

从操作系统文件检索这些数据时,透明数据加密允许对这些数据加密。

TDE 使用外部安全模块 (ESM) 执行以下操作:生成加密密钥、提供加密和解密函数及在

数据库内外安全地存储加密密钥。

如果表包含加密列,则使用单一列密钥,而不必考虑该表中加密列的数量。包含加密列的

所有表的密钥均存储在数据库字典表的一个列中。该列是用数据库服务器的主密钥加密的,

因而可防止通过任何未经授权的访问使用这些密钥。主密钥存储在数据库外部的 Wallet 中。该 Wallet 是使用 Oracle Wallet Manager 创建的,而主密钥则是由 ESM 生成的。

本幻灯片中的图形显示了 EMPLOYEES表,其中两列有加密标记。从 ESM 检索

EMPLOYEES表的列密钥,用于加密带有标记的列。通过这种机制,使用简单的 ALTERTABLE命令即可加密或解密数据库中的列。对列进行加密后,可以通过发出常规

SELECT语句检索明文。ESM 以透明方式解密数据。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 24: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 15-6

版权所有 © 2009,Oracle。保留所有权利。

实施透明数据加密

1. 创建 Wallet:自动创建或使用 Oracle Wallet Manager 创建。

ENCRYPTION_WALLET_LOCATION = (SOURCE=(METHOD=FILE)(METHOD_DATA= (DIRECTORY=/opt/oracle/product/10.2.0/db_1/)))

sqlnet.ora条目示例:

实施透明数据加密

只需几个步骤即可实施和配置此功能:

1. 需要创建 Wallet。通过使用 Oracle Wallet Manager 可以完成此操作;如果在

SQLNET.ORA文件中指定了该 Wallet 的目录,则可以让透明数据加密 (TDE) 软件

自动创建它。默认情况下,安装数据库时将创建未加密的 Wallet (cwallet.sso)。但是,建议使用加密的 Wallet (ewallet.p12) 与 TDE 配合。下面是 SQLNET.ORA文件的一个条目的示例:ENCRYPTION_WALLET_LOCATION= (SOURCE=(METHOD=FILE)(METHOD_DATA= (DIRECTORY=/opt/oracle/product/10.2.0/db_1/)))

注:在 sqlnet.ora文件中,可能会发现以下两条类似的条目:WALLET_LOCATION和

ENCRYPTION_WALLET_LOCATION;安全套接字层 (SSL) 验证使用前一个参数,而 TDE 使用后一个参数。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 25: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 15-7

版权所有 © 2009,Oracle。保留所有权利。

实施透明数据加密

2. 在实例中设置主密钥:

3. 在实例(将来)中打开 Wallet:

4. 创建包含加密列的表:CREATE TABLE emp (

first_name VARCHAR2(128),last_name VARCHAR2(128),empID NUMBER ENCRYPT NO SALT,salary NUMBER(6) ENCRYPT USING '3DES168',comm NUMBER(6) ENCRYPT

);

ALTER SYSTEM SET ENCRYPTION KEY IDENTIFIED BY <password>;

ALTER SYSTEM SET ENCRYPTION WALLET OPENIDENTIFIED BY <password>;

实施透明数据加密(续)

2. 需要在 Wallet 中设置主密钥。仅当主密钥被破坏时,才需要重新生成。经常重新

生成主密钥可能会耗尽 Wallet 中的所有可用存储空间。可以使用本幻灯片中显示的

ALTER SYSTEM命令设置或重设主密钥。如果目录中不存在加密的 Wallet,则该命

令会创建一个加密的 Wallet (ewallet.p12),打开该 Wallet,然后为 TDE 创建主

密钥。

如果存在加密的 Wallet,则该命令会打开该 Wallet,然后为 TDE 创建或重新创建主

密钥。

3. 在以后的会话中,无需使用步骤 2 中给定的命令;而是需要打开 Wallet(在关闭数

据库后它也随之关闭),但不需要创建新的主密钥。因此,只需使用步骤 3 中显示

的命令打开 Wallet 即可。厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 26: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 15-8

实施透明数据加密(续)

4. 现在可以创建包含加密列的表。本幻灯片示例创建了一个名为 EMP的表,其中包含

三个加密列。默认情况下,用 salt 对列进行加密。使用 salt 是一种增强加密数据安

全性的方法。Salt 是在加密数据前添加到数据中的一个随机字符串,使攻击者更难以

通过将密文样式与已知的密文样本进行匹配来窃取数据。但是,如果打算为加密列

创建索引,则必须用 NO SALT创建该列。此外,TDE 将使用 192 位长度密钥的高

级加密标准 (AES192) 作为其默认加密算法。如本例所示,可以将默认算法更改为其

它受支持的算法,如三重数据加密标准等。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 27: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 15-9

版权所有 © 2009,Oracle。保留所有权利。

现有表和 TDE

• 添加加密列:

• 加密未加密列:

• 禁用列加密:

• 添加或删除 salt:

• 更改密钥和加密算法:

ALTER TABLE emp ADD (ssn VARCHAR2(11) ENCRYPT);

ALTER TABLE emp MODIFY (first_name ENCRYPT);

ALTER TABLE emp MODIFY (first_name DECRYPT);

ALTER TABLE emp MODIFY (first_name ENCRYPT [NO] SALT);

ALTER TABLE emp REKEY USING '3DES168';

现有表和 TDE • 要向现有表添加加密列,请使用 ALTER TABLE ADD命令,并使用 ENCRYPT子句

指定新列。

• 也可以对表中现有的未加密列进行加密。为此,请使用 ALTER TABLE MODIFY命

令,并使用 ENCRYPT子句指定未加密列。

• 出于兼容或性能方面的考虑,可能需要关闭加密功能。使用带有 DECRYPT子句的

ALTER TABLE MODIFY命令可关闭列加密功能。

• 默认情况下,数据库会先在列的明文上附加一个名为“salt”的随机字符串,然后再

对其进行加密。如果要将列用作索引或外键,则必须指定 NO SALT选项。要在加密

列中添加或删除 salt,请再次使用带有用 ENCRYPT子句指定的 SALT(默认)参数

或 NO SALT参数的 ALTER TABLE MODIFY命令。

• 每个表的列最多只能有一个加密密钥。可以使用原始加密算法或使用由 REKEY选项

指定的其它算法更改此密钥。

注:有关 ALTER TABLE命令及其选项的详细信息,请参阅《Oracle 数据库 SQL 参考》。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 28: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 15-10

版权所有 © 2009,Oracle。保留所有权利。

透明数据加密:注意事项

• 不能加密 SYS 所拥有的表。

• 不支持 LONG 和 LOB 数据类型。

• 支持的加密算法有:

– 3DES168 – AES128 – AES192 – AES256

• 必须使用 NO SALT 加密索引列。

• TDE 使用索引执行等式搜索。

• 必须先解密加密数据,然后再执行表达式求值。

• 最佳方案提示:备份 Wallet。

透明数据加密:注意事项

• 不能加密 SYS所拥有的表中的列。

• 数据加密不支持 LONG和 LOB数据类型。

• 可以创建表的任何用户都可以创建一个包含加密列的表。加密列必须共享相同的加

密密钥和算法。AES192 是默认标准。

• 索引列(如主键或唯一键)必须使用 NO SALT选项。此外,外键列也必须使用 NOSALT选项。

• 如果对相应列进行加密,则索引包含加密数据。由于加密数据会丢失其逻辑结构,

因此将无法执行范围扫描。

• 必须先对加密数据进行解密,然后再对任何查询或 DML(即 select 列表、检查约束

条件表达式、where 或 when 条件)执行表达式求值。

注:良好的安全方案会在重设主密钥前后备份 Wallet。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 29: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 15-11

版权所有 © 2009,Oracle。保留所有权利。

Wallet 对用户名和口令的支持

• Wallet 现在可以持有多个证书:

– 用户名和口令可以存储在 Wallet 中,而不必通过命令行

提供。

• 批处理作业处理:

– 操作系统上列出进程时防止公开用户名和口令

• 使用以下方法设置:

– sqlnet.ora 中的 WALLET_LOCATION

– mkstore 实用程序

connect /@db_connect_string

Wallet 对用户名和口令的支持

现在,可以将用于连接到数据库的口令身份证明存储在客户端 Oracle Wallet 中,它是一

种用于存储验证和签名身份证明的安全软件容器。

使用此 Wallet 可以简化依赖口令身份证明连接到数据库的大型部署。配置此功能后,应

用程序代码、批处理作业和脚本就不再需要嵌入的用户名和口令。由于此类口令不再通过

明文公开,因而降低了风险;并且口令管理策略更容易实施,无需每次用户名或口令更改

时都更改应用程序代码。

将客户机配置为使用安全的外部口令存储后,应用程序可以用以下 CONNECT语句语法连

接到数据库,而不用指定数据库登录身份证明:connect /@db_connect_string。

在这种情况下,数据库身份证明将安全地存储在为实现此目的而创建的 Oracle Wallet 中。

此 Wallet 的自动登录功能将处于启用状态,因此系统无需口令就可以打开该 Wallet。

要配置此功能,需要使用 mkstore命令在客户端上创建 Oracle Wallet。然后,为指定的

连接字符串添加数据库连接的用户名和口令。通过使用 mkstore实用程序也可以完成此

操作。然后,使用 WALLET_LOCATION参数确保 sqlnet.ora文件指向 Wallet 的正确

位置。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 30: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 15-12

版权所有 © 2009,Oracle。保留所有权利。

数据泵和透明数据加密

• 在导出和导入期间,使用您自己

提供的列密钥:

• 对于外部表也是如此:

ENCRYPTION_PASSWORD = <password>

CREATE TABLE emp_ext (first_name, last_name, empID,salary ENCRYPT IDENTIFIED BY "xIcf3T9u" )

ORGANIZATION EXTERNAL( TYPE ORACLE_DATAPUMPDEFAULT DIRECTORY "D_DIR"LOCATION('emp_ext.dat') )

REJECT LIMIT UNLIMITEDas select * from employees;

TDE> DP

RMANVPD

数据泵和透明数据加密

导出包含加密列的表时,有两个因素十分重要:第一个因素是敏感数据在传输期间保持加

密状态,第二个因素是在目标处导入数据后授权用户可以解密这些数据。

由于用于解密的密钥对于表最初所在的服务器来说是本地的,因此可以使用目标密钥在目

标处进行解密。因此,在导出之前,管理员会用一个口令密钥重设表的密钥,然后他或她

将该口令密钥安全地提供给目标管理员。在导入时,接收管理员会指定相同的口令。所导

入的受影响的列将被解密,从而使接收服务器可以立即用本地服务器密钥重新加密这些列。

这样,就可以在其新主目录中以标准授权方式使用这些列了。

此技术也适用于使用 ORACLE_DATAPUMP访问驱动程序的外部表。如果希望加密外部表

中的某些列,可以在定义这些列时指定 ENCRYPT子句。该指定可使用随机生成的密钥来

加密这些列。

但是,如果要移动外部表,则该密钥在新位置将不可用。对于此类表,应指定您自己的口

令来加密这些列。然后,在移动数据后,可以使用相同的口令重新生成密钥,以便可以在

新位置访问加密列的数据。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 31: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 15-13

版权所有 © 2009,Oracle。保留所有权利。

RMAN 加密备份:概览

备份有以下三种加密模式:

• 透明模式:

– 需要 Oracle Wallet – 最适合在同一位置执行的日常备份和还原操作

– 是默认加密模式

• 口令模式:

– 需要提供口令

– 最适合在远程位置还原的备份

• 双重模式:

– 可以使用 Oracle Wallet 或口令

– 最适合在本地和远程还原的备份

TDE DP

> RMAN VPD

RMAN 加密备份:概览

为了提高安全性,可以对 Recovery Manager (RMAN) 备份进行加密。未经授权的人员即便

获取了加密备份,也无法读取这些备份。

RMAN 有以下三种加密模式:

• 透明模式:只要所需的 Oracle 密钥管理基础结构可用,透明加密就可以创建和还原

加密备份,而无需其它干预。透明加密最适合日常备份操作,这些备份的还原操作

在执行备份的数据库中执行。透明加密是 RMAN 加密的默认模式。

• 口令模式:口令加密需要在创建和还原加密备份时提供口令。还原用口令加密的备

份需要创建该备份时使用的同一口令。口令加密对于在远程位置还原的备份非常有

用,但必须在传输过程中保证备份的安全。口令加密不能永久性配置。如果要完全

使用口令加密,则不需要配置 Oracle Wallet。• 双重模式:双重模式加密的备份可以通过透明方式或通过指定口令来还原。双重模

式加密的备份对以下情况非常有用:创建的备份通常需要使用 Wallet 在现场还原,

但有时需要进行无法使用 Wallet 的非现场还原。还原双重模式加密的备份时,可以

使用 Oracle Wallet 或口令进行解密。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 32: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 15-14

版权所有 © 2009,Oracle。保留所有权利。

透明模式设置

1. 创建 Wallet:自动创建或使用 Oracle Wallet Manager 创建。

2. 在实例中打开 Wallet:

3. 在实例中设置主密钥:

4. 将 RMAN 配置为使用透明加密:

5. 备份或恢复命令不会发生更改。

6. 可以暂时覆盖永久配置:

ALTER SYSTEM SET ENCRYPTION WALLET OPEN IDENTIFIED BY <password>;

ALTER SYSTEM SET ENCRYPTION KEY IDENTIFIED BY <password>;

CONFIGURE ENCRYPTION FOR DATABASE ON

SET ENCRYPTION OFF

透明模式设置

如果要修改现有备份环境,以便使用透明模式加密所有 RMAN 备份,请执行以下步骤:

1. 按本课前面的说明设置 Oracle Wallet。2. 使用本幻灯片中显示的 ALTER SYSTEM命令打开该 Wallet。3. 发出以下 RMAN 命令:CONFIGURE ENCRYPTION FOR DATABASE ON

执行完上述步骤后,将对数据库创建的所有 RMAN 备份集进行加密,除非用 SET ENCRYPTION OFF暂时覆盖了 RMAN 会话的永久行为,或用 CONFIGUREENCRYPTION FOR DATABASE OFF命令重新更改了永久设置。创建加密备份时,

BACKUP命令参数不会发生更改。加密是根据用 CONFIGURE ENCRYPTION或 SET ENCRYPTION指定的加密设置执行的。

还原备份集的内容时,RMAN 会自动解密备份集。以透明模式加密的备份无需干预就

可以还原,但前提是 Oracle Wallet 处于打开状态并可用。

注:如果丢失了 Oracle Wallet,则无法还原任何以透明模式加密的备份。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 33: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 15-15

版权所有 © 2009,Oracle。保留所有权利。

口令模式设置

1. 将 RMAN 会话设置为使用口令加密:

2. 备份命令不会发生更改。

3. 将 RMAN 会话设置为解密用口令加密的备份:

4. 恢复命令不会发生更改。

SET ENCRYPTION ON IDENTIFIED BY password ONLY

SET DECRYPTION IDENTIFIED BY password1{, password2,…, passwordn}

口令模式设置

出于安全方面的考虑,不能永久性地修改现有备份环境,以便使用口令模式加密所有

RMAN 备份。通过在 RMAN 脚本中使用 SET ENCRYPTION ON IDENTIFIED BY password ONLY命令,可只在 RMAN 会话内部设置创建用口令加密的备份。只在

RMAN 会话期间才考虑使用此命令。

使用 SET ENCRYPTION命令设置口令后,可以使用常规 BACKUP命令。所有备份集都

将用口令进行加密。

要还原用口令加密的备份,必须使用 SET DECRYPTION IDENTIFIED BY password1 {, password2,…, passwordn}命令输入加密口令。如果还原一组用

不同口令创建的备份,请通过 SET DECRYPTION命令指定所有必需的口令。RMAN 会自动对各备份集使用相应的口令。

注:如果忘记或丢失了加密用口令加密的备份时所使用的口令,则将无法还原备份。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 34: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 15-16

版权所有 © 2009,Oracle。保留所有权利。

双重模式设置

1. 创建 Wallet:自动创建或使用 Oracle Wallet Manager 创建。

2. 在实例中打开 Wallet:

3. 将 RMAN 会话设置为使用双模式加密:

4. 备份命令不会发生更改。

5. 如果需要,请将 RMAN 会话设置为使用口令解密备份:

6. 恢复命令不会发生更改。

SET ENCRYPTION ON IDENTIFIED BY password

SET DECRYPTION IDENTIFIED BY password1 {, password2,…, passwordn}

ALTER SYSTEM SET ENCRYPTION WALLET OPEN IDENTIFIED BY <password>;

双重模式设置

要设置双重模式,必须创建 Wallet,打开它,然后使用本幻灯片中显示的 SET ENCRYPTION命令。完成此操作后,可以从用于设置口令的同一会话开始创建备份。

以后需要对这些类型的备份进行解密时,可以使用该 Wallet(无需其它命令)或在

RMAN 会话中使用 SET DECRYPTION命令后使用相应的口令。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 35: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 15-17

版权所有 © 2009,Oracle。保留所有权利。

RMAN 加密的备份:注意事项

• 不能加密映像副本备份。

• COMPATIBLE 必须至少设置为 10.2.0。

• V$RMAN_ENCRYPTION_ALGORITHMS 包含可能的加密

算法列表。

• 备份加密只适用于 Oracle Database 企业版。

• 每个新的加密备份使用一个新加密密钥。

• 可以通过使用多个通道提高磁盘性能。

• 可以随时更改主密钥,而不会影响以透明方式加密的

备份。

SET ENCRYPTION ALGORITHM 'algorithmname'

CONFIGURE ENCRYPTION ALGORITHM 'algorithmname'

RMAN 加密的备份:注意事项

• 任何备份集形式的 RMAN 备份都可以加密。但映像副本备份不能加密。

• 要使用 RMAN 加密,位于目标数据库中的 COMPATIBLE初始化参数必须至少设置

为 10.2.0。

• V$RMAN_ENCRYPTION_ALGORITHMS视图包含 RMAN 支持的加密算法列表。如果

未指定加密算法,则默认加密算法是 128 位 AES。可以使用本幻灯片中显示的命令

更改算法。

• 备份加密只适用于 Oracle Database 企业版。

• Oracle 数据库对每个加密备份使用一个新的加密密钥。然后,根据所选的加密模式,

用口令或数据库主密钥或同时用两者对备份加密密钥进行加密。各备份加密密钥或

口令从不用明文存储。

• 加密可能会对磁盘备份性能产生负面影响。由于加密备份所占用的 CPU 资源比非加

密备份要多,因此可以通过使用多个 RMAN 通道来提高加密备份的性能。

• 由于 Oracle 密钥管理基础结构对 Wallet 中所有以前的主密钥都进行归档,因此,

更改或重设当前数据库主密钥不会影响还原使用旧的主密钥所执行的加密备份的能

力。可以随时重设数据库主密钥,并且 RMAN 始终可以还原此数据库创建的所有

加密备份。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 36: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 15-18

版权所有 © 2009,Oracle。保留所有权利。

数据私密性的需要

示例:

• 雇员:保护薪金与佣金百分比(在本课的后面部分使用)

• 联机银行业务:保护帐户访问

• Web 商店:提供个人购物篮

• Web 主机:只允许各顾客查看其自己的数据

• 用于 Oracle SalesOnline.com 和Oracle Portal

TDE DP RMAN

> VPD

数据私密性的需要

虚拟专用数据库 (VPD) 提供了除角色和视图功能之外的行级访问控制。对于 Internet 访问,

VPD 可以确保联机银行业务顾客只能查看其自己的帐户。Web 维护公司可以在同一

Oracle 数据库中维护多个公司的数据,但只允许各公司查看其自己的数据。

可以在数据服务器中一次性地构建安全性,而不用在访问数据的每个应用程序中构建。

无论用户以何种方式访问数据,都由数据库实施安全性,因此安全性将更加可靠。在用户

访问即席查询工具或新的报表写进程时,安全性将不再被忽略。VPD 是一种重要的技术,

使组织可以构建基于 Web 的托管应用程序。实际上,许多 Oracle 应用程序本身就使用

VPD 实施数据隔离以便于维护,这些程序包括 Oracle SalesOnline.com 和 Oracle Portal。

通过将一个或多个安全策略与表或视图相关联可以启用 VPD。直接或间接访问附带有安

全策略的表会使数据库查询实施该策略的函数。该策略函数返回一个称为谓词(WHERE子句)的访问条件,数据库会将该条件附加到用户的 SQL 语句,从而动态修改用户的数

据访问权。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 37: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 15-19

版权所有 © 2009,Oracle。保留所有权利。

术语定义和用法

• 细粒度访问控制 (FGAC):使用函数

• 应用程序上下文:保留用户身份并用作应用程序属性和

值的安全数据高速缓存

• 应用程序属性:由详细访问策略使用

术语定义和用法

“详细访问控制 (FGAC)”使您可以使用函数实施安全策略,并将这些安全策略与表、视

图或同义词相关联。

“应用程序上下文”是一种功能,应用程序开发人员使用该功能可以定义、设置和访问应

用程序属性,然后使用这些属性为详细访问控制策略提供谓词值。如果应用程序开发人员

单独使用该功能,可以通过将其用作数据高速缓存来定义、设置和访问应用程序属性。这

种用法省去了每次需要访问应用程序属性时都要查询数据库的重复开销。

“应用程序属性”在应用程序上下文中定义,由详细访问策略使用。厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 38: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 15-20

版权所有 © 2009,Oracle。保留所有权利。

虚拟专用数据库:概览

• 虚拟专用数据库 (VPD) 包括:

– 详细访问控制 (FGAC) – 安全应用程序上下文

• VPD 使用策略向 SQL 语句添加保护敏感数据的条件。

• VPD 提供行级访问控制。

• 应用程序属性在应用程序上下文中定义,由详细访问

策略使用。

虚拟专用数据库:概览

在 Oracle 数据库中,虚拟专用数据库 (VPD) 组合了服务器实施的详细访问控制和安全应

用程序上下文这两种功能。使用该功能可以构建在行级实施安全策略的应用程序。用户

直接或间接访问与 VPD 安全策略关联的表、视图或同义词时,服务器会动态修改用户的

SQL 语句。此修改将根据实施安全策略的函数所返回的 WHERE子句执行。数据库通过使

用可用函数表示或可由函数返回的任意条件动态修改该语句(对用户来说是透明的)。

Web 商店中的购物篮就是行级访问控制的一个示例,您在购物篮中只能查看您的商品。

应用程序上下文是一种功能,开发人员使用该功能可以定义、设置和访问应用程序属性,

然后使用这些属性为详细访问控制策略提供谓词值。

注:详细访问控制和应用程序上下文可以作为独立选项实施。如果这两种功能一起实施,

则构成了 VPD 的基础。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 39: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 15-21

版权所有 © 2009,Oracle。保留所有权利。

虚拟专用数据库:功能

• 列级 VPD 根据所访问的安全列实施行级访问控制。

• 通过定制,可以定义静态和非静态策略。

• 使用共享策略,可以将一个策略与多个对象相关联。

• 策略类型可以为 INDEX。

• 策略谓词文本字符串的大小可以为 32 KB。

虚拟专用数据库:功能

• 仅当某个命令访问或引用与安全相关的列时,列级私密性才实施行级访问控制。如

果未指定任何相关列,则数据库会对访问或引用对象的所有命令应用 VPD 重写。

• 定制为所有类型的策略实施提供了灵活性,可根据客户部署的个体要求实施 VPD。

可以将 VPD 定制为始终用静态策略实施同一谓词,也可以包含用非静态策略动态更

改的 VPD 谓词。

• 使用共享策略可以向多个对象应用单个 VPD 策略。此功能降低了管理成本。

• 现在,可以对用 DDL 语句 CREATE INDEX和 ALTER INDEX执行的索引维护操作

实施安全策略。由于用户需要完全表访问权来创建表索引,所以这十分重要。因此,

对于具有维护索引权限的用户来说,虽然在常规查询下没有完全表访问权,但可以

查看所有行数据。

• DBMS_RLS.ADD_POLICY具有 LONG_PREDICATE参数。它的默认值为 FALSE,从而策略函数返回的谓词长度最多可为 4,000 字节。如果将该值设置为 TRUE,则该

函数最多可返回 32 KB 的谓词文本字符串。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 40: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 15-22

版权所有 © 2009,Oracle。保留所有权利。

列级 VPD:示例

• 并不总是重写语句。

• 考虑使用策略来保护 EMPLOYEES 表的 SALARY 和

COMMISSION_PCT 列。详细访问控制 (FGAC):– 对于此查询,其并不需要:

– 对于以下这些查询,则是强制的:

SQL> SELECT last_name, salary2 FROM employees;

SQL> SELECT last_name FROM employees;

SQL> SELECT * FROM employees;

列级 VPD:示例

在本例中,业务策略及凭此施加的 VPD 策略是经理只能在 EMPLOYEES表中访问其雇员

的敏感信息。

只从 EMPLOYEES表中选择 LAST_NAME列时,Oracle 数据库不实施该 VPD 策略。因此,

所有雇员都可以访问 EMPLOYEES表中的非敏感信息。

但是,如果所发出的查询访问被视为与安全相关的列时,VPD 就会应用策略函数定义的

详细访问控制。

使用列级 VPD 的一个好处就是仅在访问与安全相关的列时才重写语句。因此,组合使用

行级访问控制和安全相关列意味着可以控制低至对所引用元素的访问。

注:有些命令明确引用这些列,而有些命令则隐含引用这些列。根据定义策略函数的方法

不同,这也适用于 DML 语句。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 41: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 15-23

版权所有 © 2009,Oracle。保留所有权利。

创建列级策略

1. 授予权限。

2. 创建函数。

3. 将策略应用于对象。

BEGINdbms_rls.add_policy(object_schema => 'hr',object_name => 'employees',policy_name => 'hr_policy',function_schema =>'hr',policy_function => 'hrsec',statement_types =>'select,insert',sec_relevant_cols=>'salary,commission_pct');

END;/

创建列级策略

要应用列级 VPD 策略,必须执行以下步骤:

1. 向应用该策略的用户授予适当的权限。GRANT EXECUTE ON dbms_rls to admin1;

2. 创建实施该 VPD 策略的函数。该策略可以访问应用程序上下文,也可以比较简单,

如视一天中的时间而定。

3. 使用 DBMS_RLS程序包将该策略应用于表、视图或同义词。在本例中,将 HRSEC函数所实施的策略应用于 EMPLOYEES表。此外,也可以将该策略设置为仅对

SELECT和 INSERT语句应用 VPD 谓词。EMPLOYEES表中的两个与安全相关的列

是 SALARY和 COMMISSION_PCT。厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 42: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 15-24

版权所有 © 2009,Oracle。保留所有权利。

小结

在本课中,您应该已经学会:

• 实施透明数据加密

• 对加密列使用 TDE • 描述数据泵加密

• 确定 RMAN 加密备份的组件

• 定义虚拟专用数据库的基本概念

• 应用列级 VPD 策略

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 43: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 15-25

版权所有 © 2009,Oracle。保留所有权利。

练习概览:使用 Oracle 数据库安全性

本练习包含以下主题:

• 通过创建加密 Wallet 和加密密钥实施 TDE • 对加密列使用 TDE

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 44: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 45: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

版权所有 © 2009,Oracle。保留所有权利。

使用全球化支持

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 46: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 16-2

版权所有 © 2009,Oracle。保留所有权利。

课程目标

学完本课后,应能完成以下工作:

• 确定满足业务需求的正确数据库字符集

• 获取全球化支持配置信息

• 为数据库会话和单个会话定制基于语言的行为

• 为查询指定不同的语言排序

• 在不区分大小写或重音的情况下,检索与搜索字符串

匹配的数据

课程目标

有关详细信息,请参阅《Oracle 数据库全球化支持指南》。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 47: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 16-3

版权所有 © 2009,Oracle。保留所有权利。

每个 DBA 必备的知识

• 什么是字符集?

• 如何使用字符集?

• 要避免的问题

• 选择字符集

• 获取字符集信息

• 指定基于语言的行为

• 使用语言搜索和排序

• 使用数据转换

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 48: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 16-4

版权所有 © 2009,Oracle。保留所有权利。

什么是字符集

Oracle DB 支持多种字符编码方案:

• 单字节字符集

– 7 位– 8 位

• 多字节字符集,包括 Unicode

什么是字符集

处理字符时,计算机系统使用的是数字代码,而不是以图形方式表示的字符。编码字符集

将数字代码映射到计算机或终端可以显示和接收的字符。目前,Oracle DB 大约支持 30 种编码字符集,但支持的语言和地区则多得多(约 100 种)。这也许是因为,Unicode 是一

种通用字符集,囊括现代绝大多数的主要脚本。

不同的字符集支持不同的字符指令表。由于字符集通常基于特定的编写脚本,因此,它们

可以支持多种语言。但是,基于脚本的字符集局限于基于类似脚本的几组语言,从这个意

义上而言,这些字符集是有限的。通用字符集囊括现代绝大多数主要脚本,为多语言支持

提供了更为有用的解决方案。有关 Unicode 标准的信息,请参阅相关的 Web 站点,网址

是 http:www.unicode.org。

Oracle DB 提供了多种编码方案:

• 单字节

• 宽度不同的多字节

• 通用

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 49: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 16-5

什么是字符集(续)

单字节字符集

在单字节字符集中,每个字符占用一个字节。单字节 7 位编码方案 多可以定义

128 (27) 个字符;单字节 8 位编码方案 多可以定义 256 (28) 个字符。

单字节方案示例

7 位字符集:

• 7 位美国信息交换标准代码 (ASCII) (US7ASCII)

8 位字符集:

• 西欧国际标准组织 (ISO) 8859-1 (WE8ISO8859P1) • 8 位西欧 DEC (WE8DEC) • 8 位意大利扩展的二进制编码十进制交换码 (EBCDIC) 码页 (I8EBCDIC1144)

注:只有基于 ASCII 的平台才支持基于 ASCII 的字符集。同样,只能在基于

EBCDIC 的平台上使用基于 EBCDIC 的字符集。

多字节字符集

宽度不同的多字节字符集中,每个字符用一个或多个字节表示。多字节字符集通常用来支

持亚洲语言。一些多字节编码方案使用 高有效位值来指示一个字节的含义:是表示单个

字节,还是属于表示一个字符的一系列字节的一部分。但是,其它字符编码方案区分单字

节字符与多字节字符。由设备发送的移出控制码指示,遇到移入代码之前,任何连续的字

节都是双字节字符。与转换相关的编码方案主要用在 IBM 平台上。

宽度不同的多字节方案示例

• 16 位日本 Shift-JIS (JA16SJIS) • 使用香港增补字符集 HKSCS-2001 的 MS Windows 码页 950 (ZHT16HKSCS) • Unicode 4.0 UTF-8 通用字符集 (AL32UTF8)

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 50: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 16-6

版权所有 © 2009,Oracle。保留所有权利。

了解 Unicode

增补字符

AL32UTF8 AL16UTF16

63

EE AA 9EF0 9D 84 9E64

C3

D0 A4

B6

á

t

d

ö

0063

00E1

0074

A89E

D834 DD1E

0064

00F6

0424

c

C3

74

91

编码:使用字节序列表示字符

了解 Unicode Unicode 是一种通用编码字符集,支持使用单个字符集存储任何一种语言的信息。无论

使用何种平台、程序或语言,Unicode 都能为每个字符提供唯一的代码值。

Unicode 标准已为许多软件和硬件供应商采用。现在,很多操作系统和浏览器都支持

Unicode。Unicode 是 XML、Java、JavaScript、LDAP 和 WML 等标准所需的字符集。

它还与 ISO/IEC 10646 标准保持同步。

AL32UTF8 编码

AL32UTF8 编码是 Unicode 的 8 位编码。它是一种宽度可变的编码,也是 ASCII 的严格

超集。严格超集意味着 7 位 ASCII 中的每个字符在 AL32UTF8 中都可用且具有相同的对

应代码点值。

在这种编码中,一个 Unicode 字符可以是 1、2、3 或 4 个字节。欧洲脚本中的字符用 1 或2 个字节表示;大多数亚洲脚本中的字符用 3 个字节表示,而增补字符则用 4 个字节表示。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 51: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 16-7

了解 Unicode(续)

AL16UTF16 编码

AL32UTF16 编码是 Unicode 的 16 位编码。

在这种编码中,一个 Unicode 字符可以是 2 至 4 个字节。欧洲脚本(包括 ASCII)和大多

数亚洲脚本中的字符用 2 个字节表示。增补字符用 4 个字节表示。AL16UTF16 是Microsoft Windows 2000 和 Windows XP 使用的主要 Unicode 编码。

增补字符

Unicode 的初始版本使用了 2 个字节的编码格式。通过对每个代码点使用 16 位编码,总

共可以表示 65,536 个字符。但是,现实要求支持更多的字符。例如,单讲汉语的团体使

用的字符就超过了 55,000 个。

对于汉语、日语和韩语这类语言,仍有成千上万个表意文字尚未进行编码。即使其中许多

表意文字是很少使用的字符,它们仍会出现在必须以电子方式保留的文档中。

为了满足这一需求,Unicode 标准定义了增补字符。通过采用两个 16 位的代码点(也称

为代理对)来表示单个字符,可以多定义 1,048,576 个字符。

在这些字符中,第一批增补字符有 44,944 个,新增到了 2001 年 3 月发布的 Unicode 标准

3.1 中。加上 Unicode 3.0 中已有的 49,194 个字符,Unicode 3.1 现在总共包含 94,140 个编

码字符。这便增加了 Unicode 标准的复杂性,但大大减少了对大量不同编码的管理工作。

Oracle Database 10g 支持 Unicode 4.0 标准。

注:关于上述内容,请注意,带有连字符的 UTF-16 和 UTF-8 指的是 Unicode 标准编码,

而不带连字符的 UTF8、AL32UTF8 和 AL16UTF16 指的是基于 Unicode 标准的 Oracle 数据库字符集。

注:有关 Oracle 对 Unicode 的支持的详细信息,请参阅《Oracle 数据库全球化支持指南

10g 发行版 2 (10.2)》。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 52: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 16-8

版权所有 © 2009,Oracle。保留所有权利。

如何使用字符集

• Oracle Net 将客户机上的 NLS_LANG 设置与服务器上

的字符集进行比较。

• 如果需要,会进行自动透明的转换。

客户机

Oracle Net

NLS_LANG

服务器

如何使用字符集

NLS_LANG参数定义客户机终端的字符编码方案。不同的客户机可以使用不同的编码方案。

客户机与服务器之间传递的数据可以在两种编码方案之间自动转换。数据库的编码方案应

该是所有客户机编码方案的超集,或者与所有客户机编码方案等同。对于客户机应用程序,

转换是透明的。

数据库字符集与客户机字符集相同时,数据库会假定正在发送或接收的数据属于同一字符

集,因此不会执行验证或转换。

如果客户机应用程序所在的平台与服务器的不同,且该平台使用不同的字符编码方案,则

在客户机/服务器环境中可能需要转换字符集。对于在客户机与服务器之间传递的这种字

符数据,必须在两种编码方案之间进行转换。通过 Oracle Net,可以自动进行透明的字符

转换。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 53: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 16-9

版权所有 © 2009,Oracle。保留所有权利。

要避免的问题

示例:

不发生转换,因为好像没有必要。

问题:在数据库中输入无效数据。

服务器

数据库字符集:

AL32UTF8

客户机

Windows 英文版

码页:WE8MSWIN1252

NLS_LANG:

AL32UTF8 Oracle Net

要避免的问题

如果客户机上的 NLS_LANG参数未正确设置,则通常会在数据库中输入无效数据。

NLS_LANG值应该反映传入数据的编码。

• NLS_LANG参数的设置正确时,数据库可以自动转换从客户机操作系统传入的数据。

• NLS_LANG参数的设置错误时,将不会正确转换输入数据库的数据。

例如,假定数据库字符集是 AL32UTF8,客户机为英文版的 Windows 操作系统(码页为

WE8MSWIN1252),客户机上的 NLS_LANG设置为 AL32UTF8。输入数据库的数据是用

WE8MSWIN1252编码,却没有转换为 AL32UTF8数据,因为客户机上的 NLS_LANG设

置与数据库字符集相符。所以,Oracle DB 认为无需进行转换,从而将无效的数据输入到

数据库中。厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 54: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 16-10

版权所有 © 2009,Oracle。保留所有权利。

其它问题示例

CREATE DATABASE ...CHARACTER SET US7ASCII NATIONAL CHARACTER SETUTF8 ...

% export NLS_LANG= SIMPLIFIED CHINESE_HONGKONG.US7ASCII

其它问题示例

例如,数据库字符集是 US7ASCII,客户机终端使用的是简体中文版 Windows。通过将

NLS_LANG设置为 SIMPLIFIED CHINESE_HONGKONG.US7ASCII,作为客户机字符集,

可以在单字节数据库中存储多字节简体中文字符。这就表示,数据库会将这些字符视为单

字节的 US7ASCII字符,因此,所有 SQL 字符串操纵函数(如 SUBSTR或 LENGTH)都

基于字节,而不是字符。将数据从该数据库导出并导入其它数据库之后,可能会丢失所有

非 ASCII 字符。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 55: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 16-11

版权所有 © 2009,Oracle。保留所有权利。

选择字符集

• 综合考虑

• 选择满足当前和未来业务需求的正确字符集

• 指定字符集

• 在创建数据库之后更改字符集

选择字符集

为了获得 佳性能,选择的字符集不但要避免字符集的转换,而且要使用对所需的语言而

言 高效的编码。与多字节字符集相比,单字节字符集产生的性能更佳。此外,单字节字

符集占用的空间 少。但是,单字符字符集限制了所能支持的语言数量。

为了选择正确的数据库字符集,请评估当前和未来的业务需求,以及技术要求(例如,

XML 和 Java 标准要求使用 Unicode)。总而言之,Oracle 建议您对所有新数据库使用

Unicode,因为 Unicode 是 灵活的字符集,可以避免以后转换。

要指定相应的字符集,请结合使用 CREATE DATABASE语句以及 CHARACTER SET和

NATIONAL CHARACTER SET子句。如果不使用 NATIONAL CHARACTER SET子句,

字符集将默认为 AL16UTF16。

创建数据库之后,可能需要更改字符集,以便满足不可预见的要求,例如,为新的数据源

(XA 和数据仓库等)提供支持。通常,这是一项费时费财的工作。在大多数情况下,需

要进行完全导出/导入,才能将所有的数据正确转换成新的字符集。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 56: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 16-12

版权所有 © 2009,Oracle。保留所有权利。

数据库字符集和国家字符集

可以使用 AL16UTF16 或 UTF8存储 Unicode

可以存储宽度不同的字符集

存储类型为 NCHAR、NVARCHAR2或 NCLOB的数据列

存储类型为 CHAR、VARCHAR2、CLOB 或 LONG 的数据列

可以交换只有重新创建时才能更改,

但是少数情况除外

创建时定义创建时定义

国家字符集数据库字符集

数据库字符集和国家字符集

由于数据库字符集用来标识和保留 SQL 和 PL/SQL 源代码,所以该字符集必须包含

EBCDIC 或 7 位 ASCII(二者中取平台本地码)。因此,不能使用宽度固定的多字节字符

集作为数据库字符集,只能使用该字符集作为国家字符集。

国家字符集是一种备用字符集,使您可以在没有 Unicode 数据库字符集的数据库中存储

Unicode 字符数据。SQL NCHAR、NVARCHAR2和 NCLOB数据类型都只支持 Unicode 数据。

可以使用 UTF8或 AL16UTF16字符集。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 57: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 16-13

版权所有 © 2009,Oracle。保留所有权利。

获取字符集信息

SQL> SELECT parameter, value2 FROM nls_database_parameters 3 WHERE parameter LIKE '%CHARACTERSET%';

PARAMETER VALUE----------------------- -------------NLS_CHARACTERSET WE8ISO8859P1NLS_NCHAR_CHARACTERSET AL16UTF16

2 rows selected.

获取字符集信息

使用 NLS_DATABASE_PARAMETERS视图显示数据库的永久性 NLS 设置,包括数据库

字符集和国家字符集。此视图包含显式设置的值以及数据库使用的默认值。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 58: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 16-14

版权所有 © 2009,Oracle。保留所有权利。

指定基于语言的行为

SELECT sysdate FROM dual;

数据库服务器的初始化参数

客户机的环境变量

ALTER SESSION 命令

SQL 函数

指定基于语言的行为

除了在数据库中存储和检索大多数现代语言数据之外,还可以为这些语言的子集提供支持。

数据库可以使用本地的日期和时间格式显示日期,还可以根据文化习俗对文本数据进行排

序。此外,数据库还支持地理位置或地区特有的文化习俗,如数字和货币惯例。

NLS 参数确定客户机和服务器上特定于区域设置的行为。指定国家语言支持 (NLS) 参数

的方法有四种:

• 作为服务器端的初始化参数,指定默认的服务器环境。(这些默认设置不会影响客

户端。)

• 作为客户机的环境变量,指定区域设置相关行为,覆盖为服务器设置的默认值

• 使用 ALTER SESSION命令覆盖为客户机和服务器设置的默认值

• 在 SQL 函数中,为应用程序或查询显式地硬编码 NLS 特征,取代为服务器和客户机

设置的默认值以及使用 ALTER SESSION语句指定的所有值语句指定的所有值

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 59: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 16-15

版权所有 © 2009,Oracle。保留所有权利。

为会话指定基于语言的行为

• 使用 NLS_LANG 环境变量指定区域设置行为:

– 语言

– 地区

– 字符集

• 设置其它 NLS 环境变量,以便:

– 覆盖所有会话的数据库初始化参数设置

– 定制区域设置行为

– 更改 NLS 库文件的默认位置

NLS_LANG=FRENCH_CANADA.WE8ISO8859P1

为会话指定基于语言的行为

环境变量 NLS_LANG

区域设置是运行系统或程序时所用的语言和文化环境。设置 NLS_LANG环境参数是为

Oracle 数据库软件指定区域设置行为的 简单方法。这种方法设置客户机应用程序和数据

库服务器使用的语言和地区。它还为客户机程序输入或显示的数据设置字符集。NLS_LANG的值将覆盖 NLS 初始化参数的所有值。

每个组件都可控制 NLS 功能的子集:NLS_LANG=<language>_<territory>.<charset>

language用来覆盖 NLS_LANGUAGE的值。territory用来覆盖 NLS_TERRITORY的

值。charset指定客户机应用程序(通常是用户终端应用程序)使用的字符编码方案。

NLS_LANG定义的所有组件都是可选的;任何未指定的项都使用其默认值。如果指定地区

或字符集,则前面必须有分隔符 [地区用下划线 (_),字符集用句点 (.)]。例如:NLS_LANG = _JAPAN NLS_LANG = .US7ASCII

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 60: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 16-16

版权所有 © 2009,Oracle。保留所有权利。

基于语言和基于地区的参数

参数

NLS_LANGUAGENLS_DATE_LANGUAGENLS_SORT

默认值

AMERICANAMERICANBINARY

AMERICA$$AMERICADD-MON-RR.,DD-MON-RRHH.MI.SSXFF AMDD-MON-RRHH.MI.SSXFF AM TZR

NLS_TERRITORYNLS_CURRENCYNLS_DUAL_CURRENCYNLS_ISO_CURRENCYNLS_DATE_FORMATNLS_NUMERIC_CHARACTERSNLS_TIMESTAMP_FORMATNLS_TIMESTAMP_TZ_FORMAT

基于语言和基于地区的参数

设置 NLS_LANGUAGE和 NLS_TERRITORY初始化参数可以确定 Oracle 数据库应该使用

的默认值。对于默认值取决于 NLS_LANGUAGE和 NLS_TERRITORY设置的那些初始化

参数,通过明确设置它们的值,可以覆盖这些默认值。

NLS_LANGUAGE初始化参数

NLS_LANGUAGE初始化参数确定下列参数的默认值:

更改 Oracle 数据库用于对字符值排序的语言排序

序列。(排序值必须是语言排序序列的名称。)

NLS_SORT

确定其它日期格式元素的月日名称、缩写和拼写

值所用的语言

NLS_DATE_LANGUAGE

说明列

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 61: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 16-17

基于语言和基于地区的参数(续)

NLS_TERRITORY初始化参数

NLS_TERRITORY确定下列初始化参数的默认值:

以下是一些与 NLS_LANGUAGE和 NLS_TERRITORY值无关的 NLS 初始化参数:

定义给定地区的辅助货币符号NLS_DUAL_CURRENCY

为与 TO_CHAR和 TO_TIMESTAMP_TZ函

数结合使用的 TIMESTAMP和 TIMESTAMP WITH LOCAL TIME ZONE数据类型定义

默认的日期格式。必须设置 NLS_LANG。

NLS_TIMESTAMP_TZ_FORMAT

为 TIMESTAMP和 TIMESTAMP WITHLOCAL TIME ZONE数据类型定义默认的

日期格式。必须设置 NLS_LANG。

NLS_TIMESTAMP_FORMAT

指定日期格式。(该值必须是日期格式

样式。)

NLS_DATE_FORMAT

指示应该使用其 ISO 货币符号的地区NLS_ISO_CURRENCY

显式指定新的小数点字符和组分隔符NLS_NUMERIC_CHARACTERS

指定本地货币符号NLS_CURRENCY

说明列

允许使用字节或字符长度语义创建 CHAR、VARCHAR2和 LONG列。

NLS_LENGTH_SEMANTICS

可以设置为 ANSI或 BINARY。将 NLS_COMP设置为 ANSI时,SQL 操作将根据 NLS_SORT的值进行语言比较。

NLS_COMP

指定 Oracle DB 使用的日历体系NLS_CALENDAR

说明列

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 62: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 16-18

版权所有 © 2009,Oracle。保留所有权利。

ALTER SESSION SET NLS_DATE_FORMAT='DD.MM.YYYY';

DBMS_SESSION.SET_NLS('NLS_DATE_FORMAT','''DD.MM.YYYY''') ;

指定基于语言的行为

在 SQL 函数中使用 NLS 参数

SELECT TO_CHAR(hire_date,'DD.Mon.YYYY','NLS_DATE_LANGUAGE=FRENCH')

FROM employeesWHERE hire_date > '01-JAN-2000';

指定基于语言的行为

除了明确发出 ALTER SESSION命令之外,还可以使用 DBMS_SESSION.SET_NLS数据

库过程,指定要更改的参数名称及该参数的新值。幻灯片中显示的第二个示例执行的操作

与第一个示例相同,只不过使用的是 DBMS_SESSION程序包。

iSQL*Plus、SQL*Plus 或 SQL*Loader 之类的客户机实用程序会读取客户机上设置的环境

变量,并在它们连接到数据库之后发出相应的 ALTER SESSION命令。

第三个示例说明了 NLS_DATE_LANGUAGE NLS 参数在 TO_CHAR SQL 函数中的用法。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 63: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 16-19

版权所有 © 2009,Oracle。保留所有权利。

语言搜索和排序

排序顺序会受以下因素影响:

• 区分大小写

• 变音符号或重音字符

• 被视为单个字符的字符组合

• 音标或字符外观

• 文化首选项

语言搜索和排序

不同的语言使用不同的排序顺序。此外,使用相同字母表的不同文化或国家(地区),

单词的排序顺序也可能不同。例如,在丹麦,Æ 排在 Z 之后,而 Y 是 Ü 的异体字。排序

可以:

• 区分大小写,也可以不区分大小写

• 忽略或考虑变音符号(字符或字符组合旁边或中间的标记,用于指示与没有变音

符号的字符音相异的音)

• 基于音标,也可以基于字符的外观(如东亚象形文字中的笔画数)

另外一个常见的排序问题是,将字母组合为单个字符。例如,在传统的西班牙语中,ch是位于 c之后的独特字符,其正确顺序是:cerveza、colorado 和 cheremoya。这意味着,

在数据库检查到下一个字符是否为 h之前,不能对字母 c进行排序。

为了生成与字符的字母顺序匹配的排序序列,必须使用另外一种排序方法:在字符编码方

案中独立于其数值对字符进行排序。这种方法称为语言排序。执行语言排序时,使用反映

每个字符的正确语言顺序的数值替换字符。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 64: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 16-20

版权所有 © 2009,Oracle。保留所有权利。

语言搜索和排序

有三种类型的排序:

• 二进制排序

– 根据编码字符的二进制值进行排序

• 单语语言排序

– 根据为字符分配的主要值和次要值排两遍序

• 多语语言排序

– 基于多语排序规则的 ISO 标准 (ISO 14651) 和Unicode 3.2 标准

– 根据中文字符的笔画数、拼音或部首进行排序

语言搜索和排序(续)

二进制排序是一种常规排序机制,它根据字符编码所用的二进制值对字母进行排序。二进

制排序是速度 快的排序方法。由于 ASCII 和 EBCDIC 标准以递增数值定义字母 A 到 Z,二进制排序可以为英文字母表生成合理的结果。当存在其它语言中使用的字符时,二进制

排序通常不会生成合理的结果。

对于单语排序,Oracle DB 使用主要值和次要值对字符进行比较。通常,外观相同的字母

具有相同的主要值。例如,A、a和 ä。在 Oracle 数据库中,将变音符号和大小写不同的

字母定义为有相同的主要值,但是次要值不同。

对于单语排序,Oracle DB 在比较单语排序中的字符串时会进行两遍比较。第一遍是比较

主要表中整个字符串的主要值,第二遍是比较次要表中的次要值。虽然这种排序方法较二

进制排序略胜一筹,但仍受到限制。

使用多语排序,可以在一次排序过程中对多种语言的数据进行排序。对于排序规则复杂的

地区或语言,这是很有用的。

有关支持的语言排序的详细信息,请参阅《Oracle 数据库全球化支持指南》。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 65: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 16-21

版权所有 © 2009,Oracle。保留所有权利。

使用语言搜索和排序

可以使用下列对象指定用于字符数据的排序类型:

• NLS_SORT 参数

– 从 NLS_LANG 环境变量得到的默认值(如果设置的话)

– 可以为会话、客户机或服务器指定

• NLSSORT 函数

– 在查询级别定义排序方法

使用语言搜索和排序

为了克服二进制排序的限制,可以通过设置 NLS_SORT参数或在查询中使用 NLSSORT来

指定语言排序。

NLS_SORT参数

以使用 WE8ISO8859P1字符集为例,思考一下数据库中存储的下列单词:

• gelée

• gelé

• gèle

• gelez

如果将 NLS_SORT设置为 BINARY,则 gelez会排在 gelé之前。这是因为在

WE8ISO8859P1字符编码中,e的二进制值小于 è的二进制值。

如果将 NLS_SORT设置为 FRENCH单语排序,则单词 gelé会排在 gelez和 gèle之前,

但这仍不能满足法语中所有细微差异的要求。例如,在法语中,字母按照从左到右的顺序

排列,而重音按照从右到左的顺序排列。

将 NLS_SORT设置为 FRENCH_M多语排序时,可以对字符和变音符号正确排序。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 66: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 16-22

使用语言搜索和排序(续)

NLSSORT函数

NLSSORT允许在查询级别定义排序。下面的示例在会话级别将 NLS_SORT设置为

BINARY,但是在查询级别更改了这一排序。

SQL> ALTER SESSION SET NLS_SORT=BINARY; Session altered.

SQL> SELECT fr_word 2 FROM words 3 ORDER BY fr_word;

FR_WORD -------gelez gelégelée gèle

SQL> SELECT fr_word 2 FROM words 3 ORDER BY NLSSORT(fr_word,'NLS_SORT=FRENCH_M');

FR_WORD --------gèle gelégelée gelez

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 67: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 16-23

版权所有 © 2009,Oracle。保留所有权利。

不区分大小写和重音的搜索和排序

• 指定语言名称:

• 示例:

• 为 WHERE 子句和 PL/SQL 块指定排序操作:

• 对移植的数据库非常有用

NLS_SORT = <NLS_sort_name>[_AI | _CI]

NLS_SORT = FRENCH_M_AI

NLS_SORT = XGERMAN_CI

NLS_COMP = BINARY | ANSI | LINGUISTIC

不区分大小写和重音的搜索和排序

使用会话参数 NLS_SORT指定语言排序名称。默认值从初始化参数 NLS_LANGUAGE派生。

_AI和 _CI值是排序名称的后缀,指示排序是不区分重音还是不区分大小写。从本幻灯

片中的示例,我们可以确定下列内容:

• “French_M”排序不区分重音,也不区分大小写

• “Xgerman”排序区分重音但不区分大小写

除非使用 NLSSORT函数,否则在 WHERE子句和 PL/SQL 块中进行的比较运算是二进制的。

通过将 NLS_COMP设置为 ANSI,指示在 WHERE子句和 PL/SQL 块中执行比较运算时,

应该使用 NLS_SORT参数中指定的语言排序。此外,还必须对需要语言排序的列定义

索引。

注:NLS_SORT参数的格式对单语和多语语言排序均适用。在单语排序中,只包含主要和

次要级别。如果将 NLS_COMP参数设置为 ANSI,则对于已支持早期数据库版本中基于排

序规则的比较的所有 SQL 或 PL/SQL 运算符,将应用这些选项。_AI或 _CI选项在

INSTR、TRIM和 LIKE SQL 函数中不会受到影响,因为这些函数只以二进制顺序对字符

串进行比较。

数据库移植人员请注意:Sybase、SQL Server 和 MS Access 可以使用不区分大小写的运算。

这些选项可以用来保留现有的应用程序功能。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 68: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 16-24

版权所有 © 2009,Oracle。保留所有权利。

SQL 和函数支持的设置

• 下列 SQL 子句支持 NLS_SORT 和 NLS_COMP 设置:

– WHERE

– ORDER BY

– START WITH

– HAVING

– IN/NOT IN

– BETWEEN

– CASE-WHEN

• NLSSORT() 函数支持不区分大小写和重音的功能。

SQL 和函数支持的设置

将 _AI或 _CI选项附加到 NLS_SORT参数时,本幻灯片中列出的 SQL 子句将会受到影响。

SELECT cust_last_name FROM customers WHERE NLSSORT(cust_last_name, 'NLS_SORT = generic_m_ai')

= NLSSORT('De Niro', 'NLS_SORT=generic_m_ai');

CUST_LAST_NAME --------------------de Niro De Niro dë Nirõ

会话参数 NLS_SORT的语言设置与 SQL 语句中的语言设置不同时,通常在 ORDER BY或WHERE子句中使用 NLSSORT函数。(本页提供的)示例中将搜索所有“De Niro”,而不管大小写和重音如何。通过设置 NLS_COMP参数,可以获得与示例中相同的结果:

ALTER SESSION SET NLS_SORT=generic_m_ai;ALTER SESSION SET NLS_COMP=ansi;

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 69: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 16-25

版权所有 © 2009,Oracle。保留所有权利。

语言索引支持

• 对语言排序值创建索引。

• 无需指定 ORDER BY 子句和 NLSSORT 即可快速查询

数据:

• 对 NLS_SORT 参数进行设置,使其与创建索引时要用

于语言排序的语言定义相符。

CREATE INDEX list_word ONlist (NLSSORT(word, 'NLS_SORT=French_M'));

SELECT word FROM list;

语言索引支持

语言排序是一种特定于语言的排序方式。在数据库中存储多语言数据时,可能需要根据相

应的语言以不同的方式对这些数据进行排序。虽然为要排序的列创建语言索引会减缓插入

和更新速度,但是,这样做可以大幅提升需要语言排序的查询的性能。

使用函数索引来创建语言排序索引。SQL 函数 NLSSORT返回对指定的语言排序序列中的

第一个参数进行排序时所用的字节字符串。在本幻灯片所示的示例中,对根据 FRENCH_M排序顺序排序的 WORD创建了索引。这样,便可对根据每种语言规则进行排序的数据执行

基于索引的查询。

此外,还可以使用其中一种多语语言排序(如 GENERIC_M或 FRENCH_M)方式为所有语

言编制单个语言索引。对于少数语言,可以使用要用作 NLSSORT函数的参数的语言列。

该语言列包含索引列中数据的 NLS_LANGUAGE值。CREATE INDEX i2 on list (NLSSORT(word, 'NLS_SORT=GENERIC_M')); CREATE INDEX word_all_idx ON

list (NLSSORT(word, 'NLS_SORT=' || LANG_COL));

有关创建语言索引的详细信息,请参阅《Oracle 数据库全球化支持指南》。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 70: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 16-26

版权所有 © 2009,Oracle。保留所有权利。

自定义语言搜索和排序

可以为下列对象定制语言排序:

• 可以忽略的字符

• 压缩或扩展字符

• 特殊组合字母或特殊字母

• 扩展字符或特殊字母

• 特殊的大小写字母

• 上下文相关的字符

• 反向辅助排序

• 规范等同值

定制语言搜索和排序

语言搜索和排序具有很多功能。在这些功能中,很多功能是可以定制的,从而可以从数据

中检索所需的结果。例如:

• 现在还可以指定只对基字母(不区分重音)或对基字母和重音(不区分大小写)

进行排序或查询。

• 可以指定应忽略破折号,以便将 e-mail和 email视为等同。

• 扩展字符 ö按照 oe排序,位于 od之后、of之前。

• 可以对日语中的延长音标记进行正确排序。

• 使 ä等同于其基字母 a和变音符号¨,因此,ä和 a¨ 视为等同。

• 可以将带有变音符号的字符放在其未做标记的异体之前或之后。

• 无论在泰国语还是老挝语中,排序之前,一些字符首先会与后面的字符交换位置。

• 可以将小写字母映射到多个大写字母,例如将德语中的 ß映射到 SS,还可以将大写

字母映射到多个小写字母,例如土耳其语中的 I变为不带点的小写 i: ı。

要创建自定义的语言排序,需要使用 Oracle Locale Builder 实用程序。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 71: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 16-27

版权所有 © 2009,Oracle。保留所有权利。

CLOB和 NCLOB 之间的隐式转换

下列操作支持透明的隐式转换:

• 查询和 DML 的 SQL IN 和 OUT 绑定变量

• 传递 PL/SQL 函数和过程参数

• PL/SQL 变量赋值

CLOB 和 NCLOB 之间的隐式转换

在 Unicode 和数据库国家语言字符集之间转换数据的需求越来越频繁。使用 TO_CLOB和TO_NCLOB函数,已经可以在 SQL 和 PL/SQL 中实现 CLOB与 NCLOB之间的显式转换。Oracle Database 10g 引进的隐式转换功能不但支持查询和 DML 操作中的 SQL IN和 OUT绑定变量,而且还可以用于 PL/SQL 函数和过程参数的传递以及 PL/SQL 变量的赋值。例如,在下列情况中,转换是完全透明的:

CREATE TABLE my_table (nclob_col NCLOB);DECLARE

clob_var CLOB;nclob_var NCLOB;

BEGINclob_var := 'clob data'; -- initialize the CLOB INSERT INTO my_table VALUES (clob_var); -- Bind a CLOB into an NCLOB columnSELECT nclob_col

INTO clob_var FROM my_table; -- Define an NCLOB column as a CLOB var

END;

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 72: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 16-28

版权所有 © 2009,Oracle。保留所有权利。

使用 Oracle 实用程序进行 NLS 数据转换

• 如果使用不同的字符集,将数据从一个数据库中导出并

导入另外一个数据库时,可能会执行多项数据转换。

• 外部表使用服务器上的 NLS 设置确定数据字符集。

• SQL*Loader:– 常规路径:将数据转换成 NLS_LANG指定的会话字符集。

– 直接路径:使用客户端指令转换数据。

使用 Oracle 实用程序进行 NLS 数据转换

导出和导入的全球化支持

导出实用程序始终以与导出数据的数据库相同的字符集保存数据(包括 Unicode 数据)。

导出数据定义语言 (DDL) 时,导出实用程序使用用户会话的 NLS_LANG环境变量中指定

的字符集编写导出文件。如果 NLS_LANG的值与数据库字符集不同,将会执行字符集

转换。

导入用户数据时,如果源数据库(和导出转储文件)的字符集与导入数据库的字符集不同,

将会执行一项转换,将数据自动转换成目标数据库的字符集。

在导入 DDL 期间,会自动将数据从导出文件的字符集转换成导入用户会话的字符集。导

入实用程序只能对单字节字符集执行此类转换。这就表示,对于多字节字符集,导入文件

的字符集与导出文件的字符集必须相同。如果导入用户会话使用的字符集与目标数据库的

字符集不同,将会执行 终字符集转换。

外部表的全球化支持

服务器上的 NLS 环境变量设置确定该表的字符集和日期掩码。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 73: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 16-29

使用 Oracle 实用程序进行 NLS 数据转换(续)

SQL*Loader 的全球化支持

SQL*Loader 支持四种字符集:

• 客户机字符集(客户机 SQL*Loader 进程的 NLS_LANG)

• 数据文件字符集(通常与客户机字符集相同)

• 数据库字符集

• 数据库国家字符集

如果所有字符集相同,性能便可得到优化。

SQL*Loader 可以将数据从数据文件字符集转换成数据库字符集。通过使用 NLS_LANG参

数或在 SQL*Loader 控制文件中指定 CHARACTERSET参数,可以设置数据文件的字符集:LOAD DATA CHARACTERSET UTF16INFILE ulcase11.dat REPLACE …

假定 SQL*Loader 控制文件本身使用 NLS_LANG参数为会话指定的字符集。如果控制文件

字符集与数据文件字符集不同,那么,执行任何比较运算之前,会将 SQL*Loader 控制文

件中指定为字符串的分隔符和比较子句值从控制文件字符集转换成数据文件字符集。为了

确保指定正确,可能倾向于指定十六进制字符串,而不是字符串值。

如果使用 NLS_LANG参数为会话指定的字符集与数据文件的字符集不同,则会将控制文

件中的字符串转换成数据文件的字符集。此操作在 SQL*Loader 检查默认记录终止符之前

执行。

使用 CHARACTERSET参数指定的字符集不应用于控制文件中的数据(使用 INFILE指

定)。对于字符集不同于 NLS_LANG参数为会话指定的值的数据,要加载它们,必须将

其放在单个数据文件中。

可以使用 SQL*Loader 通过下面三种方法之一加载数据:常规路径、直接路径或外部表。

在常规路径数据加载期间,会将数据转换成 NLS_LANG参数为该会话指定的会话字符集。

在直接路径加载期间,数据转换在客户端,而不是服务器端进行。这意味着,不会使用初

始化参数文件中的 NLS 参数。要覆盖此行为,可以在 SQL*Loader 控制文件中指定格式

掩码(等同于初始化参数文件中的 NLS 参数设置),也可以设置相应的环境变量。

如果 SQL*Loader 数据的目标字符集不是源数据文件字符集的超集,在目标字符集中没有

等同值的字符则会被转换成替换字符(如问号),这会导致数据丢失。厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 74: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 16-30

版权所有 © 2009,Oracle。保留所有权利。

使用数据泵进行 NLS 数据转换

• 数据泵导出实用程序始终以数据所来自的数据库的字符

集保存数据。

• 如果需要,数据泵导入实用程序会将数据转换成目标数

据库的字符集。

• 数据泵日志文件以 NLS_LANG 为启动数据泵的会话指

定的语言进行编写。

使用数据泵进行 NLS 数据转换

启动数据泵的会话所使用的 NLS 参数设置将在数据泵作业中使用。因此,启动任何一项

数据泵作业之前,必须正确设置相应的参数。客户机的 NLS_LANG设置仅用于数据泵实

用程序(如 impdp或 expdp)返回的消息。

可以选择在执行作业期间编写日志文件。该日志文件概括作业的进度以及执行作业过程中

遇到的所有错误。数据泵通过使用客户机的 NLS_LANG设置编写日志文件。例如,将

NLS_LANG设置为 French.WE8DEC时,即使从 American.WE8DEC客户机重新启动

作业,也会使用法语显示该作业的所有消息。

如果结合使用参数文件 (PARFILE) 和数据泵,则该参数文件被假定为使用客户机的字符

集。数据泵实用程序会将该参数文件中的文本字符串转换成数据库字符集。如果该参数

文件的字符集与客户机当前使用的字符集不同,则必须变更客户机的 NLS 设置,以确保

转换正确无误。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 75: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 16-31

版权所有 © 2009,Oracle。保留所有权利。

全球化支持功能

• 语言支持

• 地区支持

• 字符集支持

• 语言排序

• 消息支持

• 日期和时间格式

• 数字格式

• 货币格式

法语数据 日语数据

全球化支持功能

不同国家和地区具有不同的文化习俗,这直接影响数据的格式。全球化支持可以确保实用

程序、错误消息、排序顺序、日期、时间、货币、数字和日历惯例会自动适合本地语言。

用户可以使用其本地语言和格式交互、存储、处理和检索数据:

• 可以使用时区支持夏令时。

• 支持国家日历,如公历、日语日历、皇历和泰佛历。

• 货币符号反映了当地经济和 ISO 惯例。各地的借贷符号也不相同。

Oracle 全球化支持功能通过 Oracle NLS Runtime Library (NLSRTL) 加以实施。NLSRTL 提供了一套与语言无关的完整功能,可以恰当地处理文本和字符以及语言惯例。对于特定的

语言和地区,这些功能的行为由运行时标识并加载的一组特定于区域设置的数据进行管理。

使用客户端和服务器端的几个参数和环境变量,可以控制基于语言的操作。服务器和客户

机的运行位置可以相同,也可以不同。客户机和服务器使用不同字符集时,Oracle DB 会自动处理字符集转换。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 76: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 16-32

版权所有 © 2009,Oracle。保留所有权利。

小结

在本课中,您应该已经学会:

• 确定满足业务需求的正确数据库字符集

• 获取全球化支持配置信息

• 为数据库会话和单个会话定制基于语言的行为

• 为查询指定不同的语言排序

• 在不区分大小写或重音的情况下,检索与搜索字符串

匹配的数据

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 77: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 16-33

版权所有 © 2009,Oracle。保留所有权利。

练习概览:使用全球化支持功能

本练习包含以下主题:

• 查看数据库字符集和国家字符集

• 标识有效的 NLS 值• 设置 NLS 参数

练习概览

注:对于本练习,将会使用 iSQL*Plus。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 78: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 79: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

版权所有 © 2009,Oracle。保留所有权利。

课堂练习

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 80: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 17-2

版权所有 © 2009,Oracle。保留所有权利。

课程目标

学完本课后,应能完成下列工作:

• 使用数据库配置工作表记录数据库配置

• 在最小化停机时间和数据丢失的前提下恢复数据

• 使用数据库工具和功能对数据库性能进行监视并加以

改进

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 81: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 17-3

版权所有 © 2009,Oracle。保留所有权利。

课堂练习方法

• 面向小组并以交互方式进行

• 使用工具将数据库性能保持在指定级别

• 对多种故障情况进行实践诊断和并解决问题

• 对每种情况提出可能的多种解决方案

• 提高解决问题和进行管理的技能

课堂练习方法

面向小组且采用互动结构

课堂练习的结构允许个人用户以组的形式工作,执行数据库备份、还原和恢复操作。建议

每个组与班级中的其它组共享其解决数据库故障的方法。

密集的实践诊断和问题解决过程

目的是为了在诊断和应对各种备份及恢复情况方面,为您提供尽可能多的实践经验。从课

程中获得的经验和知识,对成功完成每个会话的目标有着重要的作用。

使用恰当的工具

Enterprise Manager Database Control for Oracle Database 10g 为 DBA 提供了丰富的信息。筛

选这些信息以确定问题,并了解使用什么工具来解决这些问题,这可能是一项艰难的工作。

通过模拟您目前还不了解的问题,可以主动获得有关确定问题和解决问题方面的经验。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 82: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 17-4

课堂练习方法(续)

多种故障情况

在本课堂练习期间,您将通过运行一系列 shell 脚本来引发配置错误。您的目标是诊断

问题的性质,并进行必要的更正或执行适当的恢复进程。可能遇到的故障类型包括:

• 重做日志组丢失

• 介质丢失

• 应用程序表中数据块损坏或有不正确的数据

• 控制文件丢失

• 表丢失

恢复解决方案

本课堂练习模拟了一种现实的环境;在这种环境下,发生数据库故障时,可能并不存在

恰好可用于解决这些问题的现成方法。因此,在附录 A 中,仅为各种课堂练习情况提供

了粗略的解决方案。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 83: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 17-5

版权所有 © 2009,Oracle。保留所有权利。

业务要求

• 二十四小时可用性

• 所有时区各不相同的使用峰值

• 需要每日备份

• 需要完全数据库恢复

业务要求

在配置数据库以便进行备份和恢复时,必须熟悉以下业务要求:

二十四小时可用性:数据库必须是一周 7 天一天 24 小时可用的。在可以关闭实例时,

将在每个月的第一个星期六安排一次为期八小时的维护。

所有时区各不相同的使用峰值:对数据库的访问是全球性的,因此一天 24 小时内都会

有人使用数据库。

每日备份:每天都需要进行数据库完全备份。

完全数据库恢复:这是重要的业务应用数据库,因此不允许出现数据丢失。在 24 小时

范围内,有大量的事务处理发生。厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 84: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 17-6

版权所有 © 2009,Oracle。保留所有权利。

数据库配置

• 启用归档。

• 在多个设备间镜像并分配日志文件。

• 在多个设备间镜像并分配控制文件。

• 启用闪回数据库。

• 存在数据库的完全备份,其中包括归档日志文件。

数据库配置

第一种方案需要设置环境以满足上述要求。由于教室中使用的服务器的限制,本次课堂

练习的所有重要数据库文件均存放在同一个磁盘上。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 85: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 17-7

版权所有 © 2009,Oracle。保留所有权利。

解决数据库问题的方法

• 阶段 I:诊断问题。

• 阶段 II:确定解决问题的适当方法。

• 阶段 III:解决问题。

• 阶段 IV:根据需要备份数据库。

解决数据库问题的方法

课堂练习是实践操作。针对数据故障情况,可以选择您认为适合此情况的还原和恢复操作。

在课堂练习过程中会执行多种故障和恢复方案。

教师不会告诉您每种情况会出现哪种故障。要完成每项任务,请使用在本课程中学到的

功能和技术。

阶段 I:诊断问题

1. 第一阶段将研究问题的性质。使用 EM 数据库控制台、数据字典视图、跟踪和日志

文件以及基本操作系统命令来收集信息。

2. 确定数据库实例是否可用,数据库是否已打开。

3. 尝试启动实例。

4. 如果在启动实例或打开数据库时出现问题,则关闭此实例。

5. 检查“Database(数据库)”主页中的“Database Alerts(数据库预警)”区域。

此外,根据需要,检查跟踪文件和预警日志文件。

6. 检查数据库控制台的“Database(数据库)”主页中的“Job Activity(作业活动)”

部分,验证所有应用程序作业是否都在正常运行。调查任何执行问题。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 86: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 17-8

解决数据库问题的方法(续)

阶段 I:诊断问题(续)

7. 如果需要进行恢复,则应确定适当的恢复方法:

- 完全恢复

- 时间点恢复

- 闪回数据库或其它闪回操作

阶段 II:制定解决方法计划

由于每种情况可能有多种解决方案,所以应评估各个选项,确定解决问题的最佳方法。

可以通过小组讨论来制定您的解决方法计划。

如果解决方法计划涉及数据恢复,则应确定要还原的文件,以及在执行恢复操作时实例和

数据库必须处于的状态。请记住,目标是尽可能减少停机时间和数据丢失,因此除非迫不

得已,否则不要还原文件或关闭数据库。

阶段 III:解决问题

实施解决方案。例如,如果要解决数据故障,则应还原相应文件并启动恢复操作。

完成此任务后,请注意是否可采取某些预防措施,防止将来再次出现该类问题。

阶段 IV:备份数据库

并非所有恢复操作都需要在完成后进行数据库备份。但是,在执行了选定的恢复方法后,

请确定是否需要对数据库进行备份;如果需要备份,则另外执行备份操作。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 87: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 17-9

版权所有 © 2009,Oracle。保留所有权利。

小结

• 教师辅助的课堂练习

• 面向小组

• 实践方法

• 使用工具和诊断执行以下操作:

– 监视数据库性能

– 确定问题和潜在问题

• 最小化停机时间和数据丢失

小结

教师引导的课堂练习

教师将通过提供适当的指导和其它信息来引导课堂练习。

强调面向小组

在本次课堂练习中,重点强调与其他学员组成小组来进行诊断和解决故障。能否成功完成

每种情况,这取决于每个小组的知识累积和解决问题的能力。

实践方法

这是一堂实践练习课,为您提供尽可能多的可用时间参与试验环境。厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 88: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 17-10

版权所有 © 2009,Oracle。保留所有权利。

练习概览:课堂练习设置

本练习包含以下主题:

• 将数据库还原到上一时间点

• 对数据库进行物理调查:

– 使用 Oracle Enterprise Manager 数据库控制台

– 使用视图和工具

– 查看命令输出和日志文件

– 查看跟踪文件和预警日志

• 修改数据库配置以满足业务要求

• 解决典型的数据库管理问题

练习概览:课堂练习设置

出于练习目的,您将还原在本课程第一个练习中执行的数据库备份。还原数据库后,您将

调查数据库,更改其配置以满足业务要求,并在多种情况下模拟典型的数据库管理员任务。

物理调查

使用 Oracle Enterprise Manager、SQL*Plus、V$视图和其它数据字典视图等 Oracle Database 10g 的功能,获取有关数据库环境的信息。请牢记这些业务要求,并注意是否存

在任何可能需要纠正以支持这些要求的缺陷。

数据库配置

实际修改数据库配置,以确保其满足业务要求。

数据库管理

可以按任意顺序经历这些情况,获得解决典型的数据库管理任务和过程方面的经验。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 89: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 17-11

课堂练习:数据库配置核对清单

使用 Oracle Enterprise Manager Database Control 可以确定并记录数据库以下各项的

当前设置。

表空间和数据文件信息

导航帮助:Administration > Datafiles(管理 > 数据文件)

联机重做日志文件信息

导航帮助:Administration > Redo Log Groups(管理 > 重做日志组)

控制文件信息

导航帮助:Administration > Control Files(管理 > 控制文件)

表空间名称 数据文件名称(完整路径)

组编号 重做日志文件名称(完整路径) 大小 状态

控制文件名称(完整路径)

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 90: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 17-12

课堂练习:数据库配置核对清单(续)

初始化参数

导航帮助:Administration > All Initialization Parameters(管理 > 所有初始化参数)

参数名称 值 BACKGROUND_DUMP_DEST CORE_DUMP_DEST DB_BLOCK_CHECKING DB_BLOCK_SIZE DB_CACHE_SIZE DB_FILES DB_NAME DB_RECOVERY_FILE_DEST DB_RECOVERY_FILE_DEST_SIZE LOG_ARCHIVE_DEST_n LOG_ARCHIVE_DEST_n_STATE LOG_ARCHIVE_FORMAT SGA_MAX_SIZE SGA_TARGET USE_RECOVER_FILE_DEST USER_DUMP_DEST

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 91: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

________________

附录 A 练习

________________

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 92: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II A-2

练习 2:配置 Oracle Recovery Manager

背景:您需要配置备份和恢复设置。其中一些设置是使用 RMAN 来完成的,而另外

一些是使用 Oracle Enterprise Manager 完成的。除非以后被覆盖,否则,这些设置将为您

将来执行的备份和恢复活动提供相应配置。这些配置包括对保留策略、控制文件自动备

份和排除的表空间进行定义。

重要说明:在开始其他任何工作之前,作为本课程结束时课堂练习的准备工作,请在 XTerm 命令 Shell 中运行以下脚本,准备好数据库文件的副本:

$ $HOME/labs/lab_02_copy.sh

1. 在 XTerm 窗口中,将 NLS_DATE_FORMAT 环境变量设置为“yyyy-mm-dd hh24:mi:ss”,然后,以 SYS 用户身份在默认的 NOCATALOG 模式下连接到作为

目标数据库的数据库。

2. 使用 RMAN SHOW ALL 命令生成 RMAN 配置设置的列表。

3. 对 RMAN 进行配置,以便每次获取数据库或数据文件的备份时,都会自动备份控制

文件和 SPFILE。使 RMAN 会话保持连接状态。您还会用到它。

4. 使用 Oracle Enterprise Manager (EM) 数据库控制台,将备份保留策略设置为 2 天的

恢复时间段。以 SYS 用户身份(口令为 oracle,连接身份为 SYSDBA)登录到数据

库控制台。如果您是第一次以 SYS 用户身份登录 EM,则需要单击“License Agreement(许可协议)”屏幕上的“I agree(我同意)”。URL 的格式为:

http://<machine_name>.us.oracle.com:1158/em

您的机器名将出现在已启动的 Xterm 窗口的左上角。您还可以查看 $ORACLE_HOME/install/readme.txt 文件,并在“Oracle Enterprise Manager 10g Database Control URL”标题下找到该 URL。

5. 使用 RMAN 实用程序和 SHOW 命令验证备份保留策略设置。

6. 应用程序的开发需要每天从外部源加载数据,并且需要为该数据设置一个登台区。

运行 lab_02_06.sql 脚本以创建 STAGING 表空间,用于存放此数据。然后配置 RMAN,从备份任务中排除此表空间。这样做的原因是,如果丢失了此数据,则无

需恢复它,而可以简单地从外部源重新加载此数据。然后,确认该表空间被排除。

7. 退出 RMAN。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 93: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II A-3

练习 3:使用 Recovery Manager

背景:在本练习中,您将熟练掌握如何使用 RMAN 来执行和管理备份。您需要将数据

库置于 ARCHIVELOG 模式,并对数据库进行完全备份。

1. 使用 SQL*Plus 或 EM 数据库控制台,确认该数据库处于 ARCHIVELOG 模式。如果

不是,请变更该数据库以启用联机重做日志的归档。请注意,该数据库必须处于 MOUNT 状态,才能更改归档日志模式。请确保该数据库在执行此步骤之后处于打开

状态。

注:如果看到以下错误,请单击“OK(确定)”,然后继续单击“Refresh (刷新)”。此错误最终将会消失。

2. 在 NOCATALOG 模式下使用 RMAN 连接到数据库。不能使用现有的 RMAN 会话,

因为数据库已重新启动。首先,请确保已在 XTerm Shell 中按照练习 2 中的指示

设置了 NLS_LANG 环境变量。

3. 使用 RMAN REPORT 命令生成数据库结构的列表。

4. 获取当前存在的所有数据库备份集的列表。现在应该没有这样的备份。

5. 使用 RMAN 备份属于 EXAMPLE 和 USERS 表空间的数据文件。确认以下各项:

• 当前控制文件和服务器参数文件已通过此备份操作进行了备份 • 备份已放入快速恢复区 • 备份的格式为备份集

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 94: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II A-4

练习 3:使用 Recovery Manager(续)

6. 创建两个数据文件的映像副本。使用以下信息:

• 在快速恢复区中制作 SYSTEM 表空间的映像副本,并使用 SYSTEM01 标记。 • 在 ORACLE_HOME 目录中制作 SYSAUX 表空间的映像副本,并使用 SYSAUX01

标记将副本命名为 sysaux01.cpy。

上述这两个备份文件的位置分别在哪里?

_________________________________________

_________________________________________

上面突出显示了此备份文件的输出文件。您的答案应该与此完全匹配。

7. 获取所有尚未备份的数据库文件的列表。请注意,STAGING 表空间仍然被排除在

备份之外。

8. 获取数据库的完整备份,包括已归档的日志。请使用尽可能少的空间来存储备份。

还要确保包括以前排除的表空间(仅对此备份而言)。然后,列出需要备份的文

件,并且列出数据库备份。

9. 配置 RMAN,以便在将来所有的备份中包括 STAGING 表空间。

注:如果在练习 2 中,您在命令中将 STAGING 放到引号里,从而将其从备份中

排除,则对于上述步骤,您仍然必须这样做,并且所使用的大小写必须与练习 2 中使用的大小写一致。

10. 退出 RMAN。

11. 既然已具有完整的数据库备份,请删除由 system01.dbf 和 sysaux01.dbf 数据

文件构成的映像副本备份。这可以节省一些磁盘空间。请使用 Oracle Enterprise Manager 完成此工作。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 95: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II A-5

练习 4:恢复不太严重的损失

背景:对于数据库,定义了默认 TEMP 表空间。当无法在内存中执行排序以及其他需要

消耗大量内存的操作时,这是用来执行这些操作的地方。如果 TEMP 表空间的数据文件

丢失或损坏,则只需要向 TEMP 表空间中添加一个新文件,并删除旧文件即可。而且,

只有重做日志成员在丢失或损坏时需要重新创建。在下面的练习中,您将遇到并处理

一个丢失的属于 TEMP 表空间的临时文件,以及一个丢失的联机重做日志成员。请注意,

HR 用户的口令是 hr。

1. 使用 Oracle Enterprise Manager 查看所有初始化参数。

2. 运行 lab_04_02.sh 脚本删除 TEMP 表空间中的临时文件。

3. 在 Oracle Enterprise Manager 中,再次尝试查看所有初始化参数。应该看到一条与

丢失的 temp01.dbf 文件有关的错误。

注:如果没有看到该错误,请从 Oracle Enterprise Manager 注销并重新登录。

4. 通过在 TEMP 表空间中创建一个新的临时文件并删除丢失的文件,从临时文件丢失

错误中恢复。新的临时文件的大小应该为 25 MB,并且应该可以扩展到 100 MB 大小。

然后,请按照步骤 3 中的说明,再次尝试查看初始化参数。

5. 从联机重做日志文件丢失错误中恢复。首先,运行 lab_04_05_a.sql 脚本,为每个

重做日志组创建第二个重做日志文件。然后,运行 lab_04_05_b.sh 脚本,删除

其中一个联机重做日志文件。运行 lab_04_05_c.sql 脚本以引发该错误。从文件

丢失错误中恢复。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 96: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II A-6

练习 5:数据库恢复

背景:作为数据库管理员,您接到一些用户的电话,这些用户声称在 HR 应用程序中存在

不正确的数据。工资表显示,所有薪金的总和应该为 691,400 美元。但是,该总和现在

为 679,050 美元。而且,在过去 60 天内不应当存在部门更改,但是 JOB_HISTORY 表

显示了今天所发生的更改。您知道人事改组批处理作业一定已提前运行,因此您需要撤

消那些产生重大影响并涉及多个表的更改,其中包括某些由触发器所触发的更改。请注

意,HR 用户的口令是 hr。

1. 为了模拟错误运行的批处理作业,请运行 lab_05_01.sql 脚本。

2. 确认有关薪金总和与作业历史记录的信息是否与用户向您报告的信息相同。

3. 鉴于所涉及的表和触发器,您意识到,手动撤消上述所有更改过于复杂并且容易

出错。因此,您决定将整个数据库还原到以前的某个时间点。您知道在改组批处理

作业中执行的第一个修改是部门更改。所以,您在 JOB_HISTORY 表中查看第一个

更改的时间,并决定将数据库还原到此前一分钟时的状态。执行还原操作。

请记下日期和时间。__________________________________

4. 确认数据库已还原到 HR 数据未发生改组更改的时间点。

5. 退出 SQL*Plus。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 97: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II A-7

练习 6:闪回

背景:此处执行的方案与题为“数据库恢复”的练习中所执行的方案相同。HR 重组作

业过早运行,而您必须撤消这些更改。您无法确定这些更改涉及到哪些表,但既然已启

用了闪回事件记录,因此您决定使用闪回数据库而不是执行恢复。除非另行指定,否则

应当通过 SQL*Plus 或 Database Control,以 SYS 用户身份作为 SYSDBA 登录。

1. 使用 Oracle Enterprise Manager,为数据库启用闪回事件记录(启用闪回数据库)。

2. 在启用闪回事件记录的情况下重新启动数据库之后,通过查询 V$DATABASE 视图,

记录数据库的当前 SCN。

注:稍后将需要此信息。

当前 SCN:________________

3. 记下 HR.EMPLOYEES 表中的薪金总和以及 JOB_HISTORY 表中的行数。

薪金总和:____________________

行数:____________________

4. 运行 lab_06_04.sql 脚本,执行与题为“数据库恢复”的课程练习中相同的 HR 改组更新。

5. 再次记下数据库中的当前 SCN、薪金总和以及 JOB_HISTORY 行数。如果您不是以 SYS 用户身份连接,请先完成该操作。请注意,这些值不同于在步骤 2 和 3 中查询

的值。

6. 使用 RMAN 的 FLASHBACK DATABASE 命令,将数据库闪回到在步骤 2 中所记录的

第一个 SCN 值处。

7. 在打开数据库进行读/写之前,通过查看表的内容并验证是否恢复到步骤 3 中记下

的值,以确认是否已将数据库闪回到正确的 SCN 处。

8. 打开数据库进行读/写。必须使用 RESETLOGS 关键字。

9. 此时,您可以亲自熟悉与闪回相关的动态视图。为了做好查看时间值的准备,请变

更您的会话,以便在显示任何日期值的同时显示小时、分钟和秒。

10. 查询 V$FLASHBACK_DATABASE_LOG 视图,并确定可以将数据库闪回到的最小 SCN。请在此记录下答案:_____________

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 98: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II A-8

练习 6:闪回(续)

11. 通过查询 V$FLASHBACK_DATABASE_STAT,查看与闪回事件记录和相关操作关联

的开销。在此时间间隔中,每分钟写入的闪回数据的平均字节数是多少?

___________________________________

12. 通过查询 V$FLASHBACK_DATABASE_LOG,确定存储的闪回数据的当前大小。请在

此记录下答案:_____________

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 99: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II A-9

练习 7:处理数据库损坏 背景:在该练习中,一个数据文件被故意破坏,而您在查询受影响的表时看到了损坏的

结果。您需要确定损坏的位置并纠正该问题。

1. 为了在 DEPARTMENTS 表中制造损坏情况,需要查明存储其数据的 OS 文件名,还需

要查明位于该文件的 DEPARTMENTS 表部分中的 OS 文件块 ID。查询 DBA_SEGMENTS 视图,找到 DEPARTMENTS 段的文件 ID 和块 ID。然后,通过查询 DBA_DATA_FILES 视图确定关联 OS 文件的名称。

请在此处记录上述值:

文件 ID:_____________

块 ID:_____________

2. 运行 lab_07_02.sh 脚本,在 example01.dbf 数据文件的上文报告的块号中制

造损坏情况。该脚本的参数顺序依次为:全限定文件名、块号、块大小。块大小为 8192。此脚本将字符 CORRUPT 写入给定的块号中。

3. 刷新缓冲区高速缓存,以便强制使任何针对 DEPARTMENTS 表的查询转至磁盘上的

数据文件。然后,选择 DEPARTMENTS 表的所有列并记录错误。使用以下命令刷新

缓冲区高速缓存:

SQL> ALTER SYSTEM FLUSH BUFFER_CACHE;

4. 运行 dbv 实用程序,报告 example01.dbf 文件中的所有损坏情况。

5. 查看预警日志以了解损坏的详细信息。

6. 使用 RMAN 的 BLOCKRECOVER DATAFILE 命令执行块介质恢复。使用上一个步骤

的 DBVERIFY 输出来确定需要恢复的块。

7. 通过再次刷新缓冲区高速缓存并查询 DEPARTMENTS 表,确认块恢复操作成功。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 100: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II A-10

练习 8:监视和管理内存 背景:本练习将数据库置于以下模式:在该模式下,数据库的效率和灵活性没有达到

最佳状态。然后,引入新的对象,而该数据库则无法调整该对象。您必须确定该问题的

原因,并重新配置该数据库,使其能够动态适应新对象。除非另行指定,否则需要以 SYSDBA 身份通过数据库控制台或 SQL*Plus 登录。

1. 请确保您位于 oracle 用户主目录下的 labs 目录中。使用 SQL*Plus 关闭实例,

然后使用位于 labs 目录中的 init_sgalab.ora 初始化参数文件重新启动该实例。

需要在 STARTUP 命令中使用 PFILE 参数。

2. 执行 lab_08_02.sql 脚本。此脚本试图创建许多 Java 存储过程。

问题:该错误的原因可能是什么?

__________________________________________

3. 使用数据库控制台检查实例的各种 SGA 缓冲区的大小。

问题 1:是否启用了自动共享内存管理功能?

_____________________

问题 2:Java 池的大小是多少?

_____________________

4. 以 SYS 用户的身份运行 lab_08_04.sql 脚本,查看当前内存设置。是否存在 CURRENT_SIZE 与 MIN_SIZE 不同的 SGA 动态组件?请说明您的答案。

________________________________________________________________________

________________________________________________________________________

5. 使用自动共享内存管理功能纠正该问题,以便在不重新尝试存储过程创建脚本的

前提下创建 Java 存储过程。

6. 重新运行 lab_08_04.sql 脚本以查看内存相关信息。请确保以 SYS 用户身份作为 SYSDBA 运行该脚本。然后,回答下列问题:

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 101: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II A-11

练习 8:监视和管理内存(续)

问题 1:对于 SGA_TARGET 初始化参数,您现在期望看到什么样的参数值?可以通

过查看 lab_08_04.sql 脚本的输出来确认您的答案。

注:根据区组大小的不同,可能会有一些舍入。

____________________________

问题 2:查看预警日志的最后 20 行,了解启用 ASMM 之后所发出的命令。为什么

将自动管理的池的大小设置为零?

______________________________________________________________________

问题 3:为什么将 DB_CACHE_SIZE 设置为非零值?

______________________________________________________________________

问题 4:为什么您认为无法创建 Java 存储过程?

______________________________________________________________________

7. 返回 lab_08_02.sql 脚本以创建 Java 存储过程。在此脚本运行完毕以后,有多少

内存被添加到 Java 池中?

____________________________

8. 运行 lab_08_drop_javas.sql 脚本以删除 Java 对象。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 102: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II A-12

练习 9:自动性能管理 背景:运行一个能够在数据库上生成负载的脚本。然后,使用自动数据库诊断监控程序

确定问题。在找到真正原因之前,需要评估几种不同的可能原因。除非另行指定,否则

需要以 SYSDBA 身份通过数据库控制台或 SQL*Plus 登录。

1. 运行 lab_09_01.sql 脚本以创建 TBSADDM 表空间,并创建 ADDM 用户(其口令

为 addm)。

2. 运行 lab_09_02.sql 脚本,在新的表空间中创建一个表。

3. 作为 oracle Linux 用户,从 labs 目录中执行 lab_09_03.sh 脚本。等待八个存储

过程完成操作。

4. 在“Database Control Console(数据库控制台)”主页中,单击“Performance (性能)”标签页。在“Performance(性能)”页中,确保将“View Data(查看

数据)”字段设置为“Real Time: 15 Seconds Refresh(实时:15 秒刷新)”。两分钟

后,将在“Average Active Sessions(平均活动会话)”图形中显示一个钉状图。

注:如果看到一个弹出式屏幕,询问您是接受还是拒绝 SVG 查看器协议,请键入 [A] 接受该协议。使用 SVG 查看器可以增强 Oracle Enterprise Manager 的图形显示。下面

显示的屏幕快照中未使用 SVG 查看器。

5. 完成钉状图后,以 ADDM 用户身份执行 lab_09_05.sql 脚本。此脚本将强制创建

新的快照。通过观察该图形,您已能确定此实例存在并发问题。

6. 返回“Database(数据库)”主页。最新的 ADDM 结果可能尚未显示在“Diagnostic Summary(诊断概要)”区域中。为了避免等待下一个刷新间隔,请从指导中心检

索最新的 ADDM 结果,并通过观察影响最大的两个结果来确定问题的原因。

注:因为环境中存在各种变化,所以此负载可能未产生任何结果。如果是这种情况,

请重新执行上面的步骤 3 到步骤 5,以便重新生成负载。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 103: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II A-13

练习 9:自动性能管理(续)

7. 要实施该建议案,必须重新创建对象。创建一个名为 TBSADDM2 的新的表空间,

该表空间使用自动空间管理功能。

8. 从 labs 目录中执行 lab_09_08.sql 脚本,删除 ADDM 表并且在新的表空间中重新

创建该表。此脚本还搜集有关该表的统计信息,并且制作新的快照。

9. 重新运行 lab_09_03.sh 脚本。

10. 使用 Oracle Enterprise Manager 查看负载钉状图。

11. 在钉状图完成后,请使用 SQL*Plus 以 ADDM 用户身份连接到数据库,然后执行 lab_09_11.sql 脚本。此脚本将强制创建新的快照。

12. 在“Database Control Console(数据库控制台)”主页中,转至“Advisor Central(指导中心)”并查看最新快照。情况是否有所改善?

13. 若要清理环境,请执行 lab_09_cleanup.sql 脚本。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 104: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II A-14

练习 10:管理方案对象 背景:您的公司将经历一个合并过程。因此,预计您所负责数据库中的一些表中的数据

将显著增多。为了主动监视表和索引空间占用率,您创建了一个测试用例并执行一些预

计生产系统中将会产生的任务。

请以 SYS 用户身份登录(使用 oracle 口令以 SYSDBA 身份连接),然后通过 Oracle Enterprise Manager Database Control 或通过 SQL*Plus 执行必需的任务。此练习的所有脚

本都位于 /home/oracle/labs 目录中。

1. 运行 lab_10_01.sh 脚本创建 TEST_REGIONS 表。

问题 1:PCTFREE 10 意味着什么?

_______________________________________________________________________

2. 通过运行 lab_10_02.sh 脚本填充 TEST_REGIONS 表。

问题 2:在“Tables(表)”页上,TEST_REGIONS 表中的行数是多少?为什么?

__________________________________________________________________

3. 按照最佳惯例,在执行重大 DML 活动(如填充新表)之后,应该搜集新的统计

信息。请对 HR.TEST_REGIONS 表执行此操作。

4. 查看 HR.TEST_REGIONS 表的段信息,该信息可通过“Edit Table Segments(编辑

表段)”页访问。

在观察 HR.TEST_REGIONS 表的段信息时,您注意到该表段具有 20% 以上的

“Wasted Space (%)(浪费空间 (%))”。您决定重组表空间的使用情况。在完成该

工作后,请确认您的工作已成功并再次查看当前空间占用率。空间是增大了还是减

小了?

问题 3:产生浪费空间的原因是什么?

_________________________________________________________________________

5. 通过运行 lab_10_05.sh 脚本删除 HR.TEST_REGIONS 表。(此操作可以确保

其他课程练习不会受到此多余表的影响。)

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 105: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II A-15

练习 11:管理存储

背景:为了对即将进行的合并做好准备,您需要将警告阈值和严重阈值设置为比默认值

更低的值。请确保您能收到早期警告,以便有更多的时间做出反应。在完成测试用例以

后,请删除您所使用的表空间。

请以 SYS 用户身份登录(使用 oracle 口令以 SYSDBA 身份连接),然后通过 Oracle Enterprise Manager Database Control 或通过 SQL*Plus 执行必需的任务。此练习的所有

脚本都位于 /home/oracle/labs 目录中。

1. 使用 DBMS_SERVER_ALERT.SET_THRESHOLD 过程,重置“Tablespace Space Usage(表空间的空间占用率)”度量的数据库范围阈值。可以使用 lab_11_01.sh 脚本执行该操作。

2. 在 SQL*Plus 中,使用以下命令检查“Tablespace Space Usage(表空间的空间占用

率)”度量的数据库范围阈值:

SELECT warning_value,critical_value FROM dba_thresholds WHERE metrics_name='Tablespace Space Usage' AND object_name IS NULL;

3. 创建一个名为 TBSALERT 的新的表空间,该表空间使用名为 alert1.dbf 的 120 MB 文件。请确保此表空间在本地进行管理并使用自动段空间管理功能。不要使此表空间

可自动扩展,并且不要为其指定任何阈值。请使用 Oracle Enterprise Manager Database Control 来创建表空间。如果数据库中已存在此表空间,请先将其删除(包括

其文件)。

4. 在 Oracle Enterprise Manager 中,更改 TBSALERT 表空间的“Tablespace Space Usage(表空间的空间占用率)”阈值。将其警告级别设置为 55%,并将其严重级别设置

为 70%。

5. 使用 SQL*Plus 检查 TBSALERT 表空间的新阈值。

6. 从 TBSALERT 表空间的 DBA_ALERT_HISTORY 中选择 reason 列和 resolution 列。

7. 执行 lab_11_07.sh 脚本,在 TBSALERT 表空间中创建并填充新表。

8. 使用 Database Control 或 SQL*Plus 检查 TBSALERT 表空间的占满程度。当前级别应该

在 60% 左右。等待大约 10 分钟,然后检查是否达到了 TBSALERT 表空间的警告级别。

9. 执行 lab_11_09_a.sh 脚本,向 TBSALERT 中添加数据。等待 10 分钟,然后在数

据库和 Database Control 中查看严重级别。确认 TBSALERT 的空间占用率在 75% 左右。

10. 执行 lab_11_10.sh 脚本。此脚本从 TBSALERT 的表中删除行。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 106: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II A-16

练习 11:管理存储(续)

11. 现在,使用 Database Control 对 TBSALERT 表空间运行段指导。请确保在

“Comprehensive(综合)”模式且无时间限制的情形下运行指导。接受并实施指导

的建议。在实施这些建议案之后,请检查 TBSALERT 的占满程度是否低于 55%。

12. 等待大约 10 多分钟,然后确认 TBSALERT 表空间不再有任何未处理的预警。

13. 检索 TBSALERT 的“Tablespace Space Usage(表空间的空间占用率)”度量在最近 24 小时内的历史记录。

14. 重置 TBSALERT 表空间的“Tablespace Space Usage(表空间的空间占用率)”度量

的数据库范围默认阈值。

15. 由于您已完成测试用例,因此请执行 lab_11_15.sh 脚本删除 TBSALERT 表空间。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 107: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II A-17

练习 12-1:自动存储管理

习题 1:创建和配置 ASM 实例 背景:当前,数据库服务器上还没有运行 ASM 实例。您需要创建一个实例并启动它,

使其指向已配置的裸磁盘分区。然后,在该磁盘组中创建一个表空间。同时,还将在常

规存储中创建一个表空间,然后将其移植到 ASM 存储中。

除非另行指定,否则应该通过 Database Control 或 SQL*Plus,以 SYS 用户身份作为 SYSDBA 登录。

在本练习中,您将创建一个 ASM 实例,配置 ASM 初始化参数,创建磁盘组,然后创建

一个使用 ASM 存储的表空间。

1. 使用 DBCA 在计算机上创建 ASM 实例。在 DBCA 中实施以下配置:

将 ASM 初始化参数的磁盘搜索字符串的默认值更改为“/dev/raw/raw*”(不带

引号)。

创建一个名为 DGROUP1 的磁盘组,该磁盘组使用以下四个 ASM 磁盘:

/dev/raw/raw1

/dev/raw/raw2

/dev/raw/raw3

/dev/raw/raw4

指定 DGROUP1 使用正常冗余。

必要时,输入 oracle 作为 root 的口令。

2. 使 Linux 命令窗口保持打开状态,供以后使用。

3. 在 OS 命令 Shell 中,以 oracle 的身份连接到 ASM 实例。列出与其相关联的进程。

在启动 ASM 实例之前,必须将 ORACLE_SID 设置为 +ASM。

4. 在操作系统级别检查 ASM 进程,并且查询 V$ASM_DISKGROUP 以查看磁盘组特性。

5. 连接到 orcl 实例,然后创建一个名为 TBSASM、存储在 ASM 磁盘组 DGROUP1 内的新的表空间。该表空间应当具有一个 5 MB 的数据文件。在启动 SQL*Plus 之前,

请退出当前 Shell,然后以 oracle 身份重新登录。此操作将重置先前为 ASM 实例重

写的 ORACLE_SID 环境变量。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 108: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II A-18

练习 12-2:自动存储管理(续)

习题 2:将表空间移植到 ASM 存储中

在本练习中,您将移植表空间,使其可以使用 ASM 存储。

1. 使用 SQL*Plus,以 SYSDBA 用户身份连接到数据库实例,然后创建一个名为 TBSASMMIG 的新的表空间。此表空间应当只包含一个存储于文件系统中的 10 MB 大小的文件(不使用 ASM)。请确保连接的是 orcl 实例,而不是 ASM 实例。

2. 创建一个名为 T2、存储在新的表空间 TBSASMMIG 中的表。在 T2 中插入一行。

提交您所做的操作。

3. 将 TBSASMMIG 移植到 ASM 存储中。完成操作后,请检查移植是否成功,并且该

表空间中的表是否保持原样。

4. 通过删除表空间 TBSASMMIG(包括其内容和数据文件)来清理环境。而且还可以

删除在步骤 1 中创建的、用来存储 TBSASMMIG 表空间的标准文件系统文件。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 109: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II A-19

练习 13:管理资源

背景:您收到投诉,称某些批处理作业使用了过多的系统资源,而且已知某个特定用户

在常规工作时间启动了数据仓库进程。您决定使用数据库资源管理器来更好地利用和控

制系统资源。

最初为了平衡这种状况而进行的工作包括创建一个 APPUSER 使用者组,并将其分配给

默认的 SYSTEM_PLAN 资源计划。然后,将多个 Oracle 用户和主要的 OS 用户映射到资

源组。激活该资源计划并测试所进行的分配。请定期单击“Show SQL(显示 SQL)”

查看新出现的所有语句。

请以 SYS 用户身份登录(使用 oracle 口令以 SYSDBA 身份连接),然后通过 Oracle Enterprise Manager Database Control 或通过 SQL*Plus 执行必需的任务。此练习的所有

脚本都位于 /home/oracle/labs 目录中。

1. 使用 Oracle Enterprise Manager Database Control,创建一个名为 APPUSER 的资源组。

此时,请不要向该组添加用户。查看生成的 SQL。

问题 1:ROUND-ROBIN 参数值意味着什么?

_____________________________________________________________________

2. 将 APPUSER 使用者组添加到 SYSTEM_PLAN 资源计划中。更改级别 3 的 CPU 资源

分配百分比:APPUSER 使用者组为 60%,LOW_GROUP 使用者组为 40%。

3. 配置使用者组映射,使 HR Oracle 用户属于 APPUSER 使用者组,并且使 SCOTT Oracle 用户属于 LOW_GROUP 使用者组。确认 ORACLE_USER 属性具有比 CLIENT_OS_USER 属性更高的优先级。

4. 配置使用者组映射,使 oracle OS 用户属于 SYS_GROUP 使用者组。

5. 将 PM Oracle 用户分配给以下使用者组:APPUSER、LOW_GROUP 和 SYS_GROUP。

6. 执行 lab_13_06.sh 脚本,解除 HR、SCOTT、OE 和 PM Oracle 用户帐户的锁定。

设置口令以匹配用户名。

7. 激活 SYSTEM_PLAN 资源计划。 厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 110: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II A-20

练习 13:管理资源(续)

8. 检测使用者组映射。启动两个 SQL*Plus 会话,第一个使用 system/oracle@orcl 连接字符串,第二个使用 scott/scott@orcl 连接字符串。

a. 在终端窗口中,输入:

cd /home/oracle/labs sqlplus system/oracle@orcl

b. 在 SQL*Plus 会话中,输入:

SET SQLPROMPT “IRST>”

c. 在第二个终端窗口中,输入:

cd /home/oracle/labs sqlplus scott/scott@orcl

d. 在第二个 SQL*Plus 会话中,输入:

SET SQLPROMPT “SECOND>”

e. 在第一个 SQL*Plus 会话中,输入:

@lab_13_08_e.sql

f. 问题:SCOTT 用户属于哪一个使用者组?

_____________________________________________________

g. 在第二个终端窗口中,输入:

connect pm/pm@orcl

h. 在第一个 SQL*Plus 会话中,输入 /(斜杠)重新执行上一个 SQL 语句。

i. 问题:PM 用户属于哪一个使用者组?

__________________________________________________

j. 在第二个终端窗口中,输入:

connect oe/oe@orcl

k. 在第一个 SQL*Plus 会话中,输入 /(斜杠)重新执行上一个 SQL 语句。

l. 问题:在测试 Oracle 用户 OE 时,您注意到 OE 在 OTHER_GROUPS 使用者组中。

为什么会这样?

_______________________________________________________

9. 停用 SYSTEM_PLAN 资源计划。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 111: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II A-21

练习 14-1:监视调度程序

背景:由于作业任务在定期地增加,所以您决定自动执行常规任务。首先,监视现有的

调度程序元素,然后创建调度程序组件并对其进行测试。

在本练习中,您将使用 Oracle Enterprise Manager Database Control 定义和监视调度程序,

并且自动执行任务。请定期单击“Show SQL(显示 SQL)”查看新出现的所有语句。

按照提示,以 SYS 用户身份(使用 oracle 口令以 SYSDBA 连接身份)或以 HR 用户

身份(使用 HR 口令以 Normal 连接身份)登录。通过 Oracle Enterprise Manager Database Control 或通过 SQL*Plus 执行必需的任务。此练习的所有脚本都位于 /home/oracle/labs 目录中。

1. 以 SYS 用户身份登录 Oracle Enterprise Manager Database Control,然后将下列角色

授予 HR 用户: • CONNECT 角色 • RESOURCE 角色 • DBA 角色

由于您将使用 HR 用户来通过 Database Control 管理作业,所以需要确保该 HR 用户已

注册为有访问权限的管理员。

2. 以 HR 用户身份登录 Oracle Enterprise Manager Database Control。在“Administration(管理)”标签页中,单击“Database Scheduler(数据库调度程序)”区域中的

“Jobs(作业)”链接。

问题:是否存在作业?

__________________________________

3. 复查 Oracle Enterprise Manager 中的“Programs(程序)”页。(提示:请使用浏览

器的“Back(后退)”按钮。)

问题:是否存在现有程序?

___________________________________

4. 复查 Oracle Enterprise Manager 中的“Scheduler Schedules(调度程序调度)”页。

问题:是否存在现有调度?

___________________________________

5. 复查 Oracle Enterprise Manager 中的“Scheduler Windows(调度程序窗口)”页。 是否存在现有窗口?与各个窗口相关联的资源计划是什么?

问题 1:是否存在现有窗口?它们的名称是什么?

___________________________________

___________________________________

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 112: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II A-22

练习 14-1:监视调度程序(续)

问题 2:哪个资源计划与 WEEKNIGHT_WINDOW 窗口相关联?

___________________________________

问题 3:哪个资源计划与 WEEKEND_WINDOW 窗口相关联?

___________________________________

6. 复查 Oracle Enterprise Manager 中的“Scheduler Job Classes(调度程序作业类)”页。

是否存在现有作业类?如果存在,那么与各个作业类相关联的资源使用者组是什么?

问题 1:是否存在现有作业类?

___________________________________

问题 2:哪个资源使用者组与 DEFAULT_JOB_CLASS 作业类相关联?

___________________________________

问题 3:哪个资源使用者组与 AUTO_TASKS_JOB_CLASS 作业类相关联?

___________________________________

___________________________________

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 113: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II A-23

练习 14-2:创建调度程序组件

在本练习中,您将使用 Oracle Enterprise Manager Database Control 创建调度程序对象,

并且自动执行任务。

前提条件:请确保您已完成上一个步骤 1,在该步骤中已授予 HR 用户管理权限。

1. 在 Database Control 中以 HR 用户身份登录数据库以后,请创建一个运行 SQL 脚本的

简单作业:

• 一般信息: 名称:CREATE_LOG_TABLE_JOB 所有者:HR 说明:为本练习的下一部分创建 SESSION_HISTORY 表 事件记录级别:RUNS 命令类型:PL/SQL PL/SQL 块:BEGIN execute immediate('create table session_history(snap_time TIMESTAMP WITH LOCAL TIME ZONE, num_sessions NUMBER)'); END; (可以在 lab_14_02_01.sql 文件中找到此 PL/SQL 块。)

• 调度: 重复:不重复 起始时间:立即

• 选项: 无特殊选项

2. 创建一个名为 LOG_SESS_COUNT_PRGM 的程序,该程序将当前数据库会话数记录

到表中。使用以下代码(lab_14_02_02.sql 脚本中也提供了这些代码): DECLARE sess_count NUMBER; BEGIN SELECT COUNT(*) INTO sess_count FROM V$SESSION; INSERT INTO session_history VALUES (systimestamp, sess_count); COMMIT; END;

3. 创建一个由 HR 拥有的、名为 SESS_UPDATE_SCHED 的调度,该调度每三秒钟执行

一次。使用 SQL*Plus 和 DBMS_SCHEDULER.CREATE_SCHEDULE 过程创建该调度。

BEGIN DBMS_SCHEDULER.CREATE_SCHEDULE ( schedule_name => 'SESS_UPDATE_SCHED', start_date => SYSTIMESTAMP, repeat_interval => 'FREQ=SECONDLY;INTERVAL=3', comments => 'Every three seconds'); END; /

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 114: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II A-24

练习 14-2:创建调度程序组件(续)

返回 Oracle Enterprise Manager Database Control,然后确认是否已经创建 SESS_UPDATE_SCHED 调度。

提示:您可能必须刷新页面,该调度才能出现。

4. 使用 Oracle Enterprise Manager Database Control,创建一个名为 LOG_SESSIONS_JOB 的、使用 LOG_SESS_COUNT_PRGM 程序和 SESS_UPDATE_SCHED 调度的作业。确保该作业使用 FULL 事件记录。

5. 在 SQL*Plus 会话中,检查 HR.SESSION_HISTORY 表是否包含行。

问题:如果该表中包含行,那么时间戳是否相隔三秒?

_____________________________________

6. 使用 Oracle Enterprise Manager Database Control 将 SESS_UPDATE_SCHED 调度从

每三秒钟变更为每三分钟。然后,使用 SQL*Plus 验证现在是否每三分钟添加一行:

查询 HR.SESSION_HISTORY 表(按 SNAP_TIME 列排序)。

7. 以下是您必须完成的清理任务。使用 Oracle Enterprise Manager 删除 LOG_SESSIONS_JOB 和 CREATE_LOG_TABLE_JOB 作业、LOG_SESS_COUNT_PRGM 程序以及 SESS_UPDATE_SCHED 调度。使用 SQL*Plus 删除 SESSION_HISTORY 表,

然后退出会话。

注:请确保您没有误删调度。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 115: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II A-25

练习 15:数据库安全性

背景:您的组织提高了对数据库安全性的需求。已要求您准备为技术同事演示透明的

数据加密的工作方式。首先,您使用 Oracle Wallet Manager 创建一个新的加密 wallet。然后,以 SYSDBA 身份打开该 wallet,设置加密密钥,然后创建 TDE_DBA 用户。您以 TDE_DBA 用户身份创建 TDE 表空间,其中带有一个包含一行的 EMP_ENC 表。根据在

场听众所提出的问题,您将展示各种详细资料,包括 DBA_ENCRYPTED_COLUMNS 以及

在关闭 wallet 和打开 wallet 的情况下进行查询时所发生的事情。最后,您清理演示对象。

1. 在桌面上,使用 Oracle Wallet Manager 图形工具创建一个存储在 /home/oracle/labs 目录中的新的 wallet。请确保 wallet 使用的口令为 ora1cle2。

2. 确保将以下条目添加到 sqlnet.ora 文件中。在本课程中,该条目位于 walletlocation.ora 文件中。

WALLET_LOCATION= (SOURCE = (METHOD=file) (METHOD_DATA = (DIRECTORY=/home/oracle/labs)))

3. 以 SYSDBA 身份启动一个 SQL*Plus 会话,以便从您的实例中打开 wallet。请使用以

下命令:

ALTER SYSTEM SET ENCRYPTION WALLET OPEN IDENTIFIED BY "ora1cle2";

4. 在 SQL*Plus 会话中,以 SYSDBA 身份在实例中设置主密钥。您将需要使用 ALTER SYSTEM SET ENCRYPTION KEY 命令。

5. 在终端仿真程序会话中,执行 lab_15_05.sh 脚本。此脚本创建一个名为 TDE_DBA 的新用户,该用户由口令 TDE_DBA 标识。它还创建了一个名为 TDE 的、

存储在 ASM 外部的新的表空间。随后,此脚本创建了一个名为 EMP_ENC 的新表,

该表存储在 TDE 表空间中,并且由 TDE_DBA 所拥有。该表包含两个加密列:

SALARY 和 JOB。然后,脚本在新表中插入了一行。

6. 在 SQL*Plus 会话中,以 SYSDBA 身份确定数据库中的加密列的列表。然后,选择 EMP_ENC 表的所有行和列。

7. 在 SQL*Plus 会话中,以 SYSDBA 身份确保包含 EMP_ENC 表的文件中包含加密列的

值。使 TDE 表空间脱机,然后使用 OS 命令查看文件内容,并且将该表空间重新置

于联机状态。

Linux 语法:strings <directory>/<file_name> | more

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 116: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II A-26

练习 15:数据库安全性(续)

8. 在 SQL*Plus 会话中,以 SYSDBA 身份从实例中关闭 wallet,然后尝试选择 TDE_DBA.EMP_ENC 表中包含的数据。此时会看到什么结果?

_______________________________________________________________

现在,打开该 wallet 并重新查询 TDE_DBA.EMP_ENC 表。

9. 要清理环境,请从终端仿真程序会话中执行 lab_15_09.sh 脚本。该脚本将关闭 wallet,并删除 TDE 表空间和 TDE_DBA 用户。如果 Oracle Wallet Manager 仍处于

打开状态,请从中退出。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 117: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II A-27

练习 16:使用全球化支持

背景:您所在的公司收购了另外一家公司,该公司有一个庞大的法语用户群。一般情况

下,您不应该更改数据库本身,而应该使用更细的粒度来满足他们的需要。因此,您决

定主要使用特定于会话的设置来更改语言、日期和时间格式,以及解决排序问题。请使

用 system/oracle@orcl 作为数据库登录信息,并使用 /home/oracle/labs 作为

工作目录。

1. 通过打开浏览器并输入以下 URL,启动 iSQL*Plus:http://<hostname>: 5560/isqlplus;或者导航到 Oracle Enterprise Manager > Database(数据库)主页 > Related Links(相关链接)> iSQL*Plus。以 system 用户身份并使用 oracle 口令

和 orcl 连接标识符登录。

2. 通过查询 NLS_DATABASE_PARAMETERS 视图,确定数据库和国家字符集。

_________________________

_________________________

3. 熟悉 NLS 设置并修改当前日期格式。

a. 选择当前日期。

b. 年份不是使用四位数年份格式显示的。请更改会话以显示四位数的年份和当前时间

(包括秒)。

c. 在会话中显示法语文本。然后,显示当前系统日期和时间。

4. 导入 WORDS 表(该表位于 lab_16_04_a.dmp 文件中)。lab_16_04_a.sh 脚本

可以为您提供帮助。

该脚本创建一个名为 WORDS 的、包含四行的表。

5. 显示 WORDS 表的内容。

6. 对于您的会话,将 NLS_SORT 设置为 BINARY。选择表内容,并且按照 FR_WORD 列对结果进行排序。NUM 列中的数字是按照什么顺序显示的?

______________________________________________________________________

7. 接下来,将 NLS_SORT 设置为 FRENCH。选择表内容,并且按照 FR_WORD 列对结果

进行排序。NUM 列中的数字是按照什么顺序显示的?

______________________________________________________________________

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 118: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II A-28

练习 16:使用全球化支持(续)

8. 将 NLS_SORT 设置为 FRENCH_M。选择表内容,并且按照 FR_WORD 列对结果进行

排序。NUM 列中的数字是按照什么顺序显示的?

______________________________________________________________________

9. 将 NLS_SORT 设置为 BINARY。现在,按照与上一个查询相同的顺序检索表内容,

但不使用其他 ALTER SESSION 命令。

10. 删除该表,并且从回收站中将其删除。

11. 通过关闭窗口来关闭 iSQL*Plus 实例。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 119: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II A-29

课堂练习方案 1

背景:为了提供一致的起始点来开始课堂练习,需要复制您在本课程开头制作的数据库

的副本。有一个脚本能够完成该工作,并可以执行其他一些用于重置数据库状态的任务。

不过,此时的主要差别在于事实上 ASM 实例仍然可用。

1. 更改为 $HOME/workshops 目录,然后运行 ws_prep.sh 脚本,将数据库重置为

本课程开始时的状态。

2. 在 Oracle Enterprise Manager 中关闭然后启动 Database Control Console。请使用 emctl stop 和 start 指令执行此操作。

3. 以 SYS 用户身份,作为 SYSDBA 登录 Oracle Enterprise Manager,将数据库置于 ARCHIVELOG 模式,然后启用闪回事件记录功能。

4. 使用 RMAN,为您的控制文件和 SPFILE 配置 AUTOBACKUP。

5. 获取数据库的完整备份,包括已归档的日志。请使用尽可能少的空间来存储备份。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 120: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II A-30

课堂练习方案 2

背景:此课堂练习方案涉及到数据丢失。要制造该问题,请先从 Oracle Enterprise Manager 注销。然后,将目录更改为 $HOME/workshops,并且以 SYSTEM 用户身份,

使用 SQL*Plus 运行 wlab_02.sql 脚本。

转至 Oracle Enterprise Manager Console 并查看“Database(数据库)”页,开始进行调查。

将调查结果记录在“Observations(观测数据)”下。在确定问题以后,制定能够更正该

问题的计划。可能存在多个可行的解决方案。在“Methodology(方法)”下记录所有

可能解决该问题的方法。

您的工作是选取最佳解决方案来解决数据库问题。在应用解决方案以后,请确认该问题

已得到更正。将结果记录在“Results(结果)”下。

观测数据:在执行 wlab_02.sql 脚本之后,您会注意到数据库被关闭。试图重新启

动该实例会导致以下错误:

ORA-01157: cannot identify/lock data file 1 - see DBWR trace file ORA-01110: data file 1: '/u01/app/oracle/oradata/orcl/system01.dbf'

试图通过 Oracle Enterprise Manager 连接到数据库时,将显示一个信息屏幕,其中指示

“The database status is currently unavailable(数据库状态当前不可用)”。可以选择启

动数据库或执行恢复。

通过检查 $ORACLE_BASE/oradata/orcl 目录可以发现,SYSTEM 表空间的数据文件

丢失。

方法

由于有最新备份并且正在进行归档,所以最佳解决方案是使用完全恢复功能来恢复丢失

的数据文件。使用 Oracle Enterprise Manager,单击“Startup(启动)”以尝试启动数据

库。然后,启动会失败,并且将数据库置于 MOUNT 状态。使用对象级别恢复功能,将 SYSTEM 数据文件恢复到当前时间。

结果

• 数据库现在处于打开状态并且可供用户使用。现在,允许使用 SQL*Plus 和 EM 连接。

• “Database(数据库)”主页中没有列出任何预警。 • 防止此问题发生的唯一方式是先确定数据文件丢失的原因,然后防止这一情况

再次发生。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 121: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II A-31

课堂练习方案 3

背景:研究 ASM 存储配置、磁盘和磁盘组。向现有磁盘组中添加磁盘,并且观察重新

平衡操作的执行过程。

除非另行指定,否则需要以 SYSDBA 用户身份通过 Database Control 或 SQL*Plus 登录。

1. 创建一个名为 TBSASM 的、使用 ASM 存储的表空间。它应该使用名为 +DGROUP1 的 ASM 磁盘组,大小应该为 200 MB。

2. 导航到“Database(数据库)”主页,并且查看左上角的“General(一般信息)”

区域中提供的链接。请注意,没有与 ASM 实例有关的链接。

3. 对 Oracle Enterprise Manager 进行配置,以便在“Database(数据库)”主页上提供 ASM 链接。

注:在完成此步骤时,需要存在与 ORCL 实例相关联的 ASM 存储。这就是必须在此

步骤之前创建 TBSASM 表空间的原因。

在 OS 命令提示符下,输入以下命令系列。命令以及对提示的响应以粗体显示,以便

您轻松地理解它们。 $ emca -deconfig dbcontrol db STARTED EMCA at Oct 13, 2005 12:41:40 AM EM Configuration Assistant, Version 10.2.0.1.0 Production Copyright (c) 2003, 2005, Oracle. All rights reserved. 输入以下信息: Database SID: orcl Do you wish to continue? [yes(Y)/no(N)]: Y Oct 13, 2005 12:41:54 AM oracle.sysman.emcp.EMConfig perform INFO: This operation is being logged at /u01/app/oracle/product/10.2.0/db_1/cfgtoollogs/emca/orcl/emca_2005-10-13_12-41-40-AM.log. Oct 13, 2005 12:41:55 AM oracle.sysman.emcp.util.DBControlUtil stopOMSINFO: Stopping Database Control (this may take a while) ... Enterprise Manager configuration completed successfully FINISHED EMCA at Oct 13, 2005 12:42:02 AM 厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 122: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II A-32

课堂练习方案 3(续)

$ emca -config dbcontrol db STARTED EMCA at Oct 13, 2005 12:42:52 AM EM Configuration Assistant, Version 10.2.0.1.0 Production Copyright (c) 2003, 2005, Oracle. All rights reserved. 输入以下信息: Database SID: orcl Listener port number: 1521 Password for SYS user: oracle Password for DBSNMP user: oracle Password for SYSMAN user: oracle Email address for notifications (optional): <只需按 enter 即可> Outgoing Mail (SMTP) server for notifications (optional): <只需按 enter 即可> ASM ORACLE_HOME [ /u01/app/oracle/product/10.2.0/db_1 ]: <只需按 enter 即可> ASM SID [ +ASM ]: <只需按 enter 即可> ASM port [ 1521 ]: <只需按 enter 即可> ASM user role [ SYSDBA ]: <只需按 enter 即可> ASM username [ SYS ]: <只需按 enter 即可> ASM user password: oracle ----------------------------------------------------------------- 您已指定下列设置 Database ORACLE_HOME ................ /u01/app/oracle/product/10.2.0/db_1 Database hostname ................ edbsr5p0.us.oracle.com Listener port number ................ 1521 Database SID ................ orcl Email address for notifications ............... Outgoing Mail (SMTP) server for notifications ............... ASM ORACLE_HOME ................ /u01/app/oracle/product/10.2.0/db_1 ASM SID ................ +ASM ASM port ................ 1521 ASM user role ................ SYSDBA ASM username ................ SYS ----------------------------------------------------------------- Do you wish to continue? [yes(Y)/no(N)]: Y Oct 13, 2005 12:43:42 AM oracle.sysman.emcp.EMConfig perform INFO: This operation is being logged at /u01/app/oracle/product/10.2.0/db_1/cfgtoollogs/emca/orcl/emca_2005-10-13_12-42-52-AM.log. Oct 13, 2005 12:43:58 AM oracle.sysman.emcp.util.DBControlUtil startOMS INFO: Starting Database Control (this may take a while) ... Oct 13, 2005 12:45:45 AM oracle.sysman.emcp.EMDBPostConfig performConfiguration INFO: Database Control started successfully Oct 13, 2005 12:45:45 AM oracle.sysman.emcp.EMDBPostConfig performConfiguration INFO: >>>>>>>>>>> The Database Control URL is http://edbsr5p0.us.oracle.com:1158/em <<<<<<<<<<< Enterprise Manager configuration completed successfully FINISHED EMCA at Oct 13, 2005 12:45:45 AM [oracle@edbsr5p0 oracle]$

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 123: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II A-33

课堂练习方案 3(续)

4. 在“Database(数据库)”主页上单击 ASM 实例的链接。

:

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 124: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II A-34

课堂练习方案 3(续)

5. 单击饼图可查看磁盘组信息。系统将提示您输入 ASM 实例的登录身份证明,即 SYS 和 oracle,它们分别是用户名和口令。请输入上述信息,然后单击“Login(登录)”。

注:可能需要几分钟时间才能显示该饼图。

6. 记下为该磁盘组中的每个磁盘所使用的百分比。

7. 向 TBSASM 表空间中添加另一个大小为 200 MB 的数据文件。

8. 返回磁盘组列表,并且记下每个磁盘上的已用空间的变化。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 125: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II A-35

课堂练习方案 3(续)

9. 通过单击此页上的“Add(添加)”,向该磁盘组中添加另一个大小为 400 MB 的磁盘。将该磁盘命名为 DGROUP1_0004。

10. 返回磁盘成员列表,然后连续单击浏览器的“Reload(重新加载)”按钮,直到磁盘

平衡为止。请注意,新磁盘开始时是空的,但最终将包含与其他四个磁盘大约相同

数量的数据。

11. 在重新平衡完成之后,从该磁盘组中删除 DGROUP1_0001 磁盘和 DGROUP1_0003 磁盘,并且以相同的方式查看重新平衡操作。

12. 通过在 SQL 提示符下输入以下命令来删除表空间:

SQL> DROP TABLESPACE TBSASM INCLUDING CONTENTS AND DATAFILES;

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 126: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II A-36

课堂练习方案 4

背景:此课堂练习方案模拟数据丢失情况。要制造该问题,请将目录更改为 $HOME/workshops,然后以 SYS 用户身份运行 wlab_04.sql 脚本,如下所示:

SQL> @wlab_04.sql

转至 Oracle Enterprise Manager Console 并查看“Database(数据库)”页,开始进行调查。

将调查结果记录在“Observations(观测数据)”下。在确定问题以后,制定能够更正

该问题的计划。可能存在多个可行的解决方案。在应用解决方案以后,请确认该问题已

得到更正。

1. 以 SYS 用户身份运行 wlab_04.sql 脚本,模拟该问题。您会注意到,系统报告 HR.DEPARTMENTS 表已丢失。

2. 查询回收站,以确定其中是否存在任何相关的表。

3. 通过查询 HR.DEPARTMENTS 表对其进行测试。

4. 从回收站中闪回 HR.DEPARTMENTS 表。

5. 针对 DEPARTMENTS 表执行一个选择操作,确认“Flashback Table(闪回表)”操作

成功。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 127: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II A-37

课堂练习方案 5

背景:此课堂练习方案与数据库可用性有关。要制造该问题,请先从 Oracle Enterprise Manager 注销。然后,将目录更改为 $HOME/workshops,并以 SYS 用户身份运行 wlab_05.sql 脚本,如下所示:

SQL> @wlab_05.sql

转至 Oracle Enterprise Manager Console 并查看“Database(数据库)”页,开始进行调查。

将调查结果记录在“Observations(观测数据)”下。在确定问题以后,制定能够更正

该问题的计划。可能存在多个可行的解决方案。在“Methodology(方法)”下记录所

有可能解决该问题的方法。

您的工作是选取最佳解决方案来解决数据库问题。在应用解决方案以后,请确认该问题

已得到更正。将结果记录在“Results(结果)”下。

观测数据:在执行 wlab_05.sql 脚本之后,您会注意到数据库被关闭。试图重新启动

该实例会导致以下错误:

ORA-01157: cannot identify/lock data file 4 - see DBWR trace file ORA-01110: data file 4: '/u01/app/oracle/oradata/orcl/users01.dbf'

试图通过 Oracle Enterprise Manager 连接到数据库时,将显示一个信息屏幕,其中指示

“The database status is currently unavailable(数据库状态当前不可用)”。可以选择启

动数据库或执行恢复。

方法

由于有最新备份并且正在进行归档,所以最佳解决方案是使用完全恢复功能来恢复丢失

的数据文件。

1. 使用 RMAN 恢复丢失的数据文件。启动 RMAN 会话并发出 run 命令。

2. 恢复操作失败。检查 RMAN 输出以确定失败原因。可以在输出中找到以下类型的

错误:

ORA-00283: recovery session canceled due to errors ORA-00313: open failed for members of log group 2 of thread 1 ORA-00312: online log 2 thread 1: '/u01/app/oracle/oradata/orcl/redo02b.log' ORA-27037: unable to obtain file status Linux Error: 2: No such file or directory

您检查了数据文件目录,并且看到所有联机重做日志都已丢失。

3. 由于没有备份联机重做日志,因此没有办法恢复它们。必须使用不完全恢复来打开

数据库。通过查询 v$archived_log 视图,确定上次归档的重做日志的序列号。

请在此处记录该序列号: ________________

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 128: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II A-38

课堂练习方案 5(续)

4. 要执行不完全恢复,必须还原所有数据文件,而不仅仅是丢失的文件 (users01.dbf)。发出一个 RMAN run 命令,还原到您在步骤 3 中记录的日志序

列号(含)。请将此数字加 1,以此作为 RMAN 命令中的序列号。

5. 检查 RMAN 输出,该输出表明恢复成功。

6. 重新登录 Oracle Enterprise Manager,确认数据库已经恢复。如果控制台指示数据库

仍未启动,请单击“Administration(管理)”选项卡,然后单击“Tablespaces(表空间)”。确认所有表空间都已列出并处于联机状态。然后,单击“Database(数据库)”选项卡以返回“Database(数据库)”主页,该页现在应该正确显示。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 129: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

________________

附录 B 练习解答

________________

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 130: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-2

练习 2 的解答:配置 Oracle Recovery Manager

背景:您需要配置备份和恢复设置。其中一些设置是使用 RMAN 来完成的,而另外

一些是使用 Oracle Enterprise Manager 完成的。除非以后被覆盖,否则,这些设置将为您

将来执行的备份和恢复活动提供相应配置。这些配置包括对保留策略、控制文件自动备

份和排除的表空间进行定义。

重要说明:在开始其他任何工作之前,作为本课程结束时课堂练习的准备工作,请在 XTerm 命令 Shell 中运行以下脚本,准备好数据库文件的副本:

$ $HOME/labs/lab_02_copy.sh

1. 在 XTerm 窗口中,将 NLS_DATE_FORMAT 环境变量设置为“yyyy-mm-dd hh24:mi:ss”,然后,以 SYS 用户身份在默认的 NOCATALOG 模式下连接到作为

目标数据库的数据库。

a. 双击桌面上的 XTerm 图标。

b. 在 Xterm 窗口中,输入下列信息:

$ export NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss" $ rman target / nocatalog Recovery Manager: Release 10.2.0.1.0 - Production on Tue Dec 13 13:43:48 2005 Copyright (c) 1982, 2005, Oracle. All rights reserved. connected to target database: ORCL (DBID=1090770270) using target database control file instead of recovery catalog RMAN>

2. 使用 RMAN SHOW ALL 命令生成 RMAN 配置设置的列表。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 131: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-3

练习 2 的解答:配置 Oracle Recovery Manager(续)

a. 在 RMAN 提示符下输入以下命令:

RMAN> show all; RMAN configuration parameters are: CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default CONFIGURE BACKUP OPTIMIZATION OFF; # default CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default CONFIGURE MAXSETSIZE TO UNLIMITED; # default CONFIGURE ENCRYPTION FOR DATABASE OFF; # default CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u01/app/oracle/product/10.2.0/db_1/dbs/snapcf_orcl.f'; # default

3. 对 RMAN 进行配置,以便每次获取数据库或数据文件的备份时,都会自动备份控制

文件和 SPFILE。

a. 在 RMAN 会话中输入以下命令:

RMAN> configure controlfile autobackup on; new RMAN configuration parameters: CONFIGURE CONTROLFILE AUTOBACKUP ON; new RMAN configuration parameters are successfully stored RMAN>

b. 使 RMAN 会话保持连接状态。您还会用到它。

4. 使用 Oracle Enterprise Manager 数据库控制台,可保留两天内的所有备份。以 SYS 用

户身份作为 SYSDBA 登录数据库控制台。如果您是第一次以 SYS 用户身份登录 EM,

则需要单击“License Agreement(许可协议)”屏幕上的“I agree(我同意)”。

a. 双击计算机桌面上的 Mozilla 图标。

b. 在“Select User Profile(选择用户概要文件)”窗口中出现提示时,将突出显示

“oracle”,然后单击“Start Mozilla(启动 Mozilla)”。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 132: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-4

练习 2 的解答:配置 Oracle Recovery Manager(续)

c. 导航到 Database Control 的 URL。URL 的格式为:

http://<machine_name>.us.oracle.com:1158/em

您的机器名将出现在已启动的 Xterm 窗口的左上角。您还可以查看 $ORACLE_HOME/install/readme.txt 文件,并在“Enterprise Manager 10g Database Control URL”标题下查找 URL。

d. 输入用户名 SYS 和口令 oracle,并为“Connect As(连接身份)”设置选择 SYSDBA。

e. 如果出现“License Agreement(许可协议)”页,请单击该页底部的“I agree (我同意)”。

f. 单击“Maintenance(维护)”标签页。

g. 在“Backup/Recovery Settings(备份/恢复设置)”区域中单击“Backup Settings(备份设置)”链接。

h. 单击“Policy(策略)”选项卡。

i. 向下滚动至“Retention Policy(保留策略)”区域。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 133: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-5

练习 2 的解答:配置 Oracle Recovery Manager(续)

j. 选择“Retain backups that are necessary for a recovery to any time within the specified number of days…(保留恢复到指定天数内任意时间的状态所需的备份…)”并指

定值为 2。要保存修改过的“Retention Policy(保留策略)”详细资料,请输入

“Host Credentials(主机身份证明)”:oracle/oracle,选择“Save as Preferred Credential(另存为首选身份证明)”,然后单击“OK(确定)”。

5. 使用 RMAN 实用程序和 SHOW 命令验证备份保留策略设置。

a. 使用在步骤 3 中保留为连接状态的 RMAN 会话,并输入下列命令:

RMAN> show retention policy; RMAN configuration parameters are: CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 2 DAYS; RMAN>

6. 应用程序开发人员告诉您每天要从外部源加载数据,并且需要为该数据设置一个

登台区。运行 lab_02_06.sql 脚本以创建 STAGING 表空间,用于存放此数据。

然后配置 RMAN,从备份任务中排除此表空间。这样做的原因是,如果丢失了此

数据,则无需恢复它,而可以简单地从外部源重新加载此数据。然后,确认该表空

间被排除。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 134: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-6

练习 2 的解答:配置 Oracle Recovery Manager(续)

a. 通过双击 Xterm 图标启动一个新的 XTerm 窗口,然后输入下列命令以运行 lab_02_06.sql 脚本:

$ cd $HOME/labs $ sqlplus system/oracle @lab_02_06.sql SQL> SQL> CREATE SMALLFILE TABLESPACE "STAGING" DATAFILE '/u01/app/oracle/oradata/orcl/staging01.dbf' SIZE 3M REUSE NOLOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO 2 / Tablespace created. SQL> create table hr.staging_tab tablespace staging as select * from all_objects where rownum < 11 2 / Table created. SQL> set echo off STAGING tablespace created and populated with one table. SQL> quit Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options $

b. 返回到 RMAN 会话并输入此命令:

RMAN> CONFIGURE EXCLUDE FOR TABLESPACE STAGING; tablespace STAGING will be excluded from future whole database backups new RMAN configuration parameters are successfully stored RMAN>

c. 在 RMAN 提示符下输入以下命令:

RMAN> show exclude; RMAN configuration parameters are: CONFIGURE EXCLUDE FOR TABLESPACE 'STAGING'; RMAN>

7. 退出 RMAN。

RMAN> exit

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 135: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-7

练习 3 的解答:使用 Recovery Manager

背景:在本练习中,您将熟练掌握如何使用 RMAN 来执行和管理备份。您需要将数据库

置于 ARCHIVELOG 模式,并对数据库进行完全备份。

1. 使用 SQL*Plus 或 EM 数据库控制台,确认该数据库处于 ARCHIVELOG 模式。如果

不是,请变更该数据库以启用联机重做日志的归档。请注意,该数据库必须处于 MOUNT 状态,才能更改归档日志模式。

注:步骤 (a) 到步骤 (f) 涉及到使用 Oracle Enterprise Manager。步骤 (g) 到步骤 (k) 涉及到使用 SQL*Plus。可以任意选择。

a. 要选择使用 EM,请确保您仍以 SYS 用户身份登录,并转到 EM 的“Maintenance(维护)”页。在“Backup/Recovery Settings(备份/恢复设置)”区域中单击

“Recovery Settings(恢复设置)”。

b. 查看在“Media Recovery(介质恢复)”区域中是否选中了“ARCHIVELOG Mode(ARCHIVELOG 模式)”。如果没有,请将其选中,并单击“Apply(应用)”。

c. 在“Confirmation(确认)”页上单击“Yes(是)”,确认将立即重新启动该

数据库。

d. 在“Credentials(身份证明)”页上,输入“Host Credentials(主机身份证明)”:

“Username(用户名)”和“Password(口令)”分别为 oracle 和 oracle。如果以前已选择将其保存为首选的身份证明,则系统已为您填写好此信息。然后,

单击“OK(确定)”。

e. 在“Restart Database: Confirmation(重新启动数据库:确认)”页中,单击

“Yes(是)”。然后,单击“Refresh(刷新)”,直至出现 EM 的“Login (登录)”页。这需要一到两分钟的时间。

注:如果看到以下错误,请单击“OK(确定)”,然后继续单击“Refresh (刷新)”。此错误最终将会消失。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 136: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-8

练习 3 的解答:使用 Recovery Manager(续)

f. 在“Login(登录)”页上,以 SYS 身份登录(口令为 oracle,连接身份为 SYSDBA)。

g. 此外,要使用 SQL*Plus,可以通过输入以下命令进行登录:

$ sqlplus / as sysdba

h. 输入以下命令,确定数据库当前的归档模式:

SQL> ARCHIVE LOG LIST

i. 请注意,数据库当前并未归档。输入以下命令以关闭数据库,准备更改归档日志

模式:

SQL> SHUTDOWN IMMEDIATE

j. 通过输入以下命令来装载数据库:

SQL> STARTUP MOUNT

k. 通过输入以下命令,将数据库置于 ARCHIVELOG 模式:

SQL> ALTER DATABASE ARCHIVELOG;

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 137: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-9

练习 3 的解答:使用 Recovery Manager(续)

l. 通过输入以下命令,验证归档日志模式:

SQL> ARCHIVE LOG LIST

m. 通过输入以下命令来打开数据库:

SQL> ALTER DATABASE OPEN;

2. 在 NOCATALOG 模式下使用 RMAN 连接到数据库。不能使用现有的 RMAN 会话,

因为数据库已重新启动。首先,请确保已在 XTerm Shell 中按照练习 2 中的指示

设置了 NLS_LANG 环境变量。

a. 在 Xterm 提示符下输入以下命令:

$ export NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss" $ rman target / NOCATALOG

3. 使用 RMAN REPORT 命令生成数据库结构的列表。

a. 在 RMAN 提示符下输入以下命令:

RMAN> REPORT SCHEMA; Report of database schema List of Permanent Datafiles =========================== File Size(MB) Tablespace RB segs Datafile Name ---- -------- ---------- ------- ------------------------ 1 490 SYSTEM *** /u01/app/oracle/oradata/orcl/system01.dbf 2 50 UNDOTBS1 *** /u01/app/oracle/oradata/orcl/undotbs01.dbf 3 270 SYSAUX *** /u01/app/oracle/oradata/orcl/sysaux01.dbf 4 5 USERS *** /u01/app/oracle/oradata/orcl/users01.dbf 5 100 EXAMPLE *** /u01/app/oracle/oradata/orcl/example01.dbf 6 3 STAGING *** /u01/app/oracle/oradata/orcl/staging01.dbf List of Temporary Files ======================= File Size(MB) Tablespace Maxsize(MB) Tempfile Name ---- -------- ---------- ----------- -------------------- 1 25 TEMP 32767 /u01/app/oracle/oradata/orcl/temp01.dbf RMAN>

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 138: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-10

练习 3 的解答:使用 Recovery Manager(续)

4. 获取当前存在的所有数据库备份集的列表。现在应该没有这样的备份。

a. 在 RMAN 提示符下输入以下命令:

RMAN> LIST BACKUP OF DATABASE; RMAN>

5. 使用 RMAN 备份属于 EXAMPLE 和 USERS 表空间的数据文件。确认以下各项:

• 当前控制文件和服务器参数文件已通过此备份操作进行了备份 • 备份已放入快速恢复区 • 备份的格式为备份集

a. 在 RMAN 提示符下输入以下命令:

RMAN> BACKUP AS BACKUPSET TABLESPACE users, example;

下面是此命令的输出:

RMAN> BACKUP AS BACKUPSET TABLESPACE users, example; Starting backup at 2005-12-14 05:16:03 allocated channel: ORA_DISK_1 channel ORA_DISK_1: sid=132 devtype=DISK channel ORA_DISK_1: starting full datafile backupset channel ORA_DISK_1: specifying datafile(s) in backupset input datafile fno=00005 name=/u01/app/oracle/oradata/orcl/example01.dbf input datafile fno=00004 name=/u01/app/oracle/oradata/orcl/users01.dbf channel ORA_DISK_1: starting piece 1 at 2005-12-14 05:16:05 channel ORA_DISK_1: finished piece 1 at 2005-12-14 05:16:12 piece handle=/u01/app/oracle/flash_recovery_area/ORCL/backupset/2005_12_14/ o1_mf_nnndf_TAG20051214T051604_1t06ro3k_.bkp tag=TAG20051214T051604 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:08 Finished backup at 2005-12-14 05:16:12 Starting Control File and SPFILE Autobackup at 2005-12-14 05:16:12 piece handle=/u01/app/oracle/flash_recovery_area/ORCL/autobackup/2005_12_14/ o1_mf_s_576998172_1t06rwqq_.bkp comment=NONE Finished Control File and SPFILE Autobackup at 2005-12-14 05:16:15 RMAN>

b. 请注意输出中控制文件和 spfile 的自动备份。此外请注意,备份集被写入快速

恢复区中。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 139: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-11

练习 3 的解答:使用 Recovery Manager(续)

6. 创建两个数据文件的映像副本。使用以下信息:

• 在快速恢复区中制作 SYSTEM 表空间的映像副本,并使用 SYSTEM01 标记。 • 在 ORACLE_HOME 目录中制作 SYSAUX 表空间的映像副本,并使用 SYSAUX01 标记

将副本命名为 sysaux01.cpy。

上述这两个备份文件的位置分别在哪里?

a. 在 RMAN 提示符下输入以下命令:如果没有 FORMAT 关键字,文件将自动转至

快速恢复区。

RMAN> BACKUP AS COPY TABLESPACE SYSTEM TAG=SYSTEM01;

下面是此命令的输出:

RMAN> BACKUP AS COPY TABLESPACE SYSTEM TAG=SYSTEM01; Starting backup at 2005-12-14 05:27:35 using channel ORA_DISK_1 channel ORA_DISK_1: starting datafile copy input datafile fno=00001 name=/u01/app/oracle/oradata/orcl/system01.dbf output filename=/u01/app/oracle/flash_recovery_area/ORCL/datafile/o1_mf_system_1t07g7kj_.dbf tag=SYSTEM01 recid=2 stamp=576998914 channel ORA_DISK_1: datafile copy complete, elapsed time: 00:01:06 Finished backup at 2005-12-14 05:28:41 Starting Control File and SPFILE Autobackup at 2005-12-14 05:28:42 piece handle=/u01/app/oracle/flash_recovery_area/ORCL/autobackup/2005_12_14/ o1_mf_s_576998922_1t07jcsf_.bkp comment=NONE Finished Control File and SPFILE Autobackup at 2005-12-14 05:28:45 RMAN>

上面突出显示了此备份文件的输出文件。您的答案可以与此不同。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 140: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-12

练习 3 的解答:使用 Recovery Manager(续)

b. 在 RMAN 提示符下输入以下命令:如果 FORMAT 关键字只指定文件名,则文件

将自动转至 $ORACLE_HOME/dbs 目录。

RMAN> BACKUP AS COPY 2> FORMAT 'sysaux01.cpy' 3> TABLESPACE SYSAUX 4> TAG=SYSAUX01;

下面是此命令的输出:

RMAN> BACKUP AS COPY FORMAT 'sysaux01.cpy' TABLESPACE SYSAUX TAG=SYSAUX01; Starting backup at 2005-12-14 05:34:47 using channel ORA_DISK_1 channel ORA_DISK_1: starting datafile copy input datafile fno=00003 name=/u01/app/oracle/oradata/orcl/sysaux01.dbf output filename=/u01/app/oracle/product/10.2.0/db_1/dbs/sysaux01.cpy tag=SYSAUX01 recid=3 stamp=576999322 channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:35 Finished backup at 2005-12-14 05:35:23 Starting Control File and SPFILE Autobackup at 2005-12-14 05:35:23 piece handle=/u01/app/oracle/flash_recovery_area/ORCL/autobackup/2005_12_14/ o1_mf_s_576999323_1t07wwt5_.bkp comment=NONE Finished Control File and SPFILE Autobackup at 2005-12-14 05:35:26 RMAN>

上面突出显示了此备份文件的输出文件。您的答案应该与此完全匹配。

7. 获取所有尚未备份的数据库文件的列表。请注意,STAGING 表空间仍然被排除在

备份之外。

a. 在 RMAN 提示符下输入以下命令:

RMAN> REPORT NEED BACKUP; RMAN retention policy will be applied to the command RMAN retention policy is set to recovery window of 2 days Report of files that must be backed up to satisfy 2 days recovery window File Days Name ---- ----- ----------------------------------------------------- 2 167 /u01/app/oracle/oradata/orcl/undotbs01.dbf file 6 is excluded from whole database backup RMAN>

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 141: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-13

练习 3 的解答:使用 Recovery Manager(续)

8. 获取数据库的完整备份,包括已归档的日志。请使用尽可能少的空间来存储备份。

还要确保包括以前排除的表空间(仅对此备份而言)。然后,列出需要备份的文

件,并且列出数据库备份。

a. 在 RMAN 提示符下输入以下命令:

RMAN> BACKUP NOEXCLUDE AS COMPRESSED BACKUPSET DATABASE PLUS ARCHIVELOG;

下面是此命令的输出:

RMAN> BACKUP NOEXCLUDE AS COMPRESSED BACKUPSET DATABASE PLUS ARCHIVELOG; Starting backup at 2005-12-14 06:06:54 current log archived using channel ORA_DISK_1 channel ORA_DISK_1: starting compressed archive log backupset channel ORA_DISK_1: specifying archive log(s) in backup set input archive log thread=1 sequence=12 recid=1 stamp=577001221 channel ORA_DISK_1: starting piece 1 at 2005-12-14 06:07:03 channel ORA_DISK_1: finished piece 1 at 2005-12-14 06:07:10 piece handle=/u01/app/oracle/flash_recovery_area/ORCL/backupset/2005_12_14/ o1_mf_annnn_TAG20051214T060701_1t09r7kk_.bkp tag=TAG20051214T060701 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:08 Finished backup at 2005-12-14 06:07:10 Starting backup at 2005-12-14 06:07:10 using channel ORA_DISK_1 channel ORA_DISK_1: starting compressed full datafile backupset channel ORA_DISK_1: specifying datafile(s) in backupset input datafile fno=00001 name=/u01/app/oracle/oradata/orcl/system01.dbf input datafile fno=00003 name=/u01/app/oracle/oradata/orcl/sysaux01.dbf input datafile fno=00005 name=/u01/app/oracle/oradata/orcl/example01.dbf input datafile fno=00002 name=/u01/app/oracle/oradata/orcl/undotbs01.dbf input datafile fno=00004 name=/u01/app/oracle/oradata/orcl/users01.dbf input datafile fno=00006 name=/u01/app/oracle/oradata/orcl/staging01.dbf channel ORA_DISK_1: starting piece 1 at 2005-12-14 06:07:11 channel ORA_DISK_1: finished piece 1 at 2005-12-14 06:09:27 piece handle=/u01/app/oracle/flash_recovery_area/ORCL/backupset/2005_12_14/ o1_mf_nnndf_TAG20051214T060710_1t09rj5m_.bkp tag=TAG20051214T060710 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:02:16 Finished backup at 2005-12-14 06:09:28 Starting backup at 2005-12-14 06:09:28 current log archived using channel ORA_DISK_1 channel ORA_DISK_1: starting compressed archive log backupset

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 142: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-14

练习 3 的解答:使用 Recovery Manager(续) input archive log thread=1 sequence=13 recid=2 stamp=577001370 channel ORA_DISK_1: starting piece 1 at 2005-12-14 06:09:33 channel ORA_DISK_1: finished piece 1 at 2005-12-14 06:09:34 piece handle=/u01/app/oracle/flash_recovery_area/ORCL/backupset/2005_12_14/ o1_mf_annnn_TAG20051214T060932_1t09wxy0_.bkp tag=TAG20051214T060932 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:02 Finished backup at 2005-12-14 06:09:34 Starting Control File and SPFILE Autobackup at 2005-12-14 06:09:35 piece handle=/u01/app/oracle/flash_recovery_area/ORCL/autobackup/2005_12_14/ o1_mf_s_577001376_1t09x2qc_.bkp comment=NONE Finished Control File and SPFILE Autobackup at 2005-12-14 06:09:43

b. 在 RMAN 提示符下输入以下命令:

RMAN> REPORT NEED BACKUP;

下面是此命令的输出:

RMAN> REPORT NEED BACKUP; RMAN retention policy will be applied to the command RMAN retention policy is set to recovery window of 2 days Report of files that must be backed up to satisfy 2 days recovery window File Days Name ---- ----- ----------------------------------------------------- file 6 is excluded from whole database backup RMAN>

c. 在 RMAN 提示符下输入以下命令:

RMAN> LIST BACKUP OF DATABASE;

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 143: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-15

练习 3 的解答:使用 Recovery Manager(续)

下面是该命令的输出:

RMAN> LIST BACKUP OF DATABASE; List of Backup Sets =================== BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ ------------------- 3 Full 60.12M DISK 00:00:07 2005-12-14 05:16:11 BP Key: 3 Status: AVAILABLE Compressed: NO Tag: TAG20051214T051604 Piece Name: /u01/app/oracle/flash_recovery_area/ORCL/backupset/2005_12_14/o1_mf_nnnd f_TAG20051214T051604_1t06ro3k_.bkp List of Datafiles in backup set 3 File LV Type Ckp SCN Ckp Time Name ---- -- ---- ---------- ------------------- ---- 4 Full 697766 2005-12-14 05:16:05 /u01/app/oracle/oradata/orcl/users01.dbf 5 Full 697766 2005-12-14 05:16:05 /u01/app/oracle/oradata/orcl/example01.dbf BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ ------------------- 8 Full 122.48M DISK 00:02:05 2005-12-14 06:09:16 BP Key: 8 Status: AVAILABLE Compressed: YES Tag: TAG20051214T060710 Piece Name: /u01/app/oracle/flash_recovery_area/ORCL/backupset/2005_12_14/o1_mf_nnndf_TAG20051214T060710_1t09rj5m_.bkp List of Datafiles in backup set 8 File LV Type Ckp SCN Ckp Time Name ---- -- ---- ---------- ------------------- ---- 1 Full 700545 2005-12-14 06:07:11 /u01/app/oracle/oradata/orcl/system01.dbf 2 Full 700545 2005-12-14 06:07:11 /u01/app/oracle/oradata/orcl/undotbs01.dbf 3 Full 700545 2005-12-14 06:07:11 /u01/app/oracle/oradata/orcl/sysaux01.dbf 4 Full 700545 2005-12-14 06:07:11 /u01/app/oracle/oradata/orcl/users01.dbf 5 Full 700545 2005-12-14 06:07:11 /u01/app/oracle/oradata/orcl/example01.dbf 6 Full 700545 2005-12-14 06:07:11 /u01/app/oracle/oradata/orcl/staging01.dbf RMAN>

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 144: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-16

练习 3 的解答:使用 Recovery Manager(续)

9. 配置 RMAN,以便在将来所有的备份中包括 STAGING 表空间。

a. 在 RMAN 提示符下输入以下命令:

RMAN> CONFIGURE EXCLUDE FOR TABLESPACE STAGING CLEAR; tablespace STAGING will be included in future whole database backups old RMAN configuration parameters are successfully deleted RMAN>

注:如果在练习 2 中,您在命令中将 STAGING 放到引号中,从而将其从备份中排除,

则对于此命令,仍然必须这样做,并且所使用的大小写必须与练习 2 中的大小写

一致。

10. 退出 RMAN。

a. 在 RMAN 提示符下输入以下命令:

RMAN> exit

11. 既然已具有完整的数据库备份,请删除由 system01.dbf 和 sysaux01.dbf 数据

文件构成的映像副本备份。这可以节省一些磁盘空间。请使用 Oracle Enterprise Manager 完成此工作。

a. 以 SYS 用户身份,使用口令 oracle 登录到 Oracle Enterprise Manager,并作为 SYSDBA 连接时,请在“Database(数据库)”页上单击“Maintenance(维护)”

标签页。然后,在“Backup/Recovery(备份/恢复)”区域中单击“Manage Current Backups(管理当前备份)”。

b. 单击“Image Copies(映像副本)选项卡。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 145: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-17

练习 3 的解答:使用 Recovery Manager(续)

c. 选择标记为 SYSAUX01 和 SYSTEM01 的两个映像副本,然后单击“Delete(删除)”。

d. 在“Confirmation(确认)”页上单击“Yes(是)”。然后,等待成功完成的

消息。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 146: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-18

练习 4 的解答:恢复不太严重的损失

背景:对于数据库,定义了默认 TEMP 表空间。当无法在内存中执行排序以及其他需要

消耗大量内存的操作时,这是用来执行这些操作的地方。如果 TEMP 表空间的数据文件

丢失或损坏,则只需要向 TEMP 表空间中添加一个新文件,并删除旧文件即可。而且,

只有重做日志成员在丢失或损坏时需要重新创建。在下面的练习中,您将遇到并处理

一个丢失的属于 TEMP 表空间的临时文件,以及一个丢失的联机重做日志成员。请注意,

HR 用户的口令是 hr。

1. 使用 Oracle Enterprise Manager 查看所有初始化参数。

a. 在 EM 中,单击“Administration(管理)”标签页上的“All Initialization Parameters(所有初始化参数)”。请注意,参数是可以查看的。

2. 运行 lab_04_02.sh 脚本以删除 TEMP 表空间中的临时文件。

a. 在 XTerm 窗口的 Linux 提示符下输入以下命令。

$ cd $HOME/labs $ ./lab_04_02.sh

3. 在 Oracle Enterprise Manager 中,再次尝试查看所有初始化参数。应该看到一条与丢失

的 temp01.dbf 文件有关的错误。

a. 在 EM 中,单击“Administration(管理)”标签页上的“All Initialization Parameters(所有初始化参数)”。应显示此错误:

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 147: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-19

练习 4 的解答:恢复不太严重的损失(续)

注:如果没有看到该错误,请从 Oracle Enterprise Manager 注销并重新登录。通过在

该页的右上角单击“Logout(注销)”来执行此操作。然后,按照步骤 2-4 (d) 中的

说明进行登录。接着,重新尝试上述步骤。

4. 通过在 TEMP 表空间中创建一个新的临时文件并删除丢失的文件,从临时文件丢失

错误中恢复。新的临时文件的大小应该为 25 MB,并且应该可以扩展到 100 MB 大小。然后,请按照步骤 3 中的说明,再次尝试查看初始化参数。

a. 以 SYS 用户身份登录 SQL*Plus。

$ sqlplus / as sysdba

b. 在 TEMP 表空间中创建新的临时文件,并将其命名为

‘u01/app/oracle/oradata/orcl/temp02.dbf’。通过在 SQL 提示符下

输入以下命令来执行该操作:

SQL> ALTER TABLESPACE "TEMP" ADD TEMPFILE '/u01/app/oracle/oradata/orcl/temp02.dbf' SIZE 25M AUTOEXTEND ON NEXT 5M MAXSIZE 100M; Tablespace altered.

c. 通过输入以下命令,删除丢失的临时文件:

SQL> ALTER TABLESPACE TEMP DROP TEMPFILE '/u01/app/oracle/oradata/orcl/temp01.dbf'; Tablespace altered.

d. 通过使用 Oracle Enterprise Manager 再次尝试查看初始化参数,以此检查 TEMP 表空间是否已恢复。请参阅步骤 3。这次应该成功。

5. 从联机重做日志文件丢失错误中恢复。首先,运行 lab_04_05_a.sql 脚本,为每个

重做日志组创建第二个重做日志文件。然后,运行 lab_04_05_b.sh 脚本,删除

其中一个联机重做日志文件。运行 lab_04_05_c.sql 脚本以引发该错误。从文件

丢失错误中恢复。

a. 在 Linux 提示符下输入以下命令:

$ sqlplus / as sysdba @lab_04_05_a.sql

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 148: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-20

练习 4 的解答:恢复不太严重的损失(续)

下面是此命令的输出:

$ sqlplus / as sysdba @lab_04_05_a.sql SQL> SQL> ALTER DATABASE ADD LOGFILE MEMBER 2 '/u01/app/oracle/oradata/orcl/redo01b.log' 3 TO GROUP 1; Database altered. SQL> SQL> ALTER DATABASE ADD LOGFILE MEMBER 2 '/u01/app/oracle/oradata/orcl/redo02b.log' 3 TO GROUP 2; Database altered. SQL> SQL> ALTER DATABASE ADD LOGFILE MEMBER 2 '/u01/app/oracle/oradata/orcl/redo03b.log' 3 TO GROUP 3; Database altered. SQL>

b. 要删除其中一个联机重做日志文件,请通过在 Linux 提示符下输入以下命令来

运行 lab_04_05_b.sh 脚本:

$ ./lab_04_05_b.sh 下面是此命令的输出: $ ./lab_04_05_b.sh rm '/u01/app/oracle/oradata/orcl/redo02b.log' redo file deleted.c. 通过在 Linux 提示符下输入以下命令来引发错误:

$ sqlplus / as sysdba @lab_04_05_c.sql厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 149: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-21

练习 4 的解答:恢复不太严重的损失(续)

下面是该命令的输出。请记录预警日志中的错误:

$ sqlplus / as sysdba @lab_04_05_c.sql SQL> alter system switch logfile; System altered. SQL> alter system switch logfile; System altered. SQL> alter system switch logfile; System altered. SQL> host tail -60 $ORACLE_BASE/admin/orcl/bdump/alert_orcl.log '/u01/app/oracle/oradata/orcl/redo03b.log' TO GROUP 3 Wed Dec 14 08:19:04 2005 Thread 1 cannot allocate new log, sequence 15 Private strand flush not complete Current log# 1 seq# 14 mem# 0: /u01/app/oracle/oradata/orcl/redo01.log Wed Dec 14 08:19:09 2005 Errors in file /u01/app/oracle/admin/orcl/bdump/orcl_lgwr_20401.trc: ORA-00313: open failed for members of log group 2 of thread 1 ORA-00312: online log 2 thread 1: '/u01/app/oracle/oradata/orcl/redo02b.log' ORA-27037: unable to obtain file status Linux Error: 2: No such file or directory . . .

d. 保持上一步的会话中的 SYS 用户的登录状态,在 SQL*Plus 会话中输入以下命令,

以此重新创建重做日志成员:

SQL> ALTER DATABASE DROP LOGFILE MEMBER > '/u01/app/oracle/oradata/orcl/redo02b.log';SQL> ALTER DATABASE ADD LOGFILE MEMBER > '/u01/app/oracle/oradata/orcl/redo02b.log' > TO GROUP 2;

e. 重新运行 lab_04_05_c.sql 脚本,确认重做日志错误不再出现在预警日志中。

$ sqlplus / as sysdba @lab_04_05_c.sql

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 150: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-22

练习 4 的解答:恢复不太严重的损失(续)

下面是该命令的输出。请注意,这次发生重做日志切换时,不会出现错误:

.

.

. Current log# 1 seq# 17 mem# 0: /u01/app/oracle/oradata/orcl/redo01.log Current log# 1 seq# 17 mem# 1: /u01/app/oracle/oradata/orcl/redo01b.log Thread 1 advanced to log sequence 18 Current log# 2 seq# 18 mem# 0: /u01/app/oracle/oradata/orcl/redo02.log Current log# 2 seq# 18 mem# 1: /u01/app/oracle/oradata/orcl/redo02b.log Thread 1 advanced to log sequence 19 Current log# 3 seq# 19 mem# 0: /u01/app/oracle/oradata/orcl/redo03.log Current log# 3 seq# 19 mem# 1: /u01/app/oracle/oradata/orcl/redo03b.log Thread 1 cannot allocate new log, sequence 20 Checkpoint not complete Current log# 3 seq# 19 mem# 0: /u01/app/oracle/oradata/orcl/redo03.log Current log# 3 seq# 19 mem# 1: /u01/app/oracle/oradata/orcl/redo03b.log Thread 1 advanced to log sequence 20 Current log# 1 seq# 20 mem# 0: /u01/app/oracle/oradata/orcl/redo01.log Current log# 1 seq# 20 mem# 1: /u01/app/oracle/oradata/orcl/redo01b.log SQL>

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 151: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-23

练习 5 的解答:数据库恢复

背景:作为数据库管理员,您接到一些用户的电话,这些用户声称在 HR 应用程序中存

在不正确的数据。工资表显示,所有薪金的总和应该为 691,400 美元。但是,该总和现

在为 679,050 美元。而且,在过去 60 天内不应当存在部门更改,但是 JOB_HISTORY 表显示了今天所发生的更改。您知道人事改组批处理作业一定已提前运行,因此您需要撤

消那些产生重大影响并涉及多个表的更改,其中包括某些由触发器所触发的更改。请注

意,HR 用户的口令是 hr。

1. 为了模拟错误运行的批处理作业,请运行 lab_05_01.sql 脚本。

a. 在 Linux 提示符下输入以下命令:

$ sqlplus hr/hr @lab_05_01.sql

下面是该命令的输出:

$ sqlplus hr/hr @lab_05_01.sql SQL> SQL> update employees set department_id = 90 where job_id = 'IT_PROG'; 5 rows updated. SQL> SQL> update employees e set salary = least(e.salary,(select (min_salary + max_salary)/2 * 1.10 from jobs j where j.job_id = e.job_id)) where job_id not like 'AD_%'; 103 rows updated. SQL> SQL> commit; Commit complete. SQL>

2. 确认有关薪金总和与作业历史记录的信息是否与用户向您报告的信息相同。

a. 在 SQL*Plus 提示符下输入以下命令,同时保持 HR 用户的登录状态。

SQL> select sum(salary) from employees;

下面是该语句的输出:

SQL> select sum(salary) from employees; SUM(SALARY) ----------- 679050

请注意,薪金的总和是 679050,而不是 691400。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 152: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-24

练习 5 的解答:数据库恢复(续)

b. 在 SQL 提示符下输入以下命令:

SQL> select count(*) from job_history where end_date > sysdate – 60;

下面是该语句的输出:

SQL> select count(*) from job_history where end_date > sysdate - 60; COUNT(*) ---------- 5

请注意,在最近 60 天内发生了一些部门更改,证实了用户的投诉。

3. 鉴于所涉及的表和触发器,您意识到,手动撤消上述所有更改过于复杂并且容易出

错。因此,您决定将整个数据库还原到以前的某个时间点。您知道在改组批处理作

业中执行的第一个修改是部门更改。所以,您在 JOB_HISTORY 表中查看第一个更

改的时间,并决定将数据库还原到此前一分钟时的状态。执行还原操作。

a. 要找到第一次更新的时间,请在 SQL 提示符下输入以下命令:

SQL> alter session set nls_date_format = "yyyy-mm-dd hh24:mi:ss"; SQL> select min(end_date) from job_history 2 where end_date > sysdate - 60;

请记下日期和时间。__________________________________

本示例中的日期和时间是 2005-12-14 10:30:12。

b. 使用 AS SYSDBA 进行连接并关闭实例,然后将数据库置于 MOUNT 状态,准备

执行 RMAN 还原操作。

SQL> connect / as sysdba SQL> SHUTDOWN IMMEDIATE SQL> STARTUP MOUNT

c. 等待装载该数据库。然后,在单独的 XTerm 窗口的 Linux 命令行提示符下输入

以下命令,为 RMAN 会话做好准备,然后调用 RMAN。

注:这些环境变量必须采用大写形式。

$ export NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss" $ export NLS_LANG=american_america.we8iso8859p15 $ rman target / NOCATALOG

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 153: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-25

练习 5 的解答:数据库恢复(续)

d. 在 RMAN 提示符下输入以下命令,将数据库还原到批处理作业运行前一分钟的

时间点。将下面的时间更改为上述步骤 3-a 中说明的时间之前的一分钟。

RMAN> run { 2> set UNTIL TIME = '2005-12-14 10:29:12'; 3> RESTORE DATABASE; 4> RECOVER DATABASE; 5> ALTER DATABASE OPEN RESETLOGS; 6> }

下面是此命令的输出:

RMAN> run { 2> set UNTIL TIME = '2005-12-14 10:29:12'; 3> RESTORE DATABASE; 4> RECOVER DATABASE; 5> ALTER DATABASE OPEN RESETLOGS; 6> } executing command: SET until clause Starting restore at 2005-12-14 10:40:07 allocated channel: ORA_DISK_1 channel ORA_DISK_1: sid=155 devtype=DISK channel ORA_DISK_1: starting datafile backupset restore channel ORA_DISK_1: specifying datafile(s) to restore from backup set restoring datafile 00001 to /u01/app/oracle/oradata/orcl/system01.dbf restoring datafile 00002 to /u01/app/oracle/oradata/orcl/undotbs01.dbf restoring datafile 00003 to /u01/app/oracle/oradata/orcl/sysaux01.dbf restoring datafile 00004 to /u01/app/oracle/oradata/orcl/users01.dbf restoring datafile 00005 to /u01/app/oracle/oradata/orcl/example01.dbf restoring datafile 00006 to /u01/app/oracle/oradata/orcl/staging01.dbf channel ORA_DISK_1: reading from backup piece /u01/app/oracle/flash_recovery_area/ORCL/backupset/2005_12_14/o1_mf_nnndf_TAG20051214T060710_1t09rj5m_.bkp channel ORA_DISK_1: restored backup piece 1 piece handle=/u01/app/oracle/flash_recovery_area/ORCL/backupset/2005_12_14/ o1_mf_nnndf_TAG20051214T060710_1t09rj5m_.bkp tag=TAG20051214T060710 channel ORA_DISK_1: restore complete, elapsed time: 00:02:07 Finished restore at 2005-12-14 10:42:17 Starting recover at 2005-12-14 10:42:17 using channel ORA_DISK_1 starting media recovery

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 154: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-26

练习 5 的解答:数据库恢复(续) archive log thread 1 sequence 13 is already on disk as file /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2005_12_14/o1_mf_1_13_1t09wtrj_.arc archive log thread 1 sequence 14 is already on disk as file /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2005_12_14/o1_mf_1_14_1t0khy2v_.arc . . . archive log thread 1 sequence 20 is already on disk as file /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2005_12_14/o1_mf_1_20_1t0qnwjp_.arc archive log filename=/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2005_12_14/o1_mf_1_13_1t09wtrj_.arc thread=1 sequence=13 archive log filename=/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2005_12_14/o1_mf_1_14_1t0khy2v_.arc thread=1 sequence=14 . . . archive log filename=/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2005_12_14/o1_mf_1_20_1t0qnwjp_.arc thread=1 sequence=20 media recovery complete, elapsed time: 00:00:14 Finished recover at 2005-12-14 10:42:33 database opened RMAN>

4. 确认数据库已还原到 HR 数据未发生改组更改的时间点。

a. 要查看最近的 JOB_HISTORY 条目的时间,请在 SQL 提示符下输入以下命令:

SQL> SELECT MAX(end_date) FROM hr.job_history;

应该是在过去的几年(不是今天)。输出应该与以下内容相似,但不一定是这个确切

日期:

SQL> SELECT MAX(end_date) FROM hr.job_history; MAX(END_D --------- 31-DEC-99

5. 退出 SQL*Plus。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 155: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-27

练习 6 的解答:闪回

背景:此处执行的方案与题为“数据库恢复”的练习中所执行的方案相同。HR 重组作

业过早运行,而您必须撤消这些更改。您无法确定这些更改涉及到哪些表,但既然已启

用了闪回事件记录,因此您决定使用闪回数据库而不是执行恢复。除非另行指定,否则

应当通过 SQL*Plus 或 Database Control,以 SYS 用户身份作为 SYSDBA 登录。

1. 使用 Oracle Enterprise Manager,为数据库启用闪回事件记录(启用闪回数据库)。

a. 在 Database Control 中,单击“Maintenance(维护)”标签页,然后在

“Backup/Recovery Settings(备份/恢复设置)”区域中单击“Recovery Settings(恢复设置)”链接。

b. 向下滚动并选中“Enable Flashback Database(启用闪回数据库)”复选框。 单击“Apply(应用)”。在“Confirmation(确认)”页上单击“Yes(是)”,

前进到关闭数据库部分。

c. 使用 oracle/oracle 输入主机身份证明,然后单击“OK(确定)”。

d. 在“Restart Database: Confirmation(重新启动数据库:确认)”页中,单击 “Yes(是)”。

e. 单击“Refresh(刷新)”并等待片刻,直至数据库重新启动。可能需要多次单击

“Refresh(刷新)”。

f. 出现“Login(登录)”屏幕时,请使用 SYS AS SYSDBA 登录。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 156: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-28

练习 6 的解答:闪回(续)

2. 在启用闪回事件记录的情况下重新启动数据库之后,通过查询 V$DATABASE 视图,

记录数据库的当前 SCN。

注:稍后将需要此信息。

当前 SCN:________________

a. 输入以下命令:

$ cd $HOME/labs $ sqlplus / as sysdba SQL> SELECT current_scn FROM v$database; CURRENT_SCN ----------- 722521

3. 记下 HR.EMPLOYEES 表中的薪金总和以及 JOB_HISTORY 表中的行数。

SQL> SELECT SUM(salary) FROM hr.employees; SUM(SALARY) ----------- 691400 SQL> SELECT COUNT(*) FROM hr.job_history; COUNT(*) ---------- 10

4. 运行 lab_06_04.sql 脚本,执行与题为“数据库恢复”的课程练习中相同的 HR 改组更新。

a. 在 SQL 提示符下输入以下命令:

SQL> @lab_06_04.sql 厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 157: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-29

练习 6 的解答:闪回(续)

下面是该命令的输出:

SQL> @lab_06_04.sql SQL> SQL> update employees set department_id = 90 where job_id = 'IT_PROG'; 5 rows updated. SQL> SQL> update employees e set salary = least(e.salary,(select (min_salary + max_salary)/2 * 1.10 from jobs j where j.job_id = e.job_id)) where job_id not like 'AD_%'; 103 rows updated. SQL> SQL> commit; Commit complete. SQL>

5. 再次记下数据库中的当前 SCN、薪金总和以及 JOB_HISTORY 行数。如果您不是以 SYS 用户身份连接,请先完成该操作。请注意,这些值不同于在步骤 2 和 3 中查询

的值。

SQL> show user USER is "HR" SQL> connect / as sysdba Connected. SQL> SELECT current_scn FROM v$database; CURRENT_SCN ----------- 722801 SQL> SELECT SUM(salary) FROM hr.employees; SUM(SALARY) ----------- 679050 SQL> SELECT COUNT(*) FROM hr.job_history; COUNT(*) ---------- 15 SQL>

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 158: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-30

练习 6 的解答:闪回(续)

6. 使用 RMAN,将数据库闪回到在步骤 2 中记下的第一个 SCN 值。

a. 通过输入以下命令,关闭然后装载数据库:

SQL> SHUTDOWN IMMEDIATE SQL> STARTUP MOUNT

b. 转至另一个 XTerm 窗口中的 RMAN 会话,并在那里退出当前的 RMAN 会话。

然后,重新登录 RMAN。

$ rman target / NOCATALOG

c. 在 RMAN 提示符下,输入 FLASHBACK DATABASE 命令,并提供在步骤 2 中记录的 SCN 号。

RMAN> FLASHBACK DATABASE TO SCN=632176;

下面是此命令的输出:

RMAN> FLASHBACK DATABASE TO SCN=722521; Starting flashback at 2005-12-14 11:24:04 allocated channel: ORA_DISK_1 channel ORA_DISK_1: sid=154 devtype=DISK starting media recovery media recovery complete, elapsed time: 00:00:07 Finished flashback at 2005-12-14 11:24:14 RMAN>

7. 在打开数据库进行读/写之前,查看表的内容并验证是否恢复到步骤 3 中记下的值,

以便确认是否已将数据库闪回到正确的 SCN 处。

a. 在 SQL 提示符下输入以下命令,以只读模式打开数据库:

SQL> alter database open read only;

b. 在 SQL 提示符下输入下列命令,确定 JOB_HISTORY 表的行数。

SQL> SELECT SUM(salary) FROM hr.employees; SUM(SALARY) ----------- 691400

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 159: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-31

练习 6 的解答:闪回(续)

8. 打开数据库进行读/写。必须使用 RESETLOGS 关键字。

a. 通过在 SQL 提示符下输入以下命令来关闭数据库:

SQL> shutdown immediate Database closed. Database dismounted. ORACLE instance shut down.

b. 在 SQL 提示符下输入以下命令,在 MOUNT 状态下启动数据库。

SQL> startup mount ORACLE instance started. Total System Global Area 285212672 bytes Fixed Size 1218992 bytes Variable Size 121636432 bytes Database Buffers 159383552 bytes Redo Buffers 2973696 bytes Database mounted.

c. 在 SQL 提示符下输入以下命令,以读写模式打开数据库:

SQL> alter database open resetlogs; Database altered.

9. 此时,可以熟悉一下与闪回相关的动态视图。为了做好查看时间值的准备,请变更

您的会话,以便在显示任何日期值的同时显示小时、分钟和秒。

SQL> ALTER SESSION SET NLS_DATE_FORMAT=”yyyy-mm-dd hh24:mi:ss”;

10. 查询 V$FLASHBACK_DATABASE_LOG 视图,并确定可以将数据库闪回到的最小 SCN。

请在此记录下答案:_____________。

SQL> set wrap off SQL> select * from v$FLASHBACK_DATABASE_LOG; truncating (as requested) before column ESTIMATED_FLASHBACK_SIZE OLDEST_FLASHBACK_SCN OLDEST_FLASHBACK_TI RETENTION_TARGET FLASHBACK_SIZE -------------------- ------------------- ---------------- -------------- 720683 2005-12-14 11:01:52 1440 8192000

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 160: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-32

练习 6 的解答:闪回(续)

11. 通过查询 V$FLASHBACK_DATABASE_STAT,查看与闪回事件记录和相关操作关联

的开销。在此时间间隔中,每分钟写入的闪回数据的平均字节数是多少?

SQL> select * from V$FLASHBACK_DATABASE_STAT; truncating (as requested) before column ESTIMATED_FLASHBACK_SIZE BEGIN_TIME END_TIME FLASHBACK_DATA DB_DATA REDO_DATA ------------------- ------------------- -------------- ---------- ---------- 2005-12-14 11:29:00 2005-12-14 11:36:27 2686976 2424832 752640 SQL>

在上述示例中,答案为 2686976/(11:36 – 11:29),即每分钟 383854 字节。

12. 通过查询 V$FLASHBACK_DATABASE_LOG,确定存储的闪回数据的当前大小。请在

此记录下答案:_____________。

SQL> SELECT flashback_size FROM V$FLASHBACK_DATABASE_LOG; FLASHBACK_SIZE -------------- 8192000

注:您的结果可能会与此处显示的不同。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 161: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-33

练习 7 的解答:处理数据库损坏

背景:在该练习中,一个数据文件被故意破坏,而您在查询受影响的表时看到了损坏的

结果。您需要确定损坏的位置并纠正该问题。

1. 为了在 DEPARTMENTS 表中制造损坏情况,需要查明存储其数据的 OS 文件名,还需

要查明位于该文件的 DEPARTMENTS 表部分中的 OS 文件块 ID。查询 DBA_SEGMENTS 视图,找到 DEPARTMENTS 段的文件 ID 和块 ID。然后,通过查询 DBA_DATA_FILES 视图确定关联 OS 文件的名称。

请在此处记录上述值:

文件 ID:_____________

块 ID:_____________

a. 确保您位于 labs 目录中,并以 SYS 用户身份(口令为 oracle),作为 SYSDBA 登录 SQL*Plus。

$ cd $HOME/labs $ sqlplus / as sysdba

b. 在 SQL 提示符下输入以下命令:

SQL> select file_id, block_id from dba_extents 2 where segment_name = 'DEPARTMENTS';

下面是该语句的输出:

SQL> select file_id, block_id from dba_extents 2 where segment_name = 'DEPARTMENTS'; FILE_ID BLOCK_ID ---------- ---------- 5 49

c. 上面的查询中只返回一个区。通过执行以下查询,确定与 FILE_ID 5 相关联的

文件名。这样便可以得到损坏文件的名称。在 SQL 提示符下输入以下命令:

SQL> select file_name from dba_data_files where file_id = 5;

下面是该语句的输出:

SQL> select file_name from dba_data_files where file_id = 5; FILE_NAME ------------------------------------------------------------------------ /u01/app/oracle/oradata/orcl/example01.dbf

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 162: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-34

练习 7 的解答:处理数据库损坏(续)

2. 运行 lab_07_02.sh 脚本,在 example01.dbf 数据文件的上文报告的块号中制

造损坏情况。该脚本的参数顺序依次为:全限定文件名、块号、块大小。块大小为 8192。此脚本将字符 CORRUPT 写入给定的块号中。

a. 转至一个单独的 XTerm 窗口,并在 Linux 命令提示符下输入以下命令:

$ ./lab_07_02.sh /u01/app/oracle/oradata/orcl/example01.dbf 49 8192

下面是该命令的输出:

$ ./lab_07_02.sh /u01/app/oracle/oradata/orcl/example01.dbf 49 8192 0+1 records in 0+1 records out 0+1 records in 0+1 records out 0+1 records in 0+1 records out 0+1 records in 0+1 records out $

3. 刷新缓冲区高速缓存,以便强制使任何针对 DEPARTMENTS 表的查询转至磁盘上的

数据文件。然后,选择 DEPARTMENTS 表的所有列并记录错误。

a. 在 SQL 提示符下输入以下命令,刷新缓冲区高速缓存:

SQL> ALTER SYSTEM FLUSH BUFFER_CACHE;

b. 在 SQL 提示符下输入以下命令,查看是否能够访问 DEPARTMENTS 表:

SQL> SELECT * FROM hr.departments;

下面是该语句的输出。请记录错误。

SQL> SELECT * FROM hr.departments; select * from hr.departments * ERROR at line 1: ORA-01578: ORACLE data block corrupted (file # 5, block # 51) ORA-01110: data file 5: '/u01/app/oracle/oradata/orcl/example01.dbf'

4. 运行 dbv 实用程序,报告 example01.dbf 文件中的所有损坏情况。

a. 在 OS 命令提示符下输入以下命令,调用 DBVERIFY:

$ dbv file=/u01/app/oracle/oradata/orcl/example01.dbf blocksize=8192

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 163: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-35

练习 7 的解答:处理数据库损坏(续)

下面是该命令的输出:

$ dbv file=/u01/app/oracle/oradata/orcl/example01.dbf blocksize=8192 DBVERIFY: Release 10.2.0.1.0 - Production on Fri Sep 9 11:51:05 2005 Copyright (c) 1982, 2005, Oracle.All rights reserved. DBVERIFY - Verification starting : FILE = /u01/app/oracle/oradata/orcl/example01.dbf Page 49 is marked corrupt Corrupt block relative dba: 0x01400031 (file 5, block 49) Bad header found during dbv: Data in bad block: type: 67 format: 7 rdba: 0x0a545055 last change scn: 0x0000.0006d161 seq: 0x2 flg: 0x04 spare1: 0x52 spare2: 0x52 spare3: 0x0 consistency value in tail: 0xd1612002 check value in block header: 0xe5e computed block checksum: 0xe441 Page 50 is marked corrupt Corrupt block relative dba: 0x01400032 (file 5, block 50) Bad header found during dbv: Data in bad block: type: 67 format: 7 rdba: 0x0a545055 last change scn: 0x0000.0006d085 seq: 0x1 flg: 0x04 spare1: 0x52 spare2: 0x52 spare3: 0x0 consistency value in tail: 0xd0852101 check value in block header: 0x4e60 computed block checksum: 0xe443 Page 51 is marked corrupt Corrupt block relative dba: 0x01400033 (file 5, block 51) Bad header found during dbv: Data in bad block:

type: 67 format: 7 rdba: 0x0a545055 last change scn: 0x0000.0006d161 seq: 0x2 flg: 0x04 spare1: 0x52 spare2: 0x52 spare3: 0x0 consistency value in tail: 0xd1612302 check value in block header: 0x63bb computed block checksum: 0xe440 Page 52 is marked corrupt Corrupt block relative dba: 0x01400034 (file 5, block 52) Bad header found during dbv: Data in bad block: type: 67 format: 7 rdba: 0x0a545055 last change scn: 0x0000.0006d161 seq: 0x2 flg: 0x04 spare1: 0x52 spare2: 0x52 spare3: 0x0

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 164: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-36

练习 7 的解答:处理数据库损坏(续) consistency value in tail: 0xd1610602 check value in block header: 0x59cc computed block checksum: 0xe462 DBVERIFY - Verification complete Total Pages Examined : 12800 Total Pages Processed (Data) : 4408 Total Pages Failing (Data) : 0 Total Pages Processed (Index): 1264 Total Pages Failing (Index): 0 Total Pages Processed (Other): 1536 Total Pages Processed (Seg) : 0 Total Pages Failing (Seg) : 0 Total Pages Empty : 5588 Total Pages Marked Corrupt : 4 Total Pages Influx : 0 Highest block SCN : 654836 (0.654836) $

5. 查看预警日志以了解损坏的详细信息。

a. 在 OS 命令提示符下输入以下命令:

$ tail –50 $ORACLE_BASE/admin/orcl/bdump/alert_orcl.log

下面是该命令的相关输出:

Hex dump of (file 5, block 51) in trace file /u01/app/oracle/admin/orcl/udump/orcl_ora_4287.trc Corrupt block relative dba: 0x01400033 (file 5, block 51) Bad header found during buffer read Data in bad block: type: 67 format: 7 rdba: 0x0a545055 last change scn: 0x0000.0006d161 seq: 0x2 flg: 0x04 spare1: 0x52 spare2: 0x52 spare3: 0x0 consistency value in tail: 0xd1612302 check value in block header: 0x63bb computed block checksum: 0xe440 Reread of rdba: 0x01400033 (file 5, block 51) found same corrupted data Wed Dec 14 12:32:19 2005 Corrupt Block Found TSN = 6, TSNAME = EXAMPLE RFN = 5, BLK = 51, RDBA = 20971571 OBJN = 51852, OBJD = 51250, OBJECT = , SUBOBJECT = SEGMENT OWNER = , SEGMENT TYPE =

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 165: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-37

练习 7 的解答:处理数据库损坏(续)

6. 使用 RMAN 执行块介质恢复。使用上一个步骤的 DBVERIFY 输出来确定需要恢复

的块。

a. 转至 XTerm 窗口并以 SYS 用户身份连接到 RMAN:

$ rman target / NOCATALOG

b. 在 RMAN 提示符下输入以下命令以执行块恢复:

RMAN> BLOCKRECOVER DATAFILE 5 BLOCK 49, 50, 51, 52;

下面是此命令的输出:

RMAN> BLOCKRECOVER DATAFILE 5 BLOCK 49, 50, 51, 52; Starting blockrecover at 2005-12-14 12:40:26 allocated channel: ORA_DISK_1 channel ORA_DISK_1: sid=142 devtype=DISK channel ORA_DISK_1: restoring block(s) channel ORA_DISK_1: specifying block(s) to restore from backup set restoring blocks of datafile 00005 channel ORA_DISK_1: reading from backup piece /u01/app/oracle/flash_recovery_area/ORCL/backupset/2005_12_14/o1_mf_nnndf_TAG20051214T060710_1t09rj5m_.bkp channel ORA_DISK_1: restored block(s) from backup piece 1 piece handle=/u01/app/oracle/flash_recovery_area/ORCL/backupset/2005_12_14/ o1_mf_nnndf_TAG20051214T060710_1t09rj5m_.bkp tag=TAG20051214T060710 channel ORA_DISK_1: block restore complete, elapsed time: 00:00:36

starting media recovery archive log thread 1 sequence 13 is already on disk as file /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2005_12_14/o1_mf_1_13_1t09wtrj_.arc archive log thread 1 sequence 14 is already on disk as file /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2005_12_14/o1_mf_1_14_1t0khy2v_.arc archive log thread 1 sequence 15 is already on disk as file /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2005_12_14/o1_mf_1_15_1t0khydx_.arc . . . archive log thread 1 sequence 1 is already on disk as file /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2005_12_14/o1_mf_1_1_1t0wnx22_.arc media recovery complete, elapsed time: 00:00:08 Finished blockrecover at 2005-12-14 12:41:15 RMAN>

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 166: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-38

练习 7 的解答:处理数据库损坏(续)

7. 通过再次刷新缓冲区高速缓存并查询 DEPARTMENTS 表,确认块恢复操作成功。

a. 在 SQL 提示符下输入以下命令,刷新缓冲区高速缓存:

SQL> ALTER SYSTEM FLUSH BUFFER_CACHE;

b. 在 SQL 提示符下输入以下语句以查询表:

SQL> SELECT * FROM hr.departments;

下面是该语句的输出:

SQL> select * from hr.departments; DEPARTMENT_ID DEPARTMENT_NAME MANAGER_ID LOCATION_ID ------------- ------------------------------ ---------- ----------- 10 Administration 200 1700 20 Marketing 201 1800 . . .

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 167: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-39

练习 8 的解答:监视和管理内存

背景:本练习将数据库置于以下模式:在该模式下,数据库的效率和灵活性没有达到

最佳状态。然后,引入新的对象,而该数据库则无法调整该对象。您必须确定该问题的

原因,并重新配置该数据库,使其能够动态适应新对象。除非另行指定,否则需要以 SYSDBA 身份通过数据库控制台或 SQL*Plus 登录。

1. 请确保您位于 oracle 用户主目录下的 labs 目录中。使用 SQL*Plus 关闭实例,然后

使用位于 labs 目录中的 init_sgalab.ora 初始化参数文件重新启动该实例。需要

在 STARTUP 命令中使用 PFILE 参数。

a. 通过在 SQL*Plus 命令行中输入下列命令,立即关闭数据库:

$ cd $HOME/labs $ sqlplus / as sysdba SQL> shutdown immediate

b. 使用 labs 目录中的 init_sgalab.ora 参数文件启动数据库。通过在 SQL*Plus 命令行中输入以下命令来执行该操作:

SQL> startup pfile=init_sgalab.ora

2. 执行 lab_08_02.sql 脚本。此脚本试图创建许多 Java 存储过程。

a. 在 SQL 提示符下输入以下命令,运行脚本以生成 Java 存储过程:

SQL> @lab_08_02.sql

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 168: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-40

练习 8 的解答:监视和管理内存(续)

下面是此命令的输出:

SQL> @lab_08_02.sql Connected. SQL> SQL> DECLARE 2 i NUMBER; 3 v_sql VARCHAR2(200); 4 BEGIN 5 FOR i IN 1..200 LOOP 6 -- Build up a dynamic statement to create a uniquely named java stored proc. 7 -- The "chr(10)" is there to put a CR/LF in the source code. 8 v_sql := 'create or replace and compile' || chr(10) || 9 'java source named "SmallJavaProc' || i || '"' || chr(10) || 10 'as' || chr(10) || 11 'import java.lang.*;' || chr(10) || 12 'public class Util' || i || ' extends Object' || chr(10) || 13 '{ int v1=1;int v2=2;int v3=3;int v4=4;int v5=5;int v6=6;int v7=7; }'; 14 EXECUTE IMMEDIATE v_sql; 15 END LOOP; 16 END; 17 / DECLARE * ERROR at line 1: ORA-04031: unable to allocate 4096 bytes of shared memory ("java pool","java/lang/ref/ReferenceQueueSYS","joxlod exec hp","SGAClass") ORA-06512: at line 14

问题:该错误的原因可能是什么?

答案:Java 池太小。

3. 使用数据库控制台检查实例的各种 SGA 缓冲区的大小。

问题 1:是否启用了自动共享内存管理功能?

问题 2:Java 池的大小是多少?

a. 在“Administration(管理)”标签页中,单击“Database Configuration(数据库

配置)”区域中的“Memory Parameters(内存参数)”。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 169: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-41

练习 8 的解答:监视和管理内存(续)

b. 请注意,自动共享内存管理功能是禁用的。

答案 1:否,未启用 ASMM。

答案 2:Java 池的大小为 4 MB。

4. 以 SYS 用户的身份运行 lab_08_04.sql 脚本,查看当前内存设置。是否存在 CURRENT_SIZE 与 MIN_SIZE 不同的 SGA 动态组件?请说明您的答案。

答案:否。这是因为未启用自动共享内存管理功能,无论指定了任何大小,都将设

置为组件的字面大小,并且此大小不会自动更改。因此,最小大小也是当前大小。

a. 在 SQL 提示符下输入以下命令以查看内存设置:

SQL> connect / as sysdba SQL> @lab_08_04.sql

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 170: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-42

练习 8 的解答:监视和管理内存(续)

下面是该命令的输出:

SQL> @lab_08_04.sql *** Current parameter settings *** NAME TYPE VALUE ----------------------------- ----------- ------------------------------ sga_max_size big integer 300M sga_target big integer 0 *** SGA Dynamic Component Size Information*** COMPONENT CURRENT_SIZE MIN_SIZE ---------------------- --------------- --------------- shared pool 100M 100M large pool 4M 4M java pool 4M 4M DEFAULT buffer cache 100M 100M *** Current parameter settings in V$PARAMETER *** NAME VALUE ISDEFAULT -------------------- -------------------- --------- shared_pool_size 104857600 FALSE large_pool_size 4194304 FALSE java_pool_size 4194304 FALSE db_cache_size 104857600 FALSE

5. 使用自动共享内存管理功能纠正该问题,以便在不重新尝试存储过程创建脚本的前

提下创建 Java 存储过程。

a. 在“Memory Parameters(内存参数)”页上单击“Enable(启用)”,启用自动

共享内存管理功能。

b. 在“Enable Automatic Shared Memory Management(启用自动共享内存管理)”

页上,确保将“Total SGA Size for Automatic Shared Memory Management(自动

共享内存管理的 SGA 总大小)”字段设为与“Current Total SGA Size (MB)(当前 SGA 的总大小 (MB))”字段相同的值。您的值可能与下面显示的值 不同。然后,单击“OK(确定)”。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 171: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-43

练习 8 的解答:监视和管理内存(续)

c. 如果此时出现许可协议窗口,请按 [A] 键接受协议并继续。

6. 重新运行 lab_08_04.sql 脚本以查看内存相关信息。请确保以 SYS 用户身份作为 SYSDBA 运行该脚本。然后,回答下列问题:

问题 1:对于 SGA_TARGET 初始化参数,您现在期望看到什么样的参数值?可以通

过查看 lab_08_04.sql 脚本的输出来确认您的答案。

注:根据区组大小的不同,可能会有一些舍入。

问题 2:查看预警日志的最后 20 行,了解启用 ASMM 之后所发出的命令。为什么

将自动管理的池的大小设置为零?

问题 3:为什么将 DB_CACHE_SIZE 设置为非零值?

问题 4:为什么您认为无法创建 Java 存储过程?

答案 1:与在启用 ASMM 时为“Total SGA Size for Automatic Shared Memory Management(自动共享内存管理的 SGA 总大小)”指定的值(在这种情况下是 214 MB)非常接近的值(在这种情况下是 214 MB)。

SQL> connect / as sysdba Connected. SQL> @lab_08_04.sql *** Current parameter settings *** NAME TYPE VALUE ----------------------------- ----------- ------------------------------ sga_max_size big integer 300M sga_target big integer 216M . . .

a. 通过在 OS 命令提示符下输入以下命令来查看预警日志:

$ tail -20 $ORACLE_BASE/admin/orcl/bdump/alert_orcl.log 厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 172: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-44

练习 8 的解答:监视和管理内存(续)

下面是此命令的示例输出:

$ tail -20 $ORACLE_BASE/admin/orcl/bdump/alert_orcl.log Tue Sep 20 07:57:13 2005 MMAN: Can't zero buffer pool DEFAULT for blocksize 8192 Tue Sep 20 07:57:13 2005 ALTER SYSTEM SET sga_target='224395264' SCOPE=MEMORY; Tue Sep 20 07:57:13 2005 ALTER SYSTEM SET db_cache_size='4194304' SCOPE=MEMORY; Tue Sep 20 07:57:13 2005 ALTER SYSTEM SET java_pool_size='0' SCOPE=MEMORY; Tue Sep 20 07:57:13 2005 ALTER SYSTEM SET large_pool_size='0' SCOPE=MEMORY; Tue Sep 20 07:57:13 2005 ALTER SYSTEM SET shared_pool_size='0' SCOPE=MEMORY;

答案 2:将自动管理的池的大小设置为零,是因为这些池现在是自动管理的;既然

启用了 ASMM,所以对这些变量进行的任何设置都将表示该池的最小大小。因此将

这些池的大小设为零可以表明没有最小值,建议对于 ASMM 使用此设置。

答案 3:将 DB_CACHE_SIZE 设置为非零值,因为其确实有最小值:此值确保可以

加载足够的 SYSTEM 表空间以启动数据库。

答案 4:无法创建 Java 存储过程是因为根据报告的错误,没有为 Java 池分配足够的

内存。由于尚未启用 ASMM,因此没有进行任何自动调整。

7. 返回 lab_08_02.sql 脚本以创建 Java 存储过程。在此脚本运行完毕以后,有多少

内存被添加到 Java 池中?

a. 在 SQL 提示符下输入以下命令,重新运行脚本以生成 Java 对象:

SQL> @lab_08_02.sql

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 173: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-45

练习 8 的解答:监视和管理内存(续)

下面是该命令的输出。请注意,该命令这次成功了。

SQL> @lab_08_02.sql Connected. SQL> SQL> DECLARE 2 i NUMBER; 3 v_sql VARCHAR2(200); 4 BEGIN 5 FOR i IN 1..200 LOOP 6 -- Build up a dynamic statement to create a uniquely named java stored proc. 7 -- The "chr(10)" is there to put a CR/LF in the source code. 8 v_sql := 'create or replace and compile' || chr(10) || 9 'java source named "SmallJavaProc' || i || '"' || chr(10) || 10 'as' || chr(10) || 11 'import java.lang.*;' || chr(10) || 12 'public class Util' || i || ' extends Object' || chr(10) || 13 '{ int v1=1;int v2=2;int v3=3;int v4=4;int v5=5;int v6=6;int v7=7; }'; 14 EXECUTE IMMEDIATE v_sql; 15 END LOOP; 16 END; 17 / PL/SQL procedure successfully completed. SQL>

b. 通过在 SQL 提示符下输入以下命令,以 SYS 用户身份重新连接:

SQL> connect / as sysdba

c. 通过在 SQL 提示符下输入以下命令,重新查看内存设置:

SQL> @lab_08_04.sql

下面是此命令的相关输出:

COMPONENT CURRENT_SIZE MIN_SIZE ---------------------- --------------- --------------- shared pool 100M 100M large pool 4M 4M java pool 16M 4M DEFAULT buffer cache 92M 92M

答案:现在 Java 池的大小是 16 MB,过去是 4 MB,因此增加了 12 MB。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 174: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-46

练习 8 的解答:监视和管理内存(续)

8. 运行 lab_08_drop_javas.sql 脚本以删除 Java 对象。

a. 在 SQL 提示符下输入以下命令以运行脚本:

SQL> @lab_08_drop_javas.sql

下面是该命令的输出:

SQL> @lab_08_drop_javas.sql Connected. SQL> DECLARE 2 i NUMBER; 3 v_sql VARCHAR2(200); 4 BEGIN 5 FOR i IN 1..200 LOOP 6 v_sql := 'drop java source"SmallJavaProc' || i || '"'; 7 EXECUTE immediate v_sql; 8 end loop; 9 end; 10 / PL/SQL procedure successfully completed. SQL>

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 175: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-47

练习 9 的解答:自动性能管理 背景:运行一个能够在数据库上生成负载的脚本。然后,使用自动数据库诊断监控程序

确定问题。在找到真正原因之前,需要评估几种不同的可能原因。除非另行指定,否则

需要以 SYSDBA 身份通过数据库控制台或 SQL*Plus 登录。

1. 运行 lab_09_01.sql 脚本以创建 TBSADDM 表空间,并创建 ADDM 用户(其口令为 addm)。

a. 在 OS 命令提示符下输入以下命令以创建 ADDM 用户:

$ sqlplus / as sysdba @lab_09_01.sql

下面是该命令的输出:

$ sqlplus / as sysdba @lab_09_01.sql SQL> CREATE SMALLFILE TABLESPACE "TBSADDM" DATAFILE '/u01/app/oracle/oradata/orcl/tbsaddm.dbf' SIZE 50M LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT MANUAL; Tablespace created. SQL> SQL> CREATE USER "ADDM" PROFILE "DEFAULT" IDENTIFIED BY addm DEFAULT TABLESPACE "TBSADDM" TEMPORARY TABLESPACE "TEMP" ACCOUNT UNLOCK; User created. SQL> GRANT CREATE SESSION TO "ADDM"; Grant succeeded. SQL> GRANT "DBA" TO "ADDM"; Grant succeeded. SQL> GRANT "RESOURCE" TO "ADDM"; Grant succeeded. SQL>

2. 运行 lab_09_02.sql 脚本,在新的表空间中创建一个表。

a. 在 SQL 提示符下输入以下命令以运行 lab_09_02.sql 脚本,该脚本在新的表

空间中创建一个表并收集其统计信息:

SQL> @lab_09_02.sql

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 176: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-48

练习 9 的解答:自动性能管理(续)

下面是该命令的输出:

SQL> @lab_09_02.sql SQL> SQL> CONNECT / as sysdba Connected. SQL> SQL> EXEC dbms_advisor.set_default_task_parameter('ADDM','DB_ACTIVITY_MIN',30); PL/SQL procedure successfully completed. SQL> SQL> CONNECT addm/addm Connected. SQL> SQL> DROP TABLE addm PURGE; DROP TABLE addm PURGE * ERROR at line 1: ORA-00942: table or view does not exist SQL> CREATE TABLE addm(id NUMBER, name VARCHAR2(2000)); Table created. SQL> SQL> EXEC DBMS_STATS.GATHER_TABLE_STATS(- > ownname=>'ADDM', tabname=>'ADDM',- > estimate_percent=>DBMS_STATS.AUTO_SAMPLE_SIZE); PL/SQL procedure successfully completed. SQL> SQL> exit Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options $

3. 作为 oracle Linux 用户,从 labs 目录中执行 lab_09_03.sh 脚本。等待八个存储

过程完成操作。

a. 在 OS 命令提示符下,输入以下命令以生成负载:

$ ./lab_09_03.sh

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 177: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-49

练习 9 的解答:自动性能管理(续)

下面是此命令的输出:

$ ./lab_09_03.sh Wait for 8 stored procedures to complete... PL/SQL procedure successfully completed. PL/SQL procedure successfully completed. . . . <repeats 5 more times> PL/SQL procedure successfully completed. $

4. 在“Database Control Console(数据库控制台)”主页中,单击“Performance(性能)”标签页。在“Performance(性能)”页中,确保将“View Data(查看 数据)”字段设置为“Real Time: 15 Seconds Refresh(实时:15 秒刷新)”。两分钟

后,将在“Average Active Sessions(平均活动会话)”图形中显示一个钉状图。

注:如果看到一个弹出式屏幕,询问您是接受还是拒绝 SVG 查看器协议,请键入 [A] 接受该协议。使用 SVG 查看器可以增强 Oracle Enterprise Manager 的图形显示。下面

显示的屏幕快照中未使用 SVG 查看器。

5. 完成钉状图后,以 ADDM 用户身份执行 lab_09_05.sql 脚本。此脚本将强制创建

新的快照。通过观察该图形,您已能确定此实例存在并发问题。

$ sqlplus addm/addm @lab_09_05.sql PL/SQL procedure successfully completed. PL/SQL procedure successfully completed.

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 178: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-50

练习 9 的解答:自动性能管理(续)

6. 返回“Database(数据库)”主页。最新的 ADDM 结果可能尚未显示在“Diagnostic Summary(诊断概要)”区域中。要避免等待下一个刷新间隔,请从指导中心检索

最新的 ADDM 查找结果,并确定问题的原因。

a. 在“Database(数据库)”主页中,单击“Advisor Central(指导中心)”链接。

在“Advisor Central(指导中心)”页的“Advisor Tasks(指导任务)”区域中,

从“Advisory Type(指导类型)”下拉列表中选择“ADDM”,然后在“Advisor Runs(指导运行)”下拉列表中选择“Last 24 Hours(最近 24 小时)”。然后,

单击“Go(开始)”,接着单击由 ADDM 用户成功运行的最近一次指导任务的

名称。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 179: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-51

练习 9 的解答:自动性能管理(续)

b. 在“Finding(查找结果)”列中单击影响最大的文本。这必然是查找的第一个 位置,因为其影响最大。

注:因为环境中存在各种变化,所以此负载可能未产生任何结果。如果是这种情况,

请重新执行上面的步骤 3 到步骤 5,以便重新生成负载。

c. 您将进入“Performance Finding Details(性能查找结果详细资料)”页。单击

“SQL Text(SQL 文本)”链接或“SQL ID”链接,可以细化以查看可疑的 SQL 详细资料。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 180: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-52

练习 9 的解答:自动性能管理(续)

d. 您将进入“SQL Details(SQL 详细资料)”页。您希望在此 SQL 上运行 SQL 优化指导,但此屏幕上没有调用该指导的按钮。这是因为该 SQL 实际是一个匿名

的 SQL 块,不能使用 SQL 优化指导进行优化。该块中的 SQL 才是应该优化的

内容。因此,请单击一次浏览器的“后退”按钮,查看其他查找结果。

e. 单击“Show All Details(显示所有详细资料)”,然后单击 INSERT 语句链接。

f. 从饼图上可以看出,此 INSERT 语句存在很多并发问题。您决定通过单击该页右

上角的“Schedule SQL Tuning Advisor(调度 SQL 优化指导)”按钮来运行 SQL 优化指导。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 181: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-53

练习 9 的解答:自动性能管理(续)

g. 保留已调度任务的所有默认设置,然后单击“OK(确定)”。

h. 只要完成指导,您就会进入建议案页。遗憾的是,没有关于 INSERT 语句的

建议案。

i. 再次返回查找结果页,并在标记为“Read and write contention on database blocks was consuming significant database time(数据库块上的读写争用消耗了大量的数

据库时间)”的列表中单击下一个查找结果。

注:如果使用浏览器的“后退”按钮不能保留原有状态,则可能需要按照步骤 6 (a) 中的指定,再次导航到 ADDM 指导任务。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 182: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-54

练习 9 的解答:自动性能管理(续)

j. 这次将立即看到在 TBSADDM 表空间上实施自动段空间管理的建议案。

7. 要实施该建议案,必须重新创建对象。首先,需要创建一个名为 TBSADDM2 的新的

表空间,它使用自动空间管理功能。

a. 在“Database Administration(数据库管理)”页上,单击“Tablespaces(表空

间)”链接,然后单击“Create( 创建)”。在“Name(名称)”字段中指定 新表空间的名称。可以将这个新的表空间命名为 TBSADDM2。单击“Add (添加)”,向此表空间添加文件。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 183: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-55

练习 9 的解答:自动性能管理(续)

b. 在“Create Tablespace: Add Datafile(创建表空间:添加数据文件)”页上,将

新文件的名称指定为 tbsaddm2.dbf,并将其大小设为 50 MB。完成后,单击

“Continue(继续)”。

c. 返回到“Create Tablespace(创建表空间)”页后,单击“Storage(存储)”

选项卡,并确保在“Segment Space Management(段空间管理)”区域中设置为

“Automatic(自动)”。然后,单击“OK(确定)”按钮以创建新的表空间。

8. 从 labs 目录中执行 lab_09_08.sql 脚本,删除 ADDM 表并且在新的表空间中重新

创建该表。此脚本还搜集有关该表的统计信息,并且制作新的快照。

a. 在 OS 命令提示符下输入以下命令,将 ADDM 表移至新的表空间:

$ sqlplus addm/addm @lab_09_08.sql 厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 184: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-56

练习 9 的解答:自动性能管理(续)

下面是该命令的输出:

$ sqlplus addm/addm @lab_09_08.sql Connected. SQL> drop table addm purge; Table dropped. SQL> create table addm(id number, name varchar2(2000)) tablespace TBSADDM2; Table created. SQL> SQL> exec DBMS_STATS.GATHER_TABLE_STATS(- > ownname=>'ADDM', tabname=>'ADDM',- > estimate_percent=>DBMS_STATS.AUTO_SAMPLE_SIZE); PL/SQL procedure successfully completed. SQL> SQL> exec DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT(); PL/SQL procedure successfully completed. SQL>

9. 重新运行 lab_09_03.sh 脚本。

a. 在 OS 命令提示符下输入以下命令,在数据库上重新生成负载:

$ ./lab_09_03.sh

10. 使用 Oracle Enterprise Manager 查看负载钉状图。

a. 在“Database Control Console(数据库控制台)”主页上,转至“Performance(性能)”页,并确保将“View Data(查看数据)”字段设为“Real Time: 15 Seconds Refresh(实时:15 秒刷新)”。两分钟后,将在“Average Active Sessions(平均活动会话)”图形中显示一个钉状图。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 185: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-57

练习 9 的解答:自动性能管理(续)

11. 在钉状图完成后,请使用 SQL*Plus 以 ADDM 用户身份连接到数据库,然后执行 lab_09_11.sql 脚本。此脚本将强制创建新的快照。

a. 在 SQL 提示符下输入以下命令,创建另一个快照:

SQL> @lab_09_11.sql

下面是此命令的输出:

SQL> @lab_09_11.sql SQL> connect / as sysdba Connected. SQL> SQL> exec DBMS_STATS.GATHER_TABLE_STATS(- > ownname=>'ADDM', tabname=>'ADDM',- > estimate_percent=>DBMS_STATS.AUTO_SAMPLE_SIZE); PL/SQL procedure successfully completed. SQL> SQL> exec DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT(); PL/SQL procedure successfully completed. SQL>

12. 在“Database Control Console(数据库控制台)”主页中,转至“Advisor Central(指导中心)”并查看最新快照。情况是否有所改善?

a. 在 Oracle Enterprise Manager 中单击“Administration(管理)”标签页,然后在

“Related Links(相关链接)”区域中单击“Advisor Central(指导中心)”链接。

b. 单击最近的 ADDM 指导任务的名称。

c. 通过观察此图,您已经可以确定此实例没有遇到与早先相同的并发问题。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 186: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-58

练习 9 的解答:自动性能管理(续)

13. 若要清理环境,请执行 lab_09_cleanup.sql 脚本。

a. 断开 ADDM 用户与 SQL*Plus 会话之间的所有连接。

b. 在 OS 提示符下输入以下命令以清理环境:

$ sqlplus / as sysdba @lab_09_cleanup.sql

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 187: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-59

练习 10 的解答:管理方案对象 背景:您的公司将经历一个合并过程。因此,预计您所负责数据库中的一些表中的数据

将显著增多。为了主动监视表和索引空间占用率,您创建了一个测试用例并执行一些预

计生产系统中将会产生的任务。 请以 SYS 用户身份登录(使用 oracle 口令以 SYSDBA 身份连接),然后通过 Oracle Enterprise Manager Database Control 或通过 SQL*Plus 执行必需的任务。此练习的所有

脚本都位于 /home/oracle/labs 目录中。

1. 运行 lab_10_01.sh 脚本创建 TEST_REGIONS 表。

a. 在 OS 命令提示符下输入以下命令:

$ ./lab_10_01.sh

下面是此命令的输出:

$ ./lab_10_01.sh Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options SQL> SQL> SQL> DROP TABLE hr.test_regions CASCADE CONSTRAINTS PURGE * ERROR at line 1: ORA-00942: table or view does not exist SQL> SQL> 2 3 4 5 6 7 8 Table created. SQL> SQL> 1 CREATE TABLE hr.test_regions 2 ( REGION_ID NUMBER 3 , REGION_NAME VARCHAR2(25) 4 ) 5 TABLESPACE example PCTFREE 10 INITRANS 1 MAXTRANS 255 6 STORAGE (INITIAL 64K BUFFER_POOL DEFAULT) 7* NOLOGGING SQL> SQL> Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options $

问题 1:PCTFREE 10 意味着什么?

可能的答案:在此表中插入行时,Oracle 数据库将保留 10% 的空闲块,以供将来更新

之用。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 188: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-60

练习 10 的解答:管理方案对象(续)

2. 通过运行 lab_10_02.sh 脚本填充 TEST_REGIONS 表。

a. 在 OS 命令提示符下输入以下命令:

$ ./lab_10_02.sh

下面是此命令的输出:

$ ./lab_10_02.sh Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options SQL> SQL> drop sequence test_seq * ERROR at line 1: ORA-02289: sequence does not exist SQL> SQL> Sequence created. SQL> SQL> 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 PL/SQL procedure successfully completed. SQL> 1 BEGIN 2 FOR i in 1..1000 LOOP 3 insert into hr.test_regions values (test_seq.nextval, 'Test region '||'10'); 4 insert into hr.test_regions values (test_seq.nextval, 'Test region '||'20'); 5 insert into hr.test_regions values (test_seq.nextval, 'Test region '||'30'); 6 insert into hr.test_regions values (test_seq.nextval, 'Test region '||'40'); 7 insert into hr.test_regions values (test_seq.nextval, 'Test region '||'50'); 8 insert into hr.test_regions values (test_seq.nextval, 'Test region '||'60'); 9 insert into hr.test_regions values (test_seq.nextval, 'Test region '||'70'); 10 insert into hr.test_regions values (test_seq.nextval, 'Test region '||'80'); 11 insert into hr.test_regions values (test_seq.nextval, 'Test region '||'90'); 12 insert into hr.test_regions values (test_seq.nextval, 'Test region '||'00'); 13 insert into hr.test_regions values (test_seq.nextval, 'Test region '||'11');

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 189: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-61

练习 10 的解答:管理方案对象(续)

14 insert into hr.test_regions values (test_seq.nextval, 'Test region '||'21'); 15 insert into hr.test_regions values (test_seq.nextval, 'Test region '||'31'); 16 insert into hr.test_regions values (test_seq.nextval, 'Test region '||'41'); 17 insert into hr.test_regions values (test_seq.nextval, 'Test region '||'51'); 18 insert into hr.test_regions values (test_seq.nextval, 'Test region '||'61'); 19 insert into hr.test_regions values (test_seq.nextval, 'Test region '||'71'); 20 insert into hr.test_regions values (test_seq.nextval, 'Test region '||'81'); 21 insert into hr.test_regions values (test_seq.nextval, 'Test region '||'91'); 22 insert into hr.test_regions values (test_seq.nextval, 'Test region '||'01'); 23 commit; 24 END LOOP; 25* END; SQL> COUNT(*) ---------- 20000 SQL> SQL> 2 1000 rows selected. SQL> 1 delete from hr.test_regions 2* where region_name like '%20' SQL> 2 1000 rows selected. SQL> 1 delete from hr.test_regions 2* where region_name like '%41' SQL> 2 1000 rows selected. SQL> 1 delete from hr.test_regions 2* where region_name like '%60' SQL> Commit complete. SQL> SQL> Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options $

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 190: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-62

练习 10 的解答:管理方案对象(续)

b. 在“Administration(管理)”标签页上,转至“Tables(表)”页。

c. 在“Schema(方案)”字段中输入“HR”,然后单击“Go(开始)”。

问题 2:在“Tables(表)”页上,TEST_REGIONS 表中的行数是多少?为什么?

答案:行数为空,因为最近没有对该表进行分析。

3. 按照最佳惯例,在执行重大 DML 活动(如填充新表)之后,应该搜集新的统计

信息。请对 HR.TEST_REGIONS 表执行此操作。

a. 在“Tables(表)”页中,选择 TEST_REGIONS 表,然后在“Actions(操

作)”下拉列表中选择“Manage Optimizer Statistics(管理优化程序统计信息)”

并单击“Go(开始)”。

b. 此时将出现“Manage Optimizer Statistics(管理优化程序统计信息)”页。检查

相应信息,然后单击“Gather Optimizer Statistics(搜集优化程序统计信息)”。

c. 在后面的几页中,检查信息,然后单击“Next(下一步)”。在“Review (复查)”页中,单击“Submit(提交)”。

d. 单击“Job Name(作业名)”链接(很有可能有不同的名称)。

e. 如果速度够快,则将看到正在运行的作业。单击“Refresh(刷新)”,直至该 作业不再出现。

f. 单击“History(历史记录)”标签页,然后单击作业的名称。请确认该作业成功。

g. 返回到“HR Tables(HR 表)”页,然后查看 TEST_REGIONS 表的行数。

h. 此数目已由“Optimizer Statistics(优化程序统计信息)”更新。现在显示的行数

为 17000。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 191: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-63

练习 10 的解答:管理方案对象(续)

4. 查看 HR.TEST_REGIONS 表的段信息,该信息可通过“Edit Table Segments(编辑

表段)”页访问。

在观察 HR.TEST_REGIONS 表的段信息时,您注意到该表段具有 20% 以上的

“Wasted Space (%)(浪费空间 (%))”。您决定重组表空间的使用情况。在完成该

工作后,请确认您的工作已成功并再次查看当前空间占用率。空间是增大了还是

减小了?

a. 在 Oracle Enterprise Manager 中,选择“Administration > Tables(管理 > 表)”。

选择 TEST_REGIONS 表,然后单击“Edit(编辑)”。

b. 单击“Segments(段)”标签页,然后检查表的段信息。

c. 请注意“Wasted Space (%)(浪费空间 (%))”。您的值可能与此处显示的不同。

问题 3:产生浪费空间的原因是什么?

答案:填充表的脚本首先插入许多行,然后执行一些删除操作,根据插入的顺序删

除了一些不相邻的行。这表示在各数据块之间有分散的空闲空间,这些空间被视为

浪费的空间。

d. 在“Actions(操作)”下拉列表中选择“Reorganize(重组)”,然后单击“Go(开始)”。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 192: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-64

练习 10 的解答:管理方案对象(续)

e. 接受后面几页上的默认设置,然后单击“Next(下一步)”。在“Schedule (调度)”页上,为“Host Credentials(主机身份证明)”输入“Username (用户名)”和“Password(口令)”,它们均为 oracle。

f. 在“Review(复查)”页中,单击“Submit Job(提交作业)”。

g. 如果看到作业正在运行,请在浏览器窗口中单击“Refresh(刷新)”或“Reload(重新加载)”,直至作业完成并从“Results(结果)”列表中消失。

h. 然后,在“Confirmation(确认)”窗口中单击作业名链接。作业运行的状态应

该为“Succeeded(成功)”。

i. 返回到 HR 方案的“Tables(表)”页。选择 TEST_REGIONS 表,单击“Edit(编辑)”,然后在“Segments(段)”选项卡上查看“Wasted Space (%)(浪费

空间 (%))”。此值应该比前一个值要低得多。

5. 通过运行 lab_10_05.sh 脚本删除 HR.TEST_REGIONS 表。(此操作可以确保其他

课程练习不会受到此多余表的影响。)

DROP SEQUENCE test_seq; DROP TABLE hr.test_regions CASCADE CONSTRAINTS PURGE;

a. 在终端窗口的 /home/oracle/labs 目录中输入:

./lab_10_05.sh

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 193: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-65

练习 11 的解答:管理存储

背景:为了对即将进行的合并做好准备,您需要将警告阈值和严重阈值设置为比默认值

更低的值。请确保您能尽早收到警告,以便有更多的时间做出反应。在完成测试用例以

后,请删除您所使用的表空间。

请以 SYS 用户身份登录(使用 oracle 口令以 SYSDBA 身份连接),然后通过 Oracle Enterprise Manager Database Control 或通过 SQL*Plus 执行必需的任务。此练习的所有

脚本都位于 /home/oracle/labs 目录中。

1. 使用 DBMS_SERVER_ALERT.SET_THRESHOLD 过程,重置“Tablespace Space Usage(表空间的空间占用率)”度量的数据库范围阈值。可以使用 lab_11_01.sh 脚本

执行该操作。

exec DBMS_SERVER_ALERT.SET_THRESHOLD(- dbms_server_alert.tablespace_pct_full,- NULL,NULL,NULL,NULL,1,1,NULL,- dbms_server_alert.object_type_tablespace,NULL);

a. 在终端窗口中输入以下命令:

cd /home/oracle/labs ./lab_11_01.sh

2. 在 SQL*Plus 中,使用以下命令检查“Tablespace Space Usage(表空间的空间占

用率)”度量的数据库范围阈值:

SELECT warning_value,critical_value FROM dba_thresholds WHERE metrics_name='Tablespace Space Usage' AND object_name IS NULL;

a. 登录到 SQL*Plus:

sqlplus / as sysdba

b. 输入步骤 2 中的命令。应该得到以下结果:

WARNING_VALUE -------------------------------------------------------------------- CRITICAL_VALUE -------------------------------------------------------------------- 85 97

3. 创建一个名为 TBSALERT 的新的表空间,该表空间使用名为 alert1.dbf 的 120 MB 文件。请确保此表空间在本地进行管理并使用自动段空间管理功能。不要使此表空间

可自动扩展,并且不要为其指定任何阈值。请使用 Oracle Enterprise Manager Database Control 来创建表空间。如果数据库中已存在此表空间,请先将其删除(包括

其文件)。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 194: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-66

练习 11 的解答:管理存储(续)

a. 在 Oracle Enterprise Manager 中,选择“Administration > Tablespaces(管理 > 表空间)”。

b. 单击“Create(创建)”按钮。

c. 在“Name(名称)”中输入 TBSALERT,然后在“Datafiles(数据文件)”区域

中单击“Add(添加)”按钮。

d. 在“File Name(文件名)”中输入 alert1.dbf,在“File Size(文件大小)”

中输入 120 MB,然后选择“Reuse Exisiting File(重用现有文件)”。

e. 单击“Continue(继续)”,然后单击“OK(确定)”,以创建表空间。

4. 在 Oracle Enterprise Manager 中,更改 TBSALERT 表空间的“Tablespace Space Usage(表空间的空间占用率)”阈值。将其警告级别设置为 55%,并将其严重级别设置

为 70%。

a. 在“Tablespaces(表空间)”页中选择“TBSALERT”,单击“Edit(编辑)”,

再单击“Thresholds(阈值)”。

b. 选择“Specify Thresholds(指定阈值)”,然后在“Warning (%)(警告 (%))”

中输入 55 并在“Critical (%)(严重 (%))”中输入 70。

c. 可以选择单击“Show SQL(显示 SQL)”,检查语句,然后单击“Return (返回)”。

d. 单击“Apply(应用)”修改阈值。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 195: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-67

练习 11 的解答:管理存储(续)

5. 使用 SQL*Plus 检查 TBSALERT 表空间的新阈值。

a. 在 SQL*Plus 会话中,输入:

select warning_value,critical_value from dba_thresholds where metrics_name='Tablespace Space Usage' and object_name='TBSALERT';

结果应为:

WARNING_VALUE -------------------------------------------------------------------- CRITICAL_VALUE -------------------------------------------------------------------- 55 70

6. 从 TBSALERT 表空间的 DBA_ALERT_HISTORY 中选择 reason 列和 resolution 列。

a. 在 SQL*Plus 会话中,输入:

select reason,resolution from dba_alert_history where object_name='TBSALERT';

结果应为(如果正在重复此练习,请查看最后一行):

REASON RESOLUT -------------------------------------------------------- ------- Threshold is updated on metrics "Tablespace Space Usage" cleared

7. 执行 lab_11_07.sh 脚本,在 TBSALERT 表空间中创建并填充新表。输出如下所示:

create table employees1 tablespace tbsalert as select * from hr.employees; create table employees2 tablespace tbsalert as select * from hr.employees; create table employees3 tablespace tbsalert as select * from hr.employees; create table employees4 tablespace tbsalert as select * from hr.employees; create table employees5 tablespace tbsalert as select * from hr.employees; alter table employees1 enable row movement; alter table employees2 enable row movement; alter table employees3 enable row movement; BEGIN FOR i in 1..10 LOOP insert into employees1 select * from employees1; insert into employees2 select * from employees2;

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 196: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-68

练习 11 的解答:管理存储(续) insert into employees3 select * from employees3; insert into employees4 select * from employees4; insert into employees5 select * from employees5; commit; END LOOP; END; / insert into employees1 select * from employees1; insert into employees2 select * from employees2; insert into employees3 select * from employees3; commit;

8. 使用 Database Control 或 SQL*Plus 检查 TBSALERT 表空间的占满程度。当前级别应

该在 60% 左右。等待大约 10 分钟,然后检查是否达到了 TBSALERT 表空间的警告

级别。

a. 在 Oracle Enterprise Manager 的“Tablespaces(表空间)”页中,查看“Used (%)(占用率 (%))”。

b. 导航到“Database(数据库)”主页。应该可以在“Space Summary(空间概要)”

部分中看到新的预警。

c. 在 SQL*Plus 中输入:

select sum(bytes) *100 /125829120 from dba_extents where tablespace_name='TBSALERT';

结果应为:

SUM(BYTES)*100/125829120 ------------------------ 60

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 197: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-69

练习 11 的解答:管理存储(续)

d. 输入以下命令:

select reason from dba_outstanding_alerts where object_name='TBSALERT';

结果应为:

REASON -------------------------------------------------------------------- Tablespace [TBSALERT] is [60 percent] full

9. 执行 lab_11_09_a.sh 脚本,向 TBSALERT 中添加数据。等待 10 分钟,然后在数

据库和 Database Control 中查看严重级别。确认 TBSALERT 的占满程度为 75% 左右。

insert into employees4 select * from employees4; commit; insert into employees5 select * from employees5; commit;

a. 在终端窗口中输入以下命令:

./lab_11_09_a.sh

b. 等待 10 分钟,然后在数据库和 Database Control 中查看严重级别。确认 TBSALERT 的占满程度为 75% 左右。在 SQL*Plus 中输入:

select sum(bytes) *100 /125829120 from dba_extents where tablespace_name='TBSALERT';

SUM(BYTES)*100/125829120 ------------------------ 75

c. 在 SQL*Plus 中输入:

select reason, message_level from dba_outstanding_alerts where object_name='TBSALERT';

REASON --------------------------------------------------------------------------- MESSAGE_LEVEL ------------- Tablespace [TBSALERT] is [75 percent] full 1

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 198: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-70

练习 11 的解答:管理存储(续)

d. 在 Oracle Enterprise Manager 的“Tablespaces(表空间)”页中,查看“Used (%)(占用率 (%))”。

e. 导航到“Database(数据库)”主页。应该可以在“Space Summary(空间 概要)”区域中看到新的预警。请注意红色的标记,而不是黄色标记。

10. 执行 lab_11_10.sh 脚本。此脚本从 TBSALERT 的表中删除行。

delete employees1 where department_id=50; commit; delete employees2 where department_id=50; commit; delete employees3 where department_id=50; commit;

a. 在终端窗口中输入以下命令:

./lab_11_10.sh

11. 现在,使用 Database Control 对 TBSALERT 表空间运行段指导。请确保在

“Comprehensive(综合)”模式且无时间限制的情形下运行指导。接受并实施指导

的建议。在实施这些建议案之后,请检查 TBSALERT 的占满程度是否低于 55%。

a. 在 Oracle Enterprise Manager 中,选择“Administration > Tablespaces(管理 > 表空间)”。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 199: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-71

练习 11 的解答:管理存储(续)

b. 选择 TBSALERT,然后从“Actions(操作)”下拉列表中选择“Run Segment Advisor(运行段指导)”。

c. 单击“Go(开始)”,检查对象,然后单击“Next(下一步)”。

d. 在“Segment Advisor: Schedule(段指导:调度)”页中,确保“Schedule Type(调度类型)”为“Standard(标准)”,并且“Start(启动)”为“Immediately(立即)”。单击“Next(下一步)”。

e. 在“Segment Advisor: Review(段指导:复查)”页中,单击“Submit(提交)”

按钮。

f. 您将返回“Advisor Central(指导中心)”页,在该页上可以看到任务的进展。

单击“Refresh(刷新)”按钮,直至收缩任务完成。

g. 选择您的段指导任务,然后单击“View Result(查看结果)”按钮。

h. 在“Segment Advisor Task(段指导任务)”页上,单击“Recommendation Details(建议案详细资料)”按钮。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 200: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-72

练习 11 的解答:管理存储(续)

i. 单击“Select All(全选)”链接,然后单击“Implement(实施)”按钮。

j. 在“Shrink Segment: Options(收缩段:选项)”页中,确保选中了“Compact Segments and Release Space(压缩段并释放空间)”选项。

k. 可以选择单击“Show SQL(显示 SQL)”,检查语句,然后单击“Return (返回)”。

l. 单击“Implement(实施)”。

m. 在“Shrink Segment: Schedule(收缩段:调度)”页中,单击“Submit(提交)”

按钮。

n. 在“Scheduler Jobs(调度程序作业)”页中,单击“Refresh(刷新)”,直至 作业出现在“Running(正在运行)”表中。继续单击“Refresh(刷新)”,直

至作业不再出现在“Running(正在运行)”表中。完成此操作大约需要两分钟

时间。

o. 导航到“Tablespaces(表空间)”页,并确认 TBSALERT 表空间现在的占满程度

低于 55%。

12. 等待大约 10 多分钟,然后确认 TBSALERT 表空间不再有任何未处理的预警。

a. 导航到“Database(数据库)”主页。应看到“Problem Tablespaces(问题表 空间)”为“0”。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 201: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-73

练习 11 的解答:管理存储(续)

13. 检索 TBSALERT 的“Tablespace Space Usage(表空间的空间占用率)”度量在最近 24 小时内的历史记录。

a. 在“Database(数据库)”主页的“Related Links(相关链接)”区域中,选择

“All Metrics(所有度量)”。

b. 展开“Tablespaces Full(表空间已满)”类别,然后单击“Tablespace Space Used (%)(已用表空间百分比 (%))”链接。

c. 请确保从“View Data(查看数据)”下拉列表中选择“Real Time: Manual Refresh(实时:手动刷新)”。然后,单击 TBSALERT 链接。

d. 您将转至“Tablespace Space Used (%): Tablespace Name TBSALERT(已用表空间

百分比 (%):表空间名称 TBSALERT)”页。从“View Data(查看数据)”下拉

列表中选择“Last 24 hours(最近 24 小时)”。

14. 重置 TBSALERT 表空间的“Tablespace Space Usage(表空间的空间占用率)”度量

的数据库范围默认阈值。

a. 在“Tablespace Space Used (%): Tablespace Name TBSALERT(已用表空间 百分比 (%):表空间名称 TBSALERT)”页的上下文中,单击页面底部的 “Edit Tablespace(编辑表空间)”链接。

b. 此时将打开“Edit Tablespace: TBSALERT(编辑表空间: TBSALERT)”页。

单击“Thresholds(阈值)”选项卡。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 202: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-74

练习 11 的解答:管理存储(续)

c. 在“Space Used (%)(已用空间百分比 (%))”部分中选择“Use Database Default Thresholds(使用数据库默认阈值)”选项。单击“Apply(应用)”按钮。

15. 由于您已完成测试用例,因此请执行 lab_11_15.sh 脚本删除 TBSALERT 表空间。

drop tablespace tbsalert including contents and datafiles;

a. 在终端窗口中输入以下命令:

./lab_11_15.sh

您应该看到:

Tablespace dropped.

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 203: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-75

练习 12-1 的解答:自动存储管理

习题 1:创建和配置 ASM 实例

背景:当前,数据库服务器上还没有运行 ASM 实例。您需要创建一个实例并启动它,

使其指向已配置的裸磁盘分区。然后,在该磁盘组中创建一个表空间。同时,还将在常

规存储中创建一个表空间,然后将其移植到 ASM 存储中。

除非另行指定,否则应该通过 Database Control 或 SQL*Plus,以 SYS 用户身份作为 SYSDBA 登录。

在本练习中,您将创建一个 ASM 实例,配置 ASM 初始化参数,创建磁盘组,然后创建

一个使用 ASM 存储的表空间。

1. 使用 DBCA 在计算机上创建 ASM 实例。在 DBCA 中实施以下配置:

将 ASM 初始化参数的磁盘搜索字符串的默认值更改为“/dev/raw/raw*”(不带

引号)。

创建一个名为 DGROUP1 的磁盘组,该磁盘组使用以下四个 ASM 磁盘:

/dev/raw/raw1

/dev/raw/raw2

/dev/raw/raw3

/dev/raw/raw4

指定 DGROUP1 使用正常冗余。

a. 在 OS 命令行窗口中,以 oracle 用户身份启动 dbca。

$ whoami oracle $ dbca

b. 在 DBCA 的“Welcome(欢迎)”页中,单击“Next(下一步)”继续。 厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 204: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-76

练习 12-1 的解答:自动存储管理(续)

c. 在“Operations(操作)”页中,选择“Configure Automatic Storage Management(配置自动存储管理)”选项,然后单击“Next(下一步)”继续。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 205: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-77

练习 12-1 的解答:自动存储管理(续)

d. 单击“Next(下一步)”后,将出现一个警告窗口,提示您需要运行脚本。通过

输入 su – 命令,作为 root 登录。然后,运行警告窗口中指定的命令。完成后,

从 root 用户会话中注销。

$ su - Password: # /u01/app/oracle/product/10.2.0/db_1/bin/localconfig add /etc/oracle does not exist.Creating it now. Successfully accumulated necessary OCR keys. Creating OCR keys for user 'root', privgrp 'root'.. Operation successful. Configuration for local CSS has been initialized Adding to inittab Startup will be queued to init within 90 seconds. Checking the status of new Oracle init process... Expecting the CRS daemons to be up within 600 seconds. CSS is active on these nodes. edrsr9p1 CSS is active on all nodes. Oracle CSS service is installed and running under init(1M)

注:请务必通过输入以下命令,从 root 用户会话注销:

# exit

e. 等待脚本完成;该过程需要约两分钟的时间。然后,返回到警告窗口并单击“OK(确定)”,接着在“Operations(操作)”窗口中单击“Next(下一步)”。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 206: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-78

练习 12-1 的解答:自动存储管理(续)

f. 输入 SYS 用户的 ASM 实例口令 oracle,并在确认字段再次输入。然后,单击

“ASM Parameters(ASM 参数)”。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 207: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-79

练习 12-1 的解答:自动存储管理(续)

g. 在“ASM Parameters(ASM 参数)”页的“asm_diskstring”字段中,输入 /dev/raw/raw*。完成后,单击“Close(关闭)”。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 208: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-80

练习 12-1 的解答:自动存储管理(续)

h. 返回“Create ASM Instance(创建 ASM 实例)”页,然后单击“Next (下一步)”按钮。

i. 出现确认窗口时,请单击“OK(确定)”。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 209: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-81

练习 12-1 的解答:自动存储管理(续)

j. 出现“ASM Disk Groups(ASM 磁盘组)”窗口时,请单击“Create New (新建)”以创建磁盘组。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 210: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-82

练习 12-1 的解答:自动存储管理(续)

k. 在“Create Disk Group(创建磁盘组)”对话框的“Disk Group Name(磁盘组

名)”字段中,指定 DGROUP1。确保选中了“Normal(正常)”。只从“Select Member Disks(选择成员磁盘)”列表中选择前四个 CANDIDATE 磁盘,将这些

磁盘添加到磁盘组中,然后单击“OK(确定)”以创建磁盘组。不要选择磁盘

路径 /dev/raw/raw5。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 211: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-83

练习 12-1 的解答:自动存储管理(续)

l. 出现显示 DGROUP1 磁盘组的“ASM Disk Groups(ASM 磁盘组)”窗口时, 请单击“Finish(完成)”。

m. 在回答是否执行另一个操作的问题时,单击“No(否)”。然后,DBCA 将退出。

2. 使 Linux 命令窗口保持打开状态,供以后使用。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 212: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-84

练习 12-1 的解答:自动存储管理(续)

3. 在 OS 命令 Shell 中,以 oracle 的身份连接到 ASM 实例。列出与其相关联的进程。

在启动 ASM 实例之前,必须将 ORACLE_SID 设置为 +ASM。

a. 输入以下命令以连接到 ASM 实例:

$ export ORACLE_SID=+ASM $ sqlplus / as sysdba

下面是这些命令的输出:

$ export ORACLE_SID=+ASM $ sqlplus / as sysdba SQL*Plus: Release 10.2.0.1.0 - Production on Wed Oct 12 20:21:17 2005 Copyright (c) 1982, 2005, Oracle. All rights reserved. Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options

b. 通过输入此命令列出进程:

SQL> !ps -ef | grep ASM oracle 20417 1 0 15:26 ? 00:00:00 asm_pmon_+ASM oracle 20419 1 0 15:26 ? 00:00:00 asm_psp0_+ASM oracle 20421 1 0 15:26 ? 00:00:00 asm_mman_+ASM oracle 20423 1 0 15:26 ? 00:00:00 asm_dbw0_+ASM oracle 20425 1 0 15:26 ? 00:00:00 asm_lgwr_+ASM oracle 20427 1 0 15:26 ? 00:00:00 asm_ckpt_+ASM oracle 20429 1 0 15:26 ? 00:00:00 asm_smon_+ASM oracle 20431 1 1 15:26 ? 00:00:00 asm_rbal_+ASM oracle 20433 1 0 15:26 ? 00:00:00 asm_gmon_+ASM oracle 20445 20414 0 15:26 ? 00:00:00 oracle+ASM (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq))) oracle 20449 20414 0 15:26 pts/1 00:00:00 /bin/bash -c ps -ef | grep ASM oracle 20451 20449 0 15:26 pts/1 00:00:00 grep ASM

4. 在操作系统级别检查 ASM 进程,并且查询 V$ASM_DISKGROUP 以查看磁盘组特性。 SQL> SELECT name, state, type, total_mb, free_mb FROM V$ASM_DISKGROUP; NAME STATE TYPE TOTAL_MB FREE_MB ------------------------------ ----------- ------ ---------- ---------- DGROUP1 MOUNTED NORMAL 1600 1445

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 213: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-85

练习 12-1 的解答:自动存储管理(续)

5. 连接到 orcl 实例,然后创建一个名为 TBSASM、存储在 ASM 磁盘组 DGROUP1 内的新的表空间。该表空间应当具有一个 5 MB 的数据文件。在启动 SQL*Plus 之前,

请退出当前 Shell,然后以 oracle 身份重新登录。此操作将重置先前为 ASM 实例重

写的 ORACLE_SID 环境变量。此外,使用下面显示的命令可以将 ORACLE_SID 设置为 orcl。

a. 输入以下命令以连接到 ORCL 实例:

$ export ORACLE_SID=orcl $ sqlplus / as sysdba

b. 在 SQL 提示符下输入此命令,确认可在 ASM 存储中创建数据文件:

SQL> CREATE TABLESPACE tbsasm DATAFILE '+DGROUP1' SIZE 5M;

c. 输入以下命令以删除表空间:

SQL> DROP TABLESPACE tbsasm including contents and datafiles;

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 214: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-86

练习 12-2 的解答:自动存储管理

习题 2:将表空间移植到 ASM 存储中

在本练习中,您将移植表空间,使其可以使用 ASM 存储。

1. 使用 SQL*Plus,以 SYSDBA 用户身份连接到数据库实例,然后创建一个名为 TBSASMMIG 的新的表空间。此表空间应当只包含一个存储于文件系统中的 10 MB 大小的文件(不使用 ASM)。请确保连接的是 orcl 实例,而不是 ASM 实例。

$ echo $ORACLE_SID orcl $ sqlplus / as sysdba SQL*Plus: Release 10.2.0.1.0 - Production on Sun Sep 25 16:38:21 2005 Copyright (c) 1982, 2005, Oracle. All rights reserved. Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options SQL> CREATE TABLESPACE tbsasmmig DATAFILE 'asmmig1.dbf' SIZE 10M; Tablespace created.

2. 创建一个名为 T2、存储在新的表空间 TBSASMMIG 中的表。在 T2 中插入一行。提交

您所做的操作。

SQL> create table t2(c number) tablespace tbsasmmig; Table created. SQL> insert into t2 values(1); 1 row created. SQL> commit; Commit complete. 厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 215: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-87

练习 12-2 的解答:自动存储管理(续)

3. 将 TBSASMMIG 移植到 ASM 存储中。完成操作后,请检查移植是否成功,并且该表

空间中的表是否保持原样。

SQL> host rman target / nocatalog Recovery Manager: Release 10.2.0.1.0 - Production on Sun Sep 25 16:43:31 2005 Copyright (c) 1982, 2005, Oracle. All rights reserved. connected to target database: ORCL (DBID=1090770270) using target database control file instead of recovery catalog RMAN> SQL "ALTER TABLESPACE tbsasmmig OFFLINE"; sql statement: ALTER TABLESPACE tbsasmmig OFFLINE RMAN> BACKUP AS COPY TABLESPACE tbsasmmig FORMAT '+DGROUP1'; Starting backup at 25-SEP-05 allocated channel: ORA_DISK_1 channel ORA_DISK_1: sid=123 devtype=DISK channel ORA_DISK_1: starting datafile copy input datafile fno=00009 name=/u01/app/oracle/product/10.2.0/db_1/dbs/asmmig1.db f output filename=+DGROUP1/orcl/datafile/tbsasmmig.256.569954653 tag=TAG20050925T1 64407 recid=7 stamp=569954661 channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:16 Finished backup at 25-SEP-05 Starting Control File and SPFILE Autobackup at 25-SEP-05 piece handle=/u01/app/oracle/flash_recovery_area/ORCL/autobackup/2005_09_25/ o1_m f_s_569954663_1mgflrnn_.bkp comment=NONE Finished Control File and SPFILE Autobackup at 25-SEP-05 RMAN> SWITCH TABLESPACE tbsasmmig TO COPY; datafile 9 switched to datafile copy "+DGROUP1/orcl/datafile/tbsasmmig.256.56995 4653" RMAN> SQL "ALTER TABLESPACE tbsasmmig ONLINE"; sql statement: ALTER TABLESPACE tbsasmmig ONLINE RMAN> exit Recovery Manager complete. SQL> column file_name format a48 SQL> select tablespace_name, file_name from dba_data_files;

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 216: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-88

练习 12-2 的解答:自动存储管理(续) TABLESPACE_NAME FILE_NAME ----------------------- ------------------------------------------------ USERS /u01/app/oracle/oradata/orcl/users01.dbf SYSAUX /u01/app/oracle/oradata/orcl/sysaux01.dbf UNDOTBS1 /u01/app/oracle/oradata/orcl/undotbs01.dbf SYSTEM /u01/app/oracle/oradata/orcl/system01.dbf EXAMPLE /u01/app/oracle/oradata/orcl/example01.dbf STAGING /u01/app/oracle/oradata/orcl/staging01.dbf TBSASMMIG +DGROUP1/orcl/datafile/tbsasmmig.257.570022789 7 rows selected.

SQL> SELECT * FROM t2; C ---------- 1

4. 通过删除表空间 TBSASMMIG(包括其内容和数据文件)来清理环境。而且还可以

删除在步骤 1 中创建的、用来存储 TBSASMMIG 表空间的标准文件系统文件。

SQL> DROP TABLESPACE tbsasmmig INCLUDING CONTENTS AND DATAFILES; Tablespace dropped. SQL> host rm $ORACLE_HOME/dbs/asmmig1.dbf

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 217: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-89

练习 13 的解答:管理资源

背景:您收到投诉,称某些批处理作业使用了过多的系统资源,而且已知某个特定用户

在常规工作时间启动了数据仓库进程。您决定使用数据库资源管理器来更好地利用和控

制系统资源。

最初为了平衡这种状况而进行的工作包括创建一个 APPUSER 使用者组,并将其分配给

默认的 SYSTEM_PLAN 资源计划。然后,将多个 Oracle 用户和主要的 OS 用户映射到资

源组。激活该资源计划并测试所进行的分配。请定期单击“Show SQL(显示 SQL)”

以查看新出现的所有语句。

请以 SYS 用户身份登录(使用 oracle 口令以 SYSDBA 身份连接),然后通过 Oracle Enterprise Manager Database Control 或通过 SQL*Plus 执行必需的任务。此练习的所有

脚本都位于 /home/oracle/labs 目录中。

1. 使用 Oracle Enterprise Manager Database Control,创建一个名为 APPUSER 的资源组。

此时,请不要向该组添加用户。

a. 在 Oracle Enterprise Manager 中,选择“Administration > Consumer Groups(管理 > 使用者组)”。

b. 在“Resource Consumer Groups(资源使用者组)”页中,单击“Create(创建)”

按钮。

c. 输入 APPUSER 作为“Consumer Group(使用者组)”,然后单击“Show SQL(显示 SQL)”。

d. 检查语句。

问题 1:ROUND-ROBIN 参数值意味着什么?

可能的答案:ROUND-ROBIN 指示将根据活动的资源计划指令,向 APPUSER 使用者

组公平地分配 CPU 资源。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 218: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-90

练习 13 的解答:管理资源(续)

e. 单击“Return(返回)”,然后单击“OK(确定)”创建使用者组。

2. 将 APPUSER 使用者组添加到 SYSTEM_PLAN 资源计划中。更改级别 3 的 CPU 资源

分配百分比:APPUSER 使用者组为 60%,LOW_GROUP 使用者组为 40%。

a. 在 Oracle Enterprise Manager 中,选择“Administration > Plans(管理 > 计划)”。

b. 在“Resource Plans(资源计划)”页中,选择 SYSTEM_PLAN 并单击“Edit (编辑)”按钮。

c. 单击“Modify(修改)”。

d. 选择 APPUSER 并将其移至“Selected Groups/Subplans(所选组/子计划)”中。

e. 单击“OK(确定)”。

f. 为 APPUSER 第 3 级输入 60,并为 LOW_GROUP 第 3 级输入 40。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 219: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-91

练习 13 的解答:管理资源(续)

g. 单击“Show SQL(显示 SQL)”、检查语句,然后单击“Return(返回)”。

h. 单击“Apply(应用)”,将 APPUSER 使用者组分配给 SYSTEM_PLAN 资源计划。

(以后将激活此计划。)

3. 配置使用者组映射,使 HR Oracle 用户属于 APPUSER 使用者组,并且使 SCOTT Oracle 用户属于 LOW_GROUP 使用者组。确认 ORACLE_USER 属性具有比 CLIENT_OS_USER 属性更高的优先级。

a. 在 Oracle Enterprise Manager 中,选择“Administration > Consumer Group Mappings(管理 > 使用者组映射)”。

b. 在“Oracle User Map(Oracle 用户映射)”区域中,单击“Add Another Row (添加另一行)”。

c. 在“Consumer Group(使用者组)”下拉列表中选择 APPUSER,然后在“Oracle User(Oracle 用户)”中输入 HR,最后单击“Show SQL(显示 SQL)”。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 220: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-92

练习 13 的解答:管理资源(续)

d. 复查语句并单击“Return(返回)”。

e. 单击“Apply(应用)”,将 HR 用户分配给 APPUSER 使用者组。

f. 在“Oracle User Map(Oracle 用户映射)”区域中,单击“Add Another Row (添加另一行)”。

g. 在“Consumer Group(使用者组)”下拉列表中选择 LOW_GROUP,并在“Oracle User(Oracle 用户)”中输入 SCOTT。

h. 单击“Priorities(优先级)”选项卡。

i. 确认“Oracle User(Oracle 用户)”的优先级比“Client OS User(客户机操作 系统用户)”高。

j. 单击“Apply(应用)”,将 SCOTT 用户分配给 LOW_GROUP 使用者组。

k. 单击“General(一般信息)”选项卡。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 221: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-93

练习 13 的解答:管理资源(续)

4. 配置使用者组映射,以便使 oracle OS 用户属于 SYS_GROUP 使用者组。

a. 在 Oracle Enterprise Manager 中,选择“Administration > Consumer Group Mappings(管理 > 使用者组映射)”。

b. 在“Client OS User Map(客户机操作系统用户映射)”区域中,单击“Add Another Row(添加另一行)”。

c. 在“Consumer Group(使用者组)”下拉列表中选择 SYS_GROUP,并在“Client OS User(客户机操作系统用户)”中输入 oracle。

d. 可以选择单击“Show SQL(显示 SQL)”,检查语句,然后单击“Return (返回)”。

e. 单击“Apply(应用)”,将 oracle OS 用户分配给 SYS_GROUP 使用者组。

5. 将 PM Oracle 用户分配给以下使用者组:APPUSER、LOW_GROUP 和 SYS_GROUP。

a. 在 Oracle Enterprise Manager 中,选择“Administration > Users(管理 > 用户)”。

b. 选择 PM 用户,然后单击“Edit(编辑)”按钮。

c. 单击“Consumer Groups Switching Privileges(使用者组切换权限)”选项卡。

d. 单击“Edit List(编辑列表)”按钮。

e. 将 APPUSER、LOW_GROUP 和 SYS_GROUP 使用者组移至“Selected Consumer Groups(所选使用者组)”。 厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 222: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-94

练习 13 的解答:管理资源(续)

f. 单击“OK(确定)”,然后单击“Show SQL(显示 SQL)”。

g. 复查语句并单击“Return(返回)”。

h. 单击“Apply(应用)”,将 PM 用户分配给这些使用者组。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 223: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-95

练习 13 的解答:管理资源(续)

6. 执行 lab_13_06.sh 脚本,解除 HR、SCOTT、OE 和 PM Oracle 用户帐户的锁定。

设置口令以匹配用户名。

a. 在终端窗口中,输入:

cd /home/oracle/labs ./lab_13_06.sh

您会看到这四个用户已被修改。如果没有,请解决可能发生的任何问题。

7. 激活 SYSTEM_PLAN 资源计划。

a. 在 Oracle Enterprise Manager 中,选择“Administration > Plans(管理 > 计划)”。

b. 在“Resource Plans(资源计划)”页中选择 SYSTEM_PLAN,从“Actions (操作)”下拉列表中选择“Activate(激活)”,然后单击“Go(开始)”。

c. 单击“Yes(是)”以确认激活。

8. 检测使用者组映射。启动两个 SQL*Plus 会话:第一个使用 system/oracle@orcl 连接字符串,第二个使用 scott/scott@orcl 连接字符串。

a. 在终端窗口中,输入:

cd /home/oracle/labs sqlplus system/oracle@orcl

b. 在 SQL*Plus 会话中,输入:

SET SQLPROMPT “FIRST>”

c. 在第二个终端窗口中,输入:

cd /home/oracle/labs sqlplus scott/scott@orcl

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 224: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-96

练习 13 的解答:管理资源(续)

d. 在第二个 SQL*Plus 会话中,输入:

SET SQLPROMPT “SECOND>”

e. 在第一个 SQL*Plus 会话中,输入:

@lab_13_08_e.sql

f. 问题:SCOTT 用户属于哪一个使用者组?

答案:SCOTT 属于 LOW_GROUP 使用者组。

g. 在第二个终端窗口中,输入:

connect pm/pm@orcl

h. 在第一个 SQL*Plus 会话中,输入 /(斜杠)以重新执行上一个 SQL 语句。

i. 问题:PM 用户属于哪一个使用者组?

答案:PM 属于 SYS_GROUP 使用者组。

j. 在第二个终端窗口中,输入:

connect oe/oe@orcl

k. 在第一个 SQL*Plus 会话中,输入 /(斜杠)以重新执行上一个 SQL 语句。

l. 问题:在测试 Oracle 用户 OE 时,您注意到 OE 在 OTHER_GROUPS 使用者组中。

为什么会这样?

可能的答案:未明确将 OE 用户分配给另一个使用者资源组。

9. 停用 SYSTEM_PLAN 资源计划。

a. 在 Oracle Enterprise Manager 中,选择“Administration > Plans(管理 > 计划)”。

b. 在“Resource Plans(资源计划)”页中选择 SYSTEM_PLAN,从“Actions (操作)”下拉列表中选择“Deactivate(停用)”,然后单击“Go(开始)”。

c. 单击“Yes(是)”以确认停用。

d. 退出所有 SQL 会话并关闭终端窗口。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 225: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-97

练习 14-1 的解答:监视调度程序

背景:由于作业任务在定期地增加,所以您决定自动执行常规任务。首先,监视现有的

调度程序元素,然后创建调度程序组件并对其进行测试。

在本练习中,您将使用 Oracle Enterprise Manager Database Control 定义和监视调度程序,

并且自动执行任务。请定期单击“Show SQL(显示 SQL)”以查看新出现的所有语句。

按照提示,以 SYS 用户身份(使用 oracle 口令以 SYSDBA 连接身份)或以 HR 用户身份

(使用 HR 口令以 Normal 连接身份)登录。通过 Oracle Enterprise Manager Database Control 或通过 SQL*Plus 执行必需的任务。此练习的所有脚本都位于 /home/oracle/labs 目录中。

1. 以 SYS 用户身份登录 Oracle Enterprise Manager Database Control,然后将下列角色

授予 HR 用户: • CONNECT 角色 • RESOURCE 角色 • DBA 角色

由于您将使用 HR 用户来通过 Database Control 管理作业,所以需要确保该 HR 用户

已注册为有访问权限的管理员。

a. 在 Oracle Enterprise Manager 中,选择“Administration > Users(管理 > 用户)”。

b. 在“Users(用户)”页中,选择 HR 用户并单击“Edit(编辑)”。

c. 在“Edit User(编辑用户)”页中,单击“Roles(角色)”选项卡。然后,单击

该页右侧的“Edit List(编辑列表)”按钮。

d. 在“Modify Roles(修改角色)”页中,单击 DBA 角色,然后单击“Move (移动)”按钮将此角色授予 HR 用户。为 CONNECT 角色重复此步骤。然后,

单击“OK(确定)”按钮。

e. 可以选择单击“Show SQL(显示 SQL)”,检查语句,然后单击“Return (返回)”。

f. 在“Edit User(编辑用户)”页中,单击“Apply(应用)”。

g. 单击该页右上区域中的“Setup(设置)”链接。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 226: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-98

练习 14-1 的解答:监视调度程序(续)

h. 在“Administrators(管理员)”页中,单击“Create(创建)”按钮。

i. 在“Create Administrators: Properties(创建管理员:属性)”页的“Name (名称)”、“Password(口令)”和“Confirm Password(确认口令)”字段

中均输入 HR。

j. 单击“Finish(完成)”按钮。

k. 在“Create Administrator: Review(创建管理员:复查)”页中,单击“Finish (完成)”按钮。

l. 单击该页右上角的“Logout(注销)”链接。

2. 以 HR 用户身份登录 Oracle Enterprise Manager Database Control。在“Administration(管理)”标签页中,单击“Database Scheduler(数据库调度程序)”区域中的

“Jobs(作业)”链接。是否存在作业?

a. 单击“Login(登录)”按钮,以 HR 用户身份登录。

b. 对于用户名和口令均输入 HR,接受 Normal 作为“Connect As(连接身份)”并

单击“Login(登录)”。

c. 在“Oracle Database 10g Licensing Information(Oracle Database 10g 许可信息)”

页中,单击“I agree(我同意)”按钮。

d. 在 Oracle Enterprise Manager 的“Database Scheduler(数据库调度程序)”区域中,

选择“Administration > Jobs(管理 > 作业)”。

问题:是否存在作业?

答案:有一些作业。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 227: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-99

练习 14-1 的解答:监视调度程序(续)

3. 复查 Oracle Enterprise Manager 中的“Programs(程序)”页。是否存在现有程序?

(提示:请使用浏览器的“后退”按钮。)

a. 在 Enterprise Manager 的“Database Scheduler(数据库调度程序)”区域中,选择

“Administration > Programs(管理 > 程序)”。

问题:是否存在现有程序?

答案:有一些现有程序。

4. 复查 Oracle Enterprise Manager 中的“Scheduler Schedules(调度程序调度)”页。 是否存在现有调度?

a. 在 Oracle Enterprise Manager 中,选择“Administration > Schedules(管理 > 调度)”。

问题:是否存在现有调度?

答案:有一个名为 DAILY_PURGE_SCHEDULE 的调度。

5. 复查 Oracle Enterprise Manager 中的“Scheduler Windows(调度程序窗口)”页。 是否存在现有窗口?与各个窗口相关联的资源计划是什么?

a. 在 Oracle Enterprise Manager 中,选择“Administration > Windows(管理 > 窗口)”。

问题 1:是否存在现有窗口?它们的名称是什么?

答案:有两个分别名为 WEEKNIGHT_WINDOW 和 WEEKEND_WINDOW 的窗口。

b. 单击 WEEKNIGHT_WINDOW 链接。

问题 2:与此窗口相关联的资源计划是什么?

答案:无。

c. 单击“OK(确定)”,然后单击 WEEKEND_WINDOW 链接。

问题 3:与此窗口相关联的资源计划是什么?

答案:无。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 228: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-100

练习 14-1 的解答:监视调度程序(续)

6. 复查 Oracle Enterprise Manager 中的“Scheduler Job Classes(调度程序作业类)”页。

是否存在现有作业类?如果存在,那么与各个作业类相关联的资源使用者组是什么?

a. 在 Oracle Enterprise Manager 中,选择“Administration > Job Classes(管理 > 作业类)”。

问题 1:是否存在现有作业类?

答案:有两个分别名为 DEFAULT_JOB_CLASS 和 AUTO_TASKS_JOB_CLASS 的

作业类。

b. 单击 DEFAULT_JOB_CLASS 链接。

问题 2:哪个资源使用者组与作业类相关联?

答案:无。

c. 单击“OK(确定)”,然后单击 AUTO_TASKS_JOB_CLASS 链接。

问题 3:哪个资源使用者组与作业类相关联?

答案:AUTO_TASKS_JOB_CLASS 与 AUTO_TASK_CONSUMER_GROUP 相关联。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 229: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-101

练习 14-2 的解答:创建调度程序组件

在本练习中,您将使用 Oracle Enterprise Manager Database Control 创建调度程序对象,

并且自动执行任务。

前提条件:请确保您已完成上一个步骤 1,在该步骤中已授予 HR 用户管理权限。

1. 在 Database Control 中以 HR 用户身份登录数据库以后,请创建一个运行 SQL 脚本的

简单作业:

• 一般信息: 名称:CREATE_LOG_TABLE_JOB 所有者:HR 说明:为本练习的下一部分创建 SESSION_HISTORY 表 事件记录级别:RUNS 命令类型:PL/SQL PL/SQL 块:BEGIN execute immediate('create table session_history(snap_time TIMESTAMP WITH LOCAL TIME ZONE, num_sessions NUMBER)'); END; (可以在 lab_14_02_01.sql 文件中找到此 PL/SQL 块。)

• 调度: 重复:不重复 起始时间:立即

• 选项: 无特殊选项

a. 以 HR 用户身份登录 Oracle Enterprise Manager Database Control。

b. 在 Oracle Enterprise Manager 的“Database Scheduler(数据库调度程序)”区域

中,选择“Administration > Jobs(管理 > 作业)”。

c. 在“Scheduler Jobs(调度程序作业)”页中,单击“Create(创建)”按钮。

d. 在“Create Job - General(创建作业 - 一般信息)”页中,输入并确认以下值:

名称:CREATE_LOG_TABLE_JOB 所有者:HR 说明:创建 SESSION_HISTORY 表 事件记录级别:RUNS 命令类型:PL/SQL PL/SQL 块:

BEGIN execute immediate ('create table session_history(

snap_time TIMESTAMP WITH LOCAL TIME ZONE, num_sessions NUMBER)');

END;

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 230: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-102

练习 14-2 的解答:创建调度程序组件(续)

e. 在“Create Job - Schedule(创建作业 - 计划)”页中,输入并确认以下值:

重复:不重复 起始时间:立刻

f. 单击“Show SQL(显示 SQL)”。 厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 231: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-103

练习 14-2 的解答:创建调度程序组件(续)

g. 复查语句并单击“Return(返回)”。

h. 单击“OK(确定)”以创建作业。

i. 如果作业没有出现在“Scheduler Jobs(调度程序作业)”页中,请单击“Refresh(刷新)”按钮,直至成功。

2. 创建一个名为 LOG_SESS_COUNT_PRGM 的程序,该程序将当前数据库会话数记录

到表中。使用以下代码(lab_14_02_02.sql 脚本中也提供了这些代码): DECLARE sess_count NUMBER; BEGIN SELECT COUNT(*) INTO sess_count FROM V$SESSION; INSERT INTO session_history VALUES (systimestamp, sess_count); COMMIT; END;

a. 在 Oracle Enterprise Manager 中,选择“Administration > Programs(管理 > 程序)”。

b. 在“Scheduler Programs(调度程序)”页中,单击“Create(创建)”按钮。

c. 在“Create Program(创建程序)”页中,输入并确认以下值:

名称:LOG_SESS_COUNT_PRGM 方案:HR 启用:是 类型:PLSQL_BLOCK 源:

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 232: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-104

练习 14-2 的解答:创建调度程序组件(续)

DECLARE sess_count NUMBER; BEGIN SELECT COUNT(*) INTO sess_count FROM V$SESSION; INSERT INTO session_history VALUES (systimestamp, sess_count); COMMIT; END;

d. 单击“Show SQL(显示 SQL)”。

e. 复查语句,然后单击“Return(返回)”。

f. 单击“OK(确定)”以创建程序。

3. 创建一个由 HR 拥有的、名为 SESS_UPDATE_SCHED 的调度,该调度每三秒钟执行

一次。使用 SQL*Plus 和 DBMS_SCHEDULER.CREATE_SCHEDULE 过程创建该调度。

BEGIN DBMS_SCHEDULER.CREATE_SCHEDULE( schedule_name => 'SESS_UPDATE_SCHED', start_date => SYSTIMESTAMP, repeat_interval => 'FREQ=SECONDLY;INTERVAL=3', comments => 'Every three seconds'); END; /

返回 Oracle Enterprise Manager Database Control,然后确认是否已经创建了 SESS_UPDATE_SCHED 调度。

提示:您可能必须刷新页面,该调度才能出现。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 233: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-105

练习 14-2 的解答:创建调度程序组件(续)

a. 在终端窗口中,输入:

sqlplus hr/hr

b. 在 SQL*Plus 会话中,输入:

BEGIN DBMS_SCHEDULER.CREATE_SCHEDULE( schedule_name => 'SESS_UPDATE_SCHED', start_date => SYSTIMESTAMP, repeat_interval => 'FREQ=SECONDLY;INTERVAL=3', comments => 'Every three seconds'); END; /

c. 在 Oracle Enterprise Manager 中,选择“Administration > Schedules(管理 > 调度)”。

d. 确认已创建 SESS_UPDATE_SCHED 调度。(您可能必须刷新页面,该调度才能

出现。)

4. 使用 Oracle Enterprise Manager Database Control,创建一个名为 LOG_SESSIONS_JOB 的、使用 LOG_SESS_COUNT_PRGM 程序和 SESS_UPDATE_SCHED 调度的作业。

确保该作业使用 FULL 事件记录。

a. 在 Oracle Enterprise Manager 中,选择“Administration > Jobs(管理 > 作业)”,

然后单击“Create(创建)”。

b. 在“Create Job(创建作业)”页中,输入并确认以下值:

名称:LOG_SESSIONS_JOB 所有者:HR 说明:通过 HR.LOG_SESS_COUNT_PRGM 统计会话数 事件记录级别:FULL

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 234: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-106

练习 14-2 的解答:创建调度程序组件(续)

c. 单击“Change Command Type(更改命令类型)”,并在“Select Command Option(选择命令选项)”页中选择“Program Name(程序名)”,然后在旁边的字段

中输入 HR.LOG_SESS_COUNT_PRGM,或者使用“Lookup(查找)”图标选择

程序。单击“OK(确定)”。

d. 单击“Schedule(调度)”选项卡。

e. 将“Schedule Type(调度类型)”更改为“Use Pre-Defined Schedule(使用预定义的

调度)”,然后通过使用“Lookup(查找)”图标选择 HR.SESS_UPDATE_SCHED 调度。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 235: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-107

练习 14-2 的解答:创建调度程序组件(续)

f. 单击“Show SQL(显示 SQL)”。

g. 复查语句,然后单击“Return(返回)”。

h. 单击“OK(确定)”以创建作业。

5. 在 SQL*Plus 会话中,检查 HR.SESSION_HISTORY 表是否包含行。

a. 输入:

SELECT * FROM SESSION_HISTORY ORDER BY snap_time;

您的结果可能会不一样,但秒值之间应该相隔三秒:

SNAP_TIME ------------------------------------------------------------------- NUM_SESSIONS ------------ 17-SEP-05 07.24.35.113274 PM 24 17-SEP-05 07.24.38.112987 PM 24

问题:如果该表中包含行,那么时间戳是否相隔三秒?

答案:是,表中有行,而且时间戳相隔三秒。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 236: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-108

练习 14-2 的解答:创建调度程序组件(续)

6. 使用 Oracle Enterprise Manager Database Control 将 SESS_UPDATE_SCHED 调度从

每三秒钟变更为每三分钟。然后,使用 SQL*Plus 验证现在是否每三分钟添加一行:

查询 HR.SESSION_HISTORY 表(按 SNAP_TIME 列排序)。

a. 在 Oracle Enterprise Manager 中,选择“Administration > Schedules(管理 > 调度)”。

b. 单击 SESS_UPDATE_SCHED 链接。

c. 在“View Schedule(查看调度)”页中,单击“Edit(编辑)”。

d. 将说明更改为“Every three minutes(每三分钟)”。

e. 将“Repeat(重复)”下拉列表中的值从“By Seconds(按秒)”更改为 “By Minutes(按分钟)”。

f. 确保间隔为 3,然后单击“Show SQL(显示 SQL)”。

g. 复查语句,单击“Return(返回)”,再单击“Apply(应用)”。

h. 在 SQL*Plus 会话中,查询 HR.SESSION_HISTORY 表(按 SNAP_TIME 列排序)。

(更新调度后等待三分钟时间。)输入:

SELECT * FROM HR.SESSION_HISTORY ORDER BY snap_time;

您的结果可能会不一样(但分钟值之间应该相隔 3 分钟):

SNAP_TIME --------------------------------------------------------------------- NUM_SESSIONS -------------- 17-SEP-05 08.29.32.024307 PM 23 17-SEP-05 08.32.00.113159 PM 23

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 237: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-109

练习 14-2 的解答:创建调度程序组件(续)

7. 以下是您必须完成的清理任务。使用 Oracle Enterprise Manager 删除 LOG_SESSIONS_JOB 和 CREATE_LOG_TABLE_JOB 作业、LOG_SESS_COUNT_PRGM 程序以及 SESS_UPDATE_SCHED 调度。使用 SQL*Plus 删除 SESSION_HISTORY 表,

然后退出会话。

注:请确保您没有误删调度。

a. 在 Oracle Enterprise Manager 中,选择“Administration > Jobs(管理 > 作业)”。

b. 选中了 LOG_SESSIONS_JOB 作业时,单击“Delete(删除)”按钮。选择

“Drop the job and stop any running instance(删除作业并停止所有正在运行的 实例)”,然后单击“Yes(是)”。

c. 返回到“Scheduler Jobs(调度程序作业)”页,选择 CREATE_LOG_TABLE_JOB 并单击“Delete(删除)”。

d. 选择“If there are dependent objects, it will not be dropped(如果存在从属对象,就不会

将其删除。)”,然后在“Confirmation(确认)”页中单击“Yes(是)”。

e. 单击该页左上角的“Database Instance(数据库实例)”面包屑图标,返回

“Administration(管理)”页。然后,单击“Programs(程序)”。

f. 选中了 LOG_SESS_COUNT_PRGM 程序时,单击“Delete(删除)”按钮。单击

“Yes(是)”确认。

g. 单击该页左上角的“Database Instance(数据库实例)”面包屑图标,返回

“Administration(管理)”页。单击“Schedules(调度)”。

h. 选中了 SESS_UPDATE_SCHED 计划时,单击“Delete(删除)”按钮。请确保

您没有误删调度。

i. 选择“If there are dependent objects, it will not be dropped(如果存在从属对象, 就不会将其删除。)”,然后单击“Yes(是)”以确认。

j. 在 SQL*Plus 会话中,以 HR 用户身份删除 SESSION_HISTORY 表,然后退出

会话。输入:

DROP TABLE session_history PURGE; EXIT

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 238: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-110

练习 15 的解答:数据库安全性

背景:您的组织提高了对数据库安全性的需求。已要求您准备为技术同事演示透明的

数据加密的工作方式。首先,您使用 Oracle Wallet Manager 创建一个新的加密 wallet。然后,以 SYSDBA 身份打开该 wallet,设置加密密钥,然后创建 TDE_DBA 用户。您以 TDE_DBA 用户身份创建 TDE 表空间,其中带有一个包含一行的 EMP_ENC 表。根据在

场听众所提出的问题,您将展示各种详细资料,包括 DBA_ENCRYPTED_COLUMNS 以及

在关闭 wallet 和打开 wallet 的情况下进行查询时所发生的事情。最后,您清理演示对象。

1. 在桌面上,使用 Oracle Wallet Manager 图形工具创建一个存储在 /home/oracle/labs 目录中的新的 wallet。请确保 wallet 使用的口令为 ora1cle2。

a. 在终端窗口中,输入:

owm

b. 在菜单栏中单击“Wallet”,然后单击“New(新建)”。

c. 屏幕上将出现一个警告窗口,询问您是否创建默认的 wallet 目录。单击 “No(否)”。

ora1cle2

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 239: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-111

练习 15 的解答:数据库安全性(续)

d. 在“New Wallet(新建 Wallet)”窗口的“Wallet Password(Wallet 口令)”和

“Confirm Password(确认口令)”字段中,均输入 ora1cle2。单击“OK(确定)”。

e. 单击“No(否)”。此时不要创建证书。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 240: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-112

练习 15 的解答:数据库安全性(续)

f. 再次从菜单栏中选择“Wallet”,然后单击“Save As(另存为)”。

g. 在“Select Directory(选择目录)”窗口中,选择 /home/oracle/labs,然后

单击“OK(确定)”。

现在,您已经在 /home/oracle/labs 目录中创建了一个名为 ewallet.p12 的新 wallet。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 241: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-113

练习 15 的解答:数据库安全性(续)

2. 确保将以下条目添加到 sqlnet.ora 文件中。在本课程中,该条目位于 walletlocation.ora 文件中。

WALLET_LOCATION= (SOURCE= (METHOD=file) (METHOD_DATA= (DIRECTORY=/home/oracle/labs)))

a. 在终端窗口中输入以下命令:

cd $HOME/labs cp $ORACLE_HOME/network/admin/sqlnet.ora old_sqlnet.ora cat walletlocation.ora >> $ORACLE_HOME/network/admin/sqlnet.ora

3. 以 SYSDBA 身份启动一个 SQL*Plus 会话,以便从您的实例中打开 wallet。

a. 在终端窗口中,输入:

sqlplus / as sysdba

b. 在 SQL*Plus 会话中,输入:

ALTER SYSTEM SET ENCRYPTION WALLET OPEN IDENTIFIED BY "ora1cle2";

应该出现一条系统被更改的消息。

4. 在 SQL*Plus 会话中,以 SYSDBA 身份在实例中设置主密钥。

a. 输入:

ALTER SYSTEM SET ENCRYPTION KEY IDENTIFIED BY "ora1cle2";

应该再次出现一条系统被更改的消息。

5. 在终端仿真程序会话中,执行 lab_15_05.sh 脚本。此脚本创建一个名为 TDE_DBA 的新用户,该用户由口令 TDE_DBA 标识。它还创建了一个名为 TDE 的、

存储在 ASM 外部的新的表空间。随后,此脚本创建了一个名为 EMP_ENC 的新表,

该表存储在 TDE 表空间中,并且由 TDE_DBA 所拥有。此表中包含两个加密列:

SALARY 和 JOB。然后,脚本在新表中插入了一行。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 242: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-114

练习 15 的解答:数据库安全性(续)

sqlplus / as sysdba << EOF set echo on create user TDE_DBA identified by TDE_DBA default tablespace users temporary tablespace temp; grant connect, resource, dba to TDE_DBA; connect TDE_DBA/TDE_DBA CREATE SMALLFILE TABLESPACE "TDE" DATAFILE 'tde1.dbf' SIZE 500K LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO; drop table emp_enc purge; CREATE TABLE emp_enc ( first_name VARCHAR2(20), last_name VARCHAR2(20), empID NUMBER, salary NUMBER(6) ENCRYPT, job_nonenc varchar2(20), job varchar2(20) ENCRYPT ) tablespace tde; insert into emp_enc values('John','Wild',1,'10000','CurriculumA','CurriculumB'); commit; exit; EOF

a) 在终端窗口中,输入:

./lab_15_05.sh

6. 在 SQL*Plus 会话中,以 SYSDBA 身份确定数据库中的加密列的列表。然后,选择 EMP_ENC 表的所有行和列。

a. 输入:

select table_name,column_name from dba_encrypted_columns;

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 243: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-115

练习 15 的解答:数据库安全性(续)

下面是此命令的输出:

TABLE_NAME COLUMN_NAME ------------------------------ ------------------------------ EMP_ENC SALARY EMP_ENC JOB

b. 现在请输入:

SQL> select * from TDE_DBA.emp_enc;

结果应该如下所示:

FIRST_NAME LAST_NAME EMPID SALARY -------------------- -------------------- ---------- ---------- JOB_NONENC JOB -------------------- -------------------- John Wild 1 10000 CurriculumA CurriculumB

7. 在 SQL*Plus 会话中,以 SYSDBA 身份确保包含 EMP_ENC 表的文件中包含加密列

的值。使 TDE 表空间脱机,然后使用 OS 命令查看文件内容,并且将该表空间重新

置于联机状态。

可能的 Linux 语法:strings <directory>/<file_name> | more

a. 输入:

alter tablespace tde offline;

b. 输入:

host strings /u01/app/oracle/product/10.2.0/db_1/dbs/tde1.dbf | more

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 244: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-116

练习 15 的解答:数据库安全性(续)

部分结果应该如下所示:

}|{z @ORCL u > STATUS STATUS# NAME TYPE# … DEFLOGGING DEFGROUPS &-------------------------------------- &-------------------------------------- &-------------------------------------- &-------------------------------------- &-------------------------------------- John Wild `Eo4 CurriculumA4 $#t zqm VS DEGREE SAMPLESIZE …

c. 输入:

alter tablespace tde online;

8. 在 SQL*Plus 会话中,以 SYSDBA 身份从实例中关闭 wallet,然后尝试选择 TDE_DBA.EMP_ENC 表中包含的数据。此时会看到什么结果?

a. 在 SQL*Plus 会话中,输入:

ALTER SYSTEM SET ENCRYPTION WALLET CLOSE;

b. 查询 TDE_DBA.EMP_ENC 表。输入:

SQL> select * from TDE_DBA.emp_enc; select * from TDE_DBA.emp_enc * ERROR at line 1: ORA-28365: wallet is not open

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 245: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-117

练习 15 的解答:数据库安全性(续)

问题:此时会看到什么结果?

可能的答案:因为 wallet 已关闭,所以无法再访问 EMP_ENC。

c. 现在,打开该 wallet 并重新查询 TDE_DBA.EMP_ENC 表:

SQL> ALTER SYSTEM SET ENCRYPTION WALLET OPEN IDENTIFIED BY "ora1cle2"; System altered. SQL> select * from TDE_DBA.emp_enc; FIRST_NAME LAST_NAME EMPID SALARY -------------------- -------------------- ---------- ---------- JOB_NONENC JOB -------------------- -------------------- John Wild 1 10000 CurriculumA CurriculumB

d) 退出 SQL*Plus 会话:

SQL> exit; Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options $

9. 要清理环境,请从终端仿真程序会话中执行 lab_15_09.sh 脚本。该脚本将关闭 wallet,并删除 TDE 表空间和 TDE_DBA 用户。

a. 在终端窗口中,输入:

./lab_15_09.sh

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 246: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-118

练习 15 的解答:数据库安全性(续)

下面是此命令的结果:

$ sqlplus / as sysdba SQL*Plus: Release 10.2.0.1.0 - Production on Mon May 16 03:41:34 2005 Copyright (c) 1982, 2005, Oracle. All rights reserved. Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options SQL> ALTER SYSTEM SET ENCRYPTION WALLET CLOSE; System altered. SQL> drop tablespace tde including contents and datafiles; Tablespace dropped. SQL> drop user TDE_DBA cascade; User dropped. SQL> exit; Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options $

b. 如果 Oracle Wallet Manager 仍处于打开状态,请选择“Wallet > Exit(Wallet > 退出)”以从中退出。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 247: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-119

练习 16 的解答:使用全球化支持

背景:您所在的公司收购了另外一家公司,该公司有一个庞大的法语用户群。一般情况

下,您不应该更改数据库本身,而应该使用更细的粒度来满足他们的需要。因此,您决

定主要使用特定于会话的设置来更改语言、日期和时间格式,以及解决排序问题。请使

用 system/oracle@orcl 作为数据库登录信息,并使用 /home/oracle/labs 作为

工作目录。

1. 通过打开浏览器并输入以下 URL,启动 iSQL*Plus:http://<hostname>:5560/isqlplus;或者导航到 Oracle Enterprise Manager > Database(数据库)主页 > Related Links(相关链接)> iSQL*Plus。以 system 用户

身份并使用 oracle 口令和 orcl 连接标识符登录。

2. 确定数据库字符集和国家字符集。

SELECT * FROM NLS_DATABASE_PARAMETERS WHERE parameter LIKE '%CHARACTER%';

3. 熟悉 NLS 设置并修改当前日期格式。

a. 选择当前日期。

SELECT SYSDATE FROM dual;

b. 年份不是使用四位数年份格式显示的。请更改会话以显示四位数的年份和当前

时间(包括秒)。

ALTER SESSION SET NLS_DATE_FORMAT='DD-MON-YYYY HH:MI:SS'; SELECT SYSDATE FROM dual;

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 248: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-120

练习 16 的解答:使用全球化支持(续)

c. 在会话中显示法语文本。显示当前系统日期和时间。

4. 导入 WORDS 表(该表位于 lab_16_04_a.dmp 文件中)。lab_16_04_a.sh 脚本

可以为您提供帮助。

a. 导航到工作目录并执行脚本:

cd $HOME/labs ./lab_16_04_a.sh

该脚本创建一个名为 WORDS 的、包含四行的表。

b. 解决可能发生的任何错误。

5. 显示 WORDS 表的内容。

SELECT * FROM words;

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 249: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-121

练习 16 的解答:使用全球化支持(续)

6. 对于您的会话,将 NLS_SORT 设置为 BINARY。选择表内容,并且按照 FR_WORD 列对结果进行排序。NUM 列中的数字是按照什么顺序显示的?

ALTER SESSION SET NLS_SORT=BINARY;

SELECT * FROM words ORDER BY fr_word;

7. 接下来,将 NLS_SORT 设置为 FRENCH。选择表内容,并且按照 FR_WORD 列对结果

进行排序。NUM 列中的数字是按照什么顺序显示的?

ALTER SESSION SET NLS_SORT=FRENCH;

SELECT * FROM words ORDER BY fr_word;

8. 将 NLS_SORT 设置为 FRENCH_M。选择表内容,并且按照 FR_WORD 列对结果进行

排序。NUM 列中的数字是按照什么顺序显示的?

ALTER SESSION SET NLS_SORT=FRENCH_M;

SELECT * FROM words ORDER BY fr_word;

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 250: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-122

练习 16 的解答:使用全球化支持(续)

9. 将 NLS_SORT 设置为 BINARY。现在,按照与上一个查询相同的顺序检索表内容,

但不使用其他 ALTER SESSION 命令。

ALTER SESSION SET NLS_SORT=BINARY;

SELECT * FROM words ORDER BY NLSSORT(fr_word,'NLS_SORT=FRENCH_M');

10. 删除该表,并且从回收站中将其删除。

DROP TABLE words PURGE;

11. 通过关闭窗口来关闭 iSQL*Plus 实例。

单击窗口边框右上角的 X(“Close(关闭)”图标)。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 251: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-123

课堂练习方案 1 的解答

背景:为了提供一致的起始点来开始课堂练习,需要复制您在本课程开头制作的数据库

的副本。有一个脚本能够完成该工作,并可以执行其他一些用于重置数据库状态的任务。

不过,此时的主要差别在于事实上 ASM 实例仍然可用。

1. 更改为 $HOME/workshops 目录,然后运行 ws_prep.sh 脚本,将数据库重置为

本课程开始时的状态。

a. 在 OS 命令提示符下输入以下命令:

$ cd $HOME/workshops $ ./ws_prep.sh

下面是该脚本的输出:

$ ./ws_prep.sh Shutting down the database... SQL> Database closed. Database dismounted. ORACLE instance shut down. SQL> Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options Cleaning out the Flash Recovery Area... Moving the current datafiles out... Copying baseline datafiles in... Starting the instance... Connected to an idle instance. SQL> ORACLE instance started. Total System Global Area 285212672 bytes Fixed Size 1218992 bytes Variable Size 113247824 bytes Database Buffers 167772160 bytes Redo Buffers 2973696 bytes Database mounted. Database opened. SQL> Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options Finished. $

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 252: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-124

课堂练习方案 1 的解答(续)

2. 在 Oracle Enterprise Manager 中关闭然后启动 Database Control Console。请使用 emctl stop 和 start 指令执行此操作。

a. 在 OS 命令提示符下输入以下命令,停止 Database Control:

$ emctl stop dbconsole

b. 在 OS 命令提示符下输入以下命令,重新启动 Database Control:

$ emctl start dbconsole

3. 以 SYS 用户身份,作为 SYSDBA 登录 Oracle Enterprise Manager,将数据库置于 ARCHIVELOG 模式,然后启用闪回事件记录功能。

a. 导航到“Maintenance > Recovery Settings(维护 > 恢复设置)”。

b. 选中“ARCHIVELOG Mode(ARCHIVELOG 模式)”复选框。

c. 选中“Enable Flashback Database(启用闪回数据库)”复选框。

d. 单击“Apply(应用)”。

e. 单击“Yes(是)”,以确认重新启动该数据库。

f. 输入主机身份证明:oracle/oracle,然后单击“OK(确定)”以重新启动

数据库。

g. 单击“Yes(是)”,确认重新启动。

h. 单击“Refresh(刷新)”,直至出现登录屏幕,此时以 SYS 用户身份作为 SYSDBA 再次登录。

4. 使用 RMAN,为您的控制文件和 SPFILE 配置 AUTOBACKUP。

a. 在 OS 命令提示符下输入以下命令以启动 RMAN:

$ rman target / NOCATALOG

b. 输入以下 RMAN 命令:

RMAN> configure controlfile autobackup on;

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 253: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-125

课堂练习方案 1 的解答(续)

5. 获取数据库的完整备份,包括已归档的日志。请使用尽可能少的空间来存储备份。

a. 输入以下 RMAN 命令:

RMAN> BACKUP AS COMPRESSED BACKUPSET DATABASE PLUS ARCHIVELOG;

下面是该命令的输出:

RMAN> BACKUP AS COMPRESSED BACKUPSET DATABASE PLUS ARCHIVELOG; Starting backup at 2005-12-14 23:01:11 current log archived allocated channel: ORA_DISK_1 channel ORA_DISK_1: sid=126 devtype=DISK channel ORA_DISK_1: starting compressed archive log backupset channel ORA_DISK_1: specifying archive log(s) in backup set input archive log thread=1 sequence=8 recid=1 stamp=577062077 channel ORA_DISK_1: starting piece 1 at 2005-12-14 23:01:20 channel ORA_DISK_1: finished piece 1 at 2005-12-14 23:01:35 piece handle=/u01/app/oracle/flash_recovery_area/ORCL/backupset/2005_12_14/ o1_mf_annnn_TAG20051214T230119_1t2560so_.bkp tag=TAG20051214T230119 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:16 Finished backup at 2005-12-14 23:01:35 Starting backup at 2005-12-14 23:01:36 using channel ORA_DISK_1 channel ORA_DISK_1: starting compressed full datafile backupset channel ORA_DISK_1: specifying datafile(s) in backupset input datafile fno=00001 name=/u01/app/oracle/oradata/orcl/system01.dbf input datafile fno=00003 name=/u01/app/oracle/oradata/orcl/sysaux01.dbf input datafile fno=00005 name=/u01/app/oracle/oradata/orcl/example01.dbf input datafile fno=00002 name=/u01/app/oracle/oradata/orcl/undotbs01.dbf input datafile fno=00004 name=/u01/app/oracle/oradata/orcl/users01.dbf channel ORA_DISK_1: starting piece 1 at 2005-12-14 23:01:36 channel ORA_DISK_1: finished piece 1 at 2005-12-14 23:04:03 piece handle=/u01/app/oracle/flash_recovery_area/ORCL/backupset/2005_12_14/ o1_mf_nnndf_TAG20051214T230136_1t256l6p_.bkp tag=TAG20051214T230136 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:02:27 Finished backup at 2005-12-14 23:04:04 Starting backup at 2005-12-14 23:04:04 current log archived using channel ORA_DISK_1 channel ORA_DISK_1: starting compressed archive log backupset channel ORA_DISK_1: specifying archive log(s) in backup set input archive log thread=1 sequence=9 recid=2 stamp=577062246 channel ORA_DISK_1: starting piece 1 at 2005-12-14 23:04:09

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 254: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-126

课堂练习方案 1 的解答(续) channel ORA_DISK_1: finished piece 1 at 2005-12-14 23:04:10 piece handle=/u01/app/oracle/flash_recovery_area/ORCL/backupset/2005_12_14/ o1_mf_annnn_TAG20051214T230407_1t25c9kx_.bkp tag=TAG20051214T230407 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:02

Finished backup at 2005-12-14 23:04:10 Starting Control File and SPFILE Autobackup at 2005-12-14 23:04:10 piece handle=/u01/app/oracle/flash_recovery_area/ORCL/autobackup/2005_12_14/ o1_mf_s_577062250_1t25cd94_.bkp comment=NONE Finished Control File and SPFILE Autobackup at 2005-12-14 23:04:13 RMAN>

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 255: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-127

课堂练习方案 2 的解答

背景:此课堂练习方案涉及到数据丢失。要制造该问题,请先从 Oracle Enterprise Manager 注销。然后,将目录更改为 $HOME/workshops,并且以 SYSTEM 用户身份,

使用 SQL*Plus 运行 wlab_02.sql 脚本,如下所示:

$ cd $HOME/workshops $ sqlplus system/oracle @wlab_02.sql

转至 Oracle Enterprise Manager Console 并查看“Database(数据库)”页,开始进行调

查。将调查结果记录在“Observations(观测数据)”下。在确定问题以后,制定能够更

正该问题的计划。可能存在多个可行的解决方案。在“Methodology(方法)”下记录

所有可能解决该问题的方法。

您的工作是选取最佳解决方案来解决数据库问题。在应用解决方案以后,请确认该问题

已得到更正。将结果记录在“Results(结果)”下。

观测数据:在执行 wlab_02.sql 脚本之后,您会注意到数据库被关闭。试图重新启动

该实例会导致以下错误:

ORA-01157: cannot identify/lock data file 1 - see DBWR trace file ORA-01110: data file 1: '/u01/app/oracle/oradata/orcl/system01.dbf'

试图通过 Oracle Enterprise Manager 连接到数据库时,将显示一个信息屏幕,其中指示

“The database status is currently unavailable(数据库状态当前不可用)”。可以选择启

动数据库或执行恢复。

通过检查 $ORACLE_BASE/oradata/orcl 目录可以发现,SYSTEM 表空间的数据文件

丢失。

方法

由于有最新备份并且正在进行归档,所以最佳解决方案是使用完全恢复功能来恢复丢失

的数据文件。

1. 使用 Oracle Enterprise Manager,单击“Startup(启动)”以尝试启动数据库。启动

将失败,并且将数据库置于 MOUNT 状态。

2. 在尝试登录后显示的页面上,单击“Perform Recovery(执行恢复)”按钮。

3. 提供主机身份证明:oracle/oracle 和数据库身份证明:sys/oracle。

4. 在“Object Level Recovery(对象级别恢复)”区域中,选择“Datafiles(数据文件)”

作为“Object Type(对象类型)”。选择“Recover to current time(恢复到当前 时间)”,然后单击“Perform Object Level Recovery(执行对象级别恢复)”。

5. 通过选中文件名前面的复选框来选择 system01.dbf 数据文件,然后单击“Next(下一步)”。

6. 指示文件应该还原到默认的位置,然后单击“Next(下一步)”。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 256: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-128

课堂练习方案 2 的解答(续)

7. 单击“Submit(提交)”,开始进行恢复。

8. 检查 RMAN 输出,然后单击“Open Database(打开数据库)”。

9. 打开数据库后,请单击“OK(确定)”并再次以 SYS 身份登录 Oracle Enterprise Manager。通过查看“Database(数据库)”主页,确认数据库正在运行。

结果

• 数据库现在处于打开状态并且可供用户使用。现在,允许使用 SQL*Plus 和 EM 连接。

• “Database(数据库)”主页中没有列出任何预警。 • 防止此问题发生的唯一方式是先确定数据文件丢失的原因,然后防止这一情况

再次发生。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 257: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-129

课堂练习方案 3 的解答

背景:研究 ASM 存储配置、磁盘和磁盘组。向现有磁盘组中添加磁盘,并且观察重新

平衡操作的执行过程。

除非另行指定,否则需要以 SYSDBA 用户身份通过 Database Control 或 SQL*Plus 登录。

1. 创建一个名为 TBSASM 的、使用 ASM 存储的表空间。它应该使用名为 +DGROUP1 的 ASM 磁盘组,大小应该为 200 MB。

a. 以 SYS 身份登录 SQL*Plus,然后输入以下命令:

SQL> CREATE TABLESPACE tbsasm DATAFILE '+DGROUP1' SIZE 200M;

2. 导航到“Database(数据库)”主页,并且查看左上角的“General(一般信息)” 区域中提供的链接。请注意,没有与 ASM 实例有关的链接。

3. 对 Oracle Enterprise Manager 进行配置,以便在“Database(数据库)”主页上提供 ASM 链接。

注:在完成此步骤时,需要存在与 ORCL 实例相关联的 ASM 存储。这就是必须在此

步骤之前创建 TBSASM 表空间的原因。

在 OS 命令提示符下,输入以下命令系列。命令以及对提示的响应以粗体显示,以便

您轻松地理解它们。 $ emca -deconfig dbcontrol db STARTED EMCA at Oct 13, 2005 12:41:40 AM EM Configuration Assistant, Version 10.2.0.1.0 Production Copyright (c) 2003, 2005, Oracle. All rights reserved. 输入以下信息: Database SID: orcl Do you wish to continue?[yes(Y)/no(N)]: Y Oct 13, 2005 12:41:54 AM oracle.sysman.emcp.EMConfig perform INFO: This operation is being logged at /u01/app/oracle/product/10.2.0/db_1/cfgtoollogs/emca/orcl/emca_2005-10-13_12-41-40-AM.log. Oct 13, 2005 12:41:55 AM oracle.sysman.emcp.util.DBControlUtil stopOMSINFO: Stopping Database Control (this may take a while) ... Enterprise Manager configuration completed successfully FINISHED EMCA at Oct 13, 2005 12:42:02 AM

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 258: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-130

课堂练习方案 3 的解答(续) $ emca -config dbcontrol db STARTED EMCA at Oct 13, 2005 12:42:52 AM EM Configuration Assistant, Version 10.2.0.1.0 Production Copyright (c) 2003, 2005, Oracle. All rights reserved.

输入以下信息: Database SID: orcl Listener port number: 1521 Password for SYS user: oracle Password for DBSNMP user: oracle Password for SYSMAN user: oracle Email address for notifications (optional): <只需按 enter 即可> Outgoing Mail (SMTP) server for notifications (optional): <只需按 enter 即可> ASM ORACLE_HOME [ /u01/app/oracle/product/10.2.0/db_1 ]: <只需按 enter 即可> ASM SID [ +ASM ]: <只需按 enter 即可> ASM port [ 1521 ]: <只需按 enter 即可> ASM user role [ SYSDBA ]: <只需按 enter 即可> ASM username [ SYS ]: <只需按 enter 即可> ASM user password: oracle -----------------------------------------------------------------

您已指定下列设置 Database ORACLE_HOME ................ /u01/app/oracle/product/10.2.0/db_1 Database hostname ................ edbsr5p0.us.oracle.com Listener port number ................ 1521 Database SID ................ orcl Email address for notifications ............... Outgoing Mail (SMTP) server for notifications ............... ASM ORACLE_HOME ................ /u01/app/oracle/product/10.2.0/db_1 ASM SID ................ +ASM ASM port ................ 1521 ASM user role ................ SYSDBA ASM username ................ SYS ----------------------------------------------------------------- Do you wish to continue? [yes(Y)/no(N)]: Y Oct 13, 2005 12:43:42 AM oracle.sysman.emcp.EMConfig perform INFO: This operation is being logged at /u01/app/oracle/product/10.2.0/db_1/cfgtoollogs/emca/orcl/emca_2005-10-13_12-42-52-AM.log. Oct 13, 2005 12:43:58 AM oracle.sysman.emcp.util.DBControlUtil startOMS INFO: Starting Database Control (this may take a while) ... Oct 13, 2005 12:45:45 AM oracle.sysman.emcp.EMDBPostConfig performConfiguration INFO: Database Control started successfully Oct 13, 2005 12:45:45 AM oracle.sysman.emcp.EMDBPostConfig performConfiguration INFO: >>>>>>>>>>> The Database Control URL is http://edbsr5p0.us.oracle.com:1158/em <<<<<<<<<<< Enterprise Manager configuration completed successfully FINISHED EMCA at Oct 13, 2005 12:45:45 AM [oracle@edbsr5p0 oracle]$

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 259: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-131

课堂练习方案 3 的解答(续)

4. 在“Database(数据库)”主页上单击 ASM 实例的链接。

:

5. 单击饼图可查看磁盘组信息。系统将提示您输入 ASM 实例的登录身份证明,即 SYS 和 oracle,它们分别是用户名和口令。请输入上述信息,然后单击“Login(登录)”。

注:可能需要几分钟时间才能显示该饼图。

6. 记下为该磁盘组中的每个磁盘所使用的百分比。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 260: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-132

课堂练习方案 3 的解答(续)

7. 向 TBSASM 表空间中添加另一个大小为 200 MB 的数据文件。

a. 以 SYS 用户身份登录到 ORCL 实例后,在 SQL*Plus 提示符下输入以下命令:

SQL> ALTER TABLESPACE TBSASM ADD DATAFILE '+DGROUP1' SIZE 200M;

8. 返回磁盘组列表,并且记下每个磁盘上的已用空间的变化。

9. 通过在此页单击“Add(添加)”,将另一个磁盘添加到组中。将该磁盘命名为 DGROUP1_0004。

a. 单击“Add(添加)”,将磁盘添加至磁盘组中。

b. 选择 /dev/raw/raw5 行,在“ASM Disk Name(ASM 磁盘名称)”中输入 DGROUP1_0004,在“Size(大小)”中输入 400 MB。

c. 单击“OK(确定)”。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 261: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-133

课堂练习方案 3 的解答(续)

10. 返回磁盘成员列表,然后连续单击浏览器的“Reload(重新加载)”按钮,直到磁盘

平衡为止。请注意,新磁盘开始时是空的,但最终将包含与其他四个磁盘大约相同

数量的数据。

11. 在重新平衡完成之后,从该磁盘组中删除 DGROUP1_0001 磁盘和 DGROUP1_0003 磁盘,并且以相同的方式查看重新平衡操作。

a. 选择 DGROUP1_0001 和 DGROUP1_0003 磁盘,然后单击“Remove(删除)”。

b. 可以选择单击“Show SQL(显示 SQL)”。在“Confirmation(确认)”页上

单击“Yes(是)”。

12. 通过在 SQL 提示符下输入以下命令来删除表空间:

SQL> DROP TABLESPACE TBSASM INCLUDING CONTENTS AND DATAFILES;

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 262: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-134

课堂练习方案 4 的解答

背景:此课堂练习方案模拟数据丢失情况。要制造该问题,请将目录更改为 $HOME/workshops,然后以 SYS 用户身份运行 wlab_04.sql 脚本,如下所示:

SQL> @wlab_04.sql

转至 Oracle Enterprise Manager Console 并查看“Database(数据库)”页,开始进行调查。

将调查结果记录在“Observations(观测数据)”下。在确定问题以后,制定能够更正该

问题的计划。可能存在多个可行的解决方案。在“Methodology(方法)”下记录所有

可能解决该问题的方法。

您的工作是选取最佳解决方案来解决数据库问题。在应用解决方案以后,请确认该问题

已得到更正。

观测数据:执行 wlab_04.sql 脚本后,您将观察到对 HR.DEPARTMENTS 表的查询

失败。为了确定从此问题中恢复的最佳方法,请查询 DBA_RECYCLE_BIN 视图。

SQL> SELECT owner, original_name, droptime FROM dba_recyclebin; OWNER ORIGINAL_NAME DROPTIME ------------------------- --------------------- ------------------ HR DEPT_LOCATION_IX 2004-03-04:09:39:36 HR DEPT_ID_PK 2004-03-04:09:39:36 HR DEPARTMENTS 2004-03-04:09:39:36

您推断出 DEPARTMENTS 表已被删除。必须立即采取措施来还原此表。

方法:有几种方法适用于此种情况。闪回表功能可能是最直接明了的选择。通过 Oracle Enterprise Manager 或通过 SQL*Plus 来使用闪回表。SQL*Plus 方法的优势是简单易用。

SQL> FLASHBACK TABLE hr.departments TO BEFORE DROP; Flashback complete.

此练习的解答步骤如下所示:

1. 以 SYS 用户身份运行 wlab_04.sql 脚本,模拟该问题。

a. 在 OS 命令提示符下输入以下命令:

$ sqlplus / as sysdba SQL> @wlab_04.sql

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 263: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-135

课堂练习方案 4 的解答(续)

2. 查询回收站,以确定其中是否存在任何相关的表。

a. 在 SQL 提示符下输入以下命令:

SQL> SELECT owner, original_name, droptime FROM dba_recyclebin;

3. 通过查询 HR.DEPARTMENTS 表对其进行测试。

a. 在 SQL 提示符下输入以下命令:

SQL> SELECT * FROM hr.departments;

4. 从回收站中闪回 HR.DEPARTMENTS 表。

a. 在 SQL 提示符下输入以下命令:

SQL> FLASHBACK TABLE hr.departments TO BEFORE DROP;

5. 针对 DEPARTMENTS 表执行一个选择操作,确认“Flashback Table(闪回表)”操作

成功。

a. 在 SQL 提示符下输入以下命令:

SQL> SELECT department_name FROM hr.departments; DEPARTMENT_NAME ------------------------------ Administration Marketing Purchasing Human Resources . . .

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 264: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-136

课堂练习方案 5 的解答

背景:此课堂练习方案与数据库可用性有关。要制造该问题,请先从 Oracle Enterprise Manager 注销。然后,将目录更改为 $HOME/workshops,并以 SYS 用户身份运行 wlab_05.sql 脚本,如下所示:

SQL> @wlab_05.sql

转至 Oracle Enterprise Manager Console 并查看“Database(数据库)”页,开始进行调查。

将调查结果记录在“Observations(观测数据)”下。在确定问题以后,制定能够更正 该问题的计划。可能存在多个可行的解决方案。在“Methodology(方法)”下记录所 有可能解决该问题的方法。 您的工作是选取最佳解决方案来解决数据库问题。在应用解决方案以后,请确认该问题

已得到更正。将结果记录在“Results(结果)”下。观测数据:在执行 wlab_05.sql 脚本之后,您会注意到数据库被关闭。试图重新启动该实例会导致以下错误:

ORA-01157: cannot identify/lock data file 4 - see DBWR trace file ORA-01110: data file 4: '/u01/app/oracle/oradata/orcl/users01.dbf'

试图通过 Oracle Enterprise Manager 连接到数据库时,将显示一个信息屏幕,其中指示

“The database status is currently unavailable(数据库状态当前不可用)”。可以选择启

动数据库或执行恢复。

方法

由于有最新备份并且正在进行归档,所以最佳解决方案是使用完全恢复功能来恢复丢失

的数据文件。在继续步骤 1 前,务必运行 wlab_05.sql 脚本。

1. 使用 RMAN 恢复丢失的数据文件。启动 RMAN 会话并发出 run 命令:

RMAN> run { 2> sql 'alter database datafile 4 offline'; 3> restore datafile 4; 4> recover datafile 4; 5> sql 'alter database datafile 4 online'; 6> }

2. 恢复操作失败。检查 RMAN 输出以确定失败原因。可以在输出中找到以下类型的错误。

ORA-00283: recovery session canceled due to errors ORA-00313: open failed for members of log group 2 of thread 1 ORA-00312: online log 2 thread 1: '/u01/app/oracle/oradata/orcl/redo02b.log' ORA-27037: unable to obtain file status Linux Error: 2: No such file or directory

您检查了数据文件目录,并且看到所有联机重做日志都已丢失。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 265: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-137

课堂练习方案 5 的解答(续)

3. 由于没有备份联机重做日志,因此没有办法恢复它们。必须使用不完全恢复来打开

数据库。通过查询 v$archived_log 视图,确定上次归档的重做日志的序列号。

请在此处记录该序列号:________________。

SQL> SELECT MAX(sequence#) FROM v$archived_log; MAX(SEQUENCE#) -------------- 14

4. 要执行不完全恢复,必须还原所有数据文件,而不仅仅是丢失的文件 (users01.dbf)。发出一个 RMAN run 命令,还原到您在上面的步骤 3 中记录的

日志序列号(含)。请将此数字加 1,以此作为 RMAN 命令中的序列号。

RMAN> run { 2> SET UNTIL SEQUENCE 15 thread 1; 3> RESTORE DATABASE; 4> RECOVER DATABASE; 5> ALTER DATABASE OPEN RESETLOGS; 6> }

下面是该命令的输出:

RMAN> run { 2> SET UNTIL SEQUENCE 15 thread 1; 3> RESTORE DATABASE; 4> RECOVER DATABASE; 5> ALTER DATABASE OPEN RESETLOGS; 6> } executing command: SET until clause Starting restore at 15-DEC-05 using channel ORA_DISK_1 creating datafile fno=6 name=+DGROUP1/orcl/datafile/tbsasm.256.577065581 creating datafile fno=7 name=+DGROUP1/orcl/datafile/tbsasm.257.577067627 channel ORA_DISK_1: starting datafile backupset restore channel ORA_DISK_1: specifying datafile(s) to restore from backup set restoring datafile 00001 to /u01/app/oracle/oradata/orcl/system01.dbf restoring datafile 00002 to /u01/app/oracle/oradata/orcl/undotbs01.dbf restoring datafile 00003 to /u01/app/oracle/oradata/orcl/sysaux01.dbf restoring datafile 00004 to /u01/app/oracle/oradata/orcl/users01.dbf restoring datafile 00005 to /u01/app/oracle/oradata/orcl/example01.dbf channel ORA_DISK_1: reading from backup piece /u01/app/oracle/flash_recovery_area/ORCL/backupset/2005_12_14/o1_mf_nnndf_TAG20051214T230136_1t256l6p_.bkp channel ORA_DISK_1: restored backup piece 1

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 266: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-138

课堂练习方案 5 的解答(续) piece handle=/u01/app/oracle/flash_recovery_area/ORCL/backupset/2005_12_14/ o1_mf_nnndf_TAG20051214T230136_1t256l6p_.bkp tag=TAG20051214T230136

channel ORA_DISK_1: restore complete, elapsed time: 00:02:17 Finished restore at 15-DEC-05

Starting recover at 15-DEC-05 using channel ORA_DISK_1

starting media recovery

archive log thread 1 sequence 9 is already on disk as file /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2005_12_14/o1_mf_1_9_1t25c5p2_.arc archive log thread 1 sequence 10 is already on disk as file /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2005_12_15/o1_mf_1_10_1t28wqpj_.arc archive log thread 1 sequence 11 is already on disk as file /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2005_12_15/o1_mf_1_11_1t290wo5_.arc archive log thread 1 sequence 12 is already on disk as file /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2005_12_15/o1_mf_1_12_1t2959py_.arc archive log thread 1 sequence 13 is already on disk as file /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2005_12_15/o1_mf_1_13_1t2d6tth_.arc archive log thread 1 sequence 14 is already on disk as file /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2005_12_15/o1_mf_1_14_1t2dhbpr_.arc archive log filename=/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2005_12_14/o1_mf_1_9_1t25c5p2_.arc thread=1 sequence=9 archive log filename=/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2005_12_15/o1_mf_1_10_1t28wqpj_.arc thread=1 sequence=10 archive log filename=/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2005_12_15/o1_mf_1_11_1t290wo5_.arc thread=1 sequence=11 archive log filename=/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2005_12_15/o1_mf_1_12_1t2959py_.arc thread=1 sequence=12 archive log filename=/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2005_12_15/o1_mf_1_13_1t2d6tth_.arc thread=1 sequence=13 archive log filename=/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2005_12_15/o1_mf_1_14_1t2dhbpr_.arc thread=1 sequence=14 media recovery complete, elapsed time: 00:05:22 Finished recover at 15-DEC-05

database opened RMAN>

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 267: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-139

课堂练习方案 5 的解答(续)

5. 检查 RMAN 输出,该输出表明恢复成功。

6. 重新登录 Oracle Enterprise Manager,确认数据库已经恢复。如果控制台指示数据库

仍未启动,请单击“Administration(管理)”选项卡,然后单击“Tablespaces(表空间)”。确认所有表空间都已列出并处于联机状态。然后,单击“Database(数据库)”选项卡以返回“Database(数据库)”主页,该页现在应该正确显示。

结果

• 数据库现在处于打开状态并且可供用户使用。现在,允许使用 SQL*Plus 和 EM 连接。

• USERS 表空间处于联机状态。 • “Database(数据库)”主页中没有列出任何预警。 • 防止此问题发生的唯一方式是先确定数据库文件丢失的原因,然后防止这一情况

再次发生。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 268: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II B-140

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 269: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

__________________

附录 C 基本的 Linux 和

vi 命令 __________________

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 270: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II C-2

vi 命令 Visual Interpreter/Editor (vi) 是 UNIX 环境下使用 广泛的文本编辑器。虽然几乎每个人都

抱怨其难以掌控的命令语法,但它仍然是唯一一个几乎包括了 UNIX 和 Linux 操作系统所

有版本的编辑器。以下是可用的 vi 命令的部分列表。

vi 有两种模式:命令行模式(在该模式下,所键入的任何内容都被视为编辑命令)和输入

模式(在该模式下,所键入的任何内容都被视为所编辑文件的一部分)。若要进入输入模

式,请键入 a、A、i、I、o、O、c、C、s、S、r 或 R。要返回命令行模式,请使用 Esc 键。

若要从 SQL Plus 访问 vi 编辑器,请输入下列命令:

SQL>define _editor=vi 若要从 SQL Plus 提示符下编辑文件,请输入下列命令:

edit <文件名>(按 Enter 键)

若要从 Linux 命令提示符下编辑文件,请输入下列命令: vi <文件名>(按 Enter 键)

移动游标

h - 左移 j - 下移 K - 上移 l - 右移 w - 向前移动一个字 b - 向后移动一个字 e - 移动到当前字的字尾 W、B 或 E - 与小写字母功能相同但忽略标点符号 0(零)- 移动到当前行的行首 $ - 移动到当前行的行尾 G - 转至文件的 后一行 H - 转至屏幕的顶线 L - 转至屏幕的 后一行 M - 转至屏幕的中线 /<字符串> - 向前搜索下一个出现的 <字符串> ?<字符串> - 向后搜索下一个出现的 <字符串> n - 重复上一搜索 N - 朝相反方向重复上一搜索 <ctrl> f - 向前滚动一页 <ctrl>b - 向后滚动一页

撤消上次更改

u - 撤消 近一次更改 U - 撤消 近删除的文本

:e! - 重新编辑当前文件,不保存自上次更改后所做的任何更改

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 271: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II C-3

输入新文本

a - 在当前的游标位置后附加文本 A - 将文本附加到行尾(跳到行尾并开始附加) c - 更改对象 C - 从当前游标位置更改到行尾 i - 在当前游标位置之前插入文本 I - 在行首插入文本 o - 在当前游标位置之下插入空行 O - 在当前游标位置之上插入空行 r - 替换位于当前游标位置的字符 R - 替换所有字符,直至按 [Esc] 键 s - 用文本替代游标下的字符 :s/A/B/opt - 以字符串 B 替代字符串 A。%s/A/B/opt 是全局替换。 选项包括: g - 更改当前行中出现的所有相应内容 c - 每次更改之前进行确认 p - 打印已更改的行 S - 替代整行直至结尾 . <句点> - 重复上一次更改 n. <整数><句点> - 重复 n 次上一次更改 若要离开输入模式,请按 [Esc] 键。

删除现有文本

x - 在当前游标位置下直接删除字符 dd - 删除游标所在位置的整行 dnd(其中 n 是某个整数)- 从当前游标位置起删除 n 行 dw - 删除当前字 D - 删除至当前行的行尾 J - 删除当前行行尾的回行。连接此行和下一行。 <int> J - 连接后面 <int> 行

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 272: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II C-4

复制、剪切和粘贴:vi 使用单一缓冲区, 后更改或删除的文本都存储在该缓存区中。

可以使用下列命令处理此文本:

Y - 拖动当前行的副本 y <整数> - 拖动后面 <int> 行的副本 yw - 拖动当前字的副本 yb - 拖动前一个字的副本 p - 将缓冲区内容放置在游标后 P - 将缓冲区内容放置在游标前 另外,可以在输入部分下查看 s 和 S 命令。

将已编辑的更改保存到操作系统文件中

zz - 终止编辑模式 :w 文件名 - 将更改保存到指定的文件名 :wq - 写入所有的更改并退出编辑模式

退出,但不保存更改 ZZ - 终止编辑模式 :q! - 终止文件,不保存更改

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 273: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II C-5

基本的 Linux 命令

此附录仅供您在课堂上作为快速参考之用。有关这些命令的详细信息,请参考 man 手册页、Linux 文档或其他 Linux 命令参考书。

文件和目录 Linux 命令 说明/备注 命令手册 man <命令>

man –k <字符串>

man man

在手册条目中查找此 <命令>。显示包含此 <字符串> 的所有

手册条目。 显示 man 的手册页。

命令信息 info <命令> 显示该命令的信息系统条目。

使用 info info 显示 info 文档系统的指南。

打印到标准

输出 cat <文件> 连接并打印(将已命名的文件

打印到终端屏幕。) 列出用户 cat /etc/password 更改工作目录 cd <目录> 将工作目录更改为指定的目录。

不带参数的 cd 命令将工作目录

更改为 $HOME。 复制文件 cp <source_file>

<destination_file> 将源文件复制到目标文件。

查看文件 less <文件> 逐页查看文件。这是 more 或 pg 的 GNU 版本。

查看文件 more <文件> 逐页查看文件。BSD 版本。 列出目录 ls <目录> 选项包括 -l(详细列表方式)、

-R(递归)、-a(显示隐藏文

件)、-t(按时间排序)以及 -r(反向排序)。默认目录是

当前工作目录。 创建目录 mkdir <目录> 创建目录;默认为在当前目录

下。也可以指定完整的路径。 移动或重命名

文件 mv <old_file> <new_file> 更改文件名或将其移动到另一

目录。 厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 274: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II C-6

进程列表 ps ps -ef

显示进程报告; 以完整列表显示系统中的所有 进程。存在许多选项。有关详 细信息,请参阅 man 手册页。

打印工作目录 pwd 将当前工作目录打印到标准输出。

删除或擦除 文件

rm <文件> 在 Linux 中删除文件是永久性

的。选项包括 -r(递归)和 -f(强制)(包括子目录)。 这些选项都非常危险。通常 rm –i 是 rm 命令的别名。 选项 -i 询问“是否确定?”

创建空文件 touch <文件> 创建文件。 计算机名 hostname 显示计算机名。 计算机的 IP 地址

host <machine_name> 查询域名服务器,并返回该计算

机名的 IP 地址。 远程 shell rsh <主机> <命令> 在 <主机> 上执行 <命令>。Rsh

不安全;应使用 ssh 来代替。 远程 shell ssh <主机> 安全 shell;其具有替换 rsh、

rcp、ftp 和 telnet 的功能。 远程 shell telnet <主机> 在 <主机> 上启动终端会话。Telnet

不安全;应使用 ssh 来代替。 搜索某种模式

的文件 grep <选项> <模式> <文件> 在 <文件> 或流中搜索由 <模

式> 定义的常规表达式,并显示

包含该模式的行。常用选项是 -i,它可不区分大小写进行 搜索。 grep 可以从文件接受输入或 通过管道接受标准输入,如: netstat –a| grep ESTABLISHED

寻求脚本来源 . <script_file> 在 bash shell 中,命令“.”强制

脚本在 shell 中运行。正常行为

是使脚本在子 shell 中运行。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 275: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II C-7

解释器 awk 重新设定输入格式或解释输入的

宏语言。对于输入的每一行,会

采取不同的操作。“新 awk”可

能称为 nawk。 排序文件 sort 对采用 stdin 或文件名参数输入

的文件进行排序。有很多选项 可用于按特定的列、字段等进行

排序。请参阅 man 手册页。 命令行编辑器 sed Sed 是命令行编辑器,它具有

许多非常有利于编辑 shell 脚本

的可用命令和选项。 编辑器 vi <文件> 可在每个 UNIX 系统上使用的

基于终端的编辑器。Linux 提供

了 vim(即改进的 vi,属于 vi 的超集)。

GNU 编辑器 emacs <文件> 这是一个具有可扩展自定义功能

的 GPL 编辑器,该编辑器可用于

大部分 UNIX 和 Linux 发行套件。

WSIWIG 编辑器

gedit <文件> 需要 X 的一个全屏编辑器。

Gnome 环境下提供该编辑器。 WSIWIG kate <文件> 需要 X 的全屏编辑器。KDE

环境下提供该编辑器。 终端输出 stdout 标准输出 (stdout) 不是命令而是

一个概念。除非重新定向,否则

大多数 Linux 命令均默认写入到

标准输出。 终端输入 (键盘)

stdin 标准输入 (stdin) 不是命令而是

一个概念。除非重新定向,否则

大多数 Linux 命令均默认从标准

输入读取。 别名 alias <命令> <别名> 当用户键入 <命令> 替代名并执

行 <别名> 命令时,将进行替代

操作;常用别名是别名“rm”

和“rm -i”。这些别名在 .bashrc 文件中设置。

显示 shell 变量 set 打印在 shell 中当前定义的所有

变量。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 276: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II C-8

显示环境变量 printenv 或 env 打印所有环境变量;已“导出”

环境变量,以便由子进程继承 该变量。

文件创建掩码 umask –S u=rwx,g=rx,o=rx 为由该 shell 或其子级创建的所有

文件设置默认权限。-S 选项使用

符号记号;数字记号已作废。 时钟 xclock 在屏幕上显示时钟的 Xclient。它

通常用于测试 X Windows 系统。

X 访问控制 xhost xhost +<Xclient>

显示当前相应的访问控制。 添加允许访问本地 DISPLAY 的 Xclient;如果没有给定 <Xclient>,则全部允许。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 277: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II C-9

系统管理 Linux 命令 说明/备注 根文件系统 / 系统目录树的根目录。 主目录 /home 通常,所有用户主目录都放置在

此目录下。例如:

/home/oracle。

临时目录 /tmp 临时存储区。不要在此处放置要

保留的任何内容。SA 通常会有

一个 cron 作业,该作业会定期

删除所有内容。 引导目录 /boot 存储内核映像文件和引导加载

程序说明的一个小分区。 日志目录 /var/log 用于放置大多数系统日志文件的

位置。 示例配置文件 /etc/inittab 每个应用程序中都放置了配置文

件。在安装后更改的任何配置文

件都应包括在备份中。 口令文件 /etc/passwd

/etc/shadow /etc/passwd 文件存储用户信

息且必须允许其他人可以读取;

即使有加密口令,这也可能是 一个安全漏洞。/etc/shadow 文件存储加密口令且只有 root 用户可以读取。

组文件 /etc/group /etc/groups 文件定义服务器

上的组以及作为组成员的用户;

在/etc/passwd 文件中定义 用户的主要组。

X 配置文件 /etc/X11/XF86Config 为视频卡、监视器、鼠标和键 盘设置 X 服务器设置的文件。

通常使用供应商提供的工具进行

设置。例如,sax2。 厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 278: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II C-10

调度命令, 使其定期在 调度时间运行

crontab -e 使用该命令编辑 crontab 文件

来创建规范,以供 cron 守护程

序使用。 调度脚本, 使其以特定 频率运行

/etc/anacrontab 编辑该文件来指定脚本以特定 频率运行。(有关详细信息, 请参阅 man anacrontab)。

调度命令, 使其在指定的

单一时间运行

at <选项> TIME 在指定的 TIME 参数下运行 <选项> 指定的作业。

调度命令 batch <选项> <TIME> 当负载平均降至 .8 以下后运行

命令(可以选择在设置的 TIME 之后运行)

装载文件系统 mount <opt> <dev> <mount_point> 使用 <dev> 指定的选项,在 <mount_point> 的设备 <dev> 上装载文件系统。

卸载文件系统 umount <dev> umount <mount_point>

卸载文件系统或设备。

用户 ID 的 大值

65535

恢复根口令 {lilo} control-x linux S passwd root {grub} c kernel vmlinuz-2.4.9-13 single ro root=/dev/hda8 initrd /initrd-2.4.9-13.img boot passwd root

这是一个用于恢复根口令的过程

(如果根口令丢失)。此命令需

要对计算机和系统控制台进行物

理访问。为此,可以在重新启动

计算机时,在 LILO 引导期间按

住 [Ctrl] + [x] 组合键来获得一个

提示,并命令 LILO 将 Linux 引导至运行层 S。 第二个过程使用 Grub 引导加载

程序。

创建新用户 useradd 单独使用 -D 选项可以显示 默认值。 -D 与其他选项一起使用时将更

改默认选项;不使用 -D 选项覆

盖默认选项时,默认值(例如,

-g)将设置一个主要组。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 279: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II C-11

删除用户 userdel 删除用户,并且可以选择删除

属于该用户的所有文件。 修改用户帐户 usermod 更改 /etc/password 信息。 创建新组 groupadd -g 设置组 ID。默认值是大于

500 的第一个空闲值。 删除组 groupdel 从系统中删除组。不能删除是用户

主要组的组。属于删除组的文件必

须使用 chown 进行手动更改。 更改运行级别 init <runlevel> init 命令将会针对运行级别中

的更改对 rcN.d 脚本进行评估。

init 6 将强制重新启动。 同步磁盘 sync 强制缓冲区高速缓存和页面高速

缓存将所有灰数据缓冲区写入磁

盘。仅在重新启动前使用此命令

以防止磁盘损坏。 关闭 Linux 系统

shutdown <模式> <延迟> 从容地关闭系统、关闭进程,

运行所有关闭脚本并同步磁盘。

模式有 -r(重新启动)和 -h (停机)。延迟是一个必需的

参数,可以是一个设定的秒数,

也可以是“now”。也可能会

发送选项关闭警告信息。 错误日志 dmesg 查看引导消息。该日志是循环

的,而且受限系统的错误可能

在一段时间后重写引导信息。 网络 IP 配置 /etc/sysconfig/network-

scripts/ 该目录存储脚本,这些脚本

作为启动序列的一部分由 rc.sysinit 执行。

主机 IP 地址 /etc/hosts 计算机已知的主机列表。须至少

包括本地计算机名和环回 IP。 名称服务切换 /etc/nsswitch.conf

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 280: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II C-12

网络参数 sysctl -a | grep net 查看为内核设置的所有网络 参数。

路由守护程序 routed NIC 配置 ifconfig -a 显示当前配置的所有网络设备。

modprobe ip_alias 辅 IP 地址 ifconfig eth0:1 IP

登录提示 /etc/issue 发出登录提示时,用户看到的 标帜消息。

YP/NIS 服务绑

定程序 /sbin/ypbind 查找名称解析和其他服务并将

其附加到 NIS 服务器。 模块信息 modinfo <选项> <模块> 显示有关内核模块的信息:

-l(许可证)、-p(参数)、 -d(说明)。

列出模块 lsmod 显示当前已加载的模块。 加载模块 insmod 加载可加载的模块。 卸载模块 rmmod 卸载可加载的模块。 安装软件 rpm -ivh package -i(安装)、-v(详细)、

-h(带 hash 进度标记)。 卸载软件 rpm -e package 擦除程序包。如果存在相关性,

将不能卸载。 列出已安装的

软件 rpm -qa -q(查询)、-a(全部)。列出

所有已安装的程序包。 验证已安装的

软件 rpm -V package 比较已安装的文件和 rpm 数据

库信息。 列出所有文件 rpm -ql package 列出属于程序包中的所有文件。

程序包所有者 rpm -qf file 给定完整文件名时列出程序包。

计算机型号 uname -m 显示 CPU 级别(例如,i686) OS 级别 uname -r 显示内核版本。 运行级别 runlevel 显示上一运行级别和当前运行

级别。 内核参数 sysctl -a 显示所有可设置的内核参数的

设置。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 281: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II C-13

文件描述符的

大数值 sysctl fs.file-max 显示每个进程文件描述符的 大

数值。 内核参数设置 /etc/sysctl.conf 该设置在内核参数中编译。通过

在此文件中设置参数,可在启动

时重置此设置。 echo <值> </proc/<文件> 将新的内核参数值写入到

/proc 文件系统。 更改内核参数

echo 2147483648 >/proc/sys/kernel/shmmax

设置共享内存段大小的 大值。

共享内存 sysctl kernel.shmmax 显示 shmmax 参数。 更改内核参数 sysctl –w <参数>=<值> 更改内核参数;-p 选项从文件

中读取设置,并对其进行设置。

默认文件是

/etc/sysctl.conf。 设置进程限制 ulimit <选项> <值> 设置对 shell 以及由 shell 启动的

进程的限制。用户可以增加限制

的约束;通常,只有 root 用户

才能使限制具有较少的约束。 某些选项需要 root 用户权限才

能使用。选项包括 -u(设置进

程数)、-n(文件句柄数)等

(请参阅 man bash)。 显示进程限制 ulimit 如果没有选项 ulimit,将显示

当前限制设置。 交互进程通信 (共享内存和

信号)

ipcs <选项> 选项包括 -m(共享内存的当前

使用情况)、-s(信号的使用情

况)和 -a(显示所有)。 删除共享

内存段 ipcrm shm <shmid> 释放由 <shmid> 标识的共享内存

段。该操作非常危险。可能会损坏

正在使用所释放段的数据库。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 282: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II C-14

系统性能 Linux 命令 说明/备注 性能监视器 top 查看实时 OS 和进程统计信息。

系统活动报告

程序 sar –<选项> <间隔> <计数> 选项包括 -q(显示 CPU 队

列)、-u(CPU 利用率)、-d(设备活动)、-n DEV(网络

设备活动)等(请参阅 man 手册页)。间隔以秒为单位。

虚拟内存统计

信息 vmstat <间隔> <计数> 间隔以秒为单位。

虚拟内存统计

信息 cat /proc/meminfo 显示即时虚拟内存使用量。

内核高速缓存

统计信息 cat /proc/slabinfo Kernel Slab Allocator 统计信息:

经常分配的高速缓存对象, 如索引节点、目录项和异步 IO 缓冲区。

I/O 统计信息 iostat <选项> <间隔> <计数> 选项包括 -d(设备活动)、 -c(CPU 活动)和 -x(扩展磁 盘活动统计信息)。间隔以秒 为单位。

多处理器统计

信息 mpstat –P <cpu> <计数> <间隔> 返回 smp 系统中特定处理器或

所有 CPU 的 CPU 统计信息。 物理 RAM 64 GB(理论上) 大物理 RAM 要求企业级内核

(Red Hat Enterprise Linux AS 21 仅能支持 大 16 GB)。

交换设备 swapon -s 显示当前用于交换的设备。交换

设备是在安装时任意指定的。可

以更改或添加交换设备。可能创

建了多个交换设备;交换大小应

至少与物理内存相同。 厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 283: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II C-15

显示交换大小 free 显示当前内存和交换的使用量。

激活交换 swapon -a 打开交换。 空闲磁盘块 df -k 以 KB 为单位度量;使用 -m

代表 MB 单位。 列出设备 cat /proc/devices 按主设备号和从设备号列出系统

已知的设备。 磁盘信息 cat /proc/scsi/scsi0/sda/model

cat /proc/ide/ide0/hda/model

查看 SCSI 磁盘信息。

查看 IDE 磁盘信息。 打印网络统计

信息 netstat <选项> 打印各种网络统计信息(参阅

man netstat)。 图形系统统计

信息查看器 xosview 基于 X 显示 近所 OS 统计信息

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 284: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II C-16

其他系统信息 Linux 命令 说明/备注 NFS 已导出 /etc/exports 简单 NFS 不支持数据库文件。

NFS 客户机 已装载目录

/var/lib/nfs/xtab

大文件系统 4 KB 块大小的情况下为 2 TB(在 32 位内

核中) 对于 ext3 和 ext2 是此种情况,

对于其他情况则有所不同。 大文件大小

文件大小不能

超过文件系统

大小

2 GB {块大小为 512 B}

2 TB {块大小为 4 KB}

Oracle 数据库可以创建 大 64 GB、数据库块大小为 16 KB 的文件。 32 位内核将文件和块设备限制

为 2 TB。 文件系统块 大小

dumpe2fs <设备> 将文件系统属性转储到 stdout。

Filesystem 表 /etc/fstab 在启动时装载这些文件系统。 日志 Filesystem 类型

ext3

reiserfs

磁盘标签 fdisk -l 并非所有发行版本中均提供 Fdisk。

resize2fs 扩展文件系统 resize_reiserfs

扩展文件系统仅适用于某些文件

系统类型。 备份 tar cvf /dev/rst0 / 创建根/文件系统的备份。 还原 tar xvf /dev/rst0 还原根/文件系统。 准备引导卷 /sbin/lilo 必须在更改 /etc/lilo.conf

后运行,以便将更改推入到引导

加载程序。 启动脚本 /etc/rc.d/rc 内核 /boot/vmlinuz 内核位 getconf WORD_BIT 用于获得内核信息的 POSIX

调用。具有包括 WORD_BIT 在内的许多其他变量。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 285: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II C-17

引导单个用户 {lilo} control-x linux S {grub} c kernel vmlinuz-2.4.9-13 single ro root=/dev/hda8 initrd /initrd-2.4.9-13.img boot

使用 LILO 设备。 使用 GRUB 引导加载程序。

时区管理 /etc/sysconfig/clock SW 目录 /var/lib/rpm 此目录存储 rpm 数据库。 设备 /dev 此目录存储所有设备文件。 CPU cat /proc/cpuinfo 显示 CPU 静态信息。 整个磁盘 /dev/sda 设备名 CDROM /dev/cdrom 通常在 /mnt/cdrom 中装载 CDROM 文件

类型 iso9660

软驱 /dev/fd0 通常在 /mnt/floppy 中装载 系统信息 /proc /proc 文件系统是基于内存的文

件系统,该文件系统允许访问 进程、内核设置和统计信息。

编译和链接 可执行文件

make –f <文件> <命令> 使用 make file <文件> 可以确定

大型程序的哪部分需要重新编

译,然后发出编译和链接所需 的命令,并准备要使用的可执 行文件。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 286: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II C-18

LVM Linux (UnitedLinux) 说明/备注 LVM 逻辑卷管理器 Red Hat Enterprise Linux AS 2.1 不提供

此程序包,而且在不破坏内核的情况下

将无法添加该程序包。在 United Linux 中提供了对该程序包的内核支持。

LVM 概念 逻辑区 逻辑卷由逻辑区组成。 逻辑卷 从卷组中获取并作为磁盘卷提供给 OS 的

一组逻辑区。这些区可能会跨多个磁盘

进行条带化。 卷组 由 fdisk 等类似命令创建的一组物理

磁盘分区,使用 pvcreate 进行初始化,

再使用 vgcreate 将其集合成一个 物理卷。

显示卷组 vgdisplay -v 修改物理卷 pvchange 准备物理磁盘 pvcreate 列出物理卷 pvdisplay 从卷组中删除

磁盘 vgreduce

将逻辑卷移动

到其它物理 卷中

pvmove

创建卷组 vgcreate 删除卷组 vgremove 卷组可用性 vgchange 还原卷组 vgcfgrestore

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 287: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II C-19

导出卷组 vgexport 导入卷组 vgimport 列出卷组 vgscan 更改逻辑卷

特性 lvchange

列出逻辑卷 lvdisplay 生成逻辑卷 lvcreate 扩展逻辑卷 lvextend 删减逻辑卷 lvreduce 删除逻辑卷 lvremove 创建已条带化

的卷 lvcreate -i 3 -I 64

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 288: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II C-20

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 289: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

_________________

附录 D

缩写词和术语 _________________

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 290: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II D-2

术语 定义

活动会话池 一个资源组或子计划所允许的当前活动会话数 ADDM 自动数据库诊断管理 ADT 抽象数据类型 ASCII 美国标准信息交换码 US7ASCII 7 位美国 ASCII 单字节编码方案 ASM 自动存储管理 ASM 自动汇总管理 ASMM 自动共享内存管理 ASSM 自动段空间管理 ATO 自动调整优化程序 自动 PGA 内存管理 Oracle 数据库的一项功能,它可以简化和改善分配 PGA 内存

的方式 自动共享内存管理 Oracle 数据库的一项功能,可自动管理 Oracle 数据库实例所使

用的 重要的共享内存结构 自动存储管理 可提供文件系统与卷管理器的纵向集成,这是一项专门为

Oracle 数据库文件建立的技术 自动数据库诊断管理 一项实用程序,可执行自上而下的实例分析、确定问题及潜在

原因并提出有关修复问题的建议 自动调整优化程序 可在数据库内执行多种 SQL 性能分析的一项数据库功能 自动工作量资料档案库 为了执行问题检测和自动优化功能,收集、处理和维护性能统

计信息 辅助数据库 可用于创建重复数据库和执行表空间时间点恢复 AWR 自动工作量资料档案库 备份片段 构成备份集其中一部分的单个文件 备份集 一个或多个数据文件或者归档日志文件的一组副本。与映像副

本不同,该组副本不存储空块。 BFT 大文件表空间:单个数据文件 多可包含 40 亿个块; 大

文件大小为 8–128 TB(这取决于 Oracle 数据块的大小) 块更改跟踪 使用更改跟踪写进程 (CTWR) 的后台进程在独立的文件中记录

所有数据库更改的实际位置 块损坏 所谓损坏的数据块,是指块没有采用可识别的 Oracle 格式,

或者其内容在内部不一致。 块介质恢复 这是一种恢复方法,将介质恢复的 小可恢复单元从数据文件

减小至块 BMR 块介质恢复 缓冲区高速缓存 一个内存区,可高速缓存从数据库中检索到的数据块 CFS 集群文件存储 更改跟踪文件 该文件用于存储上次备份后对数据库所做更改的实际位置

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 291: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II D-3

术语 定义 通道 指向目标数据库的一个链接或连接 CLI 命令行解释器 簇 共享相同数据块的一个或多个表的组 CMAN Oracle Connection Manager;可用作网络通信防火墙和代理

服务器 控制文件 包含关于数据库物理结构的信息,其中包括所有数据和重做

日志文件的位置 CRS 集群就绪服务 数据块 数据库中物理存储的 小单元。数据块包含数据行、索引

信息等。 数据字典高速缓存 共享池中的内存区,可在内存中保存字典对象的定义 数据文件 包含数据库的数据 数据库字符集扫描程序 可对将 Oracle 数据库迁移到新数据库字符集的可行性进行

评估的一项实用程序 DBA 数据库管理员 DBA 数据块地址,用于唯一标识数据库内的数据块 DBCA Database Configuration Assistant DBVERIFY 外部命令行实用程序,可在脱机数据库中执行物理数据结构

完整性检查 DDL 数据定义语言;即 SQL 语句分类,可定义和处理数据库对象 DML 数据操作语言;即 SQL 语句分类,可查询和处理数据 EBCDIC 扩展二进制编码十进制交换码 EM Oracle Enterprise Manager emctl Oracle Enterprise Manager 控制。用于启动、停止并检查

Database Control、Oracle Agent 和 Oracle Management 服务器

状态的实用程序 编码字符集 将数字代码映射为计算机或终端可以显示和接收的字符 Oracle Enterprise Manager 数据库控制台

一种图形界面,可用来管理数据库

ETL 提取、转换和加载 exabyte 1 EB = 1,024 PB = 1,048,576 TB = 260 字节 EXTPROC 外部代码库 FGA 细粒度审计 FGAC 详细访问控制允许使用一些功能来实施安全策略并将其与表、

视图或别名相关联。不管如何访问数据,数据库服务器都将自

动强制实施安全策略,即使用即席查询通过某个应用程序来访

问数据时也一样 快速恢复区 Oracle 数据库中所有与恢复相关的文件和活动的统一存储位置

闪回缓冲区 可存储闪回数据库数据的内存区域

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 292: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II D-4

术语 定义 闪回数据库 一种全新的恢复方法,使用撤消(还原)数据,而非重做数据

来恢复数据库 闪回删除 通过使用此功能,无需使用传统时间点恢复方法,即可消除

DROP TABLE 语句的影响 闪回表 通过使用此命令,可从回收站中恢复某个表及其所有从属对象

闪回事务处理查询 可用于查看在事务处理层中对数据库所做更改的诊断工具 闪回版本查询 提供对某行所做更改的历史记录以及执行该更改的事务处理的

相应标识符 格式掩码元素 一种字符文字,可描述字符串中所存储的日期时间或数值数据

的格式 增长趋势报表 对数据库段增长的分析 全球化支持 确保实用程序和错误消息、排序次序、字母表、日历、日期、

时间、货币和数字均自动适合母语 映像副本 与原数据库文件完全相同的副本 原型 物理数据库的独立版本。如果打开数据库原型时启用了“重置

日志”选项,则该原型将发生变化,但只要必要的重做操作可

用,就可以从前一原型中恢复备份。 索引组织表 具有表外观,但以 B*Tree 结构存储其数据的数据库结构 init.ora 或 init<sid>.ora

也叫做“参数文件”

实例 用于访问 Oracle 数据库的共享内存和进程的集合 IPC 内部流程通信 ISO 国际标准组织 isqlplusctl 用于启动和停止 iSQL*Plus 监听程序进程的控制实用程序 ISV 独立软件供应商 Java 池 SGA 中的内存区,可用于 Java 虚拟机 (JVM) 中特定于会话的

所有 Java 代码和数据 JDBC Java 数据库连接性 jnnn 作业队列进程。执行计划作业。 保存缓冲区高速缓存 SGA 中的内存区,可用于较长时间高速缓存缓冲区高速缓存

中的数据。 语言和字符集文件扫描

程序 一个基于统计的实用程序,可用来确定未知文件文本的语言和

字符集 大型池 用于缓冲大型 I/O 请求的可选内存存储区 LCSSCAN 语言和字符集文件扫描程序 LEGATO® NetWorker,单一服务器版

Oracle Database 10g 所附带的软件,可使用 Recovery Manager 实用程序向磁带机写入数据

库高速缓存 共享池中的内存区,包含 PL/SQL 块和 SQL 语句的完全语法

分析表示或编译表示

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 293: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II D-5

术语 定义 语言排序 可生成符合字符字母顺序,而非字符编码方案中其数值顺序的

排列顺序 监听程序 所有非本地用户连接到 Oracle 实例的网关 区域设置 有关特定区域中语言和文化首选项的信息集合 区域设置变量 与语言相关的地区定义 LSSV LEGATO® NetWorker,单一服务器版 介质管理库 用于 RMAN 向磁带中写入或从中读取数据 内存指导 Oracle Enterprise Manager 的一项功能,有助于优化内存结构的

大小 内存管理器 (MMAN) 一个数据库后台进程,它可作为 SGA 内存中介使用,并协调

内存组件的大小 度量 一些数据库或实例特性的度量标准 MML 介质管理库可用于 RMAN 向磁带写入或从中读取数据 MMON 管理监视器进程。当度量超过其阈值时,它将发出预警。

它将捕获近期已做修改的 SQL 对象的统计信息。 国家语言支持 一些参数和文件,可用于确定数据库客户端和数据库服务器的

特定区域设置的行为 nK 块大小缓冲区 SGA 中的内存区,可高速缓存与默认数据库块大小不同的数

据块;用于支持可移动表空间 NLS 国家语言支持 NLS 运行时库 与语言无关的综合功能套件,允许适当的文本和字符处理以及

语言惯例操作 NLS_LANG 用于指定数据库中所用语言、地区和字符集的环境变量 NLSRTL 国家语言支持运行时库 NMP 命名管道 OC4J Oracle Application Server Containers for J2EE OMF Oracle Managed Files 优化程序统计信息 用来描述数据库及其对象,并用于查询优化程序为每个

SQL 语句选择 佳执行计划的统计信息 OUI Oracle Universal Installer Oracle Locale Builder 提供图形化的用户界面,通过它可轻松查看、修改和定义特定

于区域设置的数据 Oracle Managed Files Oracle 数据库的一项功能,可在磁盘的专用区内管理 Oracle 数

据库文件的创建、命名和删除 Oracle Net 可启用 Oracle Database 10g 和客户端层或中间层应用程序间的

网络连接 Oracle 共享服务器 一种数据库服务器配置,允许多个用户进程共享少量服务器

进程,以便 大限度减少服务器进程数并 大化可用系统资 源使用率

ORACLE_BASE 用于指向 OFA 结构的顶层目录的环境变量

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 294: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II D-6

术语 定义 ORACLE_HOME 环境变量,用于标识包含 Oracle 软件的目录 ORACLE_SID 用于指定默认数据库实例名的环境变量 程序包 在逻辑上互相关联的过程和功能定义的集合。这些过程和功能

由程序包体来实施。 并行 为 RMAN 备份和恢复操作分配多个通道 PGA 程序全局区 PGA 指导 Oracle Enterprise Manager 的一项功能,可基于工作量特性给出

工作区的详细统计信息并提供关于优化使用程序全局区 (PGA) 内存的建议

管道 由一项进程使用,将信息传递至另一进程的内存区 专用 SQL 区 PGA 中包含诸如绑定信息和运行时内存结构等数据的内存区 权限 执行特定类型 SQL 语句的权限。权限有两种基本形式:对象

和系统。 预先表空间监视 Oracle Database 11g 的一项功能,可管理表空间的磁盘空间使

用情况 程序全局区 由某个进程使用的专用内存区 恢复目录 保留与备份活动有关的历史数据的独立数据库 Recovery Manager 用于备份和还原数据库文件的 Oracle 实用程序 回收站 用于维护已删除对象原始名称与其系统所生成名称之间的关系

的数据字典表 循环缓冲区高速缓存 SGA 中的内存区,用于存储那些从缓冲区高速缓存中快速老

化而失效的数据 重做日志缓冲区 在重做信息写入磁盘前,用于高速缓存该信息的内存区 调整重做日志文件大小

的指导 Oracle Enterprise Manager 的一项功能,可提供重做日志文件大

小的调整建议 资源管理器 Oracle 数据库的一项功能,为 Oracle 数据库服务器提供更多对

资源管理决策的控制能力,因此可以避免由于操作系统管理效

率低导致的一些问题 可恢复的空间分配 在执行大型数据库操作时,发生空间分配失败,则先挂起,并

在稍后恢复执行的一种方法 RMAN Recovery Manager RMAN 资料档案库 一种存储结构,它可维护关于数据库备份和恢复操作的元数据

调度程序 一种新的数据库功能,允许数据库管理员和应用开发员控制要

在数据库环境中执行各种任务的时间和位置 SCN 系统更改号 段指导 监视对象空间问题并分析增长趋势 段资源估计员 新的段资源估计功能,可估计出创建一个新段所需的资源量。

服务器会话 由客户端实用程序调用,连接至目标数据库的服务器进程 (UNIX) 或线程 (Windows NT/2000)

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 295: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II D-7

术语 定义 服务 在数据库的许多级别中均存在。

(RAC 功能的工作量管理部分:一种服务,可使计算机上的

应用程序对于其本身来说进行透明运行。) 会话内存 PGA 中被分配用于存储与会话相关的会话变量以及其他信息

的内存 SGA 系统全局区;所有服务器和后台进程均共享的内存区 SGA 指导 对 SGA 参数设置提出建议 共享池 一个内存区,用来高速缓存可由用户共享的多种结构 压缩指导 请参阅段指导 SID 系统标识符。它默认为数据库名并唯一标识指定服务器上实例

SQL 结构化查询语言 SQL 访问指导 确定优化的数据访问路径(例如,使用索引和实体化视图) SQL 优化指导 提供优化 SQL 语句的建议 Statspack SQL、PL/SQL 和 SQL*Plus 脚本集,可以收集、自动化、存储

和查看性能数据。此功能已由自动工作量档案资料库代替 流池 SGA 中由 Oracle Streams 使用的可选内存区 系统统计信息 向查询优化程序描述系统硬件特性的统计信息,例如 I/O 和

CPU 性能及利用率 表空间 数据文件的逻辑分组 目标数据库 您试图连接到的数据库 阈值 与度量值相比较的边界值 TSPITR 表空间时间点恢复使用一个可以驻留在与目标数据库相同或不

同的主机上的辅助数据库。 还原指导 Oracle Enterprise Manager 的一项功能,可建议支持指定时间闪

回所需要的参数值和额外空间量 还原数据 DML 事务处理更改数据时所存储的原始数据副本。撤消数据

可用来回退事务处理,和提供更改数据的读取一致性视图 用户全局区 共享池或大型池中的内存区,其中包含 Oracle 共享服务器会

话的会话信息 UTC 国际时间坐标,统一跟踪线索中的全球时间戳 VPD 虚拟专用数据库 等待事件 等待事件是按服务器进程或线程递增的统计信息,指示该进程

必须等待事件完成之后才能继续处理 工作区 PGA 中专用内存分配,用于需要耗费大量内存的排序、散列

联接和其他操作 工作量资料档案库 请参阅 AWR

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 296: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 297: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

版权所有 © 2009,Oracle。保留所有权利。

Oracle 共享服务器

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 298: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II E-2

版权所有 © 2009,Oracle。保留所有权利。

课程目标

学完本课后,应能完成下列工作:

• 确定何时使用 Oracle 共享服务器

• 配置 Oracle 共享服务器

• 监视共享服务器

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 299: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II E-3

版权所有 © 2009,Oracle。保留所有权利。

建立连接

监听程序

传入的连接请求

建立连接

Oracle Net 名称解析完成后,连接请求将从用户或中间层应用程序(此后也称为用户进程)

传递至 Oracle Net Listener。监听程序收到“CONNECT(连接)”数据包并进行检查以查

看该“CONNECT(连接)”数据包是否正在请求一个有效的 Oracle Net 服务名。

如果未请求服务名(像 TNSPING请求的情况),则监听程序将确认连接请求并且不执行

任何操作。如果请求的服务名无效,则监听程序将错误代码传输给该用户进程。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 300: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II E-4

版权所有 © 2009,Oracle。保留所有权利。

专用服务器进程

服务器进程

监听程序

用户进程

专用服务器进程

如果“CONNECT(连接)”数据包请求了一个有效的服务名,则监听程序将衍生一个新

的进程来处理该连接。这个新的进程称为“服务器进程”,有时也称为“影子进程”。

衍生出进程后,监听程序将连接至该进程,并向其传递初始化信息,其中包括用户进程

的地址信息。此时,监听程序将不再处理该连接,所有工作都移交至该服务器进程处理。

随即服务器进程向用户进程传输回一个“RESEND(重新发送)”数据包。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 301: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II E-5

版权所有 © 2009,Oracle。保留所有权利。

用户会话

服务器进程

PGA

监听程序

用户进程

用户会话

用户会话

用户进程收到“RESEND(重新发送)”数据包后,将会重新传输“CONNECT(连接)”

数据包。服务器进程将检查用户的验证身份证明(通常为口令),如果身份证明有效,

则创建一个用户会话。

专用服务器进程:建立会话后,服务器进程随即充当服务器上的用户代理。服务器进程

负责以下操作:

• 语法分析并运行通过应用程序发出的所有 SQL 语句

• 检查数据块的数据库缓冲区高速缓存,这些数据块是执行 SQL 语句所必需的

• 如果数据块目前尚未在 SGA 中,则从磁盘上的数据文件中将必要的数据块读取到

SGA 的数据库缓冲区高速缓存部分

• 管理所有排序活动。服务器进程中称为程序全局区 (PGA) 的部分包含有用于处理

排序的内存区,该区域称为排序区

• 将结果返回用户进程,以便应用程序可以处理这些信息

服务器进程还为位图和散列联接等专门工作保留内存。专用服务器进程所使用的内存量

取决于几项初始化参数设置。可通过使用 PGA_AGGREGATE_TARGET和

WORKAREA_SIZE_POLICY自动控制内存量,或者根据需要进行调节以进行高级使用。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 302: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II E-6

版权所有 © 2009,Oracle。保留所有权利。

用户会话:专用服务器

用户会话

服务器进程

服务器进程

服务器进程

用户会话

用户会话:专用服务器

使用专用服务器进程时,服务器进程和用户进程的比率是一比一。每个服务器进程均消耗

包括 CPU 周期和内存在内的系统资源。

在负载较重的系统中,专用服务器进程所消耗的内存和 CPU 资源将会产生抑制作用并且

对系统的可扩展性产生负面影响。如果系统已经受到专用服务器体系结构的资源需求的

负面影响,则有以下两种选择:

• 通过添加更多内存以及额外的 CPU 容量来增加系统资源

• 使用 Oracle 共享服务器体系结构厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 303: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II E-7

版权所有 © 2009,Oracle。保留所有权利。

用户会话:共享服务器

监听程序

分派程序

服务器进程

用户会话:共享服务器

每项参与共享服务器体系结构的服务均至少具有一个(通常为多个)分派程序进程。连接

请求到达时,监听程序将不衍生专用服务器进程。相反,监听程序维护每个服务名可用的

分派程序列表,以及每个分派程序的连接负载(并行连接数)。

连接请求将被传送至负载最轻的分派程序,该程序为给定服务名服务。用户在会话持续时

间内均一直连接至相同的分派程序。

与专用服务器进程不同,单个分派程序可以管理几百个用户会话。

实际上分派程序并不处理用户请求的工作。相反,它们将用户请求传递至位于 SGA 共享

池部分的公用队列中。

共享服务器进程接管专用服务器进程的大部分工作,将请求从队列中拉出并进行处理,

直至完成该请求。

由于单个用户会话可能有一些请求,而这些请求由多个共享服务器进程处理,因此通常

存储于程序全局区 (PGA) 中的大多数内存结构均必须位于共享内存位置。在共享服务器

体系结构中,这些内存区中的大多数均存储于 SGA 的大型池部分。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 304: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II E-8

版权所有 © 2009,Oracle。保留所有权利。

处理请求

D001 的响应队列

D002 的响应队列

实例

SGA共享服务器进程

数据库服务器

客户层或中间层

S001

S002

用户进程

分派程序D001

分派程序D002

S000

分派程序D000

D000 的响应队列

用户进程

1

2

3

4

6

5

所有分派程序的公用请求队列

处理请求

用户通过共享服务器体系结构连接,并提交一项数据库请求时,将发生以下操作:

1. 用户进程将请求转发至其分派程序。

2. 分派程序将请求放入 SGA 中的公用请求队列中。

3. 下个可用共享服务器从请求队列中选取请求并处理该请求。

4. 共享服务器将响应放入调用分派程序的响应队列中。每个分派程序均有其自己的

响应队列。

5. 分派程序从其响应队列中检索响应。

6. 分派程序将响应返回用户。

用户调用完成后,将释放共享服务器进程,该进程可为请求队列中的另一个用户调用服务。

请求队列

• 所有分派程序均共享使用一个请求队列。

• 共享服务器监视请求队列中的新请求。

• 在先进先出 (FIFO) 的基础上处理请求。无优先级设置。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 305: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II E-9

版权所有 © 2009,Oracle。保留所有权利。

SGA 和 PGA

专用服务器:在 PGA 中保存用户会话数据。

Oracle 共享服务器:在 SGA 中保存用户会话数据。

SGA

大型池和其它内存结构

PGA用户

会话

数据

游标

状态

堆栈

空间

排序

数据

SGA

堆栈

空间

PGA

大型池和

其它内存结构

用户

会话

数据

游标

state排序

数据

SGA 和 PGA 使用专用服务器或共享服务器时,SGA 和 PGA 的内容不同:

• 所有 SQL 语句的文本和语法分析表单均存储在 SGA 中。

• 游标状态包含 SQL 语句的运行时内存值,例如检索的行等。

• 用户会话数据包括安全性和资源用量信息。

• 堆栈空间包含进程的本地变量。

技术注释

SGA 和 PGA 中的更改对用户是透明的;但是,如果您正在支持多个用户,则需要增加

LARGE_POOL_SIZE初始化参数。每个共享服务器进程均必须访问所有会话的数据空间,

以便任何服务器均可以处理来自任何会话的请求。在 SGA 中为每个会话的数据空间分配

空间。可通过设置 PRIVATE_SGA资源限制参数来限制每个会话可以分配的空间,该参

数位于用户概要文件“General(一般信息)”页的“Database Services(数据库服务)”

区域中。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 306: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II E-10

版权所有 © 2009,Oracle。保留所有权利。

UGA 和 Oracle 共享服务器

共享池

PGA

共享池或大型池 堆栈

空间

PGA

堆栈空间

UGA

游标

状态

用户会

话数据

专用服务器配置

共享服务器配置

UGA

用户会

话数据

游标

状态

UGA 和 Oracle 共享服务器

使用专用服务器配置时,用户全局区 (UGA) 并不使用 SGA 中的任何内存。如果使用

Oracle 共享服务器,则 UGA(其中包括用户会话和游标状态信息)存储在共享池中,

而不存储在用户专用内存中。如果尚未配置大型池,则 UGA 存储在共享池中。排序区

和专用 SQL 区包括在会话信息中。这是由于共享服务器是基于每个调用来工作,因此

任何服务器进程均可能需要访问任何用户的信息。

Oracle 共享服务器的总内存需求不大于使用专用服务器时的需求。可能需要增加

SHARED_POOL_SIZE参数,但是此操作会减少您的用户专用内存。

如果正在使用共享服务器,则需配置大型池,以提高共享池的性能。厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 307: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II E-11

版权所有 © 2009,Oracle。保留所有权利。

配置 Oracle 共享服务器

必需的参数

• DISPATCHERS可选参数

• SHARED_SERVERS

• MAX_SHARED_SERVERS

• CIRCUITS

• SHARED_SERVER_SESSIONS

配置 Oracle 共享服务器

要配置 Oracle 共享服务器,必须为您的实例编辑初始化参数。大多数可选参数均具有切

合实际的默认值。在许多系统中,唯一一个必须配置的参数是 DISPATCHERS。

根据创建数据库时选定的选项,DISPATCHERS参数可能已经配置为启动一个为 XML 数据库服务的分派程序。DISPATCHERS参数接受以下格式的多个值集:

’<parameters for first set>’,’<parameters for second set>’

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 308: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II E-12

版权所有 © 2009,Oracle。保留所有权利。

DISPATCHERS = “(PROTOCOL=TCP)(DISPATCHERS=2)\

(PROTOCOL=IPC)(DISPATCHERS=1)”

分派程序D001

TCP/IP

分派程序D002

IPC

分派程序D000

TCP/IP

DISPATCHERS

指定开始时为指定协议启动的分派程序数:

DISPATCHERS

DISPATCHERS参数可为每个分派程序启用各种属性。

Oracle Database10g 支持名称/值语法(与 Oracle Net Services 中使用的语法相似),

从而允许以独立于位置、不区分大小写的方式说明现有和其它属性。

例如:DISPATCHERS = ‘(PROTOCOL=TCP)(DISPATCHERS=3)’

虽然根据工作量类型的不同,分派程序能够处理的连接数有较大差别,但是,一种好的

解决方法是允许一个分派程序处理五十个使用共享服务器体系结构的并行数据库连接。

空值(不启动分派程序)默认值

动态参数类

字符串(指定为带引号的字符串)参数类型

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 309: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II E-13

DISPATCHERS(续)

唯一必需的分派程序属性是 PROTCOL。其它所有属性都是可选的。DISPATCHERS参数

的一些可能变量如下所述。请注意变量使用由三个字母组成的缩写,而未使用完整变量名。

注:DISPATCHERS参数还有更多可能的属性。有关 DISPATCHERS参数的详细信息,

请参阅《Oracle Database Reference Manual》中的“初始化参数”一节。

指定每个分派程序允许的最大网络连接数。默认值是对

操作系统特定的。例如,Sun Solaris 和 Windows 的默认值

是 1024。

CONNECTIONS(CON或 CONN)

每个分派程序的最大网络会话数。默认值是对操作系统特

定的。大多数操作系统的默认值为 16 K。

SESSIONS(SES或 SESS)

指定监听程序的别名,PMON 进程使用该别名注册分派

程序信息。将别名设置为可通过命名方法解析的名称。

仅当监听程序为使用非默认端口(不是 1521)且未通过

LOCAL_LISTENER参数指定的本地监听程序时,或者该

监听程序在另一节点上时,才需要指定此属性。

LISTENER(LIS或 LIST)

分派程序在监听程序中注册的 Oracle Net Service 名称。

如果未给定名称,则分派程序以 SERVICE_NAMES中的

值注册。

SERVICE

(SER或 SERV)

最初启动的分派程序数(默认值为 1)DISPATCHERS(DIS或 DISP)

指定分派程序为其生成监听端点的网络协议(通常为 TCP)PROTOCOL (PRO或 PROT)

说明属性

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 310: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II E-14

版权所有 © 2009,Oracle。保留所有权利。

SHARED_SERVERS = 6

S000

S001

S002

S003

S004

S005

SHARED_SERVERS

指定启动实例时创建的且在实例操作过程中保留的共享

服务器进程数

SHARED_SERVERS

SHARED_SERVERS指定将保留的最小服务器进程数。由于实例会监视公用请求队列,

并且将根据需要启动其它共享服务器来为队列服务,随后在不再需要时将其处理掉,

因此设置此参数通常并不重要。

一个好的解决办法是每二十五个使用共享服务器体系结构的并发数据库连接保留一个共享

服务器。

如果 DISPATCHERS为空值,则为 0,如果设置了

DISPATCHERS,则为 1默认值

与操作系统相关值范围

动态参数类

整数参数类型

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 311: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II E-15

版权所有 © 2009,Oracle。保留所有权利。

MAX_SHARED_SERVERS = 10

S000

S001

S002

S003

S004

S005

S006

S007

S008

S009

MAX_SHARED_SERVERS

• 指定可启动的最大共享服务器数

• 允许根据请求队列长度动态分配共享服务器

MAX_SHARED_SERVERS

MAX_SHARED_SERVERS指定允许同时运行的最大共享服务器进程数。由于实例会根据

需要自动创建其它共享服务器进程来为公用请求队列服务,因此此项设置很重要。

估计最大共享服务器数

一般而言,设置此参数是为了获得在最高峰活动时的适当共享服务器进程数。尝试此

限制,并监视共享服务器,以确定此参数的理想设置。要查找启动的最大服务器数

(高水位标记),请查询 V$SHARED_SERVER_MONITOR数据字典视图。

无(无限制)默认值

与操作系统相关值范围

动态参数类

整数参数类型

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 312: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II E-16

版权所有 © 2009,Oracle。保留所有权利。

CIRCUITS = 100

CIRCUITS

• 指定入站和出站网络会话可用的虚拟回路总数

• 构成总的 SGA 大小

CIRCUITS

虚拟回路是通过分派程序和服务器至数据库的用户连接。CIRCUITS参数指定入站和出站

网络会话可用的虚拟回路总数。

仅当要限制用户可以通过共享服务器体系结构建立的连接总数时,才设置此参数。由于

此参数是构成实例总 SGA 需求的几项参数之一,因此此参数很重要。

如果已配置 Oracle 共享服务器,则 CIRCUITS的值与

SESSIONS的值相匹配。否则,值为 0。默认值

动态参数类

整数参数类型

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 313: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II E-17

版权所有 © 2009,Oracle。保留所有权利。

SHARED_SERVER_SESSIONS = 100

SHARED_SERVER_SESSIONS

• 指定允许的 Oracle 共享服务器用户会话总数

• 允许为专用服务器保留用户会话

SHARED_SERVER_SESSIONS

此参数控制在任意时间点并行打开的共享服务器会话总数。使用此参数可以保留专用用户

会话的资源。

无(无限制)默认值

动态参数类

整数参数类型

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 314: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II E-18

版权所有 © 2009,Oracle。保留所有权利。

相关参数

以下参数是受 Oracle 共享服务器影响,可能需要调整的

其它初始化参数:

• LARGE_POOL_SIZE

• SESSIONS

• PROCESSES

• LOCAL_LISTENER

相关参数

以下参数是受 Oracle 共享服务器影响,可能需要调整的其它参数:

• LARGE_POOL_SIZE指定大型池的大小(以字节表示)。Oracle 共享服务器使用

大型池存储会话信息,在专用服务器会话中,这些信息通常驻留在 PGA 中。

• SESSIONS指定系统中可创建的最大会话数。由于系统现在可以服务更多会话,

因此可能需要为 Oracle 共享服务器调整此参数。

• PROCESSES控制服务器端进程数。

• LOCAL_LISTENER定义监听程序所用的端口和协议。如果监听程序未在 1521 端口

使用 TCP/IP,或者具有多个监听程序,则必须配置 LOCAL_LISTENER,以使分派

程序可以注册到监听程序。

如果尚未设置 LARGE_POOL_SIZE的值,则 Oracle 数据库将使用 Oracle 共享服务器用

户会话内存的共享池。这样会使 PL/SQL、SQL 和其它依赖共享池的服务的性能受到负面

影响。

即使已经配置大型池,Oracle 数据库仍将从共享池中为每个已配置会话分配一些固定的

内存量(大约 10 KB)。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 315: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II E-19

版权所有 © 2009,Oracle。保留所有权利。

验证共享服务器设置

• 通过发出以下命令,确认启动数据库时分派程序已经

注册到监听程序:

• 通过建立连接来确认使用共享服务器进行的连接,然后

查询 V$CIRCUIT 视图,每个共享服务器连接显示一个

条目。

$ lsnrctl SERVICES

验证共享服务器设置

使用 Oracle 共享服务器时,应首先启动监听程序,然后再启动数据库,以便分派程序

可以立即注册到监听程序。如果后启动监听程序,则需要一分钟,以使服务进行注册。

要验证是否已经完成注册,请发出以下命令:$ lsnrctl services Service "TEST" has 1 instance(s). Instance "TEST", status READY, has 3 handler(s) for this service. Handler(s):

"DISPATCHER" established:1 refused:0 curr:0 max:1022 state:ready D001 <machine: db.us.oracle.com, pid: 8705> (ADDRESS=(PROTOCOL=tcp)(HOST=db.us.oracle.com)(PORT=35230))

"DISPATCHER" established:1 refused:0 curr:0 max:1022 state:ready D000 <machine: db.us.oracle.com, pid: 8703> (ADDRESS=(PROTOCOL=tcp)(HOST=db.us.oracle.com)(PORT=35229))

"DEDICATED" established:0 refused:0

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 316: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II E-20

验证共享服务器设置(续)

通过建立连接来确认是使用共享服务器进行的连接,然后查询 V$CIRCUIT视图,每个

共享服务器连接显示一个条目。此操作还可验证监听程序是否对传入连接执行负荷平衡

操作。

SQL>select dispatcher, circuit, server, status from v$circuit;

DISPATCH CIRCUIT SERVER STATUS -------- -------- -------- ----------------82890064 8257BA64 8288F6A4 NORMAL 8288F9E4 8257BBB0 00 NORMAL 8288FD24 8257BCFC 00 NORMAL

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 317: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II E-21

版权所有 © 2009,Oracle。保留所有权利。

数据字典视图

• V$CIRCUIT

• V$SHARED_SERVER

• V$DISPATCHER

• V$SHARED_SERVER_MONITOR

• V$QUEUE

• V$SESSION

数据字典视图

此视图列出每个当前会话的会话信息。V$SESSION

此视图包含有关请求和响应队列的信息。V$QUEUE

此视图包含优化共享服务器进程的信息。V$SHARED_SERVER_ MONITOR

此视图提供有关分派程序进程的信息。V$DISPATCHER

此视图包含有关共享服务器进程的信息。V$SHARED_SERVER

此视图包含有关虚拟回路的信息,虚拟回路是通过分派程序

和服务器至数据库的用户连接。所有共享服务器连接均在

V$CIRCUIT中创建一个条目。

V$CIRCUIT

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 318: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II E-22

版权所有 © 2009,Oracle。保留所有权利。

选择连接类型

除非另有配置,否则 Oracle Net 连接使用以下类型:

• 如果共享服务器可用,则使用共享服务器

• 如果共享服务器连接不可用,则使用专用服务器

通过使用本地或目录命名,可将连接类型指定为网络服务

别名的一部分。

选择连接类型

Oracle Net 的默认连接类型为共享服务器连接。如果已将实例配置为使用共享服务器,

而且连接请求并未特别要求使用专用服务器,则连接类型为共享服务器。

Oracle Net Manager 允许为本地命名和目录命名指定连接类型。从下拉列表中选择所需的

“Connection Type(连接类型)”。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 319: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II E-23

版权所有 © 2009,Oracle。保留所有权利。

何时不使用共享服务器

某些类型的数据库工作不应使用共享服务器执行:

• 数据库管理

• 备份和恢复操作

• 批处理和批量装载操作

• 数据仓库操作

分派程序 服务器进程

何时不使用共享服务器

Oracle 共享服务器体系结构是一种有效的进程和内存使用模型,但是其并不适合所有连接。

由于公用请求队列以及许多用户可能共享分派程序响应队列的情况,因此共享服务器不能

很好地执行仓库查询或批处理等必须处理大型数据集的操作。

使用 Oracle Recovery Manager(在后面的章节中讨论)的备份和恢复会话也将处理大型数

据集,因此应使用专用连接。

许多管理任务不能或不应该使用共享服务器连接执行。这些任务包括实例的启动和关闭、

创建表空间或数据文件、索引和表维护、分析统计信息以及通常由 DBA 执行的许多其它

任务。所有 DBA 会话均应选择专用服务器。厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 320: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II E-24

版权所有 © 2009,Oracle。保留所有权利。

小结

在本课中,您应该已经学会:

• 确定何时使用 Oracle 共享服务器

• 配置 Oracle 共享服务器

• 监视共享服务器

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 321: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

版权所有 © 2009,Oracle。保留所有权利。

Oracle Secure Backup

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 322: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II F-2

版权所有 © 2009,Oracle。保留所有权利。

课程目标

学完本课后,应能完成下列工作:

• 描述 Oracle Secure Backup 体系结构及其对环境的

好处

• 讨论基本的 Oracle Secure Backup 介质管理概念

• 安装和配置 Oracle Secure Backup • 使用 RMAN 和 Oracle Secure Backup 来备份和还原

Oracle 数据库

• 使用 Oracle Secure Backup 备份和还原文件系统中

的文件

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 323: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II F-3

版权所有 © 2009,Oracle。保留所有权利。

把 Oracle 积累的数据保护到磁带

文件系统数据

• Oracle 主目录

• 其它非数据库数据

Oracle 数据库

• 版本 Oracle9i及更高版本

• Real Application Clusters

Oracle Application Server 配置文件

Oracle Collaboration Suite 配置文件

磁带库

Oracle Secure Backup集中的磁带备份管理

备份和还原

把 Oracle 积累的数据保护到磁带

在保护 Oracle 数据方面有以下一些可用的选项:单独备份至磁盘、备份至磁盘,将其作

为磁带备份的存放区,或是直接备份至磁带。通常磁盘的备份和还原操作要比磁带的备份

和还原操作速度快。但是,磁带备份在满足长期备份需求、以非现场方式存储备份以及将

备份从一个数据中心移至另一个数据中心的可移植性方面均具有一些优势。

Oracle Secure Backup 提供了针对 Oracle Ecosystem 的磁带备份管理功能,其中包括:

• 通过与 Recovery Manager 集成,提供备份至磁带的 Oracle 数据库保护

• 无缝支持 Oracle Real Application Clusters (RAC) • 对分布式客户机和介质服务器的集中管理,包括:

- Oracle Application Server - Oracle Collaboration Suite - Oracle 主目录和二进制文件

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 324: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II F-4

版权所有 © 2009,Oracle。保留所有权利。

客户优势:完整的 Oracle 解决方案

• Oracle Secure Backup 和 RMAN 提供 Oracle 环境

下的端到端备份解决方案:

– 针对文件系统数据和 Oracle 数据库,提供备份至磁带的

集中备份管理

– RMAN 备份的最佳集成介质管理层

– 可备份网络中任意位置的任意数据

• 针对整体备份解决方案的单个技术支持资源可加快解决

问题的速度。

• 这样可确保在较低成本和复杂性的情况下提供可靠的数

据保护。

客户优势:完整的 Oracle 解决方案

目前 Oracle 针对数据库的备份和恢复产品为 Recovery Manager (RMAN),这是自 Oracle 8.0 版本以后即成为 Oracle 服务器一部分的一项实用程序。Oracle Secure Backup 在以下

方面补充了现有的功能:

• 完整的备份解决方案:Oracle Secure Backup 为数据库和非数据库的数据提供数据

保护,以保护整个 Oracle 环境。

• 介质管理:Oracle Secure Backup 为 RMAN 备份至磁带的数据库备份提供了介质管

理层。在使用 Oracle Secure Backup 以前,客户需要购买价格昂贵、提供与 RMAN 磁带备份集成功能的第三方介质管理产品。

• 网络中的任意位置:Oracle Secure Backup 可备份从多个连接网络的计算机系统至网

络中三级存储资源的所有数据。Oracle Secure Backup 支持对服务器、客户机、网络

连接存储 (NAS) 服务器和三级存储设备的不同配置,并保护网络存储环境。

RMAN 和 Oracle Secure Backup 的组合提供了整个 Oracle 产品系列内的端到端备份解决

方案。由于 Oracle Corporation 负责整体备份解决方案,因此该组合可提供更好的客户支

持服务。

Oracle Corporation 以尽可能 低的成本为客户提供 高级别的数据保护。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 325: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II F-5

版权所有 © 2009,Oracle。保留所有权利。

用于集中磁带备份管理的 Oracle Secure Backup

通过网络备份的

多供应商客户机

LAN

磁带库

NASUNIXLinux 窗口

本地备份的

介质服务器

Oracle 备份

Oracle数据库

Oracle Secure Backup• 本地和网络备份及还原的

集中管理

• 本地和远程磁带设备管理

• 客户机/服务器体系结构

• 备份至磁带的异构数据

保护

用于集中磁带备份管理的 Oracle Secure Backup 通过称为 Oracle Secure Backup 管理服务器的单点管理方式,Oracle Secure Backup 软件

提供对异构客户机和服务器的集中备份管理。通过一个使用合并备份目录的中央控制台,

即可简便的管理备份策略、计划多个平台的备份并管理本地和远程磁带设备。由管理服务

器所管理的已配置计算机和设备共同组成了幻灯片中所示的 Oracle Secure Backup 管理域。

Oracle Secure Backup 磁带管理系统使管理不同体系结构的复杂性降至 低并提供以下

功能:

• 为包括 UNIX(HP-UX、Tru64、AIX 和 Solaris)、Linux(Red Hat、SuSE)、

Windows(2000、XP、2003)和 NAS 服务器在内的多个平台提供统一的异构数据

保护

• 灵活的磁带设备配置,该配置具有为优化资源利用率,对单一和多重主机库或存储

区网络 (SAN) 提供动态驱动器共享功能的选项

• 支持 SAN、GbE 和 SCSI 环境中的主磁带库和磁带机

• 通过局域网 (LAN) 或广域网 (WAN) 对分布式介质服务器提供集中管理的客户机或

服务器体系结构

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 326: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II F-6

版权所有 © 2009,Oracle。保留所有权利。

Oracle Secure Backup 管理域

• 管理服务器:

– 维护其中包含配置设置和备份历史

记录的 Oracle Secure Backup 目录文件

– 仅具有标准访问模式

• 介质或 SAN 服务器:

– 将数据传送到所连接的设备,或将

其中的将数据传送出来

– 具有标准或 NDMP 访问模式

• 客户机:

– 是由 Oracle Secure Backup 备份

的一台服务器

– 具有标准或 NDMP 访问模式

管理

服务器

介质或

SAN 服务器

客户机

OracleSecureBackup目录

要备份

的数据

网络

Oracle Secure Backup 管理域

一个管理域具有一台管理服务器、一台或多台客户机以及一台或多台介质服务器。

• “管理服务器”是管理域中的一台计算机,其中包含 Oracle Secure Backup 软件

的副本以及目录文件,目录文件中包含配置设置并存储备份历史记录。管理服务器

将运行调度程序,其启动并监视管理域中的作业。

• “介质服务器”或 SAN 服务器是其上连接有磁带库等一个或多个辅助存储设备的

计算机。介质服务器将数据传送到所连接的设备,或将其中的数据传送出来。

• “客户机”是通过 Oracle Secure Backup 对其本地访问的数据进行备份的计算机。

每个已配置计算机的特点通过下列访问模式来体现:

• 标准:一台标准、已配置计算机将运行从备份和还原的角度管理客户机或服务器的

Oracle Secure Backup 守护程序。

• NDMP:网络数据管理协议 (NDMP) 主机是来自 Network Appliance、Mirapoint 或DinoStor 等第三方供应商的存储设备。NDMP 主机使用 NDMP 守护程序备份和还原

文件系统。

注:网络中的任何计算机均可以这些角色来服务,或以这些角色的任意组合来服务。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 327: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II F-7

版权所有 © 2009,Oracle。保留所有权利。

Oracle Secure Backup:备份管理概览

• 管理域的集中管理

– 合并的目录

– 用户和权限

• 通过多个界面选项、备份策略和其它更多项来轻松管理

• 备份和还原数据

– 文件系统和 Oracle 数据库

– 通过策略进行管理

• 介质管理(磁带)

• 自动磁带设备管理

• 灵活的配置选项

Oracle Secure Backup:备份管理概览

Oracle Secure Backup 为 Oracle 数据库和文件系统数据提供备份至磁带的数据保护。通过

解决 DBA 和系统管理员的需要,Oracle Secure Backup 提供了 适合工作组和 Oracle Ecosystem 的可靠性、可伸缩性以及易用性。

• 通常 IT 环境为异构环境并且需要相同级别的备份至磁带保护。Oracle Secure Backup 将通过集中管理服务器管理这些不同体系结构的复杂性降至 低。

• Oracle Secure Backup 与 Oracle Enterprise Manager (EM) 集成,以进行数据库备份和

大多数管理任务,提供了 大的灵活性和易用性。使用直观的 Web 工具或统一的

命令界面(或者两者同时使用)对文件系统备份进行有效的管理。

• 用于控制对备份的未授权访问的安全性对于保护数据至关重要。Oracle Secure Backup 提供口令保护和用户分类,以管理备份和恢复操作的权限。Oracle Secure Backup 可承受缓冲区溢出攻击。

• 与 RMAN 紧密集成后,Oracle Secure Backup 通过熟悉的 Oracle Enterprise Manager 或 RMAN 界面(或两者同时使用)提供高性能的数据库备份和恢复功能。

• 通过使用可配置的管理策略以及灵活的设备配置和调度选项,Oracle Secure Backup 提供了集中的数据保护磁带管理工具。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 328: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II F-8

版权所有 © 2009,Oracle。保留所有权利。

Oracle Secure Backup 目录

/usr/local/oracle/backup

admin

admin集中于管理服务器

应定期备份

admin operator oracle reader user

classdatasetdefault device family host oconf schedule usersummary

confighistory log state

Oracle Secure Backup 目录

Oracle Secure Backup 维护其自己在管理服务器上的集中目录。Oracle Secure Backup 目录

包含用于定义配置的所有信息。该目录还包括与备份和还原操作相关的元数据。幻灯片

显示了管理服务器上 Oracle Secure Backup 所安装目录的树状结构。Oracle Secure Backup 以分层形式组织其目录。admin目录包含管理域目录。如同幻灯片中所示,config目

录包含代表 Oracle Secure Backup 所维护对象的许多子目录。在这些目录的每个目录中,

Oracle Secure Backup 均维护包含相应对象特性的文件。

如同幻灯片中所示,建议您定期备份管理服务器上的 Oracle Secure Backup 安装树。通过

这种方式,即使管理服务器出现故障,Oracle Secure Backup 数据也不会丢失。

注:由于格式的原因,本幻灯片并未显示 Oracle Secure Backup 所用的完整目录集。管理

服务器还包含可执行文件集。有关完整树状结构的详细信息,请参阅《Oracle Secure Backup Installation》指南。此外,默认的 Windows 安装目录为 C:\Program Files\Oracle\Backup,Windows 和 UNIX 系统安装目录下的目录结构均相同。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 329: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II F-9

版权所有 © 2009,Oracle。保留所有权利。

Oracle Secure Backup 用户

名称和口令

分类权限

UNIX 用户名和组

Windows域帐户和口令

电子邮件地址

NDMP 访问授权

给定名称

预授权用户信息

Oracle SecureBackup 用户

Oracle Secure Backup 用户

Oracle Secure Backup 管理其自己的用户目录以及用户的对应权限,以维护在管理域的各

种主机(UNIX、Linux 和 Windows)中用户标识的一致性。虽然可分配与现有 OS 用户

相同的用户名和口令,但是 Oracle Secure Backup 用户的名称空间与现有 OS 用户的名称

空间不同。下面是创建 Oracle Secure Backup 用户时必须指定的参数的说明:

• Oracle Secure Backup 用户的名称及其口令。

• 与该用户相关联的 Oracle Secure Backup 分类。

• UNIX 或 Windows 用户名及其相应信息。该用户名用于 Oracle Secure Backup 的非

特权操作,以访问客户机上的文件系统数据。非特权操作受到拥有该标识的 UNIX 用户或 Windows 帐户的权限的约束。

• 是否允许 Oracle Secure Backup 用户登录到 NDMP 服务器。使用外部客户机程序完

成该登录。

• 用于发送 Oracle Secure Backup 操作通知和报告的电子邮件地址。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 330: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II F-10

Oracle Secure Backup 用户(续)

• 给定名称。该参数较像一条注释。

• 指定预授权用户信息的可能性。该参数允许在不通过正常 Oracle Secure Backup 登录

要求的情况下使用 Oracle Secure Backup。

注:使用 Web 工具或命令行接口来配置用户是 好的方法。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 331: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II F-11

版权所有 © 2009,Oracle。保留所有权利。

预定义的分类

用户可执行 Oracle 数据库备份和还原操作

访问 Oracle Secure Backups(数据库)

修改任意作业(与其所有者无关)

列出任意作业(与其所有者无关)

管理设备和更改设备状态

查询和显示有关设备的信息

接收描述内部错误的电子邮件

接收请求操作者帮助的电子邮件

作为授权用户执行还原操作

作为用户自己执行还原操作

修改用户拥有的任意作业

列出用户拥有的任意作业

作为授权用户执行备份操作

作为用户自己执行备份操作

修改管理域的配置

修改自己的用户名和口令

显示管理域的配置

使用该访问权限浏览备份目录

READERORACLE用户OPERATORADMIN权限

已授权

所有人

未拒绝

所有者

已允许

所有者

已允许

所有者

已命名

预定义的分类

分类定义权利集或访问权限集。可将一个分类分配给多个用户,但是每个用户均必须是

一个分类的成员。以下分类对于了解 Oracle Secure Backup 中的用户访问权限至关重要:

• Admin:用于全面管理域的分类。admin 分类具有修改域配置以及执行备份和还原

操作所需的所有权利和权限。

• Operator:用于标准、日常操作的分类。operator 分类缺少配置权限,但是该分类

具有备份和还原操作所需的所有权利,并具有设备管理浏览能力。

• User:分配给特定的用户的分类,允许其以限定方式与其所在域进行交互。该分类

为需要浏览索引内自己的数据,并执行基于用户的还原操作的用户保留。

• Oracle:与 operator 分类相似,并具有修改 Oracle 数据库配置设置以及执行 Oracle 数据库备份的特定权限

• Reader:允许用户查看索引信息而分配的分类。仅允许 Reader 修改其用户名和口令,

不允许其执行其它任何操作。

使用 Web 工具或命令行接口来配置分类是 好的方法。

注:有关个人权限的详细信息,请参阅《Oracle Secure Backup Administrator’s Guide》。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 332: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II F-12

版权所有 © 2009,Oracle。保留所有权利。

Oracle Secure Backup 界面选项

OracleSecureBackup

obtoolRMAN

Web 工具

EM

数据库操作

文件系统操作

Oracle Secure Backup 界面选项

如同幻灯片中所示,根据要执行的操作,可以四种不同的方式访问 Oracle Secure Backup:• 好使用 Enterprise Manager 来完成添加或管理设备等管理域方面的管理操作。也可

使用 Oracle Secure Backup Web 工具或命令行进行管理性的管理任务,包括添加客户

机以及配置用户和分类。

• 使用 Oracle Enterprise Manager 或 RMAN 界面管理 Oracle 数据库备份和还原操作。

• 使用 Oracle Secure Backup Web 工具或命令行接口管理文件系统备份和还原操作。

注:在备份和恢复操作方面,Oracle Secure Backup Web 界面和 obtool之间的差异与

EM 界面和 RMAN 之间的差异相同。厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 333: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II F-13

版权所有 © 2009,Oracle。保留所有权利。

管理待保护的数据

直观的 Enterprise Manager 调度界面

使用 RMAN 备份级:

完全和增量

RMAN 备份集

Oracle DB

灵活的、基于日期/时间

日历的调度

按需备份

备份频率

多级备份:完全、增量或

非现场方式

备份选项

Oracle Secure Backup 数据集:自定义

定义要备份的数据

文件系统数据

管理待保护的数据

使用 Oracle Secure Backup 和 RMAN 管理文件系统数据和 Oracle 数据库数据的备份基础

结构非常方便。对于文件系统数据和数据库数据,定义要备份的数据在概念上非常相似。

这两者都要求用户定义备份中要包括的内容。对于数据库,可使用通过 RMAN 或Enterprise Manager 创建的 RMAN 备份集。对于文件系统,Oracle Secure Backup 将使用

数据集。可使用 Oracle Secure Backup Web 工具轻松完成文件系统数据集定义。

定义要备份的数据后,必须确定哪种备份类型 符合您的备份和还原要求。Oracle Secure Backup 为文件系统备份提供了多种备份级,其中包括完全备份级、多个增量级和非现场

方式备份级。实际上非现场方式级是一种在不影响任何增量备份策略的情况下执行的完全

备份。Oracle Secure Backup 还提供灵活的调度选项,允许您以天和时间粒度为基础确定

持续备份计划。对于 Oracle 数据库,RMAN 提供通过 Oracle Secure Backup 备份至磁带的

完全和增量备份级。

通过调度功能定义要备份哪些数据、如何对其备份以及备份频率后,Oracle Secure Backup 即可自动实施备份计划,仅在发生硬件错误或需要介质的时候才需要人工干预。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 334: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II F-14

版权所有 © 2009,Oracle。保留所有权利。

Oracle Secure Backup 介质概念

介质族

卷集

备份映像

包含备份映像的磁带集

一次备份操作所生成的文件

磁带

管理卷集内容的方法

Oracle Secure Backup 介质概念

Oracle Secure Backup 在一个简单层次结构中组织其创建的备份,该层次结构包含以下

概念:

• 备份映像(档案)是备份操作产生的文件。基本上,可将其视为一次操作中所

备份文件的列表。

• 卷是介质的一个单元,例如 8mm 磁带。

• 卷集是一个备份映像跨越的一组卷。

• 介质族是对共享一些公共属性的卷所做的命名分类,那些公共属性包括卷的命名

方式、用于在介质族的卷中写入并存储数据的策略等。

因此,使用 Oracle Secure Backup 备份文件时,将生成具有一些公共特性的卷集,这些

公共特性由与备份操作相关联的相应介质族定义。

注:幻灯片中的图形按从 逻辑概念至 物理概念列举了这些概念。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 335: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II F-15

版权所有 © 2009,Oracle。保留所有权利。

卷集的重复利用

卷集创建

写入窗口 保留期限

卷集到期卷集关闭

时间允许更新 禁止更新

重复利用文件系统文件的卷

超出到期期限

卷集

重复利用备份片段卷

备份片段 备份片段 备份片段 备份片段

已过期 已过期 已过期 已过期

手动删除

卷集的重复利用

Oracle Secure Backup 具有两个卷重复利用概念:

• 重复利用包含文件系统文件备份的卷:因为包含一个或多个文件系统备份的卷

(磁带)或卷集在卷的保留期过期时,将会被覆盖,所以要在卷级别上管理文件

系统备份的保留期。在卷集的写入窗口期间过期前,Oracle Secure Backup 继续将

备份附加到该卷集中,在写入窗口期间过期后,程序将认为该卷集已关闭,不再

进行更新。卷集关闭后,将在保留期内保存其数据,在该保留期过期后,该数据

将自动变为可覆盖。保留期是自定义的写入窗口时间与保留期限相加的总时间。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 336: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II F-16

卷集的重复利用(续)

• 重复利用包含备份片段的卷:Oracle Secure Backup 为 Oracle 数据库备份使用内容

管理的卷重复利用功能,将对每个备份片段分别进行管理,而不是在卷级别上对其

进行管理。在以下两种情况下备份片段会变为过期:

1. 备份管理员从备份目录中手动删除了该片段。

2. 片段的寿命超出其到期日期。该到期日期是创建备份片段时确定的,并且与其

创建时间加上其到期期限的总时间一致。在相应的 Oracle Secure Backup 配置

对象中设置到期期限。如果满足以上两种条件中的一种,则将该片段视为过期。

当写入卷中的“所有”备份片段均过期时,该卷即可被覆盖。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 337: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II F-17

版权所有 © 2009,Oracle。保留所有权利。

自动设备管理

• Oracle Secure Backup 将对磁带库的控制自动化

– 从库接受 SCSI 命令,以执行以下操作:

管理磁带产品清单

将磁带移入或移出存储元件和驱动器

– 自动进行磁带机清理操作

– 支持条形码阅读器和介质验证

• 支持 NDMP v3 和 v4 的服务器的自动设备发现和配置

自动设备管理

Oracle Secure Backup 将对磁带库的管理自动化,以便有效且可靠的使用其功能(包括条

形码阅读器)。Oracle Secure Backup 与磁带库通信控制机器人,以简化库内磁带的管理。

通常将磁带库称为机器人磁带设备、自动更换器或介质更换器。OTN 上有支持的磁带机

和库的列表。

库接受小计算机系统界面 (SCSI) 命令,在存储位置和驱动器间移动介质。Oracle Secure Backup 使用以下 SCSI 术语描述库的基本组件:

• 存储元件 (se) 在未使用时,包含一个卷。

• 导入导出元件 (iee) 或邮件插槽用于将卷从库中移入或移出,而不需要打开库门。

iee 的可用性与库有关。一些库提供了介质访问端口,但是有一些库则需要操作者

手动操作来打开库门,并将磁带从库的插槽中取出。

• 介质传输元件 (mte) 将卷从一个存储元件移动到另一个元件中,例如移动到驱动器中。

• 数据传送元件 (dte) 在 Oracle Secure Backup 中是磁带机。

每个元件均有 Oracle Secure Backup 用于识别该元件的自定义名称。例如,通常第一个存

储元件称为 se1,而第一个磁带机称为 dte1。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 338: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II F-18

版权所有 © 2009,Oracle。保留所有权利。

库管理操作

存储元件

insertvol

磁带机

Loadvolunloadvol

movevol

extractvol

库管理操作

幻灯片中的图显示了库及其存储元件和驱动器。以下是您可对库的组件执行的一些基本

操作:

• 可表示您已将一个或多个卷插入到库的存储元件中。

• 同样,也可将一个或多个卷从磁带库的存储元件中提取出来。该命令将通知

Oracle Secure Backup 您正在手动将卷从库中取出。

• 还可将卷从存储元件中加载到驱动器中,以准备开始备份操作。

• 同样,也可从驱动器中将卷卸载到特定存储元件中。

• 还可将一个卷从一个存储元件移动到另一个存储元件中。

注:有关可能的库命令的详细信息,请参阅《Oracle Secure Backup Reference》指南。厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 339: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II F-19

版权所有 © 2009,Oracle。保留所有权利。

Oracle Secure Backup:安装

介质服务器

软件安装 管理域定义 设备定义/发现

管理服务器

介质

服务器客户机

磁带机/库

设备

附件创建

OTN CD-ROM

仅用于 Oracle Secure Backup

管理服务器 介质

服务器客户机

Oracle Secure Backup/NDMP

1 23

Oracle Secure Backup:安装

通常按照以下三个步骤完成管理域的安装和配置:

1. 除已运行 NDMP 守护程序的主机外,在其余的每台主机上安装 Oracle Secure Backup 软件。可使用 CD-ROM 或从 OTN 下载软件来完成此操作。

2. 确保在管理服务器上定义完整的管理域。这涉及定义所有介质服务器、客户机服务

器和网络连接存储 (NAS) 筛选器。可直接在软件安装过程中定义的管理服务器上执

行此操作。

3. 应让管理服务器知道管理域中存在的磁带设备。第三步仅为介质服务器保留,该步

骤允许配置直接连接到管理域中 Oracle Secure Backup 主机上的 SCSI 和光纤通道设

备(库和磁带机),或者该步骤可发现连接到 NAS 筛选器上的库和磁带机,以便

筛选器可与 Oracle Secure Backup 通信。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 340: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II F-20

版权所有 © 2009,Oracle。保留所有权利。

安装 Oracle Secure Backup 软件

WindowsUNIX/Linux

OTN

本地暂存

Unzip/untar

删除暂存

安装

UNIX/Linux

CD-ROM

安装

每个

主机

一个

主机

确定

服务器角色

安装 Oracle Secure Backup 软件

在特定主机上启动 Oracle Secure Backup 软件安装程序前,需要确定其 Oracle Secure Backup 角色(管理、介质或客户机)。

无论使用哪种平台(Windows、UNIX/Linux),均可选择下列方式之一来安装 Oracle Secure Backup 软件:

• 通过提供的 CD-ROM 在每台主机上安装 Oracle Secure Backup。• 从 OTN 上将 Oracle Secure Backup 下载到每台主机上,并从本地暂存目录中安装

该软件。

但是,使用 UNIX/Linux 平台时,在通过 OTN 或 CD-ROM 将 Oracle Secure Backup 软件

下载到某台计算机上后,还可以远程将该软件分发到网络中的其它 UNIX/Linux 主机上。

该分发方法需要您能够以 root身份发出 rsh命令,以在网络中推送该软件。

完整的域安装仅适用于类似 UNIX 的系统。Windows 系统需要在管理域的每个系统中

单独安装。

注:在类似 UNIX 的系统中,可以交互方式完成 Oracle Secure Backup 的安装,而且也可

使用网络说明文件以批处理模式进行安装。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 341: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II F-21

版权所有 © 2009,Oracle。保留所有权利。

管理服务器的安装:示例

[root@EDRSR14P1 stage]# mkdir -p /usr/local/oracle/backup[root@EDRSR14P1 stage]# cd /usr/local/oracle/backup[root@EDRSR14P1 backup]# /stage/ob-4.1cdrom040914/setupWelcome to Oracle's setup program for Oracle Secure Backup. Thisprogram loads Oracle Secure Backup software from the CD-ROM to a filesystem directory of your choosing.This CD-ROM contains Oracle Secure Backup version 10.2.Please wait a moment while I learn about this host... done.- - - - - - - - - - - - - - - - - - -You may load any of the following Oracle Secure Backup packages:1. solaris (Solaris 32, SPARC) administrative server, media server, client2. linux32 (RH 2.1, RHEL 3, RHEL 4, SuSE 8, SuSE 9) administrative server, media server, client3. solaris64 (Solaris 2.8 and later, SPARC) administrative server, media server, client

Enter a space-separated list of packages you'd like to load. To load all packages, enter 'all' [2]: 2

管理服务器的安装:示例

虽然不是必须的,但是在大多数情况下,用于安装 Oracle Secure Backup 软件的安装目录

均为 /usr/local/oracle/backup。

在创建安装目录后,请将当前目录更改为安装目录,然后从 CD-ROM 或存放区执行安装

程序。在幻灯片示例中,使用存放目录,而未使用 CD-ROM 进行安装。

如本例所示,针对各种平台(包括 Solaris 和几种 Linux 特征的平台),显示了几种数字

选择。针对正在运行的 UNIX 平台,选择与安装程序包相对应的编号。本例使用 Linux 平台。

具有选择在多台计算机上安装 Oracle Secure Backup 的选项。只需在同一行列出所有程序

包编号,以空格分隔。例如,要在 Solaris 和 Linux 计算机上安装 Oracle Secure Backup 软件,请输入:1 2。

对于下面的步骤,建议您接受所提供的默认选项。obparameters文件已进行了预配置

以在安装过程中使用。此外,可打开文本编辑器并检查 /usr/local/oracle/backup/install/obparameters。各项参数均已定义,您可以自定义这些参数,以

符合 Oracle Secure Backup 安装的需要。例如,可要求 Oracle Secure Backup 自动创建分配

了 oracle分类的 Oracle Secure Backup 用户,并预授权该用户使用 RMAN。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 342: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II F-22

版权所有 © 2009,Oracle。保留所有权利。

在 EM 中定义管理服务器

在 EM 中定义管理服务器

完成 Oracle Secure Backup 软件安装后,需要定义管理域。

在“Database Control Maintenance(数据库控制维护)”页中,需要单击“Oracle Secure Backup”部分中的“Oracle Secure Backup Device and Media(Oracle Secure Backup 设备

和介质)”链接。

如果您是第一次通过 Database Control 访问 Oracle Secure Backup,则显示“Add Administrative Server(添加管理服务器)”页。

在“Add Administrative Server(添加管理服务器)”页中,必须指定安装过程中使用的

“Oracle Secure Backup Home(Oracle Secure Backup 主目录)”目录。假定您的主机也是

Oracle Secure Backup 管理服务器。那么,需要指定将用于所有远程操作的“Oracle Secure Backup Username(Oracle Secure Backup 用户名)”。

执行该操作后,单击“OK(确定)”。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 343: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II F-23

版权所有 © 2009,Oracle。保留所有权利。

“Oracle Secure Backup Device and Media(Oracle Secure Backup 设备和介质)”页

“Oracle Secure Backup Device and Media(Oracle Secure Backup 设备和介质)”页

在“Oracle Secure Backup Device and Media(Oracle Secure Backup 设备和介质)”页中,

可使用“Resources(资源)”部分中的可用链接管理您的管理域。使用这一部分,可以

管理:

• 设备

• 介质服务器

• 介质族

• 卷厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 344: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II F-24

版权所有 © 2009,Oracle。保留所有权利。

添加设备

添加设备

建立管理域后,可继续配置 Oracle Secure Backup 使用的库和磁带机。Oracle Secure Backup 支持 SCSI 和光纤通道设备。

可以下列两种方式之一来添加新设备:

• 自动发现新设备。Oracle Secure Backup 可自动发现并配置连接至某些类型的 NDMP 服务器的辅助存储设备,例如 Network Appliance 筛选器。

• 通过 Enterprise Manager、Web 工具或命令行接口配置新设备。

在“Devices(设备)”页中,单击“Add Library(添加库)”或“Add Drive(添加驱

动器)”将新设备添加到配置中。厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 345: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II F-25

版权所有 © 2009,Oracle。保留所有权利。

通过使用 EM 管理设备

通过使用 EM 管理设备

在“EM Administrative Server(EM 管理服务器)”页中,可单击与“Devices(设备)”

行对应的“Manage(管理)”链接。

此时将显示“Devices(设备)”页;在此处,可以“Add Library(添加库)”和

“Add Drive(添加驱动器)”。还可以选择现有设备,并分别使用“Edit(编辑)”

和“Remove(删除)”按钮来编辑或删除该设备。

如本例所示,创建一个设备后,可以选择该设备,然后使用“Actions(操作)”和

“Drive Actions(驱动器操作)”列表对该设备应用一些特定操作,例如“Mount(装载)”、“Load Volume(加载卷)”等。然后,单击“Go(执行)”。厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 346: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II F-26

版权所有 © 2009,Oracle。保留所有权利。

RMAN 和 Oracle Secure Backup

OracleSecureBackup

备份或还原备份

至磁带的备份集

将文件

系统文件

备份至磁带

网络中的任意位置

恢复经理

浏览/管理

备份片段

Oracle服务器

会话

SBT 库

可能的操作

RMAN 和 Oracle Secure Backup Oracle Secure Backup 提供备份和还原 UNIX、Linux、Windows 和 NAS 文件系统的功能。

此外,Oracle Secure Backup 还实施了 RMAN 介质管理界面,使其可通过 RMAN 提供无

缝数据库备份。

因此 Oracle Secure Backup 可执行两种独立的功能:备份 Oracle 数据库以及备份其它文件

系统对象。备份 Oracle 数据库时,通过 RMAN 或 EM 界面访问 Oracle Secure Backup。备份其它文件系统数据时,通过其 obtool命令行接口或其 Web 工具访问 Oracle Secure Backup。

Oracle Secure Backup 可浏览备份片段并分别对其进行管理。在备份片段成为孤立片段时,

此功能很重要。“孤立片段”是指备份片段存在于 Oracle Secure Backup 目录中,但不存

在于 RMAN 目录中。Oracle Secure Backup 存储并报告特定于 Oracle 的元数据,这些元数

据是关于每个备份片段类型的内容的。

备份集是 RMAN 可用来将备份写入介质管理器设备(例如磁带库)中的唯一形式。使用

Oracle Secure Backup 将备份存储于磁带时,每个 RMAN 备份片段均将创建为一个 Oracle Secure Backup 备份映像。

注:SBT 代表系统备份至磁带 (System Backup to Tape)。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 347: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II F-27

版权所有 © 2009,Oracle。保留所有权利。

从 RMAN 访问 Oracle Secure Backup

备份或还原

恢复经理

数据库备份

存储选择器

Oracle Secure Backup

预授权的

RMAN 用户

Oracle服务器

会话SBT 库

Oracle数据库

文件

从 RMAN 访问 Oracle Secure Backup 从 RMAN 访问 Oracle Secure Backup 时,仅需要分配一个 SBT_TAPE类型的通道,然后

即可运行 RMAN 命令以备份或还原数据库。在 Oracle Secure Backup 方面,必须预定义

两个重要的 Oracle Secure Backup 对象:

• 数据库备份存储选择器:配置这些对象,以代表描述 Oracle 数据库的备份和还原参

数。这些对象可作为访问数据库的 RMAN 和管理底层介质的 Oracle Secure Backup 软件之间的“纽带层”。

• 预授权的 RMAN 用户:使用 RMAN 预授权确定执行特定 RMAN 操作(如备份或

还原)的 Oracle Secure Backup 用户。厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 348: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II F-28

版权所有 © 2009,Oracle。保留所有权利。

用户预授权

用户执行分配SBT_TAPE 通道命令。

恢复经理

Oracle服务器

会话

SBT 库

预授权的

RMAN 用户OS 用户oracle

主机

Oracle备份用户

备份

或还原

管理observiced

1

2

3 4

5

4

Oracle 服务器会话

在 OS 用户 oracle下运行。

本地observiced

用户预授权

可预授权 RMAN 的 OS 用户在登录至给定主机时可访问 Oracle Secure Backup。这样将允

许在不通过正常 Oracle Secure Backup 登录要求的情况下使用 Oracle Secure Backup。使用

预授权确定执行特定 RMAN 操作(如备份或还原)的 Oracle Secure Backup 用户。本幻灯

片显示了 RMAN 情况的示例:

1. 启动 RMAN 并分配 SBT 通道后,Oracle 数据库将派生实际执行操作的 Oracle 前台

进程。

2. Oracle 进程连接至在其主机本地运行的 Oracle Secure Backup 服务守护程序。

3. 服务守护程序确定 Oracle 进程运行所使用的 OS 用户和主机。

4. 本地服务守护程序将检查管理服务守护程序中的用户信息。如果存在支持该主机和

OS 用户的预授权的 Oracle Secure Backup 用户,则登录成功。

5. Oracle 前台进程使用预授权的 Oracle Secure Backup 用户执行其 Oracle Secure Backup 操作。请注意,通过 SBT 界面提交的 Oracle Secure Backup 操作将使用由 Oracle Secure Backup 用户定义的 OS 用户来访问主机。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 349: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II F-29

版权所有 © 2009,Oracle。保留所有权利。

数据库备份存储选择器

名称

数据库

名和 ID

内容

副本编号介质族

主机和限制

到期期限

等待时间

数据库备份

存储选择器

数据库备份存储选择器

通过使用数据库备份存储选择器,可详细控制数据库备份和还原操作。与 RMAN 交互使

用时,Oracle Secure Backup 将使用数据库备份存储选择器中内嵌的信息。数据库备份存

储选择器包含以下信息:

• 存储选择器自身的名称

• 该选择器所适用数据库的名称

• 该选择器所适用数据库的 ID • 该选择器所适用主机的名称

• 该选择器所适用的备份片段内容:归档日志、完全、增量以及自动备份。也可以是这些值的组合。

• 该选择器所适用的 RMAN 副本编号通常使用 RMAN 命令 BACKUP … COPIES或CONFIGURE BACKUP COPIES进行配置,以便对备份集双重备份集,从而应对

灾难、介质损坏或人为错误。

• 使用的介质族名称

• 限制在其上操作的设备名称

• 备份片段的到期时间(期限)

• 资源可用性的等待时间(期间)

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 350: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II F-30

版权所有 © 2009,Oracle。保留所有权利。

RMAN 和 Oracle Secure Backup:使用模型

安装 Oracle 软件。

安装 Oracle Secure Backup 软件。

创建具有

必要权限的用户。

创建介质族。

创建数据库存储选择器。

分配 SBT 通道。

RMAN 和 Oracle Secure Backup:使用模型

Oracle Secure Backup 作用的方式与其它所有提供 SBT 实施的备份产品完全相同。配合使

用 RMAN 和 Oracle Secure Backup 之前,请执行下列步骤:

1. 安装 Oracle 软件以及 Oracle Secure Backup 软件。

2. 创建分配至“oracle”分类并具有 RMAN 预授权的 Oracle Secure Backup 用户。要在

Oracle Secure Backup 安装过程中创建此类用户,只需在安装前,将 obparameters文件中的 create pre-authorized oracle user参数值更改为 yes。

3. 创建介质族。例如,可根据创建的备份集类型创建不同的介质族:归档日志和数据

文件。默认情况下,Oracle Secure Backup 将创建 RMAN-DEFAULT介质族以用于

RMAN。

4. 创建 Oracle Secure Backup 数据库备份存储选择器。例如,可为每个数据库各创建

一个选择器。

5. 提交 RMAN 命令生成备份或还原数据库之前,先要分配 SBT_TAPE类型的通道。

注:安装 Oracle Secure Backup 软件时,安装程序自动将 libobk.so文件复制至 /lib目录中。因此,默认情况下,每次分配 SBT_TAPE通道后,将自动使用 Oracle Secure Backup 程序。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 351: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II F-31

版权所有 © 2009,Oracle。保留所有权利。

定义数据库存储选择器

定义数据库存储选择器

定义管理服务器后,需要配置数据库备份存储选择器,以便通过 RMAN 和 Enterprise Manager 使用 Oracle Secure Backup 来开始创建备份。

要创建存储选择器,请执行以下步骤:

1. 在“Database Control(数据库控制)”主页中,单击“Maintenance(维护)”标签。

2. 在“Maintenance(维护)”页中,单击“Configure Backup Settings(配置备份设

置)”链接。

3. 在“Configure Backup Settings(配置备份设置)”页中,单击“Oracle Secure Backup”部分中的“Configure(配置)”。此时将打开“Backup Storage Selectors(备份存储

选择器)”页。通过使用该页,可管理备份存储选择器。创建选择器后,单击“Return(返回)”。

还可通过 obtool命令行接口,使用以下示例创建数据库存储选择器:mkssel -c * -d * -i * -h EDRSR14P1 -r vt1 ssel1

该示例将创建对位于 EDRSR14P1主机上的所有 Oracle 数据库均有效的数据库备份存储

选择器。该对象称为 ssel1,并使用 vt1磁带机备份数据。

注:有关如何管理数据库备份存储选择器的详细信息,请参阅《Oracle Secure Backup Administrator’s Guide》。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 352: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II F-32

版权所有 © 2009,Oracle。保留所有权利。

测试磁带机

测试磁带机

通过 EM 将 RMAN 要使用的 Oracle Secure Backup 注册后,可打开“Configure Backup Settings(配置备份设置)”页,以测试是否已正确设置各项。在“Tape Settings(磁带

设置)”部分中,单击“Test Tape Backup(测试磁带备份)”。此操作将创建控制文件的备份,发出 RESTORE VALIDATE CONTROLFILE RMAN 命令,并从磁带中删除控制

文件副本。

此操作完成后,将返回“Configure Backup Settings(配置备份设置)”页,在该处可看到

“Tape Backup Test Successful(磁带备份测试成功)”消息。

随后可查看备份报告。在“Maintenance(维护)”页中,单击“Backup/Recovery(备份/恢复)”部分中的“Backup Report(备份报告)”链接。然后,在“Backup Report(备份

报告)”页中,查找相应的报告,并单击其相应的“Status(状态)”。您将转至

“Summary(汇总)”页,在该处可查看详细日志信息。

注:以下是 RMAN 自动执行以测试磁带机的脚本示例:run { allocate channel oem_sbt_backup type 'sbt_tape' format '%U';backup as BACKUPSET current controlfile tag '12152004064001';restore controlfile validate from tag '12152004064001';release channel oem_sbt_backup;}allocate channel for maintenance type 'sbt_tape' ;delete noprompt backuppiece tag '12152004064001';

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 353: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II F-33

版权所有 © 2009,Oracle。保留所有权利。

使用 EM Database Control 调度备份

使用 EM Database Control 调度备份

通过使用 EM Database Control,可调度备份至磁盘或磁带(或两者)的备份。

要调度备份,请单击“Maintenance(维护)”标签页上的“Schedule Backup(调度

备份)”链接。

在“Schedule Backup(调度备份)”页中,可选择“Oracle-Suggested Backup(Oracle 建议的备份)”策略,也可选择“Customized Backup(自定义备份)”。

在幻灯片示例中,通过单击“Schedule Oracle-Suggested Backup(调度 Oracle 建议的

备份)”使用了 Oracle 建议的策略。厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 354: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II F-34

版权所有 © 2009,Oracle。保留所有权利。

Oracle 建议的备份策略

Oracle 建议的备份策略

在“Schedule Oracle-Suggested Backup: Destination(调度 Oracle 建议的备份:目标)”

页上,可选择备份的目标介质。在幻灯片示例中,选择了“Both Disk and Tape(磁盘和

磁带)”。目的是将数据库的每日备份存放到磁盘上,并每周将快速恢复区备份一次到

磁带上。默认的 Oracle 建议策略是使用备份至磁盘的每日增量 RMAN 备份。

单击“Next(下一步)”显示“Schedule Oracle-Suggested Backup: Setup(调度 Oracle 建议的备份:设置)”页,在该页中可确定每日需将哪些数据备份至磁带。在该示例中,

通过选中“Daily Backup(每日备份)”部分中的“None(无)”,表示不需要每日将数

据备份至磁带。

如示例中所示,“每周会将磁盘上所有与恢复相关的文件备份一次至磁带”,并且“保留

恢复至过去一天内任意时间所必需的磁盘备份”。

此外,还可指定“Recovery Window(恢复窗口)”、“Tape Drives(磁带机)”数和

“Library Parameters(库参数)”等磁带设置。

单击“Next(下一步)”访问“Schedule Oracle-Suggested Backup: Schedule(调度 Oracle 建议的备份:调度)”页。在该页,可定义“Daily Backup Time(每日备份时间)”以

及“Weekly Backup Time(每周备份时间)”。单击“Next(下一步)”复查作业,然后

单击“Submit Job(提交作业)”以提交您的作业。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 355: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II F-35

版权所有 © 2009,Oracle。保留所有权利。

管理磁带备份

管理磁带备份

使用“Manage Current Backups(管理当前备份)”页搜索并显示备份集或备份副本的列

表,并可使用该页对选定副本、集或文件执行管理操作。可从“Maintenance(维护)”

标签页访问该页。

如幻灯片中所示,该页将同时显示磁盘备份和磁带备份。

在“Search(搜索)”部分中,通过使用“Status(状态)”筛选器区分特定对象,可查

找备份集或副本。然后可使用“Manage Current Backups(管理当前备份)”页中可用的

功能来管理“Results(结果)”表中显示的文件或集。厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 356: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II F-36

版权所有 © 2009,Oracle。保留所有权利。

使用磁带备份执行数据库恢复

使用磁带备份执行数据库恢复

可从“Maintenance(维护)”标签页访问“Perform Recovery(执行恢复)”页。通过

使用“Perform Recovery(执行恢复)”页,可执行各种数据库恢复操作。可恢复整个数

据库、特定数据文件或表空间。

在后台,RMAN 从以前的备份中请求必要的文件。如果这些文件存储于磁带中,则

Oracle Secure Backup 将自动确定使用哪个磁带。如果不能立即使用这些磁带(以非现场

方式存储),则 RMAN 将等待这些资源。该等待时间由备份存储选择器的资源等待时间

参数定义,默认值为一小时。

需要执行数据库的恢复操作时,根据数据文件所发生的事件,RMAN 将自动选择 适合

的备份文件进行还原操作。这意味着 RMAN 可能会决定退回到由 Oracle Secure Backup 所创建的磁带备份。此操作是完全透明的,并且是由 RMAN 自动完成。

屏幕快照(本幻灯片中所示)说明了这种情况,其中要还原的必要数据文件被无意中从

快速恢复区中删除。如本例所示,RMAN 将自动从 Oracle Secure Backup 生成的上一个

备份进行切换。

注:RMAN 恢复数据文件或数据库,而 Oracle Secure Backup 仅还原必要文件(如果其

位于磁带中)。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 357: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II F-37

版权所有 © 2009,Oracle。保留所有权利。

使用 Oracle Secure Backup 备份文件系统文件

• 备份数据的两种方式

– 按需备份

– 预定备份

• 备份的两种类型

– 完全:所有指定文件

– 增量:仅包括上次低级别备份后更改过的文件

0 1 2 3 2 3备份级

最多九级

完全

使用 Oracle Secure Backup 备份文件系统文件

可以两种不同的方式备份文件系统文件:

• 创建按需(临时或仅一次性)备份作业,并将其提交至 Oracle Secure Backup 调度

程序。

• 调度备份作业,使其在预定时间运行。Oracle Secure Backup 调度程序将自动在指定

的日期和时间启动此类作业。

通过使用 Oracle Secure Backup,可创建两种类型的备份:

• 完全备份:完全备份将备份所有指定文件,而不管这些文件上次备份的时间。该选

项与备份级 0 相同。还可通过不影响完全或增量备份计划的方式执行完全备份。这

在您要创建以非现场方式存储的档案,但又不影响增量备份计划时非常有用。

• 增量备份:有九种不同的增量备份级。在每一级中,Oracle Secure Backup 仅备份那

些自上一次较低(数字)级别备份后更改过的文件。还可要求 Oracle Secure Backup 仅备份那些自上次备份(不管其备份级)后修改过的文件。该选项与备份级 10 相同,

并称为“incr”。

注:Oracle Secure Backup 在与一些平台(包括某些 NAS 设备)配合使用时,不支持 incr 备份级。值得注意的是,此种情况包括 Network Appliance 筛选器。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 358: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II F-38

版权所有 © 2009,Oracle。保留所有权利。

Oracle Secure Backup Web 工具

Oracle Secure Backup Web 工具

Oracle Secure Backup 调用 Apache 以启动 GUI 工具。在安装过程中,Apache Web 服务器

将在后台启动。

要使用 Web 浏览器启动 Oracle Secure Backup:• 请确保:

- 计算机上正在运行服务守护程序 observiced

- Oracle Secure Backup Web 服务器 obhttpd正在运行

• 调用任意计算机上的 Web 浏览器,该计算机可连接至管理服务器上的安全 HTTPS 端口(通常为 443 端口)

• 在浏览器的 URL 或“Location(位置)”字段中,输入:

https://administrative-server-name

还可以直接从 EM 的“Maintenance(维护)”页访问该 Web 工具。出现“Security Alert(安全预警)”框时,请单击“Yes(是)”。

出现“Oracle Secure Backup login(Oracle Secure Backup 登录)”页时,请在“User Name(用户名)”字段中输入 admin。这是安装过程中创建的默认用户名。将“Password(口令)”字段留空,然后单击“Login(登录)”。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 359: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II F-39

Oracle Secure Backup Web 工具(续)

Oracle Secure Backup Web 工具 适合处理以下操作:

• 如果要向 Oracle Secure Backup 配置添加客户机主机

• 要管理 Oracle Secure Backup 守护程序

• 要管理其他 Oracle Secure Backup 用户及其分类名和电子邮件地址

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 360: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II F-40

版权所有 © 2009,Oracle。保留所有权利。

Oracle Secure Backup 数据集脚本

• 定义要备份

哪些文件

的文本说明

• 在 samples目录中找到

的示例

/

usr2usr1 usr3 usr4

主目录

labs file2.txtfile1.tmp

stc1 stc2 stc3

tmpfile1.temp

labs labstmp

file2.junk labs

备份的结构

(示例)

Oracle Secure Backup 数据集脚本

使用 Oracle Secure Backup 时,需要定义数据集,以说明要备份文件的列表。

数据集是向 Oracle Secure Backup 指出要备份哪些文件的文本说明。

要启用该功能,数据集需使用轻型语言。通过该功能,Oracle Secure Backup 在如何构建

和组织要保护文件的定义方面提供了很大的灵活性。

幻灯片中的图形列举了您可在三台不同主机上找到的文件。通过使用下一张幻灯片中

定义的数据集脚本,可备份除虚线框所对应文件之外的文件(如本幻灯片所示)。

为使您熟悉数据集语言,可在 /usr/local/oracle/backup/samples目录中查找

数据集文件的示例。

注:从不备份与 *.backup和 *~相匹配的文件或目录。厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 361: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II F-41

版权所有 © 2009,Oracle。保留所有权利。

数据集脚本:示例

# Dataset "common-exclusions":exclude name tmpexclude name *.tmpexclude name *.temp

exclude name *~include path /home/usr1include path /home/usr2include host stc1include host stc2include host stc3 {include dataset common-exclusionsinclude path /home/usr3before backup optional "/etc/local/nfy '/usr3 begin'"after backup optional "/etc/local/nfy '/usr3 end'"include path /home/usr4 {exclude name *.junk}}

数据集脚本:示例

幻灯片中显示了可用于备份上一张幻灯片中所示数据的两个数据集说明文件。

第一个脚本用于排除以 tmp、*.tmp和 *.temp开头的目录和文件。

第二个脚本用于备份主机 stc1、stc2和 stc3中的下列数据:

• 在 stc1和 stc2上:/home/usr1和 /home/usr2(除去以 *~开头的文件)

• 在 stc3上:/home/usr1、/home/usr2、/home/usr3和 /home/usr4(除去

以 *~、tmp、*.tmp、*.temp和 *.junc(仅限于 /home/usr4)开头的文件)

Oracle Secure Backup 开始备份 stc3上 /home/usr3中的数据时,还将执行

/etc/local/nfy中的可执行文件。Oracle Secure Backup 完成对 /home/usr3的备份

时,也将执行相同的可执行文件。

执行常规(非数据库)备份时,可能需要跳过一些数据库备份中所包括的文件。此类文件

的示例包括数据库文件本身、控制文件、重做日志和闪回日志等。要排除这些文件,请在

数据集中指定 exclude oracle files指令。

注:有关数据集语言的详细信息,请参阅《Oracle Secure Backup Administrator’s Guide》。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 362: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II F-42

版权所有 © 2009,Oracle。保留所有权利。

数据集组织

Oracle Secure Backup 视图

/usr/local/oracle/backup

config

dataset

admin

NEWCLIENTS

/

数据集

目录和文件

NEWCLIENTS 数据集

目录和文件

预创建

顶层数据集目录

OS 视图

… …

数据集组织

如幻灯片中所示,数据集说明文件将按层组织为目录结构。

就管理服务器而言,数据集说明文件和目录存储于 /usr/local/oracle/admin/config/dataset文件系统目录中。如同图表中左侧部分所示,安装过程中将自动创建

NEWCLIENTS目录。该目录可用于存储将来的数据集说明文件。

通过使用 obtool或 Oracle Secure Backup Web 界面,可访问用于管理数据集说明文件和

目录的特殊命令。因此,从 Oracle Secure Backup 角度来看,您可创建自己的数据集目录

和说明文件,并将其组织为树状结构。如同图表中右侧部分所示。厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 363: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II F-43

版权所有 © 2009,Oracle。保留所有权利。

使用 Web 界面创建数据集

使用 Web 界面创建数据集

要使用 Oracle Secure Backup Web 界面创建数据集,请执行下列步骤:

1. 在主页上,单击菜单栏中的“Backup(备份)”标签。

2. 从“Backup(备份)”菜单,单击“Settings(设置)”子菜单中的“Datasets(数据

集)”。此时将显示“Datasets(数据集)”页。在“Path(路径)”框中将显示数

据集目录,名称的 后一个字符为斜杠。

3. 单击“Add(添加)”按钮创建新的数据集。创建新数据集说明时,该数据集的初始

内容将由数据集模板定义。

4. 从“Dataset type(数据集类型)”列表中选择“File(文件)”或“Directory(目录)”。可创建数据集目录,以组织数据定义。默认情况下,将在 /usr/local/oracle/backup/admin/dataset/NEW_CLIENTS目录中创建数据集文件。

5. 在“Name(名称)”字段中,输入该数据集的名称。

6. 更新模板文件中显示的数据集语句,以定义备份数据。有关详细信息,请参阅

“数据集脚本:示例”一节。

7. 单击“Save(保存)”按钮接受输入内容并返回“Datasets(数据集)”页。

如果数据集存在错误,则将在“Status(状态)”部分中显示消息。如同幻灯片中所示,

可检查、编辑、重命名和删除数据集。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 364: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II F-44

版权所有 © 2009,Oracle。保留所有权利。

文件系统文件:备份概念

备份窗口

备份触发器

备份计划

何时可执行作业?

何时应执行作业?

作业是什么?

文件系统文件:备份概念

幻灯片列举了与使用 Oracle Secure Backup 备份文件系统文件相关的一些重要概念:

• 备份窗口定义了 Oracle Secure Backup 执行预定备份作业的时间范围。要运行预定备

份作业,必须至少具有一个备份窗口。但是,备份窗口并不与任何特定的预定备份

作业相关联。始终创建默认备份窗口,并将其确定为每日 00:00 - 24:00。

• 备份触发器是基于日历的时间,特定的预定备份在该时间变为可运行状态。一个特

定的预定备份可与多个备份触发器相关联。

• 基本上,备份计划告知 Oracle Secure Backup 要备份哪些数据以及如何备份这些数据。厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 365: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II F-45

版权所有 © 2009,Oracle。保留所有权利。

Oracle Secure Backup 作业

• 使用数据集备份:

– 数据集作业:每个数据集请求都对应一个作业

– 备份作业:每个数据集作业的每台受影响主机都对应

一个备份作业

• 文件系统文件还原:

– 还原作业:每个所需备份映像都对应一个作业

• RMAN 作业

• 对于每个作业,Oracle Secure Backup 将维护以下

内容:

– 日志

– 运行副本

Oracle Secure Backup 作业

Oracle Secure Backup 为响应您要求其所做的操作而创建作业。它为每个作业分配一个

称为作业标识符的名称,该标识符在管理域的所有作业中均是唯一的。以下几个事件将

导致 Oracle Secure Backup 创建新作业:

• Oracle Secure Backup 为每个预定备份请求创建“数据集作业”,或在每次明确

请求使用数据集进行备份时,创建“数据集作业”。此类作业标识符的示例为admin/233。

• 在数据集作业的预定开始时间时,Oracle Secure Backup 将为其包括的每台主机创建

一个从属“备份作业”。此类作业标识符的示例为 admin/233.1。

• 每次明确请求 Oracle Secure Backup 还原数据时,Oracle Secure Backup 将为每个必须

读取以实现还原的备份映像创建“还原作业”。

• RMAN 将创建具有 Oracle Secure Backup类型,而非 dataset类型的 Oracle Secure Backup 作业。RMAN 作业类型包含数据库名,而不使用数据集名。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 366: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II F-46

Oracle Secure Backup 作业(续)

Oracle Secure Backup 将保留每个作业的日志。该日志说明高级别事件,例如作业的创建、

分派和完成时间等。

Oracle Secure Backup 还维护每个作业的运行副本。该副本说明作业操作的详细信息。

Oracle Secure Backup 在第一次分派该作业时创建此副本,并随着作业进度更新该副本。

一个作业需要操作者帮助时,Oracle Secure Backup 将使用该副本提示需要帮助。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 367: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II F-47

版权所有 © 2009,Oracle。保留所有权利。

创建按需备份请求

创建按需备份请求

要使用 Web 界面创建按需备份请求,请执行下列步骤:

1. 在“Backup(备份)”标签页上,单击“Backup Now(开始备份)”。此时将出现

“Backup Now(开始备份)”页。

2. 要创建新的备份,请单击“Add(添加)”按钮。此时将出现“Options(选项)”页。

3. 从“Datasets(数据集)”框中选择一个或多个数据集。

4. (可选)从“Backup date(备份日期)”和“Backup time(备份时间)”下拉列表中

选择要运行备份的将来日期和时间。如果保留这些字段不变,则 Oracle Secure Backup 将认为备份作业立即“可运行”。

5. (可选)在“Expire after(有效期)”字段中输入到期时间。

6. 从“Backup level(备份级)”下拉列表中选择备份级。选项如下:“full(完全)”

(默认)、1 至 9、incr 和“offsite(非现场)”。

7. 从“Media family(介质族)”下拉列表中,选择该备份的数据应分配到的介质族。

8. (可选)从“Restrictions(限制)”框中选择一个或多个设备限制。

9. (可选)在“Priority(优先级)”字段中更改备份作业的优先级 (1–100)。该值越小,

则调度程序分配给该作业的优先级越高。

10. 单击“OK(确定)”接受所做的选择。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 368: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II F-48

版权所有 © 2009,Oracle。保留所有权利。

发送备份请求至调度程序

发送备份请求至计划程序

要使用 Oracle Secure Backup Web 界面将备份请求发送至调度程序,请执行下列步骤:

1. 在“Backup(备份)”菜单上,单击“Operations(操作)”子菜单中的“Backup Now(开始备份)”。此时将出现“Backup Now(开始备份)”页。

2. 单击“Go(执行)”按钮。Oracle Secure Backup 将“Number/Dataset(编号/数据

集)”中央面板中出现的每个备份请求发送至调度程序。在状态部分中将显示调度

程序确认每个请求的消息。

Oracle Secure Backup 在调度程序接受每个请求后将其删除。因此,在“Go(执行)”

操作完成后,“Number/Dataset(编号/数据集)”中央面板为空。

3. 要查看作业的状态,请访问“Manage(管理)”页,并单击“Jobs(作业)”链接。

在“Jobs(作业)”页上,可按幻灯片所示查看作业输出。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 369: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II F-49

版权所有 © 2009,Oracle。保留所有权利。

创建备份计划

创建备份计划

备份计划告知 Oracle Secure Backup 要备份哪些数据以及如何备份这些数据。要使用 Oracle Secure Backup Web 界面创建计划,请执行下列步骤:

1. 在“Backup(备份)”菜单上,单击“Settings(设置)”子菜单中的“Schedules(计划)”。此时将显示“Schedules(计划)”页。备份计划将显示在中央面板的

“Schedule name(计划名称)”框中。

2. 单击“Add(添加)”按钮添加新计划。此时将显示“New Schedules(新计划)”页。

3. 在“Schedule(计划)”字段输入计划的名称。

4. 在“Priority(优先级)”字段中输入备份作业的优先级编号。

5. 在“Datasets(数据集)”框中,选择备份作业中要包括的一个或多个数据集。

6. (可选)在“Restrictions(限制)”框中选中一项限制。可将预定备份限制到特定

设备上。

7. (可选)在“Comments(注释)”字段中输入要与备份计划一同存储的任意信息。

8. 单击“OK(确定)”保存所做修改,并返回至“Schedules(计划)”页。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 370: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II F-50

版权所有 © 2009,Oracle。保留所有权利。

创建备份触发器

创建备份触发器

触发器是基于日历的时间,预定备份在该时间变为可运行状态。要使用 Oracle Secure Backup Web 界面创建触发器,请执行下列步骤:

1. 转至“Backup Schedules(备份计划)”页,然后选择要添加触发器的计划。单击

“Edit(编辑)”。

2. 在相应的计划页,单击“Triggers(触发器)”。此时将显示“Triggers(触发器)”

页,且“Trigger type(触发器类型)”字段中为默认值“Day(天)”。

3. 使用“Trigger type(触发器类型)”字段,选择要用于定义何时执行备份作业的时

间表达形式。

4. 执行该操作后,请补充完整所需信息,然后单击“Add(添加)”接受输入内容并

添加触发器。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 371: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II F-51

版权所有 © 2009,Oracle。保留所有权利。

查看作业属性和副本

查看作业属性和副本

要使用 Oracle Secure Backup Web 界面查看作业的属性,请执行下列步骤:

1. 在“Manage(管理)”页中,单击“Maintenance(维护)”部分中的“Jobs(作业)”链接。您将转至“Jobs(作业)”页。从“Jobs(作业)”页的中央

面板中选择作业 ID。

2. 单击“Show Properties(显示属性)”按钮。此时将显示“Job Properties(作业

属性)”页,以显示选定作业的特性。

要使用 Oracle Secure Backup Web 界面查看作业的副本,请执行下列步骤:

1. 在“Jobs(作业)”页的中央面板中,从作业管理表中选择作业。

2. 单击“Show Transcripts(显示副本)”。此时将显示“transcript(副本)”页。

3. 向下滚动页面,以查看更多信息。在页面的末尾处,可修改副本查看标准。

4. (可选)单击“Start at line(起始行)”框,并输入希望副本视图消息开始的行号。

5. (可选)选中“Suppress input(隐藏输入)”复选框,以隐藏输入请求。识别出输

入的请求时,Oracle Secure Backup 将提示输入响应。

6. 单击“Apply(应用)”接受所做的更改(如果有),然后重新显示该副本。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 372: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II F-52

版权所有 © 2009,Oracle。保留所有权利。

使用 Oracle Secure Backup还原文件系统文件

还原数据的两种方式

• 基于目录还原:基于目录备份历史记录

• 原始还原:基于内存

使用 Oracle Secure Backup 还原文件系统文件

通过使用 Oracle Secure Backup,可以两种不同的方式还原数据:

• 通过浏览感兴趣的文件系统对象的备份目录。找到其名称并选择了要还原的实例后,

可指示 Oracle Secure Backup 执行还原操作。此种方式称为基于目录还原。

• 通过知道感兴趣的文件系统对象的名称及其存储的辅助存储位置(卷 ID 和归档文件

编号)。此种方式称为原始还原。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 373: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II F-53

版权所有 © 2009,Oracle。保留所有权利。

创建基于目录还原的请求

创建基于目录还原的请求

要浏览备份目录以进行数据还原,请执行下列步骤:

1. 在主页上,单击“Restore(还原)”标签。此时将显示“Restore(还原)”标签页。

2. 在“Restore(还原)”标签页上,单击“Operations(操作)”部分中的“Backup Catalog(备份目录)”链接。

3. 在显示的“Browse Restore Catalog(浏览还原目录)”页上,从“Host Name(主机

名)”列表中选择 初保存数据的客户机。

4. 从“Data Selector(数据选择器)”列表中选择一个或多个数据选择器。

5. 单击“Browse Host(浏览主机)”。此时将显示“Browse Host(浏览主机)”页,

并显示选定的目录。

6. 单击目录名,使其成为当前目录,并查看其内容。可多次重复此操作,以查找要

还原的数据。

7. 选中要还原的每个文件系统文件名旁的复选框。通过执行此操作,以请求 Oracle Secure Backup 还原由数据选择器标识的文件的每个实例。要了解这些实例的标识,

可单击相邻的“Properties(属性)”按钮查看该对象的属性页。

8. 单击“Add(添加)”按钮。此时将显示“New Recovery(新建恢复)”页。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 374: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II F-54

版权所有 © 2009,Oracle。保留所有权利。

创建基于目录还原的请求

创建基于目录还原的请求(续)

9. (可选)为每个要还原的文件或目录输入一个备用路径名。之前选定的每个对象的

原始路径名将显示在该页的左下方部分。在其右侧是一个文本框,可在其中输入备

用路径名。如果保留此文本框为空白,则 Oracle Secure Backup 将使用其原始名称

还原数据。

10. (可选)单击“Device(设备)”选项按钮,并选择用于执行还原的磁带机。默认

情况下,Oracle Secure Backup 将自动选择 适合使用的驱动器。

11. 选中“NDMP incremental restore(NDMP 增量还原)”以指示特定 NAS 数据服务器

应用增量还原规则。通常,恢复是以相加方式进行:将每个从完全或增量备份中还

原的文件和目录添加至其目标目录中。选择 NDMP 增量还原时,实施该功能的 NAS 数据服务器将每个目录还原至还原作业中应用的上次增量备份映像时的状态。还原

上次增量备份时,NAS 数据服务会将该增量备份之前删除的文件删除。

12. 选择“Replace existing files(替换现有文件)”将使用从备份映像还原的文件覆盖

任何现有文件。或者,选择“Keep existing files(保留现有文件)”将保留所有现

有文件,而不使用从备份映像还原的文件覆盖现有文件。

13. 单击“OK(确定)”。Oracle Secure Backup 将显示“Browse Host(浏览主机)”

页。“Restore items(还原项)”列表中将显示刚提交的还原请求。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 375: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II F-55

版权所有 © 2009,Oracle。保留所有权利。

将基于目录还原的请求发送至调度程序

将基于目录还原的请求发送至调度程序

要使用 Oracle Secure Backup Web 界面将基于目录还原的请求发送至调度程序,请执行

下列步骤:

1. 在“Browse Restore Catalog(浏览还原目录)”页中,从“Host Name(主机名)”

列表中选择任意主机。

2. 单击“Browse Host(浏览主机)”。Oracle Secure Backup 将显示“Browse Host(浏览主机)”页。

3. 单击“Go(执行)”。Web 工具将“Restore items(还原项)”列表中显示的每个

还原请求发送至调度程序。此时将在状态区域显示调度程序确认每个请求的消息。

例如,该消息可能为 2 catalog restore request items submitted; job id is admin/2。Oracle Secure Backup 在调度程序接受每个还原请求后,

将该请求删除。因此,在“Go(执行)”操作完成后,“Restore items(还原项)”

列表框为空。

4. 要查看作业的状态,请转至“Manage(管理)”页,并单击“Jobs(作业)”链接。

在“Jobs(作业)”页中,选择“Types(类型)”字段中的“recover(恢复)”,

然后单击“Apply(应用)”。可以看到作业的输出。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 376: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II F-56

版权所有 © 2009,Oracle。保留所有权利。

列出客户机的所有备份

列出客户机的所有备份

要使用 Oracle Secure Backup Web 界面列出一台客户机的所有备份,请执行下列步骤:

1. 在“Browse Restore Catalog(浏览还原目录)”页中,从“Host Name(主机名)”

列表中选择任意主机。

2. 单击“Browse Host(浏览主机)”。Oracle Secure Backup 将显示“Browse Host(浏览主机)”页。

3. 单击“List Host Backups(列出主机备份)”按钮。此时将显示属性页。查看完该

窗口后,请单击“Close(关闭)”按钮。厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 377: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II F-57

版权所有 © 2009,Oracle。保留所有权利。

小结

在本课中,您应该已经学会:

• 描述 Oracle Secure Backup 体系结构及其对环境的

好处

• 讨论基本的 Oracle Secure Backup 介质管理概念

• 安装和配置 Oracle Secure Backup • 使用 RMAN 和 Oracle Secure Backup 来备份和还原

Oracle 数据库

• 使用 Oracle Secure Backup 备份和还原文件系统中

的文件

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 378: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II F-58

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 379: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

版权所有 © 2009,Oracle。保留所有权利。

其它主题

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 380: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II G-2

版权所有 © 2009,Oracle。保留所有权利。

附录概览

本附录有助于您执行下列操作:

• 对超大型数据库 (VLDB) 使用大文件表空间

• 描述大文件表空间的行 ID • 对 VLDB 使用临时表空间组 (TTG)

BFTROWIDTTG

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 381: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II G-3

版权所有 © 2009,Oracle。保留所有权利。

大文件表空间:概览

• 大文件表空间包含单一文件。

• 最大文件的大小在 8 TB 到 128 TB 之间。

• 在逻辑上表空间等同于数据文件。

数据库

表空间

SMALLFILE数据文件

BIGFILE 数据文件

大文件表空间:概览

大文件表空间 (BFT) 是一个包含超大单一文件的表空间。寻址方案允许单个数据文件中最

多有四十亿个块,而且根据 Oracle 块大小的不同,该文件的大小最大可在 8 TB-128 TB 之间。

为了区分 BFT 和包含多个相对较小文件的传统表空间,将传统表空间称为“小文件”表

空间。Oracle 数据库可以同时包含大文件表空间和小文件表空间。

BFT 概念消除了向表空间添加新数据文件的需要。此概念简化了磁盘空间的手动或自动管

理(使用 Oracle Managed Files (OMF) 或自动存储管理 (ASM)),而且提供了数据文件的

透明性。幻灯片中的图形显示了 Oracle 数据库空间管理体系结构的实体关系图。表空间

和数据文件之间一对多的关系使体系结构复杂化,并且一个表空间与数百个数据文件相关

联时,将在管理磁盘空间利用情况方面造成困难。

BFT 概念使表空间的概念在逻辑上等同于数据文件。通常对数据文件执行的所有操作均可

对表空间执行。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 382: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II G-4

版权所有 © 2009,Oracle。保留所有权利。

大文件表空间的优点

• 显著增加了存储容量

• 通过将表空间作为磁盘空间管理的主要单位,简化了

大型数据库的数据文件管理

BFT 1 …

8 EB40 亿个块

一对一 映射

BFT n

大文件表空间的优点

使用 BFT 的目的是为了显著增加 Oracle 数据库的存储容量,同时,简化大型数据库中数

据文件的管理。此功能可使 Oracle 数据库最多包含 8 exabytes (8,000,000 TB) 的数据。这

样,您可将数据存储于更大的文件中,并且通过这样做可以减少大型数据库中的文件数。

通过提供数据文件的透明性,并将表空间作为磁盘空间管理、备份和恢复的主要单位,

还可以简化数据库管理。使用以下公式计算 Oracle 数据库中可存储的最大数据量“M”:

M = D * F * B,此处“D”是数据库中的最大数据文件数,“F”是每个数据文件的

最大块数,“B”是最大块大小。

可处理更大型文件的 64 位操作系统的使用,以及在近五年内使硬盘驱动器发展到 500-GB 的技术都是使用 BFT 的充分理由。

注:1 PB = 1,024 TB;1 EB = 1,024 PB = 1,048,576 TB = 260 字节

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 383: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II G-5

版权所有 © 2009,Oracle。保留所有权利。

大文件表空间:使用模型

• 仅使用自动段空间管理的本地管理的表空间支持 BFT。• 通过逻辑卷管理器或自动存储管理来使用 BFT。• OMF 提供了完全的数据文件透明性。

800,00016 KB400,0008 KB200,0004 KB100,0002 KB

建议的最大区数数据库块大小

大文件表空间:使用模型

仅带有位图式段的本地管理的表空间,以及本地管理的 UNDO和 TEMPORARY表空间支持

BFT。(这主要是由于字典管理的表空间无法对涉及高空间管理活动及本地管理的表空间

的操作寻址。)通过逻辑卷管理器或自动存储管理使用 BFT,该自动存储管理支持条带化、

镜像和动态可扩展逻辑卷。由于并行执行的负面问题,因此应该避免在不支持条带化的系

统中创建 BFT。

由于具有较高的数据文件透明度,因此通过 OMF 使用 BFT 可提供更多好处。使用大文件

表空间时,应当在创建此类表空间之前考虑区大小。虽然默认分配策略是

AUTOALLOCATE,但是当文件有兆兆字节大小时,您可能需要将该默认值更改为具有大

型区的 UNIFORM策略。否则,AUTOALLOCATE可能是最佳选择。本幻灯片中的表根据

块大小给出了有关最大区数的建议。

这些数字不是硬限制,但是如果创建的区太多,则可能在高并发情况下以及涉及高空间管

理活动的 DDL 操作过程中造成性能下降。

注:在不支持大型文件的平台上使用 BFT 会显著限制表空间的容量。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 384: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II G-6

版权所有 © 2009,Oracle。保留所有权利。

创建大文件表空间

创建大文件表空间

可以使用数据库控制来创建大文件表空间。在 Oracle Enterprise Manager 中,选择

“Administration > Tablespaces(管理 > 表空间)”。单击“Create(创建)”。在

“Create Tablespace(创建表空间)”页中,指定表空间名,并在“Datafiles(数据文件)”

部分中选中“Use bigfile tablespace(使用大文件表空间)”选项。

注:也可以通过查看特定表空间的对应“Edit Tablespace(编辑表空间)”页,来确定

该表空间是否为大文件表空间。在“General(一般信息)”标签页中,具有“Bigfile tablespace(大文件表空间)”标志。厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 385: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II G-7

版权所有 © 2009,Oracle。保留所有权利。

SQL 语句子句

表空间

小文件 大文件 数据文件数据文件

K | M | G | T

数据库

SMALLFILE | BIGFILE

SQL 语句子句

人们希望在大多数情况下,不必明确指定表空间类型,系统将使用默认设置。默认表空间

类型是存储于数据字典中的永久性数据库属性。可以使用 CREATE DATABASE命令对该

类型进行设置,并使用 ALTER DATABASE命令对其进行更改。如果未使用其中任一命令

设置该参数,则 Oracle Database 10g 的默认表空间类型为 SMALLFILE。在默认表空间类

型设置被明确覆盖前,该设置将应用于创建的所有表空间。创建特定表空间时,将使用两

个关键字 BIGFILE和 SMALLFILE来覆盖默认表空间类型。这些关键字可以在创建表空

间的所有命令的 DATAFILE子句中使用。

在 SIZE、MAXSIZE和 AUTOEXTEND子句中,可以指定大小(千字节“K”、兆字节

“M”、千兆字节“G”和兆兆字节“T”)。厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 386: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II G-8

版权所有 © 2009,Oracle。保留所有权利。

CREATE DATABASESET DEFAULT BIGFILE TABLESPACEDATAFILE '/u0/data/system.dbf' SIZE 200MSYSAUX DATAFILE '/u0/data/sysaux.dbf' SIZE 300MSMALLFILE DEFAULT TEMPORARY TABLESPACE stemp_tbsTEMPFILE '/u3/data/stemp_tbs1.dbf' SIZE 60MSMALLFILE UNDO TABLESPACE sundo_tbs DATAFILE '/u2/data/sundo_tbs1.dbf' SIZE 100M;

ALTER DATABASE SET DEFAULT BIGFILE TABLESPACE;

CREATE BIGFILE UNDO TABLESPACE bundo_tbsDATAFILE '/u1/data/bundo_tbs.dbf' SIZE 1G;

ALTER TABLESPACE users RESIZE 2G;

ALTER TABLESPACE users AUTOEXTEND ON ;

BFT 和 SQL 语句:示例

1

2

3

4

5

BFT 和 SQL 语句:示例

• SYSTEM和 SYSAUX表空间的表空间类型始终与创建数据库时的默认表空间类型相

同。第一个语句创建一个新的数据库,并将默认表空间类型设置为 BIGFILE。然后

该语句使用 SMALLFILE关键字覆盖 UNDO和 DEFAULT TEMPORARY表空间的数据

库默认设置。

• 第二个语句用于动态更改默认表空间类型。语句执行后,新的设置立即生效。该设

置定义正在创建的新表空间的默认类型,但是并不影响现有表空间。在示例中,新

的默认值设置为 BIGFILE。

• 第三个语句将 UNDO表空间创建为 BIGFILE表空间。

• 可以使用第四个语句调整 BIGFILE USERS表空间内包含的唯一数据文件的大小。

• 最后一个语句可以用来在表空间级别启用自动文件扩展。此操作仅适用于 BIGFILE表空间。

注:有关语法的详细信息,请参阅《Oracle 数据库 SQL 参考》指南。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 387: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II G-9

版权所有 © 2009,Oracle。保留所有权利。

支持 VLDB 的数据字典增加

SELECT property_valueFROM database_propertiesWHERE property_name='DEFAULT_TBS_TYPE';

SELECT tablespace_name, bigfileFROM DBA_TABLESPACES;

SELECT name, bigfile FROM V$TABLESPACE;

支持 VLDB 的数据字典增加

• DATABASE_PROPERTIES是包含不同数据库属性的字典视图。向该表添加新行,

以指定数据库的默认表空间类型:BIGFILE或 SMALLFILE。

• DBA_TABLESPACES显示有关数据库中所有表空间的信息。向该视图添加新列,

以指明特定表空间是大文件 (YES) 还是小文件 (NO)。还要将同一列添加到

USER_TABLESPACES。

• V$TABLESPACE包含来自控制文件的有关数据库中所有表空间的信息。向该视图

添加新列,以指明特定表空间是大文件 (YES) 还是小文件 (NO)。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 388: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II G-10

版权所有 © 2009,Oracle。保留所有权利。

扩展的 ROWID 格式和 BFT BFT > ROWID

TTG

OOOOOO FFF BBBBBB RRR

小文件表空间 大文件表空间

OOOOOO LLL LLLLLL RRR

数据对象编号

相关文件编号

数据块编号

行号

数据对象编号

编码块编号

行号

DBMS_ROWID.ROWID_BLOCK_NUMBER

扩展的 ROWID 格式和 BFT 对于以前的版本和小文件表空间,扩展 ROWID格式的说明具有一个分为四段的格式,

OOOOOOFFFBBBBBBRRR:

• OOOOOO是确定数据库段的数据对象编号。

• FFF是数据文件的表空间相关数据文件编号,该数据文件包含行。

• BBBBBB是包含行的数据块。在小文件表空间中,块编号与其数据文件有关,而与

其表空间无关。因此,具有相同块编号的两行可以驻留在同一个表空间的两个不同

数据文件中。

• RRR是确定特定块内的行的槽号。

在大文件表空间中,只有一个文件终具有等于 1024 的相关文件编号。因此,不需要在行

ID 中包含文件编号,并且使用 FFF和 BBBBBB两段来表示块编号。这两个字段连接表示

“编码块编号”,与传统小文件表空间的行 ID 相比,其可能更大一些。对于 BFT,块编

号与其表空间相关,而且在表空间内是唯一的。

使用 BFT 时,唯一支持的获得扩展行 ID 组件的方式是使用 DBMS_ROWID程序包。

建议不要使用其它任何提取 ROWID组件的方式。这表明在以前的版本中,未使用

DBMS_ROWID程序包提取 ROWID组件的用户应用程序不能识别并正确解释 BFT 中的

行 ID。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 389: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II G-11

版权所有 © 2009,Oracle。保留所有权利。

VLDB 支持:DBMS_ROWID程序包

SELECT DBMS_ROWID.ROWID_RELATIVE_FNO(ROWID,'BIGFILE') FROM employees;

ROWID_BLOCK_NUMBER ROWID_RELATIVE_FNO

ROWID_INFO

TS_TYPE_IN

VLDB 支持:DBMS_ROWID 程序包

使用 DBMS_ROWID程序包,可以创建行 ID 并获得现有行 ID 的组件。因为行 ID 对于大

文件和小文件表空间有不同的格式,所以在解释行 ID 时,考虑到表空间的类型,该程序

包的某些功能和过程进行了更改。TS_TYPE_IN输入参数描述特定行所属的表空间类型。

此参数的允许值是 BIGFILE和 SMALLFILE。

如幻灯片中所示,此参数将添加到下列过程中:ROWID_INFO、ROWID_BLOCK_NUMBER和 ROWID_RELATIVE_FNO。

注:构建与 BFT 行对应的外部或内部 ROWID字符串的唯一受支持的方式是使用

ROWID_CREATE函数,同时将 RELATIVE_FNO参数设置为 1024。厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 390: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II G-12

版权所有 © 2009,Oracle。保留所有权利。

临时表空间组 (TTG):概览

• 对多个临时表空间分组

• 特性:

– 至少有一个临时表空间

– 与表空间相同的名称空间

– 第一次分配时隐含创建

– 没有明确删除

默认表空间示例 …

默认临时表空间组 TEMP

表空间 TEMP1 表空间 TEMPn

BFT ROWID

> TTG

临时表空间组 (TTG):概览

可将临时表空间组视为临时表空间列表的快捷方式。临时表空间组仅由临时表空间组成,

并具有下列特性:

• 至少包含一个临时表空间。没有明确限制一个组中可包含多少个表空间。

• 具有与表空间相同的名称空间。一个表空间和一个临时表空间组不能具有相同的

名称。

• 只要临时表空间名可以显示(例如,为数据库分配默认临时表空间,或为用户分配

临时表空间时),则临时表空间组名就可以显示。

• 没有明确地创建临时表空间组。将第一个临时表空间分配到临时表空间组时,会隐

含创建该组,并且将最后一个临时表空间从组中删除时,会删除该组。厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 391: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II G-13

版权所有 © 2009,Oracle。保留所有权利。

临时表空间组:优点

允许以下情况使用多个临时表空间:

• 多个会话中的同一个用户

• 一个并行操作中的从属进程

• 数据库层的配置

临时表空间组 TEMP

表空间 TEMP1 表空间 TEMP2 表空间 TEMP3

串行 并行HRHR

临时表空间组:优点

该功能具有以下优点:

• 允许一个特定用户同时在不同的会话中使用多个临时表空间

• 允许单一并行操作中的从属进程使用多个临时表空间

• 允许在数据库层指定多个默认临时表空间

因此,现在可以定义多个默认临时表空间,而且单个 SQL 操作可以使用多个临时表空间

进行排序。这样可防止大型表空间操作时发生临时空间不足的情况。这尤其与大文件表

空间的使用相关。厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 392: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II G-14

版权所有 © 2009,Oracle。保留所有权利。

创建和维护临时表空间组

创建和维护临时表空间组

可以使用数据库控制来创建和维护临时表空间组。选择“Administration > TemporaryTablespace Groups(管理 > 临时表空间组)”。此时显示“Temporary Tablespace Groups(临时表空间组)”页,在该页可查看现有表空间组的列表。在该页中,可以查看和编辑

现有表空间组。

单击“Create(创建)”按钮后,将显示“Create Temporary Tablespace Group(创建临时

表空间组)”页。输入名称并指定是否要将该组设置为默认临时组。可以通过选中“Set as default temporary group(设置为默认临时组)”选项来执行此操作。选中该选项后,需

要将现有临时表空间添加到该组中。单击“Add/Remove(添加/删除)”按钮,然后选择

属于该组的临时表空间。然后,单击“OK(确定)”按钮创建 TTG。

编辑 TTG 时,也使用“Add/Remove(添加/删除)”按钮,然后单击“Apply(应用)”。

注:如果从临时表空间组中将所有临时表空间删除,则也将隐含删除该组。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 393: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II G-15

版权所有 © 2009,Oracle。保留所有权利。

临时表空间组:SQL 示例

CREATE TEMPORARY TABLESPACE temp1 TEMPFILE 'tmp1.f'SIZE 100M TABLESPACE GROUP group1;

CREATE TEMPORARY TABLESPACE temp2 TEMPFILE 'tmp2.f'SIZE 200M TABLESPACE GROUP group2;

CREATE TEMPORARY TABLESPACE temp3 TEMPFILE 'tmp3.f'SIZE 50M TABLESPACE GROUP '';

1

2

3

临时表空间组:SQL 示例

本幻灯片显示的第一个和第二个 SQL 语句隐含创建了两个临时表空间组(GROUP1和

GROUP2),其中每个组均包含一个临时表空间:分别为 TEMP1和 TEMP2。第三个语句创建了临时表空间 TEMP3。该表空间不属于任何组。

注:使用 ''表明缺组。这样将完全等同于以下语句:

CREATE TEMPORARY TABLESPACE temp3 TEMPFILE 'tmp3.f' SIZE 50M;

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 394: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II G-16

版权所有 © 2009,Oracle。保留所有权利。

ALTER TABLESPACE temp3 TABLESPACE GROUP group2;

ALTER TABLESPACE temp2 TABLESPACE GROUP '';

ALTER TABLESPACE temp1 TABLESPACE GROUP group2;

ALTER DATABASE DEFAULT TEMPORARY TABLESPACE group2;

CREATE USER hr IDENTIFIED BY hr DEFAULT TABLESPACE TS1 TEMPORARY TABLESPACE group2;

ALTER USER hr TEMPORARY TABLESPACE group2;

临时表空间组:SQL 示例

1

2

3

4

5

6

临时表空间组:SQL 示例(续)

这些示例可让您了解临时表空间组的各种用途。下面按顺序对其进行说明:

• 第一个语句将 TEMP3表空间添加到 GROUP2组,该组现在有 TEMP2(来自

上一示例)和 TEMP3表空间。如果 GROUP2不存在,则系统将创建该组。

• 第二个语句从 GROUP2组中删除 TEMP2表空间,该组现在仅包含 TEMP3表空间。

• 第三个语句将 TEMP1表空间从 GROUP1移动到 GROUP2。因为 TEMP1是 GROUP1中唯一的表空间,所以将隐含删除该组。

• 第四个语句将 GROUP2表空间组中的所有表空间设置为数据库的默认临时表空间。

不具有指定临时表空间的所有数据库用户均可以在 TEMP1或 TEMP3中创建临时段。

• 第五个语句使用临时表空间组 GROUP2创建 HR用户。

• 最后一个语句将 HR用户变更为使用 GROUP2表空间组。

注:一个作为默认临时表空间列出的表空间,其含义是指该表空间必须先从默认临时表空

间的列表中排除后,才能被删除。将此概念扩展,如果将表空间组指定为数据库的默认临

时表空间,则不能删除该组中的任何一个表空间。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 395: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II G-17

版权所有 © 2009,Oracle。保留所有权利。

小结

在本附录中,您应该已经学会:

• 对超大型数据库 (VLDB) 使用大文件表空间

• 描述大文件表空间的行 ID • 对 VLDB 使用临时表空间组 (TTG)

BFTROWIDTTG

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 396: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 397: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

版权所有 © 2009,Oracle。保留所有权利。

下一步:继续培训

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 398: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II H-2

版权所有 © 2009,Oracle。保留所有权利。

您想从本课堂学到什么

“要想在技术行业保持竞争优势,就要终身学习。始终不断

地寻求做事的更好方法和新的技术。我们的行业不会奖励

那些不求进步的人。”

–John Hall,高级副总裁,Oracle University

下面是一些帮助您继续培训的资源。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 399: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II H-3

版权所有 © 2009,Oracle。保留所有权利。

继续培训资源

介绍有关管理 Oracle Database 10g的更多内容的资源包括:

• Oracle University Web 站点

• Oracle University 知识中心

• Oracle 技术网络:

– Oracle 示例

– Oracle 杂志

• 技术支持:Oracle MetaLink

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 400: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II H-4

版权所有 © 2009,Oracle。保留所有权利。

Oracle University

从 Oracle 学习 Oracle!没有人比 Oracle University 更了解 Oracle 技术。

• 世界范围培训服务

• 始终如一地高客户满意度

• 用最符合需要的形式学习:

– 教师课堂引导培训

– 实时 Web 课堂

– 自学 CD-ROM

http:// www.oracle.com/education

Oracle University Oracle University 是世界上最大的企业教育机构,在全球设有培训中心,并具有所在行业

的最高客户满意度评价之一(超过 95%)。Oracle University 教师是 Oracle 技术方面的

专家,可以帮助您最有效的使用软件。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 401: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II H-5

版权所有 © 2009,Oracle。保留所有权利。

继续培训

• 网格技术专业课程

– Oracle Enterprise Manager 10g网格控制

– Oracle Database 10g:Real Application Clusters – Oracle Database 10g:实施流

– Oracle Database 10g:Data Guard 管理

• 其它专业课程

– Oracle Database 10g:性能优化

– Oracle Database 10g:安全性

– Oracle Database 10g:安全性

– Oracle Database 10g:实施和管理数据仓库

– Oracle Spatial 10g:系统基础

继续培训

完成“Oracle Database 10g:数据库管理-课堂练习 II”课程后,可以继续培训专业课程。

请参阅 Oracle University Web 站点上所有课程的最新列表。

其它专业课程包括:

• Oracle Spatial 10g:高级

• Oracle HTML DB 2.0:开发应用程序

• Oracle Database 10g:使用 PL/SQL 开发 XML 应用程序

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 402: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II H-6

版权所有 © 2009,Oracle。保留所有权利。

Oracle University 知识中心

通过知识中心扩展您的学习,在其中可访问数千小时的培训,

该培训包括了从基础 SQL 到高级数据库主题的所有内容。

相关的主题包括:

• Oracle Database 10g:利用调度程序管理作业

• Oracle Database 10g:性能最大化 - 常规增强功能

• OCA 和 OCP 准备材料

http://ilearning.oracle.com

Oracle University 知识中心

Oracle University 知识中心包含有关各种主题的数千小时内容。可通过 Web 全天候随时访

问这些内容,这是对某些有一段时间未使用的知识进行记忆刷新的好方法,或者也是了解

一些新概念的好方法。

Oracle University 知识中心的其它内容正在不断开发中,因此请确保经常核对以查看新增

内容。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 403: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II H-7

版权所有 © 2009,Oracle。保留所有权利。

Oracle 技术网络

Oracle 技术网络是有关 Oracle 核心软件产品信息的免费

资源,其中包括数据库、应用程序服务器、Collaboration Suite 和开发工具。您可以访问:

• 技术中心

• 讨论论坛

• 软件下载

• 联机文档

• Oracle 示例

• 代码示例

以及其它更多项!

http://www.oracle.com/technology

Oracle 技术网络

Oracle 技术网络 (OTN) 维护有关 Oracle 技术和产品方面的最新新闻。此外,OTN 还提供

端对端论坛、白皮书、安全公告和为 Oracle 专业人员提供的其它重要信息。

除了可以最有效使用 Oracle 软件的提示、技巧和技术外,还可以从 OTN 下载该软件。

请注意:所有软件下载都是免费的,而且每个软件均带有开发许可证,仅允许您在开发

和制造应用产品的原型时,使用该产品的完整版本。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 404: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II H-8

版权所有 © 2009,Oracle。保留所有权利。

Oracle 技术培训

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 405: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II H-9

版权所有 © 2009,Oracle。保留所有权利。

Oracle 示例

• 什么是 OBE?实习和分步指导集

• 从哪里可以找到这些内容?

http://www.oracle.com//technology/obe• 有哪些内容?

100 多个

数据库 OBE

Oracle 示例

Oracle 示例 (OBE) 系列提供有关如何使用 Oracle 产品的各种新功能的实习和分步指导。

OBE 帮助减少学习新产品功能所花费的时间,并增强用户对在其环境中如何实施该功能

的了解。目前,OBE 适用于 Oracle 数据库、Oracle 应用程序服务器和 Oracle Collaboration Suite。可通过 http://www.oracle.com/technology/obe 访问 OBE。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 406: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II H-10

版权所有 © 2009,Oracle。保留所有权利。

Oracle 杂志

• 免费订阅

• Oracle 杂志存档

http://www.oracle.com/technology/oramag/index.html

Oracle 杂志

Oracle 杂志是通过 OTN 访问的多种不同资源类型中的一种。还可以通过邮件接收免费

订阅。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 407: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II H-11

版权所有 © 2009,Oracle。保留所有权利。

Oracle 应用产品社区

Oracle 技术网络是为 Oracle 应用产品用户和实施人员提供

的资源。您可以访问:

• 讨论论坛

• 用户组

• 联机聊天

• 说明

• 培训

• 升级信息

以及其它更多项!

http://www.oracle.com/technology/community/apps/index.html

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 408: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II H-12

版权所有 © 2009,Oracle。保留所有权利。

技术支持:Oracle MetaLink

对 Oracle MetaLink 的访问费用是年度支持维护费用的

一部分。除了可用的最新技术信息外,MetaLink 还提供

下列访问权限:

• 服务请求 (SR) • 认证条件矩阵

• Oracle 专家监控的技术论坛

• 软件补丁程序

• 错误报告

http://metalink.oracle.com

Oracle MetaLink Oracle MetaLink 是您访问 Oracle 支持资源的网关。在这里,可以找到 Oracle 管理员和

开发员所遇到的最常见问题的解决方法,以及解决许多这类问题的资源。

就像 Oracle 技术网络一样,MetaLink 包括了有关影响 Oracle 专业人员的问题的最新标题。

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 409: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II H-13

版权所有 © 2009,Oracle。保留所有权利。

谢谢

我们希望您在 Oracle University 学习愉快。欢迎在我们

如何提高以更好地满足您的需要方面提出反馈:

• 课程结束评估

• Oracle University 客户满意度办公室

• Oracle Education Services 希望能很快在课堂上再见到您。

谢谢

Oracle University 的使命是增加对 Oracle 技术的使用。我们的目标是和您成为合作伙伴,

提供适当、及时以及与您的需要相关的信息。

请您花费一分钟的时间完成课程结束评估,以便我们知道如何为您提供更好的服务。

在美国,您可以随时给我们的客户满意度办公室发邮件:[email protected]

如果有关于继续 Oracle 培训的问题,需要帮助查找课程,或想要在公司安排现场培训,

请联系 Oracle Education Services 以寻求帮助。在美国,请拨打 800.529.0165。有关美国

以外的联系号码,请访问以下 Web 站点:http://www.oracle.com/education/index.html?contact.html

再次对您表示感谢并希望在其它课堂见到您!

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 410: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 411: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

索引

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 412: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 索引-2

AADDM 9-21, 9-24, 9-28, 9-29, 9-40, 13-27archivelog 2-3, 2-4, 2-17, 2-19, 2-37, 3-9, 3-10, 3-14, 3-15, 3-19, 3-21, 3-29, 5-5, 5-22,

6-17, 6-18ARCn 1-11, 1-13, 1-19, 4-8, 8-13ASM 实例 12-5, 12-6, 12-7, 12-8, 12-9, 12-11, 12-12, 12-13, 12-14, 12-16, 12-17,

12-18, 12-25, 12-29, 12-36ASMM 8-14, 8-16, 8-17, 8-18, 8-19, 8-20, 8-25, 8-31, 8-38ASSM 7-11, 11-14AWR 9-2, 9-10, 9-17, 9-21, 9-23, 9-24, 9-26, 9-28, 9-37, 10-22, 11-3, 11-9, 11-16

BBMR 7-21, 7-22, 7-23, 7-25保留策略 2-14, 2-17, 2-23, 2-28, 2-32, 2-33, 2-40, 3-31, 3-32, 3-33, 3-34备份集 2-9, 2-29, 3-7, 3-9, 3-12, 3-13, 3-14, 3-16, 3-17, 3-18, 3-19, 3-20, 3-23, 3-33,

3-34, 3-35, 7-22, 15-15, F-30备份片段 2-37, 3-18, F-16, F-26, F-29编码字符集 16-4, 16-6表空间 1-16, 1-17, 1-18, 1-19, 2-7, 2-10, 2-22, 2-25, 2-28, 3-7, 3-9, 3-10, 3-29, 4-2, 4-4,

4-5, 4-6, 4-19, 5-2, 5-20, 5-33, 5-34, 5-35, 5-36, 5-37, 6-6, 6-8, 6-9, 6-10, 6-11, 6-12, 6-23, 7-12, 7-18, 7-23, 8-4, 8-7, 8-17, 9-7, 9-21, 9-35, 10-5, 10-21, 10-24, 11-2, 11-3, 11-4, 11-6, 11-9, 11-10, 11-11, 11-15, 11-16, 11-26, 11-27, 11-28, 11-30, 11-34, 12-20, 12-32, 12-34, 12-36, 17-11, F-36, G-2, G-3, G-4, G-5, G-6, G-7, G-8, G-9, G-10, G-11, G-12, G-13, G-14, G-15, G-16, G-17

并行 2-5, 2-35, 3-11, 3-12, 5-20, 10-5, 12-9

C程序包 3-3, 3-4, 7-16, 7-17, 8-36, 9-8, 9-9, 9-16, 9-23, 10-24, 11-10, 11-30, 13-7, 13-11,

14-2, 14-3, 14-7, 14-11, 14-19, 14-28, 15-23, 16-18, F-21, G-10, G-11 磁盘组 12-4, 12-5, 12-11, 12-12, 12-15, 12-17, 12-20, 12-21, 12-22, 12-23, 12-24,

12-25, 12-26, 12-27, 12-28, 12-29, 12-31, 12-32, 12-33, 12-34, 12-35, 12-36重做 1-9, 1-11, 1-12, 1-13, 1-14, 1-16, 1-19, 2-4, 2-5, 2-6, 2-7, 2-20, 2-22, 3-7, 3-9,

3-10, 3-12, 3-14, 3-19, 3-20, 3-26, 3-33, 3-40, 4-2, 4-4, 4-6, 4-7, 4-8, 4-9, 4-10, 4-11, 4-12, 4-14, 4-18, 4-19, 5-4, 5-5, 5-8, 5-9, 5-10, 5-11, 5-12, 5-14, 5-15, 5-17, 5-18, 5-20, 5-22, 5-23, 5-24, 5-27, 5-28, 5-31, 5-32, 5-33, 6-15, 6-18, 6-19, 6-26, 7-8, 7-21, 8-4, 8-11, 8-12, 8-13, 8-19, 9-12, 9-37, 9-38, 11-33, 12-34, 17-4, 17-11, F-41

重做日志缓冲区 1-9, 8-4, 8-13, 9-37重做日志组 4-7, 4-8, 4-12, 17-11

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 413: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 索引-3

DDBV 7-8, 7-9DBVERIFY 7-2, 7-5, 7-8, 7-9, 7-10, 7-27DML 6-13, 6-23, 8-13, 10-5, 10-9, 10-11, 10-14, 10-23, 10-24, 11-12, 11-13, 11-22,

13-5, 15-10, 15-22, 16-27大型池 1-9, 1-10, 8-4, 8-5, 8-10, 8-11, 8-12, 8-14, 8-15, 8-19, 8-20, 8-27, 9-33, E-7, E-9,

E-10, E-18等待事件 9-10调度程序 1-4, 2-5, 9-8, 9-10, 9-36, 13-9, 14-1, 14-2, 14-3, 14-5, 14-6, 14-10, 14-12,

14-13, 14-14, 14-15, 14-16, 14-17, 14-22, 14-23, 14-24, 14-27, 14-29, 14-31, 14-32, F-6, F-37, F-47, F-48, F-55, H-6,

度量 2-16, 9-13

FFGAC 15-19, 15-20方案 1-4, 1-5, 1-6, 1-17, 1-18, 1-19, 2-7, 2-32, 4-16, 6-7, 7-11, 9-9, 9-21, 9-24, 9-30,

9-32, 9-35, 10-1, 10-2, 10-20, 10-22, 10-24, 10-25, 10-29, 10-30, 11-3, 11-15, 11-25, 14-6, 14-11, 14-19, 14-23, 14-28, 15-10

分区 1-18, 7-11, 10-2, 10-3, 10-4, 10-5, 10-6, 10-7, 10-8, 10-9, 10-10, 10-13, 10-20, 11-5, 11-20

服务器会话 2-6, 3-11, 3-12, 3-37, E-17

G概要文件 E-9更改跟踪文件 3-26, 3-27工作量资料档案库 9-2, 9-21, 9-22, 9-39, 10-22, 11-3, 11-9工作区 1-18, 8-28, 8-29, 8-30, 12-21共享池 1-9, 1-10, 1-13, 8-4, 8-5, 8-10, 8-11, 8-12, 8-13, 8-14, 8-15, 8-19, 8-20, 8-21,

8-22, 8-25, 8-26, 8-27, 8-31, 8-35, E-7, E-10, E-18共享服务器 8-4, 8-5, 8-10, 8-11, 8-27, 8-28, E-6, E-7, E-8, E-9, E-10, E-11, E-12, E-14,

E-15, E-16, E-17, E-18, E-19, E-20, E-22, E-23管道 3-3, 3-4归档 1-13, 1-14, 2-17, 2-20, 2-21, 2-22, 3-7, 3-12, 3-19, 5-11, 5-12, 5-15, 5-16, 5-18,

5-27, 5-28, 6-18, 7-22, 12-4, 12-10, 17-6, F-29, F-30, F-52国家语言支持 14-11, 16-14过程 1-13, 2-13, 5-30, 6-4,7-16, 7-17, 7-18, 7-19, 7-20, 8-36, 9-3, 9-5, 9-8, 9-21, 9-22,

9-23, 9-27, 11-25, 11-26, 11-28, 11-31, 11-32, 12-34, 13-10, 13-11, 13-21, 13-22, 14-3, 14-5, 14-6, 14-7, 14-8, 14-11, 14-12, 14-13, 14-14, 14-15, 14-16, 14-18, 14-19, 14-20, 14-25, 14-28, 16-18, 16-27

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 414: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 索引-4

H还原 1-5, 1-18, 4-8, 5-8, 5-9, 5-30, 6-2, 6-3, 6-4, 6-14, 6-23, 6-25, 6-29, 7-15, 9-24,

11-5,11-11,13-5,13-12还原数据 5-9, 6-3还原指导 9-24缓冲区高速缓存 1-9, 1-10, 1-11, 1-12, 1-13, 1-19, 6-15, 8-4, 8-5, 8-6, 8-7, 8-8, 8-14,

8-15, 8-19, 8-20, 8-22, 8-31, 8-33, 8-34, 9-12, 9-24, E-5恢复目录 2-2, 2-7, 2-8, 2-9, 2-10, 2-22, 2-24, 2-25, 2-26, 2-27, 2-28, 2-31, 2-39, 3-7,

3-10, 3-19, 3-29, 3-33, 3-37, 5-29, 5-30回收站 6-2, 6-3, 6-4, 6-5, 6-6, 6-7, 6-8, 6-9, 6-10, 6-11, 6-12, 6-13, 6-14, 6-16, 6-25,

6-28, 6-29会话内存 8-5, 8-11, 8-27, 8-28, E-18活动会话池 13-5, 13-16, 13-17, 13-29

IIOT 10-2, 10-3, 10-4, 10-9, 10-10, 10-12, 10-13, 10-20, 11-13, 11-14, 11-20iSQL*Plus 16-18, 16-33

J监听程序 E-3, E-4, E-5, E-7, E-18, E-19, E-20介质管理库 2-2, 2-7, 2-11, 2-12, 2-29

K可恢复的空间分配 11-2, 11-21, 11-22, 11-23, 11-34控制文件 1-13, 2-6, 2-7, 2-8, 2-9, 2-20, 2-21, 2-22, 2-28, 2-29, 2-30, 2-31, 2-33, 2-39,

2-40, 3-7, 3-9, 3-14, 3-16, 3-19, 3-21, 3-35, 3-40, 4-6, 4-11, 5-2, 5-4, 5-5, 5-6, 5-8, 5-9, 5-11, 5-14, 5-26, 5-27, 5-29, 5-30, 5-31, 5-32, 5-33, 5-34, 5-35, 5-36, 5-37, 6-18, 6-23, 12-34, 16-29, 17-11, F-32, G-9

库高速缓存 8-10, 8-11, 8-12, 8-13, 8-35, 8-36, 9-18, 9-24块 1-16, 1-17, 1-18, 1-19, 2-4, 2-5, 2-29, 2-36, 3-5, 3-6, 3-9, 3-17, 3-23, 3-24, 3-25,

3-26, 3-27, 3-35, 3-36, 6-15, 7-3, 7-4, 7-5, 7-7, 7-8, 7-9, 7-11, 7-12, 7-13, 7-14, 7-16, 7-17, 7-18, 7-19, 7-20, 7-21, 7-22, 7-23, 7-24, 7-25, 7-26, 7-28, 8-4, 8-5, 8-6, 8-7, 8-20, 8-22, 8-33, 10-3, 10-10, 10-11, 10-12, 10-14, 10-16, 10-19, 11-7, 11-8, 12-20, 12-21, 13-20, 13-23, 14-5, 14-6, 14-8, 14-11, 14-12, 17-4, G-3, G-4, G-5, G-10

块更改跟踪 1-16, 2-4, 2-29, 3-26, 3-27块介质恢复 7-21, 7-22, 7-23, 7-25, 7-28块损坏 2-5, 7-3, 7-4, 7-14, 7-16, 7-22, 17-4快速恢复区 2-5, 2-6, 2-11, 2-14, 2-15, 2-16, 2-17, 2-18, 2-19, 2-20, 2-21, 2-23, 2-31,

2-39, 3-34, 5-5, 5-29, 6-16, 6-18, 6-24, 6-25, 6-26, 6-28, F-34, F-36快照 8-7, 9-21, 9-22, 9-23, 9-28, 9-29, 10-22

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 415: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 索引-5

L链 14-2, 14-10, 14-19, 14-20, 14-22, 14-26, 14-27, 14-31临时表空间 1-18, 4-2, 4-4, 4-6, 4-18, 4-19, 11-10, 11-11, G-2, G-12, G-13, G-14, G-15,

G-16, G-17 临时表空间组 G-2, G-15, G-16, G-17流池 1-9, 1-10, 8-4, 8-5, 8-14, 8-15, 8-19, 8-20, 8-22

MMMAN 8-16MML 2-6, 2-7, 2-12, 2-13, 2-29, 2-38, 3-11MMON 9-21, 11-11MTTR 7-21目标数据库 2-6, 2-7, 2-8, 2-9, 2-10, 2-13, 2-22, 2-24, 2-25, 2-26, 2-27, 2-28, 2-34, 2-35,

2-40, 3-4, 3-7, 3-10, 3-29, 3-37, 5-21, 11-30, 15-17, 16-28, 16-30

NnK 块大小缓冲区 8-4, 8-5NLS 2-22, 2-23, 5-21, 14-11, 16-8, 16-9, 16-10, 16-13, 16-14, 16-15, 16-16, 16-17,

16-18, 16-21, 16-22, 16-23, 16-24, 16-25, 16-28, 16-29, 16-30NLS_LANG 2-22, 2-23, 5-21, 16-8, 16-9, 16-10, 16-15, 16-16, 16-21, 16-28, 16-29,

16-30NLSRTL 16-31内存管理器 8-12, 8-16内存指导 8-31, 8-32, 8-33, 8-34

OOMF 1-16, 2-14, 4-11, 11-3, 11-33, 12-10, 12-34, G-3, G-5, Oracle Enterprise Manager 1-7, 1-9, 1-11, 2-2, 2-6, 2-29, 2-30, 2-39, 3-2, 3-27, 3-34,

4-12, 5-3, 5-6, 5-24, 5-37, 6-2, 6-17, 6-29, 11-35, 13-7, 13-12, 13-17, 14-14, 14-28, 17-10, 17-11, F-7, F-12, G-6, H-5

Oracle Locale Builder 16-26Oracle Managed Files 1-16, 2-5, 2-11, 2-14, 4-11, 11-3, 11-33, 12-34, G-3, Oracle Net 1-12, 2-24, 2-26, 16-8, 16-9, E-3, E-12, E-22, ORACLE_HOME 4-16, 4-17ORACLE_SID 2-26, 12-11orcl 2-10, 2-27, 2-31, 4-5, 4-6, 4-8, 4-9, 4-11, 4-16, 5-21, 5-25, 5-35, 7-14, 12-33

PPGA 1-9, 1-10, 1-19, 8-2, 8-3, 8-4, 8-5, 8-27, 8-28, 8-29, 8-30, 8-32, 8-37, 9-24, E-5,

E-7, E-9, E-10, E-18PGA 指导 9-24PMON 1-11, 1-12, 1-19, 12-5, 13-22

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 416: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 索引-6

Q区域设置 16-14, 16-15, 16-31全球化支持 16-1, 16-2, 16-7, 16-20, 16-25, 16-28, 16-29, 16-31, 16-32, 16-33权限 2-24, 2-25, 4-9, 4-10, 4-15, 4-16, 5-6, 5-33, 6-10, 7-11, 11-23, 12-12, 12-13,

12-25, 13-8, 13-11, 14-6, 14-28, 15-23

RRecovery Manager 1-3, 2-1, 2-2, 2-4, 2-5, 2-6, 2-7, 2-13, 2-24, 2-25, 2-35, 2-40, 3-1,

3-2, 3-3, 3-4, 3-10, 3-21, 3-34, 3-37, 3-40, 5-21, 6-18, 15-2, 15-13, E-23, F-3, F-4RMAN 1-3, 1-4, 1-16, 2-2, 2-4, 2-5, 2-6, 2-7, 2-8, 2-9, 2-10, 2-12, 2-13, 2-14, 2-15, 2-17,

2-20, 2-22, 2-23, 2-24, 2-25, 2-26, 2-27, 2-28, 2-29, 2-30, 2-31, 2-32, 2-34, 2-35, 2-36, 2-37, 2-38, 2-39, 2-40, 3-2, 3-3, 3-4, 3-5, 3-6, 3-7, 3-8, 3-9, 3-11, 3-12, 3-13, 3-14, 3-15, 3-16, 3-17, 3-18, 3-19, 3-20, 3-21, 3-22, 3-23, 3-24, 3-25, 3-26, 3-27, 3-28, 3-29, 3-30, 3-31, 3-32, 3-33, 3-34, 3-35, 3-36, 3-37, 3-38, 3-39, 3-40, 5-2, 5-3, 5-4, 5-5, 5-6, 5-8, 5-9, 5-13, 5-20, 5-21, 5-22, 5-23, 5-26, 5-29, 5-30, 5-33, 5-35, 5-36, 5-37, 5-38, 6-18, 6-19, 6-29, 7-2, 7-21, 7-22, 7-25, 7-27, 11-28, 11-31, 11-32, 12-2, 12-4, 12-15, 12-32, 12-34, 12-35, 14-11, 14-15, 15-2, 15-12, 15-13, 15-14, 15-15, 15-16, 15-17, 15-18, 15-24, F-2, F-4, F-7, F-12, F-13, F-21, F-26, F-27, F-28, F-29, F-30, F-31, F-32, F-34, F-36, F-45, F-57

SSGA 1-8, 1-9, 1-10, 1-11, 1-12, 1-13, 1-19, 3-26, 6-15, 8-2, 8-4, 8-6, 8-8, 8-11, 8-12,

8-15, 8-16, 8-17, 8-19, 8-20, 8-21, 8-22, 8-23, 8-24, 8-25, 8-26, 8-27, 8-29, 8-30, 8-31, 8-33, 8-34, 8-37, 9-2, 9-10, 9-12, 9-17, 9-18, 9-21, 9-24, 9-37, E-5, E-7, E-8, E-9, E-10, E-16

SGA 指导 9-24SID 2-26, 3-37, 3-38, 9-13, 12-5, 12-11, 13-9SMON 1-11, 1-12, 1-19, 12-5SQL 访问指导 9-2, 9-24, 9-30, 9-31, 9-32, 9-36, 9-39SQL 优化指导 9-24, 9-29SQL*Loader 4-14, 11-22, 16-18, 16-28, 16-29SQL*Plus 1-9, 5-3, 5-14, 6-12, 7-11, 11-35, 13-31, 14-32, 16-18, 17-10Statspack 9-21SYSAUX 4-6, 4-9, 5-31, 5-32, 9-21, G-8闪回版本查询 7-15闪回表 5-26, 7-15闪回查询 5-26闪回缓冲区 6-15闪回删除 6-3, 6-4, 6-8, 6-9, 6-10闪回事件记录 6-18, 6-28

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 417: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 索引-7

S闪回数据库 2-11, 3-7, 5-26, 6-2, 6-3, 6-14, 6-15, 6-16, 6-17, 6-18, 6-19, 6-20, 6-21,

6-22, 6-23, 6-24, 6-25, 6-26, 6-27, 6-28, 6-29, 6-30, 17-6, 17-8实例 1-5, 1-8, 1-9, 1-10, 1-11, 1-12, 1-13, 1-14, 1-18, 2-3, 2-15, 2-25, 2-29, 2-35, 2-37,

3-4, 3-29, 4-7, 4-9, 4-10, 4-16, 4-17, 5-30, 6-17, 6-25, 8-3, 8-4, 8-5, 8-7, 8-8, 8-11, 8-14, 8-17, 8-27, 8-29, 8-30, 9-3, 9-6, 9-7, 9-11, 9-12, 9-13, 9-15, 9-17, 9-18, 9-24, 11-4, 11-30, 12-2, 12-5, 12-6, 12-7, 12-8, 12-9, 12-10, 12-11, 12-12, 12-13, 12-14, 12-16, 12-17, 12-21, 12-25, 12-29, 12-30, 12-36, 13-26, 14-9, 15-7, 15-14, 15-16, 17-5, 17-7, 17-8, E-8, E-11, E-14, E-15, E-16, E-22, E-23, F-52

视图 2-5, 2-35, 2-39, 3-17, 3-20, 3-27, 3-34, 3-37, 3-38, 4-9, 4-10, 6-5, 6-12, 6-13, 6-25, 6-26, 7-19, 7-25, 8-23, 8-30, 9-9, 9-10, 9-11, 9-12, 9-13, 9-14, 9-15, 9-16, 9-17, 9-24, 9-27, 9-30, 9-32, 9-33, 9-35, 10-28, 11-14, 11-20, 11-23, 11-25, 12-26, 12-27, 12-32, 13-26, 13-28, 13-29, 14-3, 14-9, 14-26, 15-17, 15-20, 15-23, 16-13, E-15, E-19, E-20, F-42, F-51, G-9

数据块 1-18, 2-4, 3-9, 3-23, 7-3, 7-4, 7-12, 7-13, 7-16, 7-18, 7-19, 7-23, 8-7, 11-8, 17-4, G-10

数据字典高速缓存 8-10损坏 1-4, 2-5, 3-17, 3-35, 3-36, 4-3, 6-3, 6-14, 7-1, 7-2, 7-3, 7-4, 7-5, 7-6, 7-7, 7-8, 7-9,

7-12, 7-13, 7-14, 7-15, 7-16, 7-17, 7-18, 7-20, 7-22, 7-25, 7-27, 7-28, 10-5, 17-4索引 1-18, 3-17, 4-2, 4-4, 4-13, 4-14, 4-18, 6-7, 6-10, 7-11, 7-12, 7-16, 7-18, 7-19, 7-20,

7-26, 8-9, 9-16, 9-24, 9-30, 9-33, 9-35, 10-3, 10-4, 10-5, 10-6, 10-9, 10-10, 10-11, 10-12, 10-14, 10-16, 10-17, 10-21, 10-24, 10-26, 10-30, 11-5, 11-13, 11-14, 11-20, 12-4, 12-24, 14-3, 15-3, 15-4, 15-9, 15-10, 15-21, 16-23, E-23, F-11

锁 8-33, 9-10, 9-12, 10-24, 11-12, 11-25, 13-3, 14-16

T统计信息 3-36, 6-2, 6-27, 6-29, 8-16, 8-30, 9-2, 9-7, 9-8, 9-9, 9-10, 9-11, 9-12, 9-13,

9-14, 9-16, 9-17, 9-21, 9-24, 9-30, 9-36, 9-37, 10-2, 10-11, 10-20, 10-22, 10-23, 10-29, 10-30, 12-6, 13-6, 13-18, 13-27, 13-28, 14-3, 14-6, E-23

VVPD 15-2, 15-12, 15-13, 15-18, 15-20, 15-21, 15-22, 15-23, 15-24

X系统统计信息 9-8, 9-9, 9-11, 9-12序列 2-31, 3-7, 5-2, 5-12, 5-13, 5-18, 5-20, 5-23, 5-28, 5-37, 6-19, 7-22, 7-23, 7-24,

7-25, 8-35, 8-36, 9-21, 9-23, 16-6, 16-16, 16-19, 16-25循环缓冲区高速缓存 8-4, 8-5

厦门微思ORACLE授权培训中心

http://www.xmws.cn

Page 418: Oracle Database 10g 数据库管理-课堂练习 IICE%A2%CB%BC%CD%F8%C2%E7OCP_DBAII... · 2012-07-05 · Oracle Database 10g:为网格计算设计的数据库 1-7 数据库体系结构:概述

Oracle Database 10g:数据库管理 - 课堂练习 II 索引-8

Y映像副本 2-9, 3-9, 3-14, 3-15, 3-16, 3-17, 3-18, 3-21, 3-23, 3-28, 3-34, 3-35, 15-17用户全局区 8-10, E-10优化程序统计信息 9-8, 10-2, 10-20, 10-23, 10-29, 10-30, 13-6语言排序 16-19, 16-23, 16-25预警 1-14, 1-15, 2-14, 3-17, 4-5, 4-8, 5-25, 7-5, 7-22, 11-10, 11-11, 11-25, 11-35,

12-14, 12-31, 12-32, 17-7, 17-10预先表空间监视 11-9阈值 3-17, 9-23, 10-12, 11-10, 11-11, 11-35, 13-5, 14-16原型 5-28约束条件 1-6, 10-5, 10-12, 15-10

Z增长趋势报表 11-3专用 SQL 区 8-5, 8-27专用服务器 8-27, E-4, E-5, E-6, E-7, E-9, E-10, E-22自动 PGA 内存管理 8-2, 8-29, 8-30, 8-37自动备份 2-30, 2-31, 2-40, 3-9, 5-29, 5-30, 5-31, 5-35, 5-37, F-29自动段空间管理 7-11, 11-4, 11-7, 11-14作业类 14-30

厦门微思ORACLE授权培训中心

http://www.xmws.cn