资讯专栏INFORMATION COLUMN

记一次oracle小版本回退

IT那活儿 / 2334人阅读
记一次oracle小版本回退
在客户的要求下,我们针对数据的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/admin
sqlplus /nolog
SQL> CONNECT / AS SYSDBA
SQL> STARTUP
SQL> @catbundle_PSU_CWSWDB_ROLLBACK.sql
SQL> 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 DOWNGRADE
SQL>
SQL> SPOOL downgrade.log
SQL> @catdwgrd.sql
SQL> SPOOL OFF



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

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0.3/db1
export PATH=$ORACLE_HOME/bin:$ORA_CRS_HOME/bin:$PATH

source .bash_profile
检查/etc/oratab并修改为降级后的ORACLE_HOME

8. 停数据实例并以upgrade在一个节点启动,执行catrelod.sql重新加载降级数据库中所有数据库组件的相应版本

SQL> SHUT IMMEDIATE
SQL> STARTUP UPGRADE
SQL>
SQL> SPOOL catrelod.log
SQL> @catrelod.sql
SQL> 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/db11204
export PATH=$ORACLE_HOME/bin:$ORA_CRS_HOME/bin:$PATH

srvctl 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那活儿

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129845.html

相关文章

  • 一次升级Oracle驱动引发的死锁

    摘要:问题描述近期项目需要从虚拟机环境迁移到容器环境,其中有一个项目在迁移到容器环境之后的两天之内出现了次死锁的问题,部分关键日志如下日志还是挺明显的,线程获得了锁,等待获取而正好相反,从而导致死锁问题分析以上的错误 问题描述 近期项目需要从虚拟机环境迁移到容器环境,其中有一个项目在迁移到容器环境之后的两天之内出现了2次死锁(deadlock)的问题,部分关键日志如下: Found one ...

    Caicloud 评论0 收藏0
  • 一次 android 线上 oom 问题

    摘要:问题分析随着回滚版本的放量,主端崩溃逐渐回归正常,进一步坐实了新版本存在问题。内容非常多但都是重复的,看起来进程没有启动,导致连接端一直在进行重连。背景公司的主打产品是一款跨平台的 App,我的部门负责为它提供底层的 sdk 用于数据传输,我负责的是 Adnroid 端的 sdk 开发。sdk 并不直接加载在 App 主进程,而是隔离在一个多带带进程中,然后两个进程通过 tcp 连接进行通信...

    番茄西红柿 评论0 收藏2637

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<