Oracle資料庫從 9.2.0.1 到 9.2.0.8升級步驟 for win

47328983發表於2011-07-12

1 開啟遠端桌面,登入到遠端伺服器的桌面

2 打補丁之前最重要的是資料庫的備份,備份之前必須將資料庫先乾淨的關閉,在服務管理中停掉所有的oracle相關服務。

  conn / as sysdba
  如果報許可權不足,可以在 ?\network\admin\sqlnet.ora中新增如下行
 
  SQLNET.AUTHENTICATION_SERVICES = (NTS)
 
  或先備份原來的PWDsid.ora 重新生成一個口令檔案
  orapwd.exe  file=ORACLE_HOME\database\PWD.ora password=oracle entries=5 force=(y|n)

  2.1 備份資料檔案: 
 
          備份之前先要檢視資料庫的資料檔案、日誌檔案、控制檔案、臨時檔案的路徑,並估計檔案的大小,
      然後將這些檔案複製到備份資料夾中;
     
          檢視資料檔案、日誌檔案、控制檔案、臨時檔案的路徑
           
             select file_name from dba_data_files
             union
             select member from v$logfile
             union
             select name from v$controlfile
             union
             select file_name from dba_temp_files;
            

        FILE_NAME
    ———————————————————————

 C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL01.CTL
 C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL02.CTL
 C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL03.CTL
 
 C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF
 
 C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01.LOG
 C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO02.LOG
 C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO03.LOG
 
 C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF
 C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF
 
 C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TEMP01.DBF
 
 C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF
 C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF
 
 已選擇11行。
     
     
  2.2 備份oracle軟體的安裝檔案:
 
      將ORACLE_HOME下的所有檔案複製到備份資料夾中。
     
3.升級oracle(administrator使用者許可權)
 
  (1)到metalink下載升級壓縮包,patch號為4547809,壓縮包名稱為 p4547809_92080_WINNT.zip,for windows 32bit。
    
     ftp://updates.oracle.com/4547809/p4547809_92080_WINNT.zip
     可以在迅雷或網際快車中新建一個下載任務,其中要將您的metalink賬戶填入下載屬性中
    
  (2) 將zip檔案上傳到遠端伺服器中,解壓縮zip,下邊包含一個Disk1和readme.html檔案。
      安裝升級補丁之前,在管理中停掉所有的oracle相關服務,在命令提示符中lsnrctl stop,停掉監聽器。
     
     
  (3) 開啟一個命令列視窗cmd.exe,在安裝之前先設定環境變數,確保環境變數中有ORACLE_HOME變數,並已正確設定。否則會出現錯誤       
    
     set ORACLE_HOME=C:\oracle\ora92    
    
     路徑切換到補丁包下
     cd Disk1
     setup.exe
    
    假如資料庫在升級過程中,報告 *.dll檔案被另一個程式應用而無法覆蓋,則可通過如下命令檢視:
    檢視是哪個程式引用了orapls9.dll
    tasklist /m orapls9.dll
   
 
  (4) oracle軟體自動升級到9.2.0.8,提示安裝完成後,說明軟體補丁已經安裝上。
 
  (5) 第4步並沒有更新資料庫本身的元件,所以還需要升級.此時需要開啟Oracle的服務,最好是重起電腦,Oracle預設服務會自啟動。
 
  (6) 以sysdba身份登入資料庫後,
 
   安裝oracle有有jvm和xdb的使用者確保init.ora中的引數SHARED_POOL_SIZE 和JAVA_POOL_SIZE 為150m。方法是檢視現有兩個引數大小
  
   SQL>startup
   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關閉資料庫。
  
  (7)以sysdba登入資料庫
 
   SQL> STARTUP MIGRATE
   SQL> SPOOL patch.log
   SQL> @?\rdbms\admin\catpatch.sql
   SQL> SPOOL OFF
  
   spool patch.log是把做升級日誌到patch.log,供以後察看。
   其中?表示你的oracle目錄,假設oracle安裝目錄為c:\oracle\ora92,則第三句應為:
   SQL>@c:\oracle\ora92\rdbms\admin\catpatch.sql  其中@表示執行以下指令碼。
   這個過程持續大概20分鐘。
  
  (8)完成後shutdown資料庫,然後startup,執行另外一個指令碼
 
   SQL> @?\rdbms\admin\utlrp.sql,完成後升級補丁打完
  
  (9)資料庫升級完成後,重起資料庫,檢視升級狀態  
    select *  from v$version;
    col comp_name for a30
    select COMP_NAME,VERSION,STATUS from dba_registry;

COMP_NAME                      VERSION                        STATUS
—————————— —————————— ———–
Oracle9i Catalog Views         9.2.0.8.0                      VALID
Oracle9i Packages and Types    9.2.0.8.0                      VALID
Oracle Workspace Manager       9.2.0.1.0                      VALID
JServer JAVA Virtual Machine   9.2.0.8.0                      VALID
Oracle XDK for Java            9.2.0.10.0                     VALID
Oracle9i Java Packages         9.2.0.8.0                      VALID
Oracle interMedia              9.2.0.8.0                      VALID
Spatial                        9.2.0.8.0                      VALID
Oracle Text                    9.2.0.8.0                      VALID
Oracle XML Database            9.2.0.8.0                      VALID
Oracle Ultra Search            9.2.0.8.0                      VALID

COMP_NAME                      VERSION                        STATUS
—————————— —————————— ———–
Oracle Data Mining             9.2.0.8.0                      VALID
OLAP Analytic Workspace        9.2.0.8.0                      UPGRADED
Oracle OLAP API                9.2.0.8.0                      UPGRADED
OLAP Catalog                   9.2.0.8.0                      VALID

15 rows selected.

恭喜您,您已成功完成資料庫的升級!

 


附 1 ————–補丁的下載地址——————————————————————————————–
為了方便,將9.2.0.8 及常用的 10.2.0.4 的補丁下載地址列舉在這裡,如果沒有Metalink帳號,你可以通過迅雷來嘗試下載這些Patch.

oracle 9208 patch:

ftp://updates.oracle.com/4547809/p4547809_92080_AIX64-5L.zip
ftp://updates.oracle.com/4547809/p4547809_92080_AXP.zip
ftp://updates.oracle.com/4547809/p4547809_92080_HP64.zip
ftp://updates.oracle.com/4547809/p4547809_92080_HPUX-IA64.zip
ftp://updates.oracle.com/4547809/p4547809_92080_LINUX-S390.zip
ftp://updates.oracle.com/4547809/p4547809_92080_LINUX.zip
ftp://updates.oracle.com/4547809/p4547809_92080_Linux-IA64.zip
ftp://updates.oracle.com/4547809/p4547809_92080_Linux-x86-64.zip
ftp://updates.oracle.com/4547809/p4547809_92080_MVS.zip
ftp://updates.oracle.com/4547809/p4547809_92080_SOLARIS.zip
ftp://updates.oracle.com/4547809/p4547809_92080_SOLARIS64.zip
ftp://updates.oracle.com/4547809/p4547809_92080_TRU64.zip
ftp://updates.oracle.com/4547809/p4547809_92080_WINNT.zip
ftp://updates.oracle.com/4547809/p4547809_92080_WINNT64.zip
oracle 10.2.0.4 patch:
 
 
ftp://updates.oracle.com/6810189/p6810189_10204_AIX5L.zip
ftp://updates.oracle.com/6810189/p6810189_10204_AXP.zip
ftp://updates.oracle.com/6810189/p6810189_10204_BS2000.zip
ftp://updates.oracle.com/6810189/p6810189_10204_BS2000SX.zip
ftp://updates.oracle.com/6810189/p6810189_10204_HPUX-64.zip
ftp://updates.oracle.com/6810189/p6810189_10204_HPUX-IA64.zip
ftp://updates.oracle.com/6810189/p6810189_10204_IBMPower.zip
ftp://updates.oracle.com/6810189/p6810189_10204_ItaniumVMS.zip
ftp://updates.oracle.com/6810189/p6810189_10204_Linux-IA64.zip
ftp://updates.oracle.com/6810189/p6810189_10204_Linux-x86-64.zip
ftp://updates.oracle.com/6810189/p6810189_10204_Linux-x86.zip
ftp://updates.oracle.com/6810189/p6810189_10204_Linux-zSer.zip
ftp://updates.oracle.com/6810189/p6810189_10204_MSWIN-x86-64.zip
ftp://updates.oracle.com/6810189/p6810189_10204_Solaris-64.zip
ftp://updates.oracle.com/6810189/p6810189_10204_Solaris86-64.zip
ftp://updates.oracle.com/6810189/p6810189_10204_Solarisx86.zip
ftp://updates.oracle.com/6810189/p6810189_10204_Tru64.zip
ftp://updates.oracle.com/6810189/p6810189_10204_WINNT64.zip
ftp://updates.oracle.com/6810189/p6810189_10204_Win32.zip
 
 

其他版本的相關Bug號,可以根據以上規則來查詢自己需要的補丁:

9.2.0.4 = 3095277
9.2.0.5 = 3501955
9.2.0.6 = 3948480
9.2.0.7 = 4163445
9.2.0.8 = 4547809
10.1.0.3 = 3761843
10.1.0.4 = 4163362
10.1.0.5 = 4505133
10.2.0.2 = 4547817
10.2.0.3 = 5337014
10.2.0.4 = 6810189
附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,是個很鬱悶的活!而且安裝完了不是真正的安裝完!!崩潰了吧~~~上邊的操作是新建資料庫之後就直接進行的,因此也沒有考慮到資料庫備份等工作。如果你已經在使用資料庫做了一些工作,建議先備份資料庫,以免補丁沒有打上,影響資料庫的使用。

 

注意:

1、升級過程中如出現“從補丁程式集Oracle 9iR2 Patch Set 9.2.0.8.0中找不到需要應用的補丁”錯誤,則因為安裝目錄沒有正確的被指定。相見這裡

2、升級過程中,注意停掉所有和Oracle相關服務.

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

相關文章