Oracle Database 10.2.0.5.0 升級

spectre2發表於2011-06-28
Oracle Database 10.2.0.5.0 的PatchSet, 在一個生產環境的小邏輯備庫做了一下升級, 小記一下. 本升級步驟適用於升級Oracle Database 10.2.0.x.0 版本的資料庫, 普通資料庫和邏輯備庫都一樣.

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 oraInventory


另外一個備份的方法:


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分鐘.


cd /u01/software/10g/

unzip p8202632_10205_LINUX.zip

cd Disk1

export DISTRIB=`pwd`

./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使用者用於安裝軟體的組名;


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


4 開啟OEM/isqlplus/監聽

$ lsnrctl start
$ isqlplusctl start
$ emctl start dbconsole

最後,記得修改compatible引數:

SQL> ALTER SYSTEM SET COMPATIBLE = ’10.2.0.5.0’ SCOPE=SPFILE;


--End--

參考:http://hi.baidu.com/edeed/blog/category/Oracle%20Adm

作者:edeed

 

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

相關文章