暂无图片
暂无图片
4
暂无图片
暂无图片
暂无图片

数据库管理-第七十六期 如何升级19c RAC(20230516)

原创 胖头鱼的鱼缸 2023-05-16
1664

数据库管理 2023-05-16

第七十六期 如何升级19c RAC

上一期展示了如何安装19c RAC,将继续展现RAC版本升级等相关操作。

1 回头处理

因为操作系统不是我装的,所以在上一期其实有个问题是忘记创建/u01的逻辑卷并单独挂载,因此今天第一件事情是处理这件事情:

/u01/app/19.0.0/grid/bin/tfactl stop /u01/app/19.0.0/grid/bin/crsctl stop crs fdisk /dev/sda #以实际磁盘为准将剩余空间划成一块分区 partprobe /dev/sda pvcreate /dev/sda4 vgcreate u01 /dev/sda4 lvcreate -l 100%VG -n u01 u01 mkfs.xfs /dev/mapper/u01-u01 mkdir /a01 mount /dev/mapper/u01-u01 /a01 mv /u01/* /a01 umount /a01 mount /dev/mapper/u01-u01 /u01 vim /etc/fstab #添加以下内容 /dev/mapper/u01-u01 /u01 xfs defaults 0 0 /u01/app/19.0.0/grid/bin/crsctl start crs /u01/app/19.0.0/grid/bin/tfactl start

检查:
image.png
image.png

2 升级AHF

定期升级AHF还是很有必要的,特别是能开SR的。

mkdir /u01/ahf mv AHF-LINUX_v23.4.0.zip /u01/ahf cd /u01/ahf unzip AHF-LINUX_v23.4.0.zip ./ahf_setup

进行以下操作:
image.png
image.png
image.png
以上操作仅在一个节点执行即可,建议节点间root用户也配置SSH互信。
检查:
image.png

3 升级GI及DB

  • 从12c开始,对于安装了GI和DB的实例来说,可以使用root通过opatchauto命令同时升级GI和DB。(在补丁搜索是选择System Patch)
    image.png
  • 对于RAC集群来说可以通过rolling方式,一个实例一个实例升级GI和DB,opatchauto会避免出现两个实例同时升级。
  • 如果是ADG环境,需要先在备库安装升级补丁再在主库升级。
  • 执行OJVM升级仍需要关闭数据库实例,可分实例执行操作。

3.1 拷贝所需文件

mkdir /u01/1916 mv p34086870_190000_Linux-x86-64.zip /u01/1916 #OJVM 19.16 mv p6880880_190000_Linux-x86-64.zip /u01/1916 #OPatch mv p34130714_190000_Linux-x86-64.zip /u01/1916 #System Patch 19.16 chmod 777 -R /u01/1916

3.2 升级OPatch

在进行补丁升级之前,需要先对OPatch补丁工具进行升级,需要升级版本以及下载地址详见补丁中的README.html:
image.png
需要替换原有的OPatch:

mv /u01/app/19.0.0/grid/OPatch /home/grid/OPatch_bak_19.3 mv /u01/app/oracle/product/19.0.0/dbhome_1/OPatch /home/oracle/OPatch_bak_19.3 su - grid cd /u01/1916 unzip p6880880_190000_Linux-x86-64.zip su - root mv /u01/1916/OPatch /u01/app/19.0.0/grid su - oracle cd /u01/1916 unzip p6880880_190000_Linux-x86-64.zip mv OPatch /u01/app/oracle/product/19.0.0/dbhome_1/

检查:
image.png
image.png

3.3 升级GI与DB

  • 解压补丁包:
su - grid cd /u01/1916 unzip p34130714_190000_Linux-x86-64.zip
  • 执行补丁冲突检查:
su - grid $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /u01/1916/34130714/34133642 $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /u01/1916/34130714/34160635 $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /u01/1916/34130714/34139601 $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /u01/1916/34130714/34318175 $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /u01/1916/34130714/33575402 su - oracle $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /u01/1916/34130714/34133642 $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /u01/1916/34130714/34160635

所有检查passed即可:
微信截图_20230516145541.png

  • 分实例轮流执行以下操作:
su - cd /u01/1916/34130714 /u01/app/19.0.0/grid/OPatch/opatchauto apply ./ #如出现异常需要根据日志处理后执行: /u01/app/19.0.0/grid/OPatch/opatchauto resume #本次升级过程中,第一个节点GI补丁应用失败,是因为GI家目录下部分文件仍然存在调用现象,经排查是安装进程遗留仍在调用部分lib文件。因此建议新装RAC集群所有服务器节点都重启一次。

image.png
image.png
image.png
整个升级流程其实是再次进行补丁检查,确认无问题后关闭数据库与CRS,然后开始按顺序开始DB升级、GI升级,然后启动CRS(包含数据库),最后执行补丁包含的SQL patch。这里一个节点的升级时间大概是10-20分钟的样子,不分节点因为需要执行SQL patch,因此时间会加长不少(本次超过了40分钟)。

3.4 应用SQL变更

在所有节点完成上述升级操作后,仅需在一个节点执行以下命令,DG环境该操作仅需在主库执行:

sqlplus / as sysdba SQL> alter pluggable database all open; SQL> exit;
cd $ORACLE_HOME/OPatch ./datapatch -verbose

该操作虽然在README文档中要求执行,但是在日志中该语句是在最后一步执行了的:
d066e2fd395f4bb1bc42e2b4e085cc51.png
由于本次还要升级OJVM,该操作放到OJVM补丁升级完成后执行。

4 升级OJVM

分实例轮使用oracle用户流执行以下操作:

4.1 解压补丁

cd /u01/1916 unzip p34086870_190000_Linux-x86-64.zip

4.2执行补丁冲突检查:

cd /u01/1916/34086870 $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./

image.png

4.3 升级OJVM

sqlplus / as sysdba SQL> shutdown immediate SQL> exit;
cd /u01/1916/34086870 $ORACLE_HOME/OPatch/opatch apply

image.png
image.png
升级OJVM的操作就比较快了。

sqlplus / as sysdba SQL> startup SQL> exit;

4.4 应用SQL变更

在所有节点完成上述升级操作后,仅需在一个节点执行以下命令,DG环境该操作仅需在主库执行:

sqlplus / as sysdba SQL> alter pluggable database all open; SQL> exit;
cd $ORACLE_HOME/OPatch ./datapatch -verbose

image.png
这里也可以看到DBRU的SQL变更是已经应用了的。

5 最终验证

image.png
image.png
image.png
至此升级完全结束。

总结

本文不包含one-off patch,需要升级此类补丁请阅读README文件。
后面还有Exadata X9M与这套库之间搭建ADG的操作,也会形成文档,预计要等一段时间了。
老规矩,知道写了些啥。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论