这是本系列教程的第三讲,今天将为大家介绍如何使用EM13c对数据库配置进行检查,以及使用EM13c对数据库应用补丁。

今天将使用到Database Fleet Maintenance技术,这是一种端到端的数据库补丁与升级的管理工具,Database Fleet Maintenance可以让数据库完成自动化的升级与补丁应用,包括我们经常使用的RAC和DG等。Database Fleet Maintenance为大家提供如下功能:

  • 最短的停机时间,避免错误的补丁
  • 在企业全局使用EM13c部署程序框架
  • 统一监控和管理所有补丁和升级操作
  • 具有计划/重试/暂停/恢复等多重功能。
  • 跨不同基础设施应用数据库补丁,包括Exadata在内。

EM13c 基础教程Workshop(3)_Java

在今天的实验当中,我们会使用到EM的命令行工具emcli,使用ssh工具登录到EM13c所在主机,并使用下方代码进行登录。

EM13c 基础教程Workshop(3)_Java_02

EM13c 基础教程Workshop(3)_Java_03

实验3-1:使用Software Standardization Advisor检测数据库配置

Software Standardization Advisor可以帮助管理员处理IT系统当中的软件配置问题,这个建议器可以找出当前配置中需要改进之处,并给出丰富的修改意见,从而减轻管理员的工作负担并增加系统的整体稳定性,提升系统的安全性。

在Target菜单中选择Database来到数据库列表页,然后在Administration菜单中选择Software Standardization Advisor。第一次使用,系统会花一点时间来进行统计收集。EM13c 基础教程Workshop(3)_Java_04

在Software  Standardization Advisor的首页,可以看到当前系统中,数据库的版本情况,如果是RAC环境,可以点击Grid  Infrastructure选项卡,了解GI的版本及配置情况。如果觉得图标显示过于单薄,可以点击下图中红框所标识的按钮来生成报告。EM13c 基础教程Workshop(3)_Java_05

系统会生成两个Excel文件,显示当前的配置情况,已经应用的Patch信息,以及Oracle建议的Patch信息等。


EM13c 基础教程Workshop(3)_Java_06EM13c 基础教程Workshop(3)_Java_07

EM13c 基础教程Workshop(3)_Java_08实验3-2:使用Fleet maintenance应用数据库补丁

在上一步实验中,我们发现hr.subnet.vcn.oraclevcn.com这个数据库的版本是18.3,在这个实验中,我们使用Fleet  Maintenance将它升级到18.10。首先我们要了解Fleet Maintenance的工作流程,如下图所示:第一步要创建一个Gold  Image,这是一个已经应用好补丁程序的software home,Target就是要被应用补丁程序的对象。EM13c 基础教程Workshop(3)_Java_09

首先我们检查一下要被应用补丁的数据库版本。EM13c 基础教程Workshop(3)_Java_10

在当前环境中,有一个已经应用了18.10补丁的home,我们通过Targer将它找出来,并将这个软件位置作为我们Gold image。EM13c 基础教程Workshop(3)_Java_11

EM13c 基础教程Workshop(3)_Java_12

接下来我们通过命令行来创建Gold Image。我们事先写好了一个sh脚本,通过下面①所示了解到,在该脚本当中要调用一个inp文件,我们再将该inp文件打开,看到③所示的就是我们在上一步事先设定好的Oracle Home。EM13c 基础教程Workshop(3)_Java_13

接下来我们执行这个脚本。

EM13c 基础教程Workshop(3)_Java_14

创建Gold Image要需要一些时间,我们可以通过在Provisioning and Patching当中的Procedure activity当中查看创建状态。EM13c 基础教程Workshop(3)_Java_15EM13c 基础教程Workshop(3)_Java_16EM13c 基础教程Workshop(3)_Java_17

大概使用12分钟,创建完毕。EM13c 基础教程Workshop(3)_Java_18

可以通过emcli db_software_maintenance -getImages来查询我们刚刚创建Gold Image,这里需要记录IMAGE ID。EM13c 基础教程Workshop(3)_Java_19

根据刚才得到的Image ID可以查询该Image的具体信息。可以在下图中看到这个Image的数据库版本是18.10EM13c 基础教程Workshop(3)_Java_20

在将Gold Image应用到具体的Oracle Home之前,我们要校验一下这个Gold Image与目标Oracle Home是否兼容。通过下面的检查,是可以兼容的。EM13c 基础教程Workshop(3)_Java_21

接下来我们要做的就是将要升级的数据库与这个Gold Image注册起来。在注册的过程中依旧要使用到Iamge ID。EM13c 基础教程Workshop(3)_Java_22

接下来就要完成部署工作了,在部署命令当中我们看到有一个inp文件,这个文件是指定升级后的新Oracle Home路径。EM13c 基础教程Workshop(3)_Java_23

这个部署过程大概要花20分钟,我们依旧可以在Procedure activity当中对部署过程进行监控。EM13c 基础教程Workshop(3)_Java_24

接下来更新监听器。EM13c 基础教程Workshop(3)_Java_25

EM13c 基础教程Workshop(3)_Java_26

Oracle Home升级完毕,监听器也升级完毕,现在来升级数据库。这也是一个比较漫长的过程,大概需要10分钟。EM13c 基础教程Workshop(3)_Java_27EM13c 基础教程Workshop(3)_Java_28

EM13c 基础教程Workshop(3)_Java_29如果想从18.10回退到18.3,只要在命令行当中执行如下脚本即可。


curl -i -X POST https://emcc.marketplace.com:7803/em/websvcs/restful/emws/db/fleetmaintenance/performOperation/rollback -H "Content-Type:application/json" -u sysman:welcome1 --data-binary "@/home/oracle/fleet/rollback_hr_payload.json" --insecure

接下来我们清理之前老旧的Oracle Home。

emcli db_software_maintenance -performOperation -name="Cleanup old oracle homes" -purpose=CLEANUP_SOFTWARE -target_type=oracle_database -normal_credential=ORACLE:SYSMAN -privilege_credential=ROOT:SYSMAN -target_list=hr.subnet.vcn.oraclevcn.com -workDir=/tmp -reportOnly=true
emcli db_software_maintenance -performOperation -name="Cleanup old oracle homes" -purpose=CLEANUP_SOFTWARE -target_type=oracle_database -normal_credential=ORACLE:SYSMAN -privilege_credential=ROOT:SYSMAN -target_list=hr.subnet.vcn.oraclevcn.com -workDir=/tmp

EM13c 基础教程Workshop(3)_Java_30确认之前的Oracle Home已经不存在:EM13c 基础教程Workshop(3)_Java_31

最后就我们启动并注册监听器,之前这个数据库对应的监听器被关闭了,现在需要启动并注册,然后检查状态。EM13c 基础教程Workshop(3)_Java_32

EM13c 基础教程Workshop(3)_Java_33

今天为大家介绍了使用Fleet   Management对数据库进行打补丁,当我们处理单个数据库时,觉得与手工补丁相比没有变得更加简洁,但当我们在企业范围内同时处理多个数据库时,将带来极大的效率提升,并保证系统稳定运行。在下一讲当中,我们将为大家介绍使用Fleet  Management对数据库进行升级,将18c数据库升级到19c,期待您的关注,谢谢。


相关链接:
EM13c 基础教程Workshop(1)

EM13c 基础教程Workshop(2)


编辑:殷海英