10.2.0.4 to 10.2.0.5 Installation of Patch Set Release (Windows)

來源:互聯網
上載者:User

10.2.0.4 to 10.2.0.5 Installation of Patch Set Release (Windows)

環境:10.2.0.4叢集資料庫zlm10g(雙節點,zlm10g1,zlm10g2)

系統:Windows 2003 Server 64Bit

記憶體:2G RAM

儲存:ASM

目標:把叢集資料庫從10.2.0.4升級到10.2.0.5,包括叢集軟體和OEM的Patch安裝

 

一、升級前準備:


1. 查看是否存在無效對象

SQL> select object_name,status from dba_objects where

status='INVALID';

目的是為了可以判斷這些無效對象是由升級過程產生的,還是升級前就已經存在的

 

2. 檢查資料庫中的時區 (Time Zone) 資訊

SQL> select version from v$timezone_file;


2.1 返回值為4

此時資料庫中如果含有TZ資訊,在升級中無需額外的操作

 

2.2 返回值大於4

請查閱[ID 553812.1]文檔

 

2.3 如果返回值小於4

執行以下步驟

@?/rdbms/admin/utltzpv4.sql;

select * from sys.sys_tzuv2_temptab;

如果沒有返回行,那麼在升級過程無需額外操作

如果返回包含TZ的具體列資訊,那麼升級操作會影響到該TZ資訊

 

如果SYS使用者有擁有SCHEDULER對象,那麼在升級過程中可以忽略,但是如果有使用者資料或使用者建立的job,則需要在升級前對這些資料進行備份,升級後刪除全部使用者建立的job,然後再重建

 

兩種升級的方式:

滾動升級(無停機時間)

非滾動升級(有停機時間)

 

二、升級叢集資料庫軟體


1. 首先,準備好10.2.0.5的Patch介質:

p8202632_10205_MSWIN-x86-64

 

2. 停止所有節點的Oracle相關服務和進程


2.1 停止crs資源

emctlstop dbconsole

isqlplusctlstop

lsnrctlstop

srvctlstop service -d zlm10g

srvctlstop databse -d zlm10g

srvctlstop asm -n rac1

srvctlstop asm -n rac2

srvctlstop listener -n rac1

srvctlstop listener -n rac2

srvctlstop nodeapps -n rac1

srvctlstop nodeapps -n rac2

crs_stat-t檢查叢集資源是否已經全部關閉

srvctlstop crs

 

2.2 停止服務

運行services.msc,查看Oracle相關服務是否全部已經關閉,另外有

一個Distributed TransactionCoordinator服務也要停止

 

2.3 停止進程

查看工作管理員中是否有oracle相關的進程在運行,全部關閉之,如:one.exe

 

3. 備份以下目錄(copy至其他路徑):

%ORACLE_CRS_HOME%

%ORACLE_HOME%

%ORACLE_INVENTORY%

注意:推薦先對資料庫進行RMAN備份

 

4. 安裝叢集軟體Patch

安裝時,直接選取覆蓋原路徑安裝,即crs_1目錄

軟體安裝完畢後,分別在節點1和節點2運行patch102.bat完成實際安裝過程,運行完指令碼後,系統會自動運行CRS相關服務

 

5. 檢查叢集Patch是否正確安裝

crsctlquery crs softwareversion

crsctlquery crs activeversion

如果叢集Patch正常安裝完畢,這2個命令的輸出應該都是10.2.0.5.0

 

三、資料庫軟體Patch安裝


1. 安裝介質和升級ClusterWare時用的是同一個:

p8202632_10205_MSWIN-x86-64

 

2. 關閉Oracle相關服務和進程


2.1 停止crs資源

emctlstop dbconsole

isqlplusctlstop

lsnrctlstop

srvctlstop service -d zlm10g

srvctlstop databse -d zlm10g

srvctlstop asm -n rac1

srvctlstop asm -n rac2

srvctlstop listener -n rac1

srvctlstop listener -n rac2

 

2.2 停止服務

運行services.msc,查看Oracle相關服務是否全部已經關閉,另外有

一個Distributed TransactionCoordinator服務也要停止

 

2.3 停止進程

查看工作管理員中是否有oracle相關的進程在運行,全部關閉之,如:one.exe

 

3. 安裝Oracle資料庫軟體的Patch

安裝直接選取之前裝資料庫軟體的同一個目錄,即db_1目錄

 

4. 修改叢集資料庫參數

裝完後以sysdba登入系統,修改cluster_database參數為False

sqlplus/nolog

SQL>alter system set cluster_database=falsescope=spfile;

SQL>shutdown immediate

 

5. 在節點1跑升級指令碼,對資料庫進行升級

 

5.1 進入升級模式:

SQL>startup upgrade

 

5.2 預檢一下升級是否符合條件:

SQL>spool patch_info.log

SQL> @?\rdbms\admin\utlu102i.sql

SQL>spool off

關於預檢這個指令碼,官網對於每個版本,有更多的補充指令碼,會提供更新、更詳細的預檢內容,詳情可以查閱 [ID 884522.1]


5.3 開始執行正式的升級指令碼:

SQL>spool patch.log

SQL> @?\rdbms\admin\utlupgrd.sql

10gR2該過程持續約30分鐘,11gR2大約需要50分鐘


 

5.4 編譯升級後產生的無效對象

SQL>spool rp.log

SQL> @?\rdbms\admin\utlrp.sql

SQL>spool off

 

5.5 檢查升級後資料庫各組件是否有效

SQL> select comp_id,comp_name,status from sys.dba_registry;

如果升級正常完成,全部組件的status列的值應該都是VALID

 

四、用OPatch安裝10.2.0.5以後的補丁


1. 介質準備及說明


p8350262_10205_Generic (OEM補丁)

p12429524_10205_MSWIN-x86-64


這裡要說明一下,打該補丁主要目的,是為了能正常使用OEM對資料庫進行管理,由於OEM在10.2.0.4和10.2.0.5上正常運行存在一個bug,詳見:[ID1222603.1]


如果不打該OEM補丁,那麼在執行dbca,dbua,emca配置OEM時,都會提示無法配置EM,啟動Database Control失敗,原因是根憑證CA在31-DEC-2010失效,而無法使用SSL協議進行通訊,導致無法啟動,該bug僅限於以上2個版本的PSR


這裡第2個介質,p12429524_10205_MSWIN-x86-64包含了更多的fixed bug,所以如果直接安裝12429524這個PSU,那麼也可以不用安裝8350262,二者選一即可




 

2. OPatch安裝

對於Oracle所有的Interim Patch,即我們說的經常所說的小補丁(PSU),都可以用OPatch來進行安裝,這是Oracle官方提供的一個補丁安裝指令碼,使用起來很簡單,目錄就放在ORACLE_HOME\OPatch

下面,Windows平台的可執行檔為opatch.bat,把需要安裝的補丁解壓到某個目錄,然後執行“opatch apply +解壓目錄路徑”就可以了,也可以進入解壓出來的那個一串數位目錄中,直接執行opatch apply來安裝補丁,如果要查看資料庫之前了哪些補丁,可以執行opatch lsinventory[-detail],具體命令可以加-help查閱

 

3. 重新設定OEM

裝完補丁以後,如果直接去啟動DBconsole還是會遇到無法正常啟動,這裡需要對其進行重新設定,主要就是3個步驟:

 

3.1 節點1執行

emctlsecure dbconsole -reset

 

3.2 節點2執行

emctlsecure dbconsole

注意,是不帶-reset參數的命令

 

3.3 節點1(或節點2)啟動dbconsole

emctlstart dbconsole

 

五、收尾


至此,全部升級工作順利結束,檢查一下是否有遺漏的Oracle服務和進程未開啟,如果有的話,全部開啟

services.msc

crs_stat -t

emctlstart dbconsole

isqlplusctlstart

lsnrctlstart

srvctlstart service -d zlm10g

srvctlstart database -d zlm10g

srvctlstart instance -d zlm10g-i zlm10g1

srvctlstart instance -d zlm10g-i zlm10g2

srvctlstart listener -n rac1

srvctlstart listener -n rac2

srvctlstart asm -n rac1

srvctlstart asm -n rac2

srvctlstart nodeapps -n rac1

srvctlstart nodeapps -n rac2

以上命令可選,並非都需要執行一遍,如果crs資源都ONLINE了,那就不需要執行了

 

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.