升级、 迁移和整合 到 Oracle Database 12c

Slides:



Advertisements
Similar presentations
第二章 简单的 SQL 语句. 本章要点  创建一个简单的表  SQL 语句介绍  最简单的查询语句 select  带有限制条件的查询  查询结果的排序显示.
Advertisements

面向侧面的程序设计 方林博士 本文下载地址:
第 7 章 数据库 1. Overview  数据库概述  数据库管理系统  数据库的体系结构和数据库模型  SQL 语言  数据库技术  构建数据库系统 2.
《 ORACLE 》 计算机技术与软件工程学院 胡斌 学习情境 6 系统安全管理( 8 学时) 按照系统的职能范围不同,可将Oracle的安全体系 结构分成三个部分; (1)数据库内部的管理:主要包括用户标识/口令 ;角色与权限等。 (2)资源管理:主要通过系统概要文件限制连接 会话等。 ( 3.
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
6 Copyright © Oracle Corporation, All rights reserved. 维护控制文件.
MySQL資料庫安全管理.
Oracle数据库 Oracle 子程序.
在PHP和MYSQL中实现完美的中文显示
J2EE与中间件技术 ——Lab.
陈香兰 助教:陈博、李春华 Spring 2009 嵌入式操作系统 陈香兰 助教:陈博、李春华 Spring 2009.
HDS 資料保護解決方案更新.
Oracle数据库入门.
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
SVN的基本概念 柳峰
第二讲 搭建Java Web开发环境 主讲人:孙娜
数据库实验指导(一)
第八章 菜单设计 §8.1 Visual FoxPro 系统菜单 §8.2 为自己的程序添加菜单 §8.3 创建快捷菜单.
从现在做起 彻底改变你自己 Sanjay Mirchandani EMC公司高级副总裁、首席信息官.
大学计算机基础 典型案例之一 构建FPT服务器.
SVN服务器的搭建(Windows) 柳峰
SQL Injection.
网络常用常用命令 课件制作人:谢希仁.
第11章:一些著名开源软件介绍 第12章:服务安装和配置 本章教学目标: 了解当前一些应用最广泛的开源软件项目 搭建一个网站服务器
DM81X 视频采集处理 ——简单采集显示例程讲解 广州创龙电子科技有限公司
PostgreSQL 8.3 安装要点 四川大学计算机学院 段 磊
Windows网络操作系统管理 ——Windows Server 2008 R2.
Windows网络操作系统管理 ——Windows Server 2008 R2.
第十章 IDL访问数据库 10.1 数据库与数据库访问 1、数据库 数据库中数据的组织由低到高分为四级:字段、记录、表、数据库四种。
科研信息管理工具 Endnote X4 王辉.
以ISI平台为例,为您演示一下如何在Endnote文献中查看该文献的References
第17章 网站发布.
2019/1/12 GDP设计协同 超级管理员操作手册 GDP项目组.
散发思维:数据迁移 李广才 ludatou.
数据挖掘工具性能比较.
ENS 10.1安装配置指南 王俊涛 | SE.
中国科学技术大学计算机系 陈香兰(0551- ) Spring 2009
作业调度系统常用命令.
Windows 7 的系统设置.
VSS使用简介 王树升
用event class 从input的root文件中,由DmpDataBuffer::ReadObject读取数据的问题
DevDays ’99 The aim of this mission is knowledge..
Gzip编译及调试 曹益华
三:基于Eclipse的集成开发环境搭建与使用
程序设计工具实习 Software Program Tool
录制回放工具使用说明 鲁晓宇
C语言程序设计 主讲教师:陆幼利.
電子郵件簡介.
Web安全基础教程
第四章 团队音乐会序幕: 团队协作平台的快速创建
Platform Builder使用介绍 WINCE系统应用开发流程说明 ACTION RDC 杨 涛 2005.Dec.3th
商业分析平台-语义元数据 用友集团技术中心 边传猛 2013年 11月 06日.
计算机网络与网页制作 Chapter 07:Dreamweaver CS5入门
教育部 财政部 网络教育数字化学习资源中心平台系统 安装与配置
解决“最后1公里”问题.
名以清修 利以义制 绩以勤勉 汇通天下 新晋商理念 李安平
JSP实用教程 清华大学出版社 第2章 JSP运行环境和开发环境 教学目标 教学重点 教学过程 2019年5月7日.
iSIGHT 基本培训 使用 Excel的栅栏问题
LOGIX500软件入门 西安华光信息技术有限公司 2008年7月11日.
Visual Basic程序设计 第13章 访问数据库
Touch Github = Touch the World
Delphi 7.0开发示例.
GIS基本功能 数据存储 与管理 数据采集 数据处理 与编辑 空间查询 空间查询 GIS能做什么? 与分析 叠加分析 缓冲区分析 网络分析
Python 环境搭建 基于Anaconda和VSCode.
第四章 UNIX文件系统.
FVX1100介绍 法视特(上海)图像科技有限公司 施 俊.
使用Fragment 本讲大纲: 1、创建Fragment 2、在Activity中添加Fragment
第六讲 酒店客房管理系统(二) 教育部“十二五”职业教育国家规划教材
百万行、千万行数据查询教程 老黄牛.
Primary introduction to docker
Presentation transcript:

升级、 迁移和整合 到 Oracle Database 12c Mike Dietrich 数据库升级和实用程序 Oracle Corporation

数据库升级开发组 Roy Swonger Carol Tagliaferri Cindy Lim Joseph Errede 软件开发 和 产品管理高级总监 Cindy Lim 首席技术人员 Joseph Errede Eric Wittenberg 首席软件工程师 Mike Dietrich 资深首席技术专家 Carol Tagliaferri 软件开发高级经理

终身支持政策 现在 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 月 标准支持服务 免费扩展支持服务 扩展支持服务 持续支持服务

现在需要升级吗?

升级、迁移与整合 多租户环境简介 可插拔数据库发展之路 使用可插拔数据库 总结

多租户环境 - 概念! 整合 减少维护 简化和加速供应、克隆和迁移 选件名为 Oracle Multitenant

注意!!  许多众所周知的概念都将发生改变 管理员指南中有大约 150 页的新文档

地球依旧圆  您不是必须使用可插拔数据库……尚非必须 Oracle Database 12c 非 CDB 可按预期工作 您还是可以使用新特性 - 而这将需要改变旧习惯

实施 多租户容器数据库 => CDB CDB 总是包含一个 PDB$SEED,以及零个、一个或许多可 插拔数据库 (PDB) DBA 在 CDB 级别进行管理 CDB 总是包含一个 PDB$SEED,以及零个、一个或许多可 插拔数据库 (PDB) 应用程序将连接到 PDB 1 个 CDB 最高可容纳 252 个 PDB CDB PDB$SEED PDB

容器 CDB 中有什么? PDB、CDB$ROOT 和 PDB$SEED 都称为容器 PDB 可插拔数据库 包含数据和代码 CDB$ROOT

后台 一个 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

创建 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 […]

从命令行创建 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 }

CDB-PDB:简介 创建 CDB 之后: 数据字典 通用用户 默认根目录下没有用户数据 CDB$ROOT PDB$SEED OBJ$ TAB$ SOURCE$

CDB-PDB:简介 将 PDB 插入 CDB 之后: 数据驻留在 PDB 中 将在 CDB 中创建引用 交换从 PDB 内部访问字典对象 CDB$ROOT PDB$SEED OBJ$ TAB$ SOURCE$ PDB EMP DEPT

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

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

升级、迁移和整合 多租户环境简介 可插拔数据库发展之路 使用可插拔数据库 总结 新建 PDB 克隆 PDB 升级并作为 PDB 插入 完全可传输的导出/导入 使用可插拔数据库 总结

创建 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)

多租户环境概述 多租户环境简介 可插拔数据库发展之路 使用可插拔数据库 总结 新建 PDB 克隆 PDB 升级并作为 PDB 插入 完全可传输的导出/导入 使用可插拔数据库 总结

克隆 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 PDB3@de.acme.cdb1;

升级、迁移和整合 多租户环境简介 可插拔数据库发展之路 使用可插拔数据库 总结 新建 PDB 克隆 PDB 升级并作为 PDB 插入 完全可传输的导出/导入 使用可插拔数据库 总结

首先升级,然后插入 要将数据库插入多租户环境,必须首先将其升级到 Oracle Database 12c 完成升级之后,数据库将设置为只读 升级步骤与多租户的概念无关 完成升级之后,数据库将设置为只读 将生成一个 XML 描述 文件 然后即可插入该数据 库,它将成为可插拔 数据库

升级到 Oracle Database 12c Oracle 7.3.4 Oracle 8.0.6 Oracle 8.1.7.4 101.0.5 Oracle 10.2.0.5 Oracle 11.10.7 Oracle 11.2.0.2 Oracle 12.1.0.1 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 9.2.0.8 11.2.0.3 8.0.6 9.2.0.8 11.2.0.3 8.1.7.4 10.2.0.5 9.0.1.4 10.2.0.5 9.2.0.8 11.2.0.3 10.1.0.5 11.2.0.3 10.2.0.5 直接 11.1.0.7 直接 11.2.0.2 直接 请注意:本图将只适用于数据库升级!

升级到 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

Oracle 12c 中新的升级前脚本 新的升级前脚本 preupgrd.sql 将加载新的升级前软件包 utluppkg.sql SQL> @?/rdbms/admin/preupgrd.sql 在以下目录生成输出: $ORACLE_BASE/cfgtoollogs/V102/preupgrade preupgrade.log 包含有关源数据库中任何发现、建议、 警告、修正和错误的详细信息 preupgrade_fixups.sql 此脚本需要在源数据库中运行 - 它将 修复某些问题或指示 DBA 必须实施的修复 postupgrade_fixups.sql 旨在升级之后立即运行,将修复未解决的问题 - 其中还包含对手动交互(例如更改时区)的说明

SQL 自动化 - 升级之前 Preupgrade_fixups.sql

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

Oracle 12c 中新的并行升级 已用于选定客户升级至 Oracle Database 11.2.0.3 Payback 的 Exadata V1 迁移至 X2 并行升级速度提高 37% 电子世界的市场领导者 并行升级已用于 100 多个 SAP 系统

并行升级脚本 在 Shell 中使用 catctl.pl 并行启动升级: catctl.pl 是 PERL 驱动程序 将尽可能以并行方式执行升级脚本 同时还执行 catuppst.sql 和 catbundle.sql -n y 决定并行度 最多可有 8 个并行线程

进度信息 在 catctl.pl 运行时进行监视:

SQL 自动化 - 升级之后 执行 postupgrade_fixups.sql:

时区 时区调整 时区转换应在升级之后完成 如果使用了数据类型 TIMESTAMP WITH TIME ZONE,则需要调整 时区 规则:TZ目标 ≥ TZ源 时区定义位置:$ORACLE_HOME/oracore/zoneinfo Oracle 数据库版本 默认时区版本 10.2.0.3 – 10.2.0.5 DST V4 11.1.0.6 – 11.1.0.7 11.2.0.1 DST V11 11.2.0.2 – 11.2.0.3 DST V14 12.1.0.1 DST V18 最新临时补丁: 参见 MOS 说明:412160.1 DST V19

时区 时区调整: 使用该说明提供的脚本: MOS 说明:1509653.1 数据库将 重新启动!

升级并插入 CDB 第 1 步: 数据库升级到 Oracle 12c CDB$ROOT Oracle 10.2.0.5 V102 数据库 升级 Oracle 12.1.0.1 V102 CDB$ROOT PDB$SEED

升级并插入 CDB 第 2 步: 数据库处于只读模式 创建 XML 文件 CDB$ROOT Oracle 12.1.0.1 V102 XML PDB$SEED

升级并插入 CDB 第 3 步: 停止数据库并将其插入 CDB 重用临时文件; CDB$ROOT Oracle 12.1.0.1 V102 XML Oracle 12.1.0.1 PDB1 CDB$ROOT PDB$SEED

升级并插入 CDB 第 4 步: 定义 TNS 别名并通过 TNS 连接到 PDB: sqlplus "sys/oracle@PDB1 as sysdba" 启动 PDB: 使用以下脚本检查健全性: ?/rdbms/admin/noncdb_to_pdb.sql Oracle 12.1.0.1 PDB1 CDB$ROOT PDB$SEED

升级、迁移和整合 多租户环境简介 可插拔数据库发展之路 使用可插拔数据库 总结 新建 PDB 克隆 PDB 升级并作为 PDB 插入 完全可传输的导出/导入 使用可插拔数据库 总结

可传输表空间的概念 可传输表空间特性始自 Oracle 8i Oracle Database 10g 引入了跨平台可传输表空间 可以跨版本使用 要传输的版本必须总是为相同或更高版本 Oracle Database 10g 引入了跨平台可传输表空间 可以跨版本、跨平台使用 要求表空间处于只读模式 SYSTEM/SYSAUX 中的所有操作都需要额外工作

可传输表空间示例 迁移元信息 (视图、同义词、触发器、角色等) SYSTEM SYSAUX UNDO TEMP 源数据库 10.2.0.4 目标数据库 11.2.0.3 用户 视图 代码 权限 视图 代码 权限 SYSTEM SYSAUX UNDO TEMP SYSTEM SYSAUX UNDO TEMP APP HUGO APP HUGO

完全可传输的导出/导入 传输整个数据库 导出始于 Oracle 11.2.0.3,导入始于 Oracle 12c 3 个阶段: 跨版本、跨平台 导出始于 Oracle 11.2.0.3,导入始于 Oracle 12c 3 个阶段: 数据文件迁移 使用数据文件副本或 RMAN 增量备份 通过网络导入传输 健全性检查

完全可传输的导出/导入 源数据库 11.2.0.3 目标数据库 12.1.0.1 数据泵 转换和应用备份 源数据库 11.2.0.3 INC BCK1 目标数据库 12.1.0.1 INC BCK0 视图 代码 权限 APP HUGO 视图 代码 权限 数据泵 用户 SYSTEM SYSAUX UNDO TEMP SYSTEM SYSAUX UNDO TEMP APP HUGO

示例: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 12.1.0.1 PDB - 克隆

示例:11.2.0.3 12c PDB 表空间 只读 第 2 阶段:传输 - 停机! Oracle 11.2.0.3 V112 数据库链接 impdp oow/passwd@PDB12 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 12.1.0.1 PDB12 备份 必须 可访问

示例:11.2.0.3 12c PDB 第 3 阶段:清除 CDB$ROOT Oracle 11.2.0.3 V112 表空间 读写 Oracle 11.2.0.3 V112 数据库链接 CDB$ROOT PDB$SEED Oracle 12.1.0.1 PDB12

升级、迁移和整合 多租户环境简介 可插拔数据库发展之路 使用可插拔数据库 总结

字典视图 新增字典视图系列:{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 时的插件违规情况

层次结构 通用用户可以从 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 3 - 254 PDB 1 - 252

更改初始参数 列出可以在 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;

重要查询 PDB 在我的 CDB 中吗? PDB 处于何种打开模式? show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED ------ -------------------------- ---------- --------- 2 PDB$SEED READ ONLY NO 3 PDB1 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 21-MAY-12 12.19.54.465 PM HRPDB READ WRITE NO 21-MAY-12 12.34.05.078 PM SALESPDB MOUNTED NO 22-MAY-12 10.37.20.534 AM

资源管理器和 CDB/PDB 为下列各项设置资源使用量: 共享与限制政策定义 CPU 会话 并行服务器 示例: PDB 共享 保证的 CPU A 2 2/4 = 50% 100% B 1 1/4 = 25% 50% C

升级、迁移和整合 多租户环境简介 可插拔数据库发展之路 使用可插拔数据库 总结

总结 升级到 Oracle Database 12c 更轻松且自动化 因为并行而更加快速 可以跨操作系统完成迁移,现在借助完全可传输导出/导入, 大大方便了这种迁移 整合到 Oracle Multitenant 的功能非常强大

幻灯片下载 http://blogs.oracle.com/UPGRADE 向下滚动以转 到幻 灯片

Graphic Section Divider