这是本系列教程的第三讲,今天将为大家介绍如何使用EM13c对数据库配置进行检查,以及使用EM13c对数据库应用补丁。
今天将使用到Database Fleet Maintenance技术,这是一种端到端的数据库补丁与升级的管理工具,Database Fleet Maintenance可以让数据库完成自动化的升级与补丁应用,包括我们经常使用的RAC和DG等。Database Fleet Maintenance为大家提供如下功能:
- 跨不同基础设施应用数据库补丁,包括Exadata在内。
在今天的实验当中,我们会使用到EM的命令行工具emcli,使用ssh工具登录到EM13c所在主机,并使用下方代码进行登录。
实验3-1:使用Software Standardization Advisor检测数据库配置
Software Standardization Advisor可以帮助管理员处理IT系统当中的软件配置问题,这个建议器可以找出当前配置中需要改进之处,并给出丰富的修改意见,从而减轻管理员的工作负担并增加系统的整体稳定性,提升系统的安全性。
在Target菜单中选择Database来到数据库列表页,然后在Administration菜单中选择Software Standardization Advisor。第一次使用,系统会花一点时间来进行统计收集。
在Software Standardization Advisor的首页,可以看到当前系统中,数据库的版本情况,如果是RAC环境,可以点击Grid Infrastructure选项卡,了解GI的版本及配置情况。如果觉得图标显示过于单薄,可以点击下图中红框所标识的按钮来生成报告。
系统会生成两个Excel文件,显示当前的配置情况,已经应用的Patch信息,以及Oracle建议的Patch信息等。
实验3-2:使用Fleet maintenance应用数据库补丁
在上一步实验中,我们发现hr.subnet.vcn.oraclevcn.com这个数据库的版本是18.3,在这个实验中,我们使用Fleet Maintenance将它升级到18.10。首先我们要了解Fleet Maintenance的工作流程,如下图所示:第一步要创建一个Gold Image,这是一个已经应用好补丁程序的software home,Target就是要被应用补丁程序的对象。
首先我们检查一下要被应用补丁的数据库版本。
在当前环境中,有一个已经应用了18.10补丁的home,我们通过Targer将它找出来,并将这个软件位置作为我们Gold image。
接下来我们通过命令行来创建Gold Image。我们事先写好了一个sh脚本,通过下面①所示了解到,在该脚本当中要调用一个inp文件,我们再将该inp文件打开,看到③所示的就是我们在上一步事先设定好的Oracle Home。
接下来我们执行这个脚本。
创建Gold Image要需要一些时间,我们可以通过在Provisioning and Patching当中的Procedure activity当中查看创建状态。
大概使用12分钟,创建完毕。
可以通过emcli db_software_maintenance -getImages来查询我们刚刚创建Gold Image,这里需要记录IMAGE ID。
根据刚才得到的Image ID可以查询该Image的具体信息。可以在下图中看到这个Image的数据库版本是18.10
在将Gold Image应用到具体的Oracle Home之前,我们要校验一下这个Gold Image与目标Oracle Home是否兼容。通过下面的检查,是可以兼容的。
接下来我们要做的就是将要升级的数据库与这个Gold Image注册起来。在注册的过程中依旧要使用到Iamge ID。
接下来就要完成部署工作了,在部署命令当中我们看到有一个inp文件,这个文件是指定升级后的新Oracle Home路径。
这个部署过程大概要花20分钟,我们依旧可以在Procedure activity当中对部署过程进行监控。
接下来更新监听器。
Oracle Home升级完毕,监听器也升级完毕,现在来升级数据库。这也是一个比较漫长的过程,大概需要10分钟。
如果想从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
确认之前的Oracle Home已经不存在:
最后就我们启动并注册监听器,之前这个数据库对应的监听器被关闭了,现在需要启动并注册,然后检查状态。
今天为大家介绍了使用Fleet Management对数据库进行打补丁,当我们处理单个数据库时,觉得与手工补丁相比没有变得更加简洁,但当我们在企业范围内同时处理多个数据库时,将带来极大的效率提升,并保证系统稳定运行。在下一讲当中,我们将为大家介绍使用Fleet Management对数据库进行升级,将18c数据库升级到19c,期待您的关注,谢谢。
相关链接:
EM13c 基础教程Workshop(1)
EM13c 基础教程Workshop(2)
编辑:殷海英