Oracle 9.2.0.1升級到9.2.0.8版本

景:在windows xp server上安裝了Oracle 9.2.0.1,現使用p4547809_92080_WINNT.zip將其升級到9.2.0.8版本,並打上最

新的安全補丁April 2008版。


1.升級oracle(administrator用戶權限)(下載p4547809_92080_WINNT.zip網址:

ftp://updates.oracle.com/4547809/p4547809_92080_WINNT.zip)
(1)、壓縮包名稱爲 p4547809_92080_WINNT.zip,for windows 32bit,解壓縮zip,下邊包含一個Disk1和readme.html文件

。安裝升級補丁之前,在管理中停掉所有的oracle相關服務(在服務中停止)

(2)、雙擊解壓後文件夾下的setup.exe,安裝時目標選項裏,在名稱裏下拉選擇,就可以指定出原來的安裝名稱和路徑,自

動升級到9.2.0.8,命令提示符提示安裝完成後,說明組件已經安裝上。

(3)、以sysdba身份登錄數據庫後,確保init.ora中的參數SHARED_POOL_SIZE 和JAVA_POOL_SIZE 爲150m。方法是查看現有

兩個參數值的大小
SQL>SHOW PARAMETER SHARED_POOL_SIZE
SQL>SHOW PARAMETER JAVA_POOL_SIZE
如果大小不是150m,進行設置:
SQL> Alter SYSTEM SET SHARED_POOL_SIZE='150M' SCOPE=spfile;
SQL> Alter SYSTEM SET JAVA_POOL_SIZE='150M' SCOPE=spfile;
注:須將服務重啓才能查看出修改後的數據

設置成功後shutdown immediate關閉數據庫。

(4)、以sysdba登錄數據庫
執行 SQL> STARTUP MIGRATE
SQL> SPOOL patch.log
SQL> @ORACLE_BASE/ORACLE_HOME/rdbms/admin/catpatch.sql
SQL> SPOOL OFF
spool patch.log是把做升級日誌記錄到patch.log,供以後察看。
其中ORACLE_BASE/ORACLE_HOME表示你的oracle目錄,假設oracle安裝目錄爲c:/oracle/ora92,則第三句應爲:
SQL>@c:/oracle/ora92/rdbms/admin/catpatch.sql 其中@表示執行以下腳本。
這個過程持續大概20分鐘。
(5)完成後shutdown immediate數據庫,

然後SQL> STARTUP MIGRATE ,

執行另外一個腳本:
SQL> @ORACLE_BASE/ORACLE_HOME/rdbms/admin/utlrp.sql,完成後升級補丁打完!!
(6)重起數據庫(shutdown immediate、STARTUP MIGRATE),

登陸後select * from v$version;可以看到oracle升到了9208。

 

2.oracle打安全補丁
(1)補丁信息:Critical Patch Update Note Release 9.2.0.8 for Microsoft Windows (32-Bit),patch號爲6867138。
(2)CPU是過渡性補丁,需要用Oracle的安裝工具opatch安裝。
安裝CPU之前,查看相應的opatch版本應爲1.0.0.0.57,9.2.0.1版oracle自帶版本爲55的,到metalink下載57版本的,壓縮

包名爲p2617419_10102_GENERIC。解壓縮後將OPATCH目錄覆蓋%oracle_home%/opatch就行了。
(3)在用OPATCH安裝安全補丁之前,停掉所有的oracle服務,但是實踐中發現,進程中仍會有相關的dll被未知(我未知)的程序

佔用,導致couldn't copy一些.dll文件。因此建議重啓服務器,進入安全模式進行。
(4)在安全模式下,在命令提示符中直接Opatch apply %補丁所在位置%,比如在我的電腦中補丁在 D:/software/oracle9

/p6867138_92080_WINNT/6867138中,則我在命令提示符中輸入 Opatch apply D:/software/oracle9

/p6867138_92080_WINNT/6867138,自動安裝安全補丁。
(5)安裝完成後,補丁還不算打成功,都快哭了~~~~。咬牙,接着來
跑remove_demo.js腳本來移除不穩定的Oracle HTTP Server demos.命令提示符中cd到6867138目錄。
>cscript //nologo remove_demo.js
(6)把修改過的 .sql文件導入數據庫:
啓動oracle服務,cd %ORACLE_HOME%/cpu/CPUApr2008 然後以sysdba登錄後執行SQL>@catcpu.sql
如果在這個過程中報有invalid的對象,則需要執行(7),否則直接執行(8).
(7)cd %ORACLE_HOME%/rdbms/admin後以sysdba登錄,執行@utlrp.sql,之後你可以用
SQL> Select OBJECT_NAME FROM DBA_OBJECTS Where STATUS= 'INVALID';檢查,可以看到已沒有invalid對象。
(8)重新編譯數據庫中的視圖
cd %ORACLE_HOME%/cpu/view_recompile然後sysdba登錄,執行SQL> @recompile_precheck_jan2008cpu.sql 這個是計算下需

要執行的時間等。
shutdown數據庫,以migrate方式startup,SQL>startup migrate 然後SQL> @view_recompile_jan2008cpu.sql 關閉數據庫。

如果有invalid對象,手動compile,但是一般沒有。

總結:oracle不同的補丁還有不同的打法,實在是很不智能,所以之前要仔細的閱讀readme,是個很鬱悶的活!而且安裝完

了不是真正的安裝完!!崩潰了吧~~~上邊的操作是新建數據庫之後就直接進行的,因此也沒有考慮到數據庫備份等工作。如果你

已經在使用數據庫做了一些工作,建議先備份數據庫,以免補丁沒有打上,影響數據庫的使用。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章