AIX 5.3下 升級補丁到10.2.0.5步驟

gaopengtttt發表於2011-05-05
轉自同事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
 

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

相關文章