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

记一次oracle小版本回退

IT那活儿 2021-07-28
853
在客户的要求下,我们针对数据的11.2.0.3版本升级到11.2.0.4,经过准生产测试后,生产版本也升级成功。但是由于某些原因,客户要求对已经升级的版本进行回退。针对回退做了如下操作:
1. ###root###使用11.2.0.4的环境变量,对每个节点执行,回滚psu

/db/oracle/product/11.2.0.3/db11204/OPatch/opatch auto db/soft/28429134 -rollback

2. 启动所有的数据库实例,确保所有的实例都是启动正常的

srvctl start database -d cwswdb

3. 在其中一个节点执行以下脚本

cd $ORACLE_HOME/rdbms/adminsqlplus nologSQL> CONNECT AS SYSDBASQL> STARTUPSQL> @catbundle_PSU_CWSWDB_ROLLBACK.sqlSQL> QUIT
4. 如果是RAC数据库,需要修改一下参数

alter system set CLUSTER_DATABASE=FALSE sid='*' scope=spfile;

5. 降级前需要

1)查看数据库组件及数据库对象状态,确保有效执行utlrp.sql编译

2)如果已在数据库上启用了 Oracle Database Vault,则必须禁用(降级之后再启用,本次不涉及)

SQL> CONNECT DVSYS/DVSYS SQL> ALTER TRIGGER DV_BEFORE_DDL_TRG DISABLE; SQL> ALTER TRIGGER DV_AFTER_DDL_TRG DISABLE;
3)升级前如果配置了Enterprise Manager则需要停止服务,并删除用户

DROP USER sysman CASCADE;

6. 在其中一个节点以DOWNGRADE打开数据库实例,执行脚本

SQL> STARTUP DOWNGRADESQL> SQL> SPOOL downgrade.logSQL> @catdwgrd.sqlSQL> SPOOL OFF

7. 修改.bash_profile环境变量为回退的ORACLE_HOME,并使其生效,所有节点操作

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0.3/db1export PATH=$ORACLE_HOME/bin:$ORA_CRS_HOME/bin:$PATHsource .bash_profile
检查/etc/oratab并修改为降级后的ORACLE_HOME
8. 停数据实例并以upgrade在一个节点启动,执行catrelod.sql重新加载降级数据库中所有数据库组件的相应版本

SQL> SHUT IMMEDIATESQL> STARTUP UPGRADESQL> SQL> SPOOL catrelod.logSQL> @catrelod.sqlSQL> SPOOL OFF

9. 修改CLUSTER_DATABASE参数

alter system set CLUSTER_DATABASE=TRUE sid='*' scope=spfile;

10. 正常启动数据库实例

SQL> SHUT IMMEDIATE

SQL> STARTUP

11. 执行utlrp.sql编译

SQL>@utlrp.sql


12. 集群环境需配置ORACLE_HOME信息,使用11.2.0.4的srvctl进行更改

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0.3/db11204export PATH=$ORACLE_HOME/bin:$ORA_CRS_HOME/bin:$PATHsrvctl downgrade database -d cwswdb -o /db/oracle/product/11.2.0.3/db1 -t 11.2.0.3.0

13. 正常启动所有节点,检查日志是否正常等

srvctl start database -d cwswdb

END

更多精彩干货分享

点击下方名片关注

IT那活儿

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论