Download presentation
Presentation is loading. Please wait.
2
升级、 迁移和整合 到 Oracle Database 12c
Mike Dietrich 数据库升级和实用程序 Oracle Corporation
3
数据库升级开发组 Roy Swonger Carol Tagliaferri Cindy Lim Joseph Errede
软件开发 和 产品管理高级总监 Cindy Lim 首席技术人员 Joseph Errede Eric Wittenberg 首席软件工程师 Mike Dietrich 资深首席技术专家 Carol Tagliaferri 软件开发高级经理
4
终身支持政策 现在 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 Oracle 9.2 (GA:2002 年 7 月) Oracle 10.1 (GA:2004 年 1 月) Oracle 10.2 (GA:2005 年 7 月) Oracle 11.1 (GA:2007 年 8 月) Oracle 11.2 (GA:2009 年 9 月) Oracle 12.1 (GA:2013 年 6 月) 2007 年 1 月 2010 年 7 月 2009 年 1 月 2012 年 1 月 2010 年 7 月 2013 年 7 月 2012 年 8 月 2015 年 8 月 2015 年 1 月 2018 年 1 月 2018 年 6 月 2021 年 6 月 标准支持服务 免费扩展支持服务 扩展支持服务 持续支持服务
5
现在需要升级吗?
6
升级、迁移与整合 多租户环境简介 可插拔数据库发展之路 使用可插拔数据库 总结
7
多租户环境 - 概念! 整合 减少维护 简化和加速供应、克隆和迁移 选件名为 Oracle Multitenant
8
注意!! 许多众所周知的概念都将发生改变 管理员指南中有大约 150 页的新文档
9
地球依旧圆 您不是必须使用可插拔数据库……尚非必须 Oracle Database 12c 非 CDB 可按预期工作
您还是可以使用新特性 - 而这将需要改变旧习惯
10
实施 多租户容器数据库 => CDB CDB 总是包含一个 PDB$SEED,以及零个、一个或许多可 插拔数据库 (PDB)
DBA 在 CDB 级别进行管理 CDB 总是包含一个 PDB$SEED,以及零个、一个或许多可 插拔数据库 (PDB) 应用程序将连接到 PDB 1 个 CDB 最高可容纳 252 个 PDB CDB PDB$SEED PDB
11
容器 CDB 中有什么? PDB、CDB$ROOT 和 PDB$SEED 都称为容器 PDB 可插拔数据库 包含数据和代码 CDB$ROOT
12
后台 一个 SGA、一组后台进程以及一个 spfile 应用程序连接到 PDB 资源共享带来的优势 CDB$ROOT 重做 控制 闪回
No matter how many PDBs are in a CDB there's: 1 LGWR per CDB, 1 PMON, 1 SMON ... Redo logs just for the CDB but not for single PDBs 1 SGA for the entire CDB including all PDBs PDBs: Can have their own TEMP Can't have their own UNDO Have their own SYSTEM and SYSAUX tablespaces Can belong to one CDB only at one time Can be moved between CDBs CDB$ROOT PDB$SEED PDB spfile
13
创建 CDB 两种选择: DBCA 强烈推荐 命令行 CREATE DATABASE 建议不要采用此办法,因为必须创建所有选项
CREATE DATABASE cdb12 [...] ENABLE PLUGGABLE DATABASE SEED FILE_NAME_CONVERT=('/oradata/cdb12/','/oradata/pdbseed/') SYSTEM DATAFILES SIZE 125M AUTOEXTEND ON NEXT 10M MAXSIZE […]
14
从命令行创建 CDB 必须通过 catcon.pl 启动脚本: catdb.sql 将针对所有选项运行所有脚本
-u 用户名,还可以包括口令 -d 包含要执行的脚本的目录(默认值:当前目录) -e 启用回显 -s 将每个脚本的输出导出到假脱机文件 -l 写入日志文件的目录(默认值:当前目录) -b 日志文件的基本名称(必选选项) $> perl catcon.pl -u SYS -d $ORACLE_HOME/rdbms/admin -e -s -b catalog catdb.sql perl catcon.pl [-u username[/password]] [-U username[/password]] [-d directory] [-l directory] [{-c|-C} container] [-p parallelism] [-e] [-s] [-E { ON | errorlogging-table-other-than-SPERRORLOG } ] [-g] -b log_file_name_base { SQL_script [arguments] | --xSQL_statement }
15
CDB-PDB:简介 创建 CDB 之后: 数据字典 通用用户 默认根目录下没有用户数据 CDB$ROOT PDB$SEED OBJ$
TAB$ SOURCE$
16
CDB-PDB:简介 将 PDB 插入 CDB 之后: 数据驻留在 PDB 中 将在 CDB 中创建引用 交换从 PDB 内部访问字典对象
CDB$ROOT PDB$SEED OBJ$ TAB$ SOURCE$ PDB EMP DEPT
17
CDB-PDB:简介 通用用户 本地用户 存在于 CDB 及每个当前和未来的 PDB 中 所有Oracle 提供的用户均为通用用户
可执行插/拔/克隆操作的用户 CDB1> create user c##adm1 identified by a1; CDB1> create user c##adm2 identified by a2 container=all; 本地用户 仅存在于一个 PDB 中 PDB APP C##ADM CDB$ROOT PDB$SEED HUGO SYS C##BOSS C##ADM SYS C##BOSS
18
CDB-PDB:简介 表空间 CDB$ROOT 中的全局 UNDO 和 TEMP PDB 可以有自己的 TEMP
所有 PDB 将共享 CDB 的 UNDO PDB SYSTEM DATA1 SYSTEM CDB$ROOT PDB$SEED SYSAUX DATA2 SYSAUX TEMP_PDB SYSTEM TEMP SYSAUX UNDO
19
升级、迁移和整合 多租户环境简介 可插拔数据库发展之路 使用可插拔数据库 总结 新建 PDB 克隆 PDB 升级并作为 PDB 插入
完全可传输的导出/导入 使用可插拔数据库 总结
20
创建 PDB 通过种子快速供应: 登录 CDB 通过种子供应 create pluggable database PDB128
参数 PDB_FILE_NAME_CONVERT 用于在新位置创建文件: PDB_FILE_NAME_CONVERT='strg1','strg2' 如果需要,可从源数据库导入数据 Data Pump Import 工具适用于 10g 及更高版本(转储文件或 通过 NETWORK_LINK) 原来的 Import 工具适用于 9i 及早期版本 可传输表空间 create pluggable database PDB128 admin user PDB128adm identified by mypasswd roles = (DBA)
21
多租户环境概述 多租户环境简介 可插拔数据库发展之路 使用可插拔数据库 总结 新建 PDB 克隆 PDB 升级并作为 PDB 插入
完全可传输的导出/导入 使用可插拔数据库 总结
22
克隆 PDB 在 CDB 内快速克隆或远程克隆 当前源 PDB 必须处于 READ ONLY 模式 本地: 远程:
参数 PDB_FILE_NAME_CONVERT 用于在新位置创建文件 可以在 spfile (alter system) 或会话 (alter session) 中设置 远程: create pluggable database PDB7 from PDB4; create pluggable database PDB8 from
23
升级、迁移和整合 多租户环境简介 可插拔数据库发展之路 使用可插拔数据库 总结 新建 PDB 克隆 PDB 升级并作为 PDB 插入
完全可传输的导出/导入 使用可插拔数据库 总结
24
首先升级,然后插入 要将数据库插入多租户环境,必须首先将其升级到 Oracle Database 12c 完成升级之后,数据库将设置为只读
升级步骤与多租户的概念无关 完成升级之后,数据库将设置为只读 将生成一个 XML 描述 文件 然后即可插入该数据 库,它将成为可插拔 数据库
25
升级到 Oracle Database 12c Oracle 7.3.4 Oracle 8.0.6 Oracle 8.1.7.4
Oracle Oracle Oracle Oracle Oracle 7.3 (GA: 1996 年) Oracle 8.0 (GA: 1997 年) Oracle 8.1 (GA: 1998 年) Oracle 9.0 (GA: 2001 年) Oracle 9.2 (GA:2002 年 7 月) Oracle 10.1 (GA: 2004 年 1 月) Oracle 10.2 (GA:2005 年 7 月) Oracle 11.1 (GA:2007 年 8 月) Oracle 11.2 (GA:2009 年 9 月) Oracle 12.1 (GA:2013 年 6 月) 7.3.4 8.0.6 直接 直接 直接 请注意:本图将只适用于数据库升级!
26
升级到 Oracle 12c 后的新增特性 新的 SQL 自动 FixUp 脚本 详细建议 并行升级 修复升级之前和之后的问题
最多可节省 40% 的升级时间 升级由 catctl.pl 驱动,不再由 catupgrd.sql 驱动 catctl.pl script3.sql script2.sql script1.sql script4.sql script5.sql script6.sql script7.sql script8.sql script9.sql script10.sql script11.sql
27
Oracle 12c 中新的升级前脚本 新的升级前脚本 preupgrd.sql 将加载新的升级前软件包 utluppkg.sql
在以下目录生成输出: $ORACLE_BASE/cfgtoollogs/V102/preupgrade preupgrade.log 包含有关源数据库中任何发现、建议、 警告、修正和错误的详细信息 preupgrade_fixups.sql 此脚本需要在源数据库中运行 - 它将 修复某些问题或指示 DBA 必须实施的修复 postupgrade_fixups.sql 旨在升级之后立即运行,将修复未解决的问题 - 其中还包含对手动交互(例如更改时区)的说明
28
SQL 自动化 - 升级之前 Preupgrade_fixups.sql
29
Oracle 12c 中新的并行升级 新的并行升级脚本 Oracle 数据库中的默认特性 SERVER 组件升级脚本尽可能并行执行
其他非相关组件并行运行 升级总时间缩短 20% 至 40% 并行升级由 PERL 脚本驱动: catctl.pl 数据库需要处于 STARTUP UPGRADE 模式 catctl.pl script3.sql script2.sql script1.sql script4.sql script5.sql script6.sql script7.sql script8.sql script9.sql script10.sql script11.sql
30
Oracle 12c 中新的并行升级 已用于选定客户升级至 Oracle Database 11.2.0.3
Payback 的 Exadata V1 迁移至 X2 并行升级速度提高 37% 电子世界的市场领导者 并行升级已用于 100 多个 SAP 系统
31
并行升级脚本 在 Shell 中使用 catctl.pl 并行启动升级: catctl.pl 是 PERL 驱动程序
将尽可能以并行方式执行升级脚本 同时还执行 catuppst.sql 和 catbundle.sql -n y 决定并行度 最多可有 8 个并行线程
32
进度信息 在 catctl.pl 运行时进行监视:
33
SQL 自动化 - 升级之后 执行 postupgrade_fixups.sql:
34
时区 时区调整 时区转换应在升级之后完成 如果使用了数据类型 TIMESTAMP WITH TIME ZONE,则需要调整 时区
规则:TZ目标 ≥ TZ源 时区定义位置:$ORACLE_HOME/oracore/zoneinfo Oracle 数据库版本 默认时区版本 – DST V4 – DST V11 – DST V14 DST V18 最新临时补丁: 参见 MOS 说明: DST V19
35
时区 时区调整: 使用该说明提供的脚本: MOS 说明: 数据库将 重新启动!
36
升级并插入 CDB 第 1 步: 数据库升级到 Oracle 12c CDB$ROOT Oracle 10.2.0.5 V102
数据库 升级 Oracle V102 CDB$ROOT PDB$SEED
37
升级并插入 CDB 第 2 步: 数据库处于只读模式 创建 XML 文件 CDB$ROOT Oracle 12.1.0.1 V102 XML
PDB$SEED
38
升级并插入 CDB 第 3 步: 停止数据库并将其插入 CDB 重用临时文件; CDB$ROOT Oracle 12.1.0.1 V102
XML Oracle PDB1 CDB$ROOT PDB$SEED
39
升级并插入 CDB 第 4 步: 定义 TNS 别名并通过 TNS 连接到 PDB:
sqlplus as sysdba" 启动 PDB: 使用以下脚本检查健全性: ?/rdbms/admin/noncdb_to_pdb.sql Oracle PDB1 CDB$ROOT PDB$SEED
40
升级、迁移和整合 多租户环境简介 可插拔数据库发展之路 使用可插拔数据库 总结 新建 PDB 克隆 PDB 升级并作为 PDB 插入
完全可传输的导出/导入 使用可插拔数据库 总结
41
可传输表空间的概念 可传输表空间特性始自 Oracle 8i Oracle Database 10g 引入了跨平台可传输表空间
可以跨版本使用 要传输的版本必须总是为相同或更高版本 Oracle Database 10g 引入了跨平台可传输表空间 可以跨版本、跨平台使用 要求表空间处于只读模式 SYSTEM/SYSAUX 中的所有操作都需要额外工作
42
可传输表空间示例 迁移元信息 (视图、同义词、触发器、角色等) SYSTEM SYSAUX UNDO TEMP
源数据库 目标数据库 用户 视图 代码 权限 视图 代码 权限 SYSTEM SYSAUX UNDO TEMP SYSTEM SYSAUX UNDO TEMP APP HUGO APP HUGO
43
完全可传输的导出/导入 传输整个数据库 导出始于 Oracle 11.2.0.3,导入始于 Oracle 12c 3 个阶段:
跨版本、跨平台 导出始于 Oracle ,导入始于 Oracle 12c 3 个阶段: 数据文件迁移 使用数据文件副本或 RMAN 增量备份 通过网络导入传输 健全性检查
44
完全可传输的导出/导入 源数据库 11.2.0.3 目标数据库 12.1.0.1 数据泵
转换和应用备份 源数据库 INC BCK1 目标数据库 INC BCK0 视图 代码 权限 APP HUGO 视图 代码 权限 数据泵 用户 SYSTEM SYSAUX UNDO TEMP SYSTEM SYSAUX UNDO TEMP APP HUGO
45
示例:11.2.0.3 12c PDB 第 1 阶段:准备工作 CDB$ROOT Oracle 11.2.0.3 V112
数据库链接 RMAN 1 级 RMAN 0 级 RMAN 1 级 CDB$ROOT PDB$SEED Oracle PDB - 克隆
46
示例: 12c PDB 表空间 只读 第 2 阶段:传输 - 停机! Oracle V112 数据库链接 impdp NETWORK_LINK=db11 VERSION=12 FULL=Y TRANSPORTABLE=ALWAYS METRICS=Y LOGFILE=oow_dir:src112fullimp.log TRANSPORT_DATAFILE='/fra/d/ts1.dbf' … RMAN 1 级 RMAN 0 级 RMAN 1 级 RMAN 1 级 CDB$ROOT PDB$SEED Oracle PDB12 备份 必须 可访问
47
示例:11.2.0.3 12c PDB 第 3 阶段:清除 CDB$ROOT Oracle 11.2.0.3 V112
表空间 读写 Oracle V112 数据库链接 CDB$ROOT PDB$SEED Oracle PDB12
48
升级、迁移和整合 多租户环境简介 可插拔数据库发展之路 使用可插拔数据库 总结
49
字典视图 新增字典视图系列:{USER|ALL|DBA|CDB}_VIEWS 一些重要的新增视图: CDB_PDBS CDB_OBJECTS
含义 CDB_PDBS 插入当前 CDB 的 PDB 的信息和状态 CDB_OBJECTS 新的 SHARING 列,显示对象是否相关联 CDB_TABLES 新的 CONTAINER_DATA 列,显示其是否为容器对象 CDB_USERS 新的 COMMON 列,显示用户是通用 (COMMON) 用户还是本地 (LOCAL) 用户 V$DATABASE 新列 CDB - 为 YES 或 NO PDB_PLUG_IN_VIOLATIONS 显示作为 PDB 插入 CDB 时的插件违规情况
50
层次结构 通用用户可以从 CDB 和所有 PDB 访问信息 通过 DBA_ 视图中的 CON_ID 列显示相关性:
CDB$ROOT PDB$SEED OBJ$ TAB$ SOURCE$ PDB EMP DEPT 通用用户可以从 CDB 和所有 PDB 访问信息 通过 DBA_ 视图中的 CON_ID 列显示相关性: 在非 CDB 中,CON_ID 始终为 0 CON_ID: 对象属于: 整个 CDB 1 Root 2 Seed PDB
51
更改初始参数 列出可以在 PDB 级别更改的初始参数: 列出特定 PDB 中设置的参数:
select NAME from V$PARAMETER where ISPDB_MODIFIABLE = 'TRUE' order by NAME; 列出特定 PDB 中设置的参数: select NAME from V$SYSTEM_PARAMETER where CON_ID = 3 order by NAME;
52
重要查询 PDB 在我的 CDB 中吗? PDB 处于何种打开模式?
show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED PDB$SEED READ ONLY NO PDB READ WRITE NO PDB 处于何种打开模式? select NAME, OPEN_MODE, RESTRICTED, OPEN_TIME from V$PDBS; NAME OPEN_MODE RESTRICTED OPEN_TIME PDB$SEED READ ONLY NO MAY PM HRPDB READ WRITE NO MAY PM SALESPDB MOUNTED NO MAY AM
53
资源管理器和 CDB/PDB 为下列各项设置资源使用量: 共享与限制政策定义 CPU 会话 并行服务器 示例: PDB 共享 保证的 CPU
A 2 2/4 = 50% 100% B 1 1/4 = 25% 50% C
54
升级、迁移和整合 多租户环境简介 可插拔数据库发展之路 使用可插拔数据库 总结
55
总结 升级到 Oracle Database 12c 更轻松且自动化 因为并行而更加快速
可以跨操作系统完成迁移,现在借助完全可传输导出/导入, 大大方便了这种迁移 整合到 Oracle Multitenant 的功能非常强大
56
幻灯片下载 向下滚动以转 到幻 灯片
57
Graphic Section Divider
Similar presentations