為oracle 10.1.0.3 打 Critical Patch Update for April 2005

orchidllh發表於2005-04-14

昨天收到metalink的郵件:
The Critical Patch Update for April 2005 is now available. Oracle strongly recommends applying the patches as soon as possible.

首先給我的一個還沒有上線的10.1.0.3資料庫打上patch:


上傳opatch工具:p2617419_10102_GENERIC.zip
解壓在oracle目錄下面:
[oracle@bj34 oracle]$ unzip p2617419_10102_GENERIC.zip
Archive:  p2617419_10102_GENERIC.zip
   creating: OPatch/
   creating: OPatch/docs/
  inflating: OPatch/docs/FAQ        
  inflating: OPatch/docs/Users_Guide.txt 
  inflating: OPatch/docs/bt1.txt    
  inflating: OPatch/docs/bt2.txt    
   creating: OPatch/jlib/
  inflating: OPatch/jlib/opatch.jar 
   creating: OPatch/perl_modules/
  inflating: OPatch/perl_modules/Apply.pm 
  inflating: OPatch/perl_modules/AttachHome.pm 
  inflating: OPatch/perl_modules/Command.pm 
  inflating: OPatch/perl_modules/LsInventory.pm 
  inflating: OPatch/perl_modules/Query.pm 
  inflating: OPatch/perl_modules/RollBack.pm 
  inflating: OPatch/perl_modules/Version.pm 
  inflating: OPatch/perl_modules/XML.pm 
  inflating: OPatch/perl_modules/opatchIO.pm 
  inflating: OPatch/opatch          
  inflating: OPatch/opatch.pl       
  inflating: OPatch/opatch.bat      
  inflating: OPatch/emdpatch.pl     
  inflating: OPatch/README.txt      
   
將這個路徑加到oracle的path中:
:/home/oracle/OPatch

執行opatch lsinventory檢查工具能否正常執行。
[oracle@bj34 4193286]$ opatch lsinventory

Oracle Interim Patch Installer version 1.0.0.0.52
Copyright (c) 2005 Oracle Corporation. All Rights Reserved..

We recommend you refer to the OPatch documentation under
OPatch/docs for usage reference. We also recommend using
the latest OPatch version. For the latest OPatch version
and other support related issues, please refer to document
293369.1 which is viewable from metalink.oracle.com

Oracle Home = /home/oracle/product/10.1.0/db_1
Location of Oracle Universal Installer components = /home/oracle/product/10.1.0/db_1/oui
Location of OraInstaller.jar  = "/home/oracle/product/10.1.0/db_1/oui/jlib"
Oracle Universal Installer shared library = /home/oracle/product/10.1.0/db_1/oui/lib/linux/liboraInstaller.so
Location of Oracle Inventory Pointer = /etc/oraInst.loc
Location of Oracle Inventory = /home/oracle/product/10.1.0/db_1/inventory
Path to Java = /home/oracle/product/10.1.0/db_1/jre/1.4.2/bin/java
Log file = /home/oracle/product/10.1.0/db_1/.patch_storage//*.log

Result:


There is no Interim Patch


OPatch succeeded.

將oracle patch上傳到oracle目錄下面:p4193286_10103_LINUX.zip
解壓在oracle目錄下面:
[oracle@**** oracle]$ unzip p4193286_10103_LINUX.zip
Archive:  p4193286_10103_LINUX.zip
  inflating: 4193286/amdcpu.sql     
  inflating: 4193286/catcpu.sql     
  inflating: 4193286/catcpu_rollback.sql 
   creating: 4193286/etc/
   creating: 4193286/etc/config/
  inflating: 4193286/etc/config/actions 
  inflating: 4193286/etc/config/inventory 
   creating: 4193286/etc/xml/
  inflating: 4193286/etc/xml/GenericActions.xml 
  inflating: 4193286/etc/xml/ShiphomeDirectoryStructure.xml 
  inflating: 4193286/exfcpu.sql     
   creating: 4193286/files/
   creating: 4193286/files/dm/
   creating: 4193286/files/dm/admin/
   .......
  
shutdown 資料庫、stop監聽

打patch:
[oracle@**** oracle]$ cd 4193286
[oracle@**** 4193286]$ opatch apply
PERL5LIB=/home/oracle/product/10.1.0/db_1/perl/lib/5.6.1:/home/oracle/OPatch/perl_modules; export PERL5LIB
/home/oracle/product/10.1.0/db_1/perl/bin/perl /home/oracle/OPatch/opatch.pl apply
Oracle Home = /home/oracle/product/10.1.0/db_1
Location of Oracle Inventory = /home/oracle/product/10.1.0/db_1/inventory
Oracle Universal Installer shared library = /home/oracle/product/10.1.0/db_1/oui/lib/linux/liboraInstaller.so
Path to Java = /home/oracle/product/10.1.0/db_1/jre/1.4.2/bin/java
Location of Oracle Inventory Pointer = /etc/oraInst.loc
Location of Oracle Universal Installer components = /home/oracle/product/10.1.0/db_1/oui
Required Jar File under Oracle Universal Installer = jlib/OraInstaller.jar


OPatch Version 1.0.0.0.50
Perl Version 5.006001

/home/oracle/OPatch/opatch.pl version: 1.0.0.0.50
Copyright (c) 2001-2004 Oracle Corporation. All Rights Reserved.

Some commands below are not in your path:
  Command= fuser
  Path= /usr/kerberos/bin:/bin:/usr/bin:/usr/local/bin:/usr/bin/X11:/usr/X11R6/bin:/home/oracle/bin:/home/oracle/bin:/home/oracle/product/10.1.0/db_1/bin:/home/oracle/OPatch

ERROR: OPatch failed because of Path problem.

提示fuser命令沒有找到,該命令在/sbin目錄下面,將該目錄加到使用者的path中,再執行
[oracle@bj34 4193286]$ opatch apply

Oracle Interim Patch Installer version 1.0.0.0.52
Copyright (c) 2005 Oracle Corporation. All Rights Reserved..

We recommend you refer to the OPatch documentation under
OPatch/docs for usage reference. We also recommend using
the latest OPatch version. For the latest OPatch version
and other support related issues, please refer to document
293369.1 which is viewable from metalink.oracle.com

Oracle Home = /home/oracle/product/10.1.0/db_1
Location of Oracle Universal Installer components = /home/oracle/product/10.1.0/db_1/oui
Location of OraInstaller.jar  = "/home/oracle/product/10.1.0/db_1/oui/jlib"
Oracle Universal Installer shared library = /home/oracle/product/10.1.0/db_1/oui/lib/linux/liboraInstaller.so
Location of Oracle Inventory Pointer = /etc/oraInst.loc
Location of Oracle Inventory = /home/oracle/product/10.1.0/db_1/inventory
Path to Java = /home/oracle/product/10.1.0/db_1/jre/1.4.2/bin/java
Log file = /home/oracle/product/10.1.0/db_1/.patch_storage//*.log

Backing up comps.xml ...

OPatch detected non-cluster Oracle Home from the inventory and will patch the local system only.


Please shut down Oracle instances running out of this ORACLE_HOME
(Oracle Home = /home/oracle/product/10.1.0/db_1)
Is this system ready for updating?
Please respond Y|N >
y
Patching...

Updating inventory...
Backing up comps.xml ...


OPatch succeeded.

執行opatch lsinventory察看patch是否正確安裝:
[oracle@bj34 4193286]$ opatch lsinventory

Oracle Interim Patch Installer version 1.0.0.0.52
Copyright (c) 2005 Oracle Corporation. All Rights Reserved..

We recommend you refer to the OPatch documentation under
OPatch/docs for usage reference. We also recommend using
the latest OPatch version. For the latest OPatch version
and other support related issues, please refer to document
293369.1 which is viewable from metalink.oracle.com

Oracle Home = /home/oracle/product/10.1.0/db_1
Location of Oracle Universal Installer components = /home/oracle/product/10.1.0/db_1/oui
Location of OraInstaller.jar  = "/home/oracle/product/10.1.0/db_1/oui/jlib"
Oracle Universal Installer shared library = /home/oracle/product/10.1.0/db_1/oui/lib/linux/liboraInstaller.so
Location of Oracle Inventory Pointer = /etc/oraInst.loc
Location of Oracle Inventory = /home/oracle/product/10.1.0/db_1/inventory
Path to Java = /home/oracle/product/10.1.0/db_1/jre/1.4.2/bin/java
Log file = /home/oracle/product/10.1.0/db_1/.patch_storage//*.log

Result:


  Installed Patch List:
  =====================
  1) Patch 4193286 applied on Mon Apr 25 11:42:00 CST 2005
      [ Base Bug(s): 4003062 4125530 3906246 3965635 3528288 3756949 4048145 4006984 3925449 3909356 3878841 4199450 3878754 4167241 3889519 3878756 3483420 3878793 4193286 3897017 4105639 3925450 4125581 4125549 3878810 4167230 3878817 3458489 4167233 3878835 4118781 3878749 3878839 3878766 4008180 4167237 4057733 3878783 4008181 4008182 4167239 4125511 3111225  ]


OPatch succeeded.

啟動資料庫,執行catcpu.sql,log裡面發現一些錯誤。
SQL> spool logfile
SQL> @catcpu.sql

[lisa@**** 4193286]$ grep -n 'ORA-' logfile.lst
452:ORA-00955: name is already used by an existing object
461:ORA-00955: name is already used by an existing object
533:ORA-00955: name is already used by an existing object
545:ORA-00955: name is already used by an existing object
563:ORA-00955: name is already used by an existing object
609:ORA-00955: name is already used by an existing object
618:ORA-00955: name is already used by an existing object
659:ORA-00955: name is already used by an existing object
668:ORA-00955: name is already used by an existing object
678:ORA-04043: object MDPRVT_IDX does not exist
853:ORA-00955: name is already used by an existing object

安裝文件提到這些錯誤可以忽略:
9. The following ignorable errors may be encountered during execution of catcup.sql and catcpu_rollback.sql

ORA-00942: table or view does not exist
ORA-04043: object does not exist
ORA-01917: user or role 'XDB' does not exist
ORA-01435: user does not exist
ORA-00955: name is already used by an existing object
ORA-04043: Object Missing.
ORA-01430: column being added already exists in table

重啟資料庫,察看警告日誌,沒有發現異常,啟動監聽,至此patch打完了。
如果準備充分的話,當掉資料庫到重新啟動大約也就20分鐘,還是比較順利的。

備註:20050425
今天察看安裝文件,發現要求的opatch版本比我使用的要新,還是特別標註的,不知道有什麼不同,重新下載了新的opatch,卸掉原來的patch,重新打patch,並沒有什麼特別的地方。
但是在執行了一段時間以後,發現我的admin/*/bdump下面有個檔案centdb_mmon_9603.trc一直在寫,基本上每分鐘都寫:
內容大致如下:
*** 2005-04-25 15:00:56.580
Unable to schedule a MMON slave at: Auto Flush Main 1
  Attempt to create slave process failed.
  Can happen for several reasons:
    - No process state objects
    - Reached OS set limits
    - A shutdown was going on
  Check alert log for more details.

查詢了alert.log和udump下面,並沒有什麼特別的東西,查詢了metalink,也沒有人提到,最後我重新啟動了資料庫就好了。可能是打完了patch還是需要重啟資料庫的吧。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/51862/viewspace-180630/,如需轉載,請註明出處,否則將追究法律責任。

相關文章