Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
D77758CN20
学生指南– 第 1 卷
面向管理员
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
Maria Billings 有限权利声明
目录
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
III
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
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
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
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 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
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
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
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
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
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
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
简介
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
丁程序集 1 中适用于数据库管理的那些功能。
• 要完全了解诸多新增功能,需要具有 Oracle DB(特别
是 Oracle Database 11g)使用经验。
• 实践练习着重强调的是功能,而不是测验知识。
Oracle DB 创新历程
专用 DB 云
… 继续创新 深度防御
Oracle Database 12c 信息生命周期管理
Oracle University and Error : You are not a Valid Partner use only
极高可用性
灵活集群
内存中高速缓存 12.1.0.2
由于对创新的前瞻性重视,Oracle 以其领导潮流的大量产品,保持着业界独尊的领先
地位。
Oracle Database 12c 发行版中的部分重要特性包括:
• 专用数据库云
• 深度防御,包括 Oracle 数据编写 (Oracle Data Redaction) 和 Real Application
Security
• 信息生命周期管理 (ILM),包括热/冷数据分类、声明性压缩和分层、数据库内归档
以及期间有效性
• 灵活集群
• 极高可用性,包括 Data Guard 远同步和应用程序连续性
• 低成本迁移
• 高性能、易于使用,包括“即时”优化、内存列存储、整个数据库内存中高速缓存
和自动大表高速缓存
企业云计算
Oracle University and Error : You are not a Valid Partner use only
在整个企业范围内
RAC 低成本硬件 管理整个 合并 Enterprise
集群确保 和存储构成 企业的 Manager Cloud
可用性 的网格 更改 Control 与数据库
Oracle University and Error : You are not a Valid Partner use only
热图和自动数据优化 联机数据文件移动
ADO 和存储
数据库中归档和期间有效性 期间历史记录
HA RMAN
内存中列存储 整个数据库内存中高速缓存
性能 自动大表高速 12.1.0.2
SQL 优化 资源管理器 索引、表
缓存
数据泵、SQL*Loader 和外部表 分区
其他
12.1.0.2
JSON SQL
功能、选项和计划
Enterprise Manager Cloud Control:Oracle Enterprise Manager 是 Oracle 的集成企业
IT 管理产品线,提供业内第一个完整云生命周期管理解决方案。
Oracle 多租户:Oracle 多租户是 Oracle Database 12c 中的一个新选项。使用多租户体
系结构,Oracle DB 可以包含一组可移植的方案、对象和相关结构,面向应用程序作为
一个逻辑上的单独数据库出现。此自包含集合称为可插入数据库 (PDB)。一个多租户容器
数据库 (CDB) 包含一个或多个 PDB。
信息生命周期管理:每个组织都面临的一个难题是了解其数据如何发展和增长、监视数据
的使用如何随时间而变化以及确定数据的保留时间,同时遵循现在适用于该数据的所有规
则和法规。信息生命周期管理 (ILM) 旨在处理这些问题,同时合并进程、策略、软件和硬
件,从而针对数据生命周期中的每个阶段使用适当的技术。ILM 提供了一些新功能,包括
热图、自动数据优化以及对数据库中归档的增强功能,其中包括新的期间有效性功能。
深度防御
• 通过统一审计,可以统一的格式使用审计信息,并在仅可由授权用户访问的单个位
置集中放置该信息。
• 新管理权限可以帮助分离责任。
• 权限分析有助于识别权限使用情况并确定必须撤消的权限。
• 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 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
ADO 和存储
数据库中归档和期间有效性 期间历史记录
HA RMAN
内存中列存储 整个数据库内存中高速缓存
性能
自动大表高速 12.1.0.2
SQL 优化 资源管理器 索引、表
缓存
数据泵、SQL*Loader 和外部表 分区
其他
JSON 12.1.0.2
SQL
课程目标
学完本课后,应能完成以下工作:
• 描述 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 界面
注释
要全面了解 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 University and Error : You are not a Valid Partner use only
增多。管理数据中心的主要挑战包括:
• 监视性能和可用性
• 快速解决问题
• 控制操作成本
• 将 IT 与业务优先级关联
随着数据中心业务的发展,挑战也随之增多。管理员面对以下挑战:
• 监视高级别的性能和应用程序的可用性
• 快速而有效地发现和解决问题
• 使 IT 专业人员有效使用资源,从而降低成本
• 将 IT 与业务优先级关联,确保业务可以灵活地满足变化的需求
应用程序管理 云管理
Oracle University and Error : You are not a Valid Partner use only
中间件管理 计费和容量计划
Exadata 和
数据库管理
Exalogic 管理
应用程序质量管理 配置管理
预配和打补丁
• 预配和打补丁:提供用于预配已知配置的概要文件、用户定义的部署过程以及一个
集成了自更新功能的软件库
• 应用程序和质量管理:数据库重放、应用程序服务器重放、与数据屏蔽集成的 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)
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
组件和通信流
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 University and Error : You are not a Valid Partner use only
• 位于 Oracle DB 中
• 包括属于 SYSMAN 的方案
• 必须安装在预先存在的数据库中
• 可以安装在 RAC 数据库中
注:使用 Oracle DB 的受限使用许可证
WebLogic
EM
Oracle University and Error : You are not a Valid Partner use only
OMS
资料档案库 代理
组件控制实用程序
资料档案库 OMS 代理
sqlplus 或
srvctl emctl emctl
lsnrctl
Oracle University and Error : You are not a Valid Partner use only
2. 启动资料档案库数据库实例。
3. 启动 OMS。
4. 启动 OMS/资料档案库服务器上的代理。
5. 启动受管服务器上的代理。
WebLogic
EM
OHS
资料档案库 OMS
代理
Oracle University and Error : You are not a Valid Partner use only
1. 停止受管服务器上的代理。
2. 停止 OMS/资料档案库服务器上的代理。
3. 停止 OMS。
4. 停止资料档案库数据库实例。
WebLogic
EM
OHS
代理 OMS 资料档案库
不同目标类型
Enterprise Manager Cloud Control 可以监视、管理和维护
许多种不同类型的目标,其中包括:
Oracle University and Error : You are not a Valid Partner use only
• Oracle DB
• Oracle DB 监听程序 OMA
目标搜索
服务器 A 主机目标信息
OMA 执行的
自动搜索
第三方
Oracle University and Error : You are not a Valid Partner use only
应用程序
OMA
E-Business
Suite
指导式搜索
应用程序
服务器 监听程序 数据库
Oracle University and Error : You are not a Valid Partner use only
版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。
用户界面
设置主页: 基于菜单的导航:
• 基于角色的预定义主页 • 将任意页面加入收藏夹,
Oracle University and Error : You are not a Valid Partner use only
• 任意页面 以实现快速访问。
用户界面增强功能
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 University and Error : You are not a Valid Partner use only
Enterprise
Enterprise Manager Cloud Manager
Control 验证 目标验证
企业就绪框架:安全性
Enterprise Manager 安全系统可以分为四个部分(如图所示):
• Enterprise Manager Cloud Control 验证
• Enterprise Manager Cloud Control 授权和权限
• 身份证明管理(可以在此处定义主机身份证明)
• 目标验证(可以在此处使用主机身份证明)
使用身份证明安全地进行管理
• 集中存储身份证明以易于管理
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
身份证明的安全性
作为处理大量脚本和打补丁等强大操作的管理工具,Enterprise Manager 需要使用用于主
机、数据库以及一系列其他对象的多个身份证明。管理所有这些身份证明会是一个真正的
难题。
• 集中式存储可以方便此任务,因为您可以在其中命名和存储身份证明。
• 支持无口令和强验证身份证明,例如 Kerberos 票证和 SSH 密钥对。
• 身份证明可以在用户间重用和共享(而不公开口令等敏感内容)。通过使用权限向
用户授予对这些身份证明的访问权限,从而可以重用这些身份证明,而不需要知道
它们的内容。
• 通过权限来控制和保护对身份证明的访问权限。
• 通过 Enterprise Manager 身份证明子系统,您可以安全地将身份证明存储为首选项
或操作身份证明,然后可使用其执行不同的系统管理活动。Enterprise Manager 还
支持基于 sudo/powerbroker 的模拟。
区分身份证明
• 命名的身份证明
Oracle University and Error : You are not a Valid Partner use only
• 首选身份证明
• 默认身份证明
• 访问级别:
– View(查看): 访问以使用身份证明
– Edit(编辑): 更改身份证明(包括更改其名称和口令)
– Full(完全): 完整访问权限(包括删除身份证明的能力)
• 使用分类:作业、集合和监视
身份证明类型
作为 Enterprise Manager 管理员,您还可以在 Enterprise Manager 中将身份证明(用户
名/口令、公钥-私钥对或 X509v3 证书)存储为命名的身份证明,在执行运行作业、打补丁
以及其他系统管理任务等操作时使用。对象将引用或指向命名的身份证明。它们是“占位
符”,用于方便口令更改等。
您可以存储、访问和修改固定数量的基于用户名/口令的身份证明,将其作为首选身份证
明,通过在 Oracle Management Repository 中存储目标登录身份证明来简化对受管目标
的访问。
可以为特定目标的类型设置默认身份证明,其将可用于该目标类型的所有目标。
可以授予的三种级别的访问权限为:
• 查看访问权限:使用身份证明
• 编辑访问权限:更改身份证明,包括更改其名称和口令
• 完全访问权限: 完整访问权限,包括删除命名的身份证明的能力
还可以按使用情况来对身份证明进行分类,例如作业身份证明(由作业系统使用)、集合
身份证明和监视身份证明(由 OMA 使用)。
核心概念和定义:
• 身份证明类型是目标类型所支持的验证类型。例如,主机可以支持基于用户名/口令
的验证、公钥验证或 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”
答案:f
f.
a. 主机
b. 数据库
以上所有项
e. OMS 和 OMR
d. Web 应用程序
c. 应用程序服务器
测验
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
Web 浏览器
共享
服务器
Oracle DB 实例
请求 Oracle Web Server
EM Express Servlet
XML - 验证
页面 - 会话管理
- 压缩
- 高速缓存
配置 EM Database Express
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)
• 对每个实例使用一个不同的端口。
• 浏览器需要 Flash 插件。
装有 Flash 插件。
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 和/或其附属公司。保留所有权利。
菜单
Oracle University and Error : You are not a Valid Partner use only
版权所有 © 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
答案:a、b
据库管理功能:
a. 单实例数据库
b. 集群数据库实例
测验
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
c
c
c
Oracle University and Error : You are not a Valid Partner use only
版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。
Oracle University and Error : You are not a Valid Partner use only
版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。
答案:a
b. 错
a. 对
测验
小结
在本课中,您应该已经学会:
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 界面
练习
Oracle University and Error : You are not a Valid Partner use only
• 2-2:添加数据库实例作为 EM CC 监视的新目标
• 2-3:创建新的命名的身份证明
• 2-4:使用命名的身份证明
3-1
课程单元
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
Oracle University and Error : You are not a Valid Partner use only
热图和自动数据优化 联机数据文件移动
ADO 和存储
数据库中归档和期间有效性 期间历史记录
HA RMAN
内存中列存储 整个数据库内存中高速缓存
性能
自动大表高速 12.1.0.2
SQL 优化 资源管理器 索引、表
缓存
数据泵、SQL*Loader 和外部表 分区
其他
JSON 12.1.0.2
SQL
课程目标
学完本课后,应能完成以下工作:
Oracle University and Error : You are not a Valid Partner use only
• 描述多租户体系结构
• 描述根和可插入数据库容器
• 区分根与可插入数据库
• 说明可插入数据库插入
• 列出各个方面的影响
注释
要全面了解多租户体系结构和使用方法,请参阅 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 University and Error : You are not a Valid Partner use only
门”应用程序。它们:
• 对其部署硬件的使用不占多大百分比
• 具有实例和存储空间开销,从而无法在同一物理和存储
服务器上放置大量“部门”数据库
• 不是非常复杂,不需要一个全职管理员完全专注于它们
• 不需要大量时间来对所有应用程序打补丁或升级
12c 之前版本
系统全局区
服务器
Oracle University and Error : You are not a Valid Partner use only
进程结构
实例
数据库
数据库(存储结构)
新的多租户体系结构:优点
• 以更低成本在集中管理的平台中操作多个数据库:
– 实例开销较低
Oracle University and Error : You are not a Valid Partner use only
– 存储成本较低
• 降低 DBA 资源成本并维护安全性
– 无应用程序更改
– 快速且易于预配
— 节约打补丁和升级的时间
— 将以下各项的职责分离开来:
— 不同的应用程序管理员
— 应用程序管理员和 DBA
— 应用程序中的用户
• 提供隔离
多租户体系结构维护:
• 安全的职责分离:应用程序的管理员通过连接到实施其后端的特定 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 University and Error : You are not a Valid Partner use only
• 使用 RAC 和 Data Guard 进行完全操作
• 受到 Enterprise Manager 支持
• 与资源管理器集成
• 允许对多个数据库进行集中管理
– 备份或灾难恢复
– 打补丁和升级
• 多租户体系结构可以确保向后兼容原则。一个示例就是数据字典视图。对于特定应
用程序,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。
•
•
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
配置
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
多租户容器数据库
实例
服务器
系统全局区
单实例
进程结构
Oracle University and Error : You are not a Valid Partner use only
多租户
容器数据库 多租户容器数据库 CDB
数据文件 控制文件 重做日志文件
单 DB 共享: 根
• 后台进程
• 共享/进程内存 数据文件 数据文件 数据文件
• Oracle 元数据
应用程序 1 SALES HR
原始安装
Oracle University and Error : You are not a Valid Partner use only
。 OBJ$ TAB$ SOURCE$
Oracle 系统数据
添加用户数据
在非 CDB 中,将添加用户数据。元数据将与数据字典中
Oracle University and Error : You are not a Valid Partner use only
Oracle 提供的数据混合存储。
… …
在非 CDB 中,将添加用户和用户数据。
最佳实践是在专用于用户数据的表空间中添加此数据。在单独表空间中存储数据有助于更
容易地保护和传输数据。不过,元数据在数据字典中都混合在一起:
• 对象定义
• 用户定义
• PL/SQL 代码
• 其他用户创建的对象
分离 SYSTEM 和用户数据
多租户容器数据库
OBJ$ TAB$ SOURCE$
Oracle University and Error : You are not a Valid Partner use only
… 系统的容器
… …
仅用户元数据 用户数据
必须可以从用户容器查看
Oracle University and Error : You are not a Valid Partner use only
… Oracle 提供的对象。
仅 Oracle 元数据
… …
仅用户元数据 用户数据
多租户体系结构的一个目标是每个容器都与一个应用程序具有一对一关系。
分离元数据是第一步,第二步是允许“用户”容器内的应用程序或用户访问 Oracle 提供
的对象。
可能已经在每个用户容器中复制了 Oracle 对象,但是这将占用许多空间,并且将需要在
每次 Oracle 提供的对象更改(例如,通过补丁程序)时升级每个用户容器。
简单的解决方案是提供从用户容器到 Oracle 提供的对象的指针,从而允许访问这些“系
统”对象而不需要在用户容器中复制这些对象。用户容器具有成为数据库应用程序的完整
环境所需的数据。应用程序可以像在非 CDB 中那样在容器中运行。
命名容器
多租户容器数据库
• Oracle 提供的容器称为
Oracle University and Error : You are not a Valid Partner use only
根 根容器。
• 用户容器是可插入数据
库 (PDB)。
仅 Oracle 元数据
PDB
仅用户元数据 用户数据
预配可插入数据库
多租户容器数据库
Oracle University and Error : You are not a Valid Partner use only
假定数据文件
位于支持
更改时复制
的文件系统上。
多种方法:
• 从 PDB$SEED 可插入数据库创建 PDB。
• 插入非 CDB。
• 将非 CDB 克隆到 CDB 中,或者将 PDB 克隆到同一或
其他 CDB 中。
• 将移走的 PDB 插入 CDB 中。
在多租户容器数据库内互操作
多租户容器数据库
Oracle University and Error : You are not a Valid Partner use only
根
快速 CDB 内 db 链接
多租户容器数据库体系结构
实例
服务器 系统全局区
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
容器
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 个服务
问题:根与 PDB
CDBA
什么属于 CDB 而不属于特定容器?
• 控制文件和重做日志文件
Oracle University and Error : You are not a Valid Partner use only
什么位于根中而不在 PDB 中?
UNDO
• UNDO 表空间(对于每个实例)
TAB$ 2
• 共享的 Oracle 提供的数据 USER$ 2
TEST 2
问题: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
SMITH
表 HR.EMPLOYEES JOHN
• PDB 资源管理器计划
术语
• 公用与本地:
Oracle University and Error : You are not a Valid Partner use only
– 用户
– 角色
– 权限
• CDB 与 PDB 级别:
– CDB 资源管理器计划与 PDB RM 计划
– CDB 或 PDB 级别的统一审计
– CDB 或 PDB 级别的 XStream
有一个新术语是用于新实体的:公用与本地实体,例如:
• 公用用户与本地用户。
• 公用角色与本地角色。
• 公用权限与本地权限,普遍为所有容器授予的权限与在 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 共享对其他系统
所做的数据更改。
公用用户和本地用户
多租户容器数据库
根 PDB_SALES
视图 CDB_USERS 视图 DBA_USERS
Oracle University and Error : You are not a Valid Partner use only
USERNAME COMMON USERNAME COMMON
表空间 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
本地用户
非 CDB 中的用户映射到非 PDB 中的本地用户。
• 在 PDB 自己的数据字典中定义本地用户,所以在该 PDB 之外不知道该用户。
• 本地用户仅可连接到在其中定义该用户的 PDB。
• 本地用户特定于特定 PDB,在该 PDB 中拥有方案。
• 根据授予的权限,用户可以处理 PDB 内的应用程序数据或者使用数据库链接处理
其他 PDB 的应用程序。而且,不能在根中定义任何本地用户。
公用用户
• 公用用户在 root 的数据字典中定义。
• 仅可以在根中定义公用用户:通过创建公用用户,CDB 管理员可以一次创建将在
每个 PDB 中复制的用户。
• 公用用户不仅在根中其定义的位置而且在属于 CDB 的每个 PDB 中为已知。
• 公用用户可以执行特定于根或 PDB 的管理任务,例如插入和移走 PDB、启动 CDB
或在授予正确权限时打开 PDB。
公用和本地权限和角色
多租户容器数据库
PDB_HR
根 本地角色 公用角色
公用角色 本地角色
X
Oracle University and Error : You are not a Valid Partner use only
X
X
普遍授予的权限/角色
公用权限(普遍授予)
本地授予的权限/角色
本地权限(本地授予)
公用权限 公用角色
公用用户 本地用户
本地角色
非 CDB 中的角色映射到 PDB 中的本地角色。本地角色在 PDB 自己的数据字典中定义,
所以在该 PDB 之外不知道该角色,并且只能在其 PDB 内使用该角色。
公用角色
除了本地角色,还可以创建公用角色,将在每个容器中定义该角色。这样,很容易一次创
建将在所有 PDB 中复制的角色。在创建时指定角色的性质:本地或公用。公用角色以及
公用用户仅可在根中由公用用户创建。而且,不能在根中定义任何本地角色。所有
Oracle 提供的预定义的角色都是公用角色。
本地与公用权限
权限通常称为本地或公用权限,但是更准确地说,使用 CONTAINER=CURRENT 子句在本
地授予权限或者使用 CONTAINER=ALL 子句普遍授予权限。这一规则也适用于角色:可
以普遍或者在本地将公用角色授予公用用户或角色。公用角色可以包含在 CDB 中应用的
权限,即为所有容器普遍授予的权限,还可以包含本地授予的权限,其仅应用于单个
PDB,而本地角色不包含任何普遍授予的权限。
多租户容器数据库
共享和非共享对象
根数据文件 PDB_SALES 数据文件
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 中。
数据字典视图
CDB_xxx 所有 PDB 中多租户容器数据库中的所有对象
DBA_xxx 容器或可插入数据库中的所有对象
Oracle University and Error : You are not a Valid Partner use only
ALL_xxx 可由当前用户访问的对象
USER_xxx 当前用户拥有的对象
影响
影响
• 对所有 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
• 一般情况下,可以使用数据泵将用户创建的所有调度程序对象导出/导入到 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 配合使用。
答案:a
以下哪项是正确的?
测验
a. 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 University and Error : You are not a Valid Partner use only
a. 每个 CDB 仅有一个 SYSTEM 表空间。
b. 每个 PDB 仅有一个实例。
c. 每个 PDB 有一组重做日志文件。
d. 每个 CDB 实例仅有一个 UNDO 表空间。
e. 每个 PDB 有一个 SYSAUX 表空间。
答案:d、e
答案:b
b. 错
a. 对
可以在 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
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 和存储
数据库中归档和期间有效性 期间历史记录
HA RMAN
内存中列存储 整个数据库内存中高速缓存
性能 自动大表高速 12.1.0.2
SQL 优化 资源管理器 索引、表
缓存
数据泵、SQL*Loader 和外部表 分区
其他
12.1.0.2
JSON SQL
课程目标
学完本课后,应能完成以下工作:
• 配置和创建 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
wp-12c-1896123.pdf)
Oracle 白皮书“Upgrading to 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
• 将多个 12.1 之前版本的非 CDB 整合到一个更大的数据
库中
• 针对以下需求准备容器
– 插入将来的新应用程序
– 测试应用程序
– 诊断应用程序性能
• 简化打补丁和升级工作并缩短这些工作的时间
为何创建容器数据库?
本幻灯片中解释了创建容器数据库的几个原因。
工具
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
创建容器数据库的步骤
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
创建容器数据库:使用 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。
2. 创建数据库:
— CDB$ROOT 容器
— PDB$SEED 可插入数据库
3. 运行 catcdb.sql 脚本。
创建容器数据库:使用 DBCA
Oracle University and Error : You are not a Valid Partner use only
版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。
新子句:SEED FILE_NAME_CONVERT
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');
无 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'
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
数据字典视图:DBA_xxx
DBA_xxx 根或可插入数据库中的所有对象
Oracle University and Error : You are not a Valid Partner use only
USER_xxx PDB 中的当前用户拥有的对象
• DBA_tablespaces:PDB 的所有表空间
• DBA_data_files:PDB 的所有数据文件
• DBA_tables:PDB 中的所有表
• DBA_users:PDB 的所有公用和本地用户
数据字典视图:CDB_xxx
CDB_xxx 容器数据库中的所有对象(新列 CON_ID)
DBA_xxx 根或可插入数据库中的所有对象
Oracle University and Error : You are not a Valid Partner use only
ALL_xxx 可供 PDB 中的当前用户访问的对象
数据字典视图:示例
• 比较:
SQL> CONNECT / AS SYSDBA
1 SQL> SELECT role, common, con_id FROM cdb_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;
NAME OPEN_MODE
---------------- ----------
PDB$SEED READ ONLY
PDB1 READ WRITE
PDB2 READ WRITE
数据字典视图:V$xxx 视图
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
创建 CDB 后:待办事项列表
Oracle University and Error : You are not a Valid Partner use only
• 为根和每个 PDB 设置独立的默认表空间
• 为每个容器设置默认临时表空间
• 启动监听程序
• 插入非 CDB
• 测试启动/关闭过程
12.1.0.2
自动诊断资料档案库
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
incdir_1 … incdir_n
ADRCI
log.xml alert_SID.log
自动诊断资料档案库:alert.log 文件
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');
答案:a
c. 种子可以删除。
b. 它不是一个容器。
测验
测验
创建了一个 CDB。关于种子可插入数据库的说法中,哪一项
Oracle University and Error : You are not a Valid Partner use only
是正确的?
a. 您需要自己复制种子数据文件。
b. 在 CREATE DATABASE 语句中使用新子句 SEED
FILE_NAME_CONVERT。
c. 种子可插入数据库不是必需的。
d. 种子可插入数据库不需要数据文件。
答案:b
预配新的可插入数据库
多种方法:
Oracle University and Error : You are not a Valid Partner use only
• 从种子 PDB 创建新的 PDB。
• 将非 CDB 插入或克隆到 CDB 中。
• 克隆:
– 将本地 PDB 克隆到同一个 CDB 中
– 将远程 PDB 克隆到 CDB 中
• 将移走的 PDB 插入到另一个 CDB 中。
工具
要预配新的 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
– 从种子复制
– 通过移走/插入方法
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
步骤:使用位置子句
以拥有 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> 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
-
空间列表(SYSTEM、SYSAUX)。
3. 语句完成后,使用视图验证 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'
同步
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。
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
Oracle University and Error : You are not a Valid Partner use only
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;
方法 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。
• 新服务名
此方法从 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 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;
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。
方法 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
当前的文件位置? 子句。
若干子句可根据不同的假设结合在一起使用:
第一个问题:新 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 初始化参数指定目标位置。
如果使用上述多种方法,先后顺序为:
• 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;
PDB_NAME STATUS
------------ ------------
PDB1 NORMAL
PDB$SEED NORMAL
PDB3 UNPLUGGED
Oracle University and Error : You are not a Valid Partner use only
3
4
使用 PDB 文件集
插入采用示例
方案的新 PDB
删除 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
Oracle University and Error : You are not a Valid Partner use only
数据库升级到 12c。 根
impdp
2
转储文件 复制 XML 文件
或 expdp
数据文件 控制 重做
文件 日志文件
测验
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 子句。
答案:c、d
测验
Oracle University and Error : You are not a Valid Partner use only
a. 只能在 PDB 关闭时删除 PDB。
b. 可以删除种子 PDB,但删除后不能在 CDB 中创建任何
其他 PDB。
c. 可以删除 PDB,并保留数据文件,以备另一个 PDB
重用。
d. 删除 PDB 时,数据文件和重做日志文件将自动从存储
文件系统删除。
答案:a、c
小结
在本课中,您应该已经学会:
• 配置和创建 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
练习
• 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 合并为一个
可插入数据库
管理多租户容器数据库和
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
热图和自动数据优化 联机数据文件移动
ADO 和存储
数据库中归档和期间有效性 期间历史记录
HA RMAN
内存中列存储 整个数据库内存中高速缓存
性能 自动大表高速 12.1.0.2
SQL 优化 资源管理器 索引、表
缓存
数据泵、SQL*Loader 和外部表 分区
其他
12.1.0.2
JSON SQL
课程目标
学完本课后,应能完成以下工作:
Oracle University and Error : You are not a Valid Partner use only
• 建立到 CDB/PDB 的连接
• 启动和关闭 CDB
• 打开和关闭 PDB
12.1.0.2
注释
要全面了解多租户体系结构和使用方法,请参阅 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)
连接
多租户容器数据库 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;
默认服务
在 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 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 的用户访问。
为 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
使用 SQL*Developer 连接
h1
h1
h1
Oracle University and Error : You are not a Valid Partner use only
h1
多租户容器数据库
根容器/
djeunot 服务名
PDB1 容器 /
pdb1 服务名
PDB2 容器 /
pdb2 服务名
切换连接
多租户容器数据库 在 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 触发器不触发。
– 事务处理在切换容器后依然保持暂挂状态。
启动 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
装载 CDB
SQL> CONNECT sys@CDB1 AS SYSDBA 或
SQL> STARTUP 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
打开 CDB
SQL> STARTUP 或
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
CDB 打开时根也会打开,这意味着所有重做日志文件和根数据文件都已打开,但所有
PDB 仍然处于仅装载状态。只有到根的连接允许操作。需要发布单独的语句打开 PDB,
除非触发器在 STARTUP DATABASE 后自动打开 PDB。
可使用 V$PDBS 视图中的 open_mode 列验证所有 PDB 仍然处于装载状态,但处于只读
模式的种子除外。这允许从种子创建新的 PDB。
打开 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
关闭 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;
– CDB 控制文件已为实例打开
– 根已装载
– PDB 已装载
NOMOUNT
实例
SHUTDOWN 已启动
关闭 CDB 实例
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 已关闭
12.1.0.2
自动打开 PDB
Oracle University and Error : You are not a Valid Partner use only
案例 1 案例 2 案例 3
SHUTDOWN
自动打开
PDB STARTUP
案例 1 案例 2 案例 3
新的事件触发器
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
语句之前或之后触发。
更改 PDB 打开模式
关闭 PDB 后,可在三种模式下打开 PDB:
• 受限读写:
Oracle University and Error : You are not a Valid Partner use only
SQL> ALTER PLUGGABLE DATABASE pdb1 OPEN RESTRICTED;
• 只读:
SQL> ALTER PLUGGABLE DATABASE ALL OPEN READ ONLY;
• 读写:
SQL> ALTER PLUGGABLE DATABASE ALL CLOSE;
SQL> ALTER PLUGGABLE DATABASE ALL OPEN;
3. 关闭 PDB 并
应用。
Oracle University and Error : You are not a Valid Partner use only
2. 单击“Modify State
(修改状态)”。
4. 选择打开模式
并应用。
1. 选择要更改状
态的 PDB。
修改 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;
实例参数更改影响
• 每个 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
实例参数更改影响:示例
Oracle University and Error : You are not a Valid Partner use only
SQL> ALTER SYSTEM SET ddl_lock_timeout=20 scope=BOTH;
测验
Oracle University and Error : You are not a Valid Partner use only
判断对错。
a. 实例已启动。
b. 控制文件已打开。
c. 根容器已打开(重做日志和根数据文件)。
d. 种子可插入数据库处于 READ ONLY 模式。
e. 其他 PDB 依然处于 MOUNTED 模式。
答案:错
并非所有 PDB 都会保持装载状态。如果在 CDB 重新启动之前,PDB 已打开并且状态已
保存,那么这些 PDB 将自动打开。
答案:a
打开。
b. 对
a. 错
种子 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 的不同模式和设置
12.1.0.2
•
•
•
•
5-2:打开和关闭 PDB
5-1:启动和关闭 CDB
5-4:更改实例参数(可选)
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
热图和自动数据优化 联机数据文件移动
ADO 和存储
数据库中归档和期间有效性 期间历史记录
HA RMAN
内存中列存储 整个数据库内存中高速缓存
性能 自动大表高速 12.1.0.2
缓存
SQL 优化 资源管理器 索引、表
数据泵、SQL*Loader 和外部表 分区
其他
12.1.0.2
12.1.0.2
JSON SQL
课程目标
学完本课后,应能管理:
Oracle University and Error : You are not a Valid Partner use only
• CDB 和 PDB 中的永久表空间
• CDB 和 PDB 中的临时表空间
• 公用用户和本地用户
• 公用角色和本地角色
• 公用权限和本地权限
注释
要全面了解 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)
PDB 中的表空间
Oracle University and Error : You are not a Valid Partner use only
个对象。
• 在 CREATE DATABASE 中:
– 利用 DBCA,USER_DATA TABLESPACE 替换自动创
建 USERS 表空间。
• 每个 CDB 实例只有一个活动 UNDO 表空间。
在 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;
• 在根容器中创建永久表空间:
分配默认表空间
多租户容器数据库 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;
创建本地临时表空间
Oracle University and Error : You are not a Valid Partner use only
表空间组。
• 每个 PDB 具有其自己的临时表空间或表空间组。
多租户容器数据库 CDB1
根 TEMP_ROOT
PDBtest TEMP
PDBHR LOCAL_TEMP
PDBdev TEMP
分配默认临时表空间
• 在 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;
根的默认临时表空间在根容器级别进行设置。可能存在多个临时表空间,但仅有一个可以
是默认临时表空间。
可以为每个 PDB 设置一个默认临时表空间(或表空间组)。PDB 可以具有多个临时表空
间,但每个 PDB 仅有一个默认临时表空间。
创建用户时,可以指定该用户要使用的临时表空间。如果未指定临时表空间,则使用
PDB 的默认表空间。
可以限制 PDB 可在共享临时表空间中使用的空间量:
ALTER PLUGGABLE DATABASE STORAGE (MAX_SHARED_TEMP_SIZE 500M);
在该示例中,如果连接到 PDB 的会话使用的值大于 500M,则共享临时表空间中没有额
外存储空间可用于连接到 PDB 的会话,除非这些会话使用的存储空间量小于 500M。
从 CDB 移走 PDB 时,也会移走其临时表空间。
用户、角色和权限
• 每个用户可以在单个数据库的上下文中行使授予的权限。
Oracle University and Error : You are not a Valid Partner use only
• 角色是权限的集合。
权限 1
权限 2 角色 1
权限 3
权限 4
非 CDB
在非 CDB 中,用户可以对对象权限允许的对象执行系统权限授权的操作。这些权限仅适
用于用户所连接的数据库。
角色是一组权限。可以在特定的数据库上下文中行使权限。可以直接或通过角色授予
权限。
在过去,已经隐含了短语“在单个数据库上下文中”。考虑每个实例仅有一个数据库时,
这似乎是微不足道的断言,但这对于理解 PDB 中的本地用户、本地权限和本地角色非常
关键。
本地用户、角色和权限
Oracle University and Error : You are not a Valid Partner use only
• 本地角色是在用户登录到特定的 PDB 时分配的权限
集合。
• 本地权限是在单个 PDB 的上下文中授予的权限。
本地权限 1
本地权限 2 本地
角色 1
本地权限 3
本地权限 4
PDB
创建本地用户
• 具有适当权限的本地用户可以创建其他本地用户。
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
公用用户
多租户容器数据库 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
创建用户
• 公用用户可以创建公用用户和本地用户。
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
公用方案/用户和本地方案/用户
多租户容器数据库 CDB1
根 PDB_SALES
视图 CDB_USERS 视图 DBA_USERS
Oracle University and Error : You are not a Valid Partner use only
USERNAME COMMON USERNAME COMMON
视图 DBA_USERS PDB_HR
USERNAME COMMON
添加、变更或删除公用用户涉及在根
和每个 PDB 中添加该用户的说明。
SYS YES
SYSTEM YES
CDBA YES
本地用户是传统用户,仅在自己的
C##U YES
PDB 中为已知。
HR_MGR NO 表空间
EXAMPLE
公用权限和本地权限
• 在所有容器中授予的权限是公用权限。
Oracle University and Error : You are not a Valid Partner use only
• 在单个 PDB 的上下文中授予的权限是本地权限。
• 本地用户只能在本地行使 PDB 的上下文中的权限。
• 公用用户只能行使所连接的 PDB 的上下文中的权限。
• 连接到根容器的公用用户可以行使跨容器权限,如创建
公用用户。
某个权限会根据其被授予的方式成为公用权限或本地权限。在所有容器中授予的权限是公用
权限。在特定的 PDB 中授予的权限是本地权限。
公用用户和本地用户可以行使在其连接的 PDB 上下文中授予的公用权限和本地权限。可以
为公用用户授予公用权限和本地权限。这意味着授予公用用户的权限在每个 PDB 中可能是
不同的。
只有公用用户才可以连接到根容器。即使在根容器中,也可以将权限作为本地权限或公用权
限进行授予。跨容器操作(如创建公用用户)只能在连接到根容器时执行,并且只能由对这
些操作具有公用权限的公用用户执行。
授予和撤消权限
多租户容器数据库 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
在所有容器中授予的权限是公用权限。在本幻灯片中的示例中,使用 CONTAINER=ALL
子句将 CREATE SESSION 权限以全局方式授予 c##dba 用户。在所有容器中复制该授予
操作。因此,会在每个容器中向同一用户 c##dba 授予相同的权限。
在特定的 PDB 中授予的权限是本地权限。在本幻灯片中的示例中,将 ADVISOR 权限在
本地授予 u1 用户。不在所有容器中复制该授予操作。即使该用户是公用用户,也不会复
制该授予操作。因此,仅在 PDB_SALES 容器中向用户 u1 授予该权限。
GRANT 和 REVOKE 的语法和行为基本未更改。已使用 CONTAINER 子句对语法进行了扩
展,因此具有适当权限的用户可以通过以全局或本地方式授予权限。
当用户使用 CONTAINER=ALL 子句授予权限时,该权限将成为公用权限。用户必须对所
有 PDB 都具有 SET CONTAINER 权限,因为该用户在每个容器中会向同一公用用户授予
该权限。
当用户使用 CONTAINER=CURRENT 子句授予权限时,该权限将成为本地权限。
创建公用角色和本地角色
多租户容器数据库 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
创建的跨所有容器的角色是公用角色。在本幻灯片中的示例中,使用 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;
公用角色 本地角色
在本地
授予的角色 本地角色
公用用户 本地用户
向用户授予公用角色和本地角色
多租户容器数据库 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 用户
在本地授予的本地角色
HR
公用用户 本地用户
创建共享对象和非共享对象
• 公用用户和本地用户可以创建非共享表。
Oracle University and Error : You are not a Valid Partner use only
• 用户无法创建共享表。
• Oracle 提供的用户可以创建共享表。
定义者权限的限制
本地用户无法对公用用户的方案行使本地系统权限。
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
用户无法对公用用户的方案行使本地系统权限。
示例:假设本地用户不具有对公用用户方案中的表执行 DML 的权限,但具有 CREATE
ANY PROCEDURE 和 EXECUTE ANY PROCEDURE 权限。该本地用户不允许创建可以作
为公用用户根据公用用户的方案发出语句的定义者权限 PL/SQL 过程,然后继续执行该过
程以避开对本地用户的限制。
测验
Oracle University and Error : You are not a Valid Partner use only
说法中,哪一项是正确的?
a. 可以在根容器中创建本地角色。
b. 仅当在根容器中连接时才可以创建公用角色。
c. 可以在 PDB 中创建公用角色。
d. 可以在种子中创建公用角色和本地角色。
答案:b
答案:b、c、d
a. 具有相同的名称
b. 被授予相同的权限
c. 被授予本地角色和公用角色
测验
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 中所有类型的表空间
•
•
•
•
6-1:管理表空间
练习
6-4:管理公用权限和本地权限
6-3:管理公用角色和本地角色
6-2:管理公用用户和本地用户
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
Oracle University and Error : You are not a Valid Partner use only
热图和自动数据优化 联机数据文件移动
ADO 和存储
数据库中归档和期间有效性 期间历史记录
HA RMAN
内存中列存储 整个数据库内存中高速缓存
性能 自动大表高速 12.1.0.2
缓存 SQL 优化 资源管理器 索引、表
数据泵、SQL*Loader 和外部表 分区
其他
12.1.0.2
JSON SQL
课程目标
学完本课后,应能完成以下工作:
Oracle University and Error : You are not a Valid Partner use only
• 执行 CDB 和 PDB 备份
• 恢复 CDB 中丢失的重要文件
• 恢复 PDB 中丢失的 PDB 数据文件
• 执行闪回数据库
注释
要全面了解 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 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
RMAN 中的新语法和子句
$ export ORACLE_SID=cdb1 $ rman TARGET sys@sales_pdb
$ rman TARGET /
Oracle University and Error : You are not a Valid Partner use only
RMAN> BACKUP DATABASE;
RMAN> RECOVER DATABASE;
• 使用 CDB$ROOT 关键字备份、还原、恢复根:
RMAN> BACKUP PLUGGABLE DATABASE "CDB$ROOT";
备份 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
数据文件备份集 备份集
备份根和/或单独的 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
数据文件备份集 备份集
Oracle University and Error : You are not a Valid Partner use only
RMAN> BACKUP PLUGGABLE DATABASE sales_pdb;
sales_pdb hr_pdb
SYSTEM
SYSTEM
SYSAUX
TBS2 SYSAUX
SPFILE
控制文件 + SPFILE
数据文件备份集 备份集
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
SPFILE
控制文件 + SPFILE
数据文件备份集 备份集
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
根
数据文件备份集
•
•
•
7-1:CDB 的冷备份
练习
恢复
• 实例恢复:仅 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
实例故障
实例
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
NOARCHIVELOG 模式
Oracle University and Error : You are not a Valid Partner use only
请执行以下任务:
• 如果实例尚未关闭,请关闭实例。
• 还原整个 CDB(包括所有数据文件和控制文件)。
• 启动实例并打开 CDB 和所有 PDB。
用户必须重新输入自上一次备份以来所做的所有更改。
介质故障: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 打开时自动重新创建临时文件
• 也可以手动重新创建
创建用户时,可以指定该用户要使用的临时表空间。如果未指定临时表空间,则使用
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‘;
介质故障:PDB 临时文件恢复
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 打开时自动重新创建临时文件
• 也可以手动重新创建
介质故障:控制文件丢失
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
种子
数据文件 控制文件
如果控制文件缺少或损坏,由于控制文件属于 CDB,因此实例很快就会崩溃,并需要进
行整个 CDB 介质恢复。
• 首先启动 CDB 实例。
• 然后从备份中还原控制文件。
• 装载 CDB。
• 然后在重置日志中恢复和打开 CDB。
有两种可能:
RMAN> ALTER DATABASE OPEN RESETLOGS;
RMAN> ALTER PLUGGABLE DATABASE ALL OPEN;
或
SQL> ALTER DATABASE OPEN RESETLOGS;
介质故障:重做日志文件丢失
数据文件 重做日志
控制文件 文件
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 类似的方法继续操作。
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
数据文件 控制文件
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
种子
数据文件 控制文件
介质故障: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
归档日志文件 控制文件
数据文件
介质故障: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;
}
Oracle University and Error : You are not a Valid Partner use only
闪回 CDB
Oracle University and Error : You are not a Valid Partner use only
1. 配置 FRA。 2. 设置保留目标。 3. 启用闪回数据库。
• 执行根闪回时会闪回整个 CDB。
• 任何闪回均不会闪回到早于执行 PDBPITR 时的时间点的时间点。
闪回 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;
特殊情况
• 创建控制文件备份脚本:
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 …;
测验
Oracle University and Error : You are not a Valid Partner use only
a. 可以在 RMAN 中连接到特定的目标 PDB。
b. 仅当在 RMAN 中连接到目标 PDB 时,才可以备份整个
PDB。
c. 可以使用表空间备份备份特定的 PDB 表空间。
d. 可以使用特定于容器的备份备份根容器。
答案:a、c、d
答案:a
b. 错
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
•
•
•
•
执行闪回数据库
执行 CDB 和 PDB 备份
在本课中,您应该已经学会:
小结
恢复 CDB 中丢失的重要文件
恢复 PDB 中丢失的 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 闪回
课程单元
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
热图和自动数据优化 联机数据文件移动
Oracle University and Error : You are not a Valid Partner use only
ADO 和存储
数据库中归档和期间有效性 期间历史记录
HA RMAN
内存中列存储 整个数据库内存中高速缓存
性能 自动大表高速
12.1.0.2
数据泵、SQL*Loader 和外部表 分区
其他
12.1.0.2
JSON SQL
课程目标
学完本课后,应能完成以下工作:
Oracle University and Error : You are not a Valid Partner use only
• 描述如何使用热图进行活动跟踪
• 使用视图来显示热图统计信息
• 描述自动数据优化
• 创建 ADO 策略
• 使用视图和过程来监视 ADO
• 联机移动数据文件
• 联机移动分区
注:要全面了解热图和自动数据优化的新增功能和使用方法,以及联机移动数据文件和分
区的功能,请参阅 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
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。 加密数据。
什么是信息生命周期管理(也称为 ILM)?在业务数据生命周期内管理业务数据的战略
是,降低成本、改善数据库中的数据访问以及满足监管要求。ILM 是一种在信息的使用
生命周期中应用策略来实现高效信息管理的做法。ILM 包括某个“行”的所有阶段。它由
策略、过程、实践以及工具组成,在从信息的产生直到其最终处理的过程中,将信息的业
务价值与最适宜和经济高效的 IT 基础结构对应起来。
Oracle DB 的客户对于利用压缩和存储分层来满足其 ILM 需求非常有兴趣。虽然许多客
户可能采取了充分的压缩,仍有一部分客户希望进一步优化休眠的数据,将其移动到高密
度低成本的 Oracle Storage 或其他较低成本的存储中。
要为休眠数据(例如,一年多前的销售订单)利用存储分层或压缩分层,联机事务处理
(OLTP) 应用程序需要对较大的表实施分区。Oracle 支持分区,并提供了高级文档来介绍
其使用方法,不过需要由客户来实施和验证分区。
12c 之前版本
ILM 组件
数据分类 已调度的自动化操作
级别 1 个月以后:第 1 阶段
– 压缩
Oracle University and Error : You are not a Valid Partner use only
– 表 2 个月以后:第 2 阶段
– 表分区 – 压缩 + 移动到低成本存储层
11 个月以后:第 3 阶段
– 压缩 + 移动到联机归档存储层
6 年以后:最后一个阶段:清除
生命周期定义:
12c
ILM 难题
收集数据 图像 Office 文档
Oracle University and Error : You are not a Valid Partner use only
数据生命
管理数据 存储数据
周期
XML 文件 空间 扫描的文档
共享数据 使用数据
降低磁盘成本 改善性能
数据增加,性能降低
更大量的数据
更多监管要求
保护数据 更多监管要求
在 Oracle Database 12c 中面临的 ILM 难题仍旧与 Oracle Database 11g 中相同:
• 降低存储成本
• 改善性能
• 保护数据
此外,数据量持续增长,非结构化数据占用了大量存储空间。许多公司需要将数据保留
更长的时间,以满足合规性要求。因此,公司需要将更多的数据在更长时间内保持联机模
式,以使其可用,这增加了存储成本。管理数据增长仍然是数据库用户的首要难题。伴随
数据增长而来的通常是应用程序性能下降。
在 Oracle Database 11g 中,生命周期事件扫描以及后续的操作需要手动执行。而在
Oracle Database 12c 中,新的解决方案允许用户设置策略,针对分类数据定义应用程序
指定的规则。这些规则强制数据自动流动,最大限度地减少手动干预。
12c
解决方案
降低磁盘成本:
– 采用多个不同的存储层,更高效地管理存储。
– 使用压缩级别。
Oracle University and Error : You are not a Valid Partner use only
改善性能: 自动数据优化
• 使用不同压缩级别 • 最近插入,频繁更新
• 高级行压缩(2-4 倍)
自动数据优化: 活动 • 在 DRAM 和闪存中高速缓存
• 策略可以自动完成以下操作: • 很少访问,经常报告
• 高压缩级别(10 倍)
– 根据用户定义的规则 经常访问 • 高性能存储
进行压缩 • 很少访问
– 在空间不足时移动数据 • 高压缩级别(10 倍)
偶尔访问 • 低成本存储
数据库中归档: • 因供长期分析使用或遵守公司策略
而保留
• 行归档 休眠
• 归档压缩(15-50 倍)
• 期间有效性 • 归档存储(数据库或磁带)
磁盘成本和性能下降
随着数据增长,企业通常的应对措施是购买和安装更多的磁盘存储。而更加明智的方法是
实施分层存储战略,采用信息生命周期策略来更好地管理数据和更高效地控制成本。
在数据库中,对各种数据的业务需求不尽相同。数据在其生命周期中会经历不同阶段。首
先是活动数据阶段,这一阶段中将频繁查询和修改数据。经过一段时间之后,此数据的活
动性降低。这段时间会经常查询数据(例如,用于生成报告),但很少修改。在第三个阶
段,数据开始或多或少进入休眠状态。这段时间既不查询也不更新数据,但需要保留以满
足合规性和监管目的。因此,数据进入归档存储阶段,归档存储仍可位于数据库中,不一
定必须在数据库之外。
通常需要将段从一个表空间移动到另一个表空间。例如,可能会由于段所在的表空间上的
空间不足,将段移动到另一个表空间,这就实现存储分层。ILM 基础结构必须管理表段的
存储分层。
另一种经常出现的情况是,需要将段移动到新的压缩级别或者将一组行从一个压缩级别移
动到另一个压缩级别,而不将其移动到其他段。例如,对于可能不再会修改的行,在同一
段中可以采用 Row Store 高级压缩级别进行压缩。
什么是热图和自动数据优化 (ADO)?
Oracle Database 12c 包含使用热图进行活动跟踪的功能,能够针对数据生命周期更改来
跟踪和标记数据:
• 在段级别访问数据
• 在块和段级别修改数据
在内存中收集块级别和段级别统计信息并存储在 SYSAUX 表空间的表中。
Oracle University and Error : You are not a Valid Partner use only
使用 ADO 可以创建使用热图统计信息的策略,仅在必要时才压缩和移动数据。ADO 自
动评估和执行策略,这些策略可以执行压缩和存储分层操作。
Oracle Database 12c 中对数据库中归档有哪些改进?
• 数据库中归档解决了有关归档数据和活动数据的问题。它使用户能够在同一数据库
表中同时保留活动的可操作数据和休眠的归档数据。在实现归档操作效率的同时,
应用程序可以轻松地只访问处于可操作活动状态的数据,虽然归档数据也保留在同
一表中。
• 另一个功能是期间有效性,该功能为表的每一行创建有效时间维,这是另一种指示
操作相关性的方法。每个有效时间维包括两个在表定义中指定的日期时间列。如果
数据不再有效,或者尚未生效,可以轻松地在常规查询中隐藏此数据。
12c
组件
热图和自动数据优化
Oracle University and Error : You are not a Valid Partner use only
内容 条件和时间 然后自动操作
请考虑上文所定义的流:首先将数据批量加载到表中。在这一阶段,可能不需要压缩来满
足存储和性能服务级别协议 (SLA)。然后,在一段时间内数据会频繁更新和修改,因此最
好将数据保留为未压缩的状态。这时的问题是持续多长时间之后访问和修改量才会减少,
然后您应该考虑压缩甚至将数据移动到其他存储层。接下来的阶段将持续多久才会不再有
数据的访问?此时您应考虑更高的压缩级别甚至将数据移动到归档存储层。
• ADO 提供了在数据库中不同作用域级别上声明策略的功能:表空间、对象和行级
别,由 ADO 基础结构自动实施。ADO 策略是一个针对请求的对象执行所注册操作
的过程,以使这些对象在无需任何用户干预的情况下透明地进入所需状态。
• 策略在数据库中不同存储层之间自动移动数据。策略还会在每个层的不同级别上压
缩数据,并对何时移动数据起到主要控制作用。
例如,在三天未更新分区行的情况下,将根据策略执行自动压缩。使用此功能,应用程序
无需对方案做出明确更改。
使用 ADO 策略可以指定行、分区、表空间的访问或修改应满足什么条件,才应对其执行
压缩或移动操作。
在表空间级别将 ADO 策略设置为默认行为时,表、分区和子分区(包括存储在该表空间
中的新间隔分区)将根据这些策略自动压缩和移动到较低成本的表空间中。
ADO 允许用户设置强制数据自动流动的策略,尽可能减少所需干预。
Oracle University and Error : You are not a Valid Partner use only
12c
什么是自动数据优化
• ADO 策略自动压缩符合条件的数据。
Oracle University and Error : You are not a Valid Partner use only
• ADO 策略根据需要自动移动段。
• ADO 依赖于热图,除非启用热图,否则无法运行。
ADO 策略在预定义的条件下自动执行操作:
• 仅压缩符合条件的数据。
• 在空间不足时将段移动到其他存储层。
ADO 只有在启用热图时才能执行压缩和数据移动。在启用之后,热图将自动收集统计信
息,以在统计信息评估完成后执行 ADO 操作。
自动数据优化需要高级压缩选项。
数据分类级别
活动跟踪和自动数据优化
Oracle University and Error : You are not a Valid Partner use only
内容 条件和时间 然后执行
热图和 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$ 表
启用热图段级别统计信息
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;
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;
DBA_HEAT_MAP_SEGMENT 视图显示最近的段活动跟踪时间。它显示每个段的最后活动
时间。
DBA_HEAT_MAP_SEGMENT 视图的列如下所示:
• SEGMENT_WRITE_TIME 列:指示段的最后写入访问的时间戳
• SEGMENT_READ_TIME 列:指示段的最后读取访问的时间戳
• FULL_SCAN 列:指示段的最后全扫描的时间戳
• LOOKUP_SCAN 列:指示段的最后索引扫描的时间戳
块级别统计信息
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'));
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 University and Error : You are not a Valid Partner use only
• 最长修改时间
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
数据分类 自动检测 自动操作
内容 条件和时间 然后执行
定义自动操作
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
仍然在第二步中,定义操作以及自动执行的级别:
• 执行的操作(请参见幻灯片表中第一列的可能操作):
- 压缩以及什么类型的压缩
- 数据移动到其他存储层
- 当在同一个段上定义了两个策略时,两个策略均应执行
• 可能的执行级别:
- 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 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
首先可能执行的操作是压缩。关于压缩的一些注意事项:压缩可在插入、更新数据或将其
批量加载到表中时进行。
• 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。
创建压缩策略表空间和组
• 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;
本幻灯片中显示的所有示例均假定启用了热图。
第一个示例设置默认表空间 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。
创建压缩策略段和行
• 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;
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)
可执行的第二个操作是将数据移动到其他存储层,这可以是较低成本的存储层,也可以是
带有其他压缩功能(如 HCC)的更高性能存储层。数据移动唯一可能的作用域是
SEGMENT。
在本幻灯片显示的示例中,当包含表 TAB6 的分区 P1 的源表空间达到其占满程度阈值时,
自动将该分区移动到 LOW_COST_STORAGE 表空间。
源表空间的分层占满程度阈值取决于两个参数:
• 对于具有分层策略的对象,如果其所在表空间的占满程度达到 TBS PERCENT USED
阈值(默认为 85),将移动这些对象。
• 对象将持续移动到目标表空间,直至源表空间的空闲程度达到 TBS PERCENT FREE
阈值(默认为 25)。
• 这两个值均可以通过 DBMS_ILM_ADMIN.CUSTOMIZE_ILM 过程控制,并且显示在
DBA_ILMPARAMETERS 视图中。
段级别策略仅在策略的生命周期内执行一次。首次执行之后,将禁用该策略。这仅适用于
分层策略。
请注意,可以向分层策略添加定制条件,以允许您使用表空间占满程度之外的条件来触发
数据移动。
存储分层:优先级
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
存储分层: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;
将某个段移动到其他表空间中时,另一个选项是在对象移动之后将目标表空间设置为
READ ONLY。在备份期间这非常有益,因为 Oracle Recovery Manager (RMAN) 能够跳
过此类表空间。使用这一子句表示您指定了 AFTER 子句或 ON 子句。
依赖于函数的策略
定制操作:
• 创建一个返回 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;
一个段的多个 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
ARCHIVE HIGH SEGMENT AFTER 1 YEAR OF NO ACCESS;
只要多个策略彼此之间没有冲突条件,即可将其应用于同一个段。否则,同一对象存在其
他策略,将不允许将特定策略应用到该对象。
如果同一(对象、操作)的所有策略不是基于同一统计信息,则会出现冲突。例如,所有
压缩策略都必须基于同一统计信息(访问时间、修改时间或创建时间)进行应用。
将高级行压缩策略设置为 3 天内无修改后压缩,同时将 QUERY HIGH 压缩策略设置为
3 天内无修改后压缩,这种设置毫无意义。将高级行压缩策略设置为在创建后 1 天进行压
缩,然后将 QUERY HIGH 压缩策略设置为 30 天内无修改后压缩,并将 ARCHIVE HIGH
压缩策略设置为 180 天内无访问后压缩,这样的设置是可行的。
压缩级别越高,所指定的经过时间应该越久。
在本例中,生命周期自数据加载开始,在表清除操作后结束。
• 经过一天之后,ADO 将评估表级别是否有任何修改。如果没有,则接下来进行高级
行压缩,也就是最低级别的压缩。
• 一个月以后,ADO 仍评估表级别是否有其他任何修改。如果没有,则接下来使用
QUERY HIGH 压缩,这是比高级行压缩级别更高的压缩,在压缩前经过的时间
更长。
• 一年后,ADO 评估是否有任何修改。将表空间占满程度阈值设置为 0 时,必定会将
段移动到 HISTORY 表空间。
某个段移动到特定压缩级别后,将禁用较低压缩级别上的所有段级别策略。这是通过 ILM
框架只能将段移动到更高压缩级别的原因。行级别策略不受此规则的影响。
Oracle University and Error : You are not a Valid Partner use only
此外,在策略评估时,只有当压缩策略将对象移动到的压缩级别要高于对象的字典压缩级
别时,才会执行该压缩策略。
一个段只能有一个 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 COLUMN STORE COMPRESS FOR
QUERY HIGH SEGMENT AFTER 1 YEAR OF NO MODIFICATION;
• 一个对象只允许一个(操作、压缩类型、作用域)。此规则仅对压缩策略有效,其
中操作为 COMPRESSION,类型为压缩类型 (ROW STORE COMPRESS),作用域为
ROW 或 SEGMENT。第二个语句在创建策略时失败,因为已在同一作用域 (ROW) 上配
置 COMPRESSION 策略。如果同一压缩类型的作用域为 SEGMENT,则会发出相同的
错误。
• SEGMENT 级别策略不一定覆盖行级别策略。第三个语句会成功,因为它使用基于相
同统计信息 (NO MODIFICATION) 的不同压缩类型来配置 COMPRESSION 策略。第
四个示例失败,因为它使用不同压缩类型但基于不同统计信息 (NO ACCESS) 来配置
COMPRESSION 策略。可以设置段分层策略。
策略继承
子级别策略会覆盖具有相同操作的父级别策略。
表级别策略:
• 覆盖表空间级别策略
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;
显示策略 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
显示策略
DBA_ILMDATAMOVEMENTPOLICIES
Oracle University and Error : You are not a Valid Partner use only
condition_type,condition_days
FROM DBA_ILMDATAMOVEMENTPOLICIES;
准备评估和执行
段级别策略 行级别策略
在维护窗口中 由 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 相关任务的执行。DBMS_ILM
程序包支持以下两种调度 ADO 相关任务执行的方式:
• 数据库用户在一组对象上调度立即执行 ADO。虽然您可以创建调度,以便比维护窗
口更频繁地触发 ADO 操作评估,不过您也可以立即启动评估。EXECUTE_ILM 过程
提供了这种功能,而不考虑任何以前调度的 ADO 执行。
• 数据库用户可以先查看一组对象上的 ILM 策略评估结果并定制可供执行 ADO 的对
象列表,然后再执行 ADO 相关任务。
还可以停止特定的执行。
定制评估和执行
• 使用 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)
TASK_ID STATE
---------- ---------
26482 ACTIVE
监视评估和执行
• DBA_ILMTASKS
• DBA_ILMEVALUATIONDETAILS
• DBA_ILMRESULTS
Oracle University and Error : You are not a Valid Partner use only
SQL> SELECT * FROM dba_ilmtasks;
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;
段级别策略设计为仅执行一次操作。策略执行成功之后,将禁用该策略,不再评估。如果
需要重新评估,用户可以明确重新启用此策略。
段级别策略在成功执行后会禁用。如果调度了段级别策略但没有成功完成,则会在以后重
新评估。但是,如果在三次调度之后未成功完成,则策略将禁用。行级别策略永不禁用。
用于执行行级别策略的每个新作业会查找之前未压缩的冷行。但是,在完成(成功或失
败)后不会禁用策略,并且策略始终会在以后重新评估。
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;
打开和关闭 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
停止活动跟踪和清除热图统计信息
• 停止会话中的活动跟踪:
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;
• 清除热图统计信息:
活动跟踪的特定情况
Oracle University and Error : You are not a Valid Partner use only
Î NEW_EMP 表不继承 ADO EMP 策略。
Oracle University and Error : You are not a Valid Partner use only
答案:d
d. 以上都不是
b. 不能在段级别压缩。
a. 不能在块级别压缩。
测验
c. 不能基于您自己的条件压缩。
以下哪一项是 ADO 压缩的局限性?
答案:b
b. 错
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
12c
联机移动数据文件
将数据文件联机移动到其他类型的存储系统上。
1 文件系统存储 2 ASM 存储
Oracle University and Error : You are not a Valid Partner use only
联机
移动
1 ASM 存储 2 文件系统存储
联机
移动
压缩
将数据文件联机移动到较低成本的存储:
高成本存储 低成本存储
Oracle University and Error : You are not a Valid Partner use only
联机
移动
未压缩的存储 高压缩级别存储
联机
移动
这意味着可以使用多种维护操作来:
• 将表空间或数据文件从高成本存储移动到较低成本的存储,并允许同时执行 ADO 数
据移动操作。
• 将未压缩数据或 BASIC/OLTP 压缩数据移动到另一个具有较高压缩级别的存储系统,
例如 HCC。这可以是用于数据仓库高性能查询的 COMPRESSION FOR QUERY,也可
以是用于归档休眠数据的 FOR ARCHIVE。ADO 压缩操作可以受益于这种新的增强
功能。
REUSE 和 KEEP
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;
其优势在于将数据文件移动到其他位置、磁盘或存储系统时,您无需关闭数据库或者脱机
移动数据文件。
在本幻灯片中显示的其他操作执行过程中,段压缩或数据移动等 ADO 操作仍可以进行。
Oracle Database 11g 示例显示首先要脱机移动文件。
而 Oracle Database 12c 示例显示了如何将数据文件从 disk1 移动到 disk2。
只有在使用 Oracle 管理的文件时才能省略 TO 子句。在这种情况下,应设置
DB_CREATE_FILE_DEST 参数以指示新的位置。
如果指定了 REUSE 子句,则新文件即使已存在也仍将创建。如果之前的移动命令失败,
并且用户重新发出了同一移动命令,则可以使用 REUSE 子句。如果指定了 KEEP 子句,
则在移动操作后将保留旧文件。如果源文件是 Oracle 管理的文件,则不允许使用 KEEP
子句。
默认情况下,REUSE 和 KEEP 均不使用。
状态
V$SESSION_LONGOPS 中的进度:
• 移动的每个文件都对应一行
Oracle University and Error : You are not a Valid Partner use only
• 迄今为止移动的块数
兼容性
• 数据文件 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(扩展)
• 联机备份
联机移动数据文件操作与以下情况不兼容:
• 数据文件是 OFFLINE 数据文件
• 正在执行并发的闪回数据库操作
• 正在完成介质恢复
• 正在执行涉及同一文件的文件收缩操作或表空间脱机/删除操作
与以下情况兼容:
• 块介质恢复
• ALTER TABLESPACE READ ONLY 或 READ WRITE 操作
• 数据文件扩展操作
• 涉及同一文件的表空间/数据库联机备份模式
闪回数据库
Oracle University and Error : You are not a Valid Partner use only
移动
闪回数据库之后:
数据文件 B
resetlogs
SCN 260
Hour 2:30
如果将数据库闪回到尚未移动文件的时间点,则闪回数据库操作不会将文件名更改为原始
名称,不过该操作会将旧内容写入文件中。
联机移动分区
• 在极少访问或更新分区和子分区的情况下,将分区和子分区联机
移动/分离/合并到低成本存储
Oracle University and Error : You are not a Valid Partner use only
高成本存储 低成本存储
联机
移动
SALES 2008、2009 分区 SALES 2008、2009 分区
• 联机压缩分区和子分区
未压缩的 高压缩级别
联机
联机移动分区:优点
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';
• 联机压缩分区
SQL> ALTER TABLE ORDERS
高压缩级别 MOVE PARTITION ORD_P1
ROW STORE COMPRESS
UPDATE INDEXES ONLINE;
联机移动分区:压缩
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;
测验
以下关于联机移动数据文件的说法中,哪一项是正确的?
Oracle University and Error : You are not a Valid Partner use only
a. 联机移动数据文件会阻止对存储在数据文件中的段执行
DML 操作。
b. 将数据库闪回到联机重命名数据文件之前的时间点时,
将保留新名称。
c. 数据文件处于 OFFLINE 模式时,可以联机移动数据
文件。
d. 数据文件处于 BEGIN BACKUP 模式时,无法联机移
动数据文件。
答案:b
小结
在本课中,您应该已经学会:
Oracle University and Error : You are not a Valid Partner use only
• 描述新的 Oracle Database 12c 自动数据优化功能
• 描述如何使用热图进行活动跟踪
• 使用视图来显示热图统计信息
• 描述自动数据优化
• 创建 ADO 策略
• 使用视图和过程来监视自动数据优化
• 联机移动数据文件
• 联机移动分区
•
•
•
•
•
8-1:启用热图
8-5:联机移动数据文件
练习
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
Oracle University and Error : You are not a Valid Partner use only
热图和自动数据优化 联机数据文件移动
ADO 和存储
数据库中归档和期间有效性 期间历史记录
HA RMAN
内存中列存储 整个数据库内存中高速缓存
性能 自动大表高速 12.1.0.2
SQL 优化 资源管理器 索引、表
缓存
数据泵、SQL*Loader 和外部表 分区
其他
12.1.0.2
JSON SQL
数据库中归档:数据库中归档解决了与不活动数据相关的问题。它使用户能够在同一数据
库表中同时保留活动的可操作数据和不活动的归档数据。在实现归档操作效率的同时,应
用程序可以轻松地只访问处于可操作活动状态的数据,虽然归档数据也保留在同一表中。
期间有效性:期间有效性是 Oracle Database 12c 中新增的数据库期间功能。期间有效性
为有效时间(用户定义的时间)语义提供支持。期间有效性这一新功能为表的每一行创建
有效时间维,这是另一种指示行的操作相关性的方法。
Total Recall 数据库选件也称为闪回数据归档 (FDA),现在称为期间历史记录,此选件已
不再可用。在 Oracle Database 12c 中,它已通过新功能获得增强。
课程目标
学完本课后,应能完成以下工作:
Oracle University and Error : You are not a Valid Partner use only
• 区分数据库中归档与期间有效性
• 仅针对活动数据可见性启用行归档
• 描述期间有效性相比期间历史记录的优势
• 在表级别设置期间有效性
• 使用新的 SQL 期间数据类型
• 使用期间有效性来反映业务有效性
• 了解会话级别或闪回时间点查询
• 描述期间历史记录 (FDA) 增强功能
12c 之前版本
归档难题
归档中的难题包括:
Oracle University and Error : You are not a Valid Partner use only
• 保持归档数据在数据库中即时可用
• 编写程序以将数据从磁带重新加载到数据库中
• 备份海量数据,包括旧数据
• 删除旧数据
数据在其生命周期中通常会到达某个时间点,此时这些数据不再会经常被访问,因此认为
适合进行归档。传统做法是将这些数据从数据库中删除并存储到磁带上,因为磁带能够以
极低的成本存储海量信息。此解决方案的主要不足如下:
• 数据不能即时可用
• 开发人员需要编写程序将数据从磁带归档重新加载到数据库中。实践证明,这一过
程成本高昂,非常耗时
历史数据通常不保存在数据库中,因为备份大量旧数据会对备份造成巨大影响。
现在,在 Oracle Database 11g 中,不再需要将这些数据归档到磁带,而是将其保留在
数据库中。这一过程称为数据库中归档,该机制将操作数据和归档数据存储在同一数据
库中,这与旧/历史数据的数据库外归档形成对比。
12c 之前版本
归档解决方案
分区
2003 - 2008 2009 2010
2009
Oracle University and Error : You are not a Valid Partner use only
2009 年第 3 季度的总销
售收入是多少?
仅访问相关的分区。
闪回数据归档
闪回数据
更新 基表 历史记录 归档 查询 闪回请求
12c 之前版本
数据库中归档:HCC
最高 10 倍 最高 50 倍
Oracle University and Error : You are not a Valid Partner use only
• 数据仓库表的查询模式
– 通常 10 倍的压缩率
• 旧数据的归档模式
– 通常 15-50 倍的压缩率
• 数据按列存储,然后进行压缩
工作原理
典型的数据库压缩算法对存储在数据库数据行中的重复值进行压缩。因此,举例而言,
将压缩某个订单行中的所有订单日期。但是,由于行在磁盘上以行格式存储,在出现的
每两个订单日期值之间存储了许多不相关的信息:在两个订单日期之间可以找到的其他
值包括:订单 ID、客户 ID、产品 ID 等等。
Hybrid Columnar 压缩使用不同的技术来存储列值。它不以行格式存储数据,而是按列来
高效存储数据:例如,所有订单日期将存储在一起,然后是所有订单 ID、所有客户 ID,
Oracle University and Error : You are not a Valid Partner use only
以此类推。这意味着在一个压缩单元中,可以找到更高比例的重复值,实现更大的压缩
率。一个压缩单元可以跨多个数据块。特定列的值可以跨多个块,也可以不跨多个块。
压缩不再限制为一个数据块。
12c
归档难题和解决方案
难题:
• 将不活动数据和活动数据保留在同一表中。
Oracle University and Error : You are not a Valid Partner use only
• 仅访问活动数据。
• 减少归档存储量。
• 确保对归档数据的高性能访问。
解决方案:
• 数据库中归档
– 活动
– 不活动
• 期间有效性
– 定义有效时间维。
– 按有效时间列进行过滤,仅访问活动数据。
期间有效性提供了添加由两个日期时间列组成的有效时间维的功能,这两列在表定义中指
定。为表中的每一行使用有效时间维是一种指示操作相关性的方法。如果数据不再有效,
则归档此数据并在常规查询中隐藏数据。可以更高效地处理表上大小不断增长的小型活
动数据集。数据可见性依赖于有效时间维上的显式或隐式谓词。在实现归档操作效率的同
时,应用程序可以轻松地只访问处于可操作活动状态的数据,虽然归档数据也保留在同一
表中。
Oracle University and Error : You are not a Valid Partner use only
数据库中归档
• 启用行归档:添加 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
要将同一个表中的活动行与不活动行区分开,然后压缩不活动行,请使用新的数据库中归
档功能。
行归档属性是用于指示行数据的活动程度的行属性。
表中行的相异状态可以定义为:活动和不活动。
要设置行数据活动程度的值,必须在段级别启用 ROW ARCHIVAL。这会增加包含每一行
的状态的新列 ORA_ARCHIVE_STATE。
默认情况下,行在插入时处于活动状态,ORA_ARCHIVE_STATE 值为“0”。
经过一段时间之后,对行的访问会大幅减少,而且行极少更新,但仍被视为处于活动状
态。接下来,对行的访问会变得极少,行不再更新,但仍保留行,以用于记录保留和/或
合规性用途:此时将其视为处于不活动状态。ORA_ARCHIVE_STATE 列中的值“1”
(或“0”以外的任何值)反映了不活动状态。
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;
处于不活动状态的数据可以进行压缩并且需要进行存储压缩。
作为隐藏列,ORA_ARCHIVE_STATE 只有在查询的 select 列表中明确指定时才可见。
管理员必须将 ORA_ARCHIVE_STATE 列的值更新为 1 以将行设置为归档状态。
会话可见性控制
• 会话可见性控制:默认情况下,仅限活动行
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;
ORA_ARCHIVE_STATE FULLNAME
----------------- ------------------
0 JEAN 活动
1 ADAM 不活动
1 JIM 不活动
默认情况下,会话只能看到活动行。
可在会话级别启用活动数据的应用程序可见性。系统将过滤进入不活动生命周期状态的
行,只有活动行可见。
ALTER SESSION 语句使用新的 ROW ARCHIVAL VISIBILITY 子句进行了扩展。默认
情况下,值为 ALL。ACTIVE 值允许在会话中只查看活动数据,而不查看不活动数据。
禁用行归档
• 禁用行归档: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
列已删除
由于不再需要区分活动和不活动行而在表上禁用行归档属性时,将自动删除
ORA_ARCHIVE_STATE 列。
测验
以下关于行归档的说法中,哪一项是正确的?
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 列是期间有效性功能的一部分。
答案:c
12c
期间有效性与期间历史记录
Oracle University and Error : You are not a Valid Partner use only
• 期间有效性
100 Clerk 22-Apr-11
• 期间历史记录
闪回数据归档
插入 基表 历史记录 查询 闪回请求
23-Mar-12
使用数据库中归档,您可以将同一个表中的活动行与不活动行区分开,然后压缩不活动
行。现在,您将了解另一种方法,即使用期间有效性来实现同样的目标。
应用程序通常会使用与底层业务相关的日期或时间戳来注释表中所记录事实的有效性(例
如,HR 应用程序中员工的聘用日期,或者保险行业中保单的生效日期)。这种期间属性
称为期间有效性,通常由在创建表时定义有效时间维的用户或应用程序控制。
期间有效性日期或时间戳不同于指示在数据库中记录事实的时间的日期或时间戳。指示
在数据库中记录事实的时间的日期或时间戳是期间历史记录(也称为闪回数据归档)的属
性,由系统管理。Oracle Database 11g Total Recall 功能(也称为 FDA)实施期间历史记
录的事务处理时间。
本幻灯片中的员工 400 是在 3 月 22 日聘用的,但该行在 3 月 23 日输入到 HR.EMP 表
中。3 月 22 日是有效时间期间开始日期,3 月 23 日是事务处理时间期间开始日期。
通过在有效时间维上使用有效时间期间隐式过滤器,查询可以显示当前有效或者将在未来
有效的行。查询可以隐藏当前其事实还未有效的行。
双重期间查询可以同时使用有效时间期间日期和事务处理时间期间日期。
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);
• 插入行时,会明确命名有效时间列。
按有效时间列进行过滤:示例 1
按有效时间列进行过滤,仅访问活动数据。
JEAN
Oracle University and Error : You are not a Valid Partner use only
SCOTT
ADAM
KIM
按有效时间列进行过滤:示例 2
使用针对有效时间的版本查询。
JEAN
SCOTT
Oracle University and Error : You are not a Valid Partner use only
ADAM
KIM
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')
答案:b
测验
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 历史记录或归档表:
- 压缩和取消重复 - 未压缩或未取消重复
12c 历史记录或归档表:已压缩或已取消重复
期间历史记录增强功能:用户上下文元数据
在启用 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
小结
在本课中,您应该已经学会:
Oracle University and Error : You are not a Valid Partner use only
• 区分数据库中归档与期间有效性
• 仅针对活动数据可见性启用数据库中归档
• 描述期间有效性相比期间历史记录的优势
• 在表级别设置期间有效性
• 使用新的 SQL 期间数据类型
• 使用期间有效性来反映业务有效性
• 了解会话级别或闪回时间点查询
• 描述期间历史记录 (FDA) 增强功能
•
•
•
•
9-4:清除 FDA
上下文信息(可选)
练习
9-1:使用带行归档功能的数据库归档
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
审计
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
热图和自动数据优化 联机数据文件移动
ADO 和存储
数据库中归档和期间有效性 期间历史记录
HA RMAN
内存中列存储 整个数据库内存中高速缓存
性能 自动大表高速 12.1.0.2
缓存
SQL 优化 资源管理器 索引、表
数据泵、SQL*Loader 和外部表 分区
其他
12.1.0.2
JSON SQL
统一审计:统一审计工具的作用是将所有审计线索合并到单个统一审计线索表中,提高审
计性能、确保所有 RDBMS 及其他组件(如 RMAN 和数据泵)的审计数据安全性,以及
简化审计配置。
课程目标
学完本课后,应能完成以下工作:
Oracle University and Error : You are not a Valid Partner use only
• 了解统一审计线索的实施及使用统一审计线索的优势
• 启用统一审计
• 配置统一审计
• 创建和启用审计策略
• 将应用程序上下文数据添加到审计记录
• 查看统一审计线索中的数据
• 清除统一审计线索
注释
要全面了解 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
12c 之前版本
审计类型
监视活动:
审计类型 审计的活动
Oracle University and Error : You are not a Valid Partner use only
强制性审计 • STARTUP、SHUTDOWN
• SYSDBA、SYSOPER、SYSASM 连接
标准数据库审计 AUDIT_TRAIL 参数
合规性、隐私和日益复杂的安全威胁导致了对启用本机审计的几乎强制性的要求。对于监
视授权用户尤其如此,但对于可能超出生产环境中正常操作范围的操作也是如此。事实
上,越来越多的外部黑客将授权用户作为攻击目标。因此,审计授权用户活动和应用程序
更改(如 DDL 操作)尤其重要。创建数据库连接、创建表和截断表就是应审计的几个
DDL 操作。从 Oracle Database 11g 开始,默认配置中包含了对这些类型的操作的审计。
Oracle Database 11g 提供了三种不同类型的审计。管理员可以审计在数据库中进行的所
有操作。必须注意的是,审计应有重点,以便仅捕获关注的事件。重点突出的审计对系统
性能的影响最小,并且可提供高度相关的数据用于报告和预警。
• 标准数据库审计可以获取多个有关受审计事件的信息片段,包括发生的事件、事件
发生时间、使受审计事件发生的用户以及事件发生时使用的客户机。
• 使用 AUDIT_SYS_OPERATIONS 参数审计授权用户操作。
• 独立于标准数据库审计,使用细粒度审计可以审计仅在特定列在特定情况下受影响
时发生的 SQL 数据操纵语言语句。
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 过程
确保审计数据安全:
• 系统日志审计:AUDIT_SYSLOG_LEVEL=local1.info
• Oracle Audit Vault
合规性方面的法规和法律要求企业确保客户、雇员和合作伙伴的业务数据和个人数据的安
全。企业必须通过审计用户、活动和关联数据来证明遵守法规。
• 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 University and Error : You are not a Valid Partner use only
– 基于条件的审计配置
– 排除用户,使其免于审计
• 整合:单个统一审计线索
• 安全性:
– 只读审计线索表
– 与审计配置相关的任何操作都接受审计
– 所有 SYS 用户操作都接受审计
– 通过审计角色划分审计管理职责
• 性能:
– 开销可忽略不计
该统一审计工具需要解决以下难题:
• 简单性:
- 将审计选项组合成简单的审计策略
- 进一步简化基于操作的审计配置
- 设置基于条件的审计配置
- 排除用户,使其免于审计
• 整合:将所有审计线索整合到单个统一审计线索表中
• 安全性:
- 依靠只读的审计线索表
- 审计与审计配置相关的任何操作
- 审计任何 SYS 用户可审计的操作
- 通过审计管理角色 AUDIT_ADMIN 和 AUDIT_VIEWER 分离审计管理职责
• 性能:
- Oracle Database 12c 审计可以利用系统全局区 (System Global Area, SGA) 队
列来累积审计记录,实现在开销可忽略的情况下启用审计
安全性和性能:审计体系结构
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
新审计体系结构的工作原理
SGA 内部的指定队列在 AUDSYS 拥有的表中有一个对应的永久存储。
后台进程会每三秒将内容刷新到表中。
每个客户机具有两个 SGA 队列,因此在将第一个队列永久写入表中时,客户机可继续写
入第二个队列。
可以在 UNIFIED_AUDIT_TRAIL 视图中查看审计线索记录。
SYS.DBMS_AUDIT_MGMT.FLUSH_UNIFIED_AUDIT_TRAIL 过程仅在需要在 3 秒延迟
前将队列显式刷新到磁盘时可用。
整合
基本信息 + 特定组件列
在 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
可以审计数据库组件,比如:
• 向框架注册的 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 列中。
数据泵审计策略
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. 查看特定于数据泵的审计信息。
如果要审计数据泵导出或导入操作,必须执行以下步骤:
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 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 实例参数。
混合审计模式:
混合审计模式允许新审计引擎和传统审计引擎同时工作。
• 在升级时,现有的任何审计设置都不会受影响,数据库会继续支持传统审计工具。
建议移植到统一审计工具以利用新的审计体系结构和性能改进。在决定切换到统一
审计模式之前,可以通过使用 CREATE AUDIT POLICY 命令创建策略并使用
AUDIT 命令将其启用来使用混合模式。如果不想创建新策略,则可直接启用某个预
定义的策略(ORA_SECURECONFIG、ORA_ACCOUNT_MGMT 或
ORA_DATABASE_PARAMETER)。以上任一策略都会将数据库置于混合审计模式。
旧的审计语法仍然有效,并且仍会写入到旧的审计目标。但是,可以创建新的审计
策略,并且审计数据也会写入到新的统一审计线索。
• 在创建数据库时,会默认通过启用的预定义策略 ORA_SECURECONFIG 使用混合审
计模式。但统一审计模式尚未启用。
统一审计模式
要启用统一审计,请在 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 University and Error : You are not a Valid Partner use only
策略。
a. 对
b. 错
答案:b
与其他 Oracle DB 组件不同,不为 Oracle RMAN 事件创建统一审计策略。
UNIFIED_AUDIT_TRAIL 视图会自动获取通常审计的 Oracle RMAN 事件。
答案:b
a. SYS
e. DVSYS
b. AUDSYS
d. LBACSYS
c. AUDIT_ADMIN
测验
选择统一审计线索的方案所有者。
安全性
• AUDSYS 方案中的只读审计线索表
• 强制审计所有与审计相关的活动
Oracle University and Error : You are not a Valid Partner use only
• 强制审计所有顶级语句(STARTUP、SHUTDOWN、
ALTER DATABASE 和 ALTER SYSTEM)
• 用于管理审计和查看审计数据的角色:
– DBA:
创建表空间 以存储审计表
— 管理审计线索
– AUDIT_VIEWER: UNIFIED_AUDIT_TRAIL
合规性方面的法规和法律要求企业通过审计用户、活动和关联的数据来确保审计数据的安
全。会自动审计作为 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 角色可以查看和分析审计数据。
简单性:审计策略
• 不再使用 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 视图中查看被审计的数据
第 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;
要创建审计策略,必须先定义系统范围或特定于对象的审计选项。
系统范围的选项
• 权限审计选项审计使用指定系统权限的所有事件,如本幻灯片中的第一个示例所示。
• 操作审计选项指示应审计的 RDBMS 操作,如第二个示例中的 ALTER TRIGGER
操作。
• 角色审计选项审计对被直接授予 MGR_ROLE 角色的所有系统权限或对象权限的使用
情况,如第三个示例中所示。
您可在同一个审计策略中配置权限、操作和角色审计选项,如第一个示例所示。
在 SYS.AUDITABLE_SYSTEM_ACTIONS 表中找到包含可审计的系统范围选项的列表。
对象范围的选项
第三个示例创建的审计策略用于审计对任何过程对象的所有执行操作,以及对
HR.RAISE_SALARY_PROC 过程的所有授予操作。对象级审计选项是动态的。即,对这些
操作的更改将适用于当前和后续的用户会话。
条件和评估
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 ;
审计策略启用
下一步是通过使用 AUDIT 语句启用审计策略。
除非定义了审计用户列表,否则将默认审计所有用户。
• 使用 BY 子句可将审计策略应用于一个或多个用户。
审计管理员将按照审计其他用户操作的方式审计特定于 SYS 用户的操作。
• 使用 EXCEPT 子句可排除某些用户。
不能在同一个策略启用语句中同时使用 BY 列表和 EXCEPT 列表。
无论用户的操作是失败还是成功,都将生成审计记录。如果希望仅在用户操作失败时审计
操作,请使用 WHENEVER NOT SUCCESSFUL 子句。如果希望仅在用户操作成功时审计
操作,请使用 WHENEVER SUCCESSFUL 子句。当省略 WHENEVER 子句时,无论操作成
功与否都将审计语句,而且 RETURN_CODE 列将显示操作是否成功。
审计策略禁用
要禁用审计策略,请使用 NOAUDIT 命令。
查看审计策略
• 查看审计策略。
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;
在 AUDIT_UNIFIED_POLICIES 视图中验证创建的审计策略列表。
• CONDITION_EVAL_OPT 列定义评估条件的时间(如有)。
在 AUDIT_UNIFIED_ENABLED_POLICIES 视图中验证启用的审计策略列表。
• ENABLED_OPT 列定义是使用 BY 值定义了审计用户列表,还是使用 EXCEPT 值定
义了排除用户的例外列表。审计或排除的用户在 USER_NAME 列中列出。
• SUCCESS 和 FAILURE 列指示策略是否仅在用户操作成功或失败时生成审计记录。
使用预定义的审计策略
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 …
包括应用程序上下文数据
上下文名称空间 属性/值
MyJob – Developer
CONTEXT_HR
MyLoc – Paris
Oracle University and Error : You are not a Valid Partner use only
CONTEXT_SALES MyRole – Manager
获取统一审计线索中的应用程序上下文信息
应用程序在对数据库服务器执行操作、存储信息(如模块名称和客户机 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 语句。
删除审计策略
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;
审计清理
清理 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)
测验
选择要用于查看启用的审计策略的视图。
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
答案:d
•
•
•
•
•
•
•
配置统一审计
启用统一审计
清除统一审计线索
创建和启用审计策略
实施和使用统一审计线索
在本课中,您应该已经学会:
查看统一审计线索中的数据
小结
将应用程序上下文数据添加到审计记录
•
•
•
•
10-1:启用统一审计
10-2:审计 RMAN 操作
练习
权限
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
热图和自动数据优化 联机数据文件移动
ADO 和存储
数据库中归档和期间有效性 期间历史记录
HA RMAN
内存中列存储 整个数据库内存中高速缓存
性能 自动大表高速 12.1.0.2
缓存
SQL 优化 资源管理器 索引、表
数据泵、SQL*Loader 和外部表 分区
其他
12.1.0.2
JSON SQL
“权限分析”确定要撤消的未使用权限。
“其他权限增强功能”包括新增的管理性系统权限,该权限更侧重于面向任务,以支持职
责分离。
课程目标
学完本课后,应能完成以下工作:
• 实施数据库管理任务的职责分离
Oracle University and Error : You are not a Valid Partner use only
• 描述新增的管理权限
• 描述管理权限的操作系统组
• 创建口令文件以支持新权限
• 说明新系统权限 PURGE DBA_RECYCLEBIN
• 使用数据库权限分析
• 创建并启用权限分析
• 控制调用者的权限过程的权限
• 管理调用者的视图权限行为
注释
要全面地了解权限分析新功能以及新增的管理权限和其他权限的用法,请参阅 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
主要难题
• 职责分离:管理任务依赖于 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
• 安全性:
– 确定要撤消的未使用权限:权限分析
– 在调用者的权限过程调用过程中检查新权限
– 在调用者的权限视图调用过程中检查新权限
作为一项基本安全要求,职责分离的原则决定了完成任何关键任务要有一个关联的角色。
在 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 University and Error : You are not a Valid Partner use only
SYSASM SYS 仅特定于 ASM 实例
操作系统验证和操作系统组
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"
如果不是这些操作系统组的成员,则用户无法使用操作系统验证以管理用户身份进行连接。
即 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。不能更改这些用户组。
SYSBACKUP 的口令验证
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;
• 通过 AS SYSBACKUP 连接。
$ rman target '"JOHN@DBSEC AS SYSBACKUP"'
RMAN>
Oracle University and Error : You are not a Valid Partner use only
PDB 执行备份。
$ rman TARGET '"tim/password@pdb1 AS SYSBACKUP"'
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
答案:b
b. SYS
连接哪个用户?
a. SYSBACKUP
测验
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. 对
测验
新增系统权限:PURGE DBA_RECYCLEBIN
清除所有循环使用的对象:
• 需要 SYSDBA 权限
Oracle University and Error : You are not a Valid Partner use only
SQL> CONNECT / AS SYSDBA 12c 之前版本
• 不需要 SYSDBA 权限
• 使用新的系统权限:PURGE DBA_RECYCLEBIN
SQL> CONNECT system
SQL> grant PURGE DBA_RECYCLEBIN to dba_junior;
权限分析
提高数据库安全性:撤消未使用权限
• 分析已使用的权限以撤消不必要的权限
Oracle University and Error : You are not a Valid Partner use only
• 使用新程序包:DBMS_PRIVILEGE_CAPTURE
限 限
权 权
的 的
使用 使用
APPS PUBLIC 已 未
角色 SELECT ANY TABLE
销售模块
权限过多难题
除了担心 SYSDBA 权限的使用以外,另一个主要的顾虑是现有的数据库和应用程序用户
拥有过多的权限。过多权限违反了最少权限原则。
要实现最少权限原则,需要确定未使用的权限。
权限分析
Oracle Database 12c 提供了一个用于分析所使用权限的新程序包。权限分析需要许可选
件 Oracle Database Vault。
• 可以通过权限分析策略来确定用于运行应用程序模块的对象权限和系统权限,或者
执行已定义的角色所使用的特定 SQL 语句或权限。
• 在分析期间,可以生成有关已使用权限和未使用权限的报告。
• 通过比较已使用和未使用的授予权限列表,该报告可以帮助安全负责人撤消不必要
的权限。
权限分析流
需要
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
权限分析类型和条件
创建分析时,首先需要定义要在已使用权限中分析的目标对象。可以通过设置分析类型来
实现这一点:
• 数据库分析:如果未提供条件,则会在整个数据库中分析已使用的权限(管理用户
使用的权限除外)。
• 角色分析:如果已定义角色,则会分析通过任何给定角色行使的权限。例如,如果
创建一个权限分析策略来分析 PUBLIC,则会分析直接和间接授予给 PUBLIC 的已
使用权限。
• 上下文特定分析:如果已定义上下文,则会分析通过给定应用程序模块或指定上下
文使用的权限。
不同条件可以通过“AND”和/或“OR”布尔运算符进行组合。
由于默认情况下不会启用已创建的策略,因此,下一步是启用该策略,以便开始分析已使
用的权限。经过一段时间后停止分析。请注意,收集的信息存储在 SYSAUX 表空间中。
如果捕获运行的时间较长,则 SYSAUX 表空间会增加。
•
报告使用的权限
第三步是生成报告。报告包括两种结果:
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
----------- ------------------ --------- ------------- ------------
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')
比较使用的权限和未使用的权限
与已授予的
与已授予的
未使用权限比较。
• 查看 SYSTEM 和 OBJECT 使用的权限: 未使用权限比较。
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
• 确定是否需要撤消未使用的权限。 撤消未使用
撤消未使用
的权限。
的权限。
列出捕获
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
Privs_HR_OE_logged CONTEXT N
SYS_CONTEXT('USERENV','SESSION_USER')='HR' OR
SYS_CONTEXT('USERENV','SESSION_USER')='OE‘
删除分析
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
2. 删除分析。
SQL> exec dbms_privilege_capture.DROP_CAPTURE('Capture1')
要删除分析,请先禁用已经启动的策略。删除策略时,会同时删除与该权限策略关联的所
有已使用和未使用的权限记录。
测验
要撤消已授予但不必要的未使用权限,可使用权限分析。
Oracle University and Error : You are not a Valid Partner use only
以下顺序正确吗?请判断对错。
a. 设置分析策略类型(数据库、角色、上下文)。
b. 启动分析。
c. 停止分析。
d. 生成结果。
e. 在 DBA_USED_PRIVS 和 DBA_UNUSED_PRIVS 中查看
结果。
答案:对
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;
编译时的权限检查 运行时的权限检查
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;
• 运行时所需的其他权限检查:
– 检查传递到 AUTHID CURRENT_USER PL/SQL 例程中的
数据库用户的权限
– 检查通过 C 或 Java 例程传递到 AUTHID
CURRENT_USER callspec 的数据库用户的权限
• INHERIT PRIVILEGES 对象权限
• INHERIT ANY PRIVILEGES 系统权限
风险
低权限用户可以拥有调用者的权限过程;如果由高权限用户执行该过程,则可能会执行意
外的或恶意的操作。
如果不应有调用者的权限过程的其他过程调用了调用者的权限过程,则调用者的权限过程
可能会执行不当操作。
在 Oracle Database 11g 中,过程的调用者不能控制调用者权限的访问者。只有过程的所
有者才能控制权限的继承。
新权限检查
Oracle Database 12c 中的权限检查实施了新的限制,而不是一项新功能。目前的一些情
形,在过去不需要权限检查,而现在需要进行权限检查了。当用户运行调用者的权限过程
时,Oracle DB 会在启动或运行代码之前检查过程所有者的权限。所有者必须对进行调用
的用户拥有 INHERIT PRIVILEGES 对象权限,或者拥有 INHERIT ANY PRIVILEGES
权限。如果不是这样,则运行时系统会引发错误。
会话会暂时切换到将输入的例程视为定义者的权限的环境中。然后,会话会检查其拥有对
调用者的当前活动用户的 INHERIT PRIVILEGES 对象权限,或者检查其拥有 INHERIT
ANY PRIVILEGES 系统权限。随后,会话将还原到其之前的环境。这种将例程视为定义
者的权限的做法类似于编译过程中的例程处理方法。
Oracle University and Error : You are not a Valid Partner use only
• 发出调用的用户可以在运行调用者的权限过程时控制谁
可以访问其权限。
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;
• 默认情况下,新用户信任调用权限过程的所有用户。
• INHERIT ANY PRIVILEGES 意指针对所有用户。
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;
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 系统权限。
测验
选择执行调用者的权限过程时的正确说法。
a. 必须向发出调用的用户授予针对过程的用户所有者的
Oracle University and Error : You are not a Valid Partner use only
INHERIT PRIVILEGES 对象权限。
b. 发出调用的用户必须授予针对过程的用户所有者的
INHERIT PRIVILEGES 对象权限。
c. 过程的所有者必须授予针对发出调用的用户的
INHERIT PRIVILEGES 对象权限。
d. 必须向过程的所有者授予针对发出调用的用户的
INHERIT PRIVILEGES 对象权限。
答案:d
测验
Oracle University and Error : You are not a Valid Partner use only
调用 AUTHID CURRENT_USER 函数时的正确说法。
a. 当前的方案、用户和启用的角色继承自进行查询的用户
的环境。
b. 当前的方案、用户和启用的角色设置为视图的所有者。
答案:a
小结
在本课中,您应该已经学会:
• 使用新增的管理权限,如 SYSBACKUP
Oracle University and Error : You are not a Valid Partner use only
• 创建口令文件以支持新权限
• 使用新增的系统权限 PURGE DBA_RECYCLEBIN
• 使用数据库权限分析
• 创建并启用权限分析
• 查看捕获结果以确定撤消未使用的权限
• 控制调用者的权限过程的权限
• 使用 INHERIT PRIVILEGES 权限
• 创建新的 BEQUEATH 视图
• 管理调用者的 BEQUEATH 视图权限行为
练习
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 视图(可选)
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 University and Error : You are not a Valid Partner use only
热图和自动数据优化 联机数据文件移动
ADO 和存储
数据库中归档和期间有效性 期间历史记录
HA RMAN
内存中列存储 整个数据库内存中高速缓存
性能 自动大表高速 12.1.0.2
缓存
SQL 优化 资源管理器 索引、表
数据泵、SQL*Loader 和外部表 分区
其他
12.1.0.2
JSON SQL
课程目标
学完本课后,应能完成以下工作:
Oracle University and Error : You are not a Valid Partner use only
• 描述 Oracle 数据编写
• 管理数据编写策略
• 在数据字典中查看编写策略信息
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
返回编写的数据 实施编写策略
敏感数据
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 数据编写和操作活动
不需要编写的操作活动:
• 备份和还原
Oracle University and Error : You are not a Valid Partner use only
• 导入和导出
• 打补丁和升级
• 复制
备份中的值 敏感数据
可用的编写方法
类型 说明
Oracle University and Error : You are not a Valid Partner use only
无 不执行编写。
完全 根据列数据类型将列编写为常量值。
部分 将用户指定的位置替换为用户指定的字符。
随机 保留数据类型,每次输出不同的值。
正则表达式 执行基于参数的“匹配和替换”。
Oracle 数据编写支持四种编写:完全、部分、随机和正则表达式。
提供对“无”编写类型的支持,以便创建编写策略定义并评估其对应用程序功能和性能的
影响。
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
此幻灯片提供了基于配置的编写类型的数据编写示例。本课稍后将提供有关定义编写类型
的更多详细信息。
什么是编写策略
编写策略决定:
• 编写的内容,通过以下项目指定:
Oracle University and Error : You are not a Valid Partner use only
– 方案名称 (OBJECT_SCHEMA)
– 对象名称 (OBJECT_NAME)
– 列名 (COLUMN_NAME)
• 编写的方式,通过以下项目指定:
– 函数类型 (FUNCTION_TYPE)
– 函数参数 (FUNCTION_PARAMETERS) 或正则表达式参数
(REGEXP_*)
• 编写的时机,在策略表达式 (EXPRESSION) 中指定
在创建策略时,只能指定一种“编写方式”。
•
•
•
•
限制:
不能对虚拟列执行编写。
不能对特定数据类型的列执行编写。
只能将 VPD 策略应用于尚未编写的列。
不能对 SYS 或 SYSTEM 方案对象执行编写。
管理编写策略
• 使用 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
数据编写。
将编写策略应用于表或视图
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);
完全编写:示例
Oracle University and Error : You are not a Valid Partner use only
987-65-4321 ‘‘
更改完全编写的默认值:
EXEC DBMS_REDACT.UPDATE_FULL_REDACTION_VALUES
(varchar_val => 'N');
使用完全编写可以将返回的数据编写为某个固定值。如示例中所示:
• 将字符数据编写为单个空格。
• 将数值数据编写为单个零。
• 将日期时间数据编写为 2001 年 1 月 1 日。
通过设置 FUNCTION_TYPE => DBMS_REDACT.FULL 指定完全编写。如果不在编写策
略中指定编写类型,则默认为完全编写。
使用 UPDATE_FULL_REDACTION_VALUES 过程可修改完全编写的默认显示值。在修改
了某个值后,必须重新启动数据库以使其生效。可通过查询
REDACTION_VALUES_FOR_TYPE_FULL 数据字典视图查找当前值。
部分编写:示例
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
数据定义
数据库中的数据 编写的数据
正则表达式
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'
编写策略参数
修改编写策略
使用 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'''
)
从编写策略中排除用户
• 策略表达式中包含的条件可以允许用户看到实际数据。
Oracle University and Error : You are not a Valid Partner use only
• 从所有编写策略中排除 SYS。
• 授予 EXEMPT REDACTION POLICY 系统权限以将其
他用户从所有编写策略中排除。
• 最佳实践:
– 在策略表达式中使用默认拒绝(白名单)条件。
– 请慎重授予 EXEMPT REDACTION POLICY 权限以确保
恰当地实施编写策略。
将 Oracle 数据编写
与其他 Oracle DB 安全解决方案结合使用
• 为不同的使用情形服务
• 补充其他 Oracle DB 安全解决方案,并可与这些解决方案
结合使用
Oracle University and Error : You are not a Valid Partner use only
Oracle Advanced Security 透明数据加密 (TDE)
Oracle DB 安全功能
Oracle DB 安全产品或功能 说明
Oracle University and Error : You are not a Valid Partner use only
屏蔽生产代码
Oracle University and Error : You are not a Valid Partner use only
Oracle Database Real Application Security 是 Oracle Database 12c 的一项新功能。它是
一种数据库授权模式,支持声明性安全策略并可为多层应用程序实现端到端安全性。它提
供了一个保护数据库和应用程序用户社区安全的集成式解决方案。此外,它还改进了
Oracle DB 的安全体系结构,可以满足对为 Internet 开发的应用程序的现有及新兴的需求。
最佳实践:防止未经授权的策略修改和排除
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 视图的访问
最佳实践:注意事项
• 选择列以进行有选择的编写;仅对需要的内容进行编写。
Oracle University and Error : You are not a Valid Partner use only
• 尽可能让策略表达式的逻辑保持简单。
• 在定义正则表达式策略时,让正则表达式保持简单。
• 部分和完全编写策略的性能通常比正则表达式策略高,
因为后者每次进行编写时都要进行编译。
• 在任何选定的列受保护的情况下,不能执行 CTAS 操作。
• 对一个表或视图只能应用一个策略。
为了获得最大性能,请仅对需要的列进行编写,并让策略表达式和正则表达式中的逻辑尽
可能保持简单。请注意,每行处理时间(CPU 时间)会随着指定的表或视图中编写的列
的增加而增加。此外,每次执行查询也会发生一次策略表达式求值。因此,需要重复查询
以一次提取一行数据(而不是一次提取多行)的应用程序可以检测编写的开销。
•
•
•
管理数据编写策略
描述 Oracle 数据编写
在本课中,您应该已经学会:
小结
在数据字典中查看编写策略信息
•
•
•
•
12-3:清除编写策略
12-1:使用完全数据编写
12-2:使用部分数据编写(可选)
练习 12:概览
12-4:更改完全编写的默认值(可选)
高可用性
课程单元
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
热图和自动数据优化 联机数据文件移动
Oracle University and Error : You are not a Valid Partner use only
ADO 和存储
数据库中归档和期间有效性 期间历史记录
HA RMAN
内存中列存储 整个数据库内存中高速缓存
性能 自动大表 12.1.0.2
高速缓存
SQL 优化 资源管理器 索引、表
数据泵、SQL*Loader 和外部表 分区
其他
12.1.0.2
JSON SQL
课程目标
学完本课后,应能完成以下工作:
Oracle University and Error : You are not a Valid Partner use only
• 描述新的 RMAN 增强功能
• 执行跨平台数据传输
• 使用表恢复
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
RMAN 增强功能
增强功能
SYSBACKUP
SYSBACKUP
在 RMAN 中使用 SQL RMAN
RMAN SQL
RMAN
SQL
RMAN DESCRIBE
DESCRIBE
多段
多段
复制
复制
• 不需要 SQL 前缀和引号 第三方
第三方
Oracle University and Error : You are not a Valid Partner use only
• 早期发行版:
RMAN> sql 'ALTER TABLESPACE users
ADD DATAFILE ''/testdata/users02.dbf'' SIZE 10M';
已知功能
可以从 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 命令的列表。
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
• 不适用于大的并行度值
已知功能
Oracle 数据文件最大可以为 128 TB。默认情况下,RMAN 备份的最小单元是整个文件。
RMAN 可以选择将大文件拆分为多个段,然后单独对这些段进行备份和还原。您可以通
过 SECTION SIZE 子句启动多段备份的创建。
这有何帮助
多段映像副本降低了大型数据文件的映像副本创建时间,尤其是可以使 Exadata 环境受
益。这还可以降低非备份用例的完成时间。例如,在可传输表空间移植过程中复制文件,
或者使用活动数据库复制创建克隆。
每个段都可以单独处理,可以按顺序或并行处理。将文件备份为各单独段可以提高备份操
作的性能,还允许重新启动大型文件备份。
多段备份的要求和限制
• 您只能为数据文件创建多段增量备份,而不能为其他数据库文件(例如控制文件或
spfile)创建。
• 对驻留在少量磁盘上的大型文件进行备份时,不宜使用很大的并行度值,因为这会
违背并行操作的初衷;同时对同一磁盘设备进行多个访问会导致争用。
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
• 默认情况下对活动复制使用备份集
• 可选择压缩、段大小和加密
• 提供了用于在数据库处于已装载但未打开状态时结束
数据库复制的选项
• 复制可插入数据库
活动数据库复制流程提供了额外的选项。
RMAN DUPLICATE 命令允许复制多租户容器数据库和可插入数据库。
12c 之前版本
复制活动数据库
• 通过 Enterprise Manager 或 RMAN 命令行
• 通过网络(使用 FROM ACTIVE DATABASE 子句)
• 通过定制 SPFILE
Oracle University and Error : You are not a Valid Partner use only
• 数据文件
源实例 辅助实例 • 控制文件
• SPFILE
备份数据 • 归档日志副本
源数据库 副本数据库
连接 连接
目标 辅助实例
源主机 目标主机
RMAN 客户机
关于复制活动数据库的已知功能
您可以使用 Enterprise Manager 或 RMAN DUPLICATE 命令的 FROM ACTIVE
DATABASE 子句指示源数据库将其自己的“克隆”直接发送到辅助实例。
此操作不需要也不使用预先存在的备份。使用 RMAN DUPLICATE 命令的 FROM
ACTIVE DATABASE 子句时,源数据库将创建联机映像副本并直接通过 Oracle Net 传输
该副本(它们不写入到磁盘)。源数据库可以处于打开状态,也可以处于已装载状态。
RMAN 作为 TARGET 连接到源数据库实例并作为 AUXILIARY 连接到辅助实例(如幻灯
片中所示)。
必需的文件(数据文件、控制文件、SPFILE 和归档日志副本)将通过实例间网络连接从
源复制到辅助实例。RMAN 随后使用“内存脚本”(仅包含在内存中)完成恢复并打开
数据库。
此活动数据库复制方法称为基于推送的方法。
新增功能
默认情况下对活动复制使用备份集:
• 原来的基于映像副本的“推送”流程变为基于备份集的
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] …;
原来的“推送”流程基于映像副本。
使用 Oracle Database 12c 时,“拉取”(或还原)流程基于备份集。首先,将与源数据
库建立连接。然后,辅助实例将从源数据库检索必需的数据库文件作为备份集。还原操作
是从辅助实例执行的。因此,在源数据库上将使用更少的资源。目标实例和辅助实例上都
需要 TNS 连接。
RMAN 将根据 DUPLICATE 子句以动态方式确定要使用哪个流程(推送或拉取)。这将
确保现有的定制脚本继续工作。
• 当指定了 USING BACKUPSET 时,RMAN 使用拉取方法。
• 当在 DUPLICATE 命令之前指定了 SET ENCRYPTION 时,RMAN 将自动使用拉取
方法并创建备份集。发送到目标的备份是加密的。
• SECTION SIZE 子句将数据文件划分为很多子段,这些子段在辅助数据库上通过多
个通道并行还原。要有效地使用并行,请分配多个 AUXILIARY 通道。
• 使用 USING COMPRESSED BACKUPSET 子句时,文件将作为压缩的备份集进行传
输。RMAN 在创建备份时使用未使用块压缩功能,因此减小了通过网络传输的备份
的大小。
NOOPEN 选项
用于在数据库处于已装载但未打开状态时结束数据库复制的
Oracle University and Error : You are not a Valid Partner use only
选项:
• 默认情况下,它使用 RESETLOGS 选项打开副本数据库,
并且为副本数据库创建联机重做日志文件。
• 使用 NOOPEN 选项,流程将在副本数据库处于 MOUNT
模式的情况下完成。
潜在的 NOOPEN 用例:
• 移动数据库的位置(例如,移动到 ASM)
• 升级数据库(在运行升级脚本之前,禁止通过 resetlogs
打开数据库)
复制多租户容器数据库
• 单个可插入数据库:
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;
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';
• 快照必须满足以下要求才能在恢复操作中使用:
– 数据库在快照创建期间处于崩溃一致状态。
– 快照保留了每个文件的写入顺序。
– 存储时间是快照的完成时间。
您可以使用第三方技术在不将数据库或相关数据文件置于备份模式的情况下创建存储快照。
快照技术会存储快照的完成时间。
使用快照进行恢复
快照必须满足幻灯片中描述的要求才能在恢复操作中使用。请确保数据库快照可以使用。
如果在快照创建期间进行了结构更改,则用于恢复的快照不可用。对数据文件和表空间执
行的操作(例如 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 中有效。
答案:b
b. 错
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
跨平台传输数据
跨平台传输数据库、数据文件和表空间:
Oracle University and Error : You are not a Valid Partner use only
• 在早期版本中,使用映像副本 12c 之前版本
副本
• 允许不一致的表空间备份
优点:
• 减少了用于平台移植的停机时间
• 可以选择压缩和多段
• 不编入控制文件中,不用于常规还原操作
已知功能
RMAN 允许您跨平台传输数据库、数据文件和表空间。这包括跨具有不同 endian 格式的
平台传输表空间。您可以传输整个数据库,从而在目标主机或源主机上转换整个数据库,
只要源平台和目标平台共享相同的 endian 格式。在早期版本中,跨平台数据传输仅使用
映像副本(通过使用 RMAN CONVERT 命令)。
新增功能
从 Oracle Database 12c 开始,您可以使用备份集跨平台传输数据。您还可以使用映像副
本和备份集创建跨平台不一致表空间备份。不一致表空间备份是在表空间未处于只读模式
时创建的备份。此方法是通过新子句 ALLOW INCONSISTENT 实现的。
使用备份集时,您可以选择压缩和多段选项,这降低了总体传输时间。
注:RMAN 不会将为跨平台传输创建的备份集编入控制文件中。这确保了在常规还原操
作期间不使用为跨平台传输创建的备份集。
数据传输
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
转换
1. 在创建跨平台数据传输备份集之前,必须满足以下先决条件:
- COMPATIBLE 参数必须设置为 12.0 或更大值。
- 要传输整个数据库,源数据库必须以只读模式打开,因为 SYS 和 SYSAUX 表空
间会参与传输。
- 要仅传输表空间,请使用 DATAPUMP 子句。数据库必须以读写模式打开,以便
数据泵可以访问元数据。
2. 有两种备选方法可以影响 endian 转换的位置。
FOR TRANSPORT 子句创建跨平台备份,表示该备份集可以传输到任何目标数据库。
TO PLATFORM 子句指示在源数据库上为特定平台执行转换并且可以在该特定平台上
还原。如果您仅传输表空间,则需要在为处于只读模式的表空间执行最后的增量备份
期间使用 DATAPUMP 子句来为所传输的表空间创建导出转储文件。
3. 使用 BACKUP FOR TRANSPORT 或 TO PLATFORM 命令在源主机上创建一个跨平台
数据备份集。
4. 使用任何操作系统实用程序传输所创建的备份集(和转储文件)。
5. 使用 RESTORE FOREIGN 命令在目标主机上还原跨平台数据备份集。
传输数据库:流程步骤 - 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;
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 目录中的文件尚未转换。
传输数据库:流程步骤 - 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';
5. 从源数据库断开连接。
6. 将通过 BACKUP 命令创建的备份集移动到目标主机。您可以使用操作系统实用程序
将备份集从源主机移动到目标主机。
7. 连接到作为 TARGET 的目标主机,即必须向其传输数据库的主机。确保目标数据库
未装载。
8. 如幻灯片中所述使用 RESTORE 命令还原目标数据库中的数据。
传输表空间:流程步骤 - 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;
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 子句,该子句创建表空间元数据的导出转储文件。
传输表空间:流程步骤 - 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' ;
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 命令通过跨平台增量备份恢复所还原的
数据文件副本。
答案:b
b. 错
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
表恢复
Oracle University and Error : You are not a Valid Partner use only
• 从 RMAN 备份进行表恢复 12c
– 不影响其余的数据库对象
– 与之前的工作流(例如 TSPITR)相比,降低了时间和
磁盘空间
Oracle DB 提供了许多可以用来恢复表的不同方法。在早期版本中也是这样。但是恢复范
围可能比您希望的要大得多。在接下来的交互式页面上,您将了解执行以下任务的主要
方法:
• 数据库时间点恢复 (DBPITR)
• 表空间时间点恢复 (TSPITR)
• 闪回技术
新增功能
• 在 Oracle Database 12c 中,可使用 RMAN 将一个或多个表或表分区恢复到指定的
时间点,而不影响其余的数据库对象。这是使用 RMAN 备份数据进行的表恢复。
• 与之前的工作流相比,此新功能降低了时间和磁盘空间:
1. 将表空间恢复到一个单独的磁盘位置。
2. 导出所需的表。
3. 导入到原始数据库中。
从备份恢复表
Oracle University and Error : You are not a Valid Partner use only
• 对于下列情况,建议不要使用 TSPITR:
– 少量表
– 不在自包含表空间中
• 在下列情况下无法进行闪回:
– 已清除的表(无闪回删除)
– 超出了可用的还原(无闪回表)
– 在进行结构性 DDL 更改后(无闪回表)
表恢复:图形化概览
• COMPATIBLE=12.0(或更大值) 1
先决条件满足 • ARCHIVELOG 模式
• READ WRITE 打开模式
Oracle University and Error : You are not a Valid Partner use only
表名?
2
时间? 3
导入?
6 5
转储文件
1. RMAN 使用以前创建的备份将表和表分区恢复到指定的时间点。先决条件已满足并
且您通过 RECOVER 命令提供了以下输入:
- 要恢复的表或表分区的名称
- 表或表分区需要恢复到的时间点
- 是否必须将恢复的表或表分区导入到目标数据库
RMAN 使用您的输入自动执行恢复指定的表或表分区的流程。
2. RMAN 根据您的指定确定备份。
3. RMAN 创建辅助实例。
4. RMAN 将您的表或表分区恢复到此辅助实例,一直恢复到指定的时间点。
5. RMAN 创建包含恢复的对象的数据泵导出转储文件。
6. RMAN 将恢复的对象导入到目标数据库中。
7. 您可以对此流程进行定制,如以下幻灯片中所示。
指定恢复时间点
将表和表分区恢复到通过指定以下参数确定的状态:
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):
日志序列号和线程号
表恢复流程步骤 - 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 指定的名称的文件,则导出将失败。
定制设置
7. 您可以如下所述进行定制:
Oracle University and Error : You are not a Valid Partner use only
– RMAN 将恢复的对象导入到目标数据库,除非指定了
NOTABLEIMPORT。
– RMAN 可以通过 REMAP TABLE 和 REMAP
TABLESPACE 子句对恢复的表或表分区进行重命名。
7. 您可以通过以下选项进行定制:
- 默认情况下,RMAN 将存储在导出转储文件中的已恢复对象导入到目标数据
库中。不过,您可以使用 RESTORE 命令的 NOTABLEIMPORT 子句选择不导
入恢复的对象。如果您选择不导入恢复的对象,则 RMAN 会将表或表分区恢
复到指定的点,然后创建导出转储文件。不过,此转储文件不会导入到目标数
据库中。当需要时,您必须使用数据泵导入实用程序手动将此转储文件导入到
目标数据库中。
- RMAN 还可以在目标数据库中重命名恢复的表或表分区。当恢复表或表分区
时,您可以保留对象的现有名称,也可以在将对象导入目标数据库后重命名对
象。您可以使用 REMAP TABLE 选项在目标数据库中重命名恢复的表或表分
区。要将恢复的对象导入到对象原来所在表空间之外的表空间,请使用
RECOVER 命令的 REMAP TABLESPACE 子句。只有恢复的表或表分区将重新
映射,现有对象不会更改。
答案:a
b. 错
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
•
•
•
使用表恢复
执行跨平台数据传输
在本课中,您应该已经学会:
描述新的 RMAN 增强功能
小结
•
•
13-2:使用 RMAN 恢复表
练习 13:概览
易管理性
课程单元
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
Oracle University and Error : You are not a Valid Partner use only
热图和自动数据优化 联机数据文件移动
ADO 和存储
数据库中归档和期间有效性 期间历史记录
HA RMAN
内存中列存储 整个数据库内存中高速缓存
性能 自动大表高速 12.1.0.2
缓存
SQL 优化 资源管理器 索引、表
数据泵、SQL*Loader 和外部表 分区
其他
12.1.0.2
JSON SQL
易管理性:对数据库进行管理意味着使用新的实时数据库操作监视功能对数据库操作进行
监视。
课程目标
学完本课后,应能完成以下工作:
Oracle University and Error : You are not a Valid Partner use only
• 描述数据库操作
• 实施实时数据库操作监视
实时数据库操作监视:概览
数据库操作是:
• 一个或多个 SQL 或 PL/SQL 语句
Oracle University and Error : You are not a Valid Partner use only
• 从一个或多个会话执行的一系列语句
数据库操作可以:
• 被监视
• 生成活动报告
BEGIN_OPERATION
SQL
PL/SQL 块
…
SQL
SQL
END_OPERATION
用例
• 监视批处理作业:
Oracle University and Error : You are not a Valid Partner use only
– 设定预期时间;超过预期时间时发出提醒。
– 确定并优化开销较大的语句。
• 诊断后台进程:
– 确定并优化开销较大的语句。
• 诊断一段时间内作业的变化:
– 比较操作之前的执行情况。
– 比较升级之后作业的变化。
DBA 在哪些情况下使用实时数据库操作监视?
• 大型零售商的 DSS 具有数百个用于提取、转换和加载 (Extraction, Transformation,
and Loading, ETL) 的批处理作业。您想要实时监视这些作业。作为 Enterprise
Manager 用户,页面加载时您等待了很长时间。您希望轻松识别正在以页面加载的
名义运行什么。有时,需要在 24 小时内完成的 PL/SQL 作业的运行时间却长达 80
小时。您需要确定并优化作业中开销较大的语句。您希望在预计作业的运行时间过
长时收到提醒,以便可以在作业消耗太多资源之前将其终止、修复并重新启动。
• 升级之后,批处理作业从 4.5 小时增加到 8 小时。您想要捕获升级前后作业步骤的
性能统计信息,然后将两组统计信息进行比较并确定变化,例如 SQL 执行计划、资
源消耗和并行度。
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
实时 SQL 监视
Oracle Database 11.1 中引入了实时 SQL 监视,这是数据库操作监视的一个子集。它帮
助 DBA 了解某个 SQL 语句位于其执行计划中的何处以及时间花费在了何处。它允许用
户在 SQL 语句执行时监视其性能,并且允许查看最近完成的语句所使用时间和资源的细
分。用户可以识别 ETL、DDL、批处理和报告作业中开销大的 SQL 语句,并检查并行执
行的语句。
活动会话历史记录
ASH 包含每秒执行的活动会话的样本。此选项默认启用。因为每一秒都收集样本,所以
ASH 包含长时间运行的查询的更多信息。
SQL 跟踪
SQL 跟踪会生成大量详细信息,这些信息可能难以解释。要使 SQL 跟踪能够捕获详细信
息,问题必须可重现。
过程和视图
• 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 University and Error : You are not a Valid Partner use only
• 简单
– 一个 SQL 或 PL/SQL
• 组合
– 两个时间点之间的多个 SQL 语句和/或 PL/SQL 过程及
函数
– 单个会话
– 多个并发会话
数据库操作是数据库服务器为了完成任务而运行的操作。它可以是简单操作,也可以是组
合操作。
• 简单数据库操作:包含单个 SQL 语句或者单个 PL/SQL 函数或过程
• 组合数据库操作:包含两个时间点之间一个或多个会话的活动。在这些会话中运行
的 SQL 语句或 PL/SQL 过程都属于组合操作的一部分:
- 单个会话:单个会话操作分为两种情况。
- 在一种情况下,数据库操作期间仅存在一个会话。
- 在另一种情况下,数据库操作期间存在多个会话,但是在任何指定时间运
行的会话数都不超过一个。应用程序在会话之间切换。
- 多个并发会话:在 ETL 中,一个作业涉及同时运行的多个会话的情况很常见。
您可以将整个 ETL 作业定义为单个数据库操作。
组合数据库操作的范围
单个会话 多个会话
• 使用单个 单个会话
• 同时使用多个
Oracle University and Error : You are not a Valid Partner use only
协调程序的 用户会话的
并行查询 操作
并行查询
并行查询
并行查询
主进程
单个用户 共享
服务器
• 按顺序连接 会话 用户 用户 用户
会话 会话 会话
到服务器会 共享
话的单个用 服务器
户会话 共享
服务器
单个会话范围内的组合操作由以下项之一组成:
• 单个会话协调的 SQL 语句,例如并行操作
• 活动会话,例如应用程序池或共享服务器中的用户会话
展示数据库操作的单个会话和单个用户会话示例的图显示在幻灯片的左侧。
注:这些示例没有排除其中的语句既非并行也未使用共享服务器的单个会话。
多个会话范围内的组合操作由并发运行(例如 ETL 操作期间)的 SQL 语句组成。幻灯片
右侧的图示中显示了此情况。
数据库操作概念
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
SQL4 会话 2
SQL5 会话 3
SQL6 SQL7 会话 4
此示意图显示四个会话。第一个(上面的)会话显示一个会话一次最多可以属于一个数据
库操作。它首先属于数据库操作 A,然后属于数据库操作 B。END_OPERATION 和
BEGIN_OPERATION 命令导致会话更改了数据库操作。
会话 1、2 和 3 显示同时使用名称和执行 ID 来唯一标识数据库操作 B。
会话属于数据库操作但是未执行 SQL 或 PL/SQL 语句的时间是空闲时间。
标识数据库操作
• 命名 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
要监视数据库操作,您必须为数据库操作指定名称、起始点和结束点。有两种方法可用来
对数据库操作进行命名。第一种方法是使用 DBMS_SQL_MONITOR.BEGIN_OPERATION
函数在应用程序中插入起始点,使用 DBMS_SQL_MONITOR.END_OPERATION 过程调用
插入结束点。第二种方法是设置一个标记(这适用于 JAVA 和 OCI 应用程序)。可以使
用 OCI 调用 OCIAttrSet 和 OCIAppCtxSet、Java 调用 setClientInfo 或者通过
OS 环境变量 ORA_DBOP 设置该标记。Java 或 OCI 中的该标记装载下一数据库调用,以
便可以轻松地分辨起始点。
显式调用为数据库操作提供了清晰的起始点和结束点以指定边界,但是使用标记的应用程
序没有结束操作的显式方法。由于启动新操作即会结束之前的操作,因此应该将该标记设
置为 NULL 并发送到数据库。
启用对数据库操作的监视
• 在系统级别:
– 将 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 提示 提示
标识、启动和完成数据库操作
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)
当进行监视时,可以通过操作名称和执行 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 University and Error : You are not a Valid Partner use only
版权所有 © 2014,Oracle 和/或其附属公司。保留所有权利。
监视加载数据库操作
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 正在执行
已完成
可以执行监视加载操作。在幻灯片所示的示例中,数据库操作包含两个成批加载语句。
使用 Enterprise Manager Database Express,从“Performance Hub(性能中心)”页
面上,您将发现数据库加载操作仍在执行,而第一个成批加载语句已完成。另一个成批加
载语句仍在执行,并且作为同一数据库加载操作的一部分正在被监视。
使用 Enterprise Manager Cloud Control,登录到目标数据库,选择“Performance(性
能)”菜单 >“SQL Monitoring(SQL 监视)”选项。您将看到同一数据库加载操作正在
执行。
监视加载数据库操作详细信息
Oracle University and Error : You are not a Valid Partner use only
由三个加载语句组成的
数据库操作仍在执行
第三个
第三个 INSERT
INSERT 正在
仍在执行
执行
第一个INSERT
第一个
SELECT 已完
已完成
成
第二个
第二个 INSERT
INSERT 已完
已完成
成
执行详细信息页面在屏幕顶部显示摘要,在屏幕底部显示活动图(已显示)或度量图(未
显示)。DBMS_SQL_MONITOR.REPORT_SQL_MONITOR 和
DBMS_SQL_MONITOR.REPORT_SQL_MONITOR_LIST 函数用于报告实时数据库操作的
执行详细信息。
使用视图报告数据库操作
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;
V$SQL_MONITOR 视图报告正在执行的和已完成的数据库操作的列表,包括有关数据库操
作中顶级 SQL 语句的全局概括性信息。每个受监视的 SQL 语句在此视图中都有一个条目。
每行包含一个 SQL 语句,该语句的统计信息从多个会话及其所有操作执行中累积。
主键是 DBOP_NAME、DBOP_EXEC_ID 和 SQL_ID 列的组合。
使用视图报告数据库操作
• 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;
使用函数报告数据库操作
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;
使用 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>
<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>
数据库操作优化
• ADDM
Oracle University and Error : You are not a Valid Partner use only
• SQL 优化指导
• SQL 性能分析程序
优化的目的是改善特定执行的响应时间。优化数据库操作不仅仅是优化操作中的 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 语句所需的权限
答案:b
b. 错
a. 对
测验
答案:a
b. 错
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
•
•
描述数据库操作
实施实时数据库操作监视
在本课中,您应该已经学会:
小结
练习 14:概览
Oracle University and Error : You are not a Valid Partner use only
• 14-2:标识并启动数据库操作(使用 EM Database
Express 或 EM Cloud Control)
• 14-3:标识并启动数据库加载操作(可选)
• 14-4:清理