Vous êtes sur la page 1sur 444

THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY.

COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

D77758CN20
学生指南– 第 1 卷
面向管理员

Edition 2.0 | Dec 2014 | D88761

Learn more from Oracle University at oracle.com/education/


Oracle Database 12c: 新功能-

Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

作者 版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Dominique Jeunot 免责声明

Jean-Francois Verrier 本软件和相关文档是根据许可证协议提供的,该许可证协议中规定了关于使用和公开本


软件和相关文档的各种限制,并受知识产权法的保护。除非在许可证协议中明确许可或
适用法律明确授权,否则不得以任何形式、任何方式使用、拷贝、复制、翻译、广播、
技术撰稿人和审稿人 修改、授权、传播、分发、展示、执行、发布或显示本软件和相关文档的任何部分。除
Andy Rivenes 非法律要求实现互操作,否则严禁对本软件进行逆向工程设计、反汇编或反编译。

James Spiller 此文档所含信息可能随时被修改,恕不另行通知,我们不保证该信息没有错误。如果贵


方发现任何问题,请书面通知我们。
Donna Keesling

Oracle University and Error : You are not a Valid Partner use only
Maria Billings 有限权利声明

Lachlan Williams 如果将本软件或相关文档交付给美国政府,或者交付给以美国政府名义获得许可证的任


Peter Fusek 何机构,必须符合以下规定:

Mark Fuller U.S. GOVERNMENT END USERS:


Oracle programs, including any operating system, integrated software, any programs
Gregg Christman installed on the hardware, and/or documentation, delivered to U.S. Government end
Dimpi Sarmah users are "commercial computer software" pursuant to the applicable Federal
Acquisition Regulation and agency-specific supplemental regulations. As such, use,
Kevin Jernigan duplication, disclosure, modification, and adaptation of the programs, including any
Branislav Valny operating system, integrated software, any programs installed on the hardware,
and/or documentation, shall be subject to license terms and license restrictions
Frank Fu applicable to the programs. No other rights are granted to the U.S. Government.
Joel Goodman
商标声明
Gerlinde Frenzen
Oracle 和 Java 是 Oracle 和/或其附属公司的注册商标。其他名称可能是各自所有者的
Harald Van Breederode 商标。
Hermann Baer
Jim Stenoish
Mark Drake
Beda Hammerschmidt 编辑
Prabhaker Gongloor Anwesha Ray
Patrick Wheeler Malavika Jinka
Maria Colgan Smita Kommini
Jesse Kamp
Paul Needham 制图员
Pat Huey Seema Bopaiah
Roy F Swonger Maheshwari Krishnamurthy
Ron Soltani
Sue Lee 出版商
Sharath Bhujani Jobi Varghese
Pavithran Adka
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

目录

Oracle University and Error : You are not a Valid Partner use only
1 简介
概览 1-2
Oracle DB 创新历程 1-3
企业云计算 1-4
Oracle Database 12c 新增功能和增强功能 1-5

2 Enterprise Manager Cloud Control 和其他工具


Oracle Database 12c 新增功能和增强功能 2-2
课程目标 2-3
管理员的主要难题 2-4
Enterprise Manager Cloud Control 2-5
Cloud Control 组件 2-7
组件和通信流 2-8
Oracle Management Repository 2-9
控制 Enterprise Manager Cloud Control 框架 2-10
启动 Enterprise Manager Cloud Control 框架 2-11
停止 Enterprise Manager Cloud Control 框架 2-12
不同目标类型 2-13
目标搜索 2-14
Enterprise Manager Cloud Control 2-15
用户界面 2-16
安全性:概览 2-17
使用身份证明安全地进行管理 2-18
区分身份证明 2-19
测验 2-21
Enterprise Manager Database Express 体系结构 2-22
配置 EM Database Express 2-23
主页 2-25
菜单 2-26
测验 2-28
Database Configuration Assistant 2-29

III
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle SQL Developer:连接 2-30


Oracle SQL Developer:DBA 操作 2-31
测验 2-32
小结 2-33
练习 2-34

Oracle University and Error : You are not a Valid Partner use only
3 课程单元多租户容器数据库和可插入数据库
Oracle Database 12c 新增功能和增强功能 3-3
课程目标 3-4
难题 3-5
11g 发行版 2 的 Oracle DB 3-6
新的多租户体系结构:优点 3-7
多租户体系结构的其他好处 3-9
配置 3-11
多租户容器数据库 3-12
原始安装 3-13
添加用户数据 3-14
分离 SYSTEM 和用户数据 3-15
USER 容器中的 SYSTEM 对象 3-16
命名容器 3-17
预配可插入数据库 3-18
在多租户容器数据库内互操作 3-19
多租户容器数据库体系结构 3-20
容器 3-21
问题:根与 PDB 3-22
问题:PDB 与根 3-23
术语 3-24
公用用户和本地用户 3-25
公用和本地权限和角色 3-26
共享和非共享对象 3-27
数据字典视图 3-28
影响 3-29
测验 3-31
小结 3-34
练习 3-35

IV
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

4 创建容器数据库和可插入数据库
Oracle Database 12c 新增功能和增强功能 4-2
课程目标 4-3
目标 4-5
工具 4-6
创建容器数据库的步骤 4-7

Oracle University and Error : You are not a Valid Partner use only
创建容器数据库:使用 SQL*Plus 4-8
创建容器数据库:使用 DBCA 4-9
新子句:SEED FILE_NAME_CONVERT 4-10
新子句:ENABLE PLUGGABLE DATABASE 4-11
创建 CDB 后:CDB 的新特性 4-12
数据字典视图:DBA_xxx 4-13
数据字典视图:CDB_xxx 4-14
数据字典视图:示例 4-15
数据字典视图:V$xxx 视图 4-16
创建 CDB 后:待办事项列表 4-17
自动诊断资料档案库 4-18
自动诊断资料档案库:alert.log 文件 4-19
测验 4-20
练习 4-22
预配新的可插入数据库 4-23
工具 4-24
方法 1:从 PDB$SEED 创建新 PDB 4-25
步骤:使用位置子句 4-26
步骤:不使用位置子句 4-28
同步 4-29
方法 2:将非 CDB 插入 CDB 4-30
使用 DBMS_PDB 将非 CDB 插入 CDB 4-32
方法 3:克隆本地 PDB 4-33
方法 3:克隆非 CDB 或远程 PDB 4-34
方法 4:将移走的 PDB 插入 CDB 4-35
方法 4:流 4-36
插入示例方案 PDB:使用 DBCA 4-38
删除 PDB 4-39
将 12.1 之前版本的数据库移植到 12.1 CDB 4-40

V
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

测验 4-41
小结 4-43
练习 4-44

5 管理多租户容器数据库和可插入数据库
Oracle Database 12c 新增功能和增强功能 5-2

Oracle University and Error : You are not a Valid Partner use only
课程目标 5-3
连接 5-4
使用 SQL*Developer 连接 5-7
切换连接 5-8
启动 CDB 实例 5-9
装载 CDB 5-10
打开 CDB 5-11
打开 PDB 5-12
关闭 PDB 5-13
关闭 CDB 实例 5-14
自动打开 PDB 5-15
更改 PDB 打开模式 5-16
更改 PDB 模式:使用 SQL Developer 5-17
修改 PDB 设置 5-18
实例参数更改影响 5-19
实例参数更改影响:示例 5-20
测验 5-21
小结 5-23
练习 5-24

6 管理 CDB 和 PDB 中的表空间和用户


Oracle Database 12c 新增功能和增强功能 6-2
课程目标 6-3
PDB 中的表空间 6-4
在 CDB 中创建永久表空间 6-5
分配默认表空间 6-6
创建本地临时表空间 6-7
分配默认临时表空间 6-8
用户、角色和权限 6-9
本地用户、角色和权限 6-10

VI
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

创建本地用户 6-11
公用用户 6-12
创建用户 6-13
公用方案/用户和本地方案/用户 6-14
公用权限和本地权限 6-15
授予和撤消权限 6-16

Oracle University and Error : You are not a Valid Partner use only
创建公用角色和本地角色 6-17
向角色授予公用或本地权限/角色 6-18
向用户授予公用角色和本地角色 6-19
创建共享对象和非共享对象 6-20
定义者权限的限制 6-21
测验 6-22
小结 6-24
练习 6-25

7 备份、恢复和闪回 CDB 和 PDB


Oracle Database 12c 新增功能和增强功能 7-2
课程目标 7-3
目标 7-4
RMAN 中的新语法和子句 7-5
CDB 备份:整个 CDB 备份 7-6
CDB 备份:部分 CDB 备份 7-7
PDB 备份:整个 PDB 备份 7-8
PDB 备份:部分 PDB 备份 7-9
PDB 备份:用户管理的热 PDB 备份 7-10
练习 7-11
恢复 7-12
实例故障 7-13
NOARCHIVELOG 模式 7-14
介质故障:CDB 临时文件恢复 7-15
介质故障:PDB 临时文件恢复 7-16
介质故障:控制文件丢失 7-17
介质故障:重做日志文件丢失 7-18
介质故障:根 SYSTEM 或 UNDO 数据文件 7-19
介质故障:根 SYSAUX 数据文件 7-20
介质故障:PDB 数据文件 7-21

VII
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

介质故障:PITR 7-22
闪回 CDB 7-24
特殊情况 7-26
测验 7-27
小结 7-29
练习 7-30

Oracle University and Error : You are not a Valid Partner use only
8 课程单元自动数据优化和存储增强功能
Oracle Database 12c 新增功能和增强功能 8-3
课程目标 8-4
ILM 难题和解决方案 8-5
ILM 组件 8-6
ILM 难题 8-7
解决方案 8-8
组件 8-10
什么是自动数据优化 8-12
数据分类级别 8-13
热图和 ADO 8-14
启用热图段级别统计信息 8-15
DBA_HEAT_MAP_SEGMENT 视图 8-16
块级别统计信息 8-17
区级别统计信息 8-18
定义自动检测条件 8-19
定义自动操作 8-20
压缩作用域和类型 8-21
创建压缩策略表空间和组 8-22
创建压缩策略段和行 8-23
创建存储分层策略 8-25
存储分层:优先级 8-26
存储分层:READ ONLY 8-27
依赖于函数的策略 8-28
一个段的多个 SEGMENT 策略 8-29
一个段只能有一个 ROW 策略 8-31
策略继承 8-32
显示策略 DBA_ILMPOLICIES/DBA_ILMDATAMOVEMENTPOLICIES 8-33
显示策略 DBA_ILMDATAMOVEMENTPOLICIES 8-34

VIII
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

准备评估和执行 8-35
定制评估和执行 8-36
监视评估和执行 8-37
ADO DDL 8-39
打开和关闭 ADO 8-40
停止活动跟踪和清除热图统计信息 8-41

Oracle University and Error : You are not a Valid Partner use only
活动跟踪的特定情况 8-42
测验 8-44
联机移动数据文件 8-46
压缩 8-47
REUSE 和 KEEP 8-48
状态 8-49
兼容性 8-50
闪回数据库 8-51
联机移动分区 8-52
联机移动分区:优点 8-53
联机移动分区:压缩 8-54
测验 8-55
小结 8-56
练习 8-57

9 数据库中归档和期间 (Temporal) 功能
Oracle Database 12c 新增功能和增强功能 9-2
课程目标 9-3
归档难题 9-4
归档解决方案 9-5
数据库中归档:HCC 9-6
归档难题和解决方案 9-8
数据库中归档 9-10
ORA_ARCHIVE_STATE 列 9-11
会话可见性控制 9-12
禁用行归档 9-13
测验 9-14
PERIOD FOR 子句概念 9-16
按有效时间列进行过滤:示例 1 9-17
按有效时间列进行过滤:示例 2 9-18

IX
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

DBMS_FLASHBACK_ARCHIVE 9-19
测验 9-20
期间历史记录增强功能:FDA 优化 9-21
期间历史记录增强功能:用户上下文元数据 9-22
小结 9-23
练习 9-24

Oracle University and Error : You are not a Valid Partner use only
10 课程单元安全性
Oracle Database 12c 新增功能和增强功能 10-3
课程目标 10-4
审计类型 10-5
审计线索实施 10-6
Oracle Database 12c 审计 10-8
安全性和性能:审计体系结构 10-9
整合 10-10
数据泵审计策略 10-11
统一审计实施 10-12
测验 10-14
安全性 10-16
简单性:审计策略 10-17
第 1 步:创建审计策略 10-18
第 2 步:启用/禁用审计策略 10-20
查看审计策略 10-21
使用预定义的审计策略 10-22
包括应用程序上下文数据 10-23
删除审计策略 10-24
审计清理 10-25
测验 10-26
小结 10-27
练习 10-28

11 权限
Oracle Database 12c 新增功能和增强功能 11-2
课程目标 11-3
主要难题 11-4
新增的管理权限 11-5

X
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

操作系统验证和操作系统组 11-6
SYSBACKUP 的口令验证 11-8
Oracle Database Vault 数据保护和管理授权用户 11-10
测验 11-11
新增系统权限:PURGE DBA_RECYCLEBIN 11-13
权限分析 11-14

Oracle University and Error : You are not a Valid Partner use only
权限分析流 11-15
使用的权限结果 11-17
比较使用的权限和未使用的权限 11-18
列出捕获 11-19
删除分析 11-20
测验 11-21
PL/SQL 调用过程中的权限检查 11-22
PL/SQL 调用过程中的新权限检查 11-23
INHERIT (ANY) PRIVILEGES 权限 11-25
通过新的 BEQUEATH 视图进行权限检查 11-26
测验 11-27
小结 11-29
练习 11-30

12 Oracle 数据编写
Oracle Database 12c 新增功能和增强功能 12-2
课程目标 12-3
Oracle 数据编写:概览 12-4
Oracle 数据编写和操作活动 12-6
可用的编写方法 12-7
Oracle 数据编写:示例 12-8
什么是编写策略 12-9
管理编写策略 12-11
将编写策略应用于表或视图 12-12
完全编写:示例 12-13
部分编写:示例 12-14
正则表达式 12-15
修改编写策略 12-16
从编写策略中排除用户 12-17
将 Oracle 数据编写与其他 Oracle DB 安全解决方案结合使用 12-18

XI
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle DB 安全功能 12-19


最佳实践:防止未经授权的策略修改和排除 12-21
最佳实践:注意事项 12-22
小结 12-23
练习 12:概览 12-24

Oracle University and Error : You are not a Valid Partner use only
13 课程单元高可用性
Oracle Database 12c 新增功能和增强功能 13-3
课程目标 13-4
DBA 职责分离 13-5
在 RMAN 中使用 SQL 13-6
备份和还原非常大的文件 13-7
RMAN 复制增强功能 13-8
复制活动数据库 13-9
新增功能 13-10
NOOPEN 选项 13-11
复制多租户容器数据库 13-12
使用第三方快照恢复数据库 13-13
测验 13-14
跨平台传输数据 13-15
数据传输 13-16
传输数据库:流程步骤 - 1 13-17
传输数据库:流程步骤 - 2 13-18
传输表空间:流程步骤 - 1 13-19
传输表空间:流程步骤 - 2 13-20
测验 13-21
表恢复 13-22
从备份恢复表 13-23
表恢复:图形化概览 13-24
指定恢复时间点 13-25
表恢复流程步骤 - 1 13-26
定制设置 13-27
测验 13-28
小结 13-29
练习 13:概览 13-30

XII
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

14 课程单元易管理性
Oracle Database 12c 新增功能和增强功能 14-3
课程目标 14-4
实时数据库操作监视:概览 14-5
用例 14-6
当前的工具 14-7

Oracle University and Error : You are not a Valid Partner use only
定义数据库操作 14-9
组合数据库操作的范围 14-10
数据库操作概念 14-11
标识数据库操作 14-12
启用对数据库操作的监视 14-13
标识、启动和完成数据库操作 14-14
监视数据库操作的进度 14-15
监视加载数据库操作 14-16
监视加载数据库操作详细信息 14-17
使用视图报告数据库操作 14-18
使用函数报告数据库操作 14-20
数据库操作优化 14-22
测验 14-23
小结 14-25
练习 14:概览 14-26

15 紧急监视、实时 ADDM、比较时段 ADDM 以及 ASH 分析


Oracle Database 12c 新增功能和增强功能 15-2
课程目标 15-3
紧急监视:难题 15-4
紧急监视:目标 15-5
实时 ADDM:难题 15-7
实时 ADDM:目标 15-8
流程 15-10
使用 DBMS_ADDM 程序包 15-11
测验 15-12
AWR 比较时段报告 15-13
方法:保留的快照集 15-14
缺少了什么 15-15
比较时段 ADDM:分析 15-16

XIII
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

工作量一致性 15-17
比较模式 15-18
报告:配置 15-19
报告:查找结果 15-20
使用 DBMS_ADDM 程序包 15-21
测验 15-23

Oracle University and Error : You are not a Valid Partner use only
ASH:概览 15-24
顶级活动页面 15-25
ASH 分析页面:活动 15-26
小结 15-27
练习 15:概览 15-28

16 ADR 和网络增强功能
Oracle Database 12c 新增功能和增强功能 16-2
课程目标 16-3
自动诊断资料档案库 16-4
ADR 文件类型 16-5
ADR 文件:位置 16-6
ADR 文件:DDL 和调试日志文件 16-7
新的 ADRCI 命令 16-9
网络性能:压缩 16-10
设置压缩 16-11
会话数据单元 (SDU) 大小 16-12
设置 SDU 大小 16-13
测验 16-14
小结 16-15
练习 16:概览 16-16

17 课程单元性能
Oracle Database 12c 新增功能和增强功能 17-3
课程目标 17-4
内存中列存储的目标 17-5
优点 17-7
概览 17-8
行存储与列存储:2 维视角 17-10
内存中列单元 17-11

XIV
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

内存中列存储高速缓存与缓冲区高速缓存 17-12
内存中的双格式 17-13
不再出现索引问题 17-14
流程 17-15
部署 IM 列存储 17-16
部署 IM 列存储:对象设置 17-17

Oracle University and Error : You are not a Valid Partner use only
部署 IM 列存储:列设置 17-18
IM 列存储的候选对象 17-19
IM 列存储的候选列 17-21
定义 IM 列存储优先级 17-22
填充到 IM 列存储中的段 17-23
定义 IM 列存储压缩 17-24
IM 列存储压缩指导 17-26
计算压缩率 17-28
默认内存中设置 17-29
更改内存中属性的影响 17-30
移动或拆分内存中段 17-31
INMEMORY 继承 17-32
对象设置之后 17-33
检索内存中对象的 CREATE DDL 语句 17-34
测验 17-35
查询获益 17-37
测试和比较查询性能 17-38
对内存中表的查询:简单谓词 17-39
MINMAX 修剪统计信息 17-40
IM 列存储统计信息 17-41
执行计划:TABLE ACCESS IN MEMORY FULL 17-42
对内存中表的查询:联接 17-43
执行计划:JOIN FILTER CREATE / USE 17-45
对内存中表和非内存中表进行查询 17-46
对内存中列和非内存中列进行查询 17-48
DML 和内存中列存储 17-49
建议 17-50
视图 17-51
与其他产品的交互 17-52
优化程序 17-53

XV
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

IM 列存储和 RAC 17-55


IM 列存储和数据泵 17-57
数据泵 TRANSFORM 名称 17-58
小结 17-59
练习 17:概览 17-60

Oracle University and Error : You are not a Valid Partner use only
18 内存中高速缓存
Oracle Database 12c 新增功能和增强功能 18-2
课程目标 18-3
整个数据库内存中高速缓存 18-4
设置强制整个数据库高速缓存 18-6
监视整个数据库内存中高速缓存 18-8
自动大表高速缓存之前的内存中并行查询 18-9
自动大表高速缓存 18-11
配置自动大表高速缓存 18-12
使用自动大表高速缓存 18-14
监视自动大表高速缓存 18-15
小结 18-17
练习 18:概览 18-18

19 SQL 优化增强功能
Oracle Database 12c 新增功能和增强功能 19-2
课程目标 19-3
主题安排 19-4
SQL 计划基线:体系结构 19-5
SQL 计划管理:概览 19-7
自适应 SQL 计划管理 19-8
自动演化 SQL 计划基线 19-9
SQL 管理库增强功能 19-10
测验 19-11
课程主题安排 19-12
自适应执行计划 19-13
动态计划 19-14
动态计划:自适应过程 19-15
动态计划:示例 19-16
重新优化:统计信息反馈 19-17

XVI
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

统计信息反馈:监视查询执行 19-18
统计信息反馈:重新分析语句 19-19
自动重新优化 19-20
测验 19-22
课程主题安排 19-23
SQL 计划指令 19-24

Oracle University and Error : You are not a Valid Partner use only
创建 SQL 计划指令 19-25
使用 SQL 计划指令 19-26
SQL 计划指令:示例 19-27
批量加载的联机统计信息搜集 19-28
Oracle Database 12c 中的并发统计信息增强功能 19-29
全局临时表的统计信息 19-30
直方图增强功能 19-32
最高频率直方图 19-33
混合直方图 19-34
混合直方图:示例 19-35
扩展统计信息增强功能 19-36
捕获列组使用情况 19-37
捕获列组使用情况:运行工作量 19-38
复查列组使用情况 19-39
创建在工作量监视期间检测到的列组 19-40
自动动态采样 19-41
测验 19-42
小结 19-43
练习 19-44

20 资源管理器和其他性能增强功能
Oracle Database 12c 新增功能和增强功能 20-2
课程目标 20-3
资源管理器和可插入数据库 20-4
在 PDB 之间协调资源 20-5
CDB 资源计划基础:份额 20-6
CDB 资源计划基础:限制 20-8
CDB 资源计划:完整示例 20-10
创建 CDB 资源计划 20-11
设置默认指令 20-12

XVII
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

查看 CDB 资源计划指令 20-13


维护 CDB 资源计划 20-14
管理 PDB 中的资源 20-15
管理 PDB 资源计划 20-16
结合使用 20-17
注意事项 20-18

Oracle University and Error : You are not a Valid Partner use only
失控查询和资源管理器 20-19
控制 IM 列存储重新填充资源消耗 20-21
默认 UNIX/Linux 体系结构 20-22
多进程多线程 UNIX/Linux 体系结构 20-23
多进程多线程体系结构:优点和设置 20-24
多进程多线程体系结构:注意事项 20-25
多进程多线程体系结构:监视 20-26
数据库智能闪存高速缓存增强功能 20-27
启用和禁用闪存设备 20-28
内存中 PQ 算法:优点 20-29
智能闪存高速缓存:新统计信息 20-30
临时还原:概览 20-31
临时还原:优点和设置 20-32
临时还原监视 20-33
限制程序全局区的大小 20-34
小结 20-35
练习 20:概览 20-36

21 表、索引和联机操作增强功能
Oracle Database 12c 新增功能和增强功能 21-2
课程目标 21-3
为什么同一组列有多个索引 21-4
对同一组列创建多个索引 21-5
测验 21-7
SQL*Plus 中的不可见列和隐藏列 21-8
SET COLINVISIBLE 和 DESCRIBE 命令 21-9
测验 21-10
联机重新定义:包含 VPD 的表 21-11
联机重新定义:dml_lock_timeout 21-12
高级行压缩:新功能名称和语法 21-13

XVIII
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

LOB 压缩:新名称 21-14


使用压缩指导 21-15
增强的联机 DDL 功能 21-16
DROP INDEX / CONSTRAINT 21-17
索引 UNUSABLE 21-18
SET UNUSED 列 21-19

Oracle University and Error : You are not a Valid Partner use only
小结 21-20
练习 21:概览 21-21

22 课程单元其他
Oracle Database 12c 新增功能和增强功能 22-3
课程目标 22-4
完全可移动导出/导入:概览 22-5
完全可移动导出/导入:用法 22-6
完全可移动导出/导入:示例 22-8
通过网络移动数据库:示例 22-9
禁用 Oracle 数据泵导入的日志记录 22-10
将视图导出成表 22-11
指定加密口令 22-13
在导入期间压缩表 22-14
在导入期间创建 SecureFile LOB 22-15
测验 22-16
SQL*Loader 对标识列的直接路径加载的支持 22-17
SQL*Loader 和外部表的增强功能 22-18
SQL*Loader 快速模式 22-19
小结 22-21
练习 22:概览 22-22

23 分区增强功能
Oracle Database 12c 新增功能和增强功能 23-2
课程目标 23-3
引用分区增强功能 23-4
间隔引用分区 23-5
TRUNCATE TABLE CASCADE 23-6
多分区维护操作 23-7
添加多个分区 23-8

XIX
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

创建范围分区表 23-9
添加多个分区 23-10
截断多个分区 23-11
删除多个分区 23-12
拆分成多个分区 23-13
拆分成多个分区的规则 23-14

Oracle University and Error : You are not a Valid Partner use only
拆分成多个分区:示例 23-15
合并多个范围分区 23-16
合并列表分区和系统分区 23-17
测验 23-18
分区索引:概述 23-19
分区表的部分索引 23-20
对表创建部分索引 23-21
在分区和子分区级别指定 INDEXING 子句 23-22
创建本地或全局部分索引 23-23
解释计划:LOCAL INDEX ROWID 23-24
解释计划:GLOBAL INDEX ROWID 23-25
受影响的数据字典视图:概览 23-26
异步全局索引维护 23-28
DBMS_PART 程序包 23-29
分区维护操作期间的全局索引维护优化 23-30
测验 23-31
小结 23-32
练习 23:概览 23-33

24 JSON
Oracle Database 12c 新增功能和增强功能 24-2
课程目标 24-3
JSON:概览 24-4
JSON:示例 24-5
Oracle RDBMS 中的 JSON 24-6
将 JSON 数据映射到 SQL 类型 24-7
创建 JSON 数据 24-8
查询 JSON 数据 24-9
使用其他运算符查询 JSON 数据 24-10
使用 JSON_TABLE 和 NESTED PATH 运算符解除 JSON 数据嵌套 24-11

XX
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

为 JSON 数据编制索引 24-12


使用索引查询 24-13
使用 JSON 搜索索引查询 24-14
视图 24-15
小结 24-16
练习 24:概览 24-17

Oracle University and Error : You are not a Valid Partner use only
25 SQL 增强功能和 Migration Assistant for Unicode
课程目标 25-3
放宽了数据类型的长度限制 25-4
针对扩展数据类型配置数据库 25-5
使用 VARCHAR2、NVARCHAR2 和 RAW 数据类型 25-6
Database Migration Assistant for Unicode 25-7
SecureFile 25-8
SQL 行限制子句 25-9
SQL 行限制子句:示例 25-10
测验 25-11
小结 25-13
练习 25:概览 25-14

附录 A:新进程、视图、参数、程序包和权限
实例和数据库 A-2
多租户体系结构:一般体系结构图示 A-3
CDB 和 PDB A-4
热图和 ADO A-6
数据库中归档和期间有效性 A-8
安全性:审计 A-9
安全性:权限分析 A-10
安全性:权限分析和新增权限 A-11
安全性:Oracle 数据编写 A-12
HA:闪回数据归档 A-13
易管理性:数据库操作 A-14
易管理性:ADDM A-16
性能:内存中列存储 A-17
性能:整个数据库内存中高速缓存 A-19
性能:自动大表高速缓存 A-20

XXI
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

性能:SQL 优化 A-21
性能:资源管理器 A-22
性能:多进程多线程 A-23
性能:数据库智能闪存高速缓存 A-24
性能:临时还原 A-25
性能:联机操作 A-26

Oracle University and Error : You are not a Valid Partner use only
其他:分区 A-27
其他:JSON A-28
其他:SQL A-29
附录 C:数据比较 A-30

附录 B:可插入数据库:其他创建方法
使用数据泵将非 CDB 插入 CDB B-2
使用复制方法将非 CDB 插入 CDB B-3
在 CDB 之间克隆 PDB B-4
插入移走的 PDB:使用 SQL Developer B-5

附录 C:方案和数据更改管理
课程目标 C-2
数据库生命周期管理包:新增功能 C-3
Change Management Pack 功能 C-4
Change Management Pack 组件 C-5
字典基线 C-6
字典比较 C-8
字典同步 C-9
比较更改传播与 11g SQL 脚本 C-10
数据库生命周期管理包方案更改计划 C-11
更改请求 C-13
方案同步 C-15
数据库生命周期管理包数据比较 C-17
DBMS_COMPARISON C-18
流程 C-20
准则 C-21
创建数据比较 C-23
比较作业和结果 C-24
结果:仅参考行 C-25

XXII
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

练习 C-31
小结 C-30
测验 C-28

更多信息 D-2
结果:仅候选行 C-26
结果:不相同的行 C-27

建议的 Oracle University ILT 课程 D-3


附录 D:其他课程中的新增功能和增强功能

XXIII
Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

简介

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

概览

• 本课程重点介绍 Oracle Database 12c 的功能,包括补

Oracle University and Error : You are not a Valid Partner use only
丁程序集 1 中适用于数据库管理的那些功能。
• 要完全了解诸多新增功能,需要具有 Oracle DB(特别
是 Oracle Database 11g)使用经验。
• 实践练习着重强调的是功能,而不是测验知识。

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

本课程旨在向学生介绍 Oracle Database 12c 发行版 1 补丁程序集 1 (12.1.0.2) 的新功


能,这些功能适用于通常由数据库管理员和相关人员执行的工作。本课程将介绍所有功
能,包括增强功能。本课程的意图并非是提供某个功能的所有详细信息,也不会介绍以前
发行版中提供的某个功能的各个方面(阐述新功能的背景或将过去行为和当前行为进行比
较时除外)。因此,如果学生管理过其他版本的 Oracle DB(尤其是 Oracle Database
11g),则本课程可以发挥最大的作用。即使拥有上述背景,学生也不应认为自己能够在
不使用补充阅读材料(尤其是 Oracle Database 12c 文档)的情况下就能实施本课程中介
绍的所有功能。
本课程包含由教师指导的课程和演示,另外还有许多实践练习,可帮助学生亲自观察某些
新功能的运作方式。与一般的课程内容一样,这些练习的设计目的是向学生介绍某个功能
的基本方面,其用意不是测验学生对不熟悉的语法的掌握情况,也不是要学生来检查新功
能的每个细小差别。本课程时间有限,不允许进行此类活动。因此,要竭力鼓励学生使用
提供的脚本来完成练习,而不必费力运用不熟悉的语法。

Oracle Database 12c:新功能 - 面向管理员 1-2


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle DB 创新历程
专用 DB 云
… 继续创新 深度防御
Oracle Database 12c 信息生命周期管理

Oracle University and Error : You are not a Valid Partner use only
极高可用性
灵活集群
内存中高速缓存 12.1.0.2

Oracle Grid Infrastructure


… Oracle Database 11g Real Application Testing
自动 SQL 优化
故障管理
Audit Vault
Database Vault
… Oracle Secure Enterprise Search
Database 10g 网格计算
自动存储管理
自助管理数据库
XML DB、Oracle Data Guard、RAC、闪回查询、虚拟专用数据库 内置 Java VM、分区支持、
内置消息传送、对象关系支持、多媒体支持

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

由于对创新的前瞻性重视,Oracle 以其领导潮流的大量产品,保持着业界独尊的领先
地位。
Oracle Database 12c 发行版中的部分重要特性包括:
• 专用数据库云
• 深度防御,包括 Oracle 数据编写 (Oracle Data Redaction) 和 Real Application
Security
• 信息生命周期管理 (ILM),包括热/冷数据分类、声明性压缩和分层、数据库内归档
以及期间有效性
• 灵活集群
• 极高可用性,包括 Data Guard 远同步和应用程序连续性
• 低成本迁移
• 高性能、易于使用,包括“即时”优化、内存列存储、整个数据库内存中高速缓存
和自动大表高速缓存

Oracle Database 12c:新功能 - 面向管理员 1-3


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

企业云计算

Oracle University and Error : You are not a Valid Partner use only
在整个企业范围内
RAC 低成本硬件 管理整个 合并 Enterprise
集群确保 和存储构成 企业的 Manager Cloud
可用性 的网格 更改 Control 与数据库

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle Database 10g 是第一个为网格计算设计的数据库管理系统。


Oracle Database 11g 合并和扩展了 Oracle 特有的功能以实现网格计算的优势,将数据
中心从分散的系统资源孤岛转换为包含服务器和存储的共享池。
Oracle Database 12c 和 Enterprise Manager Cloud Control 是为云计算设计的。云计算
创建了一个完整的、预先集成的现成专用云解决方案,从而可以快速将企业数据中心转换
为专用云。
主要优势如下所示:
• 通过合并使用少数几个服务器,降低对大量服务器的需求并提高 CPU 的利用率
• 通过自动部署标准数据库配置,缩短 DBA 花在安装和配置数据库上的时间
• 通过单一控制台管理整个云生命周期(规划、设置、交付、运行)
• 通过为各个用户设置限额,防止资源独占
• 通过分析趋势报告,预测未来资源需求
• 基于性能和配置度量计费

Oracle Database 12c:新功能 - 面向管理员 1-4


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle Database 12c 新增功能和增强功能


Enterprise Manager Enterprise Manager Enterprise Manager
Cloud Control Database Express 其他工具
和其他工具

CDB 和 PDB 基础功能 CDB 和 PDB 创建 CDB 和 PDB 管理

Oracle University and Error : You are not a Valid Partner use only
热图和自动数据优化 联机数据文件移动
ADO 和存储
数据库中归档和期间有效性 期间历史记录

安全性 统一审计 权限分析 数据编写

HA RMAN

易管理性 DB 操作 实时 ADDM 比较时段 ADDM ADR


12.1.0.2 12.1.0.2

内存中列存储 整个数据库内存中高速缓存
性能 自动大表高速 12.1.0.2
SQL 优化 资源管理器 索引、表
缓存

数据泵、SQL*Loader 和外部表 分区
其他
12.1.0.2
JSON SQL

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

功能、选项和计划
Enterprise Manager Cloud Control:Oracle Enterprise Manager 是 Oracle 的集成企业
IT 管理产品线,提供业内第一个完整云生命周期管理解决方案。
Oracle 多租户:Oracle 多租户是 Oracle Database 12c 中的一个新选项。使用多租户体
系结构,Oracle DB 可以包含一组可移植的方案、对象和相关结构,面向应用程序作为
一个逻辑上的单独数据库出现。此自包含集合称为可插入数据库 (PDB)。一个多租户容器
数据库 (CDB) 包含一个或多个 PDB。
信息生命周期管理:每个组织都面临的一个难题是了解其数据如何发展和增长、监视数据
的使用如何随时间而变化以及确定数据的保留时间,同时遵循现在适用于该数据的所有规
则和法规。信息生命周期管理 (ILM) 旨在处理这些问题,同时合并进程、策略、软件和硬
件,从而针对数据生命周期中的每个阶段使用适当的技术。ILM 提供了一些新功能,包括
热图、自动数据优化以及对数据库中归档的增强功能,其中包括新的期间有效性功能。

Oracle Database 12c:新功能 - 面向管理员 1-5


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

深度防御
• 通过统一审计,可以统一的格式使用审计信息,并在仅可由授权用户访问的单个位
置集中放置该信息。
• 新管理权限可以帮助分离责任。
• 权限分析有助于识别权限使用情况并确定必须撤消的权限。
• Oracle 数据编写通过以下方法阻止显示敏感数据(甚至对 DBA 也是如此):在
每个应用程序中执行屏蔽、在数据库级别定义编写并显示编写的数据,而不考虑访

Oracle University and Error : You are not a Valid Partner use only
问方法。
高可用性
RMAN 增强功能包括从现有备份恢复表或表分区、使用备份集进行跨平台数据传输、使
用新的 SYSBACKUP 权限进行连接以及其他许多功能。
易管理性
• 数据库操作监视扩展并推广了实时 SQL 监视。
性能
• 内存列存储功能提供了使数据库驱动的业务决策制定可以实时完成的解决方案。通
过内存列存储功能,可使用一种称为列格式的新格式在内存中存储对象。使用此格
式,可以比传统磁盘格式快得多的速度执行扫描、联接和聚集,为 OLTP 和 DW 环
境提供快速报告和 DML 性能。这对于针对少量列运行但返回许多行的分析应用程序
特别有用,而对于针对少量行运行但返回许多列的 OLTP 不太有用。DBA 必须定义
要加载到内存中高速缓存的段,例如热表、分区以及更精确更常访问的列。
Oracle Database 12c R1 PS1 中还包含其他新增内存功能。
• SQL 优化基本上基于自适应 SQL 计划管理、自适应执行计划和优化程序统计信息
管理的性能自动化。
• 实时 ADDM 和紧急监视可监测系统是否有问题并分析挂起情况的根本原因,帮助您
找到适当操作。
• 如果性能降低或提高,比较时段指导将确定什么发生了更改、其原因以及哪些更改
可能导致两个时段的性能不同。这将帮助您根据相关分析来采取适当操作。
• 资源管理器现在适用于多租户容器数据库和可插入数据库,在数据库中的不同容器
之间共享 CPU 和其他资源。
本课程还讲述了其他许多有关 Oracle 数据泵、SQL*Loader、分区和联机操作、SQL 和
JSON 的增强功能。
本课程不会介绍自动存储管理、Real Application Cluster、Data Guard、Real Application
Testing 等主题以及其他许多专业知识主题。有关这些课程的参考信息、演示和 OBE 位
于附录“其他课程中的新增功能和增强功能”中。

Oracle Database 12c:新功能 - 面向管理员 1-6


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

和其他工具

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。


Enterprise Manager Cloud Control

Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle Database 12c 新增功能和增强功能


Enterprise Manager Enterprise Manager Enterprise Manager
和其他工具 Cloud Control Database Express 其他工具

CDB 和 PDB 基础功能 CDB 和 PDB 创建 CDB 和 PDB 管理

热图和自动数据优化 联机数据文件移动

Oracle University and Error : You are not a Valid Partner use only
ADO 和存储
数据库中归档和期间有效性 期间历史记录

安全性 统一审计 权限分析 数据编写

HA RMAN

易管理性 DB 操作 实时 ADDM 比较时段 ADDM ADR


12.1.0.2 12.1.0.2

内存中列存储 整个数据库内存中高速缓存
性能
自动大表高速 12.1.0.2
SQL 优化 资源管理器 索引、表
缓存

数据泵、SQL*Loader 和外部表 分区
其他
JSON 12.1.0.2
SQL

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Enterprise Manager:Enterprise Manager Database Control 不再可用于 Oracle


Database 12c。对于 Oracle Database 12.1,Enterprise Manager Cloud Control 12c 和
Enterprise Manager Database Express 12c 提供针对 12.1 数据库的一些功能。

Oracle Database 12c:新功能 - 面向管理员 2-2


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

课程目标

学完本课后,应能完成以下工作:
• 描述 Cloud Control 的不同组件

Oracle University and Error : You are not a Valid Partner use only
• 说明 Cloud Control 的体系结构
• 列出 Cloud Control 管理的目标类型
• 浏览 Oracle Enterprise Manager Cloud Control 界面
• 描述 Oracle Enterprise Manager Database Express
导航
• 使用 DBCA 创建新的数据库类型
• 浏览 Oracle SQL Developer 界面

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

注释
要全面了解 Oracle Enterprise Manager Cloud Control 和 Database Express 的安装和使
用方法,请参阅 Oracle 文档中的以下指南:
• 《Oracle Enterprise Manager Cloud Control Basic Installation Guide 12c
Release 1》
• 《Oracle Enterprise Manager Cloud Control Advanced Installation and
Configuration Guide 12c Release 1》
• 《Oracle Enterprise Manager Cloud Control Administrator’s Guide 12c Release 1》
• 《Oracle Enterprise Manager Licensing Information 12c Release 1》

Oracle Database 12c:新功能 - 面向管理员 2-3


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

管理员的主要难题

随着数据中心扩展到云环境,管理数据中心的挑战也随之

Oracle University and Error : You are not a Valid Partner use only
增多。管理数据中心的主要挑战包括:
• 监视性能和可用性
• 快速解决问题
• 控制操作成本
• 将 IT 与业务优先级关联

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

随着数据中心业务的发展,挑战也随之增多。管理员面对以下挑战:
• 监视高级别的性能和应用程序的可用性
• 快速而有效地发现和解决问题
• 使 IT 专业人员有效使用资源,从而降低成本
• 将 IT 与业务优先级关联,确保业务可以灵活地满足变化的需求

Oracle Database 12c:新功能 - 面向管理员 2-4


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Enterprise Manager Cloud Control


所有主题都在“Oracle Enterprise Manager
Cloud Control 新增功能自学”系列课程中进
行了介绍。
企业就绪框架

应用程序管理 云管理

Oracle University and Error : You are not a Valid Partner use only
中间件管理 计费和容量计划

Exadata 和
数据库管理
Exalogic 管理

应用程序质量管理 配置管理

预配和打补丁

本课程使用了 Oracle Enterprise


Manager Cloud Control 的一些
功能。

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Enterprise Manager Cloud Control 设计的主要目标


• 设计一个能够提供下一代功能的管理框架
• 方便应用程序到磁盘的管理
• 预配完整的企业专用云解决方案
Enterprise Manager Cloud Control 包括以下功能:
• 企业就绪框架:提供模块化和可扩展体系结构、目标插件、可自更新实体、集成的
支持工作台以及集中式意外事件控制台
• 云管理:提供完整的云生命周期管理
• 计费和容量计划:根据目标类型提供计费,使用自动工作量资料档案库 (AWR) 数据
仓库合并企业多个数据库中的 AWR 报告
• Exadata 和 Exalogic 管理:提供 Exadata 计算机中硬件和软件的综合情况以及
Exalogic 系统的完整生命周期管理
• 配置管理:提供一组集成的工具、无代理搜索、与 My Oracle Support 的集成以及
定制配置功能

Oracle Database 12c:新功能 - 面向管理员 2-5


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• 预配和打补丁:提供用于预配已知配置的概要文件、用户定义的部署过程以及一个
集成了自更新功能的软件库
• 应用程序和质量管理:数据库重放、应用程序服务器重放、与数据屏蔽集成的 Real
Application Testing 以及包括应用程序数据模型的测试数据库管理
• 数据库管理:提供对 Oracle DB 系统的管理,包括性能管理和更改生命周期管理。
本课程详细介绍了数据库管理的一些方面的内容
• 中间件管理:提供对 Fusion Middleware 系统的管理

Oracle University and Error : You are not a Valid Partner use only
• 应用程序管理:提供对 Fusion Applications 的管理
注:要全面了解 Oracle Enterprise Manager Cloud Control 的使用,请参阅以下信息
资源:
• “使用 Oracle Enterprise Manager Cloud Control”课程
• “Oracle Enterprise Manager Cloud Control:安装和升级”课程
• “Oracle Enterprise Manager Cloud Control New Features”自学系列课程
• Oracle 学习库中的 Oracle Enterprise Manager 12c 演示 (URL
www.oracle.com/goto/oll)

Oracle Database 12c:新功能 - 面向管理员 2-6


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Cloud Control 组件
Oracle Management 特定于目标的
Agent 插件

Oracle University and Error : You are not a Valid Partner use only
受管主机

Oracle Management
Service
Cloud Control
Console
Oracle Management
Repository

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Enterprise Manager Cloud Control 包括四个主要组件,如下所示:


• Oracle Management Repository (OMR)
• Oracle Management Service (OMS)
• 包含特定于目标的插件的 Oracle Management Agent(OMA 或代理)
• Cloud Control Console
Oracle Management Agent 在主机上运行,并搜集有关这些主机环境的度量数据,以及使
用插件来监视可用性、配置和性能并管理在主机上运行的目标。这些代理可与 Oracle
Management Service 进行通信,以便上载它们及其插件所收集的度量数据。然后,OMS
会将其收集的数据存储在 Oracle Management Repository 中,OMS 可以从中访问这些数
据以执行自动和手动报告和监视。OMS 还可以与代理进行通信,以便组织对所监视目标
的管理。除了协调代理之外,OMS 还可运行 Cloud Control Console Web 页面,管理员
和用户可使用这些页面来监视和管理 Cloud Control 通过代理及其插件可见的计算环境并
生成相关报告。

Oracle Database 12c:新功能 - 面向管理员 2-7


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

组件和通信流

Cloud Control
通过 SSH 推送 应用程序

Oracle University and Error : You are not a Valid Partner use only
7788 / 7801
4889 / 4900
WebLogic
服务器
HTTP / HTTPS HTTP / HTTPS
管理员
OMA OMS
3872 / 3872

Oracle Management
JDBC 1521
Agent
OMR

Oracle Management Repository

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Cloud Control 组件之间的通信流使用方向箭头进行标示。代理与 OMS 之间的通信以及


OMS 与控制台之间的通信是双向的。本幻灯片中显示和列出的所有端口都是默认值,可
以在安装过程中进行更改(由安装程序在搜索可用端口时更改或者由您显式更改)。还可
以在安装后更改端口。
• 代理在端口 4889 上通过 HTTP 将数据上载到 OMS,或者在端口 4900 上通过
HTTPS 上载。(旨在能与 WAN 配合使用。)
• OMS 在端口 3872 上通过 HTTP 或 HTTPS 与代理通信。
• OMS 与 OMA 的通信使用单独端口的原因是,它们可以异步地同时与对方进行通信。
• OMS 在端口 1521 上通过 JDBC 与 OMR 进行通信。虽然 OMR 会将数据返回到
OMS,但不将此视为二者之间的单独通信;因此,流显示为从 OMS 到 OMR 的单
向流。
• Cloud Control 控制台用户在端口 7801 上通过 HTTPS 或者在端口 7788 上通过
HTTP 访问 Cloud Control Web 页。
了解用于 Cloud Control 安装的端口非常重要,特别是如果您在管理防火墙后面的主机或
者在应用其他网络限制时,因为将需要在这些端口上以及所示的方向上允许通信。

Oracle Database 12c:新功能 - 面向管理员 2-8


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle Management Repository

Oracle Management Repository (OMR):

Oracle University and Error : You are not a Valid Partner use only
• 位于 Oracle DB 中
• 包括属于 SYSMAN 的方案
• 必须安装在预先存在的数据库中
• 可以安装在 RAC 数据库中
注:使用 Oracle DB 的受限使用许可证

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

OMR 以包含大约 4000 个方案对象的组的形式安装在 Oracle DB 中,这些对象属于存储


在三个表空间中的 SYSMAN 用户:MGMT_ECM_DEPOT_TS、MGMT_TABLESPACE 和
MGMT_AD4J_TS。这些方案对象包含有关以下各项的信息:Enterprise Manager Cloud
Control 用户和管理员、Enterprise Manager Cloud Control 监视和管理的目标和应用程序
以及组、系统、意外事件和其他 Enterprise Manager Cloud Control artifact。OMR 是在
安装过程中在预先存在的数据库中创建的,为了可扩展性需求,可以在 Real Application
Clusters (RAC) 数据库中安装 OMR。在这种情况下,客户必须许可数据库的第二个节
点,这两个节点都需要 Oracle Real Application Clusters 许可证。
由于以下原因,不应将存放 OMR 的数据库用于其他任何应用程序:
• Enterprise Manager Cloud Control 不能与其他任何资源争用数据库。
• 将 OMR 数据库用于其他应用程序可能会限制您根据需要对 OMR 方案和数据库进行
升级和打补丁的能力。
• Enterprise Manager Cloud Control 包括仅可用于 OMR 的受限使用数据库许可证。
注:请参阅《Oracle Enterprise Manager Licensing Information 12c Release 1》中的
“Enterprise Manager Restricted-Use License”一节。

Oracle Database 12c:新功能 - 面向管理员 2-9


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

控制 Enterprise Manager Cloud Control 框架

WebLogic
EM

Oracle University and Error : You are not a Valid Partner use only
OMS
资料档案库 代理

组件控制实用程序

资料档案库 OMS 代理

sqlplus 或
srvctl emctl emctl
lsnrctl

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Enterprise Manager Cloud Control 框架中的每个组件都具有自己的实用程序,可以使用


这些实用程序监视、启动和停止组件。在许多情况下,除了简单的启动和停止功能之外,
这些实用程序还可以提供一些功能来配置组件。
RAC 数据库需要使用 Server Control 命令;对于单个实例,可以选择 SQL*Plus 或
Server Control。如果安装了 Oracle Restart,并向 OLR 注册了数据库,则可以使用
Server Control。
要启动和停止监听程序,请使用 Server Control 实用程序或 lsnrctl 命令。
示例:
srvctl stop database -d orcl -o immediate
srvctl start database -d orcl -o open

Oracle Database 12c:新功能 - 面向管理员 2-10


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

启动 Enterprise Manager Cloud Control 框架

要启动 Cloud Control 框架,请执行以下步骤:


1. 启动资料档案库数据库监听程序。

Oracle University and Error : You are not a Valid Partner use only
2. 启动资料档案库数据库实例。
3. 启动 OMS。
4. 启动 OMS/资料档案库服务器上的代理。
5. 启动受管服务器上的代理。

WebLogic
EM

OHS
资料档案库 OMS
代理

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

要启动整个 Enterprise Manager Cloud Control 框架,请执行以下步骤:


1. 启动资料档案库监听程序:
$ORACLE_HOME/bin/lsnrctl start
2. 启动资料档案库数据库实例:
$ORACLE_HOME/bin/sqlplus / as sysdba
SQL> startup
启动 OMS(包括 OHS 和 WebLogic 受管服务器):
$OMS_HOME/bin/emctl start oms
4. 启动代理(在 OMS/资料档案库主机上):
$AGENT_HOME/bin/emctl start agent
5. 启动受管服务器上的代理:
$AGENT_HOME/bin/emctl start agent
注:如果资料档案库具有 RAC 实例,请使用 SRVCTL 命令。

Oracle Database 12c:新功能 - 面向管理员 2-11


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

停止 Enterprise Manager Cloud Control 框架

要停止 Enterprise Manager Cloud Control 框架,请执行以


下步骤:

Oracle University and Error : You are not a Valid Partner use only
1. 停止受管服务器上的代理。
2. 停止 OMS/资料档案库服务器上的代理。
3. 停止 OMS。
4. 停止资料档案库数据库实例。

WebLogic
EM

OHS
代理 OMS 资料档案库

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

要停止整个 Enterprise Manager Cloud Control 框架,请执行以下步骤:


1. 停止受管服务器上的代理:
$AGENT_HOME/bin/emctl stop agent
2. 停止代理(在 OMS/资料档案库主机上):
$AGENT_HOME/bin/emctl stop agent
3. 停止 OMS(包括 OHS 和 WebLogic 受管服务器):
$OMS_HOME/bin/emctl stop oms
4. 停止资料档案库数据库实例:
$ORACLE_HOME/bin/sqlplus / as sysdba
SQL> shutdown immediate
注:如果资料档案库具有 RAC 实例,请使用 SRVCTL 命令。

Oracle Database 12c:新功能 - 面向管理员 2-12


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

不同目标类型
Enterprise Manager Cloud Control 可以监视、管理和维护
许多种不同类型的目标,其中包括:

Oracle University and Error : You are not a Valid Partner use only
• Oracle DB
• Oracle DB 监听程序 OMA

• Oracle Fusion Middleware 产品


• Oracle Application Server DB
• Oracle WebLogic Server 受管目标

• Oracle 应用产品,包括 E-Business Suite、


主机
SOA、Siebel 和 PeopleSoft
• Exadata 和 Exalogic
• Cloud Control 组件:OMR 和 OMS
• 第三方产品

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

目标是指 Enterprise Manager Cloud Control 所管理的实体。为了进行管理,它会使用特定


于目标类型的插件和特定于主机的代理。
Enterprise Manager Cloud Control 可以监视、管理和维护本幻灯片中列出的各种不同类型
的目标。环境发生更改时,您可以根据需要在 Enterprise Manager Cloud Control 中添加和
删除目标。常用的 Oracle 目标(包括 Enterprise Manager Cloud Control 组件,如 OMR
和 OMS)已在基本 Enterprise Manager Cloud Control 产品中进行预定义,但 Enterprise
Manager Cloud Control 具有一个开放式的 API,允许您创建定制目标。

Oracle Database 12c:新功能 - 面向管理员 2-13


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

目标搜索
服务器 A 主机目标信息
OMA 执行的
自动搜索
第三方

Oracle University and Error : You are not a Valid Partner use only
应用程序

OMA

E-Business
Suite

指导式搜索
应用程序
服务器 监听程序 数据库

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

在主机上安装了代理后,该代理需要查找其可以管理的目标。作为 Enterprise Manager


Cloud Control 管理员,您可以从 Enterprise Manager Cloud Control 控制台页面指导该
过程。通过指导式搜索,您可以指定要搜索的一系列目标类型,例如数据库和监听程序,
然后指定要在其中执行搜索的代理。搜索到任何新目标时,如果尚未在代理上安装相应
插件,将从 OMS 推送该插件,将在 OMR 中记录该目标,然后将开始监视。
还可以配置自动搜索以便以固定间隔运行,使代理以无人值守方式搜索已知目标,您可
以稍后查看结果并提升搜索到的目标成为受管目标。

Oracle Database 12c:新功能 - 面向管理员 2-14


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Enterprise Manager Cloud Control

Oracle University and Error : You are not a Valid Partner use only
版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

本幻灯片中的图片为 Oracle Enterprise Manager Cloud Control 中的“Enterprise


Summary(企业概要)”页面。该用户界面 (UI) 功能包括:
• 以图形和表格形式显示的信息
• 概要信息包含可查看相关详细信息的细化功能
• 用户可以从一组预定义页面中选择主页,也可以基于控制台中的任何页面显示主页
• 菜单驱动的导航
• 全局目标搜索
• 历史记录和收藏夹
• 可定制的目标主页(按用户)

Oracle Database 12c:新功能 - 面向管理员 2-15


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

用户界面
设置主页: 基于菜单的导航:
• 基于角色的预定义主页 • 将任意页面加入收藏夹,

Oracle University and Error : You are not a Valid Partner use only
• 任意页面 以实现快速访问。

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

用户界面增强功能
Enterprise Manager Cloud Control 中的用户界面已经在 Application Development
Framework (ADF) 中重写。登录到新的 UI 时,使用下拉菜单可在产品不同位置间导航。
• 选择自己的主页:首次登录到 Enterprise Manager 时,系统会根据角色为您提供
一组预定义主页以供选择。如果要管理数据库,则可以选择数据库主页。
如果这些主页都不适合,则可以选择 UI 中的任何页面作为您的主页。
• 将任意页面加入“收藏夹”,以实现快速访问。因为您经常管理某些目标,可以将
这些目标主页加入收藏夹,其方式与在浏览器中加入收藏夹的方式相同。但是,由
于在 Enterprise Manager 中加入收藏夹的页面会存储在资料档案库中,因此,您在
各个客户机之间移动时仍可使用这些收藏页面。
有关如何定制 Enterprise Manager Cloud Control 控制台的信息,请按照 Oracle 学习库
中的“Oracle Enterprise Manager 12c: Console Overview and Customization”演示进行
操作。

Oracle Database 12c:新功能 - 面向管理员 2-16


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

安全性:概览

Oracle University and Error : You are not a Valid Partner use only
Enterprise
Enterprise Manager Cloud Manager
Control 验证 目标验证

Enterprise Manager Cloud 身份证明管理


Control 授权

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

企业就绪框架:安全性
Enterprise Manager 安全系统可以分为四个部分(如图所示):
• Enterprise Manager Cloud Control 验证
• Enterprise Manager Cloud Control 授权和权限
• 身份证明管理(可以在此处定义主机身份证明)
• 目标验证(可以在此处使用主机身份证明)

Oracle Database 12c:新功能 - 面向管理员 2-17


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

使用身份证明安全地进行管理

• 集中存储身份证明以易于管理

Oracle University and Error : You are not a Valid Partner use only
• 支持管理无口令和强验证身份证明 EM 用户
– Kerberos 票证
权限
– SSH 密钥 钥
H密
SS
• 在用户间重用和共享(而不公开 票证
eros
身份证明的敏感内容) Ke
rb

• 受控制和受保护的访问
EM 用户 1
• 支持 sudo/powerbroker

EM 用户 2

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

身份证明的安全性
作为处理大量脚本和打补丁等强大操作的管理工具,Enterprise Manager 需要使用用于主
机、数据库以及一系列其他对象的多个身份证明。管理所有这些身份证明会是一个真正的
难题。
• 集中式存储可以方便此任务,因为您可以在其中命名和存储身份证明。
• 支持无口令和强验证身份证明,例如 Kerberos 票证和 SSH 密钥对。
• 身份证明可以在用户间重用和共享(而不公开口令等敏感内容)。通过使用权限向
用户授予对这些身份证明的访问权限,从而可以重用这些身份证明,而不需要知道
它们的内容。
• 通过权限来控制和保护对身份证明的访问权限。
• 通过 Enterprise Manager 身份证明子系统,您可以安全地将身份证明存储为首选项
或操作身份证明,然后可使用其执行不同的系统管理活动。Enterprise Manager 还
支持基于 sudo/powerbroker 的模拟。

Oracle Database 12c:新功能 - 面向管理员 2-18


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

区分身份证明

• 命名的身份证明

Oracle University and Error : You are not a Valid Partner use only
• 首选身份证明
• 默认身份证明
• 访问级别:
– View(查看): 访问以使用身份证明
– Edit(编辑): 更改身份证明(包括更改其名称和口令)
– Full(完全): 完整访问权限(包括删除身份证明的能力)
• 使用分类:作业、集合和监视

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

身份证明类型
作为 Enterprise Manager 管理员,您还可以在 Enterprise Manager 中将身份证明(用户
名/口令、公钥-私钥对或 X509v3 证书)存储为命名的身份证明,在执行运行作业、打补丁
以及其他系统管理任务等操作时使用。对象将引用或指向命名的身份证明。它们是“占位
符”,用于方便口令更改等。
您可以存储、访问和修改固定数量的基于用户名/口令的身份证明,将其作为首选身份证
明,通过在 Oracle Management Repository 中存储目标登录身份证明来简化对受管目标
的访问。
可以为特定目标的类型设置默认身份证明,其将可用于该目标类型的所有目标。
可以授予的三种级别的访问权限为:
• 查看访问权限:使用身份证明
• 编辑访问权限:更改身份证明,包括更改其名称和口令
• 完全访问权限: 完整访问权限,包括删除命名的身份证明的能力
还可以按使用情况来对身份证明进行分类,例如作业身份证明(由作业系统使用)、集合
身份证明和监视身份证明(由 OMA 使用)。

Oracle Database 12c:新功能 - 面向管理员 2-19


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

核心概念和定义:
• 身份证明类型是目标类型所支持的验证类型。例如,主机可以支持基于用户名/口令
的验证、公钥验证或 Kerberos 验证。支持各种验证方案,包括本机代理验证和
SSH。
• 身份证明集是身份证明的占位符。可以使用身份证明集将身份证明与使用它的系统分
离开来。通过身份证明集,您可以更改其与某个目标的命名身份证明的映射,而无需
编辑使用该身份证明的系统。例如,您可以具有用于打补丁任务的身份证明集。

Oracle University and Error : You are not a Valid Partner use only
• 身份证明存储是 Enterprise Manager 管理员的所有命名身份证明的逻辑存储。
可以通过以下项定义身份证明:
• 身份证明名称:使用身份证明存储中的身份证明名称来引用身份证明。
• 身份证明集:使用身份证明集名称和目标名称来引用身份证明。查找获取与身份证明
集名称和目标名称关联的身份证明。
• 直接值:通过提供属性值来指定身份证明。此类引用引用的不是身份证明存储中的身
份证明。
有关如何设置身份证明的信息,请按照以下演示进行操作:
• “Oracle Enterprise Manager 12c: Create and Use Named Credentials”,位于
Oracle 学习库中
• “Oracle Enterprise Manager 12c: Create SSH Key Named Credentials”,位于
Oracle 学习库中
• OBE“Enterprise Ready Framework: Create and Use Credentials”

Oracle Database 12c:新功能 - 面向管理员 2-20


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

答案:f
f.
a. 主机
b. 数据库

以上所有项
e. OMS 和 OMR
d. Web 应用程序
c. 应用程序服务器
测验

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle Database 12c:新功能 - 面向管理员 2-21


可以使用 Enterprise Manager Cloud Control 管理哪些目标?

Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Enterprise Manager Database Express


体系结构
分派程序 监听程序
控制台

Oracle University and Error : You are not a Valid Partner use only
Web 浏览器
共享
服务器

Oracle DB 实例
请求 Oracle Web Server
EM Express Servlet
XML - 验证
页面 - 会话管理
- 压缩
- 高速缓存

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Enterprise Manager (EM) Database Express 是一个轻量级管理工具。该工具可为单个


Oracle DB(或数据库集群)提供基于 Web 的现成管理解决方案,包括性能监视、配置
管理、管理、诊断和优化。EM Database Express 的目标是公开随数据库安装提供的主
要 Enterprise Manager 数据库功能,其开发成本较低并且在数据库中占用的空间很少。
EM Database Express 占用的空间很少,只有 50-100 MB。它使用最低限度的 CPU 和
内存开销在数据库内运行,因为数据库仅运行 SQL 调用,而在浏览器中执行 UI 呈现。
EM Express UI 使用基于 Web 的控制台与 XML DB 中提供的内置 Web 服务器进行通
信。处理来自控制台的请求时,是 EM Express servlet 在处理这些请求,包括验证、会
话管理、压缩和高速缓存。该 servlet 处理报告的请求并返回由 Web 浏览器呈现的 XML
页面。通常每个页面只有一个请求,以减少与数据库之间的往返次数。

Oracle Database 12c:新功能 - 面向管理员 2-22


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

配置 EM Database Express

为每个数据库实例配置 HTTP 或 HTTPS 监听程序端口:


• 验证 DISPATCHERS 参数。

Oracle University and Error : You are not a Valid Partner use only
dispatchers=(PROTOCOL=TCP)(SERVICE=sampleXDB)

• 使用 DBMS_XDB_CONFIG.setHTTPsPort 过程。
exec DBMS_XDB_CONFIG.setHTTPsPort(5500)

• 通过以下 URL 连接到 EM Database Express 控制台:


https://hostname:5500/em

• 对每个实例使用一个不同的端口。
• 浏览器需要 Flash 插件。

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

对于 Oracle Database 12c,EM Database Control 不再可用,由 EM Database Express


取代。EM Database Express 可在 Database Configuration Assistant (DBCA) 中通过
一次单击来进行配置。
EM Database Express 要求安装 XMLDB 组件。所有 Oracle 12.1.0 版数据库都将安装
XMLDB。
要在数据库中激活 EM Database Express,请验证 DISPATCHERS 初始化参数是否已至
少为使用 TCP 协议的 XMLDB 服务配置了一个分派程序。使用
DBMS_XDB_CONFIG.setHTTPsPort(使用 SSL 进行保护)或
DBMS_XDB_CONFIG.setHTTPPort 过程配置在服务器上使用的端口。如果您配置了
安全连接,请使用本幻灯片中显示的 URL 连接到 EM Database Express 控制台。如果
您是使用 setHTTPPort 过程配置的端口,请使用类似 http://hostname:5500/em
的 URL。
如果在同一台计算机上有多个要监视的数据库实例,则每个实例需要使用不同的端口。
要查找用于每个数据库实例的端口,请根据配置过程使用以下任一语句:
SQL> SELECT dbms_xdb_config.gethttpsport FROM DUAL;
SQL> SELECT dbms_xdb_config.gethttpport FROM DUAL;

Oracle Database 12c:新功能 - 面向管理员 2-23


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

装有 Flash 插件。

Oracle Database 12c:新功能 - 面向管理员 2-24


EM Database Express 会使用 Shockwave Flash (SWF) 文件,因此 Web 浏览器必须安

Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

主页

Oracle University and Error : You are not a Valid Partner use only
版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

EM Database Express 主页提供了有关数据库实例状态和活动的整体视图。


EM Database Express 基于数据库中的通用报告框架而构建。因此,EM Database
Express 只有在数据库打开时才可用。这意味着不能使用 EM Database Express 来启动
数据库。需要数据库更改状态的其他操作(如启用或禁用 ARCHIVELOG 模式)也在 EM
Database Express 中不可用。

Oracle Database 12c:新功能 - 面向管理员 2-25


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

菜单

Oracle University and Error : You are not a Valid Partner use only
版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

本幻灯片显示了 EM Database Express 的菜单布局。主菜单项有四个:“Configuration


(配置)”、“Storage(存储)”、“Security(安全性)”和“Performance(性
能)”。本幻灯片显示了每个主菜单项中的菜单选项。
“Configuration(配置)”菜单包括:“Initialization Parameters(初始化参数)”、
“Memory(内存)”、“Database Feature Usage(数据库功能使用情况)”和
“Current Database Properties(当前数据库属性)”。“Storage(存储)”菜单包
括:“Tablespaces(表空间)”、“Undo Management(还原管理)”、“Redo Log
Groups(重做日志组)”、“Archive Logs(归档日志)”和“Control Files(控制文
件)”。“Security(安全性)”菜单包括:“Users(用户)”、“Roles(角色)”和
“Profiles(概要文件)”。“Performance(性能)”菜单包括:“Performance Hub
(性能中心)”和“SQL Tuning Advisor(SQL 优化指导)”。
在每个菜单区域中,通过选择菜单选项会转至可管理特定区域的页面。例如,选择
“Configuration(配置)”>“Initialization Parameters(初始化参数)”会显示一个页
面,可在该页面中搜索、查看和修改当前和 SPFILE 初始化参数。在许多页面上,选择
“Create Tablespace(表空间)”等操作时,会弹出一个对话框,用于指定参数,然后
它会创建 SQL 命令来执行该操作。您可以在提交 SQL 命令之前查看该命令,也可以复
制并粘贴 SQL 命令。

Oracle Database 12c:新功能 - 面向管理员 2-26


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED


资源:

Oracle Database 12c:新功能 - 面向管理员 2-27


“Performance New Features for Oracle Database 12c”自学系列课程
注:要全面了解 Oracle Enterprise Manager Database Express 的使用,请参阅以下信息

Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

答案:a、b
据库管理功能:
a. 单实例数据库
b. 集群数据库实例
测验

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle Database 12c:新功能 - 面向管理员 2-28


Enterprise Manager Database Express 为以下哪项提供数

Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Database Configuration Assistant


多租户容器数据库和可插入数据库

Oracle University and Error : You are not a Valid Partner use only
c

c
c

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

使用 Oracle Database 12c 中的 Database Configuration Assistant 可以创建和管理新的


数据库类型:
• 多租户容器数据库
• 可插入数据库
这些新类型数据库的创建和管理在下面的“多租户容器数据库和可插入数据库”模块中进
行了介绍。

Oracle Database 12c:新功能 - 面向管理员 2-29


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle SQL Developer:连接


使用 DBA 连接在 DBA 导航器中执行 DBA 操作:

Oracle University and Error : You are not a Valid Partner use only
版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle SQL Developer 是一种工具,可用于以图形方式独立浏览和开发数据库方案对象,


并可执行数据库管理任务。通过 SQL Developer,具有数据库管理员权限的用户便可查看
和编辑与 DBA 相关的某些信息并执行 DBA 操作。要执行 DBA 操作,请使用 DBA 导航
器,该导航器与连接导航器类似,因为所有已定义的数据库连接都具有相应的节点。如果
看不到 DBA 导航器,请选择“View(查看)”,然后选择“DBA”。您只应添加相关数
据库用户具有 DBA 权限或至少对指定数据库上的所需 DBA 导航器操作具有权限的连接。

Oracle Database 12c:新功能 - 面向管理员 2-30


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle SQL Developer:DBA 操作


通过 DBA 导航器执行 DBA 任务:

Oracle University and Error : You are not a Valid Partner use only
版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

可以执行的 DBA 操作如下:


• 可插入数据库的启动/关闭
• 数据库配置:“Initialization Parameters(初始化参数)”、“Automatic Undo
Management(自动还原管理)”、“Current Database Properties(当前数据库属
性)”、“Restore Points(还原点)”、“View Database Feature Usage(查看
数据库功能使用情况)”
• 数据库状态查看
• 数据泵导出和导入作业
• RMAN 备份/恢复操作
• 资源管理器配置
• 调度程序设置
• 安全配置,如审计设置、概要文件、角色、用户
• 归档日志、控制文件、数据文件、重做日志组、表空间和临时表空间组的存储配置

Oracle Database 12c:新功能 - 面向管理员 2-31


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

答案:a
b. 错
a. 对
测验

Oracle SQL Developer 允许数据库管理操作。

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle Database 12c:新功能 - 面向管理员 2-32


Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

小结

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

Oracle University and Error : You are not a Valid Partner use only
• 访问和定制 Oracle Enterprise Manager Cloud Control
界面
• 设置命名的身份证明
• 在 Oracle Enterprise Manager Database Express 中
导航
• 将 DBCA 与新功能配合使用
• 使用 SQL*Developer 界面

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle Database 12c:新功能 - 面向管理员 2-33


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

练习

• 2-1:访问 Enterprise Manager Cloud Control

Oracle University and Error : You are not a Valid Partner use only
• 2-2:添加数据库实例作为 EM CC 监视的新目标
• 2-3:创建新的命名的身份证明
• 2-4:使用命名的身份证明

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

查看“Oracle Enterprise Manager 12c: Console Overview and Customization”演示(除


非您的教师刚刚演示了那些主题)(8 分钟)。
有关相关主题的可选演示包括:
• “Oracle Enterprise Manager 12c: Create an Enterprise Manager Administrator”
(6 分钟)
• “Oracle Enterprise Manager 12c: Create and Use Named Credentials”(6 分钟)
• “Oracle Enterprise Manager 12c: Create SSH Key Named Credentials”(3 分钟)
• “Oracle Enterprise Manager 12c: Discover and Promote Unmanaged Hosts and
Targets”
有关相关主题的可选 Oracle by Example (OBE):
• “Oracle Enterprise Manager 12c Enterprise Ready Framework: Create and Use
Credentials”(60 分钟)
• “Oracle Enterprise Manager 12c Enterprise Ready Framework: Create a Super
Administrator Account”(5 分钟)

Oracle Database 12c:新功能 - 面向管理员 2-34


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

3-1
课程单元

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。


多租户容器数据库和可插入数据库

Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

多租户容器数据库

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。


和可插入数据库的基本知识

Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle Database 12c 新增功能和增强功能


Enterprise Manager Enterprise Manager Enterprise Manager
Cloud Control Database Express
其他工具
和其他工具

CDB 和 PDB 基础功能 CDB 和 PDB 创建 CDB 和 PDB 管理

Oracle University and Error : You are not a Valid Partner use only
热图和自动数据优化 联机数据文件移动
ADO 和存储
数据库中归档和期间有效性 期间历史记录

安全性 统一审计 权限分析 数据编写

HA RMAN

易管理性 DB 操作 实时 ADDM 比较时段 ADDM ADR


12.1.0.2 12.1.0.2

内存中列存储 整个数据库内存中高速缓存
性能
自动大表高速 12.1.0.2
SQL 优化 资源管理器 索引、表
缓存

数据泵、SQL*Loader 和外部表 分区
其他
JSON 12.1.0.2
SQL

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

数据库合并:Oracle 多租户是 Oracle Database 12c 中的新选项。使用多租户体系结


构,Oracle DB 可以包含一组可移植的方案、对象和相关结构,面向应用程序作为一个
逻辑上的单独数据库出现。

Oracle Database 12c:新功能 - 面向管理员 3-3


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

课程目标

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

Oracle University and Error : You are not a Valid Partner use only
• 描述多租户体系结构
• 描述根和可插入数据库容器
• 区分根与可插入数据库
• 说明可插入数据库插入
• 列出各个方面的影响

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

注释
要全面了解多租户体系结构和使用方法,请参阅 Oracle 文档中的以下指南:
• 《Oracle Database Administrator’s Guide 12c Release 1 (12.1)》
请参阅 Oracle 学习库中的其他信息资源:
• “Oracle Database 12c New Features Demo Series”演示:
- Multitenant Architecture
- Oracle Database 12c Multitenant Architecture Diagram Overview
- Basics of CDB and PDB Architecture
• Oracle By Example (OBE):
- Oracle Database 12c Multitenant OBEs
- Performing Basic Tasks in Oracle Multitenant
请参阅 MOS 简讯:
• Oracle Multitenant Option - 12c: Frequently Asked Questions(文档 ID 1511619.1)
请参阅 Oracle 技术网中的“Oracle Multitenant”白皮书:(http://www.oracle.com/
technetwork/database/multitenant/overview/multitenant-wp-12c-2078248.pdf)
Oracle Database 12c:新功能 - 面向管理员 3-4
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

难题

许多 Oracle 客户都有大量构建于 Oracle RDBMS 上的“部

Oracle University and Error : You are not a Valid Partner use only
门”应用程序。它们:
• 对其部署硬件的使用不占多大百分比
• 具有实例和存储空间开销,从而无法在同一物理和存储
服务器上放置大量“部门”数据库
• 不是非常复杂,不需要一个全职管理员完全专注于它们
• 不需要大量时间来对所有应用程序打补丁或升级

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle Database 12c 引入了新的体系结构,从而您可以在单个 Oracle DB 实例中包含许


多可插入数据库。使用 Oracle Database 12c 中的 Oracle 多租户新选项有什么好处?
当前,许多 Oracle 客户都有大量构建于 Oracle RDBMS 上的“部门”应用程序。
• 这些应用程序极少使用其部署所在硬件的大量空间百分比。大量实例以及所有这些
小数据库的存储分配量将阻止在同一物理和存储服务器上放置这些数据库。
• 而且,这些应用程序通常不是非常复杂,不需要一个全职管理员完全专注于它们。
• 为了更好地利用硬件和 DBA 资源,客户将愿意将这些部门应用程序合并到单个
Oracle RDBMS 部署中。
使用 Oracle 多租户选项,DBA 可以将大量小的部门数据库应用程序合并为单个较大的
RDBMS 安装。

Oracle Database 12c:新功能 - 面向管理员 3-5


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

12c 之前版本

11g 发行版 2 的 Oracle DB


实例

系统全局区

服务器

Oracle University and Error : You are not a Valid Partner use only
进程结构

实例

数据库

数据库(存储结构)

多个非 CDB 不共享任何项:


• 过多后台进程
• 高共享/进程内存
• Oracle 元数据的许多副本

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

在 Oracle 11g 数据库中,唯一支持的一种数据库是非 CDB。旧的体系结构称为非 CDB


体系结构(术语“非 CDB”将用作 12.1 之前版本的数据库的一种简称,这类数据库使用
12.1 之前版本的体系结构),需要它自己的实例,因而需要它自己的后台进程、SGA 的
内存分配并且需要在它的数据字典中存储 Oracle 元数据。
您需要管理小的部门数据库应用程序时,必须创建与应用程序一样多的数据库,因此乘以
实例数量,从而得到后台进程数量、SGA 的内存分配,并且为这些数据库的所有数据字
典预配足够存储。
您需要将应用程序升级到新版本时,必须升级每个数据库,这会花费 DBA 很多时间。

Oracle Database 12c:新功能 - 面向管理员 3-6


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

新的多租户体系结构:优点

• 以更低成本在集中管理的平台中操作多个数据库:
– 实例开销较低

Oracle University and Error : You are not a Valid Partner use only
– 存储成本较低
• 降低 DBA 资源成本并维护安全性
– 无应用程序更改
– 快速且易于预配
— 节约打补丁和升级的时间
— 将以下各项的职责分离开来:
— 不同的应用程序管理员
— 应用程序管理员和 DBA
— 应用程序中的用户

• 提供隔离

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

将许多非 CDB 数据库合并到单个平台中将降低实例开销,避免数据字典的冗余副本,从


而避免存储分配,并受益于快速预配,节约升级时间,通过职责分离和应用程序隔离实现
更好的安全性。将数据库合并在一起的新的 12c 数据库是多租户容器数据库或 CDB 以及
CDB 内合并的数据库、可插入数据库或 PDB。
DBA 资源成本将降低并且:
• 无应用程序更改并且非常快速地进行预配:可以快速预配新数据库。可以快速创建
已填充数据库的克隆。可以从一个平台上已填充数据库的 CDB 中快速移走该数据库
并快速将其插入另一个平台上的 CDB。非 CDB 可以快速插入 CDB 中。
• 快速升级 Oracle DB 版本以及打补丁:升级许多 PDB 的成本(花费的时间和所需的
人力)是升级单个 Oracle DB 实例一次的成本。您还可以升级单个 PDB,方法为移
走该 PDB,然后将其插入位于不同 Oracle DB 版本的 CDB 中。

Oracle Database 12c:新功能 - 面向管理员 3-7


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

多租户体系结构维护:
• 安全的职责分离:应用程序的管理员通过连接到实施其后端的特定 PDB,可以执行
所有必需的任务。但是,连接到某个 PDB 的人员无法看到其他 PDB。要作为实体
管理 PDB(例如,创建或删除或移走或插入一个 PDB),系统管理员需要连接到
CDB。对于这些特定任务,需要授予新的权限。
• 应用程序隔离,例如,除非使用 Database Vault,否则可能无法手动实现该隔离。
隔离的一个很好的示例是字典分离,从而 Oracle DB 可以相互分离以及与 CDB 自身

Oracle University and Error : You are not a Valid Partner use only
分离地管理多个 PDB。

Oracle Database 12c:新功能 - 面向管理员 3-8


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

多租户体系结构的其他好处

• 确保与非 CDB 的完全向后兼容性

Oracle University and Error : You are not a Valid Partner use only
• 使用 RAC 和 Data Guard 进行完全操作
• 受到 Enterprise Manager 支持
• 与资源管理器集成
• 允许对多个数据库进行集中管理
– 备份或灾难恢复
– 打补丁和升级

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

• 多租户体系结构可以确保向后兼容原则。一个示例就是数据字典视图。对于特定应
用程序,DBA_OBJECTS 视图在 PDB 中与在非 CDB 中显示相同结果。
• 多租户体系结构设计为可与 RAC 完全互操作。RAC 中的每个实例作为一个整体打
开 CDB。会话仅看到其连接的单个 PDB。
• Enterprise Manager 集成 CDB 并对 CDB 管理员和 PDB 管理员的职责分离进行
建模。
- CDB 可以定义为目标。可以为 Enterprise Manager 用户提供身份证明,以在
此类目标中担当 CDB 管理员。
- PDB 可以设置为 CDB 目标的子目标。可以为 Enterprise Manager 用户提供身
份证明,以在此类目标中担当 PDB 管理员。如果已经使用身份证明设置了
Enterprise Manager 用户以担当特定 PDB 的 PDB 管理员,该用户可以连接到
该 PDB 并且不知道同一 CDB 中存在对等 PDB。而且,当目的是执行应用程
序管理员的职责时,此 Enterprise Manager 用户不知道环境是 CDB,而不是
非 CDB。

Oracle Database 12c:新功能 - 面向管理员 3-9


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED


CDB。

Oracle Database 12c:新功能 - 面向管理员 3-10


后兼容原则表示资源管理器必须以与非 CDB 中完全相同的方式在 PDB 内运行。
使用新的 PDB 间功能扩展了资源管理器,允许管理 CDB 内 PDB 之间的资源。向

升级包含 n 个 PDB 的整个 CDB 时,将实现以升级一个非 CDB 的成本升级 n 个非

Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

配置
RAC 服务
实例

Oracle University and Error : You are not a Valid Partner use only
hr sale acct
PDB 服务
I1 I2 I3

CDB
实例
pdba 非 CDB RAC PDB
实例 PRODDB 实例 服务
pdbb
iprod
pdbc 非 CDB
icdb1
pdba pdbb pdbc
crac1 crac2 crac3
PDB

PDBA PDBB PDBC


CDB CDB1 PDB

PRODDB PDBA PDBB PDBC


CDB CRAC
非 CDB

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

哪些是 Oracle Database 12c 中可能的实例/数据库配置?


在 Oracle Database 11g 中,每个数据库实例与一个且仅一个数据库相关联。在 RAC 环
境中,多个实例可以与一个数据库关联。
在 Oracle Database 12c 中,一个实例将与整个 CDB 关联。
如果同一个服务器上有多个数据库,则每个非 CDB 或 CDB 具有单独的相异实例。实例
不能在非 CDB 和 CDB 之间共享。
在 Oracle Database 12c 中,有三个可能的配置选项:
• 多租户配置:通常每个 CDB 有多个 PDB,但是任何时候可以一次存放零个、一个
或许多 PDB,从而利用新体系结构的全部功能,这需要授权的 Oracle 多租户选项
• 单租户配置:新体系结构的特殊案例,这不需要授权的选项
• 非 CDB:旧的 Oracle Database 11g 体系结构

Oracle Database 12c:新功能 - 面向管理员 3-11


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

多租户容器数据库
实例
服务器
系统全局区
单实例
进程结构

Oracle University and Error : You are not a Valid Partner use only
多租户
容器数据库 多租户容器数据库 CDB
数据文件 控制文件 重做日志文件

单 DB 共享: 根
• 后台进程
• 共享/进程内存 数据文件 数据文件 数据文件
• Oracle 元数据

应用程序 1 SALES HR

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

本幻灯片是将部署到三个不同的非 CDB 中的三个应用程序合并为一个应用程序的示例。


其中的图显示了具有四个容器的多租户容器数据库:根和三个可插入数据库。每个可插入
数据库具有其自己的专用应用程序,由其自己的 DBA 或由容器管理员进行管理,该管理
员是根容器的 SYS 用户,一个公用用户。此公用 SYS 用户可以管理根容器和每个可插入
数据库。
可插入数据库是一组数据库方案,面向用户和应用程序作为一个逻辑上的单独数据库出现。
但在物理级别,多租户容器数据库与非 CDB 一样有一个数据库实例和多个数据库文件。
不更改任何项:既不更改客户机代码,也不更改数据库对象。
很容易将非 CDB 插入 CDB。CDB 可避免以下冗余:
• 后台进程
• 内存分配
• 多个数据字典中的 Oracle 元数据
将多个应用程序归为一组的 CDB 最后具有一个实例,因此在根容器中有一组后台进程、
一个 SGA 分配和一个数据字典,这些是所有 PDB 共有的,而每个 PDB 将维护自己的应
用程序数据字典。
当应用程序需要打补丁或升级时,仅在 CDB 中执行一次维护操作,随后,所有应用程序
都将同时更新。
Oracle Database 12c:新功能 - 面向管理员 3-12
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

原始安装

在初始数据库创建之后,唯一的对象是 Oracle 提供的对象

Oracle University and Error : You are not a Valid Partner use only
。 OBJ$ TAB$ SOURCE$

Oracle 系统数据

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

如何在非 CDB 中的多个应用程序之间共享 Oracle 元数据?


创建 Oracle DB 之后,随即数据字典中的唯一对象是 Oracle 提供的对象。此时,没有用
户数据。
数据库中的唯一方案是数据库系统所需的那些方案。

Oracle Database 12c:新功能 - 面向管理员 3-13


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

添加用户数据

在非 CDB 中,将添加用户数据。元数据将与数据字典中

Oracle University and Error : You are not a Valid Partner use only
Oracle 提供的数据混合存储。

OBJ$ TAB$ SOURCE$ EMP DEPT

… …

Oracle 系统数据与用户元数据混合 用户数据

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

在非 CDB 中,将添加用户和用户数据。
最佳实践是在专用于用户数据的表空间中添加此数据。在单独表空间中存储数据有助于更
容易地保护和传输数据。不过,元数据在数据字典中都混合在一起:
• 对象定义
• 用户定义
• PL/SQL 代码
• 其他用户创建的对象

Oracle Database 12c:新功能 - 面向管理员 3-14


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

分离 SYSTEM 和用户数据
多租户容器数据库
OBJ$ TAB$ SOURCE$

Oracle University and Error : You are not a Valid Partner use only
… 系统的容器

仅 Oracle 元数据 应用程序的容器

OBJ$ TAB$ SOURCE$ EMP DEPT

… …

仅用户元数据 用户数据

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

在 Oracle 12c 中,引入了容器的概念来将 Oracle 提供的对象和用户数据(包括元数据)


分离到不同容器中。
可将其视为水平分区。在存放数据字典的每个容器中有一个 SYSTEM 表空间。
• 在仅 Oracle 元数据容器(其包含 Oracle 提供的对象的元数据)中有一个字典。
• 在存放用户元数据的用户容器中有一个字典。

Oracle Database 12c:新功能 - 面向管理员 3-15


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

USER 容器中的 SYSTEM 对象


多租户容器数据库
OBJ$ TAB$ SOURCE$

必须可以从用户容器查看

Oracle University and Error : You are not a Valid Partner use only
… Oracle 提供的对象。

仅 Oracle 元数据

OBJ$ TAB$ SOURCE$ EMP DEPT

… …

仅用户元数据 用户数据

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

多租户体系结构的一个目标是每个容器都与一个应用程序具有一对一关系。
分离元数据是第一步,第二步是允许“用户”容器内的应用程序或用户访问 Oracle 提供
的对象。
可能已经在每个用户容器中复制了 Oracle 对象,但是这将占用许多空间,并且将需要在
每次 Oracle 提供的对象更改(例如,通过补丁程序)时升级每个用户容器。
简单的解决方案是提供从用户容器到 Oracle 提供的对象的指针,从而允许访问这些“系
统”对象而不需要在用户容器中复制这些对象。用户容器具有成为数据库应用程序的完整
环境所需的数据。应用程序可以像在非 CDB 中那样在容器中运行。

Oracle Database 12c:新功能 - 面向管理员 3-16


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

命名容器
多租户容器数据库
• Oracle 提供的容器称为

Oracle University and Error : You are not a Valid Partner use only
根 根容器。
• 用户容器是可插入数据
库 (PDB)。
仅 Oracle 元数据

PDB

仅用户元数据 用户数据

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle 提供的对象位于称为根容器(名为 CDB$ROOT)的容器中。用户容器称为可插入


数据库 (PDB),其名称是您创建该容器或者将其插入 CDB 时为其提供的名称。

Oracle Database 12c:新功能 - 面向管理员 3-17


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

预配可插入数据库
多租户容器数据库

Oracle University and Error : You are not a Valid Partner use only
假定数据文件
位于支持
更改时复制
的文件系统上。

多种方法:
• 从 PDB$SEED 可插入数据库创建 PDB。
• 插入非 CDB。
• 将非 CDB 克隆到 CDB 中,或者将 PDB 克隆到同一或
其他 CDB 中。
• 将移走的 PDB 插入 CDB 中。

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

要创建新 PDB,请使用提供的种子 PDB。此种子容器名为 PDB$SEED 并且是每个 CDB


的一部分。创建新 PDB 时,将克隆种子 PDB,并为新的 PDB 提供您指定的名称。该操
作非常快。以秒为单位测量该项。时间主要用来复制文件。
有四种方法来预配可插入数据库:
• 从 PDB$SEED 可插入数据库创建新 PDB:例如,针对全新的应用程序实施。
• 从非 CDB 创建新的 PDB:将非 CDB 作为 PDB 插入 CDB,作为移植策略的一部分。
这也是将非 CDB 合并到 CDB 中的一种很好的方式。
• 从某个 PDB 从另一 PDB 克隆到同一或其他 CDB 中:应用程序测试就是这种方法的
一个示例。
• 例如,将移走的 PDB 插入 CDB 中,而不是将多租户容器数据库从一个发行版升级
到另一个发行版,您可以从一个 Oracle DB 发行版移走可插入数据库,然后将其插
入更高发行版中新创建的多租户容器数据库。

Oracle Database 12c:新功能 - 面向管理员 3-18


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

在多租户容器数据库内互操作
多租户容器数据库

Oracle University and Error : You are not a Valid Partner use only

快速 CDB 内 db 链接

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

使用存放多个 PDB 的多租户体系结构,这些曾经分离的非 CDB 现在可以位于单个实例


中,共享内存、磁盘和 CPU 资源,但维护应用程序分离。
这些数据库通过使用数据库链接共享数据。数据库链接仍起作用,但是现在因为“链接”
通信不离开实例,所以该链接非常快。

Oracle Database 12c:新功能 - 面向管理员 3-19


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

多租户容器数据库体系结构
实例
服务器 系统全局区
PDBid2 PDBid3 PDBid4 PDBid2 PDBid4
实例
进程结构

Oracle University and Error : You are not a Valid Partner use only
多租户容器
数据库
数据文件 控制文件 重做日志
文件
SYSTEM UNDO

单 DB 共享: TEMP
SYSAUX
• 后台进程
• 共享/进程内存 根容器
• Oracle 元数据
• 重做日志文件 数据文件 数据文件 数据文件
• 控制文件 SYSTEM SYSTEM
• 还原表空间 TEMPO TEMP2
SYSAUX SYSAUX TBS2

种子 PDB SALES PDB HR PDB

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

本幻灯片中的图显示了具有四个容器的 CDB:根、种子和两个 PDB。


这两个应用程序使用单个实例并单独进行维护。
在物理级别,CDB 与非 CDB 一样有一个数据库实例和多个数据库文件。
• 重做日志文件是整个 CDB 共有的。其中包含的信息注释有发生更改的 PDB 的标识。
Oracle GoldenGate 已进行了增强,以识别 CDB 的重做日志的格式。CDB 中的所
有 PDB 都共享 CDB 的 ARCHIVELOG 模式。
• 控制文件是整个 CDB 共有的。控制文件已更新,以反映插入的 PDB 的任何附加表
空间和数据文件。
• 每个 CDB 实例仅有一个 UNDO 表空间。
• 根或 PDB 只能有一个默认临时表空间或表空间组。每个 PDB 可以具有供该 PDB
中本地用户或公用用户使用的临时表空间。
• 每个容器都将自己的数据字典存储在相应的 SYSTEM 表空间(其中包含自己的元数
据)中,还有一个 SYSAUX 表空间。
• 根据应用程序的需要,PDB 可以在 PDB 中创建表空间。
• 每个数据文件都与名为 CON_ID 的特定容器相关联。

Oracle Database 12c:新功能 - 面向管理员 3-20


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

容器
V$CONTAINERS 中有两种类型的容器:
• 根容器:
– 在创建 CDB 时创建的第一个容器

Oracle University and Error : You are not a Valid Partner use only
– 必需
– Oracle 系统提供的公用对象和元数据
– Oracle 系统提供的公用用户和角色
• 可插入数据库容器 (PDB):
– 应用程序的容器:
— 表空间(永久和临时)
— 方案/对象/权限
— 已创建/已克隆/已移走/已插入
– 特定种子 PDB:
— PDB$SEED 提供新 PDB 的快速预配
– 限制一个 CDB 中只能有 253 个 PDB(包括种子)
– 限制一个 CDB 中只能有 1024 个服务

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

总之,CDB 是一个包含根的 Oracle DB,并最终包含多个可插入数据库。


CDB 中的可插入数据库 (PDB) 是什么?PDB 是水平分区的数据字典的较低部分加上用户
的限额使用数据。
非 CDB 不能包含 PDB。
使用多租户体系结构,Oracle DB 可以包含方案、方案对象和非方案对象的可移植集合,
面向 Oracle Net 客户机作为一个单独数据库出现。为了 PDB 存在和运行,CDB 要求在
创建 CDB 时生成特定类型的容器,即根容器。根是存储公用用户的系统提供的容器,这
些容器可以连接到多个容器以及系统提供的元数据和数据。例如,系统提供的 PL/SQL 程
序包的源代码存储在根中。存在根容器时,您可以创建其他类型的容器,即 PDB。
CDB 中仅有一个种子 PDB。种子 PDB 是用于创建新 PDB 的系统提供的模板。
CDB 最多可以包含 253 个 PDB,包括种子。因此,可以创建 252 个用户定义的 PDB。
V$CONTAINERS 视图显示包括根在内的所有容器。

Oracle Database 12c:新功能 - 面向管理员 3-21


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

问题:根与 PDB
CDBA
什么属于 CDB 而不属于特定容器?
• 控制文件和重做日志文件

Oracle University and Error : You are not a Valid Partner use only
什么位于根中而不在 PDB 中?
UNDO
• UNDO 表空间(对于每个实例)

• 系统提供的元数据 表 SYS.OBJ$ NAME TYPE

TAB$ 2
• 共享的 Oracle 提供的数据 USER$ 2

– PL/SQL Oracle 提供的程序包


NAME
(DBMS_SQL …)
PDB_SALES
表 SYS.SERVICE$
– PDB 服务名称 PDB_HR

• 提供 PDB 中的信息的 CDB 字典视图 TABLE_NAME CON_ID

• CDB 资源管理器计划 视图 CDB_xxx


EMPLOYEES 1

TEST 2

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

什么属于 CDB 而不属于特定容器?


• 控制文件和重做日志文件
什么位于根中而不在 PDB 中?
• RAC 数据库的每个实例的 UNDO 表空间
• Oracle 提供的元数据
• 共享的 Oracle 提供的数据
• 提供 PDB 中的信息的 CDB 视图
• CDB 资源管理器计划,允许在 CDB 内的 PDB 之间进行资源管理
注:多租户容器数据库管理员 (CDBA) 负责管理 CDB。

Oracle Database 12c:新功能 - 面向管理员 3-22


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

问题:PDB 与根
什么位于某个 PDB 中而不在根中,也不在另一 PDB 中?
PDBA
• 应用程序表空间 HR_TBS

Oracle University and Error : You are not a Valid Partner use only
• 本地临时表空间
TEMP1

• 本地用户 和本地角色
– 本地用户连接到其所在的 PDB。

表 SYS.OBJ$
• 非共享的本地元数据 NAME TYPE

EMPLOYEES 2

JOBS 2

• 不与其他 PDB 共享的应用程序数据 EMP_NAME

SMITH
表 HR.EMPLOYEES JOHN

• PDB 资源管理器计划

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

什么在 PDB 中而不在根中?


• 应用程序表空间
• 本地临时表空间
• 本地用户和本地角色
• 非共享的本地元数据
• PDB 资源管理器计划,允许在 PDB 内进行资源管理
注:可插入数据库管理员 (PDBA) 负责管理自己的 PDB。

Oracle Database 12c:新功能 - 面向管理员 3-23


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

术语

• 公用与本地:

Oracle University and Error : You are not a Valid Partner use only
– 用户
– 角色
– 权限
• CDB 与 PDB 级别:
– CDB 资源管理器计划与 PDB RM 计划
– CDB 或 PDB 级别的统一审计
– CDB 或 PDB 级别的 XStream

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

有一个新术语是用于新实体的:公用与本地实体,例如:
• 公用用户与本地用户。
• 公用角色与本地角色。
• 公用权限与本地权限,普遍为所有容器授予的权限与在 PDB 内本地授予的权限。
• CDB 资源管理域 PDB 资源管理。CDB 资源管理在 CDB 级别进行,PDB 资源管理
在 PDB 级别进行。
• XStream Out 仅可在 CDB 级别使用,XStream In 仅可在 PDB 级别使用。XStream
包含 Oracle DB 组件和应用程序编程接口 (API),从而客户机应用程序可以从
Oracle DB 接收数据更改并将数据更改发送到 Oracle DB。可以在 Oracle DB 和其
他系统之间共享这些数据更改。其他系统包括非 Oracle DB、非 RDBMS Oracle 产
品、文件系统和第三方软件应用程序。
XStream 包含两个主要功能:XStream Out 和 XStream In。XStream Out 提供
Oracle DB 组件和 API,从而您可以与其他系统共享对 Oracle DB 所做的数据更改。
XStream In 提供 Oracle DB 组件和 API,从而您可以与 Oracle DB 共享对其他系统
所做的数据更改。

Oracle Database 12c:新功能 - 面向管理员 3-24


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

公用用户和本地用户
多租户容器数据库

根 PDB_SALES
视图 CDB_USERS 视图 DBA_USERS

Oracle University and Error : You are not a Valid Partner use only
USERNAME COMMON USERNAME COMMON

SYS YES SYS YES 表空间


EXAMPLE
SYSTEM YES SYSTEM YES

C##DBA YES C##DBA YES SALES.COUNTRIES
C##HR YES C##HR YES

表空间 SALES NO
EXAMPLE

视图 DBA_USERS PDB_HR
USERNAME COMMON
添加公用用户包括在根和每个 PDB 中添加
SYS YES 该用户的说明。
表空间
SYSTEM YES
EXAMPLE
C##DBA YES 表
C##HR YES HR.REGIONS 本地用户是传统用户,仅在自己的 PDB 中
为已知。
HR_MGR NO

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

本地用户
非 CDB 中的用户映射到非 PDB 中的本地用户。
• 在 PDB 自己的数据字典中定义本地用户,所以在该 PDB 之外不知道该用户。
• 本地用户仅可连接到在其中定义该用户的 PDB。
• 本地用户特定于特定 PDB,在该 PDB 中拥有方案。
• 根据授予的权限,用户可以处理 PDB 内的应用程序数据或者使用数据库链接处理
其他 PDB 的应用程序。而且,不能在根中定义任何本地用户。
公用用户
• 公用用户在 root 的数据字典中定义。
• 仅可以在根中定义公用用户:通过创建公用用户,CDB 管理员可以一次创建将在
每个 PDB 中复制的用户。
• 公用用户不仅在根中其定义的位置而且在属于 CDB 的每个 PDB 中为已知。
• 公用用户可以执行特定于根或 PDB 的管理任务,例如插入和移走 PDB、启动 CDB
或在授予正确权限时打开 PDB。

Oracle Database 12c:新功能 - 面向管理员 3-25


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

公用和本地权限和角色
多租户容器数据库
PDB_HR
根 本地角色 公用角色
公用角色 本地角色
X

Oracle University and Error : You are not a Valid Partner use only
X
X
普遍授予的权限/角色

公用权限(普遍授予)

本地授予的权限/角色

本地权限(本地授予)
公用权限 公用角色

SQL> GRANT c##_r1 TO C##DBA


CONTAINER=ALL;
公用角色(普遍授予)
本地权限 本地角色

公用角色(本地授予) SQL> GRANT l_priv TO C##DBA


CONTAINER=CURRENT;

公用用户 本地用户

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

本地角色
非 CDB 中的角色映射到 PDB 中的本地角色。本地角色在 PDB 自己的数据字典中定义,
所以在该 PDB 之外不知道该角色,并且只能在其 PDB 内使用该角色。
公用角色
除了本地角色,还可以创建公用角色,将在每个容器中定义该角色。这样,很容易一次创
建将在所有 PDB 中复制的角色。在创建时指定角色的性质:本地或公用。公用角色以及
公用用户仅可在根中由公用用户创建。而且,不能在根中定义任何本地角色。所有
Oracle 提供的预定义的角色都是公用角色。
本地与公用权限
权限通常称为本地或公用权限,但是更准确地说,使用 CONTAINER=CURRENT 子句在本
地授予权限或者使用 CONTAINER=ALL 子句普遍授予权限。这一规则也适用于角色:可
以普遍或者在本地将公用角色授予公用用户或角色。公用角色可以包含在 CDB 中应用的
权限,即为所有容器普遍授予的权限,还可以包含本地授予的权限,其仅应用于单个
PDB,而本地角色不包含任何普遍授予的权限。

Oracle Database 12c:新功能 - 面向管理员 3-26


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

多租户容器数据库
共享和非共享对象
根数据文件 PDB_SALES 数据文件

表空间 SYSTEM 表空间 USERS


表空间 SYSTEM

Oracle University and Error : You are not a Valid Partner use only
表 SYS.TAB$ 表
表 SYS.TAB$ SALES.COUNTRIES
NAME TYPE
NAME TY 表
COUNTRIES 2
PE
AUDIT_ACTIONS AUDIT_ACTIONS 2
TAB$ 2
NAME
USER$ 2
CREATE TABLE
CLU$ 2

AUDIT_ACTIONS 2
INSERT
与元数据链接的对象仅在根中存储有关字典对象
的元数据。
每个 PDB 具有专用数据副本,指向根中存储的
元数据链接的对象。
PDB_HR 数据文件
对象链接及其数据仅位于根中,由所有 PDB
表空间 表空间 共享。
EXAMPLE SYSTEM 示例:审计操作的列表位于根中的
表 SYS.TAB$ AUDIT_ACTIONS 表中,因此可以在每个单独的

NAME TYPE 容器中访问 AUDIT_ACTIONS。
HR.REGIONS
REGIONS 2
AUDIT_ACTIONS 2
本地对象包含专用数据,位于创建该对象的
PDB 中。

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

在非 CDB 中,所有对象都是本地对象。12c 中引入了公用对象,以避免在 CDB 中存储


数据和元数据的冗余表示,并简化 CDB 的升级过程。共享对象仅存在于 Oracle 提供的
方案中。
共享对象可能是与元数据链接的或者与对象链接的。
• 与元数据链接的对象仅在根中存储有关字典对象的元数据。每个 PDB 具有对象的专
用数据副本,指向根中存储的元数据链接。
• 与对象链接的对象及其数据仅位于根中,由所有 PDB 共享。
示例
审计操作的列表位于根中的 SYS.AUDIT_ACTIONS 表中,因此可以在每个单独的容器中
访问 AUDIT_ACTIONS。

Oracle Database 12c:新功能 - 面向管理员 3-27


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

数据字典视图
CDB_xxx 所有 PDB 中多租户容器数据库中的所有对象

DBA_xxx 容器或可插入数据库中的所有对象

Oracle University and Error : You are not a Valid Partner use only
ALL_xxx 可由当前用户访问的对象

USER_xxx 当前用户拥有的对象

SQL> SELECT view_name FROM dba_views WHERE view_name like 'CDB%';

• CDB_pdbs:CDB 内的所有 PDB


• CDB_tablespaces:CDB 内的所有表空间
• CDB_users:CDB 内的所有用户(公用和本地)

提供 PDB 内信息的 DBA 字典视图:


SQL> SELECT table_name FROM dict WHERE table_name like 'DBA%';

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

对于向后兼容性,DBA 视图在 PDB 中与在非 CDB 中显示相同结果:DBA_OBJECTS 显


示您从中运行查询的 PDB 中存在的对象。反过来,这表示虽然 PDB 和根具有单独的数
据字典,但 PDB 中的每个数据字典显示从这两个数据字典中提取的结果。根中的
DBA_xxx 视图仅显示 Oracle 提供的系统(即使在已填充的 CDB 中也是这样),就像在
新创建的非 CDB 中所看见的一样。这是新体系结构的另一个优点。为支持 CDB 管理员
的职责,将支持具有类似 CDB_xxx 名称的新的一系列数据字典视图。每个 DBA_xxx 视
图具有相应的 CDB_xxx 视图,其中额外包含 Con_ID,显示列出的事实源自的容器。从
根以及任何 PDB 查询 CDB_xxx 视图。从根查询时 CDB_xxx 视图非常有用,因为来自
特定 CDB_xxx 视图的结果是来自根以及当前所有打开的 PDB 上的相应 DBA_xxx 视图
的结果的集合。从 PDB 查询 CDB_xxx 视图时,其仅显示它在相应 DBA_xxx 视图中显
示的信息。如果连接到根并查询 CDB_USERS,将得到每个容器的公用和本地用户的列表。
现在如果查询 DBA_USERS,将得到公用用户的列表(在根中仅存在公用用户)。现在如
果连接到 PDB 并查询 CDB_USERS 或 DBA_USERS,将得到 PDB 的相同公用和本地用户
的列表。
相同向后兼容性原则还适用于熟悉的每个 v$views。

Oracle Database 12c:新功能 - 面向管理员 3-28


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

影响

影响
• 对所有 PDB 使用一种字符集(建议使用 Unicode)
• 多个 PDB 初始化参数,一个 SPFILE
• 无 PDB 限定数据库对象名称

Oracle University and Error : You are not a Valid Partner use only
– SELECT * FROM HR:apps.tab1
– 使用 DB 链接:SELECT * FROM apps.tab1@HR
• Oracle Data Guard 位于 CDB 级别
• 仅每个 PDB 具有 Oracle Database Vault
• 每个 PDB 一个主密钥来加密 PDB 数据
• CDB 和 PDB 级别的统一审计
• Oracle Scheduler
• Oracle GoldenGate
• Oracle Streams
• CDB 和 PDB 级别的 Oracle XStream

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

• CDB 仅有一种字符集和一个 spfile。每个 PDB 的不同参数值存储在一个字典表中。


• 没有 PDB 限定对象名称。要访问其他 PDB 中的对象,请使用 DB 链接。
• Oracle Data Guard 在 CDB 中的运行方式与在非 CDB 中一样。此功能不是基于
PDB 使用。打开物理备用 CDB 始终会在只读模式下打开根,这也意味着无法在除
只读之外的模式下打开 PDB。
• 在 Oracle Database Vault 中,每个 PDB 具有自己的 Database Vault 元数据。在
PDB 内隔离类似领域的 Database Vault 构造。
• 每个 PDB 具有自己的主密钥,用于加密 PDB 中的数据。将 PDB 从一个主机移至
另一个主机时,必须将主密钥从源数据库 wallet 传输到目标数据库 wallet。对于列
加密,每个 PDB 维护自己的 ENC$,这不是与元数据链接的对象。
• 可以在所有 PDB 中看到和执行统一审计配置。这样可以创建由所有 PDB 使用的审
计策略以及专门用于每个 PDB 的审计策略。如果审计配置未在所有 PDB 中执行,
则表示其仅在某个 PDB 内应用,在该 PDB 之外看不到该配置。通过统一审计框
架,管理员不需要为每个容器单独配置审计。

Oracle Database 12c:新功能 - 面向管理员 3-29


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• 一般情况下,可以使用数据泵将用户创建的所有调度程序对象导出/导入到 PDB。将
不导出预定义的调度程序对象,这意味着将数据库导入可插入数据库后将需要重新
执行用户对这些对象所做的所有更改。不过,当前导入/导出就是这样运行。仅当打
开 PDB 时,该 PDB 中定义的作业才运行。
• XStream 是一个编程接口,允许客户机应用程序访问数据库中的更改,称为
XStream 出站服务器。XStream 入站服务器允许客户机应用程序将更改填入数据库
并利用数据库中的可用应用流程。Oracle GoldenGate 是逻辑复制,XStream 通过

Oracle University and Error : You are not a Valid Partner use only
Oracle GoldenGate 许可证来授权。由于 CDB 具有单个统一重做日志,所以捕获数
据库的更改必须始终从根进行。可以配置 XStream 出站来从某个 PDB 或整个 CDB
捕获更改。通过 Oracle GoldenGate 应用更改针对每个 PDB 进行。将配置
XStream 入站服务器以将更改应用到特定 PDB 中并在该 PDB 上下文内执行其所有
工作。
• Oracle Streams 在 Oracle Database 12c 非 CDB 中继续受支持,但是不再针对新的
数据库功能或数据类型进行改进。Oracle Streams 无法与 CDB 配合使用。

Oracle Database 12c:新功能 - 面向管理员 3-30


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

答案:a
以下哪项是正确的?
测验

a. Oracle 提供的元数据仅位于根容器中。

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。


c. 一个 PDB 可以在不同 CDB 中具有相同名称。

Oracle Database 12c:新功能 - 面向管理员 3-31


b. 有时可以打开种子 PDB 进行非常特定的操作。

Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

测验

以下哪些项是正确的?

Oracle University and Error : You are not a Valid Partner use only
a. 每个 CDB 仅有一个 SYSTEM 表空间。
b. 每个 PDB 仅有一个实例。
c. 每个 PDB 有一组重做日志文件。
d. 每个 CDB 实例仅有一个 UNDO 表空间。
e. 每个 PDB 有一个 SYSAUX 表空间。

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

答案:d、e

Oracle Database 12c:新功能 - 面向管理员 3-32


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

答案:b
b. 错
a. 对
可以在 PDB 中创建公用用户。
测验

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle Database 12c:新功能 - 面向管理员 3-33


Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED





列出各个方面的影响
描述多租户体系结构

说明可插入数据库插入
区分根与可插入数据库
在本课中,您应该已经学会:

描述根和可插入数据库容器
小结

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle Database 12c:新功能 - 面向管理员 3-34


Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

练习

3-1:了解 CDB 进程、文件和 CDB_xxx 视图

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle Database 12c:新功能 - 面向管理员 3-35


Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。


创建容器数据库和可插入数据库

Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle Database 12c 新增功能和增强功能


Enterprise Manager Enterprise Manager Enterprise Manager
和其他工具 Cloud Control Database Express 其他工具

CDB 和 PDB 基础功能 CDB 和 PDB 创建 CDB 和 PDB 管理

Oracle University and Error : You are not a Valid Partner use only
热图和自动数据优化 联机数据文件移动
ADO 和存储
数据库中归档和期间有效性 期间历史记录

安全性 统一审计 权限分析 数据编写

HA RMAN

易管理性 DB 操作 实时 ADDM 比较时段 ADDM ADR


12.1.0.2 12.1.0.2

内存中列存储 整个数据库内存中高速缓存
性能 自动大表高速 12.1.0.2
SQL 优化 资源管理器 索引、表
缓存

数据泵、SQL*Loader 和外部表 分区
其他
12.1.0.2
JSON SQL

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle Database 12c:新功能 - 面向管理员 4-2


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

课程目标

学完本课后,应能完成以下工作:
• 配置和创建 CDB

Oracle University and Error : You are not a Valid Partner use only
• 从 PDB$SEED 创建 PDB
• 将非 CDB 插入或克隆到 CDB 中
• 将本地或远程 PDB 克隆到 CDB 中
• 将 PDB 从一个 CDB 移走并将其插入另一个 CDB 中
• 了解实例
• 了解 PDB 的结构
• 删除 PDB
• 将 12.1 之前版本的非 CDB 数据库移植到 CDB

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

注:要全面了解 Oracle 可插入数据库新增功能和使用方法,请参阅 Oracle 文档中的以下


指南:
• 《Oracle Database Administrator’s Guide 12c Release 1 (12.1)》
• 《Oracle Database PL/SQL Packages and Types Reference 12c Release 1
(12.1)》 的“DBMS_PDB”一章
• 请参阅 Oracle 学习库中的其他信息资源:
• “Oracle Database 12c New Features Demo Series”演示中有关 CDB 和 PDB 的
演示:
- Cloning a PDB using ACFS Snapshots
• Oracle By Example (OBE):
- Unplugging and Plugging Pluggable Databases
- Cloning Pluggable Databases
- Adopting a Non-CDB as a Pluggable Database in a Multitenant Container
Database
- Managing Pluggable Databases (PDBs) Using SQL Developer

Oracle Database 12c:新功能 - 面向管理员 4-3


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

wp-12c-1896123.pdf)
Oracle 白皮书“Upgrading to Oracle Database 12c”

Oracle Database 12c:新功能 - 面向管理员 4-4


(http://www.oracle.com/technetwork/database/upgrade/upgrading-oracle-database-

Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

目标

创建容器数据库:

Oracle University and Error : You are not a Valid Partner use only
• 将多个 12.1 之前版本的非 CDB 整合到一个更大的数据
库中
• 针对以下需求准备容器
– 插入将来的新应用程序
– 测试应用程序
– 诊断应用程序性能
• 简化打补丁和升级工作并缩短这些工作的时间

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

为何创建容器数据库?
本幻灯片中解释了创建容器数据库的几个原因。

Oracle Database 12c:新功能 - 面向管理员 4-5


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

工具

EM EM
SQL
SQL*Plus OUI DBCA Cloud Database DBUA

Oracle University and Error : You are not a Valid Partner use only
Developer
Control Express
创建新的 是(仅限 是(仅限 是(仅限
是 是 是
CDB 或 PDB PDB) PDB) PDB)
了解 CDB
实例、体系 是 是 是 是
结构和 PDB
将 12.1 CDB
升级到 12.x 是 是
CDB

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

有多种工具可用于创建和升级容器数据库。如本幻灯片所示,要创建新的 CDB 或 PDB,


您可以使用 SQL*Plus 或 Database Configuration Assistant (DBCA),或者在 Oracle
Database 12c 安装过程中创建。使用 SQL Developer 和 EM Cloud Control 可以创建可
插入数据库。
创建完成后,可使用视图了解 CDB 的实例、数据库体系结构、文件和可插入数据库。查
询视图时,可以使用 SQL*Plus 以 SELECT 语句直接查询,也可以使用 GUI 工具(如
Enterprise Manager 或 SQL Developer)间接查询。
您可以使用 Enterprise Manager 或 Database Upgrade Assistant (DBUA) 将 12.1 CDB
升级到 12.x CDB。
注:EM Database Express 未提供创建 CDB 的功能,但可用于创建 PDB 和了解 PDB
体系结构或 CDB 结构(通过使用各种端口配置)。

Oracle Database 12c:新功能 - 面向管理员 4-6


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

创建容器数据库的步骤
initCDB1.ora 2 实例

实例 SGA
1

Oracle University and Error : You are not a Valid Partner use only
进程结构

3 容器
数据库 容器数据库 CDB1
CDB1 根容器

SYSTEM UNDO

4 SYSAUX TEMP
从根执行脚本 控制 重做日志
catcdb.sql 数据文件 文件 文件

种子可插入数据库
SYSTEM
TEMP1
SYSAUX

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

使用 DBCA 或 SQL*Plus 创建新 CDB 所需的步骤相同。


• 对于任何数据库(非 CDB 或 CDB)来说,第一步都是使用 init.ora 参数文件配
置实例。
• 第二步是启动实例。
• 第三步是使用 CREATE DATABASE 命令和新子句 ENABLE PLUGGABLE DATABASE
指定数据库为容器数据库而不是非 CDB,从而创建 CDB。此操作会在装载阶段创建
根容器及控制文件,并在打开阶段创建重做日志文件和根数据文件。根数据文件用于
SYSTEM 表空间(其中包括 Oracle 提供的元数据和数据字典)以及针对 AWR 的
SYSAUX 表空间。还会创建种子可插入数据库,及该数据库自己的数据文件(用于
SYSAUX 和 SYSTEM 表空间)。您可以使用新子句 SEED FILE_NAME_CONVERT 重
命名种子可插入数据库的数据文件,同时从根容器执行复制操作。该子句会创建种子
可插入数据库及该数据库自己的数据文件。种子数据文件会从根数据文件复制到另一
个位置。种子数据文件可用作创建未来 PDB 的模板。如果省略此子句,Oracle
Managed Files 会决定种子文件的名称和位置。
• 第四步是通过执行连接到根容器的 catcdb.sql 脚本创建目录和其他组件。

Oracle Database 12c:新功能 - 面向管理员 4-7


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

创建容器数据库:使用 SQL*Plus
1. 实例启动:
a. 设置 ORACLE_SID=CDB1
b. 在 initCDB1.ora 中做如下设置:

Oracle University and Error : You are not a Valid Partner use only
— 将 CONTROL_FILES 设置为 CDB 控制文件名。
— 将 DB_NAME 设置为 CDB 名。
— 将 ENABLE_PLUGGABLE_DATABASE 设置为 TRUE。

SQL> CONNECT / AS SYSDBA


SQL> STARTUP NOMOUNT

2. 创建数据库:

SQL> CREATE DATABASE CDB1 ENABLE PLUGGABLE DATABASE …


SEED FILE_NAME_CONVERT ('/oracle/dbs','/oracle/seed');

— CDB$ROOT 容器
— PDB$SEED 可插入数据库
3. 运行 catcdb.sql 脚本。

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

使用 SQL*Plus 创建新 CDB 的具体步骤如下所示:


1. 启动实例之前,使用常用参数准备 init<SID>.ora 参数文件:DB_NAME、
CONTROL_FILES(如果不使用 OMF)以及 DB_BLOCK_SIZE。root 的全局数据库
名是 CDB 的全局数据库名。需要使用一个新参数,定义已启动实例可用于创建 CDB
而不是非 CDB。ENABLE_PLUGGABLE_DATABASE 参数必须设置为 TRUE。
设置 ORACLE_SID 环境变量。启动 SQL*Plus,以属于 DBA OS 组的 OS 验证用户
的身份进行连接,然后执行 STARTUP NOMOUNT 命令。
2. 通过使用 CREATE DATABASE 命令和新子句 ENABLE PLUGGABLE DATABASE 创
建 CDB。该子句指定数据库为 CDB 而不是非 CDB。此时会创建根容器和种子可插
入数据库。您可以使用另一个子句 SEED FILE_NAME_CONVERT 指定种子文件的位
置。如果省略此子句,OMF 会决定种子文件的名称和位置。FILE_NAME_CONVERT
指定复制到目标种子目录的根数据文件的源目录。如果使用新的 init.ora 参数
PDB_FILE_NAME_CONVERT 将根数据文件的名称映射到种子数据文件,则会忽略
SEED FILE_NAME_CONVERT 子句。在本例中,/oracle/dbs 和 /oracle/seed
目录必须存在。在语句中定义的字符集依然是 CDB 的唯一字符集。
3. 运行 catcdb.sql SQL 脚本。此脚本将安装 CDB 所需的全部组件。

Oracle Database 12c:新功能 - 面向管理员 4-8


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

创建容器数据库:使用 DBCA

Oracle University and Error : You are not a Valid Partner use only
版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

使用 DBCA 创建数据库需要选中“Create As Container Database(创建为容器数据库)”


复选框,否则数据库会创建为非 CDB。
选中“Create a Database with Default Configuration(使用默认配置创建数据库)”复选
框时,您还必须提供可插入数据库名称。如果选中“Advanced Mode(高级模式)”复选
框,您可以创建一个仅包含根和种子容器的空容器数据库。
在高级模式下,您可以向 Enterprise Manager Cloud Control 注册 CDB,并为 SYS 和
SYSTEM 用户设置口令。

Oracle Database 12c:新功能 - 面向管理员 4-9


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

新子句:SEED FILE_NAME_CONVERT

CREATE DATABASE 新子句:


SQL> CREATE DATABASE cdb1

Oracle University and Error : You are not a Valid Partner use only
USER SYS IDENTIFIED BY p1 USER SYSTEM IDENTIFIED BY p2
LOGFILE GROUP 1 ('/u01/app/oradata/CDB1/redo1a.log',
'/u02/app/oradata/CDB1/redo1b.log') SIZE 100M,
GROUP 2 ('/u01/app/oradata/CDB1/redo2a.log',
'/u02/app/oradata/CDB1/redo2b.log') SIZE 100M
CHARACTER SET AL32UTF8 NATIONAL CHARACTER SET AL16UTF16
EXTENT MANAGEMENT LOCAL DATAFILE
'/u01/app/oradata/CDB1/system01.dbf' SIZE 325M
SYSAUX DATAFILE '/u01/app/oradata/CDB1/sysaux01.dbf' SIZE 325M
DEFAULT TEMPORARY TABLESPACE tempts1
TEMPFILE '/u01/app/oradata/CDB1/temp01.dbf' SIZE 20M
UNDO TABLESPACE undotbs
DATAFILE '/u01/app/oradata/CDB1/undotbs01.dbf' SIZE 200M
ENABLE PLUGGABLE DATABASE
SEED FILE_NAME_CONVERT =
('/u01/app/oradata/CDB1',
'/u01/app/oradata/CDB1/seed');

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

在本幻灯片中提供了完整 CREATE DATABASE 语句的示例。


与传统非 CDB CREATE DATABASE 语句相比,该语句有哪些新特性?
如果您希望数据库为容器数据库,所需的第一个重要子句是 ENABLE PLUGGABLE
DATABASE,而声明种子数据文件目录的一种方法是使用 SEED FILE_NAME_CONVERT
子句。FILE_NAME_CONVERT 指定复制到目标种子目录的根数据文件的源目录。
根 /u01/app/oradata/CDB1 目录和种子 /u01/app/oradata/CDB1/seed 目录必
须存在。

Oracle Database 12c:新功能 - 面向管理员 4-10


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

新子句:ENABLE PLUGGABLE DATABASE

无 SEED FILE_NAME_CONVERT:
• OMF:DB_CREATE_FILE_DEST='/u01/app/oradata'

Oracle University and Error : You are not a Valid Partner use only
• 或新实例参数:
PDB_FILE_NAME_CONVERT =
'/u01/app/oradata/CDB1','/u01/app/oradata/seed'

SQL> CONNECT / AS SYSDBA


SQL> STARTUP NOMOUNT

SQL> CREATE DATABASE cdb2


USER SYS IDENTIFIED BY p1 USER SYSTEM IDENTIFIED BY p2
EXTENT MANAGEMENT LOCAL
DEFAULT TEMPORARY TABLESPACE temp
UNDO TABLESPACE undotbs
DEFAULT TABLESPACE users
ENABLE PLUGGABLE DATABASE;

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle Managed Files


如果不使用明确的数据文件名,则使用 Oracle Managed Files (OMF):
• 使用在语句中指定的 SYSTEM、SYSAUX、UNDO 和 USERS 表空间的数据文件的目标
目录值设置 DB_CREATE_FILE_DEST 实例参数。Oracle 为所有数据文件、控制文
件和重做日志文件选择默认大小和属性。在本例中,/u01/app/oradata 目录必
须存在。
PDB_FILE_NAME_CONVERT 实例参数
如果不使用 SEED FILE_NAME_CONVERT 子句,则需要使用新实例参数:
• PDB_FILE_NAME_CONVERT 实例参数会将现有文件(在本例中为根数据文件)的
名称映射到新文件(在本例中为种子数据文件)的名称。在本例中,
/u01/app/oradata/CDB1 和 /u01/app/oradata/seed 目录必须存在。

Oracle Database 12c:新功能 - 面向管理员 4-11


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

创建 CDB 后:CDB 的新特性


与非 CDB 相比,CDB 具有一些新特性:
• 两个容器:
– 根 (CDB$ROOT)

Oracle University and Error : You are not a Valid Partner use only
– 种子 PDB (PDB$SEED)
• 若干服务:每个容器一项服务
– 根服务名 = CDB 名 (cdb1)
• 根和种子中的公用用户:SYS、SYSTEM …
• 向公用用户授予公用权限
• 预定义的公用角色
• 与每个容器相关联的表空间和数据文件:
– 根:SYSTEM(系统提供的元数据和无用户数据)、
SYSAUX、TEMP
– 种子:SYSTEM、SYSAUX、TEMP

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

创建 CDB 后,有一些新的 CDB 组件和对象,例如:


• 两个容器:根容器和种子 PDB
• 若干服务(数量和容器数量相同):根容器服务名是在创建 CDB 时给定的 CDB 名
称,该名称会与域名连接在一起。每个新 PDB 都会分配一个服务名:服务名是在创
建 PDB 时给定的 PDB 名称,该名称会与域名连接在一起。如果创建或插入
PDBtest PDB,其服务名为 PDBtest,该名称会与域名连接在一起。您可以在
CDB_SERVICES 视图中查找在 CDB 中维护的所有服务名。为连接到 CDB,请使用
本地 OS 验证或根服务名连接到根。例如,如果将 ORACLE_SID 设置为 CDB 实例
名并使用 CONNECT / AS SYSDBA,则会以授予系统权限的公用 SYS 用户的身份
连接至根,以管理和维护所有 PDB。要连接到所需的 PDB,请使用 easyconnect
或 tnsnames.ora 文件(例如 CONNECT
username/password@net_service_name)。
• 公用用户:在所有容器、根和种子
• 中会创建 SYS、SYSTEM 向所有容器中的所有用户授予公用权限
• 所有容器、根和种子
• 中的预定义公用角色表空间:与每个容器关联的 SYSTEM、SYSAUX、TEMP

Oracle Database 12c:新功能 - 面向管理员 4-12


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

数据字典视图:DBA_xxx
DBA_xxx 根或可插入数据库中的所有对象

ALL_xxx 可供 PDB 中的当前用户访问的对象

Oracle University and Error : You are not a Valid Partner use only
USER_xxx PDB 中的当前用户拥有的对象

提供 PDB 内信息的 DBA 字典视图:


SQL> SELECT table_name FROM dict WHERE table_name like 'DBA%';

• DBA_tablespaces:PDB 的所有表空间
• DBA_data_files:PDB 的所有数据文件
• DBA_tables:PDB 中的所有表
• DBA_users:PDB 的所有公用和本地用户

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

为确保向后兼容性,DBA 视图在 PDB 中显示的结果与在非 CDB 中显示的相同。例如,


DBA_OBJECTS 视图会显示运行查询的 PDB 中存在的对象。
• 在根中,DBA_xxx 视图仅显示根中包含的对象。
• 在 PDB 中,DBA_xxx 视图仅显示 PDB 中包含的对象。
DBA 视图示例:
• 连接到根时,您可以查询 DBA_USERS。您可以获得一个从根创建的公用用户列表
(根中仅存在公用用户)。
• 连接到 PDB 时,您可以查询 DBA_USERS。您可以获得 PDB 的公用用户和本地用
户列表。

Oracle Database 12c:新功能 - 面向管理员 4-13


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

数据字典视图:CDB_xxx
CDB_xxx 容器数据库中的所有对象(新列 CON_ID)

DBA_xxx 根或可插入数据库中的所有对象

Oracle University and Error : You are not a Valid Partner use only
ALL_xxx 可供 PDB 中的当前用户访问的对象

USER_xxx PDB 中的当前用户拥有的对象

CDB 字典视图提供各个 PDB 的信息:


SQL> SELECT view_name FROM dba_views WHERE view_name like 'CDB%';

• CDB_pdbs:CDB 中的所有 PDB


• CDB_tablespaces:CDB 中的所有表空间
• CDB_data_files:CDB 中的所有数据文件
• CDB_users:CDB 中的所有用户(公用和本地)

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

在 CDB 中,对于每个 DBA_* 视图,都会定义一个 CDB_* 视图。


• 在根中,CDB 视图可用于获得根和所有 PDB 中包含的表、表空间、用户、权限、
参数、PDB 和其他类型对象的相关信息。
• 在 PDB 中,CDB_* 视图显示仅通过对应的 DBA_* 视图可见的对象。
除了给定 DBA_* 视图中的所有列,对应的 CDB_* 视图还包含 CON_ID 列,后者可以识
别数据由给定 CDB_* 行表示的容器。在非 CDB 中,CON_ID 列值为 0。在 CDB 中,值
可以为 1,表示仅含与根有关的数据的行,也可以是 n,其中 n 是适用的容器 ID。
CDB 视图示例:
• 连接到根并查询 CDB_USERS 时,将获得每个容器的公用用户和本地用户列表。
• 连接到 PDB 并查询 CDB_USERS 或 DBA_USERS 时,将获得相同的 PDB 公用用户
和本地用户列表。
• 连接到根并查询 CDB_PDBS 视图时,将获得所有 PDB 列表。查询
CDB_TABLESPACES 视图时,将获得所有 PDB 的所有表空间列表。

Oracle Database 12c:新功能 - 面向管理员 4-14


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

数据字典视图:示例
• 比较:
SQL> CONNECT / AS SYSDBA
1 SQL> SELECT role, common, con_id FROM cdb_roles;

2 SQL> SELECT role, common FROM dba_roles;

Oracle University and Error : You are not a Valid Partner use only
SQL> CONNECT sys@PDB1 AS SYSDBA
3 SQL> SELECT role, common, con_id FROM cdb_roles;

4 SQL> SELECT role, common FROM dba_roles;

• 访问可显示多个 PDB 中数据的 V$ 或 GV$ 视图中的


数据时,可使用权限提高安全性。
SQL> SELECT name, open_mode FROM v$pdbs;

NAME OPEN_MODE
---------------- ----------
PDB$SEED READ ONLY
PDB1 READ WRITE
PDB2 READ WRITE

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

本幻灯片提供了几个将 DBA_xxx 和 CDB_xxx 视图加以比较的示例。


1. 在第一个示例中,连接到根并查询 CDB_ROLES,将获得每个容器的公用角色和本地
角色列表。请注意,新列 CON_ID 显示了角色所属的容器。
2. 在第二个示例中,查询 DBA_ROLES,只获得根的所有公用角色(根中并无任何本地
角色)。
3. 在第三个示例中,连接到 PDB1 并查询 CDB_ROLES,将获得连接到的容器的公用角
色和本地角色列表。CON_ID 显示所有行中的相同值。
4. 在第四个示例中,查询 DBA_ROLES,将获得相同的列表,但并没有 CON_ID 列(该
列在此类查询中并无用处)。
相同的向后兼容性原则也适用于您熟悉的每个 v$views。

Oracle Database 12c:新功能 - 面向管理员 4-15


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

数据字典视图:V$xxx 视图

SGA 供所有容器访问:V$ 视图和 CON_ID 列


SQL> SELECT distinct status, con_id FROM v$bh order by 2;

Oracle University and Error : You are not a Valid Partner use only
STATUS CON_ID
----------- ----------
cr 1 root
free 1
xcur 1
xcur 2 seed PDB
cr 3 PDB1 PDB
xcur 3

SQL> select OBJECT_ID, ORACLE_USERNAME, LOCKED_MODE, CON_ID


from V$LOCKED_OBJECT;

OBJECT_ID ORACLE_USERNAME LOCKED_MODE CON_ID


---------- ---------------- ----------- -------
83711 SYS 3 3 PDB1 PDB
83710 DOM 3 4 PDB2 PDB

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

本幻灯片中提供了几个 V$xxx 视图示例。V$xxx 视图中的新列 CON_ID 显示 CDB 中的


任意 PDB 如何访问 SGA。
在第一个示例中,V$BH 视图提供当前在缓冲区高速缓存中的块缓冲区的不同状态列表。
块在 CON_ID 列中清楚地标识出来,每个块由特定容器访问。1 代表根容器,2 代表种子
容器,3 代表 PDB1 可插入数据库。
在第二个示例中,V$LOCKED_OBJECT 视图提供各个 PDB 中对象当前持有的锁列表。锁
在 CON_ID 列中清除地标识为由特定容器持有;3 代表一个 PDB,4 代表另一个 PDB。

Oracle Database 12c:新功能 - 面向管理员 4-16


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

创建 CDB 后:待办事项列表

创建 CDB 后,CDBA 必须:

Oracle University and Error : You are not a Valid Partner use only
• 为根和每个 PDB 设置独立的默认表空间
• 为每个容器设置默认临时表空间
• 启动监听程序
• 插入非 CDB
• 测试启动/关闭过程
12.1.0.2

• 定义默认 PDB 状态,使 PDB 自动打开


• 创建备份和恢复过程

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

创建 CDB 后,容器数据库管理员 (CDBA) 必须完成以下管理任务:


• 为根和每个 PDB 设置独立的默认表空间。根中不应有任何用户数据。
• 为每个容器设置默认临时表空间。
• 启动监听程序。
• 如果初步计划是将若干非 CDB 整合为一个,则插入非 CDB。
• 测试启动和关闭过程。
• 定义默认 PDB 状态,以使得 PDB 在 CDB 启动后自动打开。
• 创建备份和恢复过程。

Oracle Database 12c:新功能 - 面向管理员 4-17


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

自动诊断资料档案库
DIAGNOSTIC_DEST
V$DIAG_INFO
$ORACLE_BASE

Oracle University and Error : You are not a Valid Partner use only
$ORACLE_HOME/log
ADR 基目录

diag

rdbms

CDB 名
元数据
ADR 主目录 SID

alert cdump incpkg incident hm trace (其他)

incdir_1 … incdir_n
ADRCI
log.xml alert_SID.log

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

自 Oracle Database 11g 发行版 1 起,所有跟踪、意外事件转储和程序包、预警日志、


健康状况监视报告、核心转储等文件都存储在 ADR 这一基于文件的资料档案库中,以提
供数据库诊断数据。它对多个实例和多种产品使用一个统一的目录结构,并存储在任何数
据库之外。因此,即使在数据库关闭时也可用来诊断问题。这一切都不会随着容器数据库
的到来发生改变。每种产品的每个实例都将诊断数据存储在自己的 ADR 主目录下。每个
链接到单一实例的 CDB 都将跟踪文件存储在同一 ADR 主目录中。
其位置由 DIAGNOSTIC_DEST 初始化参数设置。如果省略该参数或将其留空,则数据库
在启动时按如下所示设置 DIAGNOSTIC_DEST:如果设置了环境变量 ORACLE_BASE,
DIAGNOSTIC_DEST 会设置为 $ORACLE_BASE。如果未设置环境变量 ORACLE_BASE,
DIAGNOSTIC_DEST 会设置为 $ORACLE_HOME/log。

Oracle Database 12c:新功能 - 面向管理员 4-18


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

自动诊断资料档案库:alert.log 文件

alert_CDB1.log 显示新的 DDL 语句。

Oracle University and Error : You are not a Valid Partner use only
CREATE DATABASE cdb1

ENABLE PLUGGABLE DATABASE
SEED
FILE_NAME_CONVERT=('/u01/app/oradata/CDB1','/u01/app/oradata
/seed');

CREATE PLUGGABLE DATABASE pdb1 … ;


ALTER PLUGGABLE DATABASE pdb1 UNPLUG INTO … ;
ALTER PLUGGABLE DATABASE ALL OPEN ;
ALTER PLUGGABLE DATABASE pdb2 CLOSE IMMEDIATE ;

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

作为 CDB 的 alert.log 文件会显示新的 DDL 语句,例如:


• CREATE PLUGGABLE DATABASE
• ALTER PLUGGABLE DATABASE
• DROP PLUGGABLE DATABASE

Oracle Database 12c:新功能 - 面向管理员 4-19


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

答案:a
c. 种子可以删除。
b. 它不是一个容器。
测验

a. 它始终保持在 READ ONLY 模式下。


哪一项是 CDB 的种子可插入数据库的特性?

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle Database 12c:新功能 - 面向管理员 4-20


Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

测验

创建了一个 CDB。关于种子可插入数据库的说法中,哪一项

Oracle University and Error : You are not a Valid Partner use only
是正确的?
a. 您需要自己复制种子数据文件。
b. 在 CREATE DATABASE 语句中使用新子句 SEED
FILE_NAME_CONVERT。
c. 种子可插入数据库不是必需的。
d. 种子可插入数据库不需要数据文件。

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

答案:b

Oracle Database 12c:新功能 - 面向管理员 4-21


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

4-1:创建不含 PDB 的 CDB


练习

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle Database 12c:新功能 - 面向管理员 4-22


Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

预配新的可插入数据库

多种方法:

Oracle University and Error : You are not a Valid Partner use only
• 从种子 PDB 创建新的 PDB。
• 将非 CDB 插入或克隆到 CDB 中。
• 克隆:
– 将本地 PDB 克隆到同一个 CDB 中
– 将远程 PDB 克隆到 CDB 中
• 将移走的 PDB 插入到另一个 CDB 中。

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

在 CDB 中预配新 PDB 的方法有多种。


• 从种子(即 PDB$SEED PDB)创建新 PDB,例如用于新应用程序实施的 PDB。此
类 PDB 创建工作几乎可以即时完成。
• 作为移植策略的一部分,将非 CDB 作为 PDB 插入 CDB。将若干个非 CDB 整合到
一个 CDB 中也是不错的方法。将若干个非 CDB 克隆到一个 CDB 中是一种保留非
CDB 的好方法,这让您有机会比较新 PDB 和原始非 CDB 的性能,或者至少等到您
认为 PDB 可以正常工作为止。
• 从同一 CDB 的一个 PDB 克隆另一个 PDB。例如,您想测试生产环境的应用程序补
丁。首先,在克隆的 PDB 中克隆生产应用程序,然后给克隆的 PDB 打补丁以进行
测试。您也可以从另一个 CDB 的另一个 PDB 克隆一个 PDB:当您希望诊断应用程
序的性能问题或对应用程序执行性能退化测试时,使用此方法很有用。此操作不能
在同一数据库用于生产时进行。
• 将移走的 PDB 插入到另一个 CDB 中。例如,您必须将 PDB 升级到最新的 Oracle
版本,但您不想将其应用到所有 PDB。此时您可以从一个 Oracle DB 发行版移走
PDB,然后将其插入从更高发行版新建的 CDB,而不是将 CDB 从一个发行版升级
到另一个发行版。

Oracle Database 12c:新功能 - 面向管理员 4-23


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

工具

要预配新的 PDB,您可以使用:

Oracle University and Error : You are not a Valid Partner use only
• SQL*Plus
• SQL Developer
• Enterprise Manager Cloud Control
• Enterprise Manager Database Express
• DBCA
– 从种子复制
– 通过移走/插入方法

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

有多种不同的工具可用于在 CDB 中预配新 PDB。


• SQL*Plus
• SQL Developer
• Enterprise Manager Cloud Control
• Enterprise Manager Database Express
要从种子创建新 PDB 或通过移走/插入方法创建新 PDB,您也可以使用 DBCA。

Oracle Database 12c:新功能 - 面向管理员 4-24


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

方法 1:从 PDB$SEED 创建新 PDB


容器数据库 CDB1 • 从 PDB$SEED 数据文件复制数据
数据文件/
控制文件
重做 文件
临时文件 日志文件
• 创建 SYSTEM 和 SYSAUX 表空间

Oracle University and Error : You are not a Valid Partner use only
SYSTEM
UNDO
SYSAUX • 创建完整目录,包括指向 Oracle
TEMP
USERS
提供的对象的元数据

• 创建临时表空间 TEMP
数据文件
• 创建公用用户:
SYSTEM
SYSAUX – 超级用户 SYS

PDB$SEED PDB$SEED
– SYSTEM
数据文件
创建 • 创建授予本地 PDB_DBA 角色的
PDB1
SYSTEM
本地用户 (PDBA)
TEMP
SYSAUX • 创建新的默认服务
PDB1

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

从种子创建新 PDB 几乎可以即时完成。此操作会将数据文件从 READ ONLY 种子 PDB


复制到在 CREATE PLUGGABLE DATABASE 语句中定义的目标目录。
还会创建表空间,例如用于存储完整目录(其中包括指向 Oracle 提供的对象的元数据)
的 SYSTEM,用于本地辅助数据的 SYSAUX,用于临时数据的 TEMP。
会创建存在于种子 PDB 中的默认方案和公用用户,继续拥有所有超级用户权限的 SYS,
以及能够管理 PDB 的 SYSTEM。还会创建授予本地 PDB_DBA 角色的本地用户 (PDBA)。
在 PDB SYS 用户向本地 PDB_DBA 角色授予权限之前,新 PDBA 无法执行除连接到
PDB 以外的任何其他操作。
此外,还会为 PDB 创建新的默认服务。

Oracle Database 12c:新功能 - 面向管理员 4-25


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

步骤:使用位置子句
以拥有 CREATE PLUGGABLE DATABASE 权限的公用用户
的身份连接到根:
• 使用 FILE_NAME_CONVERT:

Oracle University and Error : You are not a Valid Partner use only
SQL> CREATE PLUGGABLE DATABASE pdb1
ADMIN USER admin1 IDENTIFIED BY p1 ROLES=(CONNECT)
FILE_NAME_CONVERT = ('PDB$SEEDdir', 'PDB1dir');

• 使用 CREATE_FILE_DEST:
12.1.0.2

SQL> CREATE PLUGGABLE DATABASE pdb2


ADMIN USER admin2 IDENTIFIED BY p2 ROLES=(CONNECT)
CREATE_FILE_DEST = 'PDB2dir';

• 使用视图验证:
SQL> CONNECT / AS SYSDBA
SQL> SELECT * FROM cdb_pdbs;
SQL> SELECT * FROM cdb_tablespaces;
SQL> SELECT * FROM cdb_data_files;
SQL> CONNECT sys@pdb1 AS SYSDBA
SQL> CONNECT admin1@pdb1

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

从种子创建新 PDB 的步骤如下所示:


1. 以拥有 CREATE PLUGGABLE DATABASE 权限的公用用户的身份连接到根。
2. 执行 CREATE PLUGGABLE DATABASE 语句。ADMIN USER 子句使用 CONNECT 和
空 PDB_DBA 角色定义在 PDB 中创建的 PDBA 用户。
• 如果使用 Oracle Managed Files (OMF),则可以通过以下两种方法完成:
- 不使用子句描述新文件的位置。这意味着 DB_CREATE_FILE_DEST 实例
参数会设置为新 PDB 的数据文件的目标目录。
- CREATE_FILE_DEST 子句为 PDB 中的数据文件定义默认位置,覆盖为
CDB 指定的 Oracle 托管数据文件的默认位置。NONE 值会为 PDB 禁用
OMF。使用此子句时会使用 scope=SPFILE 在 PDB 中隐式设置
DB_CREATE_FILE_DEST 参数。
• 如果不使用 OMF,FILE_NAME_CONVERT 子句首先指定种子文件的源目录,
然后指定 PDB 数据文件的目标目录。

Oracle Database 12c:新功能 - 面向管理员 4-26


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

-
空间列表(SYSTEM、SYSAUX)。
3. 语句完成后,使用视图验证 PDB 是否已正确创建。

Oracle Database 12c:新功能 - 面向管理员 4-27


以任何 PDB 中都存在的 SYS 用户或以 admin1 用户身份连接到 PDB。
- CDB_PDBS 视图显示 PDB 列表,CDB_TABLESPACES 视图显示新 PDB 的表

Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

步骤:不使用位置子句

在不使用子句的情况下从种子创建新 PDB:
• 传统 OMF 参数:

Oracle University and Error : You are not a Valid Partner use only
DB_CREATE_FILE_DEST ='/CDBS/CDB1/pdb1'
SQL> CREATE PLUGGABLE DATABASE pdb1
ADMIN USER pdb1_admin IDENTIFIED BY p1
或 ROLES=(CONNECT);
• 新参数:PDB_FILE_NAME_CONVERT =
'/u01/app/oradata/CDB1/seed','CDBS/CDB1/pdb2'

SQL> CREATE PLUGGABLE DATABASE pdb2


ADMIN USER pdb2_admin IDENTIFIED BY p2
ROLES=(CONNECT);

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

如果使用 OMF 或 PDB_FILE_NAME_CONVERT,首先以 SYS 身份连接到 CDB 的根。


• 使用 OMF 时,在 init.ora 中将 DB_CREATE_FILE_DEST 实例参数设置为新
PDB 的数据文件的目标目录。
• 不使用 OMF 时,将 PDB_FILE_NAME_CONVERT 新实例参数设置为种子数据文件
的源目录和新 PDB 数据文件的目标目录。
/CDBS/CDB1/pdb1 和 /CDBS/CDB1/pdb2 目录都必须存在。
然后,使用 cdb_pdbs 视图验证新 PDB 及其表空间是否存在:
SQL> SELECT * FROM cdb_pdbs;
SQL> SELECT * FROM cdb_tablespaces;
注:在 Oracle Database 12.1.0.2 中 CREATE PLUGGABLE DATABASE 语句引入了三个
新子句:
• USER_TABLESPACES 子句指定哪些表空间在新 PDB 中可用。例如,当您将非
CDB 移动到 PDB 时,您可以列出要包含的一个或多个表空间。
• ENABLE|DISABLE FORCE LOGGING|NOLOGGING 子句指定 PDB 的日志记录属
性。日志记录属性可以控制某些 DML 操作是否记录在重做日志文件中。
• STANDBYS=ALL|NONE 指定新 PDB 是否包含在备用 CDB 中。
Oracle Database 12c:新功能 - 面向管理员 4-28
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

同步

• 如果 PDB 处于 MOUNTED 或 READ-ONLY 模式

Oracle University and Error : You are not a Valid Partner use only
• 如果客户创建的公用用户或角色已创建/已修改/已删除
→ PDB 需要与根重新同步。
– 在 READ-WRITE 模式下打开 PDB,以便同步 PDB 与
目标 CDB。
– 如果在 READ-ONLY 模式下打开 PDB,则会返回错误。
→ 自动执行兼容性检查:
– 在 PDB_PLUG_IN_VIOLATIONS 视图中报告任何违规。
– 如果无违规,PDB 状态则更改为 NORMAL。

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

使用种子 PDB 或插入或克隆方法创建 PDB 后,您可以通过查询 CDB_PDBS 视图的


STATUS 列查看新 PDB 的状态。如果在打开新 PDB 之前创建了公用用户和角色,必须
同步 PDB 才能从根检索新的公用用户和角色。当 PDB 在读/写模式下打开时,会自动执
行同步。
如果在只读模式下打开 PDB,则会返回错误。
打开新 PDB 时,Oracle DB 会检查 PDB 与 CDB 的兼容性。
每个兼容性违规都是一个警告或错误。如果兼容性违规是一个警告,则在预警日志中记录
这个警告,但 PDB 会正常打开,不显示警告信息。如果兼容性违规是一个错误,则在打
开 PDB 时显示错误消息,并在预警日志中记录错误。您必须更正引起每个错误的问题。
发生错误时,仅限拥有 RESTRICTED SESSION 权限的用户可以访问 PDB,从而确保兼
容性违规可以得到解决。您可以通过查询 PDB_PLUG_IN_VIOLATIONS 视图查看违规
说明。

Oracle Database 12c:新功能 - 面向管理员 4-29


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

方法 2:将非 CDB 插入 CDB

容器数据库 CDB1 三种可行的方法:


数据文件/ 控制 重做 • TTS 或 TDB 或完全导出/导入

Oracle University and Error : You are not a Valid Partner use only
临时文件 文件 日志文件
根 • 使用 DBMS_PDB 构造 XML 文件
数据文件/临时文件 定义
PDB$SEED
从 • 复制
数据文件 ORCL
PDB2 创建 新 PDB 中会创建以下实体:
PDB2
• 表空间:SYSTEM、SYSAUX、
impdp TTS 插入 TEMP

转储文件 XML 文件 复制 • 完整目录


• 公用用户:SYS、SYSTEM
expdp TTS DBMS_PDB
数据文件 控制 重做
• 本地管理员 (PDBA)
文件 日志文件
• 新的默认服务
ORCL 12.1

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

有三种方法可以将非 CDB 数据库插入 CDB。


无论使用哪种方法,您都必须让非 CDB 进入事务处理一致状态,并在受限模式下将其
打开。
• 可以使用可传输表空间 (TTS)、完整常规导出/导入或可传输数据库 (TDB),在使用
可传输数据库时,任何用户定义的对象都必须驻留在一个用户定义的表空间中。
• 或者,使用 DBMS_PDB 程序包构造描述非 CDB 数据文件的 XML 文件,从而将非
CDB 作为 PDB 插入 CDB。此方法的前提条件是,非 CDB 必须为 Oracle 12c DB。
• 或者,使用 GoldenGate 执行复制。
使用 DBMS_PDB 程序包是最简便的方案。
如果不使用 DBMS_PDB 程序包,则使用导出/导入通常比使用 GoldenGate 复制更简单,
但使用导出/导入时,从非 CDB 切换到 PDB 期间所需的停机时间可能更长。
如果选择使用导出/导入并且将整个非 CDB 移动到 CDB,可传输数据库 (TDB) 通常是最
佳选择。如果选择将部分非 CDB 导出并导入 CDB,可传输表空间 (TTS) 则是最佳选择。

Oracle Database 12c:新功能 - 面向管理员 4-30


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

要了解第一种或第三种方法的步骤,请参阅本课程的附录 B“其他 PDB 创建方法”和以


下白皮书“Oracle Database 12c: Full Transportable Export/Import”
(http://www.oracle.com/technetwork/database/enterprise-edition/full-transportable-wp-
12c-1973971.pdf)。

Oracle University and Error : You are not a Valid Partner use only

Oracle Database 12c:新功能 - 面向管理员 4-31


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

使用 DBMS_PDB 将非 CDB 插入 CDB


容器数据库 CDB1
1. 在 READ ONLY 模式下打开 ORCL。
2. SQL> EXEC DBMS_PDB.DESCRIBE
数据文件/ 控制 重做
临时文件 文件 日志文件
('/tmp/ORCL.xml')

Oracle University and Error : You are not a Valid Partner use only
根 3. 以拥有 CREATE PLUGGABLE DATABASE
数据文件/临时文件 权限的公用用户的身份连接到目标 CDB1
PDB$SEED 从
CDB 。
ORCL
数据文件 创建 4. 以 PDB2 的身份插入移走的 ORCL。
PDB2 PDB2
SQL> CREATE PLUGGABLE DATABASE
PDB2 USING '/tmp/ORCL.xml';

插入 5. 运行 noncdb_to_pdb.sql 脚本。
XML 元数据文件 SQL> CONNECT sys@PDB2 AS SYSDBA
SQL> @$ORACLE_HOME/rdbms/admin/noncdb_to_pdb
DBMS_PDB.DESCRIBE
6. 打开 PDB2。
数据文件 控制 重做
文件 日志文件 SQL> ALTER PLUGGABLE DATABASE
ORCL 12.1
PDB2 OPEN;

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

使用 DBMS_PDB 程序包的方法从 Oracle Database 12c 非 CDB 创建移走的 PDB。然后,


将移走的 PDB 作为新 PDB 插入 CDB。在非 CDB 上运行 DBMS_PDB.DESCRIBE 过程生
成一个 XML 文件,描述未来的 PDB。您可以使用 XML 文件和非 CDB 数据文件,按照插
入移走的 PDB 的方式插入此移走的 PDB。具体步骤如下所示:
1. 连接到非 CDB ORCL 并首先确保非 CDB ORCL 处于事务处理一致状态,而且使其进
入只读模式。
2. 执行 DBMS_PDB.DESCRIBE 过程,提供将要生成的文件名。XML 文件包含要插入
的数据文件列表。XML 文件和 XML 文件中描述的数据文件构成移走的 PDB。
3. 连接到目标 CDB,将移走的 ORCL 作为 PDB2 插入。
4. 插入移走的 PDB 之前,确保可以使用 DBMS_PDB.CHECK_PLUG_COMPATIBILITY
过程将其插入 CDB。使用新子句 USING 'XMLfile.xml' 执行 CREATE
PLUGGABLE STATEMENT。ORCL 中的数据文件列表会从 XML 文件读取,以定位和
命名 PDB2 的数据文件。
5. 运行 $ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql 脚本,删除 PDB
SYSTEM 表空间里不需要的元数据。此脚本必须在首次打开 PDB 之前运行。仅在插
入非 CDB 时才需要运行此脚本。
6. 打开 PDB2 验证应用程序表是否在 PDB2 中。

Oracle Database 12c:新功能 - 面向管理员 4-32


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

方法 3:克隆本地 PDB
容器数据库 CDB1 1. 设置 DB_CREATE_FILE_DEST 或
DB_FILE_NAME_CONVERT 实例参数
数据文件/ 控制 重做
临时文件 文件 日志文件
或使用 CREATE_FILE_DEST 子句。 12.1.0.2

2. 连接到根。

Oracle University and Error : You are not a Valid Partner use only

数据文件/临时文件 3. 停顿 PDB1:
PDB$SEED
SQL> ALTER PLUGGABLE DATABASE
数据文件 pdb1 CLOSE;
PDB1 从 SQL> ALTER PLUGGABLE DATABASE
PDB1 pdb1 OPEN READ ONLY;
数据文件 创建
PDB3 PDB3 4. 从 PDB1 克隆 PDB3:
SQL> CREATE PLUGGABLE DATABASE
PDB3 拥有: pdb3 FROM pdb1;
• SYSTEM、SYSAUX 表空间
5. 在读写模式下打开 PDB3。
• 完整目录
• 临时表空间 SQL> ALTER PLUGGABLE DATABASE
• SYS、SYSTEM 公用用户 pdb3 OPEN;
• 同一本地管理员名 6. 重新打开 PDB1。
• 新服务名

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

此方法从 CDB 复制 PDB 并将其插入 CDB。源 PDB 可以位于本地 CDB 或远程 CDB 中。
在同一 CDB 中克隆 PDB 的步骤如下所示:
1. 设置实例参数 DB_CREATE_FILE_DEST= 'PDB3dir' (OMF) 或
PDB_FILE_NAME_CONVERT= 'PDB1dir', 'PDB3dir'(非 OMF)。您也可以
使用 CREATE_FILE_DEST 子句。
2. 以拥有 CREATE PLUGGABLE DATABASE 权限的公用用户身份连接到 CDB 的根。
3. 停顿用于克隆的 PDB,方法是在使用命令 ALTER PLUGGABLE DATABASE CLOSE
克隆 PDB 后使用命令 ALTER PLUGGABLE DATABASE pdb1 READ ONLY。
4. 使用命令 CREATE PLUGGABLE DATABASE 从 pdb1 克隆 PDB pdb3。
5. 然后,使用 ALTER PLUGGABLE DATABASE 命令打开新 PDB pdb3。
6. 最后,重新打开 PDB pdb1。
如果不使用 OMF,则使用 CREATE PLUGGABLE DATABASE 命令和
FILE_NAME_CONVERT=('pdb1dir', 'pdb3dir') 子句定义要从 PDB1 复制的源文件
的目录和 PDB3 的新文件的目标目录。

Oracle Database 12c:新功能 - 面向管理员 4-33


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

方法 3:克隆非 CDB 或远程 PDB


1. 将 ORCL 设置为只读模式。
容器数据库 CDB1
2. 连接到 CDB,创建数据库链接:
数据文件/ 控制 重做
临时文件 文件 日志文件 SQL> CREATE DATABASE LINK

Oracle University and Error : You are not a Valid Partner use only
根 link_orcl connect to system
数据文件/临时文件 identified by ***
PDB$SEED using 'orcl';

数据文件

3. 克隆非 CDB:
PDB_orcl
orcl SQL> CREATE PLUGGABLE DATABASE
pdb_orcl FROM NON$CDB@link_orcl
数据文件 创建
PDB_orcl CREATE_FILE_DEST = '…/PDB_orcl';
非 CDB orcl
4. 运行 noncdb_to_pdb.sql 脚本。
PDB_orcl 拥有:
• SYSTEM、SYSAUX 表空间 SQL> CONNECT sys@pdb_orcl AS SYSDBA
SQL> @$ORACLE_HOME/rdbms/admin/noncdb_to_pdb
• 完整目录
• 临时表空间 5. 在读写模式下打开 PDB_ORCL。
• SYS、SYSTEM 公用用户
SQL> ALTER PLUGGABLE DATABASE
• 新服务名 pdb_orcl OPEN;

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

此方法复制非 CDB 或远程 PDB 并将副本插入 CDB。


将非 CDB 或远程 PDB 克隆到 CDB 中的步骤如下所示:
1. 将非 CDB 或远程 PDB 设置为只读模式。
2. 以拥有 CREATE PLUGGABLE DATABASE 权限的公用用户身份连接到目标 CDB
的根。
3. 创建数据库链接,允许以拥有 CREATE PLUGGABLE DATABASE 权限的用户身份
连接到远程非 CDB 或 PDB。
4. 本幻灯片描述了如何使用 CREATE PLUGGABLE DATABASE 命令克隆非 CDB。如
果克隆远程 PDB,则使用源 PDB 名代替 NON$CDB。确保新 PDB 不与 CDB 中任
何容器的名称冲突。
5. 如果克隆的源为非 CDB,则需要运行
$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql 脚本。
6. 然后,使用 ALTER PLUGGABLE DATABASE 命令打开新 PDB。
7. 最后,您可以重新打开非 CDB 或远程 PDB。
此外还有其他克隆方案,例如 SNAPSHOT COPY。请参阅《Oracle Database
Administrator’s Guide 12c Release 1 (12.1)》。
Oracle Database 12c:新功能 - 面向管理员 4-34
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

方法 4:将移走的 PDB 插入 CDB


CDB1
将 PDB1 从 CDB1 移走:
容器数据库
根 1. 以公用用户的身份连接到 CDB1。
PDB$SEED 2. 验证 PDB1 是否已关闭。

Oracle University and Error : You are not a Valid Partner use only
SYSTEM
3. SQL> ALTER PLUGGABLE DATABASE
数据文件
USERS
PDB1 SYSAUX pdb1 UNPLUG INTO
'xmlfile1.xml';
移走 PDB1
4. 或者,将 PDB1 从 CDB1 删除。
XML 文件
将 PDB1 插入 CDB2:
插入 PDB1
1. 以公用用户的身份连接到 CDB2。
容器数据库 CDB2
2. 使用 DBMS_PDB 程序包检查 PDB1 与

CDB2 的兼容性。
PDB$SEED 3. SQL> CREATE PLUGGABLE DATABASE
数据文件 SYSTEM pdb1 USING 'xmlfile1.xml'
SYSAUX USERS
PDB1 NOCOPY;

4. 在读写模式下打开 PDB1。

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

您可以通过移走/插入方法在 CDB 中创建 PDB。


移走 PDB 可以解除 PDB 与 CDB 的关联关系。当您想将 PDB 移动到不同的 CDB 时,或
者当您不再想让 PDB 可用时,您可以移走 PDB。
第一步是将 PDB1 从 CDB1 移走。第二步是将 PDB1 插入 CDB2。
要将 PDB1 从 CDB1 移走,首先连接到 CDB1 的根,检查 PDB 是否已关闭。然后,使用
ALTER PLUGGABLE DATABASE 及 UNPLUG 子句 指定要移走的数据库以及要移走的
XML 文件。必须先将 PDB 从 CDB 删除,才能将其重新插入同一 CDB 中。将 PDB 插入
另一个 CDB 时如果复制了数据文件,则无需删除 PDB。
将 PDB1 插入 CDB2 之前,您可以选择使用 DBMS_PDB.CHECK_PLUG_COMPATIBILITY
函数检查移走的 PDB 是否与 CDB2 兼容。
要将 PDB1 插入 CDB2,请以公用用户的身份连接到 CDB2 根并使用 CREATE
PLUGGABLE DATABASE pdb1 USING 'xmlfile1.xml'。最后一步是打开 PDB。

Oracle Database 12c:新功能 - 面向管理员 4-35


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

方法 4:流
若干子句可以结合在一起使用:
新 PDB 文件是否基于用于 如果不是,则需要使用 AS CLONE 子句,如此一来,它可
创建 CDB 中现有 PDB 的 以确保 Oracle DB 生成唯一的 PDB DBID、GUID 和新
相同文件? PDB 所需的其他标识符。

Oracle University and Error : You are not a Valid Partner use only
XML 文件是否准确描述了 如果不是,则需要使用 SOURCE_FILE_NAME_CONVERT
当前的文件位置? 子句。

如果不是,则指定 COPY 将文件复制到新位置,或者指定


文件是否在正确的位置? MOVE 将它们移动到另一个位置。
如果是,则使用 NOCOPY。COPY 为默认值。
• CREATE PLUGGABLE DATABASE 语句的
FILE_NAME_CONVERT 或 CREATE_FILE_DEST 子句
• 实例 DB_CREATE_FILE_DEST 或
PDB_FILE_NAME_CONVERT 参数

是否要指定 PDB 的存储 如果是,则指定 STORAGE 子句。


限制?

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

若干子句可根据不同的假设结合在一起使用:
第一个问题:新 PDB 的文件是否基于用于创建 CDB 中现有 PDB 的相同文件?如果不
是,则需要使用 AS CLONE 子句,如此一来,它可以确保 Oracle DB 生成唯一的 PDB、
DBID、GUID 和新 PDB 所需的其他标识符。
第二个问题:XML 是否准确描述了当前的文件位置?如果不是,则需要使用
SOURCE_FILE_NAME_CONVERT 子句。
第三个问题:文件是否在正确的位置?如果不是,则指定 COPY 将文件复制到新位置,
或者指定 MOVE 将文件移动到另一个位置。如果是,则使用 NOCOPY。COPY 是默认值。
使用以下方法之一指定目标位置:
• 在 CREATE PLUGGABLE DATABASE 语句中,包括 FILE_NAME_CONVERT 或
CREATE_FILE_DEST 子句,以根据源文件的名称指定目标位置。
• 或者,启用 OMF,以使用 DB_CREATE_FILE_DEST 初始化参数确定目标位置。
• 或者,使用 PDB_FILE_NAME_CONVERT 初始化参数指定目标位置。

Oracle Database 12c:新功能 - 面向管理员 4-36


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

如果使用上述多种方法,先后顺序为:
• FILE_NAME_CONVERT 或 CREATE_FILE_DEST 子句
• Oracle Managed Files(通过使用 DB_CREATE_FILE_DEST 初始化参数)
• PDB_FILE_NAME_CONVERT 初始化参数
第四个问题:是否要指定 PDB 的存储限制?如果是,则指定 STORAGE 子句。
这是因为,根据不同的组合,您可以使用不同的语法:

Oracle University and Error : You are not a Valid Partner use only
CREATE PLUGGABLE DATABASE PDB1 AS CLONE USING
'/disk1/usr/salespdb.xml' COPY;

CREATE PLUGGABLE DATABASE PDB1 USING '/disk1/usr/salespdb.xml'


SOURCE_FILE_NAME_CONVERT = ('/disk1/oracle/sales',
'/disk2/oracle/sales') NOCOPY STORAGE (MAXSIZE 500M
MAX_SHARED_TEMP_SIZE 100M);

CREATE PLUGGABLE DATABASE PDB1 USING '/disk1/usr/salespdb.xml'


COPY FILE_NAME_CONVERT = ('/disk1/oracle/sales',
'/disk2/oracle/sales');
要知道 PDB 是否已移走,请在 CDB_PDBS 视图中显示 STATUS 列:值为 UNPLUGGED
表示已移走:
SQL> select pdb_name , status from CDB_PDBS;

PDB_NAME STATUS
------------ ------------
PDB1 NORMAL
PDB$SEED NORMAL
PDB3 UNPLUGGED

Oracle Database 12c:新功能 - 面向管理员 4-37


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

插入示例方案 PDB:使用 DBCA


1
2

Oracle University and Error : You are not a Valid Partner use only
3

4
使用 PDB 文件集
插入采用示例
方案的新 PDB

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

您可以使用 DBCA 插入采用示例方案的新 PDB。


1. 在 DBCA 中,单击“Manage Pluggable Databases(管理可插入数据库)”。
2. 然后选择“Create a Pluggable Database(创建可插入数据库)”。
3. 选择您打算在其中创建新 PDB 的 CDB。
4. 单击“Create Pluggable Database by using PDB File Set(使用 PDB 文件集创建可
插入数据库)”。浏览找到两个文件:
- 可插入数据库元数据文件:
$ORACLE_HOME/assistants/dbca/templates/sampleschema.xml
- 可插入数据库数据文件备份:
$ORACLE_HOME/assistants/dbca/templates/sampleschema.dfb
5. 定义新 PDB 的名称和数据文件的位置。
您还可以定义 PDB 用户,为 PDB 创建新管理员。
6. 单击“Next(下一步)”和“Finish(完成)”。

Oracle Database 12c:新功能 - 面向管理员 4-38


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

删除 PDB
容器数据库 CDB1 SQL> ALTER PLUGGABLE DATABASE
pdb1 CLOSE;
数据文件/ 控制 重做
临时文件 文件 日志文件 SQL> DROP PLUGGABLE DATABASE
pdb1 [INCLUDING DATAFILES];

Oracle University and Error : You are not a Valid Partner use only
文件 1
文件 2
文件 3
TEMP
文件 4 根
• 更新控制文件
• 如果 INCLUDING DATAFILES:
数据文件
– 删除 PDB1 数据文件
文件 5
文件 6 文件 7
• 如果 KEEP DATAFILES(默认值):
PDB$SEED
– 保留数据文件
数据文件 – 可插入另一个或同一个 CDB 中
文件 8
文件 9 文件 10 删除 PDB1 • 要求 SYSDBA 权限
PDB1 • 不能删除种子 PDB
数据文件
PDB4

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

当您不再需要 PDB 中的数据时,您可以删除 PDB。


您也可以将其移走,然后将其删除,同时指定 KEEP DATAFILES,以便在删除 PDB 后
保留与 PDB 相关的数据文件。KEEP DATAFILES 为默认行为。
将移走的 PDB 插入另一个 CDB 时,保留数据文件可能有用。
删除 PDB 时,如果指定 INCLUDING DATAFILES,控制文件中列出的所有数据文件均
会删除。
无论是否使用子句 INCLUDING DATAFILES,DROP PLUGGABLE DATABASE 语句都会
修改控制文件,消除所有对所删除 PDB 的引用。
PDB 备份不会删除,但您可以使用 RMAN 删除它们。此操作要求 SYSBACKUP 权限。
要执行此操作,请使用 SQL*Plus、SQL Developer、DBCA 或 Enterprise Manager
Cloud Control。
您不能删除种子可插入数据库。

Oracle Database 12c:新功能 - 面向管理员 4-39


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

将 12.1 之前版本的数据库移植到 12.1 CDB


有两种方法: CDB CDB1

1. 将现有的 12.1 之前版本的 数据文件/


临时文件
控制
文件
重做
日志文件

Oracle University and Error : You are not a Valid Partner use only
数据库升级到 12c。 根

2. 将非 CDB 插入 CDB。 数据文件


PDB1

impdp
2
转储文件 复制 XML 文件
或 expdp
数据文件 控制 重做
文件 日志文件

1. 在 CDB 中预创建 PDB。 ORCL 12c

2. 使用 11g expdp / 12c impdp 1


数据文件 控制 重做
或者,在非 CDB 和 PDB 文件 日志文件

之间执行复制。 ORCL 11g

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

有两种方法可以将非容器 11g 数据库移植到 12c CDB。


第一种方法包括两个步骤:
1. 将 11g 数据库升级到 12c 非 CDB。
2. 将 12c 非 CDB 插入 CDB:使用 DBMS_PDB.DESCRIBE 过程生成 XML 文件,将数
据文件作为新的 PDB 插入 CDB。
第二种方法也包括两个步骤:
1. 在 CDB 中从种子 PDB 预创建 PDB。此操作将在新建的 PDB 中建立 Oracle
Database 12c 字典。
2. 使用导出/导入或复制将 11g 数据加载到 CDB 中新创建的 PDB 中。

Oracle Database 12c:新功能 - 面向管理员 4-40


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

测验

以下关于将 PDB 克隆到同一 CDB 的说法中,哪一项是正确

Oracle University and Error : You are not a Valid Partner use only
的?选择所有适用的选项。
a. 此操作无法实现。只能将 PDB 克隆到另一个 CDB 中。
b. 只能将 PDB 克隆到同一个 CDB 中。
c. 克隆 PDB 可以使用将源文件复制到目标 PDB 文件的
方法。
d. 如果目标 PDB 文件将使用源文件,克隆 PDB 时可以使
用 NOCOPY 子句。

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

答案:c、d

Oracle Database 12c:新功能 - 面向管理员 4-41


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

测验

以下关于删除 PDB 的说法中,哪一项是正确的?

Oracle University and Error : You are not a Valid Partner use only
a. 只能在 PDB 关闭时删除 PDB。
b. 可以删除种子 PDB,但删除后不能在 CDB 中创建任何
其他 PDB。
c. 可以删除 PDB,并保留数据文件,以备另一个 PDB
重用。
d. 删除 PDB 时,数据文件和重做日志文件将自动从存储
文件系统删除。

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

答案:a、c

Oracle Database 12c:新功能 - 面向管理员 4-42


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

小结

在本课中,您应该已经学会:
• 配置和创建 CDB

Oracle University and Error : You are not a Valid Partner use only
• 从 PDB$SEED 创建 PDB
• 将非 CDB 插入或克隆到 CDB 中
• 将本地或远程 PDB 克隆到 CDB 中
• 将 PDB 从一个 CDB 移走并将其插入另一个 CDB 中
• 了解实例
• 了解 PDB 的结构
• 删除 PDB
• 将 12.1之前版本的非 CDB 数据库移植到 CDB

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle Database 12c:新功能 - 面向管理员 4-43


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

练习

• 4-1:创建新 CDB

Oracle University and Error : You are not a Valid Partner use only
• 4-2:了解 CDB 和 PDB 结构
• 4-3:从种子创建 PDB
• 4-4:在同一 CDB 中克隆 PDB
– 使用 SQL*Plus
– 使用 SQL Developer
• 4-5:将非 CDB 克隆到 CDB 中
• 4-6:将多个 CDB 合并为一个

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle Database 12c:新功能 - 面向管理员 4-44


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

可插入数据库
管理多租户容器数据库和

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle Database 12c 新增功能和增强功能


Enterprise Manager Enterprise Manager Enterprise Manager
Cloud Control Database Express 其他工具
和其他工具

CDB 和 PDB 基础功能 CDB 和 PDB 创建 CDB 和 PDB 管理

Oracle University and Error : You are not a Valid Partner use only
热图和自动数据优化 联机数据文件移动
ADO 和存储
数据库中归档和期间有效性 期间历史记录

安全性 统一审计 权限分析 数据编写

HA RMAN

易管理性 DB 操作 实时 ADDM 比较时段 ADDM ADR


12.1.0.2 12.1.0.2

内存中列存储 整个数据库内存中高速缓存
性能 自动大表高速 12.1.0.2
SQL 优化 资源管理器 索引、表
缓存

数据泵、SQL*Loader 和外部表 分区
其他
12.1.0.2
JSON SQL

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle Database 12c:新功能 - 面向管理员 5-2


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

课程目标

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

Oracle University and Error : You are not a Valid Partner use only
• 建立到 CDB/PDB 的连接
• 启动和关闭 CDB
• 打开和关闭 PDB
12.1.0.2

• 保留或放弃 PDB 打开模式


• 更改 PDB 的不同模式和设置
• 评估参数值更改的影响

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

注释
要全面了解多租户体系结构和使用方法,请参阅 Oracle 文档中的以下指南:
• 《Oracle Database Administrator’s Guide 12c Release 1 (12.1)》
• 请参阅其他信息资源:
• Oracle 学习库中的“Oracle Database 12c New Features Demo Series”演示:
- Managing Pluggable Databases (PDBs) Using SQL Developer
请参阅 MOS 简讯:
• Oracle Multitenant Option - 12c: Frequently Asked Questions(文档 ID
1511619.1)

Oracle Database 12c:新功能 - 面向管理员 5-3


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

连接
多租户容器数据库 CDB1
工具
根 SQL*Plus
SQL*Developer
监听程序/服务
PDBtest

Oracle University and Error : You are not a Valid Partner use only
PDBHR 应用程序服务器
SQL*Plus
监听程序/服务 工具
PDBdev

• 每个 PDB 都有一个默认服务。
SQL> SELECT name, pdb FROM cdb_services;

• 服务名必须在各个 CDB 中都是唯一的。


SQL> CONNECT / AS SYSDBA
SQL> CONNECT sys@PDBtest AS SYSDBA
SQL> CONNECT local_user1@hostname1:1525/PDBHR
SQL> CONNECT common_user2@PDBdev
SQL> SHOW CON_NAME

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

默认服务
在 PDB 中执行任何维护和管理操作之前,应先了解如何连接到 CDB 和特定的 PDB。
CDB 中的任何容器都有一个服务名。
• 根容器服务名是在创建 CDB 时给定的 CDB 名称,该名称会与域名连接在一起。
• 每个新 PDB 都会分配一个服务名:服务名是在创建 PDB 时给定的 PDB 名称,该名
称会与域名连接在一起。如果创建或插入 PDBtest PDB,其服务名为 PDBtest,该
名称会与域名连接在一起。容器服务名必须在 CDB 中乃至在注册到同一监听程序的
多个 CDB 中保持唯一。
• 您可以在 CDB_SERVICES 或 V$SERVICES 视图中查找 CDB 和 PDB 中维护的所有
服务名。PDB 列显示了服务链接到的 PDB。
连接到 CDB 或 PDB
• 要连接到 CDB,即根,请使用本地 OS 验证或根服务名。例如,如果将
ORACLE_SID 设置为 CDB 实例名并使用命令 CONNECT / AS SYSDBA,则会以授
予系统权限的公用 SYS 用户的身份连接至根,以管理和维护所有 PDB。

Oracle Database 12c:新功能 - 面向管理员 5-4


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

如果使用服务名,则可以使用 EasyConnect 语法或 tnsnames.ora 中的别名。


使用 EasyConnect 时,输入以下连接字符串:
SQL> CONNECT username@hostname:portnumber/service_name
使用 tnsnames.ora 文件时,输入以下连接字符串:
SQL> CONNECT username@net_service_name
• 要连接到所需的 PDB,请使用 Easyconnect 或 tnsnames.ora 文件中的别名,例如

Oracle University and Error : You are not a Valid Partner use only
本幻灯片所示的方式。在本例中,tnsnames.ora 中的 net_service_name 与服务名
匹配。
创建服务
如果数据库不是由 Oracle Restart 或 Oracle Clusterware 管理,可以使用
DBMS_SERVICE 程序包为每个 PDB 创建或修改服务。在这种情况下,PDB 属性设置为
当前执行操作的 PDB。
SQL> CONNECT system@salespdb
SQL> EXEC
DBMS_SERVICE.CREATE_SERVICE('salesrep','salesrep')
SQL> EXEC DBMS_SERVICE.START_SERVICE('salesrep')
要为每个 PDB 创建或修改服务,还可以使用 Server Control 实用程序和 srvctl add
service 命令通过额外的属性 –pdb 指定 PDB 名:
$ srvctl add service -db mycdb -service salesrep -pdb
salespdb
本例通过 DB_UNIQUE_NAME mycdb 为 CDB 中的 PDB salespdb 添加 salesrep
服务。
为 PDB 配置操作系统用户 (Oracle Database 12.1.0.2)
您可以不对 PDB 使用 Oracle 操作系统用户,而是将一个特定用户帐户设置为该 PDB 的
操作系统用户。如果不将特定用户设为 PDB 的操作系统用户,则在默认情况下,PDB 使
用 Oracle 操作系统用户。对于根,当您必须与操作系统交互时,您可以使用 Oracle 操作
系统用户。
为改善安全性,Oracle 建议您为多租户环境中的每个 PDB 设置唯一的操作系统用户。这
样做有助于确保操作系统交互由权限低于 Oracle 操作系统用户的用户执行,并有助于避
免某个 PDB 的数据被连接至其他 PDB 的用户访问。

Oracle Database 12c:新功能 - 面向管理员 5-5


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

为 PDB 设置操作系统用户:
1. 以用户身份登录根,然后执行 DBMS_CREDENTIAL.CREATE_CREDENTIAL 过程,
为 fred 操作系统用户创建 Oracle 身份证明:
SQL> EXEC DBMS_CREDENTIAL.CREATE_CREDENTIAL ( -
credential_name => 'CDB1_PDB1_FRED', username =>
'fred',-
password => 'password')

Oracle University and Error : You are not a Valid Partner use only
2. 连接到 PDB,将 PDB_OS_CREDENTIAL 设置为新的身份证明:
SQL> ALTER SYSTEM SET PDB_OS_CREDENTIAL=CDB1_PDB1_FRED
SCOPE=spfile;
3. 重新启动 CDB 实例。
4. 以 fred 的身份测试连接:
[fred] $ sqlplus sys@pdb1 as sysdba

Oracle Database 12c:新功能 - 面向管理员 5-6


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

使用 SQL*Developer 连接

h1
h1
h1

Oracle University and Error : You are not a Valid Partner use only
h1

多租户容器数据库

根容器/
djeunot 服务名

PDB1 容器 /
pdb1 服务名

PDB2 容器 /
pdb2 服务名

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

也可以使用 SQL Developer 连接到 CDB、根以及任何 PDB。如本幻灯片所示,在左侧


窗格中,有三个已配置的连接名,一个连接到根,另一个连接到 pdb1,第三个连接到
pdb2。
在右侧窗格中,从连接名 CDB_root_djeunot_as_system 可知,连接到服务名
djeunot 的连接对应 CDB 名,即根,而且这一连接是以用户 SYSTEM 的身份建立的。

Oracle Database 12c:新功能 - 面向管理员 5-7


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

切换连接
多租户容器数据库 在 CDB 中的容器之间切换连接的方式有
CDB1
两种:
根 • 重新连接:

Oracle University and Error : You are not a Valid Partner use only
SQL> CONNECT / AS SYSDBA
PDBtest SQL> CONNECT local_user1@PDBdev

PDBHR
• 使用 ALTER SESSION 语句:
SQL> CONNECT sys@PDBtest AS SYSDBA
SQL> ALTER SESSION SET CONTAINER=PDBHR;
PDBdev
SQL> SHOW CON_NAME
SQL> ALTER SESSION SET
CONTAINER=CDB$ROOT;

• 使用 CONNECT 时,能以公用用户或本地用户的身份进行连接。
• 使用 ALTER SESSION SET CONTAINER 时,只能以授予新系统
权限 SET CONTAINER 的公用用户身份进行连接。
– AFTER LOGON 触发器不触发。
– 事务处理在切换容器后依然保持暂挂状态。

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

CDB 管理员可以使用 CONNECT 或 ALTER SESSION SET CONTAINER 在容器之间切


换,从而连接到 CDB 中的任意容器。例如,CDB 管理员可以在一个会话中连接到根,然
后在同一会话中切换到 PDBHR 容器。这要求用户是这两个容器的已知公用用户,并且拥
有系统权限 SET CONTAINER。
• 使用 CONNECT 命令时,能以公用或本地用户身份进行连接。
• 使用 ALTER SESSION SET CONTAINER 时,只能以授予新系统权限 SET
CONTAINER 的公用用户身份进行连接。
- 注意,AFTER LOGON 触发器不触发。
- 当切换到另一个容器和切换回原始容器时,原始容器中未提交和未回退的事务
处理依然处于暂挂状态。

Oracle Database 12c:新功能 - 面向管理员 5-8


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

启动 CDB 实例
SQL> CONNECT sys@CDB1 AS SYSDBA
SQL> STARTUP NOMOUNT

Oracle University and Error : You are not a Valid Partner use only
SQL> SELECT name, open_mode
FROM v$pdbs;

no rows selected

NOMOUNT

CDB 实例已启动

SHUTDOWN

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

在非 RAC 环境中,CDB 用一个实例运行。此实例的启动方式与非 CDB 数据库的实例启


动方式完全相同,都使用 STARTUP NOMOUNT 语句。您需要以 SYSDBA 的身份连接到
CDB 的根,才能启动实例。
可使用 V$PDBS 视图查看 PDB 的打开模式。

Oracle Database 12c:新功能 - 面向管理员 5-9


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

装载 CDB
SQL> CONNECT sys@CDB1 AS SYSDBA 或
SQL> STARTUP MOUNT

SQL> ALTER DATABASE cdb1 MOUNT;

Oracle University and Error : You are not a Valid Partner use only
SQL> SELECT name,open_mode
2 FROM v$pdbs;

NAME OPEN_MODE
---------------- ----------
PDB$SEED MOUNTED MOUNT
PDB1 MOUNTED
PDB2 MOUNTED – CDB 控制文件已为实例打开
– 根已装载
NOMOUNT – PDB 已装载

实例
已启动
SHUTDOWN

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

CDB 可以使用 MOUNT 选项启动。用于装载 CDB 的命令与非 CDB 数据库的装载命令相


同,都使用 STARTUP MOUNT 语句。同样,您需要以 SYSDBA 的身份连接到 CDB 的根,
才能执行此操作。
CDB 装载时根也会装载,这意味着控制文件已打开,PDB 已装载。
可使用 V$PDBS 视图中的 open_mode 列验证所有 PDB 都已装载。

Oracle Database 12c:新功能 - 面向管理员 5-10


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

打开 CDB
SQL> STARTUP 或

SQL> ALTER DATABASE cdb1 OPEN;

Oracle University and Error : You are not a Valid Partner use only
SQL> SELECT name,open_mode
2 FROM v$pdbs;
OPEN
NAME OPEN_MODE
---------------- ---------- – 根已打开
PDB$SEED READ ONLY – PDB 仍然处于装载
PDB1 MOUNTED
状态,但处于只读
PDB2 MOUNTED MOUNT
模式的种子除外
– CDB 控制文件已为实例打开
– 根已装载
NOMOUNT – PDB 已装载

实例
已启动
SHUTDOWN

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

CDB 打开时根也会打开,这意味着所有重做日志文件和根数据文件都已打开,但所有
PDB 仍然处于仅装载状态。只有到根的连接允许操作。需要发布单独的语句打开 PDB,
除非触发器在 STARTUP DATABASE 后自动打开 PDB。
可使用 V$PDBS 视图中的 open_mode 列验证所有 PDB 仍然处于装载状态,但处于只读
模式的种子除外。这允许从种子创建新的 PDB。

Oracle Database 12c:新功能 - 面向管理员 5-11


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

打开 PDB
SQL> CONNECT sys@CDB1 AS SYSDBA 或
SQL> ALTER PLUGGABLE DATABASE pdb1 OPEN; PDB OPEN
SQL> ALTER PLUGGABLE DATABASE ALL OPEN; PDB 在读写模式

Oracle University and Error : You are not a Valid Partner use only
下打开,但处于只
SQL> SELECT name,open_mode 读模式的种子除外
2 FROM v$pdbs; OPEN
NAME OPEN_MODE – 根已打开
---------------- ---------- – PDB 仍然处于装载
PDB$SEED READ ONLY 状态,但处于只读
PDB1 READ WRITE MOUNT
PDB2 READ WRITE
模式的种子除外
– CDB 控制文件已为实例打开
– 根已装载
NOMOUNT – PDB 已装载

实例
已启动
SHUTDOWN

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

要打开一个 PDB 或打开部分或全部 PDB,请以 SYSOPER 或 SYSDBA 的身份连接到根,


然后发出 ALTER PLUGGABLE DATABASE OPEN 语句,以指定一个或多个 PDB 名称或
指定 ALL EXCEPT 或 ALL。
此操作将打开所打开 PDB 的数据文件,使其可供用户使用。
可使用 V$PDBS 视图中的 open_mode 列验证所有 PDB 都处于 READ WRITE 打开模式,
但仍然处于 READ ONLY 打开模式的种子除外。
您也可以在以 SYSDBA 身份连接的 PDB 中打开 PDB。在这种情况下,不必命名要打开的
PDB。

Oracle Database 12c:新功能 - 面向管理员 5-12


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

关闭 PDB
SQL> CONNECT / AS SYSDBA
SQL> ALTER PLUGGABLE DATABASE pdb1 PDB CLOSE
CLOSE IMMEDIATE;
SQL> ALTER PLUGGABLE DATABASE PDB 已关闭

Oracle University and Error : You are not a Valid Partner use only
ALL EXCEPT pdb1 CLOSE;
SQL> ALTER PLUGGABLE DATABASE
ALL CLOSE;

SQL> CONNECT sys@pdb1 AS SYSDBA


SQL> ALTER PLUGGABLE DATABASE CLOSE; CDB OPEN
或者
SQL> SHUTDOWN IMMEDIATE; – 根已打开
– PDB 已装载,但仍然处于
MOUNT 只读模式的种子除外

– CDB 控制文件已为实例打开
– 根已装载
– PDB 已装载
NOMOUNT
实例
SHUTDOWN 已启动

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

要关闭一个 PDB 或关闭部分或全部 PDB,请以 SYSOPER 或 SYSDBA 的身份连接到根,然


后发出 ALTER PLUGGABLE DATABASE CLOSE 语句,以指定一个或多个 PDB 名称或指
定 ALL EXCEPT 或 ALL。如果使用 CLOSE IMMEDIATE 子句,所选 PDB 中的事务处理将
回退,且会话将断开。如果省略 IMMEDIATE 子句,语句将挂起,直到所有会话全部断开
为止。
此操作将关闭所关闭 PDB 的数据文件,使其不可供用户使用。尽管所有 PDB 都已关闭,
但依然可以从根执行操作,例如删除 PDB,或从种子创建新 PDB。
连接到 PDB 时,语句 SHUTDOWN IMMEDIATE 等同于 ALTER PLUGGABLE DATABASE
CLOSE。它将关闭 PDB。
注:尽管 SHUTDOWN IMMEDIATE 会发出传统消息 ORACLE instance shut down,但
这并不意味着实例已关闭。请将其理解成 PDB 已关闭。
如果 PDB 已关闭,则消息将清楚地说明具体情况:
SQL> shutdown immediate
ORA-65020: Pluggable database already closed

Oracle Database 12c:新功能 - 面向管理员 5-13


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

关闭 CDB 实例

SQL> CONNECT sys@CDB1 AS SYSDBA


SQL> SHUTDOWN IMMEDIATE

Oracle University and Error : You are not a Valid Partner use only
• 所有 PDB 均已关闭(无新的具体消息)
• CDB 已关闭
• CDB 已卸装
• 实例已关闭
SQL> CONNECT sys@PDB1 AS SYSDBA
SQL> SHUTDOWN IMMEDIATE

• PDB 已关闭

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

当 CDB 关闭时,根容器的数据文件和所有 PDB 全部关闭,然后所有控制文件全部关闭,


最后则是实例关闭。
当 PDB 关闭时,这意味 PDB 的数据文件会关闭。

Oracle Database 12c:新功能 - 面向管理员 5-14


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

12.1.0.2

自动打开 PDB

• CDB STARTUP 后自动保留 PDB 状态:


SQL> ALTER PLUGGABLE DATABASE pdb1 SAVE STATE;

Oracle University and Error : You are not a Valid Partner use only
案例 1 案例 2 案例 3

PDB1 OPENED PDB1 MOUNTED PDB1 OPENED READ ONLY

SHUTDOWN
自动打开
PDB STARTUP

PDB1 OPENED PDB1 MOUNTED PDB1 OPENED READ ONLY

• CDB STARTUP 后自动放弃 PDB 状态:


SQL> ALTER PLUGGABLE DATABASE pdb1 DISCARD STATE;

案例 1 案例 2 案例 3

PDB1 OPENED PDB1 MOUNTED PDB1 OPENED READ ONLY

PDB1 MOUNTED PDB1 MOUNTED PDB1 MOUNTED

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

重新启动 CDB 实例后,默认情况下,PDB 会一直保持在装载模式下。如果您希望 PDB


在 CDB 重新启动后自动打开,请使用 ALTER PLUGGABLE DATABASE 命令的 SAVE
STATE 子句,以便在 CDB 重新启动后保留 PDB 打开模式。SAVE STATE 子句可以保存
PDB 的最后打开状态。因此,PDB 将在 CDB 重新启动后打开,但前提条件是 PDB 在系
统使用 SAVE STATE 子句保存最后状态时处于打开状态。要恢复默认行为,请使用
DISCARD STATE 子句。

新的事件触发器
AFTER CLONE 触发器在克隆 PDB 后在 PDB 副本中触发。BEFORE UNPLUG 触发器在
任何移走操作开始之前在 PDB 中触发。创建两个触发器中的任意一个时,必须指定 ON
PLUGGABLE DATABASE。这些触发器会在触发后删除。两个触发器中的任意一个发生故
障,都会导致克隆操作失败。
Oracle Database 12c PS1 中引入了另一个数据库事件。BEFORE/AFTER SET
CONTAINER ON PLUGGABLE DATABASE 在执行 ALTER SESSION SET CONTAINER
语句之前或之后触发。

Oracle Database 12c:新功能 - 面向管理员 5-15


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

更改 PDB 打开模式
关闭 PDB 后,可在三种模式下打开 PDB:
• 受限读写:

Oracle University and Error : You are not a Valid Partner use only
SQL> ALTER PLUGGABLE DATABASE pdb1 OPEN RESTRICTED;

SQL> SELECT name, open_mode, restricted FROM v$pdbs;

NAME OPEN_MODE RES


---------------------- ---------- ---
PDB1 READ WRITE YES
PDB2 READ WRITE NO

• 只读:
SQL> ALTER PLUGGABLE DATABASE ALL OPEN READ ONLY;

• 读写:
SQL> ALTER PLUGGABLE DATABASE ALL CLOSE;
SQL> ALTER PLUGGABLE DATABASE ALL OPEN;

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

您可以更改每个 PDB 的模式,执行特定管理操作。


第一个示例在 RESTRICTED READ WRITE 模式下打开 PDB。此模式仅允许拥有
RESTRICTED SESSION 权限的用户进行连接。而且,此模式允许 PDB 的本地管理员管
理文件移动、备份以及阻止会话访问数据。
可使用 V$PDBS 视图验证 PDB 是否处于 RESTRICTED READ WRITE 打开模式。
第二个示例在 READ ONLY 模式下打开所有 PDB。连接到 PDB 的所有会话都只能执行只
读事务处理。
要更改打开模式,请首先关闭 PDB。您可以将同一打开模式应用于全部或部分 PDB。

Oracle Database 12c:新功能 - 面向管理员 5-16


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

更改 PDB 模式:使用 SQL Developer

3. 关闭 PDB 并
应用。

Oracle University and Error : You are not a Valid Partner use only
2. 单击“Modify State
(修改状态)”。

4. 选择打开模式
并应用。

1. 选择要更改状
态的 PDB。

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

如果源 PDB 依然处于打开状态,必须在 READ ONLY 模式下打开 PDB。因此,请首先关


闭 PDB,然后在 READ ONLY 模式下打开 PDB。接下来,您可以反复执行克隆操作。

Oracle Database 12c:新功能 - 面向管理员 5-17


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

修改 PDB 设置
• 使 PDB 数据文件联机。
• 更改 PDB 默认表空间。
• 更改 PDB 默认临时表空间。

Oracle University and Error : You are not a Valid Partner use only
• 设置 PDB 存储限制。
• 更改全局名称。
SQL> CONNECT sys@pdb1 AS SYSDBA
SQL> ALTER PLUGGABLE DATABASE DATAFILE '/u03/pdb1_01.dbf‘
ONLINE;

SQL> ALTER PLUGGABLE DATABASE DEFAULT TABLESPACE pdb1_tbs;

SQL> ALTER PLUGGABLE DATABASE DEFAULT TEMPORARY TABLESPACE


temp_tbs;

SQL> ALTER PLUGGABLE DATABASE STORAGE (MAXSIZE 2G);

SQL> ALTER PLUGGABLE DATABASE RENAME GLOBAL_NAME TO pdbAPP1;

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

您不必更改 PDB 的模式就可以修改每个 PDB 的设置。您必须在 PDB 中连接,才能更改


设置。
第一个示例使用 DATAFILE 子句使数据文件联机。
第二个示例将 PDB 的默认永久表空间设置为 pdb1_tbs。
第三个示例将 PDB 的默认临时表空间设置为 temp_tbs。
第四个示例将属于 PDB 的所有表空间的存储限制设为 2GB。
第五个示例将 PDB 的全局数据库名设为 pdbAPP1。此 PDB 的新全局数据库名必须不同
于 CDB 中任意容器的全局数据库名称,而且此操作只能在受限模式下执行。

Oracle Database 12c:新功能 - 面向管理员 5-18


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

实例参数更改影响

• 每个 CDB 一个 SPFILE
• PDB 参数值更改:

Oracle University and Error : You are not a Valid Partner use only
– 在 PDB 关闭后加载到内存中
– 在 CDB 关闭后存储在字典中
– 仅适用于 ISPDB_MODIFIABLE=TRUE 的参数
SQL> CONNECT sys@pdb1 AS SYSDBA
Connected.
SQL> ALTER SYSTEM SET ddl_lock_timeout=10;
System altered.
SQL> show parameter ddl_lock_timeout

NAME TYPE VALUE


------------------------------------ ----------- ---------
ddl_lock_timeout boolean 10

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

每个 CDB 有一个 SPFILE 用于存储参数。参数值与根相关联,应用于根,并且可用作所


有其他容器的默认值。
您可以在 PDB 中为参数设置不同的值,前提是 V$PARAMETER 中的列
ISPDB_MODIFIABLE 为 TRUE。这些值全部在 PDB 作用域内设置,在 PDB 关闭再打开
后以及在 CDB 实例关闭又启动后都会相应地保留。执行克隆和移走/插入操作后,也会保
留。其他初始化参数只能针对根设置。
SQL> select PDB_UID, NAME, VALUE$ from pdb_spfile$;

PDB_UID NAME VALUE$


---------- --------------------------------- --------------------
3100074415 optimizer_use_sql_plan_baselines FALSE
2862146267 optimizer_use_sql_plan_baselines FALSE
2862146267 ddl_lock_timeout 10

Oracle Database 12c:新功能 - 面向管理员 5-19


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

实例参数更改影响:示例

SQL> CONNECT sys@pdb2 AS SYSDBA

Oracle University and Error : You are not a Valid Partner use only
SQL> ALTER SYSTEM SET ddl_lock_timeout=20 scope=BOTH;

SQL> ALTER PLUGGABLE DATABASE CLOSE;


SQL> ALTER PLUGGABLE DATABASE OPEN;

SQL> CONNECT / AS SYSDBA


SQL> select VALUE, ISPDB_MODIFIABLE, CON_ID
from V$SYSTEM_PARAMETER
where name ='ddl_lock_timeout';

VALUE ISPDB CON_ID


-------------------- ----- ----------
0 TRUE 0
10 TRUE 3
20 TRUE 4

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

在本例中,pdb2 中为 DDL_LOCK_TIMEOUT 参数设置了不同的值。PDB 关闭再打开后,


更改的值会保留。V$SYSTEM_PARAMETER 视图中的新列 CON_ID 显示每个容器(即根、
pdb1 和 pdb2)中的 DDL_LOCK_TIMEOUT 值。

Oracle Database 12c:新功能 - 面向管理员 5-20


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

测验

对 CDB 执行 STARTUP 时,以下操作序列会自动执行。请

Oracle University and Error : You are not a Valid Partner use only
判断对错。
a. 实例已启动。
b. 控制文件已打开。
c. 根容器已打开(重做日志和根数据文件)。
d. 种子可插入数据库处于 READ ONLY 模式。
e. 其他 PDB 依然处于 MOUNTED 模式。

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

答案:错
并非所有 PDB 都会保持装载状态。如果在 CDB 重新启动之前,PDB 已打开并且状态已
保存,那么这些 PDB 将自动打开。

Oracle Database 12c:新功能 - 面向管理员 5-21


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

答案:a
打开。

b. 对
a. 错

种子 PDB 始终处于只读打开模式下。
测验

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle Database 12c:新功能 - 面向管理员 5-22


对 CDB 执行 STARTUP 时,所有 PDB 都可以在读写模式下

Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED






打开和关闭 PDB
启动和关闭 CDB

评估参数值更改的影响
建立到 CDB/PDB 的连接
在本课中,您应该已经学会:

保留或放弃 PDB 打开模式


小结

更改 PDB 的不同模式和设置
12.1.0.2

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle Database 12c:新功能 - 面向管理员 5-23


Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED





5-2:打开和关闭 PDB
5-1:启动和关闭 CDB

5-3:更改 PDB 打开模式


练习

5-4:更改实例参数(可选)

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle Database 12c:新功能 - 面向管理员 5-24


Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。


管理 CDB 和 PDB 中的表空间和用户

Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle Database 12c 新增功能和增强功能


Enterprise Manager Enterprise Manager Enterprise Manager
Cloud Control Database Express 其他工具
和其他工具

CDB 和 PDB 基础功能 CDB 和 PDB 创建 CDB 和 PDB 管理

Oracle University and Error : You are not a Valid Partner use only
热图和自动数据优化 联机数据文件移动
ADO 和存储
数据库中归档和期间有效性 期间历史记录

安全性 统一审计 权限分析 数据编写

HA RMAN

易管理性 DB 操作 实时 ADDM 比较时段 ADDM ADR


12.1.0.2 12.1.0.2

内存中列存储 整个数据库内存中高速缓存
性能 自动大表高速 12.1.0.2
缓存
SQL 优化 资源管理器 索引、表

数据泵、SQL*Loader 和外部表 分区
其他
12.1.0.2
12.1.0.2
JSON SQL

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle Database 12c:新功能 - 面向管理员 6-2


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

课程目标

学完本课后,应能管理:

Oracle University and Error : You are not a Valid Partner use only
• CDB 和 PDB 中的永久表空间
• CDB 和 PDB 中的临时表空间
• 公用用户和本地用户
• 公用角色和本地角色
• 公用权限和本地权限

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

注释
要全面了解 Oracle PDB 的新功能和使用方法,请参阅 Oracle 文档中的以下指南:
• 《Oracle Database Administrator’s Guide 12c Release 1 (12.1)》
• 《Oracle Database Security Guide 12c Release 1 (12.1)》
请参阅其他信息资源:
• Oracle 学习库中的“Oracle Database 12c New Features Demo Series”演示:
- CDB and PDBs Administration - Manage Common and Local Users
- CDB and PDBs Administration - Manage Common and Local Roles and
Privileges
• MOS 简讯:Oracle Multitenant Option - 12c: Frequently Asked Questions(文档
ID 1511619.1)

Oracle Database 12c:新功能 - 面向管理员 6-3


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

PDB 中的表空间

• PDB 中的表空间可以包含与且仅与一个 PDB 关联的多

Oracle University and Error : You are not a Valid Partner use only
个对象。
• 在 CREATE DATABASE 中:
– 利用 DBCA,USER_DATA TABLESPACE 替换自动创
建 USERS 表空间。
• 每个 CDB 实例只有一个活动 UNDO 表空间。

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

在非 CDB 中,所有表空间都属于一个数据库。在 CDB 中,一组表空间属于根容器,


并且每个 PDB 都有一组其自己的表空间。
在根容器的表空间中创建公共对象并存储其数据。公共对象在 PDB 中通过链接可见。
CREATE DATABASE 命令中存在新的子句。使用 DBCA 创建数据库时,可通过
USER_DATA TABLESPACE 指定 USERS 以外的默认表空间。该表空间也将用于 XDB
选项。
UNDO 表空间对于所有 PDB 是公用的,即每个 CDB 实例只有一个活动 UNDO 表空间。

Oracle Database 12c:新功能 - 面向管理员 6-4


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

在 CDB 中创建永久表空间

• 在 PDB 中创建永久表空间:

Oracle University and Error : You are not a Valid Partner use only
SQL> CONNECT system@PDB1
SQL> CREATE TABLESPACE tbs_PDB1_users DATAFILE
'/u1/app/oracle/oradata/cdb/pdb1/users01.dbf'
SIZE 100M;

• 在根容器中创建永久表空间:

SQL> CONNECT system@cdb1


SQL> CREATE TABLESPACE tbs_CDB_users DATAFILE
'/u1/app/oracle/oradata/cdb/cdb_users01.dbf'
SIZE 100M;

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

您对 CREATE TABLESPACE 命令应该十分熟悉。该命令的行为在 CDB 中已更改为:在


执行该命令的容器中创建表空间。
通过 PDB 将数据文件分隔成不同的目录可帮助确定哪些文件属于哪个 PDB,但这不是必
需的。
根中不应存在任何应用程序数据。所有应用程序数据都应位于 PDB 中。尽管可以在根和
PDB 中执行相同的表空间操作,但所有对象都应存储在 PDB 中。
注:在 Oracle Database 12.1.0.2 中 CREATE PLUGGABLE DATABASE 语句引入了新子
句,该 USER_TABLESPACES 子句指定哪些表空间在新 PDB 中可用。例如,将非 CDB
移到 PDB 中时,可以列出要包含的一个或多个应用程序表空间。

Oracle Database 12c:新功能 - 面向管理员 6-5


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

分配默认表空间
多租户容器数据库 cdb1

根 SYSTEM TBS_CDB_USERS

Oracle University and Error : You are not a Valid Partner use only
PDBHR SYSTEM PDBHR_USERS

PDBdev SYSTEM
• 在 CDB 中:
SQL> CONNECT system@cdb1
SQL> ALTER DATABASE
DEFAULT TABLESPACE tbs_CDB_users;
• 在 PDB 中:
SQL> CONNECT pdb1_admin@pdbhr
SQL> ALTER PLUGGABLE DATABASE
DEFAULT TABLESPACE pdbhr_users;

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

数据库的默认表空间是一个数据库属性。要更改 CDB 根容器的默认表空间,必须作为


具有适当权限的用户连接到根容器,并发出 ALTER DATABASE 命令。该操作不会更改
PDB 的默认永久表空间。
要更改 PDB 的默认表空间,必须作为具有适当权限的用户连接到 PDB,并发出 ALTER
PLUGGABLE DATABASE 命令。连接到 PDB 后,ALTER DATABASE 和 ALTER
PLUGGABLE DATABASE 命令执行对 PDB 的相同修改。允许使用 ALTER DATABASE 命
令,以实现向后兼容。

Oracle Database 12c:新功能 - 面向管理员 6-6


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

创建本地临时表空间

• 每个 CDB 或 PDB 仅允许一个默认临时表空间或

Oracle University and Error : You are not a Valid Partner use only
表空间组。
• 每个 PDB 具有其自己的临时表空间或表空间组。
多租户容器数据库 CDB1

根 TEMP_ROOT

PDBtest TEMP

PDBHR LOCAL_TEMP

PDBdev TEMP

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

根或 PDB 只能有一个默认临时表空间或表空间组。与非 CDB 一样,每个容器可以容纳


可向其分配用户的其他临时表空间。
每个 PDB 可以具有供该 PDB 中本地用户或公用用户使用的临时表空间。移走 PDB 后,
这些临时表空间将随该 PDB 一起传输。

Oracle Database 12c:新功能 - 面向管理员 6-7


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

分配默认临时表空间

• 在 CDB 中:

Oracle University and Error : You are not a Valid Partner use only
SQL> CONNECT system@cdb1
SQL> ALTER DATABASE
DEFAULT TEMPORARY TABLESPACE temp_root;
• 在 PDB 中:
SQL> CONNECT pdb1_admin@pdbhr
SQL> ALTER PLUGGABLE DATABASE
DEFAULT TEMPORARY TABLESPACE local_temp;


SQL> CONNECT pdb1_admin@pdbtest
SQL> ALTER DATABASE
DEFAULT TEMPORARY TABLESPACE temp;

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

根的默认临时表空间在根容器级别进行设置。可能存在多个临时表空间,但仅有一个可以
是默认临时表空间。
可以为每个 PDB 设置一个默认临时表空间(或表空间组)。PDB 可以具有多个临时表空
间,但每个 PDB 仅有一个默认临时表空间。
创建用户时,可以指定该用户要使用的临时表空间。如果未指定临时表空间,则使用
PDB 的默认表空间。
可以限制 PDB 可在共享临时表空间中使用的空间量:
ALTER PLUGGABLE DATABASE STORAGE (MAX_SHARED_TEMP_SIZE 500M);
在该示例中,如果连接到 PDB 的会话使用的值大于 500M,则共享临时表空间中没有额
外存储空间可用于连接到 PDB 的会话,除非这些会话使用的存储空间量小于 500M。
从 CDB 移走 PDB 时,也会移走其临时表空间。

Oracle Database 12c:新功能 - 面向管理员 6-8


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

用户、角色和权限

• 每个用户可以在单个数据库的上下文中行使授予的权限。

Oracle University and Error : You are not a Valid Partner use only
• 角色是权限的集合。

权限 1

权限 2 角色 1

权限 3

权限 4
非 CDB

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

在非 CDB 中,用户可以对对象权限允许的对象执行系统权限授权的操作。这些权限仅适
用于用户所连接的数据库。
角色是一组权限。可以在特定的数据库上下文中行使权限。可以直接或通过角色授予
权限。
在过去,已经隐含了短语“在单个数据库上下文中”。考虑每个实例仅有一个数据库时,
这似乎是微不足道的断言,但这对于理解 PDB 中的本地用户、本地权限和本地角色非常
关键。

Oracle Database 12c:新功能 - 面向管理员 6-9


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

本地用户、角色和权限

• 每个本地用户可以在单个 PDB 的上下文中行使授予


的权限。

Oracle University and Error : You are not a Valid Partner use only
• 本地角色是在用户登录到特定的 PDB 时分配的权限
集合。
• 本地权限是在单个 PDB 的上下文中授予的权限。

本地权限 1

本地权限 2 本地
角色 1
本地权限 3

本地权限 4
PDB

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

一个本地用户存在且仅存在于一个 PDB 中。即使多个 PDB 具有多个名称和身份证明相


同的本地用户,每个本地用户也是不同的。
在 PDB 中,本地用户的行为方式与在非 CDB 的上下文中定义的用户完全相同。本地用
户可以对对象权限允许的对象执行系统权限和 DML 授权的 DDL 操作和其他操作。这些
权限仅适用于其中定义了本地用户的 PDB。适用于非 CDB 的规则与适用于 PDB 的规则
之间的差异已突出显示。正如您所看到的,它们几乎是相同的。
在 PDB 中创建本地用户和角色的命令与用于非 CDB 的命令是相同的。

Oracle Database 12c:新功能 - 面向管理员 6-10


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

创建本地用户

• 具有适当权限的本地用户可以创建其他本地用户。

Oracle University and Error : You are not a Valid Partner use only
• 语法与在非 CDB 中的语法相同。
SQL> CONNECT system@pdb1
SQL> CREATE USER george IDENTIFIED BY x;

• 不能在根中创建本地用户。
• 本地用户仅连接至其所在的 PDB。
SQL> CONNECT george@pdb1

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

某个本地用户可以由具有适当权限的其他本地用户(通常为在 PDB 中具有 DBA 角色的本


地用户)创建。需要具有 CREATE USER 权限。
语法与在传统或非 CDB 中的语法相同。这是为了针对 PDB 实现应用程序透明性目的。
PDB 中的命令语法与非 CDB 中的命令语法相同。
注:DROP USER 和 ALTER USER 命令与非 CDB 中的命令相同。
不能在根中创建本地用户。

Oracle Database 12c:新功能 - 面向管理员 6-11


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

公用用户
多租户容器数据库 CDB1
视图 CDB_USERS
根 只能在根容器中创建公用用户。
USERNAME COMMON

Oracle University and Error : You are not a Valid Partner use only
SYS YES

SYSTEM YES

C##JIM YES
SQL> CREATE USER C##JIM IDENTIFIED BY x
DBSNMP YES
CONTAINER=ALL;
HR_MGR NO

SALES NO

PDB_HR PDB_SALES
视图 DBA_USERS 视图 DBA_USERS
USERNAME COMMON USERNAME COMMON

SYS YES SYS YES


SYSTEM YES SYSTEM YES
C##JIM YES C##JIM YES
DBSNMP YES DBSNMP YES
HR_MGR NO SALES NO

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

与存在且仅存在于一个 PDB 中的本地用户不同,公用用户是在多个 PDB 中具有相同用


户名和验证身份证明的用户。
公用用户的名称不能与所有 PDB 中任何本地用户的名称相同。可以且仅可以在根容器
中创建公用用户:公用用户是在根和每个现有和将来的 PDB 中具有相同身份的数据库
用户。
本地用户不能创建公用用户。
具有适当权限的公用用户可以使用 CONTAINER=ALL 子句创建公用用户。要创建公用用
户,公用用户必须针对所有 PDB 具有 SET CONTAINER 权限。公用用户可以连接到特定
的 PDB,并且可以利用 PDB 中的适当权限通过 CONTAINER = CURRENT 子句创建本地
用户。
注:如果 PDB 已关闭,则该 PDB 的公用用户和本地用户将不可见,因为元数据是从
PDB SYSTEM 表空间检索的。

Oracle Database 12c:新功能 - 面向管理员 6-12


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

创建用户

• 公用用户可以创建公用用户和本地用户。

Oracle University and Error : You are not a Valid Partner use only
• CONTAINER 子句确定所创建的用户的类型。
• 在根容器中创建公用用户:
SQL> CREATE USER C##_GEORGE IDENTIFIED BY x
CONTAINER=ALL;
• 在 PDB 中创建本地用户:
SQL> CREATE USER L_FRED IDENTIFIED BY y
CONTAINER=CURRENT;
• 每个容器中都存在一个公用用户:
SQL> CONNECT c##jim@cdb1 jim connection in root
SQL> CONNECT c##jim@pdb1 jim connection in pdb1
SQL> CONNECT c##jim@pdb2 jim connection in pdb2

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

只有具有 CREATE USER 和 SET CONTAINER 公用权限的公用用户才可以创建公用用户。


公用权限是在所有 PDB 中授予的权限。
在 PDB 中具有 CREATE USER 和 SET CONTAINER 权限的公用用户可以在该 PDB 中创建
本地用户。
所创建的用户类型由 CONTAINER 子句确定。
• 在根容器中发出幻灯片中显示的第一条命令后,该命令会创建一个公用用户。要创建
公用用户,必须连接到根容器。公用用户的名称必须以 C## 字符开头。
• 当公用用户连接到特定的 PDB 时,第二条命令创建一个本地用户。
如果省略容器子句,则默认值取决于上下文。如果公用用户连接到根容器,则默认值为
CONTAINER=ALL。如果公用用户连接到 PDB,则默认值为 CONTAINER=CURRENT。
创建公用用户时,在 CREATE 命令中指定的任何表空间、表空间组或概要文件必须存在于
每个 PDB 中。如果未指定上述任何一项,系统将使用 PDB 的默认 TABLESPACE、
TEMPORARY TABLESPACE 和 PROFILE。
注:DROP USER 和 ALTER USER 命令与非 CDB 中的命令相同。

Oracle Database 12c:新功能 - 面向管理员 6-13


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

公用方案/用户和本地方案/用户
多租户容器数据库 CDB1
根 PDB_SALES
视图 CDB_USERS 视图 DBA_USERS

Oracle University and Error : You are not a Valid Partner use only
USERNAME COMMON USERNAME COMMON

SYS YES SYS YES

SYSTEM YES SYSTEM YES

CDBA YES CDBA YES

C##U YES C##U YES


表空间
表空间 SALES NO EXAMPLE
EXAMPLE

视图 DBA_USERS PDB_HR
USERNAME COMMON
添加、变更或删除公用用户涉及在根
和每个 PDB 中添加该用户的说明。
SYS YES

SYSTEM YES

CDBA YES
本地用户是传统用户,仅在自己的
C##U YES
PDB 中为已知。
HR_MGR NO 表空间
EXAMPLE

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

添加、变更或删除公用用户涉及在根和每个 PDB 中添加、更改或删除该用户的说明。更


改容器后,公用用户能否执行操作,具体取决于在容器 (PDB) 中授予的权限类型。
创建公用用户时不是 OPEN READ WRITE 或 RESTRICTED 的 PDB 会尝试添加该公用用
户的说明来作为同步操作的一部分。如果在该过程中新公用用户名与给定的 PDB 中定义
的本地用户名相冲突,或者该 PDB 中不存在在 CREATE USER 语句中指定的表空间、表
空间组或概要文件,则系统会报告错误。
变更或删除公用用户涉及在根容器和每个为 OPEN READ WRITE 或 RESTRICTED 的
PDB 中修改或删除该用户的说明,从而有效地在每个容器中重放该语句。

Oracle Database 12c:新功能 - 面向管理员 6-14


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

公用权限和本地权限

• 在所有容器中授予的权限是公用权限。

Oracle University and Error : You are not a Valid Partner use only
• 在单个 PDB 的上下文中授予的权限是本地权限。
• 本地用户只能在本地行使 PDB 的上下文中的权限。
• 公用用户只能行使所连接的 PDB 的上下文中的权限。
• 连接到根容器的公用用户可以行使跨容器权限,如创建
公用用户。

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

某个权限会根据其被授予的方式成为公用权限或本地权限。在所有容器中授予的权限是公用
权限。在特定的 PDB 中授予的权限是本地权限。
公用用户和本地用户可以行使在其连接的 PDB 上下文中授予的公用权限和本地权限。可以
为公用用户授予公用权限和本地权限。这意味着授予公用用户的权限在每个 PDB 中可能是
不同的。
只有公用用户才可以连接到根容器。即使在根容器中,也可以将权限作为本地权限或公用权
限进行授予。跨容器操作(如创建公用用户)只能在连接到根容器时执行,并且只能由对这
些操作具有公用权限的公用用户执行。

Oracle Database 12c:新功能 - 面向管理员 6-15


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

授予和撤消权限
多租户容器数据库 CDB1


在所有容器中将公用权限授予被授权者。

Oracle University and Error : You are not a Valid Partner use only
SQL> GRANT create session TO c##dba
2 CONTAINER=ALL;
create
c##dba session 在一个容器中将本地权限授予
被授权者。
SQL> GRANT advisor TO u1;

PDB_HR PDB_SALES

advisor
u1

create create
c##dba session c##dba session

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

在所有容器中授予的权限是公用权限。在本幻灯片中的示例中,使用 CONTAINER=ALL
子句将 CREATE SESSION 权限以全局方式授予 c##dba 用户。在所有容器中复制该授予
操作。因此,会在每个容器中向同一用户 c##dba 授予相同的权限。
在特定的 PDB 中授予的权限是本地权限。在本幻灯片中的示例中,将 ADVISOR 权限在
本地授予 u1 用户。不在所有容器中复制该授予操作。即使该用户是公用用户,也不会复
制该授予操作。因此,仅在 PDB_SALES 容器中向用户 u1 授予该权限。
GRANT 和 REVOKE 的语法和行为基本未更改。已使用 CONTAINER 子句对语法进行了扩
展,因此具有适当权限的用户可以通过以全局或本地方式授予权限。
当用户使用 CONTAINER=ALL 子句授予权限时,该权限将成为公用权限。用户必须对所
有 PDB 都具有 SET CONTAINER 权限,因为该用户在每个容器中会向同一公用用户授予
该权限。
当用户使用 CONTAINER=CURRENT 子句授予权限时,该权限将成为本地权限。

Oracle Database 12c:新功能 - 面向管理员 6-16


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

创建公用角色和本地角色

多租户容器数据库 CDB1

Oracle University and Error : You are not a Valid Partner use only
在所有容器中创建公用角色。
根 SQL> CREATE ROLE c##r1 CONTAINER=ALL;

c##r1
在一个容器中创建本地角色。
SQL> CREATE ROLE l_role1 ;

PDB_HR PDB_SALES

c##r1 c##r1 r1

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

创建的跨所有容器的角色是公用角色。在本幻灯片中的示例中,使用 CONTAINER=ALL
子句以全局方式创建 c##r1 角色。在所有容器中复制 CREATE 操作。因此,会在每个容
器中创建同一角色 c##r1。
在特定的 PDB 中创建的角色是本地角色。在本幻灯片中的示例中,在本地创建了
l_role1 角色。不在所有容器中复制 CREATE 操作。因此,仅在 PDB_SALES 容器中创
建 l_role1 角色。
本地用户创建本地角色时,所用的语法和权限与非 CDB 中的语法和权限相同。
如果用户对所有 PDB 都具有 CREATE ROLE 和 SET CONTAINER 权限,则该用户可以
创建公用角色。如果公用用户对该 PDB 具有 CREATE ROLE 和 SET CONTAINER 权限,
则该公用用户可以创建本地角色。CONTAINER 子句确定角色是公用角色还是本地角色。
公用角色必须以 C## 字符开头。
可以将任何角色授予任何角色或用户。无论用户或角色定义为本地还是公用都没有关系。
请注意,角色是权限的容器。将某个角色授予用户时,该角色中的权限被限制到该 PDB
的上下文。
例如,使用公用权限 CREATE SESSION 创建公用角色 C##R1。将 C##R1 角色授予公用
用户 C##TEST 时,该用户可以连接到任何 PDB。但是,将 C##R1 角色授予在 PDB_HR
中定义的 lu_PDB1 时,该本地用户只能连接到 PDB_HR。
Oracle Database 12c:新功能 - 面向管理员 6-17
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

向角色授予公用或本地权限/角色
多租户容器数据库 CDB1 公用权限和本地权限
根 SQL> GRANT priv TO c##_role
CONTAINER=ALL;

Oracle University and Error : You are not a Valid Partner use only
公用权限 公用角色
SQL> GRANT priv TO C##_R2;
SYS
以全局方式授予的公用角色
SQL> GRANT c##r1 TO c##_role
本地权限
CONTAINER=ALL;
在本地授予的公用角色
以全局或本地方式授予
的公用角色 SQL> GRANT c##r1 TO c##_r2;

本地权限
PDB_HR
SQL> GRANT priv
公用角色 TO MGR_ROLE
SYS 本地权限
CONTAINER=CURRENT;
公用角色 本地角色
在本地
授予的角色 本地角色
公用用户 本地用户

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

要授予角色,授权者必须具有 GRANT ANY ROLE 权限或已被授予角色 WITH ADMIN


OPTION。
只要指定了 CONTAINER=ALL,分配给公用角色的权限就是公用权限,因此会应用在所有
容器中。如果未指定 CONTAINER=ALL,则分配给公用角色的权限为本地权限。本幻灯片
中显示的第一条命令显示以全局方式授予公用角色的权限,因此在每个 PDB 中可用。本
幻灯片中显示的第二条命令显示在本地授予公用角色的权限,因此仅在执行该命令的
PDB 中可用。只能在根容器中创建公用角色。
示例:将已通过全局方式授予 C##_VIEWER SELECT ANY TABLE 权限的公用角色授予
公用用户 C##_HR_CLERK。当连接到任何 PDB 时,C##_HR_CLERK 都可以使用
SELECT ANY TABLE 权限。
分配给本地角色的权限只能是本地权限。可以在特定的 PDB 中创建本地角色,不能在根
容器中创建本地角色。在 PDB_HR 容器中执行的第五条命令显示在本地授予 MGR_ROLE
角色的权限。
可以在根中以全局或本地方式将公用角色授予任何用户或角色。在任何 PDB 中只能在本
地将本地角色和公用角色授予任何用户或角色。
可以将本地用户分配给公用角色,只能在定义了该本地用户的 PDB 中行使该角色分配的
权限。

Oracle Database 12c:新功能 - 面向管理员 6-18


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

向用户授予公用角色和本地角色
多租户容器数据库 CDB1
以全局方式授予的公用角色

SQL> GRANT c##_role
系统权限 TO c##_user
SYS 公用角色 用户 CONTAINER=ALL;

Oracle University and Error : You are not a Valid Partner use only
在本地授予的公用角色
对象权限 SQL> GRANT c##_role
TO l_user
CONTAINER=CURRENT;
PDB_HR

SYS 用户
在本地授予的本地角色

SQL> GRANT HR_MGR_ROLE


TO hr_user
HR_MGR_ROLE HR_USER CONTAINER=CURRENT;

HR
公用用户 本地用户

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

可以将公用角色授予任意 PDB 中的任意用户或角色。可以将本地角色授予同一 PDB 中


存在的任意用户或角色。在第一个示例中,将公用角色 C##_ROLE 授予公用用户
C##_USER。这会在所有容器中授予该角色。
可以将本地角色授予公用用户,将公用角色授予本地用户。在单个 PDB 的上下文中行使
直接或通过角色授予的权限。示例:将公用角色 C##_VIEWER(包含 SELECT ANY
TABLE 权限)授予公用用户 C##_HR_CLERK。当连接到任何 PDB 时,C##_HR_CLERK
都可以使用 SELECT ANY TABLE 权限。PDB_HR PDB 中的本地角色 LR_HR 具有
INSERT INTO HR.EMPLOYEES 权限并授予 C##_HR_CLERK。仅当连接到 PDB_HR
时,C##_HR_CLERK 才可以使用 INSERT INTO HR.EMPLOYEES。
可以将本地用户分配给公用角色,如前所述,只能在定义了该本地用户的 PDB 中行使该
角色分配的权限。如果将本地角色 LR_HR 授予 C##_USER,则 C##_USER 只有在连接
到 PDB_HR 时才能行使 INSERT INTO HR.EMPLOYEES 权限。
GRANT 和 REVOKE 的语法和行为基本未更改。已使用 CONTAINER 子句对语法进行了扩
展,因此可以通过以全局或本地方式授予或撤消公用权限和本地权限。可以使用
CONTAINER=CURRENT 子句在本地向/从用户或角色授予/撤消公用角色,也可以使用
CONTAINER=ALL 子句在全局执行这些操作。

Oracle Database 12c:新功能 - 面向管理员 6-19


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

创建共享对象和非共享对象

• 公用用户和本地用户可以创建非共享表。

Oracle University and Error : You are not a Valid Partner use only
• 用户无法创建共享表。
• Oracle 提供的用户可以创建共享表。

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

公用用户或本地用户可以在 PDB 中创建非共享表和其他非共享数据库对象。Oracle 提供


的公用用户可以创建共享表。由被授予 CREATE USER 权限的用户创建的公用用户无法
创建共享表或对象。
有两种类型的共享对象,即对象链接和元数据链接。
• 对象链接指向根容器中的对象,用于跨容器共享数据。这些对象链接对象的一个示
例是 AWR 对象。
• 元数据链接与根容器中的对象共享元数据,但具有数据的专用副本。
这些元数据链接对象的一个示例是 DBA_xxx 视图。
可以在 DBA_OBJECTS 的 SHARING 列中找到共享的类型。

Oracle Database 12c:新功能 - 面向管理员 6-20


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

定义者权限的限制

本地用户无法对公用用户的方案行使本地系统权限。

Oracle University and Error : You are not a Valid Partner use only
公用用户方案
LU1

CREATE
C##U1
EXEC

C##U1.PROC1
定义者权限
DML
CREATE/EXECUTE
ANY PROCEDURE
DML C##U1.TAB

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

用户无法对公用用户的方案行使本地系统权限。
示例:假设本地用户不具有对公用用户方案中的表执行 DML 的权限,但具有 CREATE
ANY PROCEDURE 和 EXECUTE ANY PROCEDURE 权限。该本地用户不允许创建可以作
为公用用户根据公用用户的方案发出语句的定义者权限 PL/SQL 过程,然后继续执行该过
程以避开对本地用户的限制。

Oracle Database 12c:新功能 - 面向管理员 6-21


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

测验

如果可以在 PDB 中创建角色,关于公用角色和本地角色的

Oracle University and Error : You are not a Valid Partner use only
说法中,哪一项是正确的?
a. 可以在根容器中创建本地角色。
b. 仅当在根容器中连接时才可以创建公用角色。
c. 可以在 PDB 中创建公用角色。
d. 可以在种子中创建公用角色和本地角色。

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

答案:b

Oracle Database 12c:新功能 - 面向管理员 6-22


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

答案:b、c、d
a. 具有相同的名称
b. 被授予相同的权限
c. 被授予本地角色和公用角色
测验

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。


d. 打开和关闭 PDB(如果被授予适当的权限)

Oracle Database 12c:新功能 - 面向管理员 6-23


选择所有正确的项。在 PDB 中,公用用户和本地用户可以:

Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED




公用权限和本地权限
公用角色和本地角色
公用用户和本地用户
小结

在本课中,您应该已经学会管理:
CDB 和 PDB 中所有类型的表空间

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle Database 12c:新功能 - 面向管理员 6-24


Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED





6-1:管理表空间
练习

6-4:管理公用权限和本地权限
6-3:管理公用角色和本地角色
6-2:管理公用用户和本地用户

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle Database 12c:新功能 - 面向管理员 6-25


Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。


备份、恢复和闪回 CDB 和 PDB

Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle Database 12c 新增功能和增强功能


Enterprise Manager Enterprise Manager Enterprise Manager
和其他工具 Cloud Control Database Express 其他工具

CDB 和 PDB 基础功能 CDB 和 PDB 创建 CDB 和 PDB 管理

Oracle University and Error : You are not a Valid Partner use only
热图和自动数据优化 联机数据文件移动
ADO 和存储
数据库中归档和期间有效性 期间历史记录

安全性 统一审计 权限分析 数据编写

HA RMAN

易管理性 DB 操作 实时 ADDM 比较时段 ADDM ADR


12.1.0.2 12.1.0.2

内存中列存储 整个数据库内存中高速缓存
性能 自动大表高速 12.1.0.2
缓存 SQL 优化 资源管理器 索引、表

数据泵、SQL*Loader 和外部表 分区
其他
12.1.0.2
JSON SQL

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle Database 12c:新功能 - 面向管理员 7-2


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

课程目标

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

Oracle University and Error : You are not a Valid Partner use only
• 执行 CDB 和 PDB 备份
• 恢复 CDB 中丢失的重要文件
• 恢复 PDB 中丢失的 PDB 数据文件
• 执行闪回数据库

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

注释
要全面了解 Oracle PDB 的新功能和使用方法,请参阅 Oracle 文档中的以下指南:
• 《Oracle Database Administrator’s Guide 12c Release 1 (12.1)》
• 《Oracle Database Backup and Recovery User’s Guide 12c Release 1 (12.1)》
• 请参阅 Oracle 学习库中的其他信息资源:
“Oracle Database 12c New Features Demo Series”演示:
- Oracle Database 12c: Recovering a Pluggable Database
• Oracle By Example (OBE):
- Performing Point-In-Time Recovery for a Pluggable Database
• MOS 简讯:Oracle Multitenant Option - 12c: Frequently Asked Questions(文档
ID 1511619.1)

Oracle Database 12c:新功能 - 面向管理员 7-3


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

目标

• 独立备份 CDB 和应用程序:


– CDB 级别的 ARCHIVELOG 模式

Oracle University and Error : You are not a Valid Partner use only
– CDB 和 PDB 备份
– CDB 和 PDB 级别的热备份
• 在不同级别恢复 CDB 或 PDB:
– 实例故障:CDB 级别
– 完全介质恢复:
— CDB 或 PDB 临时文件
— 控制文件/重做日志文件/根数据文件:已装载 CDB
— PDB 数据文件
– 不完全介质恢复:已装载 CDB或已关闭 PDB
– 闪回数据库:已装载 CDB

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

如果需要进行恢复,则需要备份所有数据库、非 CDB 或 CDB。


由于重做日志文件处于共享状态,所以只能在 CDB 级别设置 ARCHIVELOG 模式,不能在
PDB 级别设置。
在 Oracle Database 11g 中,可以执行整个和部分非 CDB 备份,在其他级别,可以执行
热表空间或数据文件备份。
在 Oracle Database 12c 中,仍可以执行相同类型的备份。备份数据的新级别是 PDB
级别。
介质恢复的粒度非常灵活,可以针对整个 CDB、PDB、表空间、数据文件或甚至块执行。
发生故障时,可以执行不同类型的恢复:
• 如果发生实例故障,应怎么办?
• 如果缺少 PDB 临时文件,应怎么办?
• 如果控制文件缺少或损坏,应如何继续操作?
• 如果根数据文件缺少或损坏,应怎么办?
• 如果 PDB 数据文件缺少或损坏,应如何继续操作?
• 如果已删除本地方案,是否使用闪回数据库,或是否有在 PDB 级别可用的其他类型
的闪回?
Oracle Database 12c:新功能 - 面向管理员 7-4
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

RMAN 中的新语法和子句
$ export ORACLE_SID=cdb1 $ rman TARGET sys@sales_pdb
$ rman TARGET /

• DATABASE 关键字对所有 PDB 和根或 PDB 有效:

Oracle University and Error : You are not a Valid Partner use only
RMAN> BACKUP DATABASE;
RMAN> RECOVER DATABASE;

• PLUGGABLE DATABASE 子句对单个 PDB 有效:


RMAN> BACKUP PLUGGABLE DATABASE hr_pdb, sales_pdb;
RMAN> RECOVER PLUGGABLE DATABASE hr_pdb;

• 使用 CDB$ROOT 关键字备份、还原、恢复根:
RMAN> BACKUP PLUGGABLE DATABASE "CDB$ROOT";

• 使用 PDB 名称限定 PDB 的表空间:


RMAN> BACKUP TABLESPACE sales_pdb:tbs2;
RMAN> RESTORE TABLESPACE sysaux;

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

可以使用 Recovery Manager (RMAN) 或 Enterprise Manager 备份和恢复整个 CDB、部


分 CDB、单独的整个 PDB 或部分 PDB(如特定 PDB 的表空间/数据文件)。
CDB 或 PDB 是 RMAN 的可能目标。单个 PDB 是有效的 RMAN TARGET 数据库。以具
有 SYSDBA 或 SYSBACKUP 权限的用户身份连接到根或 PDB。
传统语法(如 BACKUP DATABASE、RESTORE DATABASE、RECOVER DATABASE)对
根及其所有 PDB 有效,因此,是对整个 CDB 执行操作还是对单个 PDB 执行操作,具体
取决于连接。
引入了新语法以允许备份、还原、恢复单个或多个 PDB。要备份、还原或恢复根,必须
使用 CDB$ROOT。
可以使用 PDB 名称限定 RMAN TABLESPACE 语法,以便用户可以指定 TABLESPACE 的
名称,因为在执行备份、还原和恢复命令的过程中该名称是 PDB 所已知的。如果未使用
PDB 限定符,则默认使用根。要列出表空间及其关联的 PDB,请使用 REPORT SCHEMA
语法。
可以将相同的新子句应用至 DUPLICATE、SWITCH、REPORT、CONVERT, CHANGE、
LIST、DELETE。
执行恢复、备份和 RMAN 备份操作时需要提供根。

Oracle Database 12c:新功能 - 面向管理员 7-5


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

CDB 备份:整个 CDB 备份

备份 PDB 的所有数据文件和根文件。

Oracle University and Error : You are not a Valid Partner use only
RMAN> CONNECT TARGET /
RMAN> BACKUP DATABASE PLUS ARCHIVELOG;

SYSTEM SYSTEM
SYSAUX SYSTEM SYSAUX
SYSAUX
hr_pdb
SYSTEM TBS2
UNDO SYSAUX SPFILE
sales_pdb
归档日志
文件备份集 根 种子
控制文件 + SPFILE
数据文件备份集 备份集

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

RMAN 可以备份整个 CDB 及其包含的 PDB 或单独的 PDB。此外,可以从特定的 PDB


备份单独的表空间或数据文件。
CDB 的整个数据库备份方式可以与非 CDB 相似 - 整个数据文件集的备份集或映像副
本,即根数据文件和所有 PDB 数据文件以及控制文件。系统会自动备份服务器参数文件
(SPFILE) 和控制文件。可以选择包括归档重做日志文件。
使用 RMAN 生成所有 CDB 文件的映像副本仅要求使用 SYSDBA 或 SYSBACKUP 权限装
载或打开 CDB、启动 RMAN、连接到根,然后输入本幻灯片中显示的 BACKUP 命令。此
外,在备份归档日志文件时还可以提供 DELETE INPUT 选项。
此外,您还可以使用以下命令,为 CDB 中所有数据文件和控制文件的以前映像副本创建
备份(备份集或映像副本):
RMAN> BACKUP COPY OF DATABASE;

Oracle Database 12c:新功能 - 面向管理员 7-6


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

CDB 备份:部分 CDB 备份

备份根和/或单独的 PDB。

Oracle University and Error : You are not a Valid Partner use only
RMAN> CONNECT TARGET /
RMAN> BACKUP PLUGGABLE DATABASE "CDB$ROOT", sales_pdb;
RMAN> BACKUP PLUGGABLE DATABASE hr_pdb PLUS ARCHIVELOG;

根 sales_pdb hr_pdb
SYSTEM
SYSTEM SYSTEM
SYSAUX
SYSAUX
TBS2 SYSAUX

归档日志 SPFILE
文件备份集 UNDO
控制文件 + SPFILE
数据文件备份集 备份集

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

部分 CDB 备份会备份根的整个数据文件集、定义的 PDB 的所有数据文件以及控制文件


和 SPFILE。
BACKUP PLUGGABLE DATABASE "CDB$ROOT",sales_pdb 命令备份根容器的所有
数据文件,即 SYSTEM、SYSAUX 和 UNDO 数据文件,以及 sales_pdb PDB 的所有数
据文件,即 SYSTEM、SYSAUX 和 TBS2 数据文件。

Oracle Database 12c:新功能 - 面向管理员 7-7


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

PDB 备份:整个 PDB 备份

使用 RMAN 备份整个 PDB:


RMAN> CONNECT TARGET /

Oracle University and Error : You are not a Valid Partner use only
RMAN> BACKUP PLUGGABLE DATABASE sales_pdb;

RMAN> BACKUP PLUGGABLE DATABASE sales_pdb, hr_pdb;

sales_pdb hr_pdb
SYSTEM
SYSTEM
SYSAUX
TBS2 SYSAUX
SPFILE
控制文件 + SPFILE
数据文件备份集 备份集

RMAN> CONNECT TARGET sys@sales_pdb


RMAN> BACKUP DATABASE;

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

整个 PDB 备份会备份单个 PDB 的整个数据文件集以及控制文件和 SPFILE。


在第一个示例中,BACKUP PLUGGABLE DATABASE 命令会备份 sales_pdb PDB 的所
有数据文件,即 SYSTEM、SYSAUX 和 TBS2 数据文件。
在第二个示例中,同一命令会备份两个指定的 PDB 的所有数据文件。
还可以连接到第三个示例中显示的 PDB 目标:
$ rman TARGET sys@sales_pdb
在这种情况下,使用 BACKUP DATABASE 命令,而不使用 BACKUP PLUGGABLE
DATABASE 命令。

Oracle Database 12c:新功能 - 面向管理员 7-8


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

PDB 备份:部分 PDB 备份

RMAN> CONNECT TARGET /


RMAN> REPORT SCHEMA;

Oracle University and Error : You are not a Valid Partner use only
RMAN> BACKUP TABLESPACE sales_pdb:tbs2;
RMAN> BACKUP TABLESPACE hr_pdb:system,
sales_pdb:sysaux;
RMAN> BACKUP TABLESPACE sysaux, hr_pdb:sysaux;

根 sales_pdb hr_pdb

SYSAUX SYSAUX SYSTEM


TBS2 SYSAUX

SPFILE

控制文件 + SPFILE
数据文件备份集 备份集

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

部分 PDB 备份会备份单独的 PDB 中指定表空间的数据文件以及控制文件和 SPFILE。


该示例使用 BACKUP TABLESPACE 命令备份 sales_pdb PDB 中 TBS2 表空间的所有
数据文件。要查找 PDB 内表空间的名称,请使用 REPORT SCHEMA 命令。
第二个备份使用同一命令备份 hr_pdb PDB 中 SYSTEM 表空间的所有数据文件以及
sales_pdb PDB 中 SYSAUX 表空间的所有数据文件。
第三个备份使用同一命令备份根中 SYSAUX 表空间的所有数据文件以及 hr_pdb PDB 中
SYSAUX 表空间的所有数据文件。

Oracle Database 12c:新功能 - 面向管理员 7-9


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

PDB 备份:用户管理的热 PDB 备份

执行用户管理的热 PDB 备份。


SQL> CONNECT system@sales_pdb

Oracle University and Error : You are not a Valid Partner use only
SQL> ALTER DATABASE BEGIN BACKUP;
SQL> !cp sales_pdb/datafiles /backup_dir_sales_pdb
SQL> ALTER DATABASE END BACKUP;

SYSTEM SYSTEM
SYSAUX SYSTEM
SYSAUX
SYSAUX
hr_pdb
TBS2
UNDO sales_pdb


数据文件备份集

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

将整个 PDB 设置为备份模式后,系统会将该 PDB 中的所有数据文件置于 ACTIVE 模式。


通过该模式可以使用 O/S 命令备份数据文件。

Oracle Database 12c:新功能 - 面向管理员 7-10


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED




7-1:CDB 的冷备份
练习

7-3:使用 RMAN 进行 PDB 备份


7-2:使用 RMAN 进行整个 CDB 备份

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle Database 12c:新功能 - 面向管理员 7-11


Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

恢复
• 实例恢复:仅 CDB 级别
• 在 CDB 打开时自动重新创建缺少的临时文件
• 文件丢失或损坏后进行完全介质恢复

Oracle University and Error : You are not a Valid Partner use only
– CDB:与非 CDB 相同
— 重做日志文件、控制文件
— 根数据文件
– PDB 数据文件
– 表空间:PDB 或 CDB 数据文件
• 文件丢失或损坏后进行不完全介质恢复
– CDB:过去某个时间点的整个 CDB
– PDB:过去某个时间点的整个 PDB
– 任何表空间(SYSTEM、UNDO、SYSAUX 除外)的 TSPITR
• 块恢复:无更改
• 闪回数据库:已装载 CDB

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

在 CDB 中,介质恢复的粒度非常灵活,可以针对整个 CDB、PDB、表空间、数据文件


甚至块执行。
针对整个 CDB 支持崩溃和实例恢复,因为根及其所有 PDB 均有一个实例。当实例崩溃
时,唯一的可能实例恢复是 CDB 实例恢复。
如果根 SYSTEM 或 UNDO 表空间的重做日志文件或控制文件、数据文件丢失,由于这些
文件属于根,因此唯一的可能介质恢复会在 CDB 级别进行。
支持新的介质恢复级别,即在 PDB 的数据文件丢失或损坏后进行单个 PDB 介质恢复。
存在新的不完全或 PITR 恢复级别,即类似表空间恢复的 PDB PITR。
适用于根和 PDB 的人为错误纠正仅需要 CDB 级别的闪回。例如,如果删除了公用方案
或本地方案,则必须使用适用于所有容器、根和 PDB 的闪回数据库。

Oracle Database 12c:新功能 - 面向管理员 7-12


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

实例故障
实例

SGA 无法进行 PDB 实例恢复。


发生实例故障后:
进程结构
• 连接到根

Oracle University and Error : You are not a Valid Partner use only
• 打开根
数据文件 控制 重做日志 • 打开 PDB:
文件 文件
SYSTEM UNDO ‒ 如果已配置保存的状态,则自动
SYSAUX 执行
TEMP

SQL> STARTUP;
根容器

数据文件
‒ 手动执行:
数据文件
SYSTEM TEMP2 SYSTEM SQL> STARTUP;
SYSAUX SYSAUX SQL> ALTER PLUGGABLE DATABASE
TBS2
ALL OPEN;
SALES_PDB HR_PDB

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

针对整个 CDB 支持崩溃/实例恢复,因为根及其所有 PDB 均有一个实例。


执行实例恢复所需的重做日志文件存储在 CDB 的唯一重做日志文件集中。对于根和所有
PDB,存在一个共享重做流,用于执行实例恢复。在打开根时执行实例恢复。
无法执行 PDB 实例恢复。
如果某实例要打开数据文件,数据文件头中包含的系统更改号 (system change number,
SCN) 必须与控制文件中存储的当前 SCN 匹配。
如果编号不匹配,实例会应用联机重做日志中的重做数据,并按顺序“重做”事务处理,
直到数据文件处于最新状态为止。将所有数据文件与控制文件同步后,会打开根,默认情
况下所有 PDB 仍处于装载状态。
应用重做日志后,会应用所有事务处理,使 CDB 返回到出现故障时的状态。这通常包括
正在进行但尚未提交的事务处理。打开根后,会在根数据文件上回退未提交的事务处理。
打开 PDB 后,会在 PDB 数据文件上回退未提交的事务处理。打开 CDB 时,默认情况下
所有 PDB 保持处于已装载状态。以前已保存上一个打开状态以自动打开 PDB,或必须执
行 ALTER PLUGGABLE DATABASE ALL OPEN 命令将其全部打开。

Oracle Database 12c:新功能 - 面向管理员 7-13


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

NOARCHIVELOG 模式

如果数据库处于 NOARCHIVELOG 模式并且数据文件丢失,

Oracle University and Error : You are not a Valid Partner use only
请执行以下任务:
• 如果实例尚未关闭,请关闭实例。
• 还原整个 CDB(包括所有数据文件和控制文件)。
• 启动实例并打开 CDB 和所有 PDB。
用户必须重新输入自上一次备份以来所做的所有更改。

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

如果在 NOARCHIVELOG 模式下丢失了 CDB 中的任何数据文件,则需要完全还原 CDB


(包括控制文件以及根和所有 PDB 的所有数据文件)。如果具有增量备份,则需要对
CDB 执行还原和恢复操作。
当数据库处于 NOARCHIVELOG 模式时,只能恢复到上次备份时的状态。因此,用户必须
重新输入自上一次备份以来所做的更改。
对于该类型的恢复,继续执行以下步骤:
• 如果实例尚未关闭,请关闭实例。
• 从上次备份还原整个 CDB(包括所有数据文件和控制文件)。
• 启动实例并打开根和 PDB。
在接下来的幻灯片中,假设 CDB 处于 ARCHIVELOG 模式。

Oracle Database 12c:新功能 - 面向管理员 7-14


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

介质故障:CDB 临时文件恢复

如果缺少一个临时文件,则需要临时空间的 SQL 语句可能


会失败:与非 CDB 类似。

Oracle University and Error : You are not a Valid Partner use only
SQL> CONNECT / AS SYSDBA
SQL> select * from DBA_OBJECTS
order by 1,2,3,4,5,6,7,8,9,10,11,12,13;
select * from DBA_OBJECTS order by
1,2,3,4,5,6,7,8,9,10,11,12,13
*
ERROR at line 1:
ORA-01565: error in identifying file
'/u01/app/oracle/oradata/CDB1/temp01.dbf'
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory

• 在 CDB 打开时自动重新创建临时文件
• 也可以手动重新创建

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

创建用户时,可以指定该用户要使用的临时表空间。如果未指定临时表空间,则使用
PDB 的默认表空间。如果未指定 PDB 的默认表空间,则使用 CDB 的临时表空间。
如果属于 CDB 临时表空间的临时文件丢失或损坏,并且发出语句的用户使用该文件,则
在执行需要该临时空间的 SQL 语句的过程中会发生错误。
本幻灯片中显示的 SQL 语句包含一长串作为排序依据的列,这导致需要根临时表空间中
的临时空间。执行需要排序的此语句时会遇到缺失文件错误。
CDB 实例可以在缺少临时文件的情况下启动。启动 CDB 实例时如果有任何临时文件不存
在,系统会自动创建这些临时文件,从而使 CDB 可以正常打开。发生这种情况时,启动
过程中会在预警日志中显示类似下面的消息:
• 重新创建临时文件 /u01/app/oracle/oradata/CDB1/temp01.dbf
也可以在连接到根时手动重新创建:
SQL> ALTER TABLESPACE temp ADD TEMPFILE
2 '/u01/app/oracle/oradata/CDB1/temp02.dbf' SIZE 20M;
SQL> ALTER TABLESPACE temp DROP TEMPFILE
3 '/u01/app/oracle/oradata/CDB1/temp01.dbf‘;

Oracle Database 12c:新功能 - 面向管理员 7-15


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

介质故障:PDB 临时文件恢复

如果缺少一个临时文件,则需要临时空间的 SQL 语句可能


会失败。

Oracle University and Error : You are not a Valid Partner use only
SQL> CONNECT local_user@HR_PDB
SQL> select * from my_table order by
1,2,3,4,5,6,7,8,9,10,11,12,13;
select * from my_table order by
1,2,3,4,5,6,7,8,9,10,11,12,13
*
ERROR at line 1:
ORA-01565: error in identifying file
'/u01/app/oracle/oradata/CDB1/HR_PDB/temp2_01.dbf'
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory

• 在 PDB 打开时自动重新创建临时文件
• 也可以手动重新创建

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

如果属于 PDB 临时表空间的临时文件丢失或损坏,并且发出语句的用户使用该文件,则


在执行需要该临时空间以进行排序的 SQL 语句的过程中会发生错误。
本幻灯片中显示的 SQL 语句包含一长串作为排序依据的列,这导致需要 PDB 临时表空
间中的临时空间。执行需要排序的此语句时会遇到缺失文件错误。
PDB 可以在缺少临时文件的情况下打开。如果在打开 PDB 时有任何临时文件不存在,系
统会自动重新创建这些临时文件。还会在 CDB 启动时自动重新创建这些临时文件。
也可以在连接到 PDB 时执行手动重新创建:
SQL> ALTER TABLESPACE temp ADD TEMPFILE
2 '/u01/app/oracle/oradata/CDB1/HR_PDB/temp2_02.dbf'
3 SIZE 20M;
SQL> ALTER TABLESPACE temp DROP TEMPFILE
2 '/u01/app/oracle/oradata/CDB1/HR_PDB/temp2_01.dbf';

Oracle Database 12c:新功能 - 面向管理员 7-16


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

介质故障:控制文件丢失

与非 CDB 类似:已装载 CDB


RMAN> CONNECT TARGET /

Oracle University and Error : You are not a Valid Partner use only
RMAN> STARTUP NOMOUNT;
RMAN> RESTORE CONTROLFILE FROM AUTOBACKUP;
RMAN> ALTER DATABASE MOUNT;
RMAN> RECOVER DATABASE;
RMAN> ALTER DATABASE OPEN RESETLOGS;
RMAN> ALTER PLUGGABLE DATABASE ALL OPEN;

根 SYSTEM hr_pdb
SYSTEM SYSAUX SYSTEM
SYSAUX TBS2 SYSAUX
sales_pdb
归档 SYSTEM SPFILE
UNDO
日志文件
SYSAUX
种子
数据文件 控制文件

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

如果控制文件缺少或损坏,由于控制文件属于 CDB,因此实例很快就会崩溃,并需要进
行整个 CDB 介质恢复。
• 首先启动 CDB 实例。
• 然后从备份中还原控制文件。
• 装载 CDB。
• 然后在重置日志中恢复和打开 CDB。
有两种可能:
RMAN> ALTER DATABASE OPEN RESETLOGS;
RMAN> ALTER PLUGGABLE DATABASE ALL OPEN;

SQL> ALTER DATABASE OPEN RESETLOGS;

Oracle Database 12c:新功能 - 面向管理员 7-17


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

介质故障:重做日志文件丢失
数据文件 重做日志
控制文件 文件
SYSTEM
UNDO
SYSAUX

Oracle University and Error : You are not a Valid Partner use only
TEMP

根容器

数据文件 数据文件
SYSTEM TEMP2 SYSTEM SYSAUX
SYSAUX
TBS2
SALES_PDB HR_PDB

与非 CDB 过程类似:
• 连接到根容器。
• 检查丢失的文件的 STATUS:ACTIVE、INACTIVE、
CURRENT。
• 按照与非 CDB 类似的方法继续操作。

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

由于仅存在一个适用于 CDB 实例的重做流(或一个适用于每个 RAC CDB 实例的重做


流),因此需要对缺少或损坏的重做日志文件执行本幻灯片中介绍的整个 CDB 介质恢
复操作。
根据是缺少整个重做日志组还是仅缺少重做日志成员,按照与非 CDB 相同的过程进行
操作。

Oracle Database 12c:新功能 - 面向管理员 7-18


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

介质故障:根 SYSTEM 或 UNDO 数据文件

与非 CDB 类似:已装载 CDB


RMAN> STARTUP MOUNT;

Oracle University and Error : You are not a Valid Partner use only
RMAN> RESTORE TABLESPACE undo1;
RMAN> RECOVER TABLESPACE undo1;
RMAN> ALTER DATABASE OPEN;
RMAN> ALTER PLUGGABLE DATABASE ALL OPEN;

根 sales_pdb hr_pdb
SYSTEM SYSTEM SYSTEM
SYSAUX
SYSAUX TBS2 SYSAUX
种子
UNDO1 SYSTEM
归档日志文件 SPFILE
SYSAUX

数据文件 控制文件

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

如果缺少或损坏的数据文件属于根容器 SYSTEM 或 UNDO 表空间,则 CDB 实例需要关闭


并进行介质恢复。在 RAC 环境中,应关闭所有 CDB 实例。
这意味着将关闭所有 PDB。
必须在还原和恢复缺少的根数据文件之前装载 CDB。
恢复根数据文件之后,打开 CDB 和所有 PDB。

Oracle Database 12c:新功能 - 面向管理员 7-19


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

介质故障:根 SYSAUX 数据文件

与非 CDB 类似:表空间 OFFLINE

Oracle University and Error : You are not a Valid Partner use only
RMAN> ALTER TABLESPACE sysaux OFFLINE IMMEDIATE;
RMAN> RESTORE TABLESPACE sysaux;
RMAN> RECOVER TABLESPACE sysaux;
RMAN> ALTER TABLESPACE sysaux ONLINE;

根 sales_pdb hr_pdb
SYSTEM SYSTEM
SYSAUX
SYSAUX SYSTEM
TBS2
SYSAUX
SYSTEM
SYSAUX
归档日志文件 UNDO1 SPFILE
种子
数据文件 控制文件

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

如果缺少或损坏的数据文件是 SYSTEM 或 UNDO 以外的根表空间的数据文件,则使表空


间脱机,然后执行表空间介质恢复。
这意味着不关闭任何 PDB。
在还原和恢复缺少的根数据文件时 CDB 保持打开状态。
恢复根数据文件之后,将表空间联机。

Oracle Database 12c:新功能 - 面向管理员 7-20


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

介质故障:PDB 数据文件
与非 CDB 类似:在 PDB 内执行恢复
• 连接到 PDB。

Oracle University and Error : You are not a Valid Partner use only
• 将表空间置于 OFFLINE 模式。
• 其他 PDB 不受影响。
SQL> CONNECT system@sales_pdb
SQL> ALTER TABLESPACE tbs2 OFFLINE IMMEDIATE;
RMAN> CONNECT TARGET /
RMAN> RESTORE TABLESPACE sales_pdb:tbs2;
RMAN> RECOVER TABLESPACE sales_pdb:tbs2;
SQL> ALTER TABLESPACE tbs2 ONLINE;

SYSTEM 根 hr_pdb
SYSTEM SYSTEM
SYSAUX
SYSAUX SYSAUX
UNDO sales_pdb TBS2 SPFILE
归档日志文件 控制文件
数据文件

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

如果缺少或损坏的数据文件属于 PDB,则不需要关闭该 PDB。系统会将发生错误的数据


文件置于 OFFLINE IMMEDIATE 状态。用户需要对该数据文件进行介质恢复,并且按照
与表空间集的介质恢复相同的方式进行。在该恢复期间,用户可以使用其他 PDB 表空间
并可以位于其他 PDB 之内。

Oracle Database 12c:新功能 - 面向管理员 7-21


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

介质故障:PITR

• PDB PITR
RMAN> ALTER PLUGGABLE DATABASE PDB1 CLOSE;

Oracle University and Error : You are not a Valid Partner use only
RMAN> RUN {
SET UNTIL SCN = 1851648 ;
RESTORE pluggable DATABASE pdb1;
RECOVER pluggable DATABASE pdb1
AUXILIARY DESTINATION='/u01/app/oracle/oradata';
ALTER PLUGGABLE DATABASE pdb1 OPEN RESETLOGS;
}

• PDB 表空间 PITR


RMAN> RECOVER TABLESPACE PDB1:TEST_TBS
UNTIL SCN 832972
AUXILIARY DESTINATION '/tmp/CDB1/reco';
RMAN> ALTER TABLESPACE PDB1:TEST_TBS ONLINE;

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

如果需要将 PDB 数据库恢复到过去某个早于闪回保留的时间点,则在这种情况下,无法


进行闪回,因此需要执行时间点恢复。
将 PDB 恢复到某个时间点并不会对 CDB 的所有部分产生影响:将打开整个 CDB 和所有
其他 PDB。将 PDB 恢复到指定的时间点后,当使用 RESETLOGS 选项打开 PDB 时,系
统会创建该 PDB 的新原型。PDB RESETLOGS 不为 CDB 执行 RESETLOGS。
• 系统会更新控制文件中的 PDB 记录。
• 每个重做日志记录会在重做标头中包含 PDB ID。这样恢复就知道哪个重做适用于哪
个 PDB。所有 PDB 均共享重做日志;系统会将从每个 PDB 进行的重做写入单个重
做日志集。
从概念上讲,PDB 重置日志与数据库重置日志类似。
恢复之后,PDB 的旧备份仍然有效,可在发生介质故障时使用。将 PDB 还原/恢复到过
去的某个时间点后,可以只读方式打开该 PDB。PDB 需要通过重置日志才能以读写方式
打开。
PDB 原型是 CDB 的子原型。例如,如果 CDB 为原型 5,PDB 为原型 3,则 PDB 的完
全指定原型编号为 (5, 3)。PDB 的初始原型为 0。要查看 PDB 的原型,请查询
V$PDB_INCARNATION 视图。

Oracle Database 12c:新功能 - 面向管理员 7-22


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

如果不使用快速恢复区,则必须使用 AUXILIARY DESTINATION 子句指定辅助集文件的


临时位置(在本幻灯片中提供示例)。
每个 PDB 具有其自己的表空间集。可以使用 TSPITR 将表空间恢复到较早的时间点。按照
本幻灯片中的第二个示例所述执行 TSPITR,指定完整的表空间名称(包括 PDB 名称)。
将 PDB 的表空间恢复到某个时间点并不会对 CDB 的所有部分产生影响:整个 CDB 仍处
于打开状态,因此所有 PDB 都处于打开状态。将表空间恢复到过去某个时间点后,重新使
表空间联机。

Oracle University and Error : You are not a Valid Partner use only

Oracle Database 12c:新功能 - 面向管理员 7-23


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

闪回 CDB

Oracle University and Error : You are not a Valid Partner use only
1. 配置 FRA。 2. 设置保留目标。 3. 启用闪回数据库。

SQL> SHUTDOWN IMMEDIATE


如果 CDB 处 ARCHIVELOG
SQL> STARTUP MOUNT
模式,则不需要重新启动该
SQL> ALTER DATABASE ARCHIVELOG; CDB。
SQL> ALTER SYSTEM SET
DB_FLASHBACK_RETENTION_TARGET=2880 SCOPE=BOTH;
SQL> ALTER DATABASE FLASHBACK ON;
SQL> ALTER DATABASE OPEN;

• 执行根闪回时会闪回整个 CDB。
• 任何闪回均不会闪回到早于执行 PDBPITR 时的时间点的时间点。

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

可以像为任何非 CDB 配置闪回数据库一样为 CDB 配置闪回数据库:


1. 配置快速恢复区。
2. 使用 DB_FLASHBACK_RETENTION_TARGET 初始化参数设置保留目标。
3. 使用以下命令启用闪回数据库:
SQL> ALTER DATABASE FLASHBACK ON;
必须先针对归档配置数据库,之后才能发出命令来启用闪回数据库。
可使用 ALTER DATABASE FLASHBACK OFF 命令来禁用闪回数据库。这样,会自动删
除所有现有的闪回数据库日志。
限制:
• 无法在不闪回整个 CDB 的情况下单独闪回根。
• 如果已对 CDB 的所有 PDB 执行时间点恢复,则可能不允许对该 CDB 执行闪回数
据库操作。对 PDB 执行时间点恢复时,无法直接将 CDB 回绕到早于执行该 PDB
DBPITR 的时间点的时间点。

Oracle Database 12c:新功能 - 面向管理员 7-24


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

闪回 CDB
已删除某个公用用户。
1. 闪回 CDB:已经以独占模式装载 CDB
SQL> STARTUP MOUNT

Oracle University and Error : You are not a Valid Partner use only
SQL> FLASHBACK DATABASE TO SCN 53943;
2. 要复查更改,请执行以下操作:以 READ ONLY 方式打开
CDB 和 PDB
SQL> ALTER DATABASE OPEN READ ONLY;
SQL> ALTER PLUGGABLE DATABASE ALL OPEN READ ONLY;
3. 要进行最终处理,请执行以下操作:根据需要再次闪回并使
用 RESETLOGS 打开 CDB。
RMAN> SHUTDOWN IMMEDIATE
RMAN> STARTUP MOUNT
RMAN> FLASHBACK DATABASE TO SCN 10;
RMAN> ALTER DATABASE OPEN RESETLOGS;
RMAN> ALTER PLUGGABLE DATABASE ALL OPEN;

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

在根中意外删除了公用方案。必须将 CDB 闪回到删除该公用用户(影响所有 PDB)之前


的时间。
可以使用 RMAN FLASHBACK DATABASE 命令来执行闪回数据库操作。可以使用
SEQUENCE 和 THREAD 指定作为下限的重做日志序列号和线程。
也可以使用 SQL FLASHBACK DATABASE 命令将数据库返回到某一过去时间或 SCN。如
果使用 TO SCN 子句,则必须提供一个数值。如果指定 TO TIMESTAMP,则必须提供时间
戳值。还可以指定还原点名称。
注释
• 必须以独占模式装载 CDB,之后才能发出 FLASHBACK DATABASE 命令;要复查更
改,必须以只读方式打开 CDB。完成后,必须使用 RESETLOGS 选项以读/写方式打
开 CDB。
• 以 READ ONLY 模式打开 CDB 时,PDB 仍处于已装载状态。也可以以 READ
ONLY模式打开 PDB,复查更改。

Oracle Database 12c:新功能 - 面向管理员 7-25


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

特殊情况

• 创建控制文件备份脚本:
SQL> ALTER DATABASE BACKUP CONTROLFILE TO TRACE;

Oracle University and Error : You are not a Valid Partner use only
CREATE CONTROLFILE …
datafile sales_pdb file1
datafile sales_pdb file1

datafile hr_pdb file1 …;

• PDB 关闭操作与 CDB 热备份不兼容:


SQL> ALTER DATABASE BEGIN BACKUP;
SQL> ALTER PLUGGABLE DATABASE CLOSE;
ALTER PLUGGABLE DATABASE pdb1_1 close
*
ERROR at line 1:
ORA-01149: cannot shutdown - file 10 has online backup set
ORA-01110: data file 10: '/D1/oradata/cdb1/pdb1_1/users01.dbf’

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

在使用 RMAN 自动备份配置进行控制文件备份之外,还可以对 CDB 的所有数据文件


(包括根和 PDB)使用生成脚本的 SQL 语句,包括 CREATE CONTROLFILE 语句。
该语句仍与用于非 CDB 的语句相同并要求连接到根:
SQL> ALTER DATABASE BACKUP CONTROLFILE TO TRACE;
在执行热 CDB 备份时,无法关闭任何 PDB。

Oracle Database 12c:新功能 - 面向管理员 7-26


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

测验

关于 PDB 和 CDB 备份的的说法中,哪一项是正确的?

Oracle University and Error : You are not a Valid Partner use only
a. 可以在 RMAN 中连接到特定的目标 PDB。
b. 仅当在 RMAN 中连接到目标 PDB 时,才可以备份整个
PDB。
c. 可以使用表空间备份备份特定的 PDB 表空间。
d. 可以使用特定于容器的备份备份根容器。

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

答案:a、c、d

Oracle Database 12c:新功能 - 面向管理员 7-27


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

答案:a
b. 错
a. 对
测验

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle Database 12c:新功能 - 面向管理员 7-28


可以恢复单个 PDB,即使 CDB 处于已装载状态也是如此。

Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED




执行闪回数据库
执行 CDB 和 PDB 备份
在本课中,您应该已经学会:
小结

恢复 CDB 中丢失的重要文件
恢复 PDB 中丢失的 PDB 数据文件

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle Database 12c:新功能 - 面向管理员 7-29


Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

练习

• 7-4:恢复丢失的 PDB 数据文件

Oracle University and Error : You are not a Valid Partner use only
可选练习:
• 7-5:SQL PDB 热备份
• 7-6:SQL 控制文件备份
• 7-7:恢复丢失的所有控制文件
• 7-8:恢复丢失的重做日志成员
• 7-9:恢复丢失的 SYSTEM 根数据文件
• 7-10:恢复丢失的非重要根数据文件
• 7-11:PDB 表空间的时间点恢复
• 7-12:从公用用户 DROP 进行 CDB 闪回

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle Database 12c:新功能 - 面向管理员 7-30


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

课程单元

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。


自动数据优化和存储增强功能

Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

联机数据文件和分区移动
热图、自动数据优化以及

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle Database 12c 新增功能和增强功能


Enterprise Manager Enterprise Manager Enterprise Manager
和其他工具 Cloud Control Database Express 其他工具

CDB 和 PDB 基础功能 CDB 和 PDB 创建 CDB 和 PDB 管理

热图和自动数据优化 联机数据文件移动

Oracle University and Error : You are not a Valid Partner use only
ADO 和存储
数据库中归档和期间有效性 期间历史记录

安全性 统一审计 权限分析 数据编写

HA RMAN

易管理性 DB 操作 实时 ADDM 比较时段 ADDM ADR


12.1.0.2 12.1.0.2

内存中列存储 整个数据库内存中高速缓存
性能 自动大表高速
12.1.0.2

SQL 优化 资源管理器 索引、表


缓存

数据泵、SQL*Loader 和外部表 分区
其他
12.1.0.2
JSON SQL

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

热图和自动数据优化:热图和自动数据优化 (ADO) 可用于实施信息生命周期管理 (ILM)


战略,以及分区、高级压缩和 Hybrid Columnar 压缩。
存储:Oracle Database 12c 的联机移动数据文件功能提供了在数据库打开并访问文件的
同时,将联机数据文件从一种存储系统移动到另一种存储系统的功能。Oracle Database
12c 联机移动分区功能提供了在 DML 语句访问分区的同时移动和压缩分区的功能。

Oracle Database 12c:新功能 - 面向管理员 8-3


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

课程目标

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

Oracle University and Error : You are not a Valid Partner use only
• 描述如何使用热图进行活动跟踪
• 使用视图来显示热图统计信息
• 描述自动数据优化
• 创建 ADO 策略
• 使用视图和过程来监视 ADO
• 联机移动数据文件
• 联机移动分区

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

注:要全面了解热图和自动数据优化的新增功能和使用方法,以及联机移动数据文件和分
区的功能,请参阅 Oracle 文档中的以下指南:
• 《Oracle Database VLDB and Partitioning Guide 12c Release 1 (12.1)》
• 《Oracle Database Administrator’s Guide 12c Release 1 (12.1)》
• 《Oracle Database PL/SQL Packages and Types Reference 12c Release 1 (12.1)》
的“DBMS_ILM”、“DBMS_ILM_ADMIN”和“DBMS_HEAT_MAP”章节
请参阅 Oracle 学习库中的其他信息资源:
• “Oracle Database 12c New Features Demo Series”演示:
- Online data file Move
• Oracle By Example (OBE):
- Setting Up Compression Tiering for Automatic Data Optimization
- Setting Up Storage Tiering Automatic Data Optimization

Oracle Database 12c:新功能 - 面向管理员 8-4


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

12c 之前版本

ILM 难题和解决方案
降低磁盘成本

压缩:
– FOR ALL OPERATIONS
收集数据
– FOR DIRECT_LOAD OPERATIONS

Oracle University and Error : You are not a Valid Partner use only
– SecureFile LOB
数据生命 – HCC
管理数据
周期 存储数据 对 SecureFile LOB 执行取消重复操作。
移动到低成本的表空间。
清除过时的行。

改善性能
共享数据 使用数据
分区(行移动)
保护数据 移动到高性能表空间
使用 SecureFile LOB
使用权限和视图。
使用 VPD 或 OLS。 使用加密签名。
使用审计和 FGA。 使用闪回数据归档/Total Recall。
使用数据库/Audit Vault。 加密数据。

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

什么是信息生命周期管理(也称为 ILM)?在业务数据生命周期内管理业务数据的战略
是,降低成本、改善数据库中的数据访问以及满足监管要求。ILM 是一种在信息的使用
生命周期中应用策略来实现高效信息管理的做法。ILM 包括某个“行”的所有阶段。它由
策略、过程、实践以及工具组成,在从信息的产生直到其最终处理的过程中,将信息的业
务价值与最适宜和经济高效的 IT 基础结构对应起来。
Oracle DB 的客户对于利用压缩和存储分层来满足其 ILM 需求非常有兴趣。虽然许多客
户可能采取了充分的压缩,仍有一部分客户希望进一步优化休眠的数据,将其移动到高密
度低成本的 Oracle Storage 或其他较低成本的存储中。
要为休眠数据(例如,一年多前的销售订单)利用存储分层或压缩分层,联机事务处理
(OLTP) 应用程序需要对较大的表实施分区。Oracle 支持分区,并提供了高级文档来介绍
其使用方法,不过需要由客户来实施和验证分区。

Oracle Database 12c:新功能 - 面向管理员 8-5


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

12c 之前版本

ILM 组件
数据分类 已调度的自动化操作

级别 1 个月以后:第 1 阶段
– 压缩

Oracle University and Error : You are not a Valid Partner use only
– 表 2 个月以后:第 2 阶段
– 表分区 – 压缩 + 移动到低成本存储层
11 个月以后:第 3 阶段
– 压缩 + 移动到联机归档存储层
6 年以后:最后一个阶段:清除

生命周期定义:

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

生命周期定义如何在 Oracle Database 11g ILM 中发挥作用?以主流企业实施的典型 ILM


流程为例:首先将数据批量加载到表中。在这个阶段,数据库管理员 (DBA) 仅压缩活动
分区,包括最活跃的分区:OLTP 表压缩针对同时进行修改的数据进行了优化。
一个月之后,活动减少,虽然仍可能在进行大量的 OLTP 事务处理。在此阶段,先前最
活跃分区中的数据会以 OLTP 表压缩格式保留,系统自动创建新的分区。
之后第二个月,对数据的修改极少,访问量也极少。在这个阶段,分区可以移动到较低成
本的存储层中,同时具有较高的压缩级别,在 Exadata 或 Oracle Storage 上使用 Hybrid
Columnar 压缩 (HCC)。
11 个月之后,系统将数据视为休眠数据,因为不再访问或更新这些数据;此时将其移动
到另一个更低成本的存储层,同时使用 HCC 的最高压缩级别,并将其标记为只读数据。

Oracle Database 12c:新功能 - 面向管理员 8-6


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

12c

ILM 难题

收集数据 图像 Office 文档

Oracle University and Error : You are not a Valid Partner use only
数据生命
管理数据 存储数据
周期
XML 文件 空间 扫描的文档

共享数据 使用数据

降低磁盘成本 改善性能
数据增加,性能降低
更大量的数据
更多监管要求
保护数据 更多监管要求

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

在 Oracle Database 12c 中面临的 ILM 难题仍旧与 Oracle Database 11g 中相同:
• 降低存储成本
• 改善性能
• 保护数据
此外,数据量持续增长,非结构化数据占用了大量存储空间。许多公司需要将数据保留
更长的时间,以满足合规性要求。因此,公司需要将更多的数据在更长时间内保持联机模
式,以使其可用,这增加了存储成本。管理数据增长仍然是数据库用户的首要难题。伴随
数据增长而来的通常是应用程序性能下降。
在 Oracle Database 11g 中,生命周期事件扫描以及后续的操作需要手动执行。而在
Oracle Database 12c 中,新的解决方案允许用户设置策略,针对分类数据定义应用程序
指定的规则。这些规则强制数据自动流动,最大限度地减少手动干预。

Oracle Database 12c:新功能 - 面向管理员 8-7


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

12c

解决方案
降低磁盘成本:
– 采用多个不同的存储层,更高效地管理存储。
– 使用压缩级别。

Oracle University and Error : You are not a Valid Partner use only
改善性能: 自动数据优化

• 使用不同压缩级别 • 最近插入,频繁更新
• 高级行压缩(2-4 倍)
自动数据优化: 活动 • 在 DRAM 和闪存中高速缓存

• 策略可以自动完成以下操作: • 很少访问,经常报告
• 高压缩级别(10 倍)
– 根据用户定义的规则 经常访问 • 高性能存储
进行压缩 • 很少访问
– 在空间不足时移动数据 • 高压缩级别(10 倍)
偶尔访问 • 低成本存储
数据库中归档: • 因供长期分析使用或遵守公司策略
而保留
• 行归档 休眠
• 归档压缩(15-50 倍)
• 期间有效性 • 归档存储(数据库或磁带)

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

磁盘成本和性能下降
随着数据增长,企业通常的应对措施是购买和安装更多的磁盘存储。而更加明智的方法是
实施分层存储战略,采用信息生命周期策略来更好地管理数据和更高效地控制成本。
在数据库中,对各种数据的业务需求不尽相同。数据在其生命周期中会经历不同阶段。首
先是活动数据阶段,这一阶段中将频繁查询和修改数据。经过一段时间之后,此数据的活
动性降低。这段时间会经常查询数据(例如,用于生成报告),但很少修改。在第三个阶
段,数据开始或多或少进入休眠状态。这段时间既不查询也不更新数据,但需要保留以满
足合规性和监管目的。因此,数据进入归档存储阶段,归档存储仍可位于数据库中,不一
定必须在数据库之外。
通常需要将段从一个表空间移动到另一个表空间。例如,可能会由于段所在的表空间上的
空间不足,将段移动到另一个表空间,这就实现存储分层。ILM 基础结构必须管理表段的
存储分层。
另一种经常出现的情况是,需要将段移动到新的压缩级别或者将一组行从一个压缩级别移
动到另一个压缩级别,而不将其移动到其他段。例如,对于可能不再会修改的行,在同一
段中可以采用 Row Store 高级压缩级别进行压缩。

Oracle Database 12c:新功能 - 面向管理员 8-8


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

什么是热图和自动数据优化 (ADO)?
Oracle Database 12c 包含使用热图进行活动跟踪的功能,能够针对数据生命周期更改来
跟踪和标记数据:
• 在段级别访问数据
• 在块和段级别修改数据
在内存中收集块级别和段级别统计信息并存储在 SYSAUX 表空间的表中。

Oracle University and Error : You are not a Valid Partner use only
使用 ADO 可以创建使用热图统计信息的策略,仅在必要时才压缩和移动数据。ADO 自
动评估和执行策略,这些策略可以执行压缩和存储分层操作。
Oracle Database 12c 中对数据库中归档有哪些改进?
• 数据库中归档解决了有关归档数据和活动数据的问题。它使用户能够在同一数据库
表中同时保留活动的可操作数据和休眠的归档数据。在实现归档操作效率的同时,
应用程序可以轻松地只访问处于可操作活动状态的数据,虽然归档数据也保留在同
一表中。
• 另一个功能是期间有效性,该功能为表的每一行创建有效时间维,这是另一种指示
操作相关性的方法。每个有效时间维包括两个在表定义中指定的日期时间列。如果
数据不再有效,或者尚未生效,可以轻松地在常规查询中隐藏此数据。

Oracle Database 12c:新功能 - 面向管理员 8-9


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

12c

组件
热图和自动数据优化

数据分类 自动检测 自动操作

Oracle University and Error : You are not a Valid Partner use only
内容 条件和时间 然后自动操作

作用域 满足条件时 接下来的操作


• 要跟踪什么操作?
• 表空间级别 – 创建 • 压缩
• 组级别 – 访问
• 移动到存储层
• 段级别 – 修改
• 执行压缩和移动
• 行级别 • 时间?
– 3 天后
– 1 年后
– 表空间填满时

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

请考虑上文所定义的流:首先将数据批量加载到表中。在这一阶段,可能不需要压缩来满
足存储和性能服务级别协议 (SLA)。然后,在一段时间内数据会频繁更新和修改,因此最
好将数据保留为未压缩的状态。这时的问题是持续多长时间之后访问和修改量才会减少,
然后您应该考虑压缩甚至将数据移动到其他存储层。接下来的阶段将持续多久才会不再有
数据的访问?此时您应考虑更高的压缩级别甚至将数据移动到归档存储层。
• ADO 提供了在数据库中不同作用域级别上声明策略的功能:表空间、对象和行级
别,由 ADO 基础结构自动实施。ADO 策略是一个针对请求的对象执行所注册操作
的过程,以使这些对象在无需任何用户干预的情况下透明地进入所需状态。
• 策略在数据库中不同存储层之间自动移动数据。策略还会在每个层的不同级别上压
缩数据,并对何时移动数据起到主要控制作用。

Oracle Database 12c:新功能 - 面向管理员 8-10


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

例如,在三天未更新分区行的情况下,将根据策略执行自动压缩。使用此功能,应用程序
无需对方案做出明确更改。
使用 ADO 策略可以指定行、分区、表空间的访问或修改应满足什么条件,才应对其执行
压缩或移动操作。
在表空间级别将 ADO 策略设置为默认行为时,表、分区和子分区(包括存储在该表空间
中的新间隔分区)将根据这些策略自动压缩和移动到较低成本的表空间中。
ADO 允许用户设置强制数据自动流动的策略,尽可能减少所需干预。

Oracle University and Error : You are not a Valid Partner use only

Oracle Database 12c:新功能 - 面向管理员 8-11


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

12c

什么是自动数据优化

• ADO 策略自动压缩符合条件的数据。

Oracle University and Error : You are not a Valid Partner use only
• ADO 策略根据需要自动移动段。
• ADO 依赖于热图,除非启用热图,否则无法运行。

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

ADO 策略在预定义的条件下自动执行操作:
• 仅压缩符合条件的数据。
• 在空间不足时将段移动到其他存储层。
ADO 只有在启用热图时才能执行压缩和数据移动。在启用之后,热图将自动收集统计信
息,以在统计信息评估完成后执行 ADO 操作。
自动数据优化需要高级压缩选项。

Oracle Database 12c:新功能 - 面向管理员 8-12


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

数据分类级别
活动跟踪和自动数据优化

数据分类 自动检测 自动操作

Oracle University and Error : You are not a Valid Partner use only
内容 条件和时间 然后执行

作用域 满足条件时 接下来的操作


• 表空间级别 • 要跟踪什么操作? • 压缩
• 组级别 – 创建 – 类型:
• 段级别: – 访问 ROW STORE COMPRESS
– 表/分区/子分区 – 修改 ADVANCED …
– 聚簇表 • 移动到其他存储
• 时间?
• 行级别 • 执行压缩和移动
– 3 天后
– 1 年后
– 表空间填满时

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

在 Oracle Database 11g 中,用于确定数据分类的最低级别是段、表或分区。


在 Oracle Database 12c 中,您可以使用新的行级别数据分类,根据操作相关性对表中的
每一行进行分类。
• 在行级别跟踪修改
当某个进程修改数据时,行级别统计信息会作为操作的一部分进行行内管理。
在段级别跟踪访问和修改:
• 上次访问时间:
- Fetch-by-rowid 跟踪:收集索引范围扫描的访问路径上的 ROWID/按 ROWID
提取。
- Full-table-scan 跟踪
• 上次修改时间
段级别活动跟踪信息由调度的 DBMS_SCHEDULER 作业每小时自动刷新以便保存。这意味
着段级别统计信息可保证用于磁盘上统计信息表的检查点。

Oracle Database 12c:新功能 - 面向管理员 8-13


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

热图和 ADO
1 2
实 内存
启用热图 在段上收集热图 V$HEAT_MAP_SEGMENT
HEAT_MAP=ON 统计信息 时

Oracle University and Error : You are not a Valid Partner use only
select * from EMP;

update DEPT…;

DBA_HEAT_MAP_SEG_HISTOGRAM 视图 HEAT_MAP_STAT$ 表

MMON
3 4 窗口 5
在表上创建 ADO 策略 评估 ADO 策略 执行 ADO 操作
压缩 EMP
EMP 如果在 3 天内没有访问 自 3 天前开始无访问
Î COMPRESS (pol1) ÎCOMPRESS (pol1) 6
如果表空间 TBSEMP 已满 TBSEMP 未满 查看 ADO 结果
Î将 EMP 移动到其他表
Î 不移动 (pol2)
空间 (pol2) COMPRESSION_STAT$ 表

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

本幻灯片显示了如何在热图和 ADO 之间设置不同步骤,以自动将段移动到其他表空


间和/或根据在 ADO 策略中定义的特定条件来压缩块或段。
1. DBA 的第一个操作是启用热图,跟踪块和段上的活动。热图激活系统生成的统
计信息收集,例如段访问以及行和段修改。
2. 实时统计信息在内存中收集(V$HEAT_MAP_SEGMENT 视图),由调度的
DBMS_SCHEDULER 作业定期更新到永久性表 HEAT_MAP_STAT$ 中。使用
DBA_HEAT_MAP_SEG_HISTOGRAM 视图可以查看永久性数据。
3. DBA 接下来的操作是在段或段组上创建 ADO 策略,或作为表空间上的默认
ADO 行为创建 ADO 策略。
4. DBA 的下一步是调度当默认调度不能满足业务需求时必须执行 ADO 策略评估
的时间。ADO 策略评估依赖于热图统计信息。MMON 定期评估行级别策略,
只要块符合条件就启动压缩作业。段级别策略仅在维护窗口内评估和执行。
5. 然后,DBA 可使用 DBA_ILMEVALUATIONDETAILS 和 DBA_ILMRESULTS 视
图查看 ADO 执行结果。
6. 最后,DBA 可以查看 COMPRESSION_STAT$ 表,验证段是否已移动并存储到
ADO 策略中定义的表空间上,以及块或段是否已压缩。

Oracle Database 12c:新功能 - 面向管理员 8-14


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

启用热图段级别统计信息
1. 启用活动跟踪或热图:
SQL> ALTER SYSTEM SET heat_map = ON;

Oracle University and Error : You are not a Valid Partner use only
• 使用以下视图查看段级别统计信息:
– DBA_HEAT_MAP_SEG_HISTOGRAM
– DBA_HEAT_MAP_SEGMENT
– V$HEAT_MAP_SEGMENT
SQL> SELECT object_name,subobject_name,track_time,
segment_write WRI,full_scan FTS,lookup_scan LKP
FROM DBA_HEAT_MAP_SEG_HISTOGRAM;

OBJECT_NAME SUBOBJECT_NAME TRACK_TIME WRI FTS LKP


-------------- -------------- ---------- --- --- ---
INTERVAL_SALES P1 02-JAN-12 YES YES NO
INTERVAL_SALES P2 28-MAR-12 NO YES NO
INTERVAL_SALES P3 28-MAR-12 NO NO YES
I_EMPNO 07-dec-12 YES NO YES

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

第一步是使用新的初始化参数 HEAT_MAP 启用活动跟踪。该设置在实例级别上收集系统生


成的统计信息。将 HEAT_MAP 参数设置为 ON 会在内存中跟踪所有段(SYSTEM 和
SYSAUX 表空间中的段除外)的 DML 和访问,然后将其刷新到 SYSAUX 表空间中的磁盘
上统计信息表。
启用热图之后,将收集不同活动、数据读取和数据写入的统计信息。ADO 使用这些统计信
息在评估之后触发操作。
要访问这些统计信息,请使用包含有关表、表分区、索引和 LOB 段的每日段热图活动信
息的 DBA_HEAT_MAP_SEG_HISTOGRAM 视图。在行插入表中、更新和选择之后,统计信
息会在 DBA_HEAT_MAP_SEG_HISTOGRAM 和 DBA_HEAT_MAP_SEGMENT 视图中可见。
视图仅依赖于永久性 SYS.HEAT_MAP_STAT$ 表和显示来自内存的实时段活动信息的
V$HEAT_MAP_SEGMENT 视图。
DBA_HEAT_MAP_SEG_HISTOGRAM 视图的列如下所示:
• TRACK_TIME 列:显示跟踪段访问时的系统时间
• SEGMENT_WRITE 列:指示段是否有写入访问
• FULL_SCAN:指示段是否有全扫描
• LOOKUP_SCAN:指示段是否有查找扫描
Oracle Database 12c:新功能 - 面向管理员 8-15
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

DBA_HEAT_MAP_SEGMENT 视图

查看最近的段活动跟踪时间:

Oracle University and Error : You are not a Valid Partner use only
SQL> SELECT object_name,
segment_write_time WRITE_T,segment_read_time READ_T,
full_scan FTS_T,lookup_scan LKP_T
FROM DBA_HEAT_MAP_SEGMENT;

OBJECT_NAME WRITE_T READ_T FTS_T LKP_T


----------- --------- --------- --------- ---------
EMP 07-dec-12
T1 07-dec-12 08-dec-12
EMPLOYEE 07-dec-12 08-dec-12 08-dec-12
I_EMPNO 07-dec-12 08-dec-12

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

DBA_HEAT_MAP_SEGMENT 视图显示最近的段活动跟踪时间。它显示每个段的最后活动
时间。
DBA_HEAT_MAP_SEGMENT 视图的列如下所示:
• SEGMENT_WRITE_TIME 列:指示段的最后写入访问的时间戳
• SEGMENT_READ_TIME 列:指示段的最后读取访问的时间戳
• FULL_SCAN 列:指示段的最后全扫描的时间戳
• LOOKUP_SCAN 列:指示段的最后索引扫描的时间戳

Oracle Database 12c:新功能 - 面向管理员 8-16


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

块级别统计信息

在行修改之后,使用两个新的 PL/SQL 表函数查看块级别


统计信息:

Oracle University and Error : You are not a Valid Partner use only
• DBMS_HEAT_MAP.BLOCK_HEAT_MAP
• DBMS_HEAT_MAP.EXTENT_HEAT_MAP
SQL> SELECT segment_name,tablespace_name,block_id,
writetime
FROM table(dbms_heat_map.block_heat_map

('SCOTT','EMPLOYEE',NULL,8,'ASC'));

SEGMENT_ TABLESPACE_NAME BLOCK_ID WRITETIME


-------- ---------------- ---------- ---------
EMPLOYEE LOW_COST_STORE 196 12-DEC-12
EMPLOYEE LOW_COST_STORE 197 12-DEC-12
EMPLOYEE LOW_COST_STORE 198 12-DEC-12

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

DBMS_HEAT_MAP.BLOCK_HEAT_MAP 函数返回某个表段的块级别热图。该统计信息显
示块的最后修改时间。输入参数如下所示:
• Owner:段的所有者
• Segment_name:未分区表的表名或分区表的分区
• Partition_name:默认值为 NULL。对于分区表,指定分区或子分区段名
• Sort_columnid:对输出进行排序所依据的列的 ID。有效值为 1 到 9
• Sort_order:默认值为 NULL。可能值:ASC、DESC
输出参数如下所示:
• Owner:段的所有者
• Segment_name:未分区表的段名
• Partition_name:分区或子分区的名称
• Tablespace_name:包含该段的表空间
• File_id:该块在段中的绝对文件号
• Relative_fno:该块在段中的相对文件号
• Block_id:该块的块号
• Writetime:块的上次修改时间

Oracle Database 12c:新功能 - 面向管理员 8-17


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

区级别统计信息

在行修改之后,视图在区级别聚集:
• 最短修改时间

Oracle University and Error : You are not a Valid Partner use only
• 最长修改时间

SQL> SELECT segment_name,block_id,blocks,


max_writetime
FROM table(dbms_heat_map.extent_heat_map
('SCOTT','EMPLOYEE'));

SEGMENT_ BLOCK_ID BLOCKS MAX_WRITETIME


-------- ---------- ---------- ------------------
EMPLOYEE 136 8 12-DEC-12 12:58:46
EMPLOYEE 144 8 12-DEC-12 12:58:46
EMPLOYEE 256 128 12-DEC-12 12:58:47
EMPLOYEE 384 128 12-DEC-12 12:58:47

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

DBMS_HEAT_MAP.EXTENT_HEAT_MAP 函数返回特定表段的区级别热图。区级别的聚集
信息包括返回的最短修改时间和最长修改时间。输入参数包括段的 owner、
segment_name 和 partition_name。
输出参数如下所示:
• Owner:段的所有者
• Segment_name:未分区表的段名
• Partition_name:分区或子分区的名称
• Tablespace_name:包含该段的表空间
• File_id:该块在段中的绝对文件号
• Relative_fno:该块在段中的相对文件号
• Block_id:该块的块号
• Blocks:区中块的数量
• Bytes:区中的字节数
• Min_writetime:块的上次修改时间最小值
• Max_writetime:块的上次修改时间最大值
• Avg_writetime:块的上次修改时间平均值
Oracle Database 12c:新功能 - 面向管理员 8-18
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

定义自动检测条件
2. 创建 ADO 策略:
– 定义在什么条件下触发操作。
– 定义策略何时生效。

Oracle University and Error : You are not a Valid Partner use only
数据分类 自动检测 自动操作

内容 条件和时间 然后执行

作用域 满足条件时 接下来的操作


• 表空间级别 • 要跟踪什么操作? • 压缩
• 组级别 – 创建 – 类型:
• 段级别: – 访问 ROW STORE COMPRESS
– 表/分区/子分区 – 修改 ADVANCED
– 聚簇表 • 时间? …
– 行级别 – 3 天后
• 移至其他存储
– 7 年后
– 表空间填满时 • 执行压缩和移动

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

第二步是创建 ADO 策略来定义自动检测:


• 定义在什么条件下将触发压缩或移动操作:
- 无访问
- 无数据修改(行上的更新/删除/插入或段上的 DDL ALTER 语句)
- 对象/行创建
- 表空间占满程度
• 定义策略何时生效:
- 在没有数据访问的 n 天、月或年之后
- 在没有进一步修改后
- 在创建对象后
- 当包含对象的表空间满足表空间占满程度阈值时

Oracle Database 12c:新功能 - 面向管理员 8-19


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

定义自动操作

2. 创建 ADO 策略以定义操作和执行级别。

Oracle University and Error : You are not a Valid Partner use only
表空间占满 定制
无修改 创建 无访问
程度 策略

压缩(行) 9
压缩(段) 9 9 9 9
压缩(组) 9 9 9
压缩(表空间) 9 9 9
存储分层(段) 9 9
存储分层
(表空间)
9

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

仍然在第二步中,定义操作以及自动执行的级别:
• 执行的操作(请参见幻灯片表中第一列的可能操作):
- 压缩以及什么类型的压缩
- 数据移动到其他存储层
- 当在同一个段上定义了两个策略时,两个策略均应执行
• 可能的执行级别:
- ROW:行级别 ADO 策略只能基于修改时间创建。
- SEGMENT:段级别 ADO 策略可应用到表或分区。
- GROUP:组级别 ADO 策略指示表的 SecureFile LOB 也将压缩。全局索引仍
保留。可以使用 POLICY 子句中的 GROUP 关键字为表指定 ADO 策略以便进
行压缩。如果该表在任何时间符合了 ADO 操作的条件,则还将在表的所有
SecureFile LOB 上执行同一 ADO 操作。例如,如果 ADO 操作是压缩,则压
缩 SecureFile LOB 等从属对象时的压缩级别,将对应于堆段压缩级别与
SecureFile LOB 压缩级别之间的默认映射。采用表分区上 ADO 策略的
GROUP 关键字的类似语义。
- TABLESPACE:在表空间上定义的 DEFAULT ADO 策略应用到将在表空间中
创建的所有段上。

Oracle Database 12c:新功能 - 面向管理员 8-20


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

压缩作用域和类型

压缩作用域

– 表空间

Oracle University and Error : You are not a Valid Partner use only
– 组
– 段
– 行

压缩类型
– ROW STORE COMPRESS [BASIC]
– ROW STORE COMPRESS ADVANCED
– COLUMN STORE COMPRESS FOR QUERY LOW / HIGH
– COLUMN STORE COMPRESS FOR ARCHIVE LOW / HIGH

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

首先可能执行的操作是压缩。关于压缩的一些注意事项:压缩可在插入、更新数据或将其
批量加载到表中时进行。
• ROW STORE COMPRESS BASIC 或 ADVANCED 用于未使用直接路径插入的插入行
以及更新的行,采用高级压缩选项 (ACO)。ROW STORE COMPRESS ADVANCED 是
用于“高级行压缩”功能的新语法,是 ACO 中的旧 OLTP 表压缩功能的新名称。
在使用 GROUP 关键字时,对于 SecureFile LOB 段,堆表上的 ROW STORE
COMPRESS ADVANCED 映射到 LOW。
• COLUMN STORE COMPRESS FOR QUERY LOW 或 HIGH 提供比 ROW STORE 压缩
更高的压缩级别。如果注重加载性能、经常对表进行查询并且不会有正常 DML,则
它非常好用。Column Store 是通常称为 Columnar 压缩(也可简称为 Columnar 或
HCC)的功能。对于 SecureFile LOB 段,堆表上的 COLUMN STORE COMPRESS
FOR QUERY LOW/QUERY HIGH 映射到 MEDIUM。
• COLUMN STORE COMPRESS FOR ARCHIVE LOW/ARCHIVE HIGH 压缩提供最高
的压缩级别,适用于很少访问的数据,通常是只读数据。它启用 HCC。对于
SecureFile LOB 段,堆表上的 COLUMN STORE COMPRESS FOR ARCHIVE
LOW/ARCHIVE HIGH 映射到 MEDIUM。

Oracle Database 12c:新功能 - 面向管理员 8-21


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

创建压缩策略表空间和组

• TABLESPACE 级别压缩策略:

Oracle University and Error : You are not a Valid Partner use only
SQL> ALTER TABLESPACE tbs1 DEFAULT ILM ADD POLICY
ROW STORE COMPRESS ADVANCED
SEGMENT AFTER 30 DAYS OF NO ACCESS;

• GROUP 级别压缩策略:
SQL> ALTER TABLE tab1 ILM ADD POLICY
ROW STORE COMPRESS ADVANCED
GROUP AFTER 90 DAYS OF NO MODIFICATION;

SQL> ALTER TABLE tab2 MODIFY PARTITION p1 ILM ADD POLICY


COLUMN STORE COMPRESS FOR ARCHIVE HIGH
GROUP AFTER 6 MONTHS OF CREATION;

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

本幻灯片中显示的所有示例均假定启用了热图。
第一个示例设置默认表空间 ADO 策略,这样存储在表空间中的段在 30 天内无访问后将
继承自动压缩,压缩级别为 ROW STORE COMPRESS ADVANCED。
在第二个和第三个示例中,由于指定了 GROUP 关键字,还将压缩从属的 SecureFile
LOB。全局索引仍保留。
第二个示例将在 90 天内无修改后自动压缩表和 SecureFile LOB,压缩级别为 ROW
STORE COMPRESS ADVANCED。
第三个示例将在创建六个月之后自动压缩分区 P1 和 SecureFile LOB,压缩级别为
COLUMN STORE COMPRESS FOR ARCHIVE HIGH。

Oracle Database 12c:新功能 - 面向管理员 8-22


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

创建压缩策略段和行

• SEGMENT 级别压缩策略:

Oracle University and Error : You are not a Valid Partner use only
SQL> ALTER TABLE tab4 ILM ADD POLICY
COLUMN STORE COMPRESS FOR QUERY HIGH
SEGMENT AFTER 90 DAYS OF NO MODIFICATION;
SQL> ALTER TABLE tab5 ILM ADD POLICY
COLUMN STORE COMPRESS FOR ARCHIVE HIGH
SEGMENT AFTER 6 MONTHS OF NO ACCESS;
SQL> ALTER TABLE tab6 ILM ADD POLICY
ROW STORE COMPRESS
SEGMENT AFTER 2 YEARS OF CREATION;

• ROW 级别压缩策略:
SQL> ALTER TABLE tab1 ILM ADD POLICY
ROW STORE COMPRESS ADVANCED
ROW AFTER 30 DAYS OF NO MODIFICATION;

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

在第一个示例中,只要在 90 天内没有修改段就立即自动压缩表,压缩级别为 COLUMN


STORE COMPRESS FOR QUERY HIGH。
在第二个示例中,只要在六个月内没有访问段就立即自动压缩表,压缩级别为 COLUMN
STORE COMPRESS FOR ARCHIVE HIGH。
在第三个示例中,将在创建表两年后自动压缩表,压缩级别为 ROW STORE COMPRESS
BASIC。
在第四个示例中,将对其中所有行在过去 30 天内没有修改的任何块自动进行压缩。在
ROW 级别唯一可以使用的压缩级别是 ROW STORE COMPRESS ADVANCED。
注:在表上设置高级行压缩,又定义了 ADO 策略来根据策略条件压缩段或块,这种做法
并不冲突。
将行插入表中时,将采用高级行压缩进行压缩。
如果 ADO 策略声明在段级别使用 HCC 选项之一进行压缩,则在分区/表符合条件时按预
期执行这种压缩。

Oracle Database 12c:新功能 - 面向管理员 8-23


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

MOVE PARTITION 来解压缩分区中的所有数据。

Oracle Database 12c:新功能 - 面向管理员 8-24


已经进行了压缩,除非您又执行了操作导致行解压缩,例如使用 ALTER TABLE ...
如果 ADO 策略声明在行(块)级别执行行压缩,则将不执行该压缩,因为每个块中的行

Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

创建存储分层策略

移动级别 存储分层
– 段级别 – 表空间

Oracle University and Error : You are not a Valid Partner use only
SQL> ALTER TABLE tab6 MODIFY PARTITION p1 ILM ADD POLICY
TIER TO low_cost_storage [ON my_cond];

源表空间占满程度阈值:
SQL> SELECT * FROM dba_ilmparameters;

NAME VALUE
------------------------- ----------
TBS PERCENT USED 85
TBS PERCENT FREE 25

SQL> EXEC
DBMS_ILM_ADMIN.CUSTOMIZE_ILM(DBMS_ILM_ADMIN.TBS_PERCENT_FREE,15)

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

可执行的第二个操作是将数据移动到其他存储层,这可以是较低成本的存储层,也可以是
带有其他压缩功能(如 HCC)的更高性能存储层。数据移动唯一可能的作用域是
SEGMENT。
在本幻灯片显示的示例中,当包含表 TAB6 的分区 P1 的源表空间达到其占满程度阈值时,
自动将该分区移动到 LOW_COST_STORAGE 表空间。
源表空间的分层占满程度阈值取决于两个参数:
• 对于具有分层策略的对象,如果其所在表空间的占满程度达到 TBS PERCENT USED
阈值(默认为 85),将移动这些对象。
• 对象将持续移动到目标表空间,直至源表空间的空闲程度达到 TBS PERCENT FREE
阈值(默认为 25)。
• 这两个值均可以通过 DBMS_ILM_ADMIN.CUSTOMIZE_ILM 过程控制,并且显示在
DBA_ILMPARAMETERS 视图中。
段级别策略仅在策略的生命周期内执行一次。首次执行之后,将禁用该策略。这仅适用于
分层策略。
请注意,可以向分层策略添加定制条件,以允许您使用表空间占满程度之外的条件来触发
数据移动。

Oracle Database 12c:新功能 - 面向管理员 8-25


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

存储分层:优先级
1
源表空间 目标表空间 源表空间
移动
T1 上周曾访问 T1

Oracle University and Error : You are not a Valid Partner use only
60%
55%
55% T2 今天曾访问 T2
T3 昨天 T3

2
源表空间 目标表空间 源表空间

T1
40% 55%
55% T2 T2 今天曾访问
移动
T3 T3 昨天 T3 T2

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

TBS PERCENT USED 和 TBS PERCENT FREE 的默认值分别为 85 和 25。这意味着,


只要源表空间使用百分比超过 85%,即会执行为其对象指定的所有分层策略,并将所有
对象移动到目标表空间(因为源表空间应该有 25% 的空闲空间)。
那么,如果按示例中所示将第一个参数设置为 55%,则在同一表空间中有多个表具有分
层策略的情况下,首先移动哪个表?将首先移动最近最少访问的表。
因此,在本幻灯片中,上周访问过的 T1 表将首先移动到在分层策略中定义的目标表空
间。源表空间中使用的空间仍高于 TBS PERCENT USED 值 55%,因此需要将另一个表移
动到目标表空间。系统选择将昨天访问过的 T3 移动到目标表空间。现在,T1 和 T3 在源
表空间中释放出了足够的空间,TBS PERCENT USED 值降到了 55% 之下,TBS
PERCENT FREE 值则高于 45%,因此表 T2 会保留在源表空间中。

Oracle Database 12c:新功能 - 面向管理员 8-26


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

存储分层:READ ONLY

READ ONLY 层存储:

Oracle University and Error : You are not a Valid Partner use only
SQL> ALTER TABLE tab7 ILM ADD POLICY
TIER TO tablespace_tbs READ ONLY
SEGMENT ON CUSTOM_ILM_RULES;

SQL> ALTER TABLE sales MODIFY PARTITION HY_2010 ILM ADD POLICY
TIER TO tablespace_tbs READ ONLY
SEGMENT AFTER 90 DAYS OF CREATION;

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

将某个段移动到其他表空间中时,另一个选项是在对象移动之后将目标表空间设置为
READ ONLY。在备份期间这非常有益,因为 Oracle Recovery Manager (RMAN) 能够跳
过此类表空间。使用这一子句表示您指定了 AFTER 子句或 ON 子句。

Oracle Database 12c:新功能 - 面向管理员 8-27


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

依赖于函数的策略

定制操作:
• 创建一个返回 TRUE/FALSE 的函数:

Oracle University and Error : You are not a Valid Partner use only
SQL> CREATE FUNCTION CUSTOM_ILM_RULES
(objn IN NUMBER)
RETURN BOOLEAN …
/

• 在策略声明中使用该函数:
SQL> ALTER TABLE EMP ILM ADD POLICY
ROW STORE COMPRESS ADVANCED
SEGMENT ON CUSTOM_ILM_RULES;

SQL> ALTER TABLE sales MODIFY PARTITION before_jan_2005


ILM ADD POLICY
TIER TO history ON CUSTOM_ILM_RULES;

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

如果用户需要更灵活地定制 ADO 策略,可以使用定制 ADO 策略来实现这一目标。定制


ADO 策略利用用户提供的函数来计算策略。
PL/SQL 函数封装在对象上做出 ADO 决策所需的任何业务逻辑,可返回布尔值或数字。
系统根据返回的布尔值来决定强制执行还是忽略 ADO。如果返回的值为 TRUE,则将执
行策略。如果返回的值为 FALSE,则不执行任何操作,直至下次评估是否执行策略。
定制和非定制策略的语法不能混用。
定制策略只能用于段级别策略。
以第二个示例为例:当 BEFORE_JAN_2005 表分区包含的行数少于定义的阈值(在创建
后经过了一段时间)时,您决定将段移动到归档存储层。其规则如函数中所述。

Oracle Database 12c:新功能 - 面向管理员 8-28


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

一个段的多个 SEGMENT 策略
加载新数据:周期开始
1 天以后:高级行压缩
1 个月以后:Query High 压缩
1 年以后:移动到低成本表空间

Oracle University and Error : You are not a Valid Partner use only
2 年以后:周期结束:清除

SQL> ALTER TABLE t1 ILM ADD POLICY ROW STORE COMPRESS ADVANCED
SEGMENT AFTER 1 DAY OF NO MODIFICATION;

SQL> ALTER TABLE t1 ILM ADD POLICY


COLUMN STORE COMPRESS FOR QUERY HIGH
SEGMENT AFTER 1 MONTH OF NO MODIFICATION;

SQL> ALTER TABLE t1 ILM ADD POLICY


TIER TO history ON t1_check_after_one_year;

SQL> ALTER TABLE t1 ILM ADD POLICY COLUMN STORE COMPRESS FOR
ARCHIVE HIGH SEGMENT AFTER 1 YEAR OF NO ACCESS;

SQL> DROP TABLE t1 PURGE;

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

只要多个策略彼此之间没有冲突条件,即可将其应用于同一个段。否则,同一对象存在其
他策略,将不允许将特定策略应用到该对象。
如果同一(对象、操作)的所有策略不是基于同一统计信息,则会出现冲突。例如,所有
压缩策略都必须基于同一统计信息(访问时间、修改时间或创建时间)进行应用。
将高级行压缩策略设置为 3 天内无修改后压缩,同时将 QUERY HIGH 压缩策略设置为
3 天内无修改后压缩,这种设置毫无意义。将高级行压缩策略设置为在创建后 1 天进行压
缩,然后将 QUERY HIGH 压缩策略设置为 30 天内无修改后压缩,并将 ARCHIVE HIGH
压缩策略设置为 180 天内无访问后压缩,这样的设置是可行的。
压缩级别越高,所指定的经过时间应该越久。
在本例中,生命周期自数据加载开始,在表清除操作后结束。
• 经过一天之后,ADO 将评估表级别是否有任何修改。如果没有,则接下来进行高级
行压缩,也就是最低级别的压缩。

Oracle Database 12c:新功能 - 面向管理员 8-29


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• 一个月以后,ADO 仍评估表级别是否有其他任何修改。如果没有,则接下来使用
QUERY HIGH 压缩,这是比高级行压缩级别更高的压缩,在压缩前经过的时间
更长。
• 一年后,ADO 评估是否有任何修改。将表空间占满程度阈值设置为 0 时,必定会将
段移动到 HISTORY 表空间。
某个段移动到特定压缩级别后,将禁用较低压缩级别上的所有段级别策略。这是通过 ILM
框架只能将段移动到更高压缩级别的原因。行级别策略不受此规则的影响。

Oracle University and Error : You are not a Valid Partner use only
此外,在策略评估时,只有当压缩策略将对象移动到的压缩级别要高于对象的字典压缩级
别时,才会执行该压缩策略。

Oracle Database 12c:新功能 - 面向管理员 8-30


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

一个段只能有一个 ROW 策略

¾ 压缩类型 (Row Store Compress Advanced) 和作用域 (row):


每个对象只有一个

Oracle University and Error : You are not a Valid Partner use only
SQL> ALTER TABLE t2 ILM ADD POLICY ROW STORE COMPRESS ADVANCED
ROW AFTER 2 DAYS OF NO MODIFICATION;

SQL> ALTER TABLE t2 ILM ADD POLICY


ROW STORE COMPRESS ADVANCED
ROW AFTER 6 MONTHS OF NO MODIFICATION;

¾ 段级别策略不覆盖行级别策略

SQL> ALTER TABLE t2 ILM ADD POLICY COLUMN STORE COMPRESS FOR
QUERY HIGH SEGMENT AFTER 1 YEAR OF NO MODIFICATION;

SQL> ALTER TABLE t2 ILM ADD POLICY


COLUMN STORE COMPRESS FOR ARCHIVE HIGH
SEGMENT AFTER 6 YEARS OF NO ACCESS;

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

• 一个对象只允许一个(操作、压缩类型、作用域)。此规则仅对压缩策略有效,其
中操作为 COMPRESSION,类型为压缩类型 (ROW STORE COMPRESS),作用域为
ROW 或 SEGMENT。第二个语句在创建策略时失败,因为已在同一作用域 (ROW) 上配
置 COMPRESSION 策略。如果同一压缩类型的作用域为 SEGMENT,则会发出相同的
错误。
• SEGMENT 级别策略不一定覆盖行级别策略。第三个语句会成功,因为它使用基于相
同统计信息 (NO MODIFICATION) 的不同压缩类型来配置 COMPRESSION 策略。第
四个示例失败,因为它使用不同压缩类型但基于不同统计信息 (NO ACCESS) 来配置
COMPRESSION 策略。可以设置段分层策略。

Oracle Database 12c:新功能 - 面向管理员 8-31


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

策略继承
子级别策略会覆盖具有相同操作的父级别策略。
表级别策略:
• 覆盖表空间级别策略

Oracle University and Error : You are not a Valid Partner use only
• 在分区级别继承
继承是对策略中不同操作的补充。
SQL> select POLICY_NAME "POLICY",OBJECT_NAME,
SUBOBJECT_NAME "SUBOBJECT",OBJECT_TYPE,INHERITED_FROM
FROM DBA_ILMOBJECTS;

POLICY OBJECT_NAME SUBOBJECT OBJECT_TYPE INHERITED_FROM


--------- ----------- ---------- --------------- ------------------
P281 T1 TABLE TABLESPACE
P341 SALES TABLE POLICY NOT INHERITED
P341 SALES SALES_1994 TABLE PARTITION TABLE
P341 SALES SALES_1996 TABLE PARTITION TABLE
P350 T3 TABLE POLICY NOT INHERITED
P360 SALES SALES_1995 TABLE PARTITION POLICY NOT INHERITED
P610 T4 TABLE POLICY NOT INHERITED
P281 T5 TABLE TABLESPACE

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

在段上实施 ADO 策略时,将应用以下继承规则:


• 例如,如果有一个表空间级别的压缩策略,并且直接在对象上指定了压缩策略,则
表空间级别策略将被覆盖。
• 如果操作相同,则最近的原级将覆盖其他级别。例如,如果在表空间级别指定
POLICY1,而在表级别指定 POLICY2,当两个策略指定的操作相同时,将在分区级
别继承 POLICY2(这是最近的原级)。
• 继承是对策略中不同操作的补充。
DBA_ILMOBJECTS 视图显示某个对象继承的所有策略。其中还有一个字段指示从哪个级
别继承了策略。
在本示例中,T1 和 T5 表从其所在的 tablespace 继承 P281 策略,SALES_1995 表
分区不从 SALES 表继承 P360 策略。策略直接应用到表分区,而 SALES_1994 和
SALES_1996 表分区从 SALES 表继承 P341 策略。

Oracle Database 12c:新功能 - 面向管理员 8-32


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

显示策略 DBA_ILMPOLICIES/
DBA_ILMDATAMOVEMENTPOLICIES
SQL> SELECT * FROM DBA_ILMPOLICIES;

Oracle University and Error : You are not a Valid Partner use only
POLICY_NAME POLICY_TYPE TABLESPACE ENABLED
----------- -------------- --------------------- -------
P281 DATA MOVEMENT YES
P381 DATA MOVEMENT YES
P400 DATA MOVEMENT ITB YES

SQL> SELECT policy_name,action_type,


compression_level,tier_tablespace TBS
FROM DBA_ILMDATAMOVEMENTPOLICIES;

POLICY_NAME ACTION_TYPE COMPRESSION_LEVEL TBS


-------------------- ----------- ----------------------- ---
P281 COMPRESSION QUERY HIGH
P381 COMPRESSION ADVANCED
P400 STORAGE ITB

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

在实施 ADO 策略之后,使用视图可以:


• 验证配置的策略
• 监视 ADO 以验证数据移动和压缩在需要时自动执行
DBA_ILMPOLICIES 提供了包含所有策略及其相应 ENABLED 状态的列表。
DBA_ILMDATAMOVEMENTPOLICIES 是一个值得关注的视图。
在本示例中,使用不同的压缩级别创建了两个压缩策略,并创建了第三个 TIER TO 策略,
以便在特定条件下将段移动到 ITB 表空间。条件存储在 CONDITION_TYPE 和
CONDITION_DAYS 列中。

Oracle Database 12c:新功能 - 面向管理员 8-33


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

显示策略
DBA_ILMDATAMOVEMENTPOLICIES

SQL> SELECT policy_name POL,action_type,scope,

Oracle University and Error : You are not a Valid Partner use only
condition_type,condition_days
FROM DBA_ILMDATAMOVEMENTPOLICIES;

POL ACTION_TYPE SCOPE CONDITION_TYPE CONDITION_DAYS


----- ----------- ------- ---------------------- --------------
P341 COMPRESSION GROUP LAST MODIFICATION TIME 90
P342 COMPRESSION ROW LAST MODIFICATION TIME 30
P361 COMPRESSION GROUP LAST ACCESS TIME 180
P381 COMPRESSION SEGMENT LAST MODIFICATION TIME 90
P401 COMPRESSION SEGMENT LAST ACCESS TIME 180
P402 STORAGE SEGMENT 0
P461 COMPRESSION SEGMENT USER DEFINED 0
P462 STORAGE SEGMENT USER DEFINED 0
P482 COMPRESSION SEGMENT LAST MODIFICATION TIME 30
P681 COMPRESSION GROUP CREATION TIME 180

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

在本示例中,创建了一个行级别的压缩策略 P342,以在 30 天内无修改时自动压缩表


的块:
SQL> alter table employee ILM ADD POLICY ROW STORE COMPRESS ADVANCED
ROW after 30 days of no modification;
CONDITION_TYPE 表示统计信息类型。

Oracle Database 12c:新功能 - 面向管理员 8-34


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

准备评估和执行
段级别策略 行级别策略
在维护窗口中 由 MMON 每隔 15 分钟定期执行

Oracle University and Error : You are not a Valid Partner use only
• 更改 ADO 策略评估的间隔。
SQL> EXEC DBMS_ILM_ADMIN.CUSTOMIZE_ILM(-
DBMS_ILM_ADMIN.EXECUTION_INTERVAL,1)

• 使用 DBMS_ILM 程序包可以通过两种方式执行 ADO:


– 在一组对象上立即执行 ADO 任务。
SQL> VAR v_taskid NUMBER
SQL> EXEC DBMS_ILM.EXECUTE_ILM (owner =>'SCOTT',object_name
=>'EMPLOYEE',task_id =>:v_taskid)

– 定制对象组,然后再执行 ADO 任务。


• 停止执行。
SQL> EXEC DBMS_ILM.STOP_ILM(245321)

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

有时候需要尽可能快地将数据从一层移到另一层,或者尽可能快地压缩数据,等到下一个
维护窗口是不现实的。
DBMS_ILM 程序包支持立即评估和立即/在后台调度 ADO 相关任务的执行。DBMS_ILM
程序包支持以下两种调度 ADO 相关任务执行的方式:
• 数据库用户在一组对象上调度立即执行 ADO。虽然您可以创建调度,以便比维护窗
口更频繁地触发 ADO 操作评估,不过您也可以立即启动评估。EXECUTE_ILM 过程
提供了这种功能,而不考虑任何以前调度的 ADO 执行。
• 数据库用户可以先查看一组对象上的 ILM 策略评估结果并定制可供执行 ADO 的对
象列表,然后再执行 ADO 相关任务。
还可以停止特定的执行。

Oracle Database 12c:新功能 - 面向管理员 8-35


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

定制评估和执行
• 使用 DBMS_ILM 程序包和过程来:
– 定制一组要评估的对象
– 调度 ADO 任务的执行

Oracle University and Error : You are not a Valid Partner use only
ADD_TO_ILM /
PREVIEW_ILM EXECUTE_ILM_TA DBA_ILMTASK
REMOVE_FROM_ILM
Î 任务未激活 Î 任务激活 Î 任务完成
Î 任务未激活
SQL> EXEC DBMS_ILM.PREVIEW_ILM (TASK_ID => :v_taskid,-
ILM_SCOPE => DBMS_ILM.SCOPE_SCHEMA)

SQL> EXEC DBMS_ILM.EXECUTE_ILM_TASK (TASK_ID => 26382,-


EXECUTION_MODE => DBMS_ILM.SCHEDULE_IMMEDIATE,–
EXECUTION_SCHEDULE => DBMS_ILM.ILM_EXECUTION_OFFLINE)

SQL> SELECT task_id,state FROM dba_ilmtasks;

TASK_ID STATE
---------- ---------
26482 ACTIVE

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

使用 DBMS_ILM.PREVIEW_ILM 过程可查看一组对象上的 ADO 策略评估结果。评估的


作用域可以为以下两者之一:
• 整个方案:属性 ILM_SCOPE => DBMS_ILM.SCOPE_SCHEMA。评估过程选择当前
方案中的所有 ADO 策略。(这是默认设置。)
• 整个数据库:属性 ILM_SCOPE => DBMS_ILM.SCOPE_DATABASE。评估过程选
择数据库中的所有 ADO 策略。
创建的任务处于 INACTIVE 状态。用户仍可以在此组中添加或删除对象,然后重新复查
ADO 策略评估的结果。用户重复此步骤,直至完成该组对象的 ADO 执行。
然后,使用 EXECUTE_ILM_TASK 过程在该组对象上立即调度 ADO 执行。开始执行时,
任务的状态转为 ACTIVE 状态。任务执行完成后,状态将成为 COMPLETE。
使用 EXECUTE_ILM_TASK 过程执行任务将启动一个根据过程中所设置的属性而执行的
作业:
• EXECUTION_MODE:ILM_EXECUTION_ONLINE 值联机执行任务;而
ILM_EXECUTION_OFFLINE 值脱机执行任务。
• EXECUTION_SCHEDULE:标识应何时执行 ILM 任务。Oracle Database 12.1 中唯
一可能的值是 DBMS_ILM.SCHEDULE_IMMEDIATE。

Oracle Database 12c:新功能 - 面向管理员 8-36


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

监视评估和执行
• DBA_ILMTASKS
• DBA_ILMEVALUATIONDETAILS
• DBA_ILMRESULTS

Oracle University and Error : You are not a Valid Partner use only
SQL> SELECT * FROM dba_ilmtasks;

TASK_ID TASK_OWNER STATE CREATION_TIME START_TIME COMPLETION_TIME


------- ---------- --------- ------------- ---------- ---------------
18566 SCOTT INACTIVE 12-DEC-12
18542 SCOTT ACTIVE 11-DEC-12 12-DEC-12

SQL> SELECT task_id,policy_name,object_name,


Selected_for_execution,job_name
FROM dba_ilmevaluationdetails;

TASK_ID POLICY_NAME OBJECT_NAME SELECTED_FOR_EXECUTION JOB_NAME


------- ------------- ----------- --------------------------- ----------
18762 P281 EMPLOYEE POLICY DISABLED
18542 P281 EMPLOYEE SELECTED FOR EXECUTION ILMJOB5002
18862 P301 EMPLOYEE PRECONDITION NOT SATISFIED

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

在以下视图中查看 ADO 任务和作业执行的结果:


• 每次用户调用 EXECUTE_ILM 或 EXECUTE_ILM_TASK 过程时,DBA_ILMTASKS
包含有关 ADO 任务的新信息。将返回任务 ID 以用于跟踪此特定调用。还将生成任
务 ID 以用于跟踪数据库定期执行的内部 ADO。此视图包含有关所有 ADO 执行的信
息。您可以看到,所有 SYS 评估任务每 15 分钟定期执行。
• DBA_ILMEVALUATIONDETAILS 包含在 ADO 评估之后任务执行的详细信息。
SELECTED_FOR_EXECUTION 列告知是否已选择策略以便在具有 ADO 策略的对象上
执行。“SELECTED FOR EXECUTION”值触发 ADO 作业,而“PRECONDITION
NOT SATISFIED”值则不触发。此列可以接受以下值之一:POLICY DISABLED、
POLICY OVERRULED、INHERITED POLICY OVERRULED、JOB ALREADY
EXISTS、NO OPERATION SINCE LAST ILM ACTION、TARGET COMPRESSION
NOT HIGHER THAN CURRENT、STATISTICS NOT AVAILABLE

Oracle Database 12c:新功能 - 面向管理员 8-37


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

第一个示例的第一行显示 ADO 任务处于 INACTIVE 状态,可能是因为用户尚未完成 ADO


预览。第二行显示任务处于 ACTIVE 状态,带有创建日期和开始日期,但尚未完成,没有
完成日期。
第二个示例的第一行显示 EMPLOYEE 表上存在 ADO 策略,但已禁用。第二行显示相同的
ADO 策略评估满足条件,已生成用于执行 ADO 操作的作业。第三行显示同一表上的另
一个 ADO 策略评估未满足触发 ADO 操作所需的条件。
• DBA_ILMRESULTS 提供有关 ADO 作业手动还是自动执行的信息。

Oracle University and Error : You are not a Valid Partner use only
SQL> SELECT task_id,cast(job_name as varchar2(20))
job_name,job_state,completion_time
FROM DBA_ILMRESULTS;

TASK_ID JOB_NAME JOB_STATE COMPLETION_TIME


------- --------- ---------------------- -----------------
666 ILMJOB59 COMPLETED SUCCESSFULLY 28/09/2011

段级别策略设计为仅执行一次操作。策略执行成功之后,将禁用该策略,不再评估。如果
需要重新评估,用户可以明确重新启用此策略。
段级别策略在成功执行后会禁用。如果调度了段级别策略但没有成功完成,则会在以后重
新评估。但是,如果在三次调度之后未成功完成,则策略将禁用。行级别策略永不禁用。
用于执行行级别策略的每个新作业会查找之前未压缩的冷行。但是,在完成(成功或失
败)后不会禁用策略,并且策略始终会在以后重新评估。

Oracle Database 12c:新功能 - 面向管理员 8-38


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

ADO DDL

• 启用对象上的所有策略:
SQL> ALTER TABLE tab1 ILM ENABLE_ALL;

Oracle University and Error : You are not a Valid Partner use only
SQL> ALTER TABLE tab2 MODIFY PARTITION p1 ILM ENABLE_ALL;

• 禁用对象上的所有策略:
SQL> ALTER TABLE tab1 ILM DISABLE_ALL;

• 删除对象上的所有策略:
SQL> ALTER TABLE tab1 ILM DELETE_ALL;

SQL> ALTER TABLE tab1 MODIFY PARTITION p1 ILM DELETE_ALL;

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

第一个和第二个示例启用了表或分区上的所有 ADO 策略。


第三个示例禁用了表上的所有 ADO 策略。禁用表分区上的所有 ADO 策略需要使用
MODIFY PARTITION 和 DISABLE_ALL 子句。
第四个和第五个示例删除了表或分区上的所有 ADO 策略。

Oracle Database 12c:新功能 - 面向管理员 8-39


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

打开和关闭 ADO

• 关闭 ADO,但不禁用或删除所有策略:
SQL> exec DBMS_ILM_ADMIN.DISABLE_ILM

Oracle University and Error : You are not a Valid Partner use only
• 为所有策略重新打开 ADO:
SQL> exec DBMS_ILM_ADMIN.ENABLE_ILM

• 查看 ADO 参数:
SQL> select * from DBA_ILMPARAMETERS where name='ENABLED';

NAME VALUE
------------------ -------
ENABLED 1

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

您可以使用 DBMS_ILM_ADMIN.DISABLE_ILM 过程关闭后台 ADO,而使用


DBMS_ILM_ADMIN.ENABLE_ILM 过程将其打开。
ENABLED 属性显示在 DBA_ILMPARAMETERS 视图中。值设置为 1 意味着 ADO 已启用,
设置为 2 意味着 ADO 已禁用。禁用 ADO 不会删除 ADO 策略或禁用它们。
您需要 SYSDBA 权限才能使用此程序包。

Oracle Database 12c:新功能 - 面向管理员 8-40


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

停止活动跟踪和清除热图统计信息

• 停止会话中的活动跟踪:

Oracle University and Error : You are not a Valid Partner use only
SQL> ALTER SESSION SET HEAT_MAP = OFF;

• 在实例级别停止活动跟踪:
SQL> ALTER SYSTEM SET HEAT_MAP = OFF;

• 清除热图统计信息:

SQL> exec DBMS_ILM_ADMIN.CLEAR_HEAT_MAP_ALL;

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

您可以在会话或实例作用域中将 HEAT_MAP 参数设置为 OFF 来停止活动跟踪。


针对在实例级别启用了热图的特定会话,禁用热图将使得热图不再跟踪该会话的后续
SQL 语句。
要清除 SYS.HEAT_MAP_STAT$ 表中的所有热图统计信息,请使用
DBMS_ILM_ADMIN.CLEAR_HEAT_MAP_ALL 过程。

Oracle Database 12c:新功能 - 面向管理员 8-41


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

活动跟踪的特定情况

• 从具有 ADO 策略的表创建 NEW_EMP 表:


SQL> CREATE TABLE new_emp AS SELECT * FROM emp;

Oracle University and Error : You are not a Valid Partner use only
Î NEW_EMP 表不继承 ADO EMP 策略。

• 行级别 ADO 策略作业在结束前失败。


• 段级别 ADO 作业在结束前失败。

• COMPRESS 属性:与 ADO 压缩策略兼容

SQL> CREATE TABLE tabcomp (c number) ROW STORE COMPRESS;


SQL> ALTER TABLE tabcomp ILM ADD POLICY
ROW STORE COMPRESS ADVANCED
ROW AFTER 6 DAYS OF NO MODIFICATION;

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

• 创建带有 ADO 策略的 EMP 表,然后创建 NEW_EMP 表,从源 EMP 表中选择结构和


行。请注意,NEW_EMP 表不继承源表的 ADO 策略。
• ADO 作业有可能在完成其任务前失败。
– 使用行级别压缩 ADO 策略时,每个块在一个事务处理中压缩。如果在终止作
业时事务处理正在进行,则将回退。如果有一些块已经压缩,则这些更改不受
影响。
– 段级别 ADO 作业的情况更为复杂。例如,涉及到 ALTER TABLE … MOVE 的
作业可能在移动段之后、在段上重新构建索引之前失败。这种情况下,将衍生
作业以重新构建在 ALTER TABLE … MOVE 操作开始之前可用的所有索引。

Oracle Database 12c:新功能 - 面向管理员 8-42


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• 同时在表上设置高级行压缩以及导致基于条件压缩数据的 ADO 策略并不冲突。将行


插入表中时,将采用高级行压缩进行压缩。如果 ADO 策略声明在段级别使用 HCC 选
项之一进行压缩,则在分区/表符合条件时按预期执行这种压缩。如果 ADO 策略声明
在行(块)级别行压缩,将不执行该压缩,这是由于表上设置了 ROW STORE
COMPRESS 属性,因此每个块中的行已经压缩,除非您又执行了操作导致行解压缩,
例如使用 ALTER TABLE ... MOVE PARTITION 来解压缩分区中的所有数据。

Oracle University and Error : You are not a Valid Partner use only

Oracle Database 12c:新功能 - 面向管理员 8-43


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

答案:d
d. 以上都不是
b. 不能在段级别压缩。
a. 不能在块级别压缩。
测验

c. 不能基于您自己的条件压缩。
以下哪一项是 ADO 压缩的局限性?

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle Database 12c:新功能 - 面向管理员 8-44


Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

答案:b
b. 错
a. 对
测验

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。


您可以在自己的会话中停止段级别的活动跟踪。

Oracle Database 12c:新功能 - 面向管理员 8-45


热图可以在实例或会话作用域上停止,但不能在比这更低的级别上停止。

Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

12c

联机移动数据文件
将数据文件联机移动到其他类型的存储系统上。

1 文件系统存储 2 ASM 存储

Oracle University and Error : You are not a Valid Partner use only
联机

移动

表空间 HR:3 个数据文件 表空间 HR:磁盘组 A

1 ASM 存储 2 文件系统存储

联机

移动

表空间 APP:磁盘组 B 表空间 APP:3 个数据文件

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle Database 12c 的联机移动数据文件功能提供了在数据库打开并访问文件的同时,


将联机数据文件从一种存储系统移动到另一种存储系统的功能。
这意味着,在移动数据文件时,可以执行查询以及 DML 和 DDL 操作:
• 可以创建表和索引。
• 可以联机重新构建索引。
• 可以选择表和分区数据。
• 如果在移动数据文件时压缩了对象,则压缩将保持不变。
这意味着可以使用多种维护操作来:
• 将数据文件从一种存储系统移动到另一种存储系统
• 将数据库移动到 ASM 中而无需关闭
ADO 可以受益于这种新的增强功能。它实现了方便透明的 ADO 操作,例如将数据移动
到一个存储层,而将表空间或数据文件移动到另一个存储层。关联的段随后可移动到另
一个存储层。

Oracle Database 12c:新功能 - 面向管理员 8-46


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

压缩
将数据文件联机移动到较低成本的存储:

高成本存储 低成本存储

Oracle University and Error : You are not a Valid Partner use only
联机

移动

表空间 HR:3 个数据文件 表空间 HR:3 个数据文件

未压缩的存储 高压缩级别存储

联机

移动

表空间 HR:3 个数据文件 表空间 HR:3 个数据文件

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

这意味着可以使用多种维护操作来:
• 将表空间或数据文件从高成本存储移动到较低成本的存储,并允许同时执行 ADO 数
据移动操作。
• 将未压缩数据或 BASIC/OLTP 压缩数据移动到另一个具有较高压缩级别的存储系统,
例如 HCC。这可以是用于数据仓库高性能查询的 COMPRESSION FOR QUERY,也可
以是用于归档休眠数据的 FOR ARCHIVE。ADO 压缩操作可以受益于这种新的增强
功能。

Oracle Database 12c:新功能 - 面向管理员 8-47


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

REUSE 和 KEEP

数据库无需关闭 (SHUTDOWN)/数据文件无需脱机 (OFFLINE)


11g
SQL> alter database rename file '/u01/t1.f' to '/u02/t1.f';

Oracle University and Error : You are not a Valid Partner use only

ORA-01511:error in renaming log/data files
ORA-01121:cannot rename database file 5 - file is in use or
recovery

12.1
SQL> ALTER DATABASE MOVE datafile '/disk1/myexample01.dbf'
TO '/disk2/myexample01.dbf' REUSE;

SQL> ALTER DATABASE MOVE datafile '/disk1/myexample01.dbf'


TO '+DiskGroup2' KEEP;

SQL> ALTER DATABASE MOVE datafile 5 TO '+DiskGroup3';

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

其优势在于将数据文件移动到其他位置、磁盘或存储系统时,您无需关闭数据库或者脱机
移动数据文件。
在本幻灯片中显示的其他操作执行过程中,段压缩或数据移动等 ADO 操作仍可以进行。
Oracle Database 11g 示例显示首先要脱机移动文件。
而 Oracle Database 12c 示例显示了如何将数据文件从 disk1 移动到 disk2。
只有在使用 Oracle 管理的文件时才能省略 TO 子句。在这种情况下,应设置
DB_CREATE_FILE_DEST 参数以指示新的位置。
如果指定了 REUSE 子句,则新文件即使已存在也仍将创建。如果之前的移动命令失败,
并且用户重新发出了同一移动命令,则可以使用 REUSE 子句。如果指定了 KEEP 子句,
则在移动操作后将保留旧文件。如果源文件是 Oracle 管理的文件,则不允许使用 KEEP
子句。
默认情况下,REUSE 和 KEEP 均不使用。

Oracle Database 12c:新功能 - 面向管理员 8-48


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

状态

V$SESSION_LONGOPS 中的进度:
• 移动的每个文件都对应一行

Oracle University and Error : You are not a Valid Partner use only
• 迄今为止移动的块数

NORMAL COPYING SUCCESS NORMAL

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

如果联机移动操作成功,则其状态通常是从 NORMAL 转换为 COPYING,再转换为


SUCCESS,最后转换为 NORMAL。
移动数据文件操作可能需要很长时间。
使用 V$SESSION_LONGOPS 视图可显示实时联机移动操作。每个实时操作都有对应的
一行。

Oracle Database 12c:新功能 - 面向管理员 8-49


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

兼容性

• 数据文件 OFFLINE

Oracle University and Error : You are not a Valid Partner use only
• 并发 FLASHBACK DATABASE 操作
不兼容:
• 并发介质恢复
• data file RESIZE(收缩)操作
• 块介质恢复
• 成为 READ ONLY 或 READ WRITE
兼容: 表空间
• data file RESIZE(扩展)
• 联机备份

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

联机移动数据文件操作与以下情况不兼容:
• 数据文件是 OFFLINE 数据文件
• 正在执行并发的闪回数据库操作
• 正在完成介质恢复
• 正在执行涉及同一文件的文件收缩操作或表空间脱机/删除操作
与以下情况兼容:
• 块介质恢复
• ALTER TABLESPACE READ ONLY 或 READ WRITE 操作
• 数据文件扩展操作
• 涉及同一文件的表空间/数据库联机备份模式

Oracle Database 12c:新功能 - 面向管理员 8-50


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

闪回数据库

将数据库闪回到 SCN 260:


数据文件 A 数据文件 B 数据文件 B

Oracle University and Error : You are not a Valid Partner use only
移动

SCN 260 SCN 400


Hour 2:30 Hour 4:00

闪回数据库之后:

数据文件 B

resetlogs
SCN 260
Hour 2:30

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

如果将数据库闪回到尚未移动文件的时间点,则闪回数据库操作不会将文件名更改为原始
名称,不过该操作会将旧内容写入文件中。

Oracle Database 12c:新功能 - 面向管理员 8-51


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

联机移动分区
• 在极少访问或更新分区和子分区的情况下,将分区和子分区联机
移动/分离/合并到低成本存储

Oracle University and Error : You are not a Valid Partner use only
高成本存储 低成本存储
联机

移动
SALES 2008、2009 分区 SALES 2008、2009 分区

• 联机压缩分区和子分区
未压缩的 高压缩级别

联机

SALES 2008、2009 分区 压缩 SALES 2008、2009 分区

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

在 11g 中,如果在使用基本压缩或 Hybrid Columnar 压缩进行压缩的表分区上使用传统


DML,则所有插入和更新的行将会存储而不压缩,或者使用最少压缩的格式。要“打包”
压缩的表分区,使得这些行也得到压缩,请使用 ALTER TABLE MOVE PARTITION 语
句。在该操作完成前,会阻止任何更新和加载。
12c 联机分区维护增强功能提供了联机移动表分区或子分区而不阻止并发 DML 操作的
功能。
这可用于:
• 将分区和子分区从一种存储移动到另一种存储
• 在很少访问基于时间的分区和子分区时,将其移动到低成本存储(例如,根据配置的
ADO 策略)
• 根据配置的 ADO 策略压缩基于时间的分区和子分区
系统使 ALTER TABLE MOVE (SUB)PARTITION 联机以允许 ADO 策略自动在后台移动
分区或者更改分区压缩属性。
ILM 可以受益于这种新的增强功能,以根据在表或者分区上配置的 ADO 策略移动和压缩表
分区。
当分区满足策略标准集时,可在这种情况下联机移动或压缩分区。
Oracle Database 12c:新功能 - 面向管理员 8-52
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

联机移动分区:优点
SALES 旧分区
高成本存储 • 允许 DML,而非 DDL
• 将分区联机移动、分离或合并到低
成本存储

Oracle University and Error : You are not a Valid Partner use only
• 保留全局和本地索引
低成本存储 SQL1> UPDATE ORDERS
SET SAL_ORD_P1=SAL*2
WHERE DATE_P1='2001';

SQL2> ALTER TABLE ORDERS


MOVE PARTITION ORD_P1
TABLESPACE lowtbs
OLTP 压缩 UPDATE INDEXES ONLINE;

• 联机压缩分区
SQL> ALTER TABLE ORDERS
高压缩级别 MOVE PARTITION ORD_P1
ROW STORE COMPRESS
UPDATE INDEXES ONLINE;

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

ALTER TABLE MOVE PARTITION 通过使用 ONLINE 选项,允许 DML 操作在要移动的


分区上无中断运行。该操作不会在要移动的(子)分区上获取 X DML 锁定,但会阻止受
影响分区上的并发 DDL,直至操作彻底完成。ALTER TABLE MOVE PARTITION
ONLINE 在 DDL 语句前启动的所有 DML 完成之后完成。
此外,使用 UPDATE INDEXES 子句可在移动分区期间保留全局和本地索引。不再需要手
动重新构建索引。
指定了 UPDATE INDEXES 时,不支持在存在域索引的情况下进行联机操作。不支持 IOT
上的联机操作。

Oracle Database 12c:新功能 - 面向管理员 8-53


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

联机移动分区:压缩
MOVE 也用于压缩。
• ROW STORE COMPRESS [BASIC]

Oracle University and Error : You are not a Valid Partner use only
SQL> ALTER TABLE ORDERS MOVE PARTITION ORD_P1
ROW STORE COMPRESS UPDATE INDEXES ONLINE;

• ROW STORE COMPRESS ADVANCED


SQL> ALTER TABLE ORDERS MOVE PARTITION ORD_P1
ROW STORE COMPRESS ADVANCED UPDATE INDEXES ONLINE;
• COLUMN STORE COMPRESS
SQL> ALTER TABLE ORDERS MOVE PARTITION ORD_P1
COLUMN STORE COMPRESS FOR QUERY HIGH
UPDATE INDEXES ONLINE;

SQL> ALTER TABLE ORDERS MOVE PARTITION ORD_P1


COLUMN STORE COMPRESS FOR ARCHIVE HIGH
UPDATE INDEXES ONLINE;

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

MOVE 通常是压缩现有段的工具;因此支持 Row Store 或 Column Store 压缩类型。这


些是高级行压缩中的新压缩类型。
Row Store 或 Column Store 是表和分区的属性,类似于 organization 子句。
ROW STORE 和 COMPRESS 是用于压缩表或分区的新属性(ROW STORE 与 COLUMN
STORE 或 HCC 相对)。
ADVANCED 和 BASIC 是压缩类型,统一用于表、LOB 和分区以表明它是 ACO 的一
部分。
第一个示例显示了如何使用 BASIC 级别联机对未压缩的分区 ORD_P1 进行压缩。在分
区压缩过程中保留全局和本地索引。
第二个示例显示了如何使用 OLTP 级别联机压缩分区 ORD_P1。在分区压缩过程中保留
全局和本地索引。
第三个和第四个示例显示了如何使用 HCC 级别联机压缩分区 ORD_P1。在分区压缩过程
中保留全局和本地索引。

Oracle Database 12c:新功能 - 面向管理员 8-54


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

测验

以下关于联机移动数据文件的说法中,哪一项是正确的?

Oracle University and Error : You are not a Valid Partner use only
a. 联机移动数据文件会阻止对存储在数据文件中的段执行
DML 操作。
b. 将数据库闪回到联机重命名数据文件之前的时间点时,
将保留新名称。
c. 数据文件处于 OFFLINE 模式时,可以联机移动数据
文件。
d. 数据文件处于 BEGIN BACKUP 模式时,无法联机移
动数据文件。

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

答案:b

Oracle Database 12c:新功能 - 面向管理员 8-55


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

小结

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

Oracle University and Error : You are not a Valid Partner use only
• 描述新的 Oracle Database 12c 自动数据优化功能
• 描述如何使用热图进行活动跟踪
• 使用视图来显示热图统计信息
• 描述自动数据优化
• 创建 ADO 策略
• 使用视图和过程来监视自动数据优化
• 联机移动数据文件
• 联机移动分区

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle Database 12c:新功能 - 面向管理员 8-56


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED






8-1:启用热图

8-5:联机移动数据文件
练习

8-2:创建 ADO TIER TO 策略


8-3:创建 ADO COMPRESS 策略
8-4:清除 ADO 策略和热图统计信息

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle Database 12c:新功能 - 面向管理员 8-57


Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。


数据库中归档和期间 (Temporal) 功能

Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle Database 12c 新增功能和增强功能


Enterprise Manager Enterprise Manager Enterprise Manager
和其他工具 Cloud Control Database Express 其他工具

CDB 和 PDB 基础功能 CDB 和 PDB 创建 CDB 和 PDB 管理

Oracle University and Error : You are not a Valid Partner use only
热图和自动数据优化 联机数据文件移动
ADO 和存储
数据库中归档和期间有效性 期间历史记录

安全性 统一审计 权限分析 数据编写

HA RMAN

易管理性 DB 操作 实时 ADDM 比较时段 ADDM ADR


12.1.0.2 12.1.0.2

内存中列存储 整个数据库内存中高速缓存
性能 自动大表高速 12.1.0.2
SQL 优化 资源管理器 索引、表
缓存

数据泵、SQL*Loader 和外部表 分区
其他
12.1.0.2
JSON SQL

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

数据库中归档:数据库中归档解决了与不活动数据相关的问题。它使用户能够在同一数据
库表中同时保留活动的可操作数据和不活动的归档数据。在实现归档操作效率的同时,应
用程序可以轻松地只访问处于可操作活动状态的数据,虽然归档数据也保留在同一表中。
期间有效性:期间有效性是 Oracle Database 12c 中新增的数据库期间功能。期间有效性
为有效时间(用户定义的时间)语义提供支持。期间有效性这一新功能为表的每一行创建
有效时间维,这是另一种指示行的操作相关性的方法。
Total Recall 数据库选件也称为闪回数据归档 (FDA),现在称为期间历史记录,此选件已
不再可用。在 Oracle Database 12c 中,它已通过新功能获得增强。

Oracle Database 12c:新功能 - 面向管理员 9-2


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

课程目标

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

Oracle University and Error : You are not a Valid Partner use only
• 区分数据库中归档与期间有效性
• 仅针对活动数据可见性启用行归档
• 描述期间有效性相比期间历史记录的优势
• 在表级别设置期间有效性
• 使用新的 SQL 期间数据类型
• 使用期间有效性来反映业务有效性
• 了解会话级别或闪回时间点查询
• 描述期间历史记录 (FDA) 增强功能

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

注:要全面了解 Oracle 信息生命周期管理的新增功能和使用方法,请参阅 Oracle 文档中


的以下指南:
• 《Oracle Database VLDB and Partitioning Guide 12c Release 1 (12.1)》
• 《Oracle Database PL/SQL Packages and Types Reference 12c Release 1 (12.1)》
的“DBMS_FLASHBACK_ARCHIVE”一章
请参阅 Oracle 学习库中的其他信息资源:
• Oracle By Example (OBE):
- Using In-Database Row Archiving
- Implementing Temporal Validity

Oracle Database 12c:新功能 - 面向管理员 9-3


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

12c 之前版本

归档难题

归档中的难题包括:

Oracle University and Error : You are not a Valid Partner use only
• 保持归档数据在数据库中即时可用
• 编写程序以将数据从磁带重新加载到数据库中
• 备份海量数据,包括旧数据
• 删除旧数据

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

数据在其生命周期中通常会到达某个时间点,此时这些数据不再会经常被访问,因此认为
适合进行归档。传统做法是将这些数据从数据库中删除并存储到磁带上,因为磁带能够以
极低的成本存储海量信息。此解决方案的主要不足如下:
• 数据不能即时可用
• 开发人员需要编写程序将数据从磁带归档重新加载到数据库中。实践证明,这一过
程成本高昂,非常耗时
历史数据通常不保存在数据库中,因为备份大量旧数据会对备份造成巨大影响。
现在,在 Oracle Database 11g 中,不再需要将这些数据归档到磁带,而是将其保留在
数据库中。这一过程称为数据库中归档,该机制将操作数据和归档数据存储在同一数据
库中,这与旧/历史数据的数据库外归档形成对比。

Oracle Database 12c:新功能 - 面向管理员 9-4


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

12c 之前版本

归档解决方案
分区
2003 - 2008 2009 2010

2009

Oracle University and Error : You are not a Valid Partner use only
2009 年第 3 季度的总销
售收入是多少?
仅访问相关的分区。

闪回数据归档
闪回数据
更新 基表 历史记录 归档 查询 闪回请求

SEGMENT 级别的 ILM 联机归档


• 存储分层
• 用于归档的 OLTP/HCC 压缩

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle Database 11g 数据库中归档可以通过三种不同的解决方案来实现:


• 对数据进行分区,将活动数据与处于归档状态的数据区分开。这样,ILM 可以将历
史分区压缩或移动到其他低成本的存储层。
• 闪回数据归档(FDA - Oracle Database 11g 中的 Total Recall 选件):提供了
自动跟踪并将事务处理数据更改归档到指定数据库对象的功能。FDA 包括多个表空
间,在其中存储来自所跟踪表的所有事务处理的历史数据,这些数据的持续时间是
使用已分区压缩系统表中的 RETENTION 参数指定的。历史数据可以使用闪回查询
AS OF 子句进行查询。在归档历史数据的寿命超过保留期之后,系统将自动清除这
些数据。
• ILM 联机归档:这是一个存储层,其中存储所有会偶尔访问或修改的数据。该存储
层可能会非常大,用于存储大量数据。可以利用各种技术来压缩数据。这一层可以
位于数据库中,存储在低成本存储设备上。数据仍保持联机且可用,成本仅略高于
将此信息存储在磁带上,同时避免了将数据归档到磁带的不足。如果将联机归档存
储层标识为只读,则在初始备份数据库之后,无需后续的备份。

Oracle Database 12c:新功能 - 面向管理员 9-5


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

12c 之前版本

数据库中归档:HCC
最高 10 倍 最高 50 倍

Oracle University and Error : You are not a Valid Partner use only
• 数据仓库表的查询模式
– 通常 10 倍的压缩率
• 旧数据的归档模式
– 通常 15-50 倍的压缩率
• 数据按列存储,然后进行压缩

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle 实施了更深层次的表压缩功能,称为 Hybrid Columnar 压缩或 HCC。该功能设计


用于“数据库中归档”,可提供 15 倍到 50 倍的压缩,目的是为了尽可能多的在 Oracle
DB 中联机保留数据。此压缩类型需要 Exadata、ZFS 或 Pillar Axiom 600 存储,有两个
主要级别。
• 仓库压缩:非常适合压缩在数据仓库环境中供查询使用的数据,在这种情况下,在
查询表时已经实现了压缩率,意味着完成表扫描所需的 I/O 数量减少了 10 倍,同时
查询性能也相应得以提升
• 归档压缩:设计用于“数据库中归档”,使用更高的压缩率,尽可能多的在 Oracle
DB 中联机保留数据,可以实现高达 50 倍的压缩率。它最适合不活动的数据,通常
脱机存储。不过,现在归档压缩提供的是联机归档。

Oracle Database 12c:新功能 - 面向管理员 9-6


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

工作原理
典型的数据库压缩算法对存储在数据库数据行中的重复值进行压缩。因此,举例而言,
将压缩某个订单行中的所有订单日期。但是,由于行在磁盘上以行格式存储,在出现的
每两个订单日期值之间存储了许多不相关的信息:在两个订单日期之间可以找到的其他
值包括:订单 ID、客户 ID、产品 ID 等等。
Hybrid Columnar 压缩使用不同的技术来存储列值。它不以行格式存储数据,而是按列来
高效存储数据:例如,所有订单日期将存储在一起,然后是所有订单 ID、所有客户 ID,

Oracle University and Error : You are not a Valid Partner use only
以此类推。这意味着在一个压缩单元中,可以找到更高比例的重复值,实现更大的压缩
率。一个压缩单元可以跨多个数据块。特定列的值可以跨多个块,也可以不跨多个块。
压缩不再限制为一个数据块。

Oracle Database 12c:新功能 - 面向管理员 9-7


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

12c

归档难题和解决方案
难题:
• 将不活动数据和活动数据保留在同一表中。

Oracle University and Error : You are not a Valid Partner use only
• 仅访问活动数据。
• 减少归档存储量。
• 确保对归档数据的高性能访问。
解决方案:
• 数据库中归档
– 活动
– 不活动
• 期间有效性
– 定义有效时间维。
– 按有效时间列进行过滤,仅访问活动数据。

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

到目前为止,归档数据在 SEGMENT 级别上无法与活动数据区分开。


Oracle Database 12c 提供了两种功能,可用于将活动行与同一表中处于不活动状态的行
区分开:
• 具备行归档管理的数据库中归档功能
• 期间有效性:期间 (Temporal) 新功能
注:Oracle Database 11g 中的 Total Recall 选件(功能名称为“闪回数据归档”,简称
FDA)在 Oracle Database 12c 中现在称为“期间 (Temporal) 功能”。
期间 (Temporal) 功能包括:
• 已有的闪回数据归档功能,现在称为“期间历史记录”
• 称为“期间有效性”的新功能
数据库中归档在 Oracle Database 12c 中得到了增强,增加了行归档管理,这是指示行数
据的活动程度的行属性。表中行的相异生命周期状态可以定义为活动和不活动。

Oracle Database 12c:新功能 - 面向管理员 9-8


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

期间有效性提供了添加由两个日期时间列组成的有效时间维的功能,这两列在表定义中指
定。为表中的每一行使用有效时间维是一种指示操作相关性的方法。如果数据不再有效,
则归档此数据并在常规查询中隐藏数据。可以更高效地处理表上大小不断增长的小型活
动数据集。数据可见性依赖于有效时间维上的显式或隐式谓词。在实现归档操作效率的同
时,应用程序可以轻松地只访问处于可操作活动状态的数据,虽然归档数据也保留在同一
表中。

Oracle University and Error : You are not a Valid Partner use only

Oracle Database 12c:新功能 - 面向管理员 9-9


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

数据库中归档

• 启用行归档:添加 ORA_ARCHIVE_STATE 列。

Oracle University and Error : You are not a Valid Partner use only
SQL> CREATE TABLE emp
(EMPNO NUMBER(7),FULLNAME VARCHAR2(40),
JOB VARCHAR2(9),MGR NUMBER(7))
ROW ARCHIVAL;

• 新建行:ORA_ARCHIVE_STATE 值 0。
• 将 ORA_ARCHIVE_STATE 更新为 1 以使用行归档。
0 1

插入行 更新
ORA_ARCHIVE_STATE

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

要将同一个表中的活动行与不活动行区分开,然后压缩不活动行,请使用新的数据库中归
档功能。
行归档属性是用于指示行数据的活动程度的行属性。
表中行的相异状态可以定义为:活动和不活动。
要设置行数据活动程度的值,必须在段级别启用 ROW ARCHIVAL。这会增加包含每一行
的状态的新列 ORA_ARCHIVE_STATE。
默认情况下,行在插入时处于活动状态,ORA_ARCHIVE_STATE 值为“0”。
经过一段时间之后,对行的访问会大幅减少,而且行极少更新,但仍被视为处于活动状
态。接下来,对行的访问会变得极少,行不再更新,但仍保留行,以用于记录保留和/或
合规性用途:此时将其视为处于不活动状态。ORA_ARCHIVE_STATE 列中的值“1”
(或“0”以外的任何值)反映了不活动状态。

Oracle Database 12c:新功能 - 面向管理员 9-10


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

ORA_ARCHIVE_STATE 列

• 查看 ORA_ARCHIVE_STATE 列。
SQL> SELECT ORA_ARCHIVE_STATE,fullname FROM emp;

Oracle University and Error : You are not a Valid Partner use only
ORA_ARCHIVE_STATE FULLNAME
----------------- ------------------
0 JEAN 活动
1 ADAM 不活动
1 TOM 不活动
1 JIM 不活动
• 将行设置为归档状态。
SQL> UPDATE emp SET ORA_ARCHIVE_STATE = 1
WHERE empno < 100;

• 将行设置回活动状态。
SQL> UPDATE emp SET ORA_ARCHIVE_STATE = 0;

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

处于不活动状态的数据可以进行压缩并且需要进行存储压缩。
作为隐藏列,ORA_ARCHIVE_STATE 只有在查询的 select 列表中明确指定时才可见。
管理员必须将 ORA_ARCHIVE_STATE 列的值更新为 1 以将行设置为归档状态。

Oracle Database 12c:新功能 - 面向管理员 9-11


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

会话可见性控制

• 会话可见性控制:默认情况下,仅限活动行
SQL> select ORA_ARCHIVE_STATE,fullname from emp;

Oracle University and Error : You are not a Valid Partner use only
ORA_ARCHIVE_STATE FULLNAME
----------------- ------------------
0 JEAN 活动

• 启用所有行的应用程序可见性。
SQL> alter session set ROW ARCHIVAL VISIBILITY = ALL;

SQL> select ORA_ARCHIVE_STATE,fullname from emp;

ORA_ARCHIVE_STATE FULLNAME
----------------- ------------------
0 JEAN 活动
1 ADAM 不活动
1 JIM 不活动

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

默认情况下,会话只能看到活动行。
可在会话级别启用活动数据的应用程序可见性。系统将过滤进入不活动生命周期状态的
行,只有活动行可见。
ALTER SESSION 语句使用新的 ROW ARCHIVAL VISIBILITY 子句进行了扩展。默认
情况下,值为 ALL。ACTIVE 值允许在会话中只查看活动数据,而不查看不活动数据。

Oracle Database 12c:新功能 - 面向管理员 9-12


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

禁用行归档

• 禁用行归档:ORA_ARCHIVE_STATE 列已删除

Oracle University and Error : You are not a Valid Partner use only
SQL> ALTER TABLE emp NO ROW ARCHIVAL;

ORA_ARCHIVE_STATE

列已删除

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

由于不再需要区分活动和不活动行而在表上禁用行归档属性时,将自动删除
ORA_ARCHIVE_STATE 列。

Oracle Database 12c:新功能 - 面向管理员 9-13


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

测验

以下关于行归档的说法中,哪一项是正确的?

Oracle University and Error : You are not a Valid Partner use only
a. ORA_ARCHIVE_STATE 列在创建表时始终存在。
b. 当数据达到一定寿命时,Oracle 会自动在
ORA_ARCHIVE_STATE 列中设置相应的值。
c. 默认情况下,在插入新行时,ORA_ARCHIVE_STATE
列将设置为 0。
d. ORA_ARCHIVE_STATE 列是期间有效性功能的一部分。

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

答案:c

Oracle Database 12c:新功能 - 面向管理员 9-14


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

12c

期间有效性与期间历史记录

Emp IDc 工作 聘用日期

Oracle University and Error : You are not a Valid Partner use only
• 期间有效性
100 Clerk 22-Apr-11

200 Developer 12-Dec-11

400 Salesman 22-Mar-12

• 期间历史记录
闪回数据归档
插入 基表 历史记录 查询 闪回请求
23-Mar-12

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

使用数据库中归档,您可以将同一个表中的活动行与不活动行区分开,然后压缩不活动
行。现在,您将了解另一种方法,即使用期间有效性来实现同样的目标。
应用程序通常会使用与底层业务相关的日期或时间戳来注释表中所记录事实的有效性(例
如,HR 应用程序中员工的聘用日期,或者保险行业中保单的生效日期)。这种期间属性
称为期间有效性,通常由在创建表时定义有效时间维的用户或应用程序控制。
期间有效性日期或时间戳不同于指示在数据库中记录事实的时间的日期或时间戳。指示
在数据库中记录事实的时间的日期或时间戳是期间历史记录(也称为闪回数据归档)的属
性,由系统管理。Oracle Database 11g Total Recall 功能(也称为 FDA)实施期间历史记
录的事务处理时间。
本幻灯片中的员工 400 是在 3 月 22 日聘用的,但该行在 3 月 23 日输入到 HR.EMP 表
中。3 月 22 日是有效时间期间开始日期,3 月 23 日是事务处理时间期间开始日期。
通过在有效时间维上使用有效时间期间隐式过滤器,查询可以显示当前有效或者将在未来
有效的行。查询可以隐藏当前其事实还未有效的行。
双重期间查询可以同时使用有效时间期间日期和事务处理时间期间日期。

Oracle Database 12c:新功能 - 面向管理员 9-15


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

PERIOD FOR 子句概念


• 将活动数据和不活动数据保留在同一表中。
• 在创建表时定义一个有效时间维。
– 明确定义两个日期时间列。

Oracle University and Error : You are not a Valid Partner use only
SQL> CREATE TABLE emp
( empno number,salary number,deptid number,
name VARCHAR2(100),
user_time_start DATE,user_time_end DATE,
PERIOD FOR user_time (user_time_start,user_time_end));

– 或者创建隐式自动有效时间列。
SQL> CREATE TABLE emp2
( empno number,salary number,deptid number,
name VARCHAR2(100),
PERIOD FOR user_time);

• 插入行时,会明确命名有效时间列。

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

有效时间维使用新的 PERIOD FOR 子句表示,包括两个可在表定义中指定的日期时间列,


如第一个示例中所示;也可自动创建,如第二个示例所示。
要隐藏有效时间维列,只需不带任何日期列指定 PERIOD FOR 子句名称。Oracle 使用有
效时间维的名称作为两个列的名称前缀来创建两个隐藏列。有效时间维名称可在需要时用
于删除维。如第二个示例中所示,您可以将 user_time 定义为有效时间维的名称,并且
将 user_time 用作两个自动创建的日期列 USER_TIME_START 和 USER_TIME_END 的
前缀。
要将行插入具有有效时间维的表中,您需要按以下所示命名两个有效时间日期列:
SQL> INSERT INTO emp2 (empno, salary, deptid, name,
user_time_start, user_time_end)
VALUES (1,1000,20, 'John', SYSDATE, NULL);
SQL> select EMPNO, user_time_start, user_time_end from emp2;
EMPNO USER_TIME_START USER_TIME_END
---------- ----------------------------------- ------------------
1 17-AUG-12 09.58.03.000000 AM +00:00

Oracle Database 12c:新功能 - 面向管理员 9-16


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

按有效时间列进行过滤:示例 1
按有效时间列进行过滤,仅访问活动数据。

JEAN

Oracle University and Error : You are not a Valid Partner use only
SCOTT
ADAM
KIM

01-JAN-90 01-JAN-94 31-DEC-10


01-JAN-91 30-JUN-94 31-DEC-11
01-JAN-92 31-DEC-12
01-JAN-93 31-DEC-13
JIM
MARIA
TOM

SQL> select * from hr.emp as of PERIOD FOR user_time


to_date('01-DEC-1992','dd-mon-yyyy') ;

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

如何按有效时间列过滤?使用 SELECT 语句和 PERIOD FOR 子句,或者使用


DBMS_FLASHBACK_ARCHIVE 过程。
• 根据有效开始时间、有效结束时间和查询时间(AS OF 或未经修饰),有一组数据是
“有效”的。
• 另一方面,有另一组行,其查询时间在有效开始时间和有效结束时间范围之外。
这两组行数据均在同一表中。但是,通过控制对有效行数据的可见性,您可以限制查询和
DML 影响的范围。在此之前,您可以针对事务处理时间执行 AS OF 和版本查询。现在,
您可以针对有效时间执行 AS OF 和版本查询。
对于插入表中的每位新员工,您可以包括聘用日期、有效时间开始日期和有效结束日期。
日期反映了每一行的活动程度。这些日期由应用程序输入,对应于有效日期。表中行的插
入和提交时间对应于事务处理日期。
您可以使用以下新的 PERIOD FOR 子句来过滤现有员工。在显式日期“01-DEC-1992”
有效的所有现有员工将显示在查询中,该日期是属于有效时段的日期,即在
USER_TIME_START 和 USER_TIME_END 之间。

Oracle Database 12c:新功能 - 面向管理员 9-17


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

按有效时间列进行过滤:示例 2
使用针对有效时间的版本查询。
JEAN

SCOTT

Oracle University and Error : You are not a Valid Partner use only
ADAM
KIM

01-JAN-90 01-JAN-94 31-DEC-10


01-JAN-91 30-JUN-94 31-DEC-11
01-JAN-92 31-DEC-12
01-JAN-93 31-DEC-13
JIM
MARIA
TOM

SQL> SELECT * FROM hr.emp VERSIONS PERIOD FOR user_time


BETWEEN to_date('31-DEC-2011','DD-MON-YYYY')
AND to_date('31-DEC-2012','DD-MON-YYYY');

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

您可以使用以下新的 VERSIONS PERIOD FOR BETWEEN 子句来过滤现有员工:


SQL> select * from hr.emp VERSIONS PERIOD FOR user_time
BETWEEN to_date('31-DEC-2011', 'dd-mon-yyyy')
AND to_date('31-DEC-2012', 'dd-mon-yyyy') ;
查询将显示其 VALID_TIME_START 早于或等于“31-DEC-2011”并且
VALID_TIME_END 晚于或等于“31-DEC-2012”的所有员工。
混合使用有效时间维和事务处理时间维的查询称为双重期间查询。
此示例显示了在指定事务处理时间的行现在处于有效状态。
SQL> select * from hr.emp
as of period for user_time to_date('31-DEC-1992', 'dd-mon-yyyy')
as of timestamp to_date ('30-mar-2012','dd-mon-yyyy');

Oracle Database 12c:新功能 - 面向管理员 9-18


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

DBMS_FLASHBACK_ARCHIVE
• 可见性控制适用于查询和 DML。
• 完整可见性适用于 DDL。
• 可见性使用 DBMS_FLASHBACK_ARCHIVE 来设置:

Oracle University and Error : You are not a Valid Partner use only
– 将数据的可见性设置为在指定时间有效的数据。
SQL> exec DBMS_FLASHBACK_ARCHIVE.ENABLE_AT_VALID_TIME('ASOF',-
to_timestamp('29-SEP-10 05.44.01 PM'))

– 在会话级别将数据的可见性设置为当前在有效时段内有效的
数据。
SQL> exec DBMS_FLASHBACK_ARCHIVE.ENABLE_AT_VALID_TIME('CURRENT')

– 将数据的可见性设置为全表级别。
SQL> exec DBMS_FLASHBACK_ARCHIVE.ENABLE_AT_VALID_TIME('ALL')

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

用户可以通过新的 DBMS_FLASHBACK_ARCHIVE 程序包在会话中修改可见性。可见性控


制适用于所有 SQL SELECT 和 DML 语句。
DDL 将默认获取对表数据的完整可见性。例如,CTAS、联机重新定义和 ALTER TABLE
MOVE 操作将具有表数据的完整可见性。隐藏列同样对 DDL 操作可见,这会导致保留这
些列及其数据。
第一个示例将有效时间可见性设置为“29-SEP-2010”,仅显示与指定日期重叠的行。
第二个示例在会话级别将数据的可见性设置为当前在有效时段内有效的数据。
第三个示例将可见性设置为全表,这是默认期间表可见性。

Oracle Database 12c:新功能 - 面向管理员 9-19


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

答案:b
测验

c. 期间有效性列由 Oracle 自动更新。


请选择关于期间有效性功能的正确说法。

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。


b. 期间有效性可见性控制可在会话级别设置。

Oracle Database 12c:新功能 - 面向管理员 9-20


a. 期间有效性和期间历史记录不能用于同一个查询中。

Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

期间历史记录增强功能:FDA 优化

Oracle University and Error : You are not a Valid Partner use only
12c 之前版本 历史记录或归档表: 12c 历史记录或归档表:
- 压缩和取消重复 - 未压缩或未取消重复

SQL> CREATE FLASHBACK ARCHIVE fla1 TABLESPACE tbs1


RETENTION 5 YEAR;

12c 历史记录或归档表:已压缩或已取消重复

SQL> CREATE FLASHBACK ARCHIVE fla1 TABLESPACE tbs1


OPTIMIZE DATA RETENTION 5 YEAR;

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle Database 11g 中的闪回数据归档


在 Oracle Database 11g 中,FDA 历史记录表将经过压缩、取消重复并在内部分区。
Oracle Database 12c 中的期间历史记录
在 Oracle Database 12c 中,创建 FDA 时,不再对 FDA 历史记录表进行压缩或取消重
复。使用 OPTIMIZE DATA 子句创建表时,表和 LOB 压缩以及 LOB 取消重复将自动打
开,使用以下任意功能:高级行表压缩、高级 LOB 压缩、高级 LOB 取消重复、段级别
和行级别 ADO 压缩。启用了 ADO 以允许使用未压缩形式归档新数据,并且在经过一段
时间后,在后台进行压缩。
11g 中的 FDA 历史记录表已经过压缩和取消重复,在升级到 12c 之前将继续压缩和取消
重复。
要停止 FDA 历史记录表上的优化,请执行以下语句:
SQL> ALTER FLASHBACK ARCHIVE fla1 NO OPTIMIZE DATA;
注:在 Oracle Database 12.1.0.2 中,闪回数据归档与可插入数据库兼容。

Oracle Database 12c:新功能 - 面向管理员 9-21


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

期间历史记录增强功能:用户上下文元数据
在启用 FDA 的表上,事务处理的用户上下文是:
• 按属性收集:NONE(默认值)、TYPICAL、ALL
– 使用 DBMS_FLASHBACK_ARCHIVE.SET_CONTEXT_LEVEL

Oracle University and Error : You are not a Valid Partner use only
设置
– 如果为 TYPICAL,则收集数据库用户
. ID、全局用户
ID、客户机标识符、服务名、模块名或主机名
• 使用 GET_SYS_CONTEXT 从 USERENV 获取
SQL> EXEC DBMS_FLASHBACK_ARCHIVE.SET_CONTEXT_LEVEL('TYPICAL')
PL/SQL procedure successfully completed

SQL> SELECT DBMS_FLASHBACK_ARCHIVE.GET_SYS_CONTEXT


(VERSIONS_XID,'USERENV','SESSION_USER'),
VERSIONS_XID,VERSIONS_STARTTIME,VERSIONS_ENDTIME,
employee_id,salary
FROM hr.employees VERSIONS BETWEEN SCN MINVALUE
AND MAXVALUE ;

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

在 Oracle Database 11g 中,闪回收集归档不收集在启用 FDA 的表上执行的事务处理的


用户上下文数据。Oracle Database 12c 现在允许检索此信息。
• 可以收集和检索在启用了闪回数据归档的表上执行的事务处理的用户上下文。
USERENV 名称空间的参数描述了当前会话。用户上下文获取自
DBMS_FLASHBACK_ARCHIVE.GET_SYS_CONTEXT。
• 控制用户上下文收集的参数由
DBMS_FLASHBACK_ARCHIVE.SET_CONTEXT_LEVEL 设置,其值可以为 NONE、
TYPICAL 或 ALL。默认情况下不收集用户上下文。
在 TYPICAL 情况下收集的一些信息的示例包括数据库用户 ID、全局用户 ID、客户
机标识符、服务名、模块名或主机名。
• 这些表中的行在提交时间超过了具有最长保留时间的闪回归档的保留期后将被清除。
• 用户上下文的每一行只能由 DBA 或事务处理所有者读取。

Oracle Database 12c:新功能 - 面向管理员 9-22


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

小结

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

Oracle University and Error : You are not a Valid Partner use only
• 区分数据库中归档与期间有效性
• 仅针对活动数据可见性启用数据库中归档
• 描述期间有效性相比期间历史记录的优势
• 在表级别设置期间有效性
• 使用新的 SQL 期间数据类型
• 使用期间有效性来反映业务有效性
• 了解会话级别或闪回时间点查询
• 描述期间历史记录 (FDA) 增强功能

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle Database 12c:新功能 - 面向管理员 9-23


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED




9-4:清除 FDA
上下文信息(可选)
练习

9-1:使用带行归档功能的数据库归档

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle Database 12c:新功能 - 面向管理员 9-24


9-2:使用期间有效性来只自动查看有效时间行
9-3:使用启用 FAD 的表的历史记录表中的用户

Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

安全性
课程单元

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

审计

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle Database 12c 新增功能和增强功能


Enterprise Manager Enterprise Manager Enterprise Manager
和其他工具 Cloud Control Database Express 其他工具

CDB 和 PDB 基础功能 CDB 和 PDB 创建 CDB 和 PDB 管理

Oracle University and Error : You are not a Valid Partner use only
热图和自动数据优化 联机数据文件移动
ADO 和存储
数据库中归档和期间有效性 期间历史记录

安全性 统一审计 权限分析 数据编写

HA RMAN

易管理性 DB 操作 实时 ADDM 比较时段 ADDM ADR


12.1.0.2 12.1.0.2

内存中列存储 整个数据库内存中高速缓存
性能 自动大表高速 12.1.0.2

缓存
SQL 优化 资源管理器 索引、表

数据泵、SQL*Loader 和外部表 分区
其他
12.1.0.2
JSON SQL

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

统一审计:统一审计工具的作用是将所有审计线索合并到单个统一审计线索表中,提高审
计性能、确保所有 RDBMS 及其他组件(如 RMAN 和数据泵)的审计数据安全性,以及
简化审计配置。

Oracle Database 12c:新功能 - 面向管理员 10-3


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

课程目标

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

Oracle University and Error : You are not a Valid Partner use only
• 了解统一审计线索的实施及使用统一审计线索的优势
• 启用统一审计
• 配置统一审计
• 创建和启用审计策略
• 将应用程序上下文数据添加到审计记录
• 查看统一审计线索中的数据
• 清除统一审计线索

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

注释
要全面了解 Oracle 统一审计 (Oracle Unified Auditing) 的新功能和用法,请参考 Oracle
文档中的以下指南:
• 《Oracle Database Security Guide 12c Release 1 (12.1)》
请参阅其他信息资源:
• Oracle 学习库中的“Oracle Database 12c New Features Demo Series”演示:
- Unified Auditing
• Oracle By Example (OBE):
- Auditing With Unified Auditing

Oracle Database 12c:新功能 - 面向管理员 10-4


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

12c 之前版本

审计类型
监视活动:
审计类型 审计的活动

Oracle University and Error : You are not a Valid Partner use only
强制性审计 • STARTUP、SHUTDOWN
• SYSDBA、SYSOPER、SYSASM 连接

标准数据库审计 AUDIT_TRAIL 参数

授权用户审计 AUDIT_SYS_OPERATIONS = TRUE

细粒度审计 (FGA) DBMS_FGA.ADD_POLICY

Oracle Database Vault 审计 对任何组件的任何违规操作:


• 领域、命令规则、安全应用程序角色
• 规则、因子

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

合规性、隐私和日益复杂的安全威胁导致了对启用本机审计的几乎强制性的要求。对于监
视授权用户尤其如此,但对于可能超出生产环境中正常操作范围的操作也是如此。事实
上,越来越多的外部黑客将授权用户作为攻击目标。因此,审计授权用户活动和应用程序
更改(如 DDL 操作)尤其重要。创建数据库连接、创建表和截断表就是应审计的几个
DDL 操作。从 Oracle Database 11g 开始,默认配置中包含了对这些类型的操作的审计。
Oracle Database 11g 提供了三种不同类型的审计。管理员可以审计在数据库中进行的所
有操作。必须注意的是,审计应有重点,以便仅捕获关注的事件。重点突出的审计对系统
性能的影响最小,并且可提供高度相关的数据用于报告和预警。
• 标准数据库审计可以获取多个有关受审计事件的信息片段,包括发生的事件、事件
发生时间、使受审计事件发生的用户以及事件发生时使用的客户机。
• 使用 AUDIT_SYS_OPERATIONS 参数审计授权用户操作。
• 独立于标准数据库审计,使用细粒度审计可以审计仅在特定列在特定情况下受影响
时发生的 SQL 数据操纵语言语句。

Oracle Database 12c:新功能 - 面向管理员 10-5


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

12c 之前版本

审计线索实施

存储审计记录:
审计线索 审计的活动

Oracle University and Error : You are not a Valid Partner use only
将审计记录发送到 DB/OS 文件 AUDIT_TRAIL = DB / OS / XML
DB,EXTENDED
XML,EXTENDED
AUDIT_FILE_DEST = directory_path

将 SYS.AUD$、SYS.FGA_LOG$ 表 使用 DBMS_AUDIT_MGMT 包
发送到定义的表空间 SET_AUDIT_TRAIL_LOCATION 过程

DVSYS.AUDIT_TRAIL$ Oracle Database Vault 审计

确保审计数据安全:
• 系统日志审计:AUDIT_SYSLOG_LEVEL=local1.info
• Oracle Audit Vault

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

AUDIT_TRAIL 参数定义将写入审计记录的位置。默认情况下,此参数设置为 DB。如果


AUDIT_TRAIL 的设置值为 NONE,则禁用标准数据库审计。AUDIT_TRAIL 参数是静态
参数,要重新启动数据库实例后才能修改。
启用审计的可能参数值为:
• DB:启用数据库审计并将所有审计记录转到数据库审计线索(SYS.AUD$ 表)
• DB、EXTENDED:除了 DB 值的操作以外,获取执行的 SQL 以及审计表的任何绑定
变量(SQLTEXT 和 SQLBIND 列)
• XML:启用数据库审计并将所有审计记录写入到 XML 格式的 OS 文件
• XML、EXTENDED:与 DB、EXTENDED 行为类似
• OS:启用数据库审计并将审计记录转到操作系统文件
对于写入到 OS 文件的所有 AUDIT_TRAIL 选项,默认目录取决于 AUDIT_FILE_DEST。
Oracle Database Vault 审计数据存储在 DVSYS.AUDIT_TRAIL$ 表中。

Oracle Database 12c:新功能 - 面向管理员 10-6


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

合规性方面的法规和法律要求企业确保客户、雇员和合作伙伴的业务数据和个人数据的安
全。企业必须通过审计用户、活动和关联数据来证明遵守法规。
• AUDIT_TRAIL 可以设置为 OS,审计文件是在 AUDIT_FILE_DEST 目录中创建的,
并归 Oracle 用户所有。
• 如果还设置 AUDIT_SYSLOG_LEVEL 参数值,则审计文件归 root 所有,并且仅对
root 可见。记录会发送到 syslog 进程。
• 更安全的解决方案是 Oracle Audit Vault,它可以:

Oracle University and Error : You are not a Valid Partner use only
- 透明地收集和合并多个 Oracle DB 的审计数据
- 通过对可疑活动发出预警,从而帮助检测和防范内部威胁
- 提供内置报告和定制报告,帮助组织简化合规性报告工作

Oracle Database 12c:新功能 - 面向管理员 10-7


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle Database 12c 审计


• 简单性:
– 审计选项组合为一个简单的审计策略
– 更简单的基于操作的审计配置

Oracle University and Error : You are not a Valid Partner use only
– 基于条件的审计配置
– 排除用户,使其免于审计
• 整合:单个统一审计线索
• 安全性:
– 只读审计线索表
– 与审计配置相关的任何操作都接受审计
– 所有 SYS 用户操作都接受审计
– 通过审计角色划分审计管理职责
• 性能:
– 开销可忽略不计

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

该统一审计工具需要解决以下难题:
• 简单性:
- 将审计选项组合成简单的审计策略
- 进一步简化基于操作的审计配置
- 设置基于条件的审计配置
- 排除用户,使其免于审计
• 整合:将所有审计线索整合到单个统一审计线索表中
• 安全性:
- 依靠只读的审计线索表
- 审计与审计配置相关的任何操作
- 审计任何 SYS 用户可审计的操作
- 通过审计管理角色 AUDIT_ADMIN 和 AUDIT_VIEWER 分离审计管理职责
• 性能:
- Oracle Database 12c 审计可以利用系统全局区 (System Global Area, SGA) 队
列来累积审计记录,实现在开销可忽略的情况下启用审计

Oracle Database 12c:新功能 - 面向管理员 10-8


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

安全性和性能:审计体系结构
2 SGA 内存队列中的审计记录

审计的操作

Oracle University and Error : You are not a Valid Partner use only
• select * from hr.employees
• create Database Vault realm
• expdp、impdp
• backup、restore、recover
生成的审计记录 3
后台进程
1
GEN0
3 手动刷新
SQL> EXEC SYS.DBMS_AUDIT_MGMT.FLUSH_UNIFIED_AUDIT_TRAIL

4
查看
只读 AUDSYS 表
SYS.UNIFIED_AUDIT_TRAIL

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

新审计体系结构的工作原理
SGA 内部的指定队列在 AUDSYS 拥有的表中有一个对应的永久存储。
后台进程会每三秒将内容刷新到表中。
每个客户机具有两个 SGA 队列,因此在将第一个队列永久写入表中时,客户机可继续写
入第二个队列。
可以在 UNIFIED_AUDIT_TRAIL 视图中查看审计线索记录。
SYS.DBMS_AUDIT_MGMT.FLUSH_UNIFIED_AUDIT_TRAIL 过程仅在需要在 3 秒延迟
前将队列显式刷新到磁盘时可用。

Oracle Database 12c:新功能 - 面向管理员 10-9


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

整合
基本信息 + 特定组件列
在 SYS.UNIFIED_AUDIT_TRAIL 视图中:

FGA 事件 • FGA_POLICY_NAME

Oracle University and Error : You are not a Valid Partner use only
• DP_TEXT_PARAMETERS1
数据泵导出/导入 • DP_BOOLEAN_PARAMETERS1

• RMAN_OPERATION
• RMAN_OBJECT_TYPE
RMAN 备份/恢复 • RMAN_DEVICE_TYPE
• RMAN_xxx

• OLS_POLICY_NAME
OLS 操作 • OLS_xxx
Database Vault 违规
或配置更改 • DV_xxx

Real Application Security • XS_xxx

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

可以审计数据库组件,比如:
• 向框架注册的 FGA 组件。特定的 FGA 信息存储在 FGA_POLICY_NAME 列中。
• 执行导出或导入操作时的数据泵。特定的数据泵信息存储在两个新列中:
DP_TEXT_PARAMETERS1 和 DP_BOOLEAN_PARAMETERS1。
• 执行备份、还原或恢复操作时的 Oracle RMAN。特定的 RMAN 信息存储在多个新
列中:RMAN_OPERATION 将包含 Backup、Restore 或 Recover。默认审计 RMAN
操作。
• 对表之类对象应用 OLS 策略时的 OLS。特定的 OLS 信息存储在 OLS_xxx 列中。
• Oracle Database Vault 组件(如领域、命令规则、规则集因子)发生配置更改或违
规时的 Oracle Database Vault。特定的 Database Vault 信息存储在 DV_xxx 列中。
• RAS 操作。特定的 RAS 信息存储在 XS_xxx 列中。

Oracle Database 12c:新功能 - 面向管理员 10-10


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

数据泵审计策略

1. 创建组件和操作的审计策略。
SQL> CREATE AUDIT POLICY dp_pol1 ACTIONS

Oracle University and Error : You are not a Valid Partner use only
COMPONENT=datapump export;

2. 启用审计策略。
SQL> audit policy DP_POL1;

3. 执行导出操作。
$ expdp hr/oracle_4U dumpfile=HR_tables tables=EMPLOYEES,JOBS
directory=DATA_PUMP_DIR

4. 将审计数据刷新到磁盘。
SQL> EXEC SYS.DBMS_AUDIT_MGMT.FLUSH_UNIFIED_AUDIT_TRAIL

5. 查看特定于数据泵的审计信息。

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

如果要审计数据泵导出或导入操作,必须执行以下步骤:
1. 创建导出和/或导入的审计策略。审计策略是指定的一组审计设置,可用于审计数据库
中用户行为的某个特定方面。
2. 然后,启用已创建的审计策略以审计导出操作。
3. 执行导出操作。在每次导出操作时,特定的数据泵信息会存储在
UNIFIED_AUDIT_TRAIL 视图的两个新列中:DP_TEXT_PARAMETERS1 和
DP_BOOLEAN_PARAMETERS1。
4. 通过使用 DBMS_AUDIT_MGMT.FLUSH_UNIFIED_AUDIT_TRAIL 过程将审计信息刷
新到磁盘。
5. 在 UNIFIED_AUDIT_TRAIL 视图中显示数据泵审计信息。

Oracle Database 12c:新功能 - 面向管理员 10-11


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

统一审计实施
混合审计模式:
允许平滑地移植现有数据库以使用统一审计功能
统一审计模式:

Oracle University and Error : You are not a Valid Partner use only
在填充 UNIFIED_AUDIT_TRAIL 视图之前:
• 启用统一审计。
1. 关闭所有进程和数据库实例。
2. cd $ORACLE_HOME/rdbms/lib
make -f ins_rdbms.mk uniaud_on ioracle
ORACLE_HOME=$ORACLE_HOME
3. 启动所有实例的所有 Oracle 进程。
• 定义只读审计表的表空间。
不再观察 AUDIT_xxx 实例参数。

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

混合审计模式:
混合审计模式允许新审计引擎和传统审计引擎同时工作。
• 在升级时,现有的任何审计设置都不会受影响,数据库会继续支持传统审计工具。
建议移植到统一审计工具以利用新的审计体系结构和性能改进。在决定切换到统一
审计模式之前,可以通过使用 CREATE AUDIT POLICY 命令创建策略并使用
AUDIT 命令将其启用来使用混合模式。如果不想创建新策略,则可直接启用某个预
定义的策略(ORA_SECURECONFIG、ORA_ACCOUNT_MGMT 或
ORA_DATABASE_PARAMETER)。以上任一策略都会将数据库置于混合审计模式。
旧的审计语法仍然有效,并且仍会写入到旧的审计目标。但是,可以创建新的审计
策略,并且审计数据也会写入到新的统一审计线索。
• 在创建数据库时,会默认通过启用的预定义策略 ORA_SECURECONFIG 使用混合审
计模式。但统一审计模式尚未启用。

Oracle Database 12c:新功能 - 面向管理员 10-12


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

统一审计模式
要启用统一审计,请在 ORACLE_HOME 中关闭所有 Oracle 进程和数据库实例后,将
Oracle 重新与 uniaud_on 选项关联。默认情况下,新的统一审计数据会写入到
SYSAUX 表空间。如果不想使用 SYSAUX 表空间,请创建一个新的表空间来承载新的只
读审计线索表;该表空间归新的 AUDSYS 方案所有。请注意,AUDSYS 用户默认是锁定
的。在启用了统一审计模式后,将不考虑任何旧的审计实例参数:AUDIT_TRAIL、
AUDIT_FILE_DEST、AUDIT_SYS_OPERATIONS、AUDIT_SYSLOG_LEVEL。无法将审

Oracle University and Error : You are not a Valid Partner use only
计记录写入 OS 或系统日志。

Oracle Database 12c:新功能 - 面向管理员 10-13


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

测验

要审计 RMAN 备份、还原或恢复操作,必须创建新的审计

Oracle University and Error : You are not a Valid Partner use only
策略。
a. 对
b. 错

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

答案:b
与其他 Oracle DB 组件不同,不为 Oracle RMAN 事件创建统一审计策略。
UNIFIED_AUDIT_TRAIL 视图会自动获取通常审计的 Oracle RMAN 事件。

Oracle Database 12c:新功能 - 面向管理员 10-14


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

答案:b
a. SYS

e. DVSYS
b. AUDSYS

d. LBACSYS
c. AUDIT_ADMIN
测验

选择统一审计线索的方案所有者。

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle Database 12c:新功能 - 面向管理员 10-15


Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

安全性
• AUDSYS 方案中的只读审计线索表
• 强制审计所有与审计相关的活动

Oracle University and Error : You are not a Valid Partner use only
• 强制审计所有顶级语句(STARTUP、SHUTDOWN、
ALTER DATABASE 和 ALTER SYSTEM)
• 用于管理审计和查看审计数据的角色:
– DBA:
创建表空间 以存储审计表

– AUDIT_ADMIN: CREATE AUDIT POLICY …;


exec DBMS_FGA …
— 配置审计选项 exec DBMS_AUDIT_MGMT.SET_AUDIT_TRAIL_LOCATION
exec DBMS_AUDIT_MGMT.INIT_CLEANUP

— 管理审计线索
– AUDIT_VIEWER: UNIFIED_AUDIT_TRAIL

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

合规性方面的法规和法律要求企业通过审计用户、活动和关联的数据来确保审计数据的安
全。会自动审计作为 SYSDBA、SYSOPER、SYSBACKUP、SYSASM、SYSKM 或 SYSDG 连
接的 SYS 用户:
• 在任何顶级语句(如 STARTUP、SHUTDOWN、ALTER DATABASE 和 ALTER
SYSTEM)执行过程中,直到数据库打开为止。
• 在为 SYS 用户配置系统范围的审计策略时。
• 当数据库尚未打开时,强制的和 SYS 审计记录会写入到
$ORACLE_BASE/audit/<dbname>。
DBMS_AUDIT_MGMT.LOAD_UNIFIED_AUDIT_FILES 过程允许在数据打开时将其
加载到数据库中。该过程会检测在数据库中成功加载的外部审计文件。
AUDSYS 方案拥有的审计线索表处于只读模式,只能在恢复或升级操作过程中通过使用
SYSDBA 权限进行更新。
强制审计任何与审计相关的活动(如创建、修改、启用审计策略以及执行
DBMS_AUDIT_MGMT 和 DBMS_FGA 程序包)。
配置审计设置和审计线索管理不再需要 SYSDBA 权限。要实现职责分离,需要
AUDIT_ADMIN 角色来执行这些功能。AUDIT_VIEWER 角色可以查看和分析审计数据。

Oracle Database 12c:新功能 - 面向管理员 10-16


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

简单性:审计策略
• 不再使用 AUDIT_xxx 实例参数
• 要启动审计,请执行以下步骤:

Oracle University and Error : You are not a Valid Partner use only
1. 创建用于组合审计选项的审计策略:
CREATE AUDIT POLICY 命令:
— 审计选项:系统范围的、特定于对象的或者角色
— 可选 WHEN 条件 EVALUATE PER STATEMENT
— 可选事件处理程序预警
— CONTAINER = CURRENT | ALL
2. 启用/禁用审计策略:AUDIT 和 NOAUDIT
— 默认为所有用户
— BY 用户名
— EXCEPT 用户名
• 在 UNIFIED_AUDIT_TRAIL 视图中查看被审计的数据

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

在统一审计数据库中,会强制审计以下操作:CREATE AUDIT POLICY、ALTER AUDIT


POLICY、DROP AUDIT POLICY、AUDIT、NOAUDIT、对 DBMS_FGA 的 EXECUTE 和
对 DBMS_AUDIT_MGMT 的 EXECUTE。
执行基于系统或对象权限或角色的审计操作,前提是创建并启用审计策略。什么是审计
策略?
• 指定的一组审计选项,可用于通过利用系统、对象或角色权限来审计数据库中用户行
为的特定方面
• 使用 CREATE AUDIT POLICY 命令创建,需要 AUDIT_ADMIN 角色
• 在语句执行过程中有条件地强制执行和评估,或者在会话过程中或实例级别执行一次
• 同时提供事件处理程序过程,用于提示发生了审计
• 在 root 或可插入数据库 (pluggable database, PDB) 中的多租户容器数据库
(multitenant container database, CDB) 中应用
• 在使用 AUDIT 命令显式启用之前不活动
请注意,使用 AUDIT 和 NOAUDIT 命令配置的现有标准非策略审计选项无效
• 应用时有特定的用户列表例外

Oracle Database 12c:新功能 - 面向管理员 10-17


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

第 1 步:创建审计策略

• 基于系统范围的审计选项创建审计策略:
系统权限、操作或角色(或全部)

Oracle University and Error : You are not a Valid Partner use only
SQL> CREATE AUDIT POLICY audit_mixed_pol4
PRIVILEGES DROP ANY TABLE ROLES emp_role;

• 基于特定于对象的选项创建审计策略。
SQL> CREATE AUDIT POLICY audit_objpriv_pol7
ACTIONS EXECUTE, GRANT ON hr.raise_salary_proc;

• 基于条件和评估 PER SESSION、STATEMENT 或


INSTANCE 创建审计策略。
SQL> CREATE AUDIT POLICY audit_mixed_pol5
ACTIONS RENAME ON hr.employees, ALTER ON hr.jobs,
WHEN 'SYS_CONTEXT (''USERENV'', ''SESSION_USER'')=''JIM'''
EVALUATE PER SESSION;

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

要创建审计策略,必须先定义系统范围或特定于对象的审计选项。
系统范围的选项
• 权限审计选项审计使用指定系统权限的所有事件,如本幻灯片中的第一个示例所示。
• 操作审计选项指示应审计的 RDBMS 操作,如第二个示例中的 ALTER TRIGGER
操作。
• 角色审计选项审计对被直接授予 MGR_ROLE 角色的所有系统权限或对象权限的使用
情况,如第三个示例中所示。
您可在同一个审计策略中配置权限、操作和角色审计选项,如第一个示例所示。
在 SYS.AUDITABLE_SYSTEM_ACTIONS 表中找到包含可审计的系统范围选项的列表。
对象范围的选项
第三个示例创建的审计策略用于审计对任何过程对象的所有执行操作,以及对
HR.RAISE_SALARY_PROC 过程的所有授予操作。对象级审计选项是动态的。即,对这些
操作的更改将适用于当前和后续的用户会话。

Oracle Database 12c:新功能 - 面向管理员 10-18


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

条件和评估

Oracle Database 12c:新功能 - 面向管理员 10-19


的所有变更操作,条件是执行审计语句的用户是 JIM。该条件仅在会话中评估一次。
审计策略可按语句、按每个会话或每个实例评估条件。本幻灯片中的第三个示例创建了
一个审计策略,用于审计对 HR.EMPLOYEES 表的所有重命名操作,以及对 HR.JOBS 表

Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

第 2 步:启用/禁用审计策略
• 启用审计策略:
– 应用于所有用户。
SQL> AUDIT POLICY audit_syspriv_pol1;

Oracle University and Error : You are not a Valid Partner use only
– 仅适用于某些用户。
SQL> AUDIT POLICY audit_pol2 BY scott, oe;
SQL> AUDIT POLICY audit_pol3 BY sys;

– 排除某些用户。
SQL> AUDIT POLICY audit_pol4 EXCEPT jim, george;

– 基于失败或成功的操作审计记录。
SQL> AUDIT POLICY audit_syspriv_pol1 WHENEVER SUCCESSFUL ;
SQL> AUDIT POLICY audit_objpriv_pol2 WHENEVER NOT SUCCESSFUL ;

SQL> AUDIT POLICY auditpol5 BY joe WHENEVER SUCCESSFUL ;

• 通过使用 NOAUDIT 命令,禁用审计策略。

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

审计策略启用
下一步是通过使用 AUDIT 语句启用审计策略。
除非定义了审计用户列表,否则将默认审计所有用户。
• 使用 BY 子句可将审计策略应用于一个或多个用户。
审计管理员将按照审计其他用户操作的方式审计特定于 SYS 用户的操作。
• 使用 EXCEPT 子句可排除某些用户。
不能在同一个策略启用语句中同时使用 BY 列表和 EXCEPT 列表。
无论用户的操作是失败还是成功,都将生成审计记录。如果希望仅在用户操作失败时审计
操作,请使用 WHENEVER NOT SUCCESSFUL 子句。如果希望仅在用户操作成功时审计
操作,请使用 WHENEVER SUCCESSFUL 子句。当省略 WHENEVER 子句时,无论操作成
功与否都将审计语句,而且 RETURN_CODE 列将显示操作是否成功。
审计策略禁用
要禁用审计策略,请使用 NOAUDIT 命令。

Oracle Database 12c:新功能 - 面向管理员 10-20


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

查看审计策略
• 查看审计策略。
SQL> SELECT POLICY_NAME, AUDIT_OPTION, CONDITION_EVAL_OPT
FROM AUDIT_UNIFIED_POLICIES;

Oracle University and Error : You are not a Valid Partner use only
POLICY_NAME AUDIT_OPTION CONDITION_EVAL_OPT
-------------------- ---------------- ----------------
POL1 DELETE INSTANCE
POL2 TRUNCATE TABLE NONE
POL3 RENAME SESSION
POL4 ALL ACTIONS STATEMENT

• 查看启用的审计策略。
SQL> SELECT POLICY_NAME, ENABLED_OPT, USER_NAME, SUCCESS, FAILURE
FROM AUDIT_UNIFIED_ENABLED_POLICIES;

POLICY_NAME ENABLED_ USER_NAME SUC FAI


-------------------- -------- ---------- --- ---
POL2 EXCEPT SYSTEM NO YES
POL4 BY SYS YES YES
POL6 BY ALL USERS YES NO

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

在 AUDIT_UNIFIED_POLICIES 视图中验证创建的审计策略列表。
• CONDITION_EVAL_OPT 列定义评估条件的时间(如有)。
在 AUDIT_UNIFIED_ENABLED_POLICIES 视图中验证启用的审计策略列表。
• ENABLED_OPT 列定义是使用 BY 值定义了审计用户列表,还是使用 EXCEPT 值定
义了排除用户的例外列表。审计或排除的用户在 USER_NAME 列中列出。
• SUCCESS 和 FAILURE 列指示策略是否仅在用户操作成功或失败时生成审计记录。

Oracle Database 12c:新功能 - 面向管理员 10-21


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

使用预定义的审计策略
SQL> select POLICY_NAME, AUDIT_OPTION
from AUDIT_UNIFIED_POLICIES
where policy_name in ('ORA_ACCOUNT_MGMT',
'ORA_DATABASE_PARAMETER',

Oracle University and Error : You are not a Valid Partner use only
'ORA_SECURECONFIG');

POLICY_NAME AUDIT_OPTION
------------------------------ -------------------------------
ORA_ACCOUNT_MGMT ALTER ROLE …
ORA_DATABASE_PARAMETER ALTER DATABASE
ORA_DATABASE_PARAMETER ALTER SYSTEM …
ORA_SECURECONFIG ADMINISTER KEY MANAGEMENT …

• ORA_SECURECONFIG 审计策略审计 Oracle Database


11g 默认审计设置审计的策略审计权限。
• 默认情况下,ORA_SECURECONFIG 审计策略处于启用
状态。
• ORA_SECURECONFIG 记录所有用户的所有登录事件。
• 从 ORA_SECURECONFIG 特定帐户排除。

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

在 Oracle Database 12c 中,有三个主要的预定义操作审计策略,它们通常在 Oracle 的


审计最佳实践中得到审计和推荐。$ORACLE_HOME/rdbms/admin/secconf.sql 脚本
创建三个预定义的审计策略并仅启用 ORA_SECURECONFIG 审计策略。
• ORA_ACCOUNT_MGMT 审计策略审计用户帐户和权限管理对应的事件。
• ORA_DATABASE_PARAMETER 审计策略审计对数据库参数设置所做的更改。
• ORA_SECURECONFIG 审计策略审计 Oracle Database 11g 默认审计设置所审计的
权限列表。在 Oracle Database 11g 中,
$ORACLE_HOME/rdbms/admin/secconf.sql 脚本通过使用 AUDIT 命令来设置
11g 默认审计,以审计 Oracle Database 12c 通过创建并启用 ORA_SECURECONFIG
审计策略审计的权限列表。
用户必须根据自己的要求启用或禁用此类预先创建的审计策略。
默认情况下仅启用 ORA_SECURECONFIG。请在
AUDIT_UNIFIED_ENABLED_POLICIES 视图中检查,ORA_SECURECONFIG 策略会记
录所有登录事件。这将在审计存储中生成过多的记录。排除特定的帐户(如 SYSMAN、
DBSNMP 帐户):
SQL> audit policy ora_secureconfig except SYSMAN;

Oracle Database 12c:新功能 - 面向管理员 10-22


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

包括应用程序上下文数据
上下文名称空间 属性/值

MyJob – Developer
CONTEXT_HR
MyLoc – Paris

Oracle University and Error : You are not a Valid Partner use only
CONTEXT_SALES MyRole – Manager

• 使用 AUDIT CONTEXT ATTRIBUTES 命令。


SQL> AUDIT CONTEXT NAMESPACE context_HR
ATTRIBUTES MyJob, MyLoc
CONTEXT NAMESPACE context_SALES
ATTRIBUTES MyRole BY jim;

SQL> select APPLICATION_CONTEXTS from UNIFIED_AUDIT_TRAIL


where APPLICATION_CONTEXTS is not null;
APPLICATION_CONTEXTS
--------------------------------------------------------
(context_HR,MyJob=Manager); (context_HR,MyLoc=Paris)

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

获取统一审计线索中的应用程序上下文信息
应用程序在对数据库服务器执行操作、存储信息(如模块名称和客户机 ID)之前设置各
种上下文。这些值通常存储在应用程序上下文中。应用程序上下文是名称空间中的属性名
称和属性值对,可以将每个对附加在审计数据中。
审计管理员可以使用 AUDIT CONTEXT NAMESPACE ATTRIBUTES 命令配置必须在审
计数据中获取的应用程序上下文及其属性。
要显示受审计的应用程序上下文数据,请从 UNIFIED_AUDIT_TRAIL 视图中选择。
要列出受审计的应用程序上下文,请使用 AUDIT_UNIFIED_CONTEXTS 视图:
SQL> select * from audit_unified_contexts;
NAMESPACE ATTRIBUTE USER_NAME
---------------- ---------------- ------------
CONTEXT_HR MYJOB ALL_USERS
CONTEXT_HR MYJOB ALL_USERS
CONTEXT_SALES MYROLE JIM
要禁用应用程序上下文审计设置,请执行 NOAUDIT 语句。

Oracle Database 12c:新功能 - 面向管理员 10-23


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

删除审计策略

1. 禁用审计策略。

Oracle University and Error : You are not a Valid Partner use only
SQL> NOAUDIT POLICY audit_syspriv_pol1;

2. 删除审计策略。
SQL> DROP AUDIT POLICY audit_syspriv_pol1;

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

要删除统一审计策略,请先将其禁用,然后运行 DROP AUDIT POLICY 语句将其删除。


如果已经为某个会话启用了与系统相关的统一审计策略,则无法通过此现有会话看到删除
系统相关审计策略的效果。在此之前,与系统相关的统一审计策略的设置保持有效。但
是,与对象相关的统一审计策略会立即生效。
在 CDB 环境中,可以从 root 删除通用审计策略,只能从应用本地审计策略的 PDB 中
删除本地审计策略。

Oracle Database 12c:新功能 - 面向管理员 10-24


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

审计清理

清理 SYS.UNIFIED_AUDIT_TRAIL 中的记录:
• 调度自动清除作业。

Oracle University and Error : You are not a Valid Partner use only
DBMS_AUDIT_MGMT.CREATE_PURGE_JOB
(AUDIT_TRAIL_TYPE=> DBMS_AUDIT_MGMT.AUDIT_TRAIL_UNIFIED,
AUDIT_TRAIL_PURGE_INTERVAL => 12,
AUDIT_TRAIL_PURGE_NAME => 'Audit_Trail_PJ',
USE_LAST_ARCH_TIMESTAMP => TRUE,
CONTAINER => DBMS_AUDIT_MGMT.CONTAINER_CURRENT);

• 手动清除审计记录。
DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL(
AUDIT_TRAIL_TYPE => DBMS_AUDIT_MGMT.AUDIT_TRAIL_UNIFIED)

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

要执行审计线索清除任务,请使用 DBMS_AUDIT_MGMT 程序包。必须具有


AUDIT_ADMIN 角色才可使用该程序包。通过强制要求,Oracle DB 将审计
DBMS_AUDIT_MGMT 程序包过程执行的所有操作。
DBMS_AUDIT_MGMT.CREATE_PURGE_JOB 过程拥有一个新属性 CONTAINER。将
CONTAINER 设置为 CONTAINER_CURRENT 将删除当前可插入数据库的审计线索记录。
将 CONTAINER 设置为 CONTAINER_ALL 将删除所有所有可插入数据库的审计线索记
录,并在根目录中创建一个作业,调用此作业将在所有 PDB 中调用清除操作。
指定是否应使用最后的归档时间戳确定应删除的记录。
将 USE_LAST_ARCH_TIMESTAMP 设置为 TRUE 指示只应删除在最后归档时间戳之前创
建的审计记录。FALSE 值指示应删除所有审计记录。默认值为 TRUE。Oracle 建议使用
此值,因为这将有助于防止不小心删除记录。
通过创建和调度清理清除作业可使清理过程自动化,也可以手动运行清理清除作业。如果
手动运行清理清除作业,请使用 DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL 过程和新
类型值 DBMS_AUDIT_MGMT.AUDIT_TRAIL_UNIFIED。

Oracle Database 12c:新功能 - 面向管理员 10-25


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

测验

选择要用于查看启用的审计策略的视图。

Oracle University and Error : You are not a Valid Partner use only
a. DBA_UNIFIED_AUDIT_POLICIES
b. UNIFIED_AUDIT_ENABLED_POLICIES
c. UNIFIED_AUDIT_POLICIES
d. AUDIT_UNIFIED_ENABLED_POLICIES
e. UNIFIED_AUDIT_TRAIL

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

答案:d

Oracle Database 12c:新功能 - 面向管理员 10-26


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED







配置统一审计
启用统一审计

清除统一审计线索
创建和启用审计策略
实施和使用统一审计线索
在本课中,您应该已经学会:

查看统一审计线索中的数据
小结

将应用程序上下文数据添加到审计记录

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle Database 12c:新功能 - 面向管理员 10-27


Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED





10-1:启用统一审计
10-2:审计 RMAN 操作
练习

10-3:审计 SYS 和最终用户(可选)


10-4:排除 DBSNMP 登录事件(可选)

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle Database 12c:新功能 - 面向管理员 10-28


Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

权限

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle Database 12c 新增功能和增强功能


Enterprise Manager Enterprise Manager Enterprise Manager
Cloud Control Database Express 其他工具
和其他工具

CDB 和 PDB 基础功能 CDB 和 PDB 创建 CDB 和 PDB 管理

Oracle University and Error : You are not a Valid Partner use only
热图和自动数据优化 联机数据文件移动
ADO 和存储
数据库中归档和期间有效性 期间历史记录

安全性 统一审计 权限分析 数据编写

HA RMAN

易管理性 DB 操作 实时 ADDM 比较时段 ADDM ADR


12.1.0.2 12.1.0.2

内存中列存储 整个数据库内存中高速缓存
性能 自动大表高速 12.1.0.2

缓存
SQL 优化 资源管理器 索引、表

数据泵、SQL*Loader 和外部表 分区
其他
12.1.0.2
JSON SQL

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

“权限分析”确定要撤消的未使用权限。
“其他权限增强功能”包括新增的管理性系统权限,该权限更侧重于面向任务,以支持职
责分离。

Oracle Database 12c:新功能 - 面向管理员 11-2


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

课程目标

学完本课后,应能完成以下工作:
• 实施数据库管理任务的职责分离

Oracle University and Error : You are not a Valid Partner use only
• 描述新增的管理权限
• 描述管理权限的操作系统组
• 创建口令文件以支持新权限
• 说明新系统权限 PURGE DBA_RECYCLEBIN
• 使用数据库权限分析
• 创建并启用权限分析
• 控制调用者的权限过程的权限
• 管理调用者的视图权限行为

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

注释
要全面地了解权限分析新功能以及新增的管理权限和其他权限的用法,请参阅 Oracle 文档
中的以下指南:
• 《Oracle Database Security Guide 12c Release 1 (12.1)》
• 《Oracle Database PL/SQL Packages and Types Reference 12c Release 1 (12.1)》
中的“DBMS_PRIVILEGE_CAPTURE”一章
请参阅 Oracle 学习库中的其他信息资源:
• “Oracle Database 12c New Features Demo Series”演示:
- Administrative Privileges
- Privileges Capture
- INHERIT PRIVILEGES Privilege and Invokers’ Rights Procedures
- INHERIT PRIVILEGES Privilege and Current_User Views
• Oracle By Example (OBE):
- Determining Least Privilege Access Using Privilege Analysis

Oracle Database 12c:新功能 - 面向管理员 11-3


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

主要难题
• 职责分离:管理任务依赖于 SYSDBA。
– 标准管理任务的新任务特定权限
— Oracle RMAN 管理员:备份和恢复

Oracle University and Error : You are not a Valid Partner use only
— Data Guard 管理员
— 密钥管理管理员:TDE 密钥库管理
– 通过 Oracle Database Vault 设置的安全管理员
— DV 所有者和 DV 帐户管理员
– SYSDBA 权限没有变化
– 强制审计管理权限
– 新增系统权限:PURGE DBA_RECYCLEBIN
• 安全性:
– 确定要撤消的未使用权限:权限分析
– 在调用者的权限过程调用过程中检查新权限
– 在调用者的权限视图调用过程中检查新权限

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

作为一项基本安全要求,职责分离的原则决定了完成任何关键任务要有一个关联的角色。
在 Oracle Database 11g 中,Oracle DB 的管理主要取决于 SYSDBA 管理权限。
为了更好地分离职责,Oracle DB 现在提供了任务特定权限来处理 Oracle Recovery
Manager (Oracle RMAN)、Oracle Data Guard 和透明数据加密 (transparent data
encryption, TDE) 的标准管理职责。新权限基于最少权限原则,即仅向用户授予执行特定
功能所需的绝对必要的权限,没有余地。此功能可减少不必要地为许多任务授予 SYSDBA
管理权限的需求。SYSDBA 是关键情况所必需的,如安装、升级和紧急恢复。
职责分离通过维护数据的隐私和合规性要求来提高数据库安全性。
要实现最少权限原则,必须确定并撤消不必要的权限。权限分析可帮助确定已使用和未使
用的权限。调用者的权限过程调用会让调用者在过程调用期间使用所有授予的权限。新权
限允许发出调用的用户在运行调用者的权限过程时控制谁可以访问其权限。同样的原则也
适用于本课稍后将介绍的 BEQUEATH CURRENT_USER 视图。

Oracle Database 12c:新功能 - 面向管理员 11-4


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

新增的管理权限
管理权限 用户名 任务

SYSDBA、SYSOPER SYS / PUBLIC 与 11g 中的操作相同

Oracle University and Error : You are not a Valid Partner use only
SYSASM SYS 仅特定于 ASM 实例

SYSBACKUP SYSBACKUP 从 RMAN 或通过 SQL 执行


RMAN 备份和恢复操作

SYSDG SYSDG 通过 Data Guard 中介或


DGMGRL 执行 Data Guard 操作

SYSKM SYSKM 管理透明数据加密密钥库操作

• 管理权限 (SYSBACKUP) 与预定义用户 (SYSBACKUP)


之间的区别
• 不能删除 SYSBACKUP、SYSDG、SYSKM 用户

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle Database 12c 引入了新的管理权限;这些权限针对更具体的任务并采用最少授权


以支持特定的管理任务。为了向后兼容,SYSDBA 管理权限未做更改。但是,与 SYSDBA
管理权限的关联将限于主要操作,如安装和升级等。
• SYSBACKUP 管理权限允许从 Oracle RMAN 或通过 SQL、STARTUP 和 SHUTDOWN
执行 Oracle RMAN 备份和恢复操作,以及执行其他操作。
• SYSDG 管理权限通过 Data Guard 中介或 DGMGRL 命令行界面执行 Data Guard 操
作,以及执行 STARTUP 和 SHUTDOWN 及其他操作。
• SYSKM 管理权限允许管理透明数据加密密钥库操作。
利用这些权限,即使数据库未打开,也可以连接到该数据库。
在与以下权限之一关联之后,您将在名称为权限名称的某个预定义用户下进行关联。每个
权限与某个特定的用户关联。
SQL> connect / as SYSBACKUP
SQL> show user
USER is "SYSBACKUP"

Oracle Database 12c:新功能 - 面向管理员 11-5


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

操作系统验证和操作系统组

Oracle University and Error : You are not a Valid Partner use only
#define SS_DBA_GRP "dba"
1 2 #define SS_OPER_GRP "opdba" 3
#define SS_ASM_GRP ""
#define SS_BKP_GRP "bkpdba"
$ mv config.o config.o.orig
$ORACLE_HOME/rdbms/ $ make -f ins_rdbms.mk ioracle
#define SS_DGD_GRP "dgdba"
lib/config.[cs]
#define SS_KMT_GRP "kmdba"

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

在操作系统验证中,如果已创建操作系统 UNIX 或 Windows 组,并且已为操作系统定义


的相应组分配了帐户,则在数据库安装过程中会创建组并为其分配特定名称。
UNIX 或 Windows 组中的成员资格将影响与数据库的连接,如下所示:
• 如果您是 OSBACKUP 组的成员,并且在连接到数据库时指定了 AS SYSBACKUP,
则可以通过 SYSBACKUP 用户下的 SYSBACKUP 管理权限连接到数据库。
• 如果您是 OSDG 组的成员,并且在连接到数据库时指定了 AS SYSDG,则可以通过
SYSDG 用户下的 SYSDG 管理权限连接到数据库。
• 如果您是 OSKM 组的成员,并且在连接到数据库时指定了 AS SYSKM,则可以通过
SYSKM 用户下的 SYSKM 管理权限连接到数据库。

Oracle Database 12c:新功能 - 面向管理员 11-6


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

如果不是这些操作系统组的成员,则用户无法使用操作系统验证以管理用户身份进行连接。
即 CONNECT / AS SYSDBA 将失败。但是,用户仍可使用其他验证机制(如网络、口令或
基于目录的验证)进行连接。要更改操作系统组名称(如本幻灯片中的第 1 步和第 2 步所
示),请确保使用的是 $ORACLE_HOME/rdbms/lib/config.[cs] 文件中定义的组。接
下来,关闭所有数据库,然后重新链接 Oracle 可执行文件,如本幻灯片上的第 3 步所示。
Windows 用户组
Windows 用户组为 ORA_%HOMENAME%_SYSBACKUP、ORA_%HOMENAME%_SYSDG 和

Oracle University and Error : You are not a Valid Partner use only
ORA_%HOMENAME%_SYSKM。不能更改这些用户组。

Oracle Database 12c:新功能 - 面向管理员 11-7


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

SYSBACKUP 的口令验证

JOHN 条目不属于 SYSBACKUP。


• 使用格式 12 格式创建新口令文件:

Oracle University and Error : You are not a Valid Partner use only
$ orapwd file=orapwDBSEC password=x entries=10 format=12

• 将 SYSBACKUP 权限授予用户。
SQL> GRANT SYSBACKUP to JOHN;

SQL> SELECT USERNAME, SYSDBA, SYSOPER, SYSBACKUP FROM V$PWFILE_USERS;

USERNAME SYSDB SYSOP SYSBA


----------- ----- ----- -----
SYS TRUE TRUE FALSE
JOHN FALSE FALSE TRUE

• 通过 AS SYSBACKUP 连接。
$ rman target '"JOHN@DBSEC AS SYSBACKUP"'
RMAN>

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

口令验证仍要求将 REMOTE_LOGIN_PASSWORDFILE 实例参数设置为 EXCLUSIVE 并需


要一个口令文件。
创建口令文件过程中的新参数定义新格式并支持新管理权限。
• FORMAT:如果是默认值 12,则以 version12.x 格式创建口令文件并支持
SYSBACKUP、SYSDG 和 SYSKM 管理权限。如果为 legacy,则以旧格式创建口令文
件,即 Oracle Database 12c 之前的格式。当指定 SYSBACKUP 或 SYSDG 参数时,
不能将 FORMAT 设置为旧格式。
• SYSBACKUP:如果设置为 y,则在口令文件中创建一个 SYSBACKUP 用户条目,并且
系统会提示输入 SYSBACKUP 用户口令。SYSBACKUP 用户口令存储在创建的口令文
件中。
• SYSDG:如果设置为 y,则在口令文件中创建一个 SYSDG 条目,并且系统会提示输
入 SYSDG 口令。SYSDG 口令存储在创建的口令文件中。
• INPUT_FILE:输入口令文件的名称。ORAPWD 将输入文件中的条目移植到新的口令
文件中。此参数可以将口令文件从 legacy 格式转换为 12 格式。

Oracle Database 12c:新功能 - 面向管理员 11-8


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

若要以 SYSBACKUP 身份连接,建议不要使用 SYSBACKUP 用户。负责备份/恢复的所有


DBA 将共享相同的口令。首先,从责任上讲,这种做法不可取。此外,以后还无法为特
定的 DBA 撤消此权限(除非更改口令)。最好为每个 DBA 创建一个指定的数据库帐户,
并在必要时授予 SYSBACKUP 权限。这样将不共享任何口令,并且可在不影响其他 DBA
的情况下为任一 DBA 撤消 SYSBACKUP。
如果使用的是多租户容器数据库,则 CDB 的每个 PDB 都可以创建一个本地用户并授予该
用户 SYSBACKUP 权限。该用户可以连接到 PDB 并执行 PDB 备份,并且仅能为其连接到

Oracle University and Error : You are not a Valid Partner use only
PDB 执行备份。
$ rman TARGET '"tim/password@pdb1 AS SYSBACKUP"'

Oracle Database 12c:新功能 - 面向管理员 11-9


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle Database Vault 数据保护


和管理授权用户
SYS、SYSTEM、 领域
SYSBACKUP、SYSDG、 SYS 方案

Oracle University and Error : You are not a Valid Partner use only
SYSKM

使用系统权限或 需要领域授权
管理权限

HR_DBA
HR 数据

命令规则
SELECT
SQL> GRANT select any table to JOHN;
%
SQL> CONNECT JOHN AS SYSBACKUP
HR SQL> SELECT * FROM HR.EMP;
ORA-01031: insufficient privileges
Ruleset: Disabled

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

SYSBACKUP、SYSDG、SYSKM 权限和 Oracle Database Vault 保护


Oracle Database Vault 提供了两种主要的职责分离实施机制:
• 领域是对方案、方案对象或角色的功能分组。它们可以阻止具有系统权限的用户访
问受保护的对象。例如,除非得到授权,否则被授予 SELECT ANY TABLE 系统权
限的用户不能选择受领域保护的表。
• 命令规则控制特定的 SQL 命令在运行时的执行。具体地说,受命令规则保护的命令
仅在关联的规则集求值为 TRUE 时才会成功执行。
未将具有新管理权限的用户从领域或命令规则的实施中排除。
要授权具有 SYSBACKUP 管理权限的用户访问特定领域中受保护的对象,用户需要得到该
领域的授权。
幻灯片中的示例定义的命令规则通过 Disabled 规则集阻止对 HR 对象的任何 SELECT
操作,其中包括具有 SYSBACKUP 管理权限的用户。即使向用户授予了 SELECT ANY
TABLE 系统权限,此命令规则也适用。

Oracle Database 12c:新功能 - 面向管理员 11-10


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

答案:b
b. SYS
连接哪个用户?
a. SYSBACKUP
测验

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

如果要以 SYSBACKUP 用户身份连接,则需要 AS SYSBACKUP 子句。

Oracle Database 12c:新功能 - 面向管理员 11-11


在 Recovery Manager 中使用 CONNECT TARGET / 语句时

Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

答案:a
b. 错
a. 对
测验

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。


口令文件现在有两种用于处理新管理权限的格式。

Oracle Database 12c:新功能 - 面向管理员 11-12


Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

新增系统权限:PURGE DBA_RECYCLEBIN

清除所有循环使用的对象:
• 需要 SYSDBA 权限

Oracle University and Error : You are not a Valid Partner use only
SQL> CONNECT / AS SYSDBA 12c 之前版本

SQL> purge dba_recyclebin SQL 命令

• 不需要 SYSDBA 权限
• 使用新的系统权限:PURGE DBA_RECYCLEBIN
SQL> CONNECT system
SQL> grant PURGE DBA_RECYCLEBIN to dba_junior;

SQL> CONNECT dba_junior


SQL> purge dba_recyclebin;
DBA Recyclebin purged.

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

在 Oracle Database 11g 中,DBA 使用 PURGE 命令清除所有对象。此操作需要系统权限


SYSDBA,这在职责分离和最少权限方面非常不可取。
在 Oracle Database 12c 中,相同的操作不需要 SYSDBA 系统权限。它仅需要新增的
PURGE DBA_RECYCLEBIN 系统权限。

Oracle Database 12c:新功能 - 面向管理员 11-13


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

权限分析
提高数据库安全性:撤消未使用权限
• 分析已使用的权限以撤消不必要的权限

Oracle University and Error : You are not a Valid Partner use only
• 使用新程序包:DBMS_PRIVILEGE_CAPTURE

对 HR.EMP 的插入 SELECT ANY TABLE


对 HR.DEPT 的删除 EXECUTE ANY PROCEDURE
对 SALES.proc1 的执行
UNLIMITED TABLESPACE

限 限
权 权
的 的
使用 使用
APPS PUBLIC 已 未
角色 SELECT ANY TABLE

销售模块

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

权限过多难题
除了担心 SYSDBA 权限的使用以外,另一个主要的顾虑是现有的数据库和应用程序用户
拥有过多的权限。过多权限违反了最少权限原则。
要实现最少权限原则,需要确定未使用的权限。
权限分析
Oracle Database 12c 提供了一个用于分析所使用权限的新程序包。权限分析需要许可选
件 Oracle Database Vault。
• 可以通过权限分析策略来确定用于运行应用程序模块的对象权限和系统权限,或者
执行已定义的角色所使用的特定 SQL 语句或权限。
• 在分析期间,可以生成有关已使用权限和未使用权限的报告。
• 通过比较已使用和未使用的授予权限列表,该报告可以帮助安全负责人撤消不必要
的权限。

Oracle Database 12c:新功能 - 面向管理员 11-14


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

权限分析流
需要
CAPTURE_ADMIN 定义“分析”的类型 1 定义“分析”的条件
角色
• Database
• 无条件:所有权限
• Role • 角色:MGR_SALES、PUBLIC
• Context

Oracle University and Error : You are not a Valid Partner use only
• 条件:
• Role and Context 用户 = HR、SCOTT、OE
模块 = sales
DBMS_PRIVILEGE_CAPTURE.CREATE_CAPTURE

开始/停止分析使用的权限
2 DBMS_PRIVILEGE_CAPTURE.ENABLE_CAPTURE
DBMS_PRIVILEGE_CAPTURE.DISABLE_CAPTURE 3

4 报告使用的权限
DBMS_PRIVILEGE_CAPTURE.GENERATE_RESULT
DBA_USED_PUBPRIVS
DBA_USED_OBJPRIVS DBA_UNUSED_OBJPRIVS
DBA_USED_SYSPRIVS DBA_UNUSED_SYSPRIVS
DBA_USED_PRIVS DBA_UNUSED_PRIVS
DBA_USED_OBJPRIVS_PATH DBA_UNUSED_OBJPRIVS_PATH
DBA_USED_SYSPRIVS_PATH DBA_UNUSED_SYSPRIVS_PATH

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

权限分析类型和条件
创建分析时,首先需要定义要在已使用权限中分析的目标对象。可以通过设置分析类型来
实现这一点:
• 数据库分析:如果未提供条件,则会在整个数据库中分析已使用的权限(管理用户
使用的权限除外)。
• 角色分析:如果已定义角色,则会分析通过任何给定角色行使的权限。例如,如果
创建一个权限分析策略来分析 PUBLIC,则会分析直接和间接授予给 PUBLIC 的已
使用权限。
• 上下文特定分析:如果已定义上下文,则会分析通过给定应用程序模块或指定上下
文使用的权限。
不同条件可以通过“AND”和/或“OR”布尔运算符进行组合。
由于默认情况下不会启用已创建的策略,因此,下一步是启用该策略,以便开始分析已使
用的权限。经过一段时间后停止分析。请注意,收集的信息存储在 SYSAUX 表空间中。
如果捕获运行的时间较长,则 SYSAUX 表空间会增加。

Oracle Database 12c:新功能 - 面向管理员 11-15


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED


报告使用的权限
第三步是生成报告。报告包括两种结果:

Oracle Database 12c:新功能 - 面向管理员 11-16


• 已使用的权限显示在 DBA_USED_xxx 和 DBA_USED_xxx_PATH 视图中
未使用的权限显示在 DBA_UNUSED_xxx 和 DBA_UNUSED_xxx_PATH 视图中

Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

与已授予的
使用的权限结果 与已授予的
未使用权限比较。
未使用权限比较。

• 查看 SYSTEM 和 OBJECT 使用的权限:


SQL> select USERNAME, SYS_PRIV, OBJ_PRIV, OBJECT_OWNER, OBJECT_NAME
from DBA_USED_PRIVS ;

USERNAME SYS_PRIV OBJ_PRIV OBJECT_OWNER OBJECT_NAME

Oracle University and Error : You are not a Valid Partner use only
----------- ------------------ --------- ------------- ------------
JIM SELECT HR EMPLOYEES
JIM DELETE HR EMPLOYEES
TOM CREATE SESSION
TOM SELECT SH SALES
OE UPDATE HR DEPARTMENTS

• 查看 OBJECT 使用的权限的路径:
SQL> select USERNAME, OBJ_PRIV, OBJECT_NAME, PATH
from DBA_USED_OBJPRIVS_PATH where username in ('TOM','JIM')

USERNAME OBJ_PRIV OBJECT_NAME PATH


--------- --------- ------------- --------------------------------
OE UPDATE DEPARTMENTS GRANT_PATH('OE')
JIM DELETE EMPLOYEES GRANT_PATH('JIM', 'HR_MGR')
JIM SELECT EMPLOYEES GRANT_PATH('JIM', 'HR_MGR')
TOM SELECT SALES GRANT_PATH('TOM', 'SALES_CLERK')

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

在生成分析结果时,SYSTEM 和 OBJECT 使用的权限会填充视图(如


DBA_USED_SYSPRIVS 和 DBA_USED_OBJPRIVS)。
可以在 DBA_USED_PRIVS 视图中查看所有 SYSTEM 和 OBJECT 使用的权限。
如果需要知道向用户授予权限的情况,可通过 DBA_USED_OBJPRIVS_PATH 和
DBA_USED_SYSPRIVS_PATH 显示 PATH 列。
第二个示例显示了以下信息:
• OE 更新了 DEPARTMENTS 表中的行,因为直接向其授予了 OBJECT 权限 UPDATE。
• JIM 从 EMPLOYEES 表中删除了行,因为通过 HR_MGR 角色向其授予了 OBJECT 权
限 DELETE。
• JIM 从 EMPLOYEES 表中选择了行,因为通过 HR_MGR 角色向其授予了 OBJECT 权
限 SELECT。
• TOM 从 SALES 表中选择了行,因为通过 HR_MGR 角色向其授予了 OBJECT 权限
SELECT。

Oracle Database 12c:新功能 - 面向管理员 11-17


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

比较使用的权限和未使用的权限
与已授予的
与已授予的
未使用权限比较。
• 查看 SYSTEM 和 OBJECT 使用的权限: 未使用权限比较。

SQL> select USERNAME, SYS_PRIV, OBJ_PRIV, OBJECT_OWNER, OBJECT_NAME


from DBA_USED_PRIVS where username='JIM';

Oracle University and Error : You are not a Valid Partner use only
USERNAME SYS_PRIV OBJ_PRIV OBJECT_OWNER OBJECT_NAME
--------- --------- ---------- ------------- ---------
JIM SELECT HR EMPLOYEES
JIM DELETE HR EMPLOYEES

• 查看 SYSTEM 和 OBJECT 未使用的权限:


SQL> select USERNAME, OBJ_PRIV, OBJECT_NAME, PATH
from DBA_UNUSED_PRIVS where username='JIM';

USERNAME OBJ_PRIV OBJECT_NAME PATH


-------- -------- ------------- --------- --------------------
JIM INSERT EMPLOYEES GRANT_PATH('JIM','HR_MGR')
JIM UPDATE EMPLOYEES GRANT_PATH('JIM','HR_MGR')

• 确定是否需要撤消未使用的权限。 撤消未使用
撤消未使用
的权限。
的权限。

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

可以在 DBA_UNUSED_PRIVS 视图中查看所有已授予但未使用的 SYSTEM 和 OBJECT 权限。


如果比较已使用权限和未使用权限的列表,可以确定已授予但未使用的权限,并可确定是否
撤消未使用的权限。
在幻灯片上的示例中,JIM 对 HR.EMPLOYEES 表使用了 SELECT 和 DELETE 权限,但未
对同一个表使用 INSERT 或 UPDATE 权限。INSERT 和 UPDATE 权限是通过 HR_MGR 角色
授予的。

Oracle Database 12c:新功能 - 面向管理员 11-18


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

列出捕获
SQL> select NAME, TYPE, ENABLED, ROLES, CONTEXT
from DBA_PRIV_CAPTURES;

Oracle University and Error : You are not a Valid Partner use only
NAME TYPE ENA ROLES
------------------ ---------------- --- --------------
CONTEXT
--------------------------------------------------------------
All_privs DATABASE N
12.1.0.2
ORA$DEPENDENCY DATABASE N

Public_privs ROLE N ROLE_ID_LIST(1)

HR_SH_privs ROLE Y ROLE_ID_LIST(112, 113)

Privs_HR_OE_logged CONTEXT N
SYS_CONTEXT('USERENV','SESSION_USER')='HR' OR
SYS_CONTEXT('USERENV','SESSION_USER')='OE‘

HR_Sales_role ROLE_AND_CONTEXT N ROLE_ID_LIST(113)


SYS_CONTEXT('USERENV','SESSION_USER')='HR'

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

要查看创建的分析列表,可使用 DBA_PRIV_CAPTURES 字典视图。TYPE 列可存放四个


值:DATABASE、ROLE、CONTEXT 和 ROLE_AND_CONTEXT。在分析使用的权限时,
ENABLED 列设置为 Y。ROLES 列存放角色列表,CONTEXT 列存放条件。角色和条件是
在创建分析策略时定义的。
ORA$DEPENDENCY 是在启动 DATABASE 宽捕获并生成结果的情况下生成的默认捕获。
它包含用于编译依赖关系对象的所有权限。
如果数据库是 CDB,则在连接到的 PDB 中创建、启动、停止和生成报告。
也就是说,分析从创建并启用分析策略的 root 或 PDB 的会话中收集信息。它并非在分析
过程中收集所有容器的信息。

Oracle Database 12c:新功能 - 面向管理员 11-19


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

删除分析
1. 禁用分析。
SQL> exec dbms_privilege_capture.DROP_CAPTURE('Capture1')
BEGIN dbms_privilege_capture.DROP_CAPTURE('Capture1'); END;

Oracle University and Error : You are not a Valid Partner use only
*
ERROR at line 1:
ORA-47932: Privilege capture Capture1 is still enabled.
ORA-06512: at "SYS.DBMS_PRIVILEGE_CAPTURE", line 82
ORA-06512: at line 1

SQL> exec dbms_privilege_capture.DISABLE_CAPTURE('Capture1')


PL/SQL procedure successfully completed.

2. 删除分析。
SQL> exec dbms_privilege_capture.DROP_CAPTURE('Capture1')

PL/SQL procedure successfully completed.

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

要删除分析,请先禁用已经启动的策略。删除策略时,会同时删除与该权限策略关联的所
有已使用和未使用的权限记录。

Oracle Database 12c:新功能 - 面向管理员 11-20


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

测验

要撤消已授予但不必要的未使用权限,可使用权限分析。

Oracle University and Error : You are not a Valid Partner use only
以下顺序正确吗?请判断对错。
a. 设置分析策略类型(数据库、角色、上下文)。
b. 启动分析。
c. 停止分析。
d. 生成结果。
e. 在 DBA_USED_PRIVS 和 DBA_UNUSED_PRIVS 中查看
结果。

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

答案:对

Oracle Database 12c:新功能 - 面向管理员 11-21


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

12c 之前版本

PL/SQL 调用过程中的权限检查
定义者的权限过程 调用者的权限过程

U1 U1.Proc1 U1.Proc2 U1

Oracle University and Error : You are not a Valid Partner use only
select * from U2.T1; AUTHID CURRENT_USER
delete U3.T2; select * from U2.T1;
delete U3.T2;

HR SQL> execute U1.PROC1 SQL> execute U1.PROC2 OE

对 U2.T1 的 SELECT 对 U2.T1 的 SELECT


对 U3.T2 的 DELETE 对 U3.T2 的 DELETE

对 U1.PROC1 的 EXECUTE 对 U1.PROC2 的 EXECUTE

编译时的权限检查 运行时的权限检查

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

在 Oracle Database 11g 中,存储的 PL/SQL 单元的 AUTHID 属性会影响该单元在运行


时发出的 SQL 语句的名称解析和权限检查。
• AUTHID 值为 DEFINER(默认值)的单元称为定义者的权限单元。HR 调用
U1.PROC1 成功,因为该过程运行时使用的是其所有者 (U1) 的权限。
• AUTHID 值为 CURRENT_USER 的单元称为调用者的权限单元。OE 调用 U1.PROC2
成功,因为该过程运行时使用的是当前用户 (OE)(而不是所有者 (U1))的权限。在
这种情况下,在运行时执行权限检查。

Oracle Database 12c:新功能 - 面向管理员 11-22


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

PL/SQL 调用过程中的新权限检查
U1.Proc2
U1
AUTHID CURRENT_USER 对 U2.T1 的 SELECT
select * from U2.T1; 对 U1.PROC2 的 EXECUTE
对 U3.T2 的 DELETE

Oracle University and Error : You are not a Valid Partner use only
delete U3.T2;

OE SQL> execute U1.PROC2


ORA-06598: insufficient INHERIT PRIVILEGES privilege

• 运行时所需的其他权限检查:
– 检查传递到 AUTHID CURRENT_USER PL/SQL 例程中的
数据库用户的权限
– 检查通过 C 或 Java 例程传递到 AUTHID
CURRENT_USER callspec 的数据库用户的权限
• INHERIT PRIVILEGES 对象权限
• INHERIT ANY PRIVILEGES 系统权限

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

风险
低权限用户可以拥有调用者的权限过程;如果由高权限用户执行该过程,则可能会执行意
外的或恶意的操作。
如果不应有调用者的权限过程的其他过程调用了调用者的权限过程,则调用者的权限过程
可能会执行不当操作。
在 Oracle Database 11g 中,过程的调用者不能控制调用者权限的访问者。只有过程的所
有者才能控制权限的继承。
新权限检查
Oracle Database 12c 中的权限检查实施了新的限制,而不是一项新功能。目前的一些情
形,在过去不需要权限检查,而现在需要进行权限检查了。当用户运行调用者的权限过程
时,Oracle DB 会在启动或运行代码之前检查过程所有者的权限。所有者必须对进行调用
的用户拥有 INHERIT PRIVILEGES 对象权限,或者拥有 INHERIT ANY PRIVILEGES
权限。如果不是这样,则运行时系统会引发错误。

Oracle Database 12c:新功能 - 面向管理员 11-23


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

会话会暂时切换到将输入的例程视为定义者的权限的环境中。然后,会话会检查其拥有对
调用者的当前活动用户的 INHERIT PRIVILEGES 对象权限,或者检查其拥有 INHERIT
ANY PRIVILEGES 系统权限。随后,会话将还原到其之前的环境。这种将例程视为定义
者的权限的做法类似于编译过程中的例程处理方法。

Oracle University and Error : You are not a Valid Partner use only

Oracle Database 12c:新功能 - 面向管理员 11-24


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

INHERIT (ANY) PRIVILEGES 权限

• 发出调用的用户可以在运行调用者的权限过程时控制谁
可以访问其权限。

Oracle University and Error : You are not a Valid Partner use only
• 发出调用的用户仅将 INHERIT PRIVILEGES 对象权
限授予受信任的用户(对象为 USER)。
SQL> CONNECT oe
SQL> grant INHERIT PRIVILEGES ON USER oe TO u1;

SQL> select PRIVILEGE, TYPE, TABLE_NAME, GRANTEE


from DBA_TAB_PRIVS where grantee='U1';

PRIVILEGE GRANTEE TYPE TABLE_NAME GRANTEE


------------------ ----- ----------- -------
INHERIT PRIVILEGES USER OE U1

• 默认情况下,新用户信任调用权限过程的所有用户。
• INHERIT ANY PRIVILEGES 意指针对所有用户。

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

INHERIT PRIVILEGES 对象权限


此权限的优势在于它允许发出调用的用户在运行调用者的权限过程时控制谁可以访问其
权限。
SQL> CONNECT invoking_user
SQL> GRANT INHERIT PRIVILEGES ON USER inv_user TO proc_owner;
默认情况下,新用户信任调用权限过程的所有用户,因为 PUBLIC 被授予对 PUBLIC 的
INHERIT PRIVILEGES,因此也会对任何新用户授予该权限。
SQL> select PRIVILEGE, TYPE, TABLE_NAME, GRANTEE
from DBA_TAB_PRIVS where type='USER' and table_name='X';

PRIVILEGE TYPE TABLE_NAME GRANTEE


-------------------- ---------- ------------ ------------
INHERIT PRIVILEGES USER X PUBLIC
INHERIT ANY PRIVILEGES 系统权限
被授予 INHERIT ANY PRIVILEGES 系统权限的用户会继承针对所有用户的权限。
Oracle Database 12c:新功能 - 面向管理员 11-25
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

通过新的 BEQUEATH 视图进行权限检查


BEQUEATH DEFINER 视图 BEQUEATH CURRENT_USER 视图
U1.V_Def U1.V_Curr
U1 U1
CREATE VIEW u1.v_def CREATE VIEW u1.v_curr

Oracle University and Error : You are not a Valid Partner use only
BEQUEATH DEFINER BEQUEATH CURRENT_USER
AS select func1 AS select func1
from dual; from dual;
HR OE
select * from U1.V_Def; select * from U1.V_Curr;

对 U1.V_DEF 的 SELECT 对 U1.V_CURR 的 SELECT

HR select * from U1.V_Def;


1 row selected.

select * from U1.V_Curr;


OE ORA-06598: insufficient INHERIT PRIVILEGES privilege

SQL> grant INHERIT PRIVILEGES ON USER oe TO u1;

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

BEQUEATH 视图
Oracle Database 12c 引入了 BEQUEATH CURRENT_USER 视图;这为类似于存储的
PL/SQL 单元的此类型对象带来了一项安全优势。这些视图的部分行为类似于调用者的权
限,而不是所有者的权限。即,在调用 AUTHID CURRENT_USER 函数或者调用者的权限
PL/SQL 或 Java 函数时,当前方案、当前用户以及操作执行中当前启用的角色可以继承
自查询用户的环境。在此发行版中,BEQUEATH CURRENT_USER 视图只是调用者权限行
为的一个子集。
BEQUEATH CURRENT_USER 视图与现有视图的 BEQUEATH DEFINER 行为相反。
BEQUEATH 视图类型在 DBA_VIEWS 中的新 BEQUEATH 列中显示。
INHERIT PRIVILEGES 和 BEQUEATH CURRENT_USER 视图
BEQUEATH CURRENT_USER 视图的所有者必须对发出调用的用户拥有 INHERIT
PRIVILEGES 对象权限,或者拥有 INHERIT ANY PRIVILEGES 系统权限。

Oracle Database 12c:新功能 - 面向管理员 11-26


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

测验

选择执行调用者的权限过程时的正确说法。
a. 必须向发出调用的用户授予针对过程的用户所有者的

Oracle University and Error : You are not a Valid Partner use only
INHERIT PRIVILEGES 对象权限。
b. 发出调用的用户必须授予针对过程的用户所有者的
INHERIT PRIVILEGES 对象权限。
c. 过程的所有者必须授予针对发出调用的用户的
INHERIT PRIVILEGES 对象权限。
d. 必须向过程的所有者授予针对发出调用的用户的
INHERIT PRIVILEGES 对象权限。

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

答案:d

Oracle Database 12c:新功能 - 面向管理员 11-27


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

测验

在从 BEQUEATH CURRENT_USER 视图中选择时,请选择在

Oracle University and Error : You are not a Valid Partner use only
调用 AUTHID CURRENT_USER 函数时的正确说法。
a. 当前的方案、用户和启用的角色继承自进行查询的用户
的环境。
b. 当前的方案、用户和启用的角色设置为视图的所有者。

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

答案:a

Oracle Database 12c:新功能 - 面向管理员 11-28


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

小结

在本课中,您应该已经学会:
• 使用新增的管理权限,如 SYSBACKUP

Oracle University and Error : You are not a Valid Partner use only
• 创建口令文件以支持新权限
• 使用新增的系统权限 PURGE DBA_RECYCLEBIN
• 使用数据库权限分析
• 创建并启用权限分析
• 查看捕获结果以确定撤消未使用的权限
• 控制调用者的权限过程的权限
• 使用 INHERIT PRIVILEGES 权限
• 创建新的 BEQUEATH 视图
• 管理调用者的 BEQUEATH 视图权限行为

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle Database 12c:新功能 - 面向管理员 11-29


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

练习

• 11-1:管理包含 SYSBACKUP 条目的口令文件

Oracle University and Error : You are not a Valid Partner use only
• 11-2:捕获权限
• 11-3:通过角色捕获权限(可选)
• 11-4:捕获在上下文中使用的权限(可选)
• 11-5:对 AUTHID CURRENT_USER 过程使用
INHERIT PRIVILEGES 对象权限(可选)
• 11-6:使用 BEQUEATH CURRENT_USER 视图(可选)

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle Database 12c:新功能 - 面向管理员 11-30


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle 数据编写

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle Database 12c 新增功能和增强功能


Enterprise Manager Enterprise Manager Enterprise Manager
Cloud Control Database Express 其他工具
和其他工具

CDB 和 PDB 基础功能 CDB 和 PDB 创建 CDB 和 PDB 管理

Oracle University and Error : You are not a Valid Partner use only
热图和自动数据优化 联机数据文件移动
ADO 和存储
数据库中归档和期间有效性 期间历史记录

安全性 统一审计 权限分析 数据编写

HA RMAN

易管理性 DB 操作 实时 ADDM 比较时段 ADDM ADR


12.1.0.2 12.1.0.2

内存中列存储 整个数据库内存中高速缓存
性能 自动大表高速 12.1.0.2

缓存
SQL 优化 资源管理器 索引、表

数据泵、SQL*Loader 和外部表 分区
其他
12.1.0.2
JSON SQL

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle 数据编写 (Oracle Data Redaction) 是一项新功能,可以屏蔽敏感数据列,使应用


程序最终用户无法看到。这是通过在结果返回到应用程序之前即时修改 SQL 查询结果中
包含的敏感数据列实现的。不会在数据块中更新或存储数据。
数据编写需要许可选件 Oracle Advanced Security。
Oracle 数据编写完全不同于 Oracle 数据屏蔽 (Oracle Data Masking)。Oracle 数据屏蔽
通过使用屏蔽格式转换数据,并将屏蔽后的新数据存储在数据块中。

Oracle Database 12c:新功能 - 面向管理员 12-2


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

课程目标

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

Oracle University and Error : You are not a Valid Partner use only
• 描述 Oracle 数据编写
• 管理数据编写策略
• 在数据字典中查看编写策略信息

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

要全面了解 Oracle 数据编写新功能的用法,请参考 Oracle 文档中的以下指南:


• 《Oracle Database Security Guide 12c Release 1 (12.1)》中“Using Oracle Data
Redaction to Protect Sensitive Data”一章
• Oracle Database 2 Day 课程中的“Limiting Access to Sensitive Data Using Oracle
Data Redaction”
• 《Oracle Database PL/SQL Packages and Types Reference 12c Release 1 (12.1)》
中的“DBMS_REDACT”一章
参考 Oracle 学习库中提供的其他信息源:
• “Oracle Database 12c New Features Demo Series” 演示:
- Data Redaction Basics
• Oracle By Example (OBE):
- Protecting Data with Data Redaction

Oracle Database 12c:新功能 - 面向管理员 12-3


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle 数据编写:概览
• 基于用户名、IP 地址、应用程序上下文和其他因素的
动态数据编写
• 数据库中透明、一致的实施

Oracle University and Error : You are not a Valid Partner use only
• 对生产工作量没有明显影响
• 适用于呼叫中心、决策支持系统以及包含 PII、PHI 和
PCI 数据的系统
SELECT creditcard_no
FROM …
编写策略
执行查询
CREDITCARD_NO

XXXX-XXXX-XXXX-5100 5105-1051-0510-5100
XXXX-XXXX-XXXX-1118 5111-1111-1111 -1118
XXXX-XXXX-XXXX-5454 5454-5454-5454-5454

返回编写的数据 实施编写策略
敏感数据

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

当前,许多 Oracle DB 客户通过在每个应用程序中执行编写来阻止向最终用户显示敏感数


据。Oracle 数据编写将此功能从应用程序移到数据库。与在应用程序层对数据编写相比,
此方法有多个优势,并且可在各种应用情况下使用。
Oracle 数据编写是一种透明、灵活且简单的解决方案。该方法会在结果返回到应用程序之
前动态地修改 SQL 查询结果中包含的敏感数据列。这些列会依据提供有条件的编写的灵
活策略得到编写。这些策略是在数据库内部直接管理的。为了实现最大的透明度,编写会
保留返回的列数据类型和格式,并不在磁盘上或高速缓存中更改基础数据块。Oracle 数据
编写在设计上追求快速,以便在生产系统上使用。此外,它嵌入在数据库管理系统中,因
此不需要进行独立安装。

Oracle Database 12c:新功能 - 面向管理员 12-4


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle 数据编写可在许多情况下使用。可将其应用于一系列的打包应用程序和定制应用
程序以对应用程序屏幕、面板和报告进行编写。它可以帮助避免在现有呼叫中心、人力资
源、销售、财务和医疗保健应用程序中进行代码更改。这些应用程序会频繁地管理有法规
要求的支付卡信息 (payment card information, PCI)、受保护的健康信息 (protected
health information, PHI) 或可识别个人身份的信息 (personally identifiable information,
PII)。Oracle 数据编写还可用于决策支持系统;这些系统在单个资料档案库中聚集了大量
的多样化数据集以运行分析。

Oracle University and Error : You are not a Valid Partner use only
当应用程序发出查询时,会从数据库中检索数据,然后应用编写策略。编写会在所选数据
返回之前立即实施,并且仅在 SELECT 列表的最上层实施。

Oracle Database 12c:新功能 - 面向管理员 12-5


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle 数据编写和操作活动
不需要编写的操作活动:
• 备份和还原

Oracle University and Error : You are not a Valid Partner use only
• 导入和导出
• 打补丁和升级
• 复制

RMAN> BACKUP TABLESPACE example;


编写策略
执行命令
SSN DOB CODE
987-65-4320 01/19/70 881
987-65-4321 04/22/61 512
987-65-4322 11/04/73 909
987-65-4323 12/21/71 433
987-65-4320 01/19/70 881 987-65-4324 07/08/58 716
987-65-4321 04/22/61 512

备份中的值 敏感数据

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

不应对特定操作活动中检索的数据进行编写。以 SYS 用户身份进行的连接始终排除在编


写策略之外。数据泵之类的实用程序以 SYS 用户身份执行递归 SQL,因此不将编写策略
应用于导出和导入操作。
在此示例中,执行了备份 EXAMPLE 表空间的 RMAN 命令。从数据库检索数据,但不在
备份文件中进行编写。
注:在导出和导入操作中包括了与表和视图关联的 Oracle 数据编写策略。因此,当用户
查询导入的数据库中的对象时,会启用这些策略,数据会得到编写。

Oracle Database 12c:新功能 - 面向管理员 12-6


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

可用的编写方法

类型 说明

Oracle University and Error : You are not a Valid Partner use only
无 不执行编写。

完全 根据列数据类型将列编写为常量值。

部分 将用户指定的位置替换为用户指定的字符。

随机 保留数据类型,每次输出不同的值。

正则表达式 执行基于参数的“匹配和替换”。

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle 数据编写支持四种编写:完全、部分、随机和正则表达式。
提供对“无”编写类型的支持,以便创建编写策略定义并评估其对应用程序功能和性能的
影响。

Oracle Database 12c:新功能 - 面向管理员 12-7


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle 数据编写:示例

数据库中的数据 > 受编写的值

05/24/75 Î 01/01/01
完全编写

Oracle University and Error : You are not a Valid Partner use only
11 Rock Bluff Drive Î xxxxxxxxx

068-35-2299 Î ***-**-2299
部分编写
D1L86YZV8K Î D1******8K

94025-2450 Î 94025-[hidden]
正则表达式编写
Tom.Lee@acme.com Î [redacted]@acme.com

6011111111111117 Î 4222222222222226
随机编写
09/30/73 Î 11/30/85

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

此幻灯片提供了基于配置的编写类型的数据编写示例。本课稍后将提供有关定义编写类型
的更多详细信息。

Oracle Database 12c:新功能 - 面向管理员 12-8


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

什么是编写策略

编写策略决定:
• 编写的内容,通过以下项目指定:

Oracle University and Error : You are not a Valid Partner use only
– 方案名称 (OBJECT_SCHEMA)
– 对象名称 (OBJECT_NAME)
– 列名 (COLUMN_NAME)
• 编写的方式,通过以下项目指定:
– 函数类型 (FUNCTION_TYPE)
– 函数参数 (FUNCTION_PARAMETERS) 或正则表达式参数
(REGEXP_*)
• 编写的时机,在策略表达式 (EXPRESSION) 中指定
在创建策略时,只能指定一种“编写方式”。

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

要实施 Oracle 数据编写,需要定义一个编写策略以指定编写的内容、编写的应用方式以


及进行编写的时机。
• 首先,确定方案、表或视图以及要编写的列。
• 其次,指定要用于列的编写方法以及所有必需的参数。在首次创建策略时,只能设
置一个列。但是,以后可以修改策略以添加更多的列。如果不提供
FUNCTION_TYPE 值,则对指定的列使用完全编写。
• 最后,指定实施编写所必需满足的准确条件。例如,可以选择默认对列进行编写,
并仅对特定的用户或 IP 地址显示实际数据。可以通过使用逻辑运算符将其中多个条
件连接到一起。“When”条件为表或视图设置一次,因此它适用于添加到策略中的
所有列。
请注意,在定义安全策略时,最好创建一个白名单。通过白名单可以默认拒绝以及仅将授
权的例外添加到策略中。在编写 SQL 表达式中,可以插入负比较来构建白名单。可以指
定应该对与写入表达式的值不匹配的所有用户、IP 地址等执行编写。同时也支持黑名单
(与白名单相反)。

Oracle Database 12c:新功能 - 面向管理员 12-9


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED





限制:

不能对虚拟列执行编写。
不能对特定数据类型的列执行编写。
只能将 VPD 策略应用于尚未编写的列。
不能对 SYS 或 SYSTEM 方案对象执行编写。

Oracle Database 12c:新功能 - 面向管理员 12-10


Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

管理编写策略

• 使用 DBMS_REDACT 程序包中的过程管理编写策略:

Oracle University and Error : You are not a Valid Partner use only
– ADD_POLICY:将编写策略添加到表。
– DROP_POLICY:从表中删除编写策略。
– ALTER_POLICY:更改编写策略。
– ENABLE_POLICY:启用被禁用的编写策略。
– DISABLE_POLICY:禁用编写策略。
• 执行该过程需要对 DBMS_REDACT 有 EXECUTE 权限。
• Enterprise Manager Cloud Control 12c 支持 Oracle
数据编写。

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

使用 DBMS_REDACT PL/SQL 程序包及其过程可定义和管理编写策略。此外,还可以使用


Oracle Enterprise Manager Cloud Control 12c 来定义和管理编写策略。
要使用 DBMS_REDACT 程序包中的过程,必须拥有针对该程序包的 EXECUTE 权限。不需
要对在编写策略中指定的表或视图有任何权限。
最佳实践:要确保恰当地定义或更改策略,请将针对 DBMS_REDACT 程序包的 EXECUTE
权限限于需要执行数据编写的用户。

Oracle Database 12c:新功能 - 面向管理员 12-11


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

将编写策略应用于表或视图

为 HR.EMPLOYEES 表中的 SALARY 列定义编写策略:

Oracle University and Error : You are not a Valid Partner use only
DBMS_REDACT.ADD_POLICY
(policy_name => 'EMPSAL_POLICY',
object_schema => 'HR',
object_name => 'EMPLOYEES',
column_name => 'SALARY',
expression =>
'SYS_CONTEXT(''USERENV'',''SESSION_USER'')!=''HR-VP''',
function_type => DBMS_REDACT.FULL);

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

在此示例中,定义了一个针对 HR.EMPLOYEES 表中的 SALARY 列的编写策略


EMPSAL_POLICY。此策略指定对返回给除 HR-VP 外的所有用户的 SALARY 列值使用完
全编写。
REDACTION_POLICIES 和 REDACTION_COLUMNS 视图分别提供编写策略列表和受编写
的列。
REDACTION_VALUES_FOR_TYPE_FULL 视图显示完全编写的所有当前值。

Oracle Database 12c:新功能 - 面向管理员 12-12


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

完全编写:示例

数据定义 数据库中的数据 编写的数据

SSN VARCHAR2(11) 987-65-4320 ‘‘

Oracle University and Error : You are not a Valid Partner use only
987-65-4321 ‘‘

SSN NUMBER(9) 987654322 0


987654323 0

HIREDATE DATE 12-AUG-02 01-JAN-01


19-NOV-02 01-JAN-01

更改完全编写的默认值:
EXEC DBMS_REDACT.UPDATE_FULL_REDACTION_VALUES
(varchar_val => 'N');

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

使用完全编写可以将返回的数据编写为某个固定值。如示例中所示:
• 将字符数据编写为单个空格。
• 将数值数据编写为单个零。
• 将日期时间数据编写为 2001 年 1 月 1 日。
通过设置 FUNCTION_TYPE => DBMS_REDACT.FULL 指定完全编写。如果不在编写策
略中指定编写类型,则默认为完全编写。
使用 UPDATE_FULL_REDACTION_VALUES 过程可修改完全编写的默认显示值。在修改
了某个值后,必须重新启动数据库以使其生效。可通过查询
REDACTION_VALUES_FOR_TYPE_FULL 数据字典视图查找当前值。

Oracle Database 12c:新功能 - 面向管理员 12-13


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

部分编写:示例
CCN VARCHAR2(19)
3111 1111 1111 1117
数据定义
数据库中的数据

Oracle University and Error : You are not a Valid Partner use only
FUNCTION_PARAMETERS => 编写的数据
'VVVVFVVVVFVVVVFVVVV,
####-####-####-1117
VVVV-VVVV-VVVV-VVVV,
#,1,12'
编写策略参数

SSN NUMBER(9)
987654325
数据定义
数据库中的数据 编写的数据

FUNCTION_PARAMETERS => '9,1,5' 999994325

FUNCTION_PARAMETERS => DBMS_REDACT.REDACT_US_SSN_F5

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

通过设置 FUNCTION_TYPE => DBMS_REDACT.PARTIAL 指定部分编写。此外,还可


以指定参数以便仅对数据的一部分进行编写,保留部分原始数据。
幻灯片中的图形展示了使用一个输入参数来指定可以进行编写的格式字符 (F) 和值 (V)。
输出格式参数指定格式化字符的插入位置。另一个参数指示应使用的编写字符以及应编写
的值。
对于数值数据类型,仅可指定数字 0 至 9 作为编写字符。
对于日期数据类型,小写字母指示月份、日期、年份、小时、分钟和秒。每个字母后面的
值指定编写值。大写字母指示不对该元素执行编写。
在 CCN 示例中,VARCHAR2 列的前 12 个位置更改为 #,空白替换为 -,剩余的四个数字
保留原样。
在 SSN 数值示例中,前五个位置变成数字 9。

Oracle Database 12c:新功能 - 面向管理员 12-14


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

正则表达式

SSN VARCHAR2(11) 987-65-4325

Oracle University and Error : You are not a Valid Partner use only
数据定义 987-65-4326
数据库中的数据

REGEXP_PATTERN=
'(\d\d\d)-(\d\d)-(\d\d\d\d)',
REGEXP_REPLACE_STRING= XXX-XX-4325
'XXX-XX-\3', XXX-XX-4326
REGEXP_POSITION=1,
REGEXP_OCCURRENCE=0, 编写的数据
REGEXP_MATCH_PARAMETER='i'
编写策略参数

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

通过设置 FUNCTION_TYPE => DBMS_REDACT.REGEXP 指定正则表达式编写。


使用以下参数定义正则表达式编写:
• REGEXP_PATTERN 指定正则表达式,代表将进行编写的列数据以及描述必须匹配的
数据模式。在幻灯片上的示例中,\d 表示一个数字,而不是字母 d。整个模式由三
个数字组成,然后是一个 -、两个数字、一个 - 和四个数字。
• REGEXP_REPLACE_STRING 定义数据的替换方式。在幻灯片上的示例中,\3 表示
应保留第三组括号中的数据,而前两组数字应替换为 XXX-XX。
• REGEXP_POSITION 表示字符串搜索的开始位置。
• REGEXP_OCCURRENCE 指定搜索和替换操作的执行方式。使用 0 表示应替换出现的
所有匹配项。使用 n 表示应替换第 n 个出现的匹配项。
• REGEXP_MATCH_PARAMETER 指定文字以更改函数的默认匹配行为。此参数的行为
与用于 REGEXP_REPLACE SQL 函数时相同。有关详细信息,请参阅《Oracle
Database SQL Language Reference》。

Oracle Database 12c:新功能 - 面向管理员 12-15


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

修改编写策略
使用 DBMS_REDACT.ALTER_POLICY 过程按如下所示更改
现有的编写策略:
• 修改策略表达式。

Oracle University and Error : You are not a Valid Partner use only
• 修改指定列的编写类型。
• 修改指定列的函数参数。
• 将列添加到编写策略中。
• 从编写策略中删除列。
DBMS_REDACT.ALTER_POLICY
( policy_name => 'EMPSAL_POLICY',
object_schema => 'HR',
object_name => 'EMPLOYEES',
action => DBMS_REDACT.MODIFY_EXPRESSION,
expression =>
'SYS_CONTEXT(''USERENV'',''SESSION_USER'')!=''HR-DIR'''
)

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

使用 DBMS_REDACT.ALTER_POLICY 过程修改现有的编写策略。通过设置 ACTION 参数


指定修改类型。指定 EXPRESSION、COLUMN_NAME 和 FUNCTION_PARAMETERS 的值或
REGEXP_*,具体取决于 ACTION 中的值。
使用 DBMS_REDACT.ALTER_POLICY 过程可以:
• 通过为 ACTION 参数指定 DBMS_REDACT.MODIFY_EXPRESSION 修改策略表达式。
每个策略只能有一个策略表达式。因此,在修改策略表达式时,将替换现有的策略表
达式。
• 通过为 ACTION 参数指定 DBMS_REDACT.MODIFY_COLUMN 修改指定列的编写类型。
• 通过为 ACTION 参数指定 DBMS_REDACT.MODIFY_COLUMN 修改指定列的编写函数
参数。
• 通过为 ACTION 参数指定 DBMS_REDACT.ADD_COLUMN 将列添加到编写策略中。此
外,还必须指定编写类型及所有必需参数。
• 通过为 ACTION 参数指定 DBMS_REDACT.DROP_COLUMN 从编写策略中删除列。

Oracle Database 12c:新功能 - 面向管理员 12-16


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

从编写策略中排除用户

• 策略表达式中包含的条件可以允许用户看到实际数据。

Oracle University and Error : You are not a Valid Partner use only
• 从所有编写策略中排除 SYS。
• 授予 EXEMPT REDACTION POLICY 系统权限以将其
他用户从所有编写策略中排除。
• 最佳实践:
– 在策略表达式中使用默认拒绝(白名单)条件。
– 请慎重授予 EXEMPT REDACTION POLICY 权限以确保
恰当地实施编写策略。

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

从编写策略中排除 SYS 用户;该用户可以查看数据的实际值。


如果其他用户需要访问实际值,必须授予其 EXEMPT REDACTION POLICY 系统权限。此
权限将用户从所有编写策略中排除。
被授予 DBA 角色的用户也会从编写策略中排除,因为 DBA 角色包含
EXP_FULL_DATABASE 角色,而后者被授予了 EXEMPT REDACTION POLICY 系统权限。
因为应用程序可能需要执行涉及编写的源列的 CREATE TABLE AS SELECT 操作,因此可
以授予应用程序 EXEMPT DDL REDACTION POLICY 系统权限。

Oracle Database 12c:新功能 - 面向管理员 12-17


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

将 Oracle 数据编写
与其他 Oracle DB 安全解决方案结合使用
• 为不同的使用情形服务
• 补充其他 Oracle DB 安全解决方案,并可与这些解决方案
结合使用

Oracle University and Error : You are not a Valid Partner use only
Oracle Advanced Security 透明数据加密 (TDE)

Oracle Database Vault

Oracle Database Firewall

Oracle Audit Vault

Oracle Label Security (OLS)

Oracle 虚拟专用数据库 (VPD)

Oracle Enterprise Manager Data Masking Pack(Oracle Enterprise


Manager 数据屏蔽包)

Oracle Real Application Security (RAS)

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle 数据编写所服务的使用情形与其他 Oracle DB 安全解决方案不同,应视为是对它


们的补充。Oracle DB 安全产品和服务可以与 Oracle 数据编写结合使用以提供更安全的
环境。

Oracle Database 12c:新功能 - 面向管理员 12-18


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle DB 安全功能
Oracle DB 安全产品或功能 说明

Oracle Data Masking Pack 在将生产数据的副本分发到部署或测试环境之前,从物理上更改并


(Oracle 数据屏蔽包)

Oracle University and Error : You are not a Valid Partner use only
屏蔽生产代码

Oracle 虚拟专用数据库 动态地重写 SQL 查询以筛选返回的数据


可以防止返回特定的行;但对于列,只能将其设置为 NULL

Oracle Advanced Security 在不影响应用程序的情况下以透明的方式对存储中的数据进行加密


透明数据加密 (TDE) 和解密
不更改 SQL 查询结果
需要在数据库外部管理加密密钥

Real Application Security 强大的细粒度返回数据控制功能


需要采用编程框架和定制编码
适用于可以修改代码的应用情形

Oracle Database Vault 对高权限数据库用户帐户增加一层访问控制


禁止选定的操作并返回错误代码

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle Data Masking Pack(Oracle 数据屏蔽包)是 Oracle Enterprise Manager Cloud


Control 12c 的一项可选功能。通过以可逆的方式将原始敏感数据替换为虚假的数据,客
户可以与 IT 开发者及业务合作伙伴安心地共享数据。这为生产中的测试数据库预配提供
了符合规定的全程安全自动化。
使用 Oracle 虚拟专用数据库 (VPD) 可以创建安全策略来控制行和列级别的数据库访问。
VPD 实际上为对表、视图或应用 VPD 安全策略的同义词发出的 SQL 语句增加了一条动
态的 WHERE 子句。
可以使用 VPD 来编写列数据,但只能将列更改为 NULL,否则可能导致应用程序出错。
Oracle 数据编写和 VPD 是可以一起使用的相互补充的功能。例如,可以使用 VPD 过滤
查询返回的行,并使用 Oracle 数据编写对显示的列进行编写。

Oracle Database 12c:新功能 - 面向管理员 12-19


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

透明数据加密 (Transparent Data Encryption, TDE) 是 Oracle Advanced Security 的一项


功能。使用 TDE 可以对数据文件中存储的敏感数据加密。它使用存储在 Oracle Wallet 或
硬件安全模块 (Hardware Security Module, HSM) 中的 TDE 主加密密钥。
有关 TDE 的详细信息,请参阅《Oracle Database Advanced Security Administrator’s
Guide 12c Release 1》。
Oracle 数据编写和 TDE 是互相补充的功能。它们可以一起使用以保护数据库中存储的数
据,以及掩蔽查询返回的数据。

Oracle University and Error : You are not a Valid Partner use only
Oracle Database Real Application Security 是 Oracle Database 12c 的一项新功能。它是
一种数据库授权模式,支持声明性安全策略并可为多层应用程序实现端到端安全性。它提
供了一个保护数据库和应用程序用户社区安全的集成式解决方案。此外,它还改进了
Oracle DB 的安全体系结构,可以满足对为 Internet 开发的应用程序的现有及新兴的需求。

Oracle Database 12c:新功能 - 面向管理员 12-20


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

最佳实践:防止未经授权的策略修改和排除

• 限制对 DBMS_REDACT 程序包的 EXECUTE 权限。

Oracle University and Error : You are not a Valid Partner use only
• 限制 EXEMPT REDACTION POLICY 权限。
• 如果使用 Oracle Database Vault 来限制授权用户访问,
则可创建领域以达到以下目的:
– 进一步限制 DBMS_REDACT 程序包的执行以及 EXEMPT
REDACTION POLICY 权限的授予
– 限制对 REDACTION_POLICIES 和
REDACTION_COLUMNS 视图的访问

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

要防止未经授权的策略修改和排除,可限制对 DBMS_REDACT 程序包的 EXECUTE 权限的


授予以及 EXEMPT REDACTION POLICY 权限的授予。
Oracle Database Vault 甚至可限制高权限用户对特定的数据库区域的访问。如果使用
Oracle Database Vault,则可创建领域以进一步限制 DBMS_REDACT 程序包的执行以及
EXEMPT REDACTION POLICY 权限的授予。此外,还可以使用 Oracle Database Vault 限
制对 REDACTION_POLICIES 和 REDACTION_COLUMNS 视图的访问。
有关 Oracle Database Vault 的其他信息,请参阅《Implementing Oracle Database Vault》
课程以及《Oracle Database Vault Administrator’s Guide 12c Release 1》。

Oracle Database 12c:新功能 - 面向管理员 12-21


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

最佳实践:注意事项

• 选择列以进行有选择的编写;仅对需要的内容进行编写。

Oracle University and Error : You are not a Valid Partner use only
• 尽可能让策略表达式的逻辑保持简单。
• 在定义正则表达式策略时,让正则表达式保持简单。
• 部分和完全编写策略的性能通常比正则表达式策略高,
因为后者每次进行编写时都要进行编译。
• 在任何选定的列受保护的情况下,不能执行 CTAS 操作。
• 对一个表或视图只能应用一个策略。

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

为了获得最大性能,请仅对需要的列进行编写,并让策略表达式和正则表达式中的逻辑尽
可能保持简单。请注意,每行处理时间(CPU 时间)会随着指定的表或视图中编写的列
的增加而增加。此外,每次执行查询也会发生一次策略表达式求值。因此,需要重复查询
以一次提取一行数据(而不是一次提取多行)的应用程序可以检测编写的开销。

Oracle Database 12c:新功能 - 面向管理员 12-22


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED




管理数据编写策略
描述 Oracle 数据编写
在本课中,您应该已经学会:
小结

在数据字典中查看编写策略信息

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle Database 12c:新功能 - 面向管理员 12-23


Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED




12-3:清除编写策略
12-1:使用完全数据编写
12-2:使用部分数据编写(可选)
练习 12:概览

12-4:更改完全编写的默认值(可选)

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle Database 12c:新功能 - 面向管理员 12-24


Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

高可用性
课程单元

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。


Recovery Manager:新增功能

Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle Database 12c 新增功能和增强功能


Enterprise Manager Enterprise Manager Enterprise Manager
和其他工具 Cloud Control Database Express 其他工具

CDB 和 PDB 基础功能 CDB 和 PDB 创建 CDB 和 PDB 管理

热图和自动数据优化 联机数据文件移动

Oracle University and Error : You are not a Valid Partner use only
ADO 和存储
数据库中归档和期间有效性 期间历史记录

安全性 统一审计 权限分析 数据编写

HA RMAN

易管理性 数据库操作 实时 ADDM 比较时段 ADDM ADR


12.1.0.2 12.1.0.2

内存中列存储 整个数据库内存中高速缓存
性能 自动大表 12.1.0.2

高速缓存
SQL 优化 资源管理器 索引、表

数据泵、SQL*Loader 和外部表 分区
其他
12.1.0.2
JSON SQL

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Recovery Manager 有几项增强功能。

Oracle Database 12c:新功能 - 面向管理员 13-3


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

课程目标

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

Oracle University and Error : You are not a Valid Partner use only
• 描述新的 RMAN 增强功能
• 执行跨平台数据传输
• 使用表恢复

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

要全面了解 Oracle Recovery Manager,请参阅 Oracle 文档中的以下指南:


• 《Oracle Database Administration Guide 12c Release 1 (12.1)》-“Transporting
Data”
• 《Oracle Database Backup and Recovery User’s Guide 12c Release 1 (12.1)》-
“Configuring Privilege and Role Authorization”
• 《Oracle Database Backup and Recovery Reference 12c Release 1 (12.1)》
• 《Oracle Database Security Guide 12c Release 1 (12.1)》- BACKUP, RESTORE
and RECOVER
其他信息来源:
• Oracle 学习库:Oracle Database 12c New Features Demo Series 演示:
- Transporting Data
- Table Recovery
• MOS 简讯:“Reduce Transportable Tablespace Downtime using Cross Platform
Incremental Backups(文档 ID 1389592.1)”
• Oracle 技术网文章:Back Up a Thousand Databases Using Enterprise Manager
Cloud Control 12c
Oracle Database 12c:新功能 - 面向管理员 13-4
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

RMAN
RMAN 增强功能
增强功能
SYSBACKUP
SYSBACKUP
DBA 职责分离 RMAN
RMAN SQL
RMAN
SQL
RMAN DESCRIBE
DESCRIBE
多段
多段
复制
复制
第三方
第三方

介绍特定于任务的最少权限

Oracle University and Error : You are not a Valid Partner use only
管理权限 SYSBACKUP
• 包括用于备份和恢复的权限(连接到关闭的数据库)
• 不包括数据访问权限,例如 SELECT ANY TABLE
• 授予在安装数据库期间创建的 SYSBACKUP 用户
• 可以由 SYSBACKUP 授权用户显示用于 RMAN 连接

% rman TARGET '"john@orcl AS SYSBACKUP"'


connected to target database: ORCL (DBID=1297344416)

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle Database 12c 通过引入不需要 SYSDBA 管理权限的特定于任务的最少权限管理权


限为 Oracle DB 提供了数据库管理 (DBA) 职责分离支持。Recovery Manager 中用于进行
连接并执行命令的新权限是 SYSBACKUP 权限。
如果您在多租户容器数据库中工作,则 CDB 的每个 PDB 都可以创建一个本地用户并授予
该用户 SYSBACKUP 权限。该用户可以连接到 PDB 并执行 PDB 备份,并且仅能为其连接
到 PDB 执行备份。
$ rman TARGET '"tim/password@pdb1 AS SYSBACKUP"'
在这种情况下,要备份整个数据库,请使用不含数据库名称的 BACKUP DATABASE 命令。
不允许使用 BACKUP PLUGGABLE DATABASE 命令。

Oracle Database 12c:新功能 - 面向管理员 13-5


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

RMAN
RMAN 增强功能
增强功能
SYSBACKUP
SYSBACKUP
在 RMAN 中使用 SQL RMAN
RMAN SQL
RMAN
SQL
RMAN DESCRIBE
DESCRIBE
多段
多段
复制
复制
• 不需要 SQL 前缀和引号 第三方
第三方

• 提供了 SQL*Plus DESCRIBE 功能

Oracle University and Error : You are not a Valid Partner use only
• 早期发行版:
RMAN> sql 'ALTER TABLESPACE users
ADD DATAFILE ''/testdata/users02.dbf'' SIZE 10M';

• 使用 Oracle Database 12c 时


RMAN> ALTER TABLESPACE users
ADD DATAFILE '/testdata/users02.dbf' SIZE 10M;

RMAN> SELECT NAME, DBID, LOG_MODE FROM V$DATABASE;

RMAN> DESC tab1


Name Null? Type
--------------------------------- -------- -------------------
TEST_NAME VARCHAR2(128)

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

已知功能
可以从 RMAN 命令行执行 SQL 命令和 PL/SQL 过程。在 Oracle Database 12.1 之前的
版本中,这需要使用 SQL 前缀和引号,如第一个添加数据文件示例中所示。
新增功能
现在,不需要在命令前使用 SQL 关键字,便可以在 RMAN 中发出大多数 SQL 命令。如
第二个示例中所示,这更容易编写。
一个简单 SELECT 命令的示例:
RMAN> select sysdate from dual;
SYSDATE
---------
TODAY
还可以使用缩写版本 DESC 或完整拼写的 DESCRIBE 来列出表或视图的列定义,如幻灯
片中所示。
可以在《Oracle Database Backup and Recovery Reference 12c Release 1》中的
“RMAN Commands - SQL”一章中找到 SQL 命令的列表。

Oracle Database 12c:新功能 - 面向管理员 13-6


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

RMAN
RMAN 增强功能
增强功能
SYSBACKUP
SYSBACKUP
备份和还原非常大的文件 RMAN
RMAN SQL
RMAN
SQL
RMAN DESCRIBE
DESCRIBE
多段
多段
单个数据文件的多段备份: 复制
复制
第三方
第三方
• 由 RMAN 创建,具有指定的大小值
• 用于备份集和映像副本

Oracle University and Error : You are not a Valid Partner use only
• 用于完全和增量备份
优点:
• 减少映像副本创建时间
• 独立进行处理(串行或并行)
• 使 Exadata 受益
要求和限制:
• COMPATIBLE=12.0
• 不适用于控制文件或 spfile
• 不适用于大的并行度值

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

已知功能
Oracle 数据文件最大可以为 128 TB。默认情况下,RMAN 备份的最小单元是整个文件。
RMAN 可以选择将大文件拆分为多个段,然后单独对这些段进行备份和还原。您可以通
过 SECTION SIZE 子句启动多段备份的创建。
这有何帮助
多段映像副本降低了大型数据文件的映像副本创建时间,尤其是可以使 Exadata 环境受
益。这还可以降低非备份用例的完成时间。例如,在可传输表空间移植过程中复制文件,
或者使用活动数据库复制创建克隆。
每个段都可以单独处理,可以按顺序或并行处理。将文件备份为各单独段可以提高备份操
作的性能,还允许重新启动大型文件备份。
多段备份的要求和限制
• 您只能为数据文件创建多段增量备份,而不能为其他数据库文件(例如控制文件或
spfile)创建。
• 对驻留在少量磁盘上的大型文件进行备份时,不宜使用很大的并行度值,因为这会
违背并行操作的初衷;同时对同一磁盘设备进行多个访问会导致争用。

Oracle Database 12c:新功能 - 面向管理员 13-7


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

RMAN
RMAN 增强功能
增强功能
SYSBACKUP
SYSBACKUP
RMAN 复制增强功能 RMAN
RMAN SQL
RMAN
SQL
RMAN DESCRIBE
DESCRIBE
多段
多段
复制
复制
第三方
第三方

活动数据库复制的新功能:

Oracle University and Error : You are not a Valid Partner use only
• 默认情况下对活动复制使用备份集
• 可选择压缩、段大小和加密
• 提供了用于在数据库处于已装载但未打开状态时结束
数据库复制的选项
• 复制可插入数据库

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

活动数据库复制流程提供了额外的选项。
RMAN DUPLICATE 命令允许复制多租户容器数据库和可插入数据库。

Oracle Database 12c:新功能 - 面向管理员 13-8


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

12c 之前版本

复制活动数据库
• 通过 Enterprise Manager 或 RMAN 命令行
• 通过网络(使用 FROM ACTIVE DATABASE 子句)
• 通过定制 SPFILE

Oracle University and Error : You are not a Valid Partner use only
• 数据文件
源实例 辅助实例 • 控制文件
• SPFILE
备份数据 • 归档日志副本

源数据库 副本数据库
连接 连接
目标 辅助实例

源主机 目标主机

RMAN 客户机

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

关于复制活动数据库的已知功能
您可以使用 Enterprise Manager 或 RMAN DUPLICATE 命令的 FROM ACTIVE
DATABASE 子句指示源数据库将其自己的“克隆”直接发送到辅助实例。
此操作不需要也不使用预先存在的备份。使用 RMAN DUPLICATE 命令的 FROM
ACTIVE DATABASE 子句时,源数据库将创建联机映像副本并直接通过 Oracle Net 传输
该副本(它们不写入到磁盘)。源数据库可以处于打开状态,也可以处于已装载状态。
RMAN 作为 TARGET 连接到源数据库实例并作为 AUXILIARY 连接到辅助实例(如幻灯
片中所示)。
必需的文件(数据文件、控制文件、SPFILE 和归档日志副本)将通过实例间网络连接从
源复制到辅助实例。RMAN 随后使用“内存脚本”(仅包含在内存中)完成恢复并打开
数据库。
此活动数据库复制方法称为基于推送的方法。

Oracle Database 12c:新功能 - 面向管理员 13-9


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

新增功能

默认情况下对活动复制使用备份集:
• 原来的基于映像副本的“推送”流程变为基于备份集的

Oracle University and Error : You are not a Valid Partner use only
“拉取”流程。
• 使用某个子句时的自动“拉取”流程:
– 压缩
– 段大小
数据在传输之前在源数据库上进行加密。
– 加密
RMAN> SET ENCRYPTION …;
RMAN> DUPLICATE TARGET DATABASE TO orcl2
FROM ACTIVE DATABASE
[USING BACKUPSET]
[SECTION SIZE …]
[USING COMPRESSED BACKUPSET] …;

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

原来的“推送”流程基于映像副本。
使用 Oracle Database 12c 时,“拉取”(或还原)流程基于备份集。首先,将与源数据
库建立连接。然后,辅助实例将从源数据库检索必需的数据库文件作为备份集。还原操作
是从辅助实例执行的。因此,在源数据库上将使用更少的资源。目标实例和辅助实例上都
需要 TNS 连接。
RMAN 将根据 DUPLICATE 子句以动态方式确定要使用哪个流程(推送或拉取)。这将
确保现有的定制脚本继续工作。
• 当指定了 USING BACKUPSET 时,RMAN 使用拉取方法。
• 当在 DUPLICATE 命令之前指定了 SET ENCRYPTION 时,RMAN 将自动使用拉取
方法并创建备份集。发送到目标的备份是加密的。
• SECTION SIZE 子句将数据文件划分为很多子段,这些子段在辅助数据库上通过多
个通道并行还原。要有效地使用并行,请分配多个 AUXILIARY 通道。
• 使用 USING COMPRESSED BACKUPSET 子句时,文件将作为压缩的备份集进行传
输。RMAN 在创建备份时使用未使用块压缩功能,因此减小了通过网络传输的备份
的大小。

Oracle Database 12c:新功能 - 面向管理员 13-10


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

NOOPEN 选项

用于在数据库处于已装载但未打开状态时结束数据库复制的

Oracle University and Error : You are not a Valid Partner use only
选项:
• 默认情况下,它使用 RESETLOGS 选项打开副本数据库,
并且为副本数据库创建联机重做日志文件。
• 使用 NOOPEN 选项,流程将在副本数据库处于 MOUNT
模式的情况下完成。
潜在的 NOOPEN 用例:
• 移动数据库的位置(例如,移动到 ASM)
• 升级数据库(在运行升级脚本之前,禁止通过 resetlogs
打开数据库)

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

您可以出于各种原因使用 RMAN 复制数据库。在早期版本中,恢复的副本数据库自动打


开。默认情况下,Oracle Database 12c 中仍然保留了此功能。
新增功能是您可以在数据库处于已装载但未打开状态的情况下完成复制流程。这在下列情
况下非常有用:当尝试打开数据库时产生了错误时以及希望修改很难以其他方式修改的初
始化设置时。例如,您可能希望将数据库的位置移动到 ASM。此外,在执行升级时,在
运行升级脚本之前禁止通过 resetlogs 打开数据库。
NOOPEN 选项允许复制功能在升级过程中创建一个新数据库,并使该数据库保留在准备就
绪状态,可以在升级模式下打开并且为以后执行升级脚本做好了准备。

Oracle Database 12c:新功能 - 面向管理员 13-11


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

复制多租户容器数据库
• 单个可插入数据库:
RMAN> DUPLICATE DATABASE TO cdb1 PLUGGABLE DATABASE pdb1;

Oracle University and Error : You are not a Valid Partner use only
• 多个可插入数据库:
RMAN> DUPLICATE DATABASE TO cdb1
PLUGGABLE DATABASE pdb1, pdb3;

• 除了一个可插入数据库之外的所有可插入数据库:
RMAN> DUPLICATE DATABASE TO cdb1
SKIP PLUGGABLE DATABASE pdb3;

• 一个 PDB 和其他 PDB 的表空间:


RMAN> DUPLICATE DATABASE TO cdb1
PLUGGABLE DATABASE pdb1
TABLESPACE pdb2:users;

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

RMAN 允许您使用 DUPLICATE 命令复制多租户容器数据库,包括所有或个别 PDB。


当复制某个可插入数据库时,默认情况下,RMAN 将复制包含该可插入数据库的多租户
容器数据库的根和种子数据库。
第一个示例展示了如何复制单个可插入数据库,第二个示例展示了如何复制一组可插入数
据库,第三个示例展示了如何复制多租户容器数据库中的所有数据库(一个可插入数据库
除外),最后一个示例展示了如何复制一个可插入数据库内的一组表空间。
您必须作为被授予了 SYSDBA 或 SYSBACKUP 角色的用户登录到根目录。
可以在《Oracle Database Backup and Recovery User’s Guide 12c Release》第 1 章
“Duplicating a Database”中找到整个过程。

Oracle Database 12c:新功能 - 面向管理员 13-12


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

RMAN
RMAN 增强功能
增强功能
SYSBACKUP
SYSBACKUP
使用第三方快照恢复数据库 SQL
SQL
DESCRIBE
DESCRIBE
多段
多段
复制
复制
第三方
第三方
• 使用最新的快照恢复数据库:
RMAN> RECOVER DATABASE;

Oracle University and Error : You are not a Valid Partner use only
• 使用特定的快照恢复数据库:
SQL> RECOVER DATABASE UNTIL TIME '02/15/2012 11:00:00'
SNAPSHOT TIME '02/15/2012 10:00:00';

• 使用归档重做日志文件执行部分恢复:
SQL> RECOVER DATABASE UNTIL CANCEL SNAPSHOT TIME
'02/15/2012 10:00:00';

• 快照必须满足以下要求才能在恢复操作中使用:
– 数据库在快照创建期间处于崩溃一致状态。
– 快照保留了每个文件的写入顺序。
– 存储时间是快照的完成时间。

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

您可以使用第三方技术在不将数据库或相关数据文件置于备份模式的情况下创建存储快照。
快照技术会存储快照的完成时间。
使用快照进行恢复
快照必须满足幻灯片中描述的要求才能在恢复操作中使用。请确保数据库快照可以使用。
如果在快照创建期间进行了结构更改,则用于恢复的快照不可用。对数据文件和表空间执
行的操作(例如 OFFLINE、READONLY、ONLINE、DROP、RENAME、SHRINK 和 ADD)
会进行数据库结构更改,因此会导致快照无效。
可以在使用新子句 SNAPSHOT TIME 的情况下使用 RECOVER 命令将快照恢复到一个一致
的时间点。SNAPSHOT TIME 用来通知数据库所有文件都已从一致的快照进行了还原。
• 第一个恢复示例使用最新的快照。
• 第二个示例使用特定的快照,该快照创建于 2012 年 2 月 15 日上午 10 点。UNTIL
TIME 子句可以指定快照之后的任何时间。
• 第三个示例使用在 2012 年 2 月 15 日上午 10 点创建的快照的归档重做日志文件执行
部分恢复。
展示了 UNTIL 子句用法的第二个和第三个示例仅在 SQL*Plus 中有效。

Oracle Database 12c:新功能 - 面向管理员 13-13


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

答案:b
b. 错
a. 对
测验

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle Database 12c:新功能 - 面向管理员 13-14


在 Oracle Database 12c 中,多段备份只能用于备份集。

Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

跨平台传输数据

跨平台传输数据库、数据文件和表空间:

Oracle University and Error : You are not a Valid Partner use only
• 在早期版本中,使用映像副本 12c 之前版本

• 在 Oracle Database 12c 中,使用备份集或映像 12c

副本
• 允许不一致的表空间备份
优点:
• 减少了用于平台移植的停机时间
• 可以选择压缩和多段
• 不编入控制文件中,不用于常规还原操作

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

已知功能
RMAN 允许您跨平台传输数据库、数据文件和表空间。这包括跨具有不同 endian 格式的
平台传输表空间。您可以传输整个数据库,从而在目标主机或源主机上转换整个数据库,
只要源平台和目标平台共享相同的 endian 格式。在早期版本中,跨平台数据传输仅使用
映像副本(通过使用 RMAN CONVERT 命令)。
新增功能
从 Oracle Database 12c 开始,您可以使用备份集跨平台传输数据。您还可以使用映像副
本和备份集创建跨平台不一致表空间备份。不一致表空间备份是在表空间未处于只读模式
时创建的备份。此方法是通过新子句 ALLOW INCONSISTENT 实现的。
使用备份集时,您可以选择压缩和多段选项,这降低了总体传输时间。
注:RMAN 不会将为跨平台传输创建的备份集编入控制文件中。这确保了在常规还原操
作期间不使用为跨平台传输创建的备份集。

Oracle Database 12c:新功能 - 面向管理员 13-15


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

数据传输
1
• COMPATIBLE=12.0(或更大值)
先决条件 • 只读模式,用于创建跨平台数据库备份
• 处于读写模式的数据库,用于创建跨平台表空间备份

Oracle University and Error : You are not a Valid Partner use only
源数据库 Endian
FOR TRANSPORT 转换

元数据
5 元数据

2 备份数据

目标? 4
数据传输

TO PLATFORM

目标数据库
3 备份数据

Endian
转换

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

1. 在创建跨平台数据传输备份集之前,必须满足以下先决条件:
- COMPATIBLE 参数必须设置为 12.0 或更大值。
- 要传输整个数据库,源数据库必须以只读模式打开,因为 SYS 和 SYSAUX 表空
间会参与传输。
- 要仅传输表空间,请使用 DATAPUMP 子句。数据库必须以读写模式打开,以便
数据泵可以访问元数据。
2. 有两种备选方法可以影响 endian 转换的位置。
FOR TRANSPORT 子句创建跨平台备份,表示该备份集可以传输到任何目标数据库。
TO PLATFORM 子句指示在源数据库上为特定平台执行转换并且可以在该特定平台上
还原。如果您仅传输表空间,则需要在为处于只读模式的表空间执行最后的增量备份
期间使用 DATAPUMP 子句来为所传输的表空间创建导出转储文件。
3. 使用 BACKUP FOR TRANSPORT 或 TO PLATFORM 命令在源主机上创建一个跨平台
数据备份集。
4. 使用任何操作系统实用程序传输所创建的备份集(和转储文件)。
5. 使用 RESTORE FOREIGN 命令在目标主机上还原跨平台数据备份集。

Oracle Database 12c:新功能 - 面向管理员 13-16


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

传输数据库:流程步骤 - 1
1. 验证先决条件:
– COMPATIBLE:大于或等于 12.0
– OPEN_MODE:READ ONLY

Oracle University and Error : You are not a Valid Partner use only
源数据库
2. 启动一个 RMAN 会话以连接到源数据库。
3. 从 V$TRANSPORTABLE_PLATFORM 视图查询目标平台
的确切名称。
4. 备份源数据库,包括控制文件:
– 源主机上的转换
RMAN> BACKUP TO PLATFORM 'Linux x86 64-bit'
FORMAT '/bkp_dir/transp.bck' DATABASE;

– 目标主机上的转换
RMAN> BACKUP FOR TRANSPORT FORMAT '/bkp_dir/transp.bck'
DATABASE;

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

1. 验证先决条件(如果传输整个数据库,则源数据库必须以只读模式打开)。
2. 启动一个 RMAN 会话并连接到目标实例。
3. 要执行跨平台数据库传输,需要具有要将数据传输到的目标平台的确切名称。
SELECT PLATFORM_ID, PLATFORM_NAME, ENDIAN_FORMAT
FROM V$TRANSPORTABLE_PLATFORM
WHERE UPPER(PLATFORM_NAME) LIKE '%LINUX%';
4. 使用 BACKUP 命令及 TO PLATFORM 或 FOR TRANSPORT 备份源数据库。FORMAT
子句指示包含跨平台数据库传输所需数据的备份集在源主机上的存储目录。
在第一个示例中,转换将发生在源主机上并且将为 Linux x86 64 位平台转换存储在
/bkp_dir 目录中的文件。
在第二个示例中,转换将在执行还原命令期间发生在目标主机上并且存储在源主机
上的 /bkp_dir 目录中的文件尚未转换。

Oracle Database 12c:新功能 - 面向管理员 13-17


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

传输数据库:流程步骤 - 2
5. 从源数据库断开连接。
6. 将备份集移动到目标主机。

Oracle University and Error : You are not a Valid Partner use only
7. 连接到作为 TARGET 的目标主机。 目标数据库

8. 使用 RESTORE 命令还原完整备份集。
– 当转换发生在源主机上时
RMAN> RESTORE
FROM PLATFORM 'Solaris Operating System (x86-64)'
ALL FOREIGN DATAFILES
FORMAT '/oradata/datafiles/df_%U'
FROM BACKUPSET '/bkp_dir/transp.bck';

– 当转换发生在目标主机上时
RMAN> ALTER SYSTEM SET DB_CREATE_FILE_DEST='/oradata/orcl';
RMAN> RESTORE FOREIGN DATABASE TO NEW
FORMAT '/oradata/datafiles/df_%U';

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

5. 从源数据库断开连接。
6. 将通过 BACKUP 命令创建的备份集移动到目标主机。您可以使用操作系统实用程序
将备份集从源主机移动到目标主机。
7. 连接到作为 TARGET 的目标主机,即必须向其传输数据库的主机。确保目标数据库
未装载。
8. 如幻灯片中所述使用 RESTORE 命令还原目标数据库中的数据。

Oracle Database 12c:新功能 - 面向管理员 13-18


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

传输表空间:流程步骤 - 1
元数据
1. 验证先决条件。
2. 在源数据库中启动一个 RMAN 会话。
3. 查询目标平台的确切名称。

Oracle University and Error : You are not a Valid Partner use only
源数据库
4. 将表空间置于只读状态。
RMAN> ALTER TABLESPACE test READ ONLY;

5. 执行可跨平台传输的备份和数据泵导出。
– 源主机上的转换
RMAN> BACKUP TO PLATFORM 'HP Tru64 UNIX'
FORMAT '/bkp/test.bck'
DATAPUMP FORMAT '/bkp/test.dmp' TABLESPACE test;
– 目标主机上的转换
RMAN> BACKUP FOR TRANSPORT FORMAT '/bkp/test.bck'
DATAPUMP FORMAT '/bkp/test.dmp' TABLESPACE test;

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

1. 验证先决条件。源数据库必须以读写模式打开。
2. 启动一个 RMAN 会话并连接到目标实例。
3. 要执行跨平台表空间传输,需要具有要将数据传输到的目标平台的确切名称。
SELECT PLATFORM_ID, PLATFORM_NAME, ENDIAN_FORMAT
FROM V$TRANSPORTABLE_PLATFORM
WHERE UPPER(PLATFORM_NAME) LIKE '%LINUX%';
4. 将表空间置于只读状态。
5. 使用 BACKUP 命令及 TO PLATFORM 或 FOR TRANSPORT 指示转换发生在何处。使
用 DATAPUMP 子句指示必须为表空间创建导出转储文件以导出表空间元数据。
注:使用新的 BACKUP 子句 ALLOW INCONSISTENT,您可以备份未处于只读模式的表
空间。虽然创建了备份,但您无法将这些表空间直接插入到目标数据库中,因为它们不一
致。您必须在之后这些表空间处于只读模式时创建它们的增量备份。此增量备份必须包含
DATAPUMP 子句,该子句创建表空间元数据的导出转储文件。

Oracle Database 12c:新功能 - 面向管理员 13-19


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

传输表空间:流程步骤 - 2
元数据
6. 将备份集和数据泵导出转储文件移动到
目标主机。

Oracle University and Error : You are not a Valid Partner use only
7. 作为 TARGET 连接到目标主机。 目标数据库
8. 还原可跨平台传输的备份和数据泵导出。
– 当转换发生在源主机上时
RMAN> RESTORE FOREIGN TABLESPACE test
FORMAT '/oracle/test.dbf' FROM BACKUPSET '/bkp/test.bck'
DUMP FILE FROM BACKUPSET '/bkp/test.dmp' ;

– 当转换发生在目标主机上时
RMAN> RESTORE FOREIGN TABLESPACE test TO NEW
FROM BACKUPSET '/bkp/test.bck'
DUMP FILE FROM BACKUPSET '/bkp/test.dmp' ;

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

6. 从源数据库断开连接并将备份集和数据泵导出转储文件移动到目标主机。您可以使
用操作系统实用程序将备份集和转储文件从源主机移动到目标主机。
7. 作为 TARGET 连接到必须将表空间传输到的目标主机。确保目标数据库以读写模式
打开。
8. 如幻灯片中所示,使用 RESTORE 命令在目标数据库中还原可跨平台传输的备份,其
中,FOREIGN TABLESPACE 是 HP 源数据文件。FORMAT 指示要将从备份集检索
的文件还原到何处。使用 DUMP FILE FROM BACKUPSET 还原将表空间插入到目
标数据库时所需的转储文件中的元数据。
注:您可以使用允许您执行以下操作的方法:
1. 使用新子句 ALLOW INCONSISTENT 创建跨平台不一致增量备份。
BACKUP INCREMENTAL FROM SCN=2720649 FOR TRANSPORT
ALLOW INCONSISTENT FORMAT '/home/u_inc1.bkp' TABLESPACE users;
2. 使用 RESTORE FOREIGN TABLESPACE 命令还原不一致的跨平台表空间备份。
3. 使用 RECOVER FOREIGN DATAFILECOPY 命令通过跨平台增量备份恢复所还原的
数据文件副本。

Oracle Database 12c:新功能 - 面向管理员 13-20


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

答案:b
b. 错
a. 对
映像副本,不能使用备份集。
测验

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle Database 12c:新功能 - 面向管理员 13-21


当在 Oracle Database 12c 中跨平台传输数据时,只能使用

Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

表恢复

• 使用 TSPITR、闪回技术进行表恢复 12c 之前版本

Oracle University and Error : You are not a Valid Partner use only
• 从 RMAN 备份进行表恢复 12c

– 不影响其余的数据库对象
– 与之前的工作流(例如 TSPITR)相比,降低了时间和
磁盘空间

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle DB 提供了许多可以用来恢复表的不同方法。在早期版本中也是这样。但是恢复范
围可能比您希望的要大得多。在接下来的交互式页面上,您将了解执行以下任务的主要
方法:
• 数据库时间点恢复 (DBPITR)
• 表空间时间点恢复 (TSPITR)
• 闪回技术
新增功能
• 在 Oracle Database 12c 中,可使用 RMAN 将一个或多个表或表分区恢复到指定的
时间点,而不影响其余的数据库对象。这是使用 RMAN 备份数据进行的表恢复。
• 与之前的工作流相比,此新功能降低了时间和磁盘空间:
1. 将表空间恢复到一个单独的磁盘位置。
2. 导出所需的表。
3. 导入到原始数据库中。

Oracle Database 12c:新功能 - 面向管理员 13-22


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

从备份恢复表

何时从 RMAN 备份恢复表和表分区:

Oracle University and Error : You are not a Valid Partner use only
• 对于下列情况,建议不要使用 TSPITR:
– 少量表
– 不在自包含表空间中
• 在下列情况下无法进行闪回:
– 已清除的表(无闪回删除)
– 超出了可用的还原(无闪回表)
– 在进行结构性 DDL 更改后(无闪回表)

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

可使用 RMAN 将一个或多个表或表分区恢复到指定的时间点,而不影响其余的数据库对


象。在下列情况中,对表和表分区进行恢复比较有用:
• 需要将非常少量的表恢复到特定的时间点。在这种情况下,TSPITR 不是最高效的
解决方案,因为它将表空间中的所有对象都恢复到移动的时间点。
• 需要将非自包含的表空间恢复到特定的时间点。只有当表空间是自包含的时,才能
使用 TSPITR。
• 需要恢复已损坏的或已使用 PURGE 选项删除的表,因此无法使用闪回删除功能。
• 为闪回表启用了日志记录,但闪回目标时间或 SCN 超出了可用的还原。
• 希望恢复在数据定义语言 (DDL) 操作更改了表结构后丢失的数据。无法使用“闪回
表”将表倒回结构性更改(例如截断表操作)时间点之前。

Oracle Database 12c:新功能 - 面向管理员 13-23


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

表恢复:图形化概览
• COMPATIBLE=12.0(或更大值) 1
先决条件满足 • ARCHIVELOG 模式
• READ WRITE 打开模式

Oracle University and Error : You are not a Valid Partner use only
表名?
2
时间? 3
导入?

目标数据库 备份数据 辅助实例

6 5

转储文件

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

1. RMAN 使用以前创建的备份将表和表分区恢复到指定的时间点。先决条件已满足并
且您通过 RECOVER 命令提供了以下输入:
- 要恢复的表或表分区的名称
- 表或表分区需要恢复到的时间点
- 是否必须将恢复的表或表分区导入到目标数据库
RMAN 使用您的输入自动执行恢复指定的表或表分区的流程。
2. RMAN 根据您的指定确定备份。
3. RMAN 创建辅助实例。
4. RMAN 将您的表或表分区恢复到此辅助实例,一直恢复到指定的时间点。
5. RMAN 创建包含恢复的对象的数据泵导出转储文件。
6. RMAN 将恢复的对象导入到目标数据库中。
7. 您可以对此流程进行定制,如以下幻灯片中所示。

Oracle Database 12c:新功能 - 面向管理员 13-24


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

指定恢复时间点

将表和表分区恢复到通过指定以下参数确定的状态:

Oracle University and Error : You are not a Valid Partner use only
• UNTIL SCN integer:系统更改号 (SCN)
• UNTIL TIME 'date_string’:采用以下日期格式的
时间:
– NLS_LANG 和 NLS_DATE_FORMAT 环境变量,或者:
– 日期常量,例如:SYSDATE – 5
• UNTIL SEQUENCE integer (THREAD integer):
日志序列号和线程号

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

• RMAN 将表或表分区恢复到它们在 SCN 指定的时间所处的状态。SCN 是一个上限


(不包含自身)。
• RMAN 将表或表分区恢复到它们在指定时间所处的状态。请使用在 NLS_LANG 和
NLS_DATE_FORMAT 环境变量中指定的日期格式。还可以使用 SYSDATE 之类的日期
常量来指定时间。(SYSDATE – 5 的意思是比系统日期早 5 天)。
• RMAN 将表或表分区恢复到它们在日志序列号和线程号指定的时间所处的状态。
RMAN 仅选择可以用于还原或恢复至指定序列号(但不包括该序列号自身)的文件。

Oracle Database 12c:新功能 - 面向管理员 13-25


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

表恢复流程步骤 - 1
1. 执行规划任务并通过 CONNECT TARGET 命令启动一个
RMAN 会话。
2. 输入 RECOVER TABLE 命令。

Oracle University and Error : You are not a Valid Partner use only
3. RMAN 根据您的指定确定备份。
4. RMAN 使用 AUXILIARY DESTINATION 子句创建一个
辅助实例(如果指定了该子句)。
5. RMAN 将您的表或表分区恢复到此辅助实例,一直恢复
到指定的时间点。 注:如果必须在其中创建转储文件的位置中已存在具有
DUMP FILE 指定的名称的文件,则导出将失败。

6. RMAN 使用 DUMP FILE=name 和 DATAPUMP


DESTINATION=<OS path> 创建包含恢复的对象的
数据泵导出转储文件。

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

1. 在验证先决条件后,启动一个 RMAN 会话并连接到目标实例。


2. 输入 RECOVER TABLE 命令及所需的子句。
3. RMAN 根据为恢复指定的时间点确定包含需要恢复的数据的备份。
4. RMAN 创建辅助实例。(可选)您可以使用 RECOVER 命令的 AUXILIARY
DESTINATION 或 SET NEWNAME 子句指定辅助实例文件的位置。建议使用
AUXILIARY DESTINATION 子句,因为当使用 SET NEWNAME 时如果忘记了一个
数据文件名称,则恢复将不会发生。
5. RMAN 将指定的表或表分区恢复到此辅助实例,一直恢复到指定的时间点。
6. RMAN 创建包含恢复的对象的数据泵导出转储文件。您可以指定用来存储来自源数
据库的元数据的导出转储文件的名称(通过 DUMP FILE 子句,特定于 OS 的默认
名称)。您还可以通过 DATAPUMP DESTINATION 子句指定在其中创建导出转储文
件的位置。该位置通常是存储转储文件的 OS 目录的路径。如果省略,则转储文件
将存储在 AUXILIARY DESTINATION 位置。如果未指定该位置,则转储文件将存
储在特定于 OS 的默认位置。

Oracle Database 12c:新功能 - 面向管理员 13-26


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

定制设置

7. 您可以如下所述进行定制:

Oracle University and Error : You are not a Valid Partner use only
– RMAN 将恢复的对象导入到目标数据库,除非指定了
NOTABLEIMPORT。
– RMAN 可以通过 REMAP TABLE 和 REMAP
TABLESPACE 子句对恢复的表或表分区进行重命名。

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

7. 您可以通过以下选项进行定制:
- 默认情况下,RMAN 将存储在导出转储文件中的已恢复对象导入到目标数据
库中。不过,您可以使用 RESTORE 命令的 NOTABLEIMPORT 子句选择不导
入恢复的对象。如果您选择不导入恢复的对象,则 RMAN 会将表或表分区恢
复到指定的点,然后创建导出转储文件。不过,此转储文件不会导入到目标数
据库中。当需要时,您必须使用数据泵导入实用程序手动将此转储文件导入到
目标数据库中。
- RMAN 还可以在目标数据库中重命名恢复的表或表分区。当恢复表或表分区
时,您可以保留对象的现有名称,也可以在将对象导入目标数据库后重命名对
象。您可以使用 REMAP TABLE 选项在目标数据库中重命名恢复的表或表分
区。要将恢复的对象导入到对象原来所在表空间之外的表空间,请使用
RECOVER 命令的 REMAP TABLESPACE 子句。只有恢复的表或表分区将重新
映射,现有对象不会更改。

Oracle Database 12c:新功能 - 面向管理员 13-27


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

答案:a
b. 错
a. 对
测验

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。


RMAN 会自动创建、使用并删除辅助数据库实例。

Oracle Database 12c:新功能 - 面向管理员 13-28


当在 Oracle Database 12c 中从备份集执行表恢复时,

Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED



使用表恢复
执行跨平台数据传输
在本课中,您应该已经学会:
描述新的 RMAN 增强功能
小结

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle Database 12c:新功能 - 面向管理员 13-29


Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED



13-2:使用 RMAN 恢复表
练习 13:概览

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。


13-1:在 RMAN 中使用 SYSBACKUP 管理权限

Oracle Database 12c:新功能 - 面向管理员 13-30


Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

易管理性
课程单元

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

实时数据库操作监视

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle Database 12c 新增功能和增强功能


Enterprise Manager Enterprise Manager Enterprise Manager
和其他工具 Cloud Control Database Express 其他工具

CDB 和 PDB 基础功能 CDB 和 PDB 创建 CDB 和 PDB 管理

Oracle University and Error : You are not a Valid Partner use only
热图和自动数据优化 联机数据文件移动
ADO 和存储
数据库中归档和期间有效性 期间历史记录

安全性 统一审计 权限分析 数据编写

HA RMAN

易管理性 数据库操作 实时 ADDM 比较时段 ADDM ADR


12.1.0.2 12.1.0.2

内存中列存储 整个数据库内存中高速缓存
性能 自动大表高速 12.1.0.2

缓存
SQL 优化 资源管理器 索引、表

数据泵、SQL*Loader 和外部表 分区
其他
12.1.0.2
JSON SQL

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

易管理性:对数据库进行管理意味着使用新的实时数据库操作监视功能对数据库操作进行
监视。

Oracle Database 12c:新功能 - 面向管理员 14-3


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

课程目标

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

Oracle University and Error : You are not a Valid Partner use only
• 描述数据库操作
• 实施实时数据库操作监视

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

要全面了解实时数据库操作监视新功能和用法,请参阅 Oracle 文档中的以下指南:


• 《Oracle Database Performance Tuning Guide 12c Release 1 (12.1)》中的
“Instance Tuning Using Performance Views - Real-Time Database Operation
Monitoring”一章
• 《Oracle Database SQL Tuning 12c Release 1 (12.1)》中的“Monitoring Database
Operations”一章

Oracle Database 12c:新功能 - 面向管理员 14-4


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

实时数据库操作监视:概览
数据库操作是:
• 一个或多个 SQL 或 PL/SQL 语句

Oracle University and Error : You are not a Valid Partner use only
• 从一个或多个会话执行的一系列语句
数据库操作可以:
• 被监视
• 生成活动报告
BEGIN_OPERATION
SQL
PL/SQL 块

SQL
SQL

END_OPERATION

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

实时数据库操作监视可扩展并普及实时 SQL 监视。


实时 SQL 监视帮助确定当前在执行的 SQL 语句位于其执行计划中的何处以及语句将时间
花费在了何处。
您可以使用实时数据库操作监视对活动 SQL 语句、PL/SQL 过程和函数进行性能监视。您
还可以查看最近完成的语句所使用时间和资源的细分。
在定期运行批处理作业的数据库中,很难确定某个违规的 SQL 语句属于哪个批处理作业。
在决策支持系统 (DSS) 中,许多批处理作业同时运行这种情况很常见。在某些系统中,可
能会同时运行数百个作业。实时数据库操作监视可以在这些作业运行时监视这些作业。
实时数据库操作监视使用标记对操作进行标识,确定要监视的内容,并且可以生成报告。
实时数据库操作监视对操作进度进行监视,将原始数据进行打包以用于脱机分析,并创建
不需要访问生产系统的活动报告。

Oracle Database 12c:新功能 - 面向管理员 14-5


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

用例

• 监视批处理作业:

Oracle University and Error : You are not a Valid Partner use only
– 设定预期时间;超过预期时间时发出提醒。
– 确定并优化开销较大的语句。
• 诊断后台进程:
– 确定并优化开销较大的语句。
• 诊断一段时间内作业的变化:
– 比较操作之前的执行情况。
– 比较升级之后作业的变化。

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

DBA 在哪些情况下使用实时数据库操作监视?
• 大型零售商的 DSS 具有数百个用于提取、转换和加载 (Extraction, Transformation,
and Loading, ETL) 的批处理作业。您想要实时监视这些作业。作为 Enterprise
Manager 用户,页面加载时您等待了很长时间。您希望轻松识别正在以页面加载的
名义运行什么。有时,需要在 24 小时内完成的 PL/SQL 作业的运行时间却长达 80
小时。您需要确定并优化作业中开销较大的语句。您希望在预计作业的运行时间过
长时收到提醒,以便可以在作业消耗太多资源之前将其终止、修复并重新启动。
• 升级之后,批处理作业从 4.5 小时增加到 8 小时。您想要捕获升级前后作业步骤的
性能统计信息,然后将两组统计信息进行比较并确定变化,例如 SQL 执行计划、资
源消耗和并行度。

Oracle Database 12c:新功能 - 面向管理员 14-6


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

12c 之前版本

当前的工具
• 实时 SQL 监视
– 是数据库操作监视的子集
– 监视长时运行的单一 SQL 语句和 PL/SQL 函数

Oracle University and Error : You are not a Valid Partner use only
– 显示最近完成的语句的统计信息
• 活动会话历史记录
– 1 秒样本
– 对于长时间运行的查询非常有用
• SQL 跟踪
– 大量开销
– 意外事件必须可重现
• DBMS_MONITOR 和 trcsess 实用程序
• V$SESSION_LONGOPS 和 DBMS_APPLICATION_INFO

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

实时 SQL 监视
Oracle Database 11.1 中引入了实时 SQL 监视,这是数据库操作监视的一个子集。它帮
助 DBA 了解某个 SQL 语句位于其执行计划中的何处以及时间花费在了何处。它允许用
户在 SQL 语句执行时监视其性能,并且允许查看最近完成的语句所使用时间和资源的细
分。用户可以识别 ETL、DDL、批处理和报告作业中开销大的 SQL 语句,并检查并行执
行的语句。
活动会话历史记录
ASH 包含每秒执行的活动会话的样本。此选项默认启用。因为每一秒都收集样本,所以
ASH 包含长时间运行的查询的更多信息。
SQL 跟踪
SQL 跟踪会生成大量详细信息,这些信息可能难以解释。要使 SQL 跟踪能够捕获详细信
息,问题必须可重现。

Oracle Database 12c:新功能 - 面向管理员 14-7


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

过程和视图
• DBMS_MONITOR 程序包启用对给定数据库会话、模块、操作或服务的跟踪,
trcsess 命令行实用程序对跟踪信息进行合并。
• V$SESSION_LONGOPS 视图和
DBMS_APPLICATION_INFO.SET_SESSION_LONGOPS 过程对长时间运行的操作
非常有用,它们主要指明目前为止已处理了多少工作。

Oracle University and Error : You are not a Valid Partner use only

Oracle Database 12c:新功能 - 面向管理员 14-8


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

定义数据库操作
用户或应用程序确定的两个时间点之间的任意数据库操作集

操作类型:

Oracle University and Error : You are not a Valid Partner use only
• 简单
– 一个 SQL 或 PL/SQL
• 组合
– 两个时间点之间的多个 SQL 语句和/或 PL/SQL 过程及
函数
– 单个会话
– 多个并发会话

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

数据库操作是数据库服务器为了完成任务而运行的操作。它可以是简单操作,也可以是组
合操作。
• 简单数据库操作:包含单个 SQL 语句或者单个 PL/SQL 函数或过程
• 组合数据库操作:包含两个时间点之间一个或多个会话的活动。在这些会话中运行
的 SQL 语句或 PL/SQL 过程都属于组合操作的一部分:
- 单个会话:单个会话操作分为两种情况。
- 在一种情况下,数据库操作期间仅存在一个会话。
- 在另一种情况下,数据库操作期间存在多个会话,但是在任何指定时间运
行的会话数都不超过一个。应用程序在会话之间切换。
- 多个并发会话:在 ETL 中,一个作业涉及同时运行的多个会话的情况很常见。
您可以将整个 ETL 作业定义为单个数据库操作。

Oracle Database 12c:新功能 - 面向管理员 14-9


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

组合数据库操作的范围

单个会话 多个会话
• 使用单个 单个会话
• 同时使用多个

Oracle University and Error : You are not a Valid Partner use only
协调程序的 用户会话的
并行查询 操作
并行查询
并行查询
并行查询
主进程

单个用户 共享
服务器
• 按顺序连接 会话 用户 用户 用户
会话 会话 会话
到服务器会 共享
话的单个用 服务器

户会话 共享
服务器

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

单个会话范围内的组合操作由以下项之一组成:
• 单个会话协调的 SQL 语句,例如并行操作
• 活动会话,例如应用程序池或共享服务器中的用户会话
展示数据库操作的单个会话和单个用户会话示例的图显示在幻灯片的左侧。
注:这些示例没有排除其中的语句既非并行也未使用共享服务器的单个会话。
多个会话范围内的组合操作由并发运行(例如 ETL 操作期间)的 SQL 语句组成。幻灯片
右侧的图示中显示了此情况。

Oracle Database 12c:新功能 - 面向管理员 14-10


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

数据库操作概念
END_OPERATION('A',1)
BEGIN_OPERATION('A') => exec_id = 1 BEGIN_OPERATION('B') => exec_id = 3

Oracle University and Error : You are not a Valid Partner use only
SQL1 SQL2 SQL3 会话 1

BEGIN_OPERATION('B') => exec_id=1

SQL4 会话 2

BEGIN_OPERATION('B') => exec_id =2

SQL5 会话 3

BEGIN_OPERATION('A') => exec_id =2

SQL6 SQL7 会话 4

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

此示意图显示四个会话。第一个(上面的)会话显示一个会话一次最多可以属于一个数据
库操作。它首先属于数据库操作 A,然后属于数据库操作 B。END_OPERATION 和
BEGIN_OPERATION 命令导致会话更改了数据库操作。
会话 1、2 和 3 显示同时使用名称和执行 ID 来唯一标识数据库操作 B。
会话属于数据库操作但是未执行 SQL 或 PL/SQL 语句的时间是空闲时间。

Oracle Database 12c:新功能 - 面向管理员 14-11


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

标识数据库操作

• 命名 DBOP(名称) SQL
PL/SQL 块

Oracle University and Error : You are not a Valid Partner use only

SQL
SQL

• 指定边界 DBMS_SQL_MONITOR.BEGIN_OPERATION

SQL
PL/SQL 块

SQL
SQL
DBMS_SQL_MONITOR.END_OPERATION

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

要监视数据库操作,您必须为数据库操作指定名称、起始点和结束点。有两种方法可用来
对数据库操作进行命名。第一种方法是使用 DBMS_SQL_MONITOR.BEGIN_OPERATION
函数在应用程序中插入起始点,使用 DBMS_SQL_MONITOR.END_OPERATION 过程调用
插入结束点。第二种方法是设置一个标记(这适用于 JAVA 和 OCI 应用程序)。可以使
用 OCI 调用 OCIAttrSet 和 OCIAppCtxSet、Java 调用 setClientInfo 或者通过
OS 环境变量 ORA_DBOP 设置该标记。Java 或 OCI 中的该标记装载下一数据库调用,以
便可以轻松地分辨起始点。
显式调用为数据库操作提供了清晰的起始点和结束点以指定边界,但是使用标记的应用程
序没有结束操作的显式方法。由于启动新操作即会结束之前的操作,因此应该将该标记设
置为 NULL 并发送到数据库。

Oracle Database 12c:新功能 - 面向管理员 14-12


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

启用对数据库操作的监视
• 在系统级别:
– 将 STATISTICS_LEVEL 设置为 TYPICAL
– 将 CONTROL_MANAGEMENT_PACK_ACCESS 设置为

Oracle University and Error : You are not a Valid Partner use only
DIAGNOSTIC+TUNING
SQL 监视

>5秒
(CPU|IO) 并行

• 在数据库操作级别:
– 在 DBMS_SQL_MONITOR.BEGIN_OPERATION 函数中
使用 FORCED_TRACKING 属性
• 在语句级别: MONITOR
– 使用 MONITOR 提示 提示

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

当 STATISTICS_LEVEL 初始化参数设置为 TYPICAL(默认值)或 ALL 时,会默认启


用 SQL 监视功能。由于 SQL 监视是 Oracle Database Tuning Pack 的功能,所以还必须
将 CONTROL_MANAGEMENT_PACK_ACCESS 参数设置为 DIAGNOSTIC+TUNING(默认
值)。默认情况下,SQL 监视会在某个 SQL 命令并行运行时启动,或者在某个 SQL 命
令在一次执行中占用的 CPU 或 I/O 时间至少达到五秒时启动。当在语句中显式声明了
MONITOR 提示时,也会监视 SQL 语句。
当启动数据库操作时,您可以强制在数据库操作启动时对其进行跟踪。此参数的默认值不
一定会强制跟踪任何 SQL 语句或数据库操作。只有当数据库操作开销足够大时才会对其
进行跟踪。当通过 DBMS_SQL_MONITOR.BEGIN_OPERATION 函数启动数据库操作时,
使用 FORCED_TRACKING 属性并将其设置为 Y:
DBMS_MONITOR.BEGIN_OPERATION (
dbop_name IN VARCHAR2,
dbop_eid IN NUMBER :=NULL,
forced_tracking IN VARCHAR2 := NO_FORCE_TRACKING,
attribute_list IN VARCHAR2 :=NULL)
RETURN NUMBER;

Oracle Database 12c:新功能 - 面向管理员 14-13


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

标识、启动和完成数据库操作
1. 标识数据库操作。
– 操作名称

Oracle University and Error : You are not a Valid Partner use only
– 执行 ID
2. 通过 DBMS_SQL_MONITOR.BEGIN_OPERATION 启动
数据库操作。
3. 通过 DBMS_SQL_MONITOR.END_OPERATION 完成数
据库操作。
SQL> VAR dbop_eid NUMBER;
SQL> EXEC :dbop_eid := DBMS_SQL_MONITOR.BEGIN_OPERATION
('ORA.MV.refresh', FORCED_TRACKING => 'Y')
SQL> SELECT ...
SQL> SELECT ...
SQL> EXEC DBMS_SQL_MONITOR.END_OPERATION
('ORA.MV.refresh', :dbop_eid)

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

当进行监视时,可以通过操作名称和执行 ID 对每个数据库操作进行标识。每个数据库操
作都具有名称和执行 ID。数据库操作名称和执行 ID 结合可以唯一标识操作的特定执行。
操作名称特定于代码片段。多个会话或用户可能会同时执行相同的代码。每个调用具有相
同的操作名称,但具有不同的执行 ID。执行 ID 在操作之间并不唯一;也就是说,具有不
同名称的两个数据库操作可以具有相同的执行 ID。调用 BEGIN_OPERATION 将返回执行
ID。如果向该调用提供了执行 ID,则会返回该执行 ID。如果未提供执行 ID,则返回一个
唯一执行 ID。当主进程衍生了与同一数据库操作关联的多个会话时,将为整个操作生成
一个执行 ID,并且每个会话将通过 BEGIN_OPERATION 调用设置该执行 ID。
数据库操作名称在单个名称空间中。为了防止冲突,建议使用以下格式:
<component>.<subcomponent>.<operation_name>。建议使用数据库内操作的 ORA 的组
件名称。幻灯片中的示例针对的是执行实体化视图刷新的操作。
同一数据库操作(具有相同的名称)的不同执行可能具有不同的 SQL 语句或 PL/SQL 函
数。在 PL/SQL 中通过条件选择不同的代码路径会导致此情况。也没有措施来防止将一个
操作名称分配给多组代码。这可能会造成混淆。

Oracle Database 12c:新功能 - 面向管理员 14-14


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

监视数据库操作的进度

Oracle University and Error : You are not a Valid Partner use only
版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

通过 Enterprise Manager Cloud Control 和 Enterprise Manager Database Express,您


可以查看处于活动状态的和最近完成的数据库操作。
使用 Enterprise Manager Cloud Control,登录到目标数据库,单击“Performance(性
能)”菜单,然后单击“SQL Monitoring(SQL 监视)”选项。
使用 Enterprise Manager Database Express,在“Database Home(数据库主页)”中
转到“Monitored SQL(受监视的 SQL)”菜单后,将显示受监视的 SQL 和数据库操作
的列表。
在“Performance(性能)”菜单中,单击“Performance Hub(性能中心)”选项,以
获取受监视的 SQL 和数据库操作的列表,如幻灯片中的第二个屏幕截图所示。要查看详
细信息,请单击数据库操作名称。在“Details(详细信息)”页面上,将显示执行 ID。
通过选择列表上方的“Database Operations(数据库操作)”筛选器(“SQL”、
“PL/SQL”和“Database Operations(数据库操作)”),可以仅显示数据库操作。可
以使用列表右上方的搜索框在操作名称上执行进一步筛选。

Oracle Database 12c:新功能 - 面向管理员 14-15


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

监视加载数据库操作
SQL> VAR dbop_eid NUMBER;
SQL> EXEC :op_eid := DBMS_SQL_MONITOR.BEGIN_OPERATION
('ORA.SYSTEM.load', FORCED_TRACKING => 'Y')

Oracle University and Error : You are not a Valid Partner use only
SQL> INSERT /*+ APPEND */ * INTO tab1 SELECT …;
SQL> INSERT /*+ APPEND */ * INTO tab2 SELECT …;
SQL> EXEC DBMS_SQL_MONITOR.END_OPERATION
('ORA.SYSTEM.load',:op_eid)

一个加载已完成,数据库操作仍在执行。

数据库操作,具有两个 INSERT

第二个 INSERT
第一个 INSERT 正在执行
已完成

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

可以执行监视加载操作。在幻灯片所示的示例中,数据库操作包含两个成批加载语句。
使用 Enterprise Manager Database Express,从“Performance Hub(性能中心)”页
面上,您将发现数据库加载操作仍在执行,而第一个成批加载语句已完成。另一个成批加
载语句仍在执行,并且作为同一数据库加载操作的一部分正在被监视。
使用 Enterprise Manager Cloud Control,登录到目标数据库,选择“Performance(性
能)”菜单 >“SQL Monitoring(SQL 监视)”选项。您将看到同一数据库加载操作正在
执行。

Oracle Database 12c:新功能 - 面向管理员 14-16


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

监视加载数据库操作详细信息

Oracle University and Error : You are not a Valid Partner use only
由三个加载语句组成的
数据库操作仍在执行

第三个
第三个 INSERT
INSERT 正在
仍在执行
执行

第一个INSERT
第一个
SELECT 已完
已完成

第二个
第二个 INSERT
INSERT 已完
已完成

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

执行详细信息页面在屏幕顶部显示摘要,在屏幕底部显示活动图(已显示)或度量图(未
显示)。DBMS_SQL_MONITOR.REPORT_SQL_MONITOR 和
DBMS_SQL_MONITOR.REPORT_SQL_MONITOR_LIST 函数用于报告实时数据库操作的
执行详细信息。

Oracle Database 12c:新功能 - 面向管理员 14-17


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

使用视图报告数据库操作

V$SQL_MONITOR 视图通过新列显示正在执行的和已完成的

Oracle University and Error : You are not a Valid Partner use only
数据库操作的列表。
SQL> SELECT DBOP_NAME, DBOP_EXEC_ID, STATUS
FROM V$SQL_MONITOR
WHERE DBOP_NAME IS NOT NULL;

DBOP_NAME DBOP_EXEC_ID STATUS


----------------- ------------ ----------
ORA.HR.select 8 EXECUTING
ORA.SH.select2 10 EXECUTING
ORA.SH.select 3 DONE

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

V$SQL_MONITOR 视图报告正在执行的和已完成的数据库操作的列表,包括有关数据库操
作中顶级 SQL 语句的全局概括性信息。每个受监视的 SQL 语句在此视图中都有一个条目。
每行包含一个 SQL 语句,该语句的统计信息从多个会话及其所有操作执行中累积。
主键是 DBOP_NAME、DBOP_EXEC_ID 和 SQL_ID 列的组合。

Oracle Database 12c:新功能 - 面向管理员 14-18


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

使用视图报告数据库操作
• EM Cloud Control 和 EM Database Express 使用多个
视图:

Oracle University and Error : You are not a Valid Partner use only
– V$SQL_MONITOR、V$ACTIVE_SESSION_HISTORY
和新列:DBOP_NAME、DBOP_EXEC_ID
• AWR 自动捕获 SQL 监视报告并存储活动会话历史记录:
– DBA_HIST_REPORTS、DBA_HIST_REPORTS_DETAILS
– DBA_HIST_ACTIVE_SESS_HISTORY
SQL> SELECT session_id, DBOP_NAME, DBOP_EXEC_ID
FROM DBA_HIST_ACTIVE_SESS_HISTORY
where DBOP_NAME is not NULL;

SESSION_ID DBOP_NAME DBOP_EXEC_ID


---------- ------------------ ----------------
30 ORA.SYSTEM.load 8
45 ORA.HR.select 11

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

EM Cloud Control 或 EM Database Express 总结从多个视图收集的受监视语句和数据库


操作的活动。
• 最近完成和活动的数据库操作来自:
- V$SQL_MONITOR、V$ACTIVE_SESSION_HISTORY 中的新列:DBOP_NAME
和 DBOP_EXEC_ID
- V$SQL_PLAN_MONITOR、V$SQL_MONITOR_SESSTAT、V$SQL、
V$SQL_PLAN、V$SESSION_LONGOPS
• 完成的数据库操作和报告存储在 AWR 中并且可以在以下视图中报告:
- DBA_HIST_REPORTS、DBA_HIST_REPORTS_DETAILS
- DBA_HIST_ACTIVE_SESS_HISTORY

Oracle Database 12c:新功能 - 面向管理员 14-19


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

使用函数报告数据库操作

DBMS_SQL_MONITOR 程序包:

Oracle University and Error : You are not a Valid Partner use only
• REPORT_SQL_MONITOR_LIST_XML 和
REPORT_SQL_MONITOR_XML 函数以 XML 格式报告
数据库操作的列表和详细信息。
• REPORT_SQL_MONITOR_LIST 和
REPORT_SQL_MONITOR 函数在 CLOB 中报告数据库
操作的列表和详细信息。
SQL> SELECT DBMS_SQL_MONITOR.REPORT_SQL_MONITOR_LIST_XML()
FROM dual;

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

使用 DBMS_SQL_MONITOR.REPORT_SQL_MONITOR_xxx 函数进行报告
SQL> select DBMS_SQL_MONITOR.REPORT_SQL_MONITOR_LIST_XML() from dual;

DBMS_SQL_MONITOR.REPORT_SQL_MONITOR_LIST_XML()
-----------------------------------------------------------------
<report db_version="12.1.0.0.2" cpu_cores="1" hyperthread="N"
timezone_offset="0
" elapsed_time="0.00" cpu_time="0.00">
<report_id><![CDATA[/orarep/sqlmonitor/list?monitor_type=3]]></report_
id>
<sql_monitor_list_report version="1" sysdate="08/14/2012 10:33:04">
<dbop detail="F" dbop_name="ORA.SH.select2"
dbop_exec_start="08/14/2012 10:26:11" dbop_exec_id="12">
<status>EXECUTING</status>
<first_refresh_time>08/14/2012 10:26:11</first_refresh_time>

Oracle Database 12c:新功能 - 面向管理员 14-20


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

<refresh_count>0</refresh_count>
<inst_id>1</inst_id>
<session_id>43</session_id>
<session_serial>229</session_serial>
<user_id>0</user_id>
<con_id>0</con_id>
<module>SQL*Plus</module>

Oracle University and Error : You are not a Valid Partner use only
<service>SYS$USERS</service>
<program>sqlplus@host01.example.com (TNS V1-V3)</program>
<plsql_entry_object_id>10531</plsql_entry_object_id>
<plsql_entry_subprogram_id>6</plsql_entry_subprogram_id>
<plsql_object_id>10375</plsql_object_id>
<plsql_subprogram_id>63</plsql_subprogram_id>
<is_cross_instance>N</is_cross_instance>
<stats type="monitor">
<stat name="duration">413</stat>
<stat name="elapsed_time">3072887</stat>
<stat name="cpu_time">1143825</stat>
<stat name="user_io_wait_time">368882</stat>
<stat name="application_wait_time">475</stat>
<stat name="other_wait_time">1559705</stat>
<stat name="buffer_gets">23</stat>
<stat name="read_reqs">37</stat>
<stat name="read_bytes">13033472</stat>
<stat name="write_reqs">52</stat>
<stat name="write_bytes">42041344</stat>
</stats>
</dbop>

Oracle Database 12c:新功能 - 面向管理员 14-21


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

数据库操作优化

• ADDM

Oracle University and Error : You are not a Valid Partner use only
• SQL 优化指导
• SQL 性能分析程序

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

优化的目的是改善特定执行的响应时间。优化数据库操作不仅仅是优化操作中的 SQL 语
句。但是在 Oracle Database 12c Release 1 中,您可以认为数据库操作优化就是逐一优
化顶级 SQL 语句。
下面是可用于 SQL 优化的工具:
• 自动数据库诊断监视器 (ADDM):ADDM 分析 AWR 收集的有关 Oracle DB 可能存
在的性能问题的信息,包括高负载 SQL 语句。
• SQL 优化指导和 SQL 性能分析程序:这些工具可以将 SQL 优化集或顶级 SQL 语
句作为目标。
要从 PDB 对 SQL 语句运行 SQL 优化指导或 SQL 性能分析程序,普通用户必须具
有以下权限:
- 公共的 SET CONTAINER 权限或 PDB 中的本地 SET CONTAINER 权限
- 在 PDB 中执行 SQL 语句所需的权限

Oracle Database 12c:新功能 - 面向管理员 14-22


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

答案:b
b. 错
a. 对
测验

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。


仅允许对 SELECT 语句集执行数据库操作监视。

Oracle Database 12c:新功能 - 面向管理员 14-23


Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

答案:a
b. 错
a. 对
测验

多个并发会话)定义为要监视的数据库操作。

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle Database 12c:新功能 - 面向管理员 14-24


可以将两个时间点之间的任何 SQL 和 PL/SQL 语句集(包括

Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED



描述数据库操作
实施实时数据库操作监视
在本课中,您应该已经学会:
小结

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle Database 12c:新功能 - 面向管理员 14-25


Oracle University and Error : You are not a Valid Partner use only
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

练习 14:概览

• 14-1:启动 Enterprise Manager Database Express

Oracle University and Error : You are not a Valid Partner use only
• 14-2:标识并启动数据库操作(使用 EM Database
Express 或 EM Cloud Control)
• 14-3:标识并启动数据库加载操作(可选)
• 14-4:清理

版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。

Oracle Database 12c:新功能 - 面向管理员 14-26

Vous aimerez peut-être aussi