77
<Insert Picture Here> 升级到 Oracle 数据库 11g 2 诀窍和方法

- oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

Embed Size (px)

Citation preview

Page 1: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

<Insert Picture Here>

升级到 Oracle 数据库 11g 第 2 版 — 诀窍和方法

Page 2: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 2

以下内容旨在概述产品的总体发展方向。此信息仅供参考,不可纳入任何合同。此信息不承诺提供任何资料、代码或功能,并且不应作为制定购买决策的依据。此处所述有关 Oracle 产品的任何特性或功能的开发、发布以及相应的日程安排均由 Oracle 自行决定。

Page 3: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 3

准备

议题

最佳实践

升级总结

外部参考

Page 4: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 4

t2008

2003

2004

2005

2006

2007

2002

2009

2010

现在

Oracle数据库生命周期支持政策

20

11

2012

2013

2014

延伸支持

标准服务

R22007 年 7 月

扩展支持2010 年 7 月

2009 年 1 月 2012 年 1 月

R2 2010 年 7 月 2013 年 7 月

2015

2016

2012 年 8 月 2015 年 8 月

2008 年 7 月

2011 年 7 月

R2

2017

2018

2015 年 1 月 2018 年 1 月

Page 5: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 5

生命周期支持政策特性 基本服务 扩展支持 延伸支持

Major Product and Technology Releases

Technical Support

Access to Knowledge Base

(MetaLink/Customer Connection/SupportWeb)

Updates, Fixes, Security Alerts and Critical Patch

Updates Pre-existing Only

Tax, Legal and Regulatory Updates No

Upgrade Scripts No

Certification with existing Third Party

Products/Versions No

Certification with New Third Party

Products/Versions No No

Certification with new Oracle Products No

Page 6: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 6

升级到 Oracle Database 11g

R2

R2

10.2.0.2

10.1.0.5

R2

7.3.4

8.0.6

8.1.7.4

9.0.1.4

9.2.0.8

9.2.0.4

“空”箭头表示:不需要特定的补丁版本

Page 7: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 7

检查所用的平台是否有Oracle 认证

• 有关产品和产品组任务的说明,请参见说明:964664.1

Page 8: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 8

Oracle 认证

Page 9: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 9

升级更简单!

• 升级到 Oracle Database 11g 比升级到先前的 Oracle

版本更简单

• 升级指南大小:• 8.1.7 - 512 页

• 9.0.1 - 484 页 — 一个包含 9 个组件的 RDBMS 只需 111 步

• 9.2.0 - 344 页

• 10.1.0 - 170 页

• 10.2.0 - 140页

• 11.1.0 - 186 页

• 11.2.0 - 178 页

Page 10: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 10

常见问题解答

• 升级需要多长时间?

Page 11: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 11

升级所需时间

• 完成升级需要多长时间?

• 不取决于:• 数据库大小

• 使用的数据类型

• 主要取决于:

• 安装的组件和选件的数量

• 有效且不过时的数据字典统计信息

• 同义词数量 — 将重新编译同义词(从 9i 升级)

• XDB 中的对象数量

• 如果修改 COMPATIBLE参数,则以下因素对升级所需时间的影响很小:

• 数据文件数量

• 重做日志大小

Page 12: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 12

示例:数据库升级所需时间

• 通常在 30 到 90 分钟之间• 主要取决于安装的选件和组件

• *实际时间可能有所不同„„

Component HH:MM:SS

Oracle Server 00:16:17

JServer JAVA Virtual Machine 00:05:19

Oracle Workspace Manager 00:01:01

Oracle Enterprise Manager 00:10:13

Oracle XDK 00:00:48

Oracle Text 00:00:58

Oracle XML Database 00:04:09

Oracle Database Java Packages 00:00:33

Oracle Multimedia 00:07:43

Oracle Expression Filter 00:00:18

Oracle Rule Manager 00:00:12

Gathering Statistics 00:04:53

Total Upgrade Time: 00:52:31

Component HH:MM:SS

Oracle Server 00:16:17

JServer JAVA Virtual Machine 00:05:19

Oracle XDK 00:00:48

Oracle Text 00:00:58

Oracle XML Database 00:04:09

Oracle Database Java Packages 00:00:33

Gathering Statistics 00:02:43

Total Upgrade Time: 00:30:47

Page 13: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 13

不同的升级方法

位于相同操作系统上?否 是

升级导出/导入

CTAS、COPY

可传输表空间

可传输数据库

Oracle Streams

DBUA

停机时间 > 30 分钟?

SQL Apply

CLI

SQL> @catupgrd

Oracle Golden Gate

Page 14: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 14

何时选择命令行

• 可以接受 30-90 分钟的平均停机时间

• 与 GUI 相比,更偏爱手动命令行界面的用户

• 如果要升级到 11g,现有数据库至少为 9.2.0.4;如果要升级到 11g R2,现有数据库至少为 9.2.0.8

• 迁移到一个使用相同操作系统的新硬件平台

• 考虑事项• 无法升级到一个使用不同操作系统体系结构的系统

• 需要更多手动步骤

• 更易出现输入错误、漏掉详细信息

Page 15: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 15

命令行升级

• 步骤:1. 完成数据库的联机备份

2. 安装 11g Oracle 软件并应用补丁集、PSU 等

3. 使用 utlu112i.sql分析数据库并按照脚本给出的所有要求进行操作

4. 使用 NETCA 创建新的 11g 监听器

5. 切换到新环境,启动数据库 (startup upgrade) 并创建 SYSAUX 表空间

(仅当源数据库是 Oracle 9i 数据库时)

6. 运行升级脚本 catupgrd.sql

7. 使用 utlrp.sql 重编译 — 使用 utluiobj.sql进行比较

8. 如果从 10g 及之后的版本进行升级,运行 catuppst.sql

9. 检查升级后的状态:utlu112s.sql

Page 16: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 16

命令行升级

• 升级信息脚本:utlu112i.sql• 在源数据库环境中运行

• 检查所有 init 参数,并对过期的、不适当的参数显示警告

• 检查

• 组件

• 表空间 SYSAUX

• 国家字符集

• 时区文件版本检查

• 集群检查

Info

Page 17: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 17

SQL> STARTUP UPGRADE;

• 忽略不必要的错误消息,如ORA-00942:table or view does not exist -

这样日志文件更易于阅读和检查

升级模式

摘自一个 alert.log 示例

ALTER SYSTEM SET _system_trig_enabled=FALSE SCOPE=MEMORY;

Autotune of undo retention is turned off.

ALTER SYSTEM SET _undo_autotune=FALSE SCOPE=MEMORY;

ALTER SYSTEM SET undo_retention=900 SCOPE=MEMORY;

ALTER SYSTEM SET aq_tm_processes=0 SCOPE=MEMORY;

ALTER SYSTEM SET enable_ddl_logging=FALSE SCOPE=MEMORY;

Resource Manager disabled during database migration: plan '' not set

ALTER SYSTEM SET resource_manager_plan='' SCOPE=MEMORY;

ALTER SYSTEM SET recyclebin=‘OFF’ DEFERRED SCOPE=MEMORY;

Resource Manager disabled during database migration

Page 18: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 18

何时选择 DBUA

• 可以接受 30-90 分钟的平均停机时间

• 操作系统相同

• 与手动命令行界面相比,更偏爱 GUI的用户• 自动执行有用的升级前检查

• 出错概率降低/手动工作量减少

• 如果要升级到 11g,现有数据库至少为 9.2.0.4;如果要升级到 11g R2,现有数据库至少为 9.2.0.8

• 注意:对 RAC 和 ASM 安装尤为有用

• 考虑事项:• 源和目标 Oracle 主目录必须位于相同的系统上

• 如果升级过程中发生错误,将无法重新运行

Page 19: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 19

Database Upgrade Assistant (GUI)

• 特性:• 图形化导引式升级

• 大量重要检查

• 识别 RAC — 包括所有节点• 对于 RAC(几乎)是必需的!!!

• 可以实现脱机备份和恢复

• ASM 升级(直至 11.1)

• Oracle XE 升级

• 补丁升级

• 最佳实践:启动 DBUA 之前

• 在当前环境中运行 $OH_11g/rdbms/admin/utlu112i.sql

• 日志:• $ORACLE_HOME/cfgtoollogs/dbua

• 详情请参阅 Oracle® Database Upgrade Guide 的第 3 章

Page 20: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 20

Database Upgrade Assistant (GUI)

Page 21: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 21

Database Upgrade Assistant (GUI)

Page 22: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 22

Database Upgrade Assistant (GUI)

Page 23: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 23

Database Upgrade Assistant (GUI)

Page 24: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 24

准备

议题

最佳实践

升级总结

外部参考

Page 25: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 25

最佳实践

• 阅读文档

Page 26: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 26

文档

• 说明:601807.1 Upgrade Companion 11g

• 说明:785351.1 Upgrade Companion 11g 第 2 版

Page 27: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 27

文档

• 说明:785351.1 Upgrade Companion 11g

Page 28: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 28

文档

• 说明:785351.1 Upgrade Companion 11g

Page 29: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 29

文档

• 升级指南•

+

http://download.oracle.com/docs/cd/B28359_01/server.111/b28300/toc.htm

http://download.oracle.com/docs/cd/E11882_01/server.112/e10819/toc.htm

• 说明:429825.1手动升级到 11g 的完整清单

• 说明:837570.1手动升级到 11g 第 2 版的完整清单

• 说明:421191.1手动从 X 升级到 Y 的完整清单

Page 30: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 30

OTN 中关于升级的页面

• http://www.oracle.com/technology/global/cn/products/database/oracle11g/upgrade/index.html

Page 31: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 31

OTN 的升级页面

• 或者只需要 ...

Page 32: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 32

OTN 的升级页面

• http://www.oracle.com/technology/products/database/oracle11g/upgrade/index.html

Page 33: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 33

OTN 升级论坛

• http://forums.oracle.com/forums/forum.jspa?forumID=583&start=0

Page 34: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 34

升级博客:blogs.oracle.com/UPGRADE

Page 35: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 35

最佳实践

• 升级之前,为新的 $ORACLE_HOME 打补丁

Page 36: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 36

补丁集安装

• 开始升级之前,为您的“新”$OH 安装补丁集和补丁

Page 37: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 37

推荐的补丁

Page 38: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 38

推荐的补丁

Page 39: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 39

推荐的补丁

Page 40: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 40

补丁集更新 (PSU) 安装

• 安装 PSU

• 说明:854428.1:数据库补丁集更新简介

• 数据库 PSU 包括:• 针对可能影响大量客户以及实践中已经证明的关键问题的修复

• 重要补丁更新 (CPU) 修复

• 数据库 PSU 不包括:• 需要重新认证的更改

• 需要更改配置的修复

• 通常包括 50-100 个新的错误修复 — 累积式

• 保证 RAC 可以滚动安装

• 更改 11.2.0.1.1 及之后的版本号的第五位

• 每年发布 4 次,例如,CPU 一年四次定期发布• 平台:

Solaris SPARC64、Linux x86 和 x86-64、HP-UX PA-RISC、HP Itanium、IBM AIX

Page 41: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 41

• 说明 161818.1

Oracle各个版本的状态信息

Page 42: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 42

• 说明:454507.1Oracle 11g 第 1 版 (11.1.0.X) 的支持状态和警报

升级信息/警报

Page 43: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 43

• 说明 738538.1 特定于 11.1.0.7 补丁集的已知问题

升级信息/警报

Page 44: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 44

• 说明 738538.1 特定于 11.1.0.7 补丁集的已知问题

升级信息/警报

Page 45: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 45

建议的操作系统补丁

• 说明 169706.1: 操作系统安装和配置

• 说明:401705.1 Linux x86、x86-64 和 s390x 系统要求参考表

Page 46: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 46

最佳实践

• 保留性能统计信息

Page 47: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 47

性能统计信息

• 保留性能统计信息• 获取准确的性能统计信息

• 比较:前 后

• 特定于时间的查询和批处理

• 测试数据库升级

• 功能测试

• 实际负载的性能测试!!!

• Real Application Testing

• SQL Performance Analyzer

• 数据库重放

Page 48: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 48

性能统计信息

• 升级之前获取尽可能多的性能信息,这至关重要

• 尽可能多意味着:至少从升级前 4 周开始

• 收集准确的性能统计信息

• 在 Oracle 8i/9i 中:

• 使用 STATSPACK

• 升级之前导出 PERFSTAT 用户权限

• 说明:466350.1 升级前/后使用 STATSPACK

• 在 Oracle 10g/11g 中:

• 使用 AWR

• 每隔 30-60 分钟进行一次快照 — 保留:>30 天

• 使用 DBMS_SWRF_INTERNAL.AWR_EXTRACT 导出 AWR

• 使用 ADR DIFF 报告比较升级前后的性能:DBMS_WORKLOAD_REPOSITORY.AWR_DIFF_REPORT_HTML

Page 49: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 49

最佳实践

• 清理操作:重要检查

Page 50: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 50

无效对象

• 始终检查 INVALID 对象:

• SYS 和 SYSTEM 用户模式中不应存在无效对象• 使用 utlrp.sql 重新编译无效对象

• 比较升级前后的无效对象

• 从 11.1.0.7 开始,自动进行比较

• 在 registry$sys_inv_objs 和 registry$nonsys_inv_objs 中查找

无效对象

• 比较升级前后:utluiobj.sql

SQL> SELECT UNIQUE object_name, object_type, owner

FROM dba_objects WHERE status='INVALID';

Page 51: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 51

回收站

• 如果从 10g 或 11g 升级,升级前需要清空回收站。

SQL> purge DBA_RECYCLEBIN;

Page 52: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 52

最佳实践

• 如何处理时区更改

Page 53: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 53

• 摘自 Oracle 内部信息电子邮件:

时区补丁

Page 54: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 54

• 为什么选择 DST 时区补丁?(DST:夏令时)

• 自 2007 年起,DST 定义和时区名称已多次更改• 按版本排列的时区版本:

• Oracle 9i: TZ V1

• Oracle 10.1: TZ V2

• Oracle 10.2.0.1/2: TZ V2

• Oracle 10.2.0.3: TZ V3

• Oracle 10.2.0.4: TZ V4

• Oracle 11.1: TZ V4

• 源版本要求 TZ V4,否则无法进行任何升级• Oracle 11.2: TZ V11

• 源版本不需要打补丁。11.2 中将进行时区转换

时区补丁

Page 55: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 55

时区补丁 — 11g 第 2 版

• 升级到 Oracle Database 11g 第 2 版:• 新的 11.2-$OH 具有时区 V11

• 无需对源 $OH 打补丁

• 仅当您使用TIMESTAMP WITH TIMEZONE 数据类型时,才需要调整数据库

• 升级之后进行转换

• 请参见说明 944122.1

• 程序包 DBMS_DST

• DBMS_DST.FIND_AFFECTED_TABLES

• DBMS_DST.BEGIN_UPGRADE

• DBMS_DST.UPGRADE_DATABASE

• DBMS_DST.END_UPGRADE

R2

Page 56: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 56

最佳实践

• 始终运行升级前脚本:

• 升级到 Oracle Database 11g:utlu111i.sql

• 升级到 Oracle Database 11.2:utlu112i.sql

Page 57: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 57

升级前检查

• 在当前环境中运行 utlu112i.sql

Oracle Database 11.2 Pre-Upgrade Information Tool 09-21-2009 22:33:20

********************************************************************** Database: ********************************************************************** --> name: ORCL --> version: 10.2.0.3.0 --> compatible: 10.2.0.3.0 --> blocksize: 8192 --> platform: Linux IA (32-bit) --> timezone file: V4

[..]

********************************************************************** Update Parameters: [Update Oracle Database 11.2 init.ora or spfile] ********************************************************************** WARNING: --> "java_pool_size" needs to be increased to at least 64 MB

[..]

********************************************************************** Miscellaneous Warnings ********************************************************************** WARNING: --> Database is using a timezone file older than version 11. .... After the release migration, it is recommended that DBMS_DST package .... be used to upgrade the 10.2.0.3.0 database timezone version .... to the latest version which comes with the new release.

Page 58: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 58

升级前检查

• 使用 utlu1nmi.sql 获取当前版本

• 下载该脚本

• 说明:884522.1

Page 59: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 59

最佳实践

• 更改到 11.1 或 11.2 之前,保留COMPATIBLE 为原始值一周(万一需要降级的话)。

Page 60: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 60

参数 COMPATIBLE

• COMPATIBLE 在 11g 数据库中至少必须为 10.1.0

• 一旦为 11.1.0 及之后的版本,则无法返回• 支持的版本降级至 10.1.0.5, 10.2.0.2, 11.1.0.6

• 不再有 ALTER DATABASE RESET COMPATIBILITY 命令

COMPATIBLE = 10.0/1/2.0

COMPATIBLE = 11.0.0

Page 61: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 61

参数 COMPATIBLE

• DBUA 仅针对 9i 数据库增加 COMPATIBLE

• 升级后启用新特性:• 11.1:

• 11.2 :

• 然后:重新启动数据库

• 将启用新特性

• 将调整数据文件头

• 将在首次访问期间调整重做日志文件

SQL> alter system

set compatible='11.1.0' scope=spfile;

SQL> alter system

set compatible='11.2.0' scope=spfile;

Page 62: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 62

最佳实践

• 您有回退策略吗? ...

Page 63: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 63

回退策略

• 在任何情况下:进行备份!!!

• 然后决定:• 如果发生了意外情况导致您不得不后退,是否允许丢失数据?

(也就是说,升级后对系统中的数据进行更改):

是或否?

• 如果是:恢复一个备份,闪回(从 10g)• 如果否:导出/导入,降级

Page 64: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 64

回退策略:catdwgrd.sql

• 通过 catdwgrd.sgl进行降级

• 说明:443890.1

• 降级到升级之前的版本

• 10.1.0.5

• 10.2.0.2/3/4

• 11.1.0.6/7

• 仅当未增加 COMPATIBLE 时才可能!!!• 请注意:

只能降级到升级之前的版本,如果已经应用了一个补丁集,则在升级开始之前始终应用该补丁集,否则,您只能降级到打补丁的版本

Page 65: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 65

回退策略:catdwgrd.sql

• 通过 catdwgrd.sql 降级到 10g

• 11g 环境中的任务:

• 切换到您升级前的 10g 环境:

• 请注意:如果 EM 信息库位于数据库中,则需要更多步骤 — 请参阅 Oracle 11g Upgrade Guide 中的第 6 章 Downgrading a Database

SQL> SPOOL /tmp/downgrade.log

SQL> STARTUP DOWNGRADE

SQL> @catdwgrd.sql

SQL> SPOOL OFF

SQL> STARTUP UPGRADE

SQL> SPOOL /tmp/reload.log

SQL> @catrelod.sql-- The catrelod.sql script reloads the appropriate version of

-- all of the database components in the downgraded database.

SQL> SPOOL OFF

Page 66: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 66

最佳实践

• 升级之后 „„

Page 67: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 67

升级后

• 在负载稳定期间创建系统统计信息 — 否则,无法针对 CBO

使用适当的值:

SQL> select pname NAME, pval1 VALUE, pval2 INFO

from aux_stats$;

NAME VALUE INFO

-------------------- ---------- ------------------------------

STATUS COMPLETED

DSTART 04-03-2009 12:30

DSTOP 05-03-2009 12:30

FLAGS 1

CPUSPEEDNW 1392.39

IOSEEKTIM 8.405

IOTFRSPEED 255945.605

...

SQL> exec DBMS_STATS.GATHER_SYSTEM_STATS('start');

... -- some time delay while the database is under a typical workload execute

SQL> exec DBMS_STATS.GATHER_SYSTEM_STATS('stop');

Page 68: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 68

升级后

• 示例:客户 OLTP 负载• 无系统统计信息的运行时间:2:19 小时

• 有系统统计信息的运行时间:2:07 小时

• 速度至少提高 9%

Page 69: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 69

升级后

• 收集固定表统计信息• catupgrd.sql完成后立刻创建

• 这将加快 utlrp.sql重新编译的作业处理

• 再次:数据库负载稳定几天后

SQL> exec DBMS_STATS.GATHER_FIXED_OBJECTS_STATS;

Page 70: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 70

升级所需时间

• 通过以下措施提高升级性能:• 截断审计表 SYS.AUD$

• 升级之前收集字典统计信息

• Oracle 9i:

• Oracle 10g/11g:

SQL> truncate SYS.AUD$;

SQL> exec DBMS_STATS.GATHER_SCHEMA_STATS

('SYS', options => 'GATHER',estimate_percent =>

DBMS_STATS.AUTO_SAMPLE_SIZE, method_opt => 'FOR

ALL COLUMNS SIZE AUTO', cascade => TRUE);

SQL> exec DBMS_STATS.GATHER_DICTIONARY_STATS;

Page 71: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 71

准备

议题

最佳实践

升级总结

外部参考

Page 72: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 72

86 个外部 11g 参考 (1/4)

Page 73: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 73

86 个外部 11g 参考 (2/4)

Page 74: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 74

86 个外部 11g 参考 (3/4)

Page 75: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 75

86 个外部 11g 参考 (4/4)

Page 76: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 76

准备

议题

最佳实践

升级总结

外部参考

Page 77: - oracle.com · 升级到Oracle 数据库11g 第2 ... •识别RAC —包括所有 ... Solaris SPARC64、Linux x86 和x86-64、HP-UX PA-RISC、HP Itanium、IBM

2010 Oracle Corporation 77

升级总结

• 根据以下因素选择一种升级方法:• 数据库环境

• 可接受的停机时间长度

• DBA 对复杂程度的了解以及容忍程度

• 在可能的情况下,建议使用 DBUA,因为既简单又易于使用

• 始终通过 RMAN 创建一个联机备份

• 请记住:升级过程从未如此简单过,但您仍然必须进行测试!!!

• 11g R2 是一个稳定的数据库版本,赶快升级到该版本吧!