当前位置: 首页 > news >正文

Oracle RAC ADG备库版本降级方案(19.20 → 19.7)

Oracle RAC ADG备库版本降级方案(19.20 → 19.7)

一、前期准备

1.1环境验证

主库版本:19.7

备库版本:19.20

检查兼容性:确认Oracle 19.20补丁是否支持回滚至19.7

1.2备份与快照

对备库数据库进行全量备份(RMAN备份)。

对备库的Oracle软件目录($ORACLE_HOME)和集群配置(Grid Infrastructure)进行快照。

二、降级步骤

2.1停止ADG同步

在备库执行

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

2.2卸载当前补丁(19.20)

进入OPatch目录

su – grid

cd $ORACLE_HOME/OPatch

查看已安装补丁

opatch lspatches

一次性卸载补丁

opatchauto rollback  <UNZIPPED PATCH LOCATION>/35319490

如果上述失败,可考虑分别尝试卸载grid和db的补丁:

先停掉集群服务:

#crsctl stop crs –f

#ps -ef|grep d.bin确认无进程,如果有在kill -9

To roll back the patch from the Grid home:

# opatchauto rollback <UNZIPPED_PATCH_LOCATION>/35319490 -oh <path to GI home> 

To roll back the patch from the Oracle RAC database home:

# opatchauto rollback <UNZIPPED_PATCH_LOCATION>/35319490 -oh <oracle_home1_path>,<oracle_home2_path>

grid集群版本和oracle数据库版本都检查一下

opatch lspatches

注意:若补丁不可回滚,需卸载整个19.20软件并重新安装19.7。

2.4安装目标补丁(19.7)

解压补丁包

unzip pXXXXXXX_190000_Linux-x86-64.zip

# 应用补丁

cd XXXXXX

opatchauto apply <UNZIPPED PATCH LOCATION>/35319490

2.6启动备库日志应用

srvctl stop database -d dgemr -o immediate

srvctl start database -d dgemr

alter pluggable database all open instances=all;

-- 启动日志应用

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;

三、验证与测试

3.1版本一致性检查

-- 主库和备库执行

SELECT * FROM v$version;

3.2 ADG同步状态

SELECT * FROM V$ARCHIVE_GAP;

SELECT * V$ARCHIVE_DEST_STATUS;

SELECT NAME, VALUE FROM V$DATAGUARD_STATS WHERE NAME IN ('transport lag', 'apply lag', 'estimated startup time');

-- 主库查询同步延迟

SELECT DEST_NAME, STATUS, ARCHIVED_THREAD#, ARCHIVED_SEQ#

FROM V$ARCHIVE_DEST_STATUS

WHERE DEST_ID = 2;

-- 备库查询应用进度

SELECT PROCESS, STATUS, THREAD#, SEQUENCE#

FROM V$MANAGED_STANDBY;

3.3数据一致性验证

-- 主备库执行数据抽样比对

SELECT COUNT(*) FROM schema_name.table_name;

四、遇到问题

  1. 节点1卸载19.20成功,节点2卸载后启动crs失败:

 处理办法:强制停止crs,再重启crs

#crsctl stop crs –f

#crsctl start crs

2.打补丁19.7,节点1成功,节点2失败

原因是目录权限存在问题,应该是节点2在卸载19.20后失败导致权限没有正常变更导致。

经历的报错:一定查看相应日志,根据提示处理:

缺少目录:

权限无法拷贝:

 

最终处理办法:

参考:一次惊险的oracle19c rac升级补丁(19.11->19.20) - 墨天轮

[grid@dgrac1 ~]$scp -rp /u01/gridhome/inventory/oneoffs//* dgrac2:/u01/gridhome/inventory/oneoffs/

分别对grid和db的家目录打补丁:

#opatchauto apply <UNZIPPED_PATCH_LOCATION>/35319490 -oh <path to GI home> 

#opatchauto apply <UNZIPPED_PATCH_LOCATION>/35319490 -oh <oracle_home1_path>,<oracle_home2_path>

chown -R /u0l/grid/product/19c/gridhome_1

grid打补丁:

/u01/grid/product/19c/gridhome_1/OPatch/opatchauto apply /u0l/software/19.7/30899722 -oh /u0l/grid/product/19c/gridhome_1

chmod 6751 $ORACLE_HOME/bin/oracle

db打补丁:

/u01/app/oracle/product/19c/dbhome_1/OPatch/opatchauto apply /u0l/software/19.7/30899722 -oh /u0l/grid/product/19c/gridhome_1

最后启动:

#crsctl start crs

#ps -ef|grep d.bin正常 

相关文章:

  • Java 大视界——Java大数据在智慧交通智能停车诱导系统中的数据融合与实时更新
  • C语言指针深入详解(五):回调函数、qsort函数
  • Windows平台多功能工具箱Moo0的技术实现分析
  • 牛客周赛 Round 93题解(个人向A-E)
  • 通过强化学习让大模型自适应开启思考模式
  • 十四、面向对象底层逻辑-BeanFactoryPostProcessor接口设计
  • 塔能智能照明方案——贵州某地区市政照明改造实践
  • UE(虚幻)学习(六)插件打包在UE5.3.2下Value cannot be null的错误
  • 科技赋能,开启现代健康养生新潮流
  • matlab+opencv车道线识别
  • 火语言RPA--EmpireV7相册发布
  • 中级网络工程师知识点9
  • Go 语言简介
  • arrow-0.1.0.jar 使用教程 - Java jar包运行方法 命令行启动步骤 常见问题解决
  • C#新建打开文件对话框
  • 【Unity网络编程知识】协议生成工具Protobuf
  • 《量子雷达》学习(1) 2025.5.20
  • C#调用GTS控制板
  • 口腔牙科小程序源码介绍
  • 【工具使用】STM32CubeMX-USB配置-实现U盘功能
  • 为俄乌一日三通电话,这里成“关键战场”?
  • 凤阳鼓楼脱落瓦片2023年刚经历修复,凤阳县文旅局长回应是否违建等焦点问题
  • 连续两个交易日涨停,华夏幸福:生产经营活动正常,不存在影响股价波动的重大事宜
  • 花旗回应减员传闻:持续评估人力资源战略,将为受影响的个人提供支持
  • 上海发文加强直播经济技能人才培养:三年新培养持证直播技能人才5万名
  • 蔡建忠已任昆山市副市长、市公安局局长