1 10.2.0.4 打补丁升级到10.2.0.4.4,再打scn补丁
sqlplus / as sysdba
shutdown immediate
lsnrctl stop
[root@P55A_B /ora10g]# su – ora10g
[ora10g@P55A_B /ora10g]$ ls -tlra
[ora10g@P55A_B /ora10g]$ cp .profile .profilebak
[ora10g@P55A_B /ora10g]$ vi .profile( 只保留部分环境变量 )
[root@P55A_B /ora10g]# slibclean
[ora10g@P55A_B /ora10g/tmpdir]$ unzip p9352164_10204_AIX5L.zip
[ora10g@P55A_B /ora10g/tmpdir/9352164]$ /ora10g/product/10.2.0.4/OPatch/opatch apply
[ora10g@P55A_B /ora10g/tmpdir]$ unzip p14121009_102044_AIX64-5L.zip
[ora10g@P55A_B /ora10g/tmpdir/14121009]$ /ora10g/product/10.2.0.4/OPatch/opatch apply
SQL> startup
[ora10g@P55A_B /ora10g/tmpdir/14121009]$ cd $ORACLE_HOME/rdbms/admin
[ora10g@P55A_B /ora10g/product/10.2.0.4/rdbms/admin]$ sqlplus / as sysdba
SQL> @catbundle.sql psu apply
SQL> @?/sqlpatch/14121009/postinstall.sql
[ora10g@P55A_B /ora10g/product/10.2.0.4/rdbms/admin]$ lsnrctl start
2 11203 打补丁升级到11203.15时报错
2) OUI-67200:Make failed to invoke “/usr/ccs/bin/make -f ins_rdbms.mk ioracle ORACLE_HOME=/oracle/app/oracle/product/10.2.0/db_1″….’ld: I/O error, file “/oracle/app/oracle/product/10.2.0/db_1/lib//libserver10.a”:
Fatal error.
Stop
3) OUI-67124:Re-link fails on target “ioracle”.
4) OUI-67200:Make failed to invoke “/usr/ccs/bin/make -f ins_rdbms.mk ioracle ORACLE_HOME=/oracle/app/oracle/product/10.2.0/db_1″….’ld: I/O error, file “/oracle/app/oracle/product/10.2.0/db_1/lib//libserver10.a”:
Fatal error.
Stop.
‘
——————————————————————————–
OPatch failed with error code 115
原因:
是libserver10.a文件已经被破坏了。因为这个文件已经被破坏,所以在从这个文件读取备份文件信息的时候,会报错I/O error。也就是说,我是在opatch正在修改libserver10.a这个文件的时候,按下了ctrl+C,导致写文件到一半被中断,所以导致这个文件被破坏了
解决方法:
将其他数据库的ORACLE_HOME下的libserver10.a文件拷贝到原来失败的ORACLE_HOME下,重新编译即可
3 重建/etc/oraInst.loc
Inventory 目录存放的是Oracle软件安装的目录信息,Oracle升级也需要这个目录,执行opatch lspatches也需要这个目录。oraInventory目录的位置在/etc/oraInst.loc中记录,11g中我们可以通过$ORACLE_HOME/oui/bin/attachHome.sh来重建这个目录。
cd $ORACLE_HOME/oui/bin
./attachHome.sh
4 打补丁时数据库会自动拉起来
解决办法:将补丁回退,数据库关闭,$ORACLE_HOME/dbs下的pfile和spfile mv成别的名字,使得数据库拉不起来,待补丁打完后,手工将数据库拉起来