首先到官网下载补丁p6810189_10204_Linux-x86.zip(ftp://updates.oracle.com/6810189/p6810189_10204_Linux-x86.zip )
解压到装有oracle 10g的系统中,参照README.html进行操作,首先进入目录Disk1,运行命令./runInstaller,弹出安装窗口,根据提示安装即可。
升级完软件后,需升级数据库。
SQL>startup upgrade
SQL>spool patch.log
SQL>@?/rdbms/admin/catupgrd.sql
SQL>spool off
SQL>shutdown immediate
SQL>startup
SQL> @?/rdbms/admin/utlrp.sql
SQL>@?/rdbms/admin/catalog.sql
SQL>@?/rdbms/admin/catproc.sql;
检查是否更新成功:
SQL>select comp_name, version, status from sys.dba_registry where status = 'INVALID';
COMP_NAME
--------------------------------------------------------------------------------
VERSION STATUS
--------------------------------------------------------------------------------
-----------
Oracle Database Packages and Types
10.2.0.4.0 INVALID
SQL>select count(*) from dba_objects where status != 'VALID';
COUNT(*)
--------------------------------------------------------------------------------
436
参照网上的一些做法,再运行命令
SQL>sqlplus / as sysdba
SQL>drop table plan_table;
SQL>@?/rdbms/admin/utlxplan
SQL>@?/rdbms/admin/prvtspao.plb
SQL>@?/rdbms/admin/utlrp.sql
SQL> select comp_name, version, status from sys.dba_registry where status = 'INVALID';
no rows selected
SQL> select count(*) from where status != 'VALID';
COUNT(*)
----------
10
dba_objects 还存在10个不合法对象,不影响正常使用。就算升级成功了吧。
升级EM
检查没有em进程,有则kill掉。
由于em的证书在2010年后到期,2011年之后安装必须打补丁:p8350262_10204_Generic.zip
$ unzip p8350262_10204_Generic.zip
$ cd 8350262
$ /oracle/product/10.2.0/OPatch/opatch apply