AIX 5.3下 升级补丁到10.2.0.5步骤

转自同事ROBIN的博客
 
 
 
环境AIX5.3, 原oracle版本 10.2.0.1

1 停止OEM/isqlplus/监听/DB实例
$ emctl stop dbconsole
$ isqlplusctl stop
$ lsnrctl stop
$ sqlplus /  as sysdba
SQL> shutdown immediate;
2 升级Oracle软件
1) 备份ORACLE_HOME和oraInventory
升级前对要升级的ORACLE_HOME进行备份是必要的, 还有oraInventory目录, 一
旦升级失败便于回退
$ cd $ORACLE_HOME/..
$ tar jcvf db_1_`date +%Y%m%d`.tar.bz2 db_1
$ cd $ORACLE_BASE
$ tar jcvf oraInventory_`date +%Y%m%d`.tar.bz2 oraInventor

另外一个备份的方法

$ cd $ORACLE_HOME/..
$ cp -pr db_1 db_1_new                    (备份到新目录, 且保留mode,ownership,timestamps等信息)
$ diff -q -r db_1 db_1_new                (比较两个目录, 应该只有日志文件发生变化)
 
 
2) 升级Oracle 软件
 

通过response文件开始升级, 升级时间大概2-3分钟.

设置DISPLAY=192.168.0.1:0.0  (设置图形显示,用的是xmanager的passive接收)
安装之前会提醒你 安装/usr/sbin/slibclean   这个一定要跑啊。。
$ cd /u01/software/10g/
$ unzip p8202632_10205_AIX64-5L_1of2.zip
$ unzip p8202632_10205_AIX64-5L_2of2.zip
$ cd Disk1
注意升级前要保证/tmp空间有2。5G空余空间
$ ./runInstaller -silent -responseFile $DISTRIB/response/patchset.rsp
ORACLE_HOME="/u01/app/oracle/product/10.2.0/db_1"
ORACLE_HOME_NAME="OraDb10g_home1" DECLINE_SECURITY_UPDATES="true"
 
如果未使用默认的组oinstall, 则runInstaller命令后需再加一个参数:
UNIX_GROUP_NAME="oinstall"
各参数含义如下:
-silent 表示以静默方式安装,不会有任何提示;
-responseFile 表示使用哪个响应文件,必需使用绝对路径;
ORACLE_HOME="/u01/app/oracle/product/10.2.0/db_1" oracle安装目录;
ORACLE_HOME_NAME="OraDb10g_home1" ORACLE_HOME名;
DECLINE_SECURITY_UPDATES="true" 是否需要安全更新, true表示不需要,
否则会要求输入metalink账号和联网信息;
UNIX_GROUP_NAME="oinstall" oracle用户用于安装软件的组名;
注意: 你也可以直接用。/runInstaller运行,安装程序会检查和提示你一步一步的升级完成

 

3) 运行root.sh和changePerm.sh
ü 升级结束后, 以root用户执行$ORACLE_HOME下的root.sh(如有提示则一直回车):
# /u01/app/oracle/product/10.2.0/db_1/root.sh

安装PatchSet后新增的文件或目录是限制访问的, 其它用户或第三方工具要访问这些文件时会提示错误,
所以要修改权限:
# su - oracle
$ cd $ORACLE_HOME/install
$ ./changePerm.sh
...
Do you wish to continue (y/n) [n]: y
...
$ tail -50f /tmp/changePerm_err.log
 
ü 升级软件后检查:
$ sqlplus /nolog
SQL*Plus: Release 10.2.0.5.0 - Production on Sat May 8 14:34:51 2010
Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.
SQL> exit;
 
 
 
3 升级数据库
$ sqlplus / as sysdba
SQL> startup upgrade;                     (以升级模式启动数据库)
SQL> SPOOL /tmp/patch102050.log
SQL> @?/rdbms/admin/catupgrd.sql          (重建数据字典, 若有问题可重复执行)
...
Total Upgrade Time: 00:23:34              (数据库大小110G)
...
SQL> SPOOL off
SQL> !egrep "ORA-|Error" /tmp/patch102050.log   (查看是否有错误)
SQL> shutdown immediate;
SQL> startup;
SQL> select count(1) from dba_objects where status='INVALID';
  COUNT(1)
----------
       484
SQL> @?/rdbms/admin/utlrp.sql             (编译失效PLSQL包对象, 尽管第一次访问包是会自动编译, 还是推荐操作)
...
OBJECTS WITH ERRORS
-------------------
                  0
...
ERRORS DURING RECOMPILATION
---------------------------
                          0
注意: 这个编译过程可能因为你数据库里面的对象问题,有一些错误,你需要在plsql下
执行: select * from UTL_RECOMP_ERRORS 检查无效的对象。有些是可以忽略的

4 开启OEM/isqlplus/监听
$ lsnrctl start
$ isqlplusctl start
$ emctl start dbconsole
 
上一篇:KBEngine v0.9.14 发布,分布式游戏服务端引擎


下一篇:《Oracle PL/SQL程序设计(第5版)》一一1.5 PL/SQL开发人员的资源