查看原文
其他

手把手教你升级到 Oracle 19c(一)

甲骨文云技术 JiekeXu DBA之路 2024-03-03


Oracle Database 19c已经发布有一段时间了,我们也在之前的文章中介绍了 19c 的新特性,您是否准备好将您的数据库升级到 19c 了呢?小编将与您通过3~4期的时间,与您一同体验各种升级方式。


本次教程使用的是我司Mike大神(Mike Dietrich)编写的教程,您可以通过点击本文下方的“阅读全文”去Mike大神的部落格下载实验用的虚拟机环境。下图为Mike的部落格截图。



教程概要:

1、练习环境搭建

2、生成工作量,生成 AWR 快照

3、捕获和保存 SQL

4、手动数据库升级

5、升级前后性能对比

6、SQL 性能分析器

7、SQL 计划管理

8、SQL 优化建议器

9、数据库自动升级

10、插拔式升级

11、使用 Full Transportable Export/Import,技术升级

12、12c PDB 插入式升级



如我们刚才所说,您来到本文下方“阅读原文”所在的链接,点击下图红框所示的链接。



请您先安装虚拟机运行环境,并下载下图中所提到的所有虚拟机压缩文件。



关于文件的解压与虚拟机的导入,小编在这里就不再赘述。在云时代,大家都喜欢将虚拟机导入云端环境来运行,不占用本地计算机资源,而且可以7*24运行,这也是为什么现在很多培训机构大量购买云服务,而不再像十年前那样,购买大量高端计算机。本次小编将虚拟机导入Oracle 的公有云 OCI,创建了一个 4 core 60GB 的云端环境。如果您没有云端环境,您完全可以使用 Oracle VM VirtualBox 或者其他您熟悉的虚拟机环境来运行本虚拟机。


本虚拟机的内建环境如下,内含多个版本的数据库,我们将通过后面的练习,将这些低版本的数据库升级到 19.3。




下面是本实验的操作视频,将在视频后面为您分步讲解。



我们在后面的实验当中,需要比较升级前和升级之后的数据库性能,我们在当前实验当中,使用 hammerDB 生成一些工作量,并生成相应的快照,为后续创建各种报告做准备。在这个实验中,我们操作的数据库是 upgr(虚拟机环境已经为您建好该数据库)。


第一步:设定环境变量并创建快照


在本套实验环境当中,我们为大家创建了多个概要文件,概要文件中对环境变量进行了统一设置,如果您对概要文件的内容感兴趣,您可以自己通过文本编辑器进行查看。请按照顺序执行下图中用红色框标记的脚本,并记录生成的快照号码,我们当前生成的快照号码是92.


第二步:启动HammerDB载入工作量脚本并创建测试用户


HammerDB 是一个工作量生成工具(HammerDB is the leading benchmarking and load testing software for the worlds most popular databases supporting Oracle Database, SQL Server, IBM Db2, MySQL, MariaDB, PostgreSQL, and Redis.),它是一个可视化的工具,您可以在本虚拟机当中的 /home/oracle 路径下,通过执行 ./hammer.s 启动它。小编使用的是 Oracle 公有云环境,所以我会使用 VNC 来连接远程的图形界面。软件启动后的样子如下图:



请双击下图中箭头所指的 Load,载入预先设定好的脚本。



然后请双击下图中的 Create,创建测试用户。


第三步:执行SQL捕获脚本

我们在 HammerDB 中加载工作量之前,先来到 SQL Plus 执行工作量捕获脚本。



这个脚本执行之后,会 hang 在那里,等待你去加载工作量。我们回到 hammerDB,双击下图中的 run,加载工作量。


您可以点击下图中箭头所指的监控按钮,观察工作量情况。



当您看到下图中红色框中的数字都是1时,表明工作量执行完毕,您也会在后面看到执行状态下面出现绿色的对号。您可以将 HammerDB 关闭。



您这时,可以回到刚才的 SQL Plus,查看 SQL 捕获情况,如果程序没有执行完毕,请不要着急,请耐心等待它的执行,直到看到如下结果,这个等待时间会根据您的机器配置不同而不同,小编的云环境没有出现等待,在关闭 HammerDB 之后,来到 SQL Plus 就看到执行完毕的界面。



第四步:我们在执行完工作量之后,在生成一个快照


请执行下图红色框中的代码,并记录生成快照的编号,我们当前的编号为93。



到这里,我们“生成工作量,生成快照”的实验就完成了。



在这个实验当中,我们查看捕获的 SQL Tuning Set,我们通过两种方法进行查看。我们在本实验当中,也要将 AWR 报告导出去,我们在数据库升级时,经常要将 AWR 报告导出,以备日后查阅,请先观看本实验的视频,然后将为您做分步介绍。



第一步:通过脚本查询之前生成的 SQL Tuning Set


执行下图中红色框中的脚本,您将看到目前捕获的 SQL Tuning Set 的信息以及快照信息。



第二步:通过 SQL 语句查询 SQL Tuning Set 讯息


请执行下图中红色框所示语句,查询 SQL Tuning Set 的讯息。



第三步:导出 AWR


我们在数据库升级时,经常要导出 AWR 报告,以备日后使用。关于 AWR 的导出,大家都不会陌生,我们在本实验环境当中,事先创建了目录对象,名字叫做 DATA_PUMP_DIR,我们稍后就将导出的结果放入这个目录对象当中。请按照如下图片中的提示进行操作。


首先执行下图中红色框所示脚本。并在被问询输入dbid时,直接按回车键,这将使用默认的database id。



接下来,系统提示我们输入要列出的快照天数,我们输入数字1.



接下来输入 AWR 的起始快照号,请注意这两个快照号码中,不能跨越数据库重启,具体原因请查询网络或者参加 Oracle University 数据库管理员课程。



接下来请选择报告存储位置,系统帮我们列出了可用的目录对象名称。



接下来被询问报告的名称,您可以给出自己喜欢的名称或者向我一样,直接按回车键,使用系统给出的名称。



稍等片刻,报告将很快生成完毕。生成后的界面如下。



到这里,我们本小节实验完毕。



在本小节实验中,我们将 11.2.0.4 的 UPGR 数据库,升级到 19.3。下面视频是升级的操作录像,升级具体执行时间会根据您的硬件环境不同而不同,一般会在 20-40 分钟左右。


在这个实验中,大致分为如下几个步骤:

  • 升级前准备

  • 拷贝参数文件

  • 升级

  • 升级后调整

  • 修改时区

  • 修改兼容版本号

  • 修改 oratab



第一步:执行升级前准备脚本


在这个脚本当中,将显示数据库当前信息,升级前的必要准备。请在命令行中执行下图中红色框所示脚本。



第二步:执行 OLS PRE UPGRADE 脚本,看看是否有错误出现


请来到 SQL Plus 执行下图中红色框所示脚本。



如果顺利的话,您将看到如下结果,如果出现错误,请查阅文档进行修复。



第三步:修改数据库参数(processes和SGA)并执行升级前修复脚本


在修改数据库参数时,您可以根据自己的实际情况进行修改,如果您是在笔记本上做练习,您可以将 SGA 修改为 1GB。如果您有更好的测试环境,也可以适当调整S GA 及 processes 参数。在修改完参数之后,请将 spfile 进行导出,最后执行修复脚本。请执行下图中红框所示的4条语句。



第四步:关闭数据库、复制初始化参数文件并创建密码文件


因为这些操作都是基础操作,您只需按执行图中红框内的代码即可。



第五步:创建spfile并启动数据库到upgrade模式,等待升级


下图中在设定完环境变量之后,启动sqlplus(下图中没有在“1”和“2”之间标记出来,但请执行)。



第五步:退出SQL Plus,执行升级动作


升级的动作会消耗比较长的时间,一般情况下会用 20-50 分钟的时间完成。您只需要执行下图中红色框所示脚本即可。这里额外要和大家说明的是,因为本实验环境中包含多个数据库,环境变量也有好多不同的设定。建议您按照本文中的顺序执行,避免出现因为环境变量设定错误而导致升级失败。当然,如果您已经清楚我们在文章开头所示的本实验环境的结构,您完全可以随时新开 Terminal 并按照自己的喜好执行任何您认为正确的脚本。



经过差不多 20 分钟的等待,您将看到如下结果,表示脚本执行成功。



第六步:清理无效对象并执行升级后修复脚本


首先设定 upgr19 环境变量,然后在 SQL Plus 当中启动数据库,并执行清理无效对象的脚本以及升级后的修复脚本。清理无效对象的脚本会占用大量的CPU资源,并且执行大概 5-10 分钟左右。



升级后的修复脚本也将执行大概 5 分钟左右。



当脚本执行完毕,您将看到下面的结果。



第七步:修改时区, 将TZ v14 修改为 TZ v32


在这个步骤中,我们将执行3个脚本,其中第3个脚本将消耗相对较长的时间,以为里面涉及到多次的数据库重启。



第八步:修改兼容版本号


我们通过 alter system 语句修改兼容版本号,然后重启数据库。


首先退出刚才的 SQL Plus,重新登录。



第九步:修改 oratab


这是我们升级的最后一步,将 /etc/oratab 中的

UPGR:/u01/app/oracle/product/11.2.0.4:Y

修改为:

UPGR:/u01/app/oracle/product/19:Y

修改后的结果为:



到此,我们手动升级的实验全部完成了。因为篇幅的限制,我们将在后面的文章中完成其他实验。期待您的关注,谢谢。


❤️ 欢迎关注我的视频号,来一起玩耍吧!!!


————————————————————————————
公众号:JiekeXu DBA之路
墨天轮:https://www.modb.pro/u/4347
CSDN :https://blog.csdn.net/JiekeXu
腾讯云:https://cloud.tencent.com/developer/user/5645107
————————————————————————————



Oracle 表碎片检查及整理方案

2021 年公众号历史文章合集整理

2020 年公众号历史文章合集整理

我的 2021 年终总结和 2022 展望

Oracle 19c  RAC 遇到的几个问题

Oracle 查询表空间使用率超慢问题一则

国产数据库|TiDB 5.4 单机快速安装初体验

Oracle ADG 备库停启维护流程及增量恢复

Linux 环境搭建 MySQL8.0.28 主从同步环境

Oracle 19c 使用数据泵如何导入导出 PDB 用户

继续滑动看下一个

手把手教你升级到 Oracle 19c(一)

甲骨文云技术 JiekeXu DBA之路
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存