oracle 9207->9208(HPUX,RAC)

oracle 9207->9208(HPUX,RAC)

本次只打了9208patch,没有打CPU patch。

(1) 安装前的准备工作
1)  全备份数据库
使用DP软件进行数据库的全量备份和增量备份,确保全备是在近两天内完成,确保全备份后的归档日志备份是连续可用的。
2)  备份RMAN库
将RMAN数据库的catalog使用的用户数据进行备份,因为容量不大,使用exp导出备份
3)  备份Oracle软件和清单目录(/var/opt/oracle/oraInst.loc中指定的目录)
将两台主机上的ORACLE软件和清单目录软件进行TAR包备份
4)  检查Oracle软件完整性(例如:清单目录配置情况)
5)  确认需要操作系统补丁是否满足
按照README的要求,确认好操作系统补丁是否满足。

(2) 创建pfile
create pfile='/oracle/arch1/arch1/patch/orap.ora' from spfile;

(3) 修改cluster_database配置
ora1.cluster_database=false
ora2.cluster_database=false
*.cluster_database=false

(4) 停掉应用和数据库
清理掉所有的sqlplus进程,避免安装的时候报lib的错误。
同时安装软件的过程中注意避免有本地程序定时sqlplus。
1) 检查实例SHARED_POOL_SIZE和JAVA_POOL_SIZE配置大于150MB
2) 停止所有节点数据库监听
3) 停止所有节点的数据库实例

(5) 把两实例的$ORACLE_HOME目录和清单目录进行备份
host1:
cd /oracle/arch1/arch1/patch/
tar cvf host1_ora92Home.tar /oracle/product/9.2.0
tar cvf host1_oraInventoryc.tar /var/opt/oracle/oraInst.loc
host2:
cd /oracle/arch1/arch1/patch/
tar cvf host2_ora92Home.tar /oracle/product/9.2.0
tar cvf host2_oraInventoryc.tar /oracle/product/9.2.0

(6) 安装补丁包p4547809_92080_HP64.zip
host1:
cd /oracle/arch1/arch1/patch/
unzip p4547809_92080_HP64.zip

使用xmanager登陆
cd Disk1
DISPLAY=local_host:0.0 ; export DISPLAY
./runInstaller

看到两个节点,进行安装,安装过程中注意各种报错。
我们安装过程中就出现有lib繁忙,不能替换,经过检查是一个远端的程序,登陆本地的操作系统,然后使用了sqlplus程序登陆数据库导致。
检查第三方软件链接库。
安装完成后,详细阅读安装日志,并注意远端分发时是否出现错误(有可能会出现报错信息)。

(7) 执行脚本catpatch.sql
用修改好的pfile文件启动ora1
STARTUP MIGRATE pfile='/oracle/arch1/arch1/patch/orap.ora';
SPOOL patch.log
@?/rdbms/admin/catpatch.sql
SPOOL OFF

可以使用脚本,用nohup在后台跑
#!/bin/sh
ORACLE_SID=ora1;export ORACLE_SID
sqlplus /nolog << EOF
CONNECT / AS SYSDBA
SPOOL patch.log
@?/rdbms/admin/catpatch.sql
SPOOL OFF
quit
EOF

这时候依然排错是重点,仔细检查patch.log,每个错误都不能轻易放过。

我们更新的时候跑了3次catpatch脚本。
第一次:
ORA-04045: errors during recompilation/revalidation of SYS.DBMS_AQADM_SYS
ORA-04052: error occurred when looking up remote objectGZVER2.SYSTEM@ABCDA
ORA-00604: error occurred at recursive SQL level 2
ERROR at line 1:
ORA-04045: errors during recompilation/revalidation of SYS.LOGMNR_KRVRDLUID3
ORA-04052: error occurred when looking up remote objectGZVER2.SYSTEM@ABCDA
ORA-00604: error occurred at recursive SQL level 2
ERROR at line 1:
ORA-04045: errors during recompilation/revalidation of SYS.LOGMNR_KRVRDLUID3
ORA-04052: error occurred when looking up remote objectGZVER2.SYSTEM@ABCDA
ORA-00604: error occurred at recursive SQL level 2
ERROR at line 1:
ORA-04045: errors during recompilation/revalidation of SYS.LOGMNR_KRVRDREPDICT3
ORA-04052: error occurred when looking up remote objectGZVER2.SYSTEM@ABCDA
ORA-00604: error occurred at recursive SQL level 3
ORA-04045: errors during recompilation/revalidation of SYS.DBMS_DEFER_QUERY
ORA-04052: error occurred when looking up remote objectGZVER2.SYSTEM@ABCDA
ORA-00604: error occurred at recursive SQL level 2
ERROR at line 1:
ORA-04045: errors during recompilation/revalidation of SYS.DBMS_DEFER_QUERY
ORA-04052: error occurred when looking up remote objectGZVER2.SYSTEM@ABCDA
ORA-00604: error occurred at recursive SQL level 2
ERROR at line 1:
ORA-04045: errors during recompilation/revalidation of SYS.DBMS_DEFER
ORA-04052: error occurred when looking up remote objectGZVER2.SYSTEM@ABCDA
ORA-00604: error occurred at recursive SQL level 3
ORA-04045: errors during recompilation/revalidation of SYS.DBMS_DEFER_QUERY_UTL
ORA-04052: error occurred when looking up remote objectGZVER2.SYSTEM@ABCDA
ORA-00604: error occurred at recursive SQL level 2

发现有个dblink不通,ABCDA不能使用,原因是那个数据库已经废弃掉,不再使用了。
尝试起动另一个相同的数据库,把tnsnames.ora中的相关配置修正,重新跑第二次脚本。

第二次:
Warning: Package Body created with compilation errors.
ERROR at line 1:
ORA-04063: package body "SYS.DBMS_AQADM_SYS" has errors
ERROR at line 1:
ORA-04063: package body "SYS.DBMS_AQADM_SYS" has errors
ERROR at line 1:
ORA-04063: package body "SYS.DBMS_AQADM_SYS" has errors
Warning: Procedure created with compilation errors.
Errors for PROCEDURE LOGMNR_KRVRDLUID3:
LINE/COL ERROR                                                                 
Warning: Procedure created with compilation errors.
Errors for PROCEDURE LOGMNR_KRVRDREPDICT3:
LINE/COL ERROR                                                                 
Warning: Procedure created with compilation errors.
Errors for PROCEDURE DBMS_LOGMNR_FFVTOLOGMNRT:
LINE/COL ERROR                                                                 
Warning: Procedure created with compilation errors.
Errors for PROCEDURE DBMS_LOGMNR_OCTOLOGMNRT:
LINE/COL ERROR
Warning: Package Body created with compilation errors.
Errors for PACKAGE BODY DBMS_LOGMNR_LOGREP_DICT:
LINE/COL ERROR

这个错误就比较难排除了,SYS.DBMS_AQADM_SYS是一个加密的包,通过oracle工程师查metalink。
发现相关案例,在数据库中有一个公共同义词public.system指向GZVER2.SYSTEM@ABCDA,一般数据库是不建议使用关键字作为对象使用。

取出相关脚本
create or replace public synonym SYSTEM forSYSTEM@ABCDA;

删除此同义词,重新跑第三次脚本。
DROP PUBLIC SYNONYM SYSTEM;

第三次脚本是完全没有错误了。

(8) 执行脚本utlrp.sql
使用原来的spfile启动数据库
SPOOL INVALID.txt
@?/rdbms/admin/utlrp.sql
SPOOL OFF

检查日志的情况,同时检查sys的无效对象

select owner,OBJECT_NAME,OBJECT_TYPE,STATUS,count(*)
from dba_objects
where STATUS<> 'VALID'
and wner='SYS'
group by owner,OBJECT_NAME, OBJECT_TYPE ,STATUS;

(9) 执行权限脚本

(10) 更新RMAN CATALOG
rman target / catalogrman/***@rman
UPGRADE CATALOG;
quit

(11) 启动两实例数据库
启动两实例数据库,升级完成。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值