天天看點

Oracle11gR2(11.2.0.3.x)RAC Oracle Grid & Database 零當機方式更新 PSU(自動模式)Oracle-11g-R2(11.2.0.3.x)RAC Oracle Grid & Database 零當機方式更新 PSU(自動模式)

Oracle-11g-R2(11.2.0.3.x)RAC Oracle Grid & Database 零當機方式更新 PSU(自動模式)

更新環境:

1.源庫版本:

Grid Infrastructure:11.2.0.3.13

Database:11.2.0.3.13

2.目标庫版本:

Grid Infrastructure:11.2.0.3.15

Database:11.2.0.3.15

執行步驟:

1.備份源庫(root & grid & oracle,每個節點)

在待更新的節點執行備份,以防止更新失敗後導緻軟體故障。

a.備份 ASM 執行個體參數檔案(grid)

以 / as sysasm 身份進入 sqlplus 環境,執行語句 create pfile='/home/grid/init_asm.ora' from spfile;

b.備份 ASM 執行個體參數檔案(oracle)

以 / as sysdba 身份進入 sqlplus 環境,執行語句 create pfile='/home/oracle/init_db.ora' from spfile;

c.備份叢集資訊(root):

進入 gird 使用者的 $ORACLE_HOME/bin 目錄下(例如:/u01/app/11.2.0/grid/bin)

./crsctl query css votedisk

./ocrcheck

./ocrconfig -manualbackup

d.備份資料庫(oracle):

以 / as sysdba 身份進入 sqlplus 環境,執行語句 alter system archive log current;

随後調用資料庫全備份腳本備份資料庫。

e.關閉待更新節點(oracle $ root)

參見《Oracle-10g&11g 關閉 RAC 叢集的單個節點》

f.備份 Grid Infrastructure 的 OPatch(root)

進入 gird 使用者的 $ORACLE_HOME/OPatch 目錄下(例如:/u01/app/11.2.0/grid/OPatch)

執行 tar -cpf ../gridOPatch.tar.20161014 ./

g.備份 Database 的 OPatch(root)

進入 oracle 使用者的 $ORACLE_HOME/OPatch 目錄下(例如:/u01/app/oracle/product/11.2.0/db_1/OPatch

執行 tar -cpf ../oracleOPatch.tar.20161014 ./

h.備份 Grid Infrastructure 及 Database 軟體(root)

進入 Grid Infrastructure 及 Database 安裝根目錄下(例如:/u01/app)

執行 tar -cpf ../u01.tar.20161014 ./ 備份軟體。

e.重新開機待復原節點 CRS(root)

以 root 使用者登入欲節點,進入 Grid Infrastructure 的 BIN 目錄下,輸入 ./crsctl start crs

2.更新 OPatch(grid & oracle,每個節點)

下載下傳最新的 OPatch 工具,例如更新至 11.2.0.3.6 其 OPatch 版本應高于 11.2.0.3.4。

分别以 grid 及 oracle 進入已下載下傳的 OPatch 工具壓縮包的目錄下,執行 unzip <OPATCH-ZIP> -d <ORACLE_HOME>

注意:ORACLE_HOME 應分别為 Grid Infrastructure 及 Database 的 ORACLE_HOME。

更新 OPatch 後,分别在 Grid Infrastructure 及 Database 的 OPatch 目錄下執行 ./opatch version 進行驗證。

3.建立 OCM response 檔案(grid $ oracle,每個節點)

分别以 grid 及 oracle 進入Grid Infrastructure 及 Database 的 $ORACLE_HOME/OPatch/ocm/bin 目錄下。

執行 ./emocmrsp -no_banner -output <specify_the_location>/file.rsp 例如:./emocmrsp -no_banner -output ~/grid.rsp

生成 response 檔案的導航界面如下:

注意:要求輸入 Email 時可為空,并在随後的不告知安全事件中輸入 Yes。

4.檢查 Oracle 目錄的相容性(grid $ oracle,每個節點)

分别以 grid 及 oracle 進入 Grid Infrastructure 及 Database 的 $ORACLE_HOME/OPatch 目錄下。

執行 ./opatch lsinventory -detail -oh <ORACLE_HOME>

如果執行成功,将列出 Grid Infrastructure 及 Database 的 $ORACLE_HOME 目錄下安裝的所有元件。

5.關閉 EM 代理程序(oracle,每個節點)

在為 Grid Infrastructure 及 Database 打更新檔之前,需要關閉 EM 代理程序。

需要以 oracle 使用者進入 Database 的 $ORACLE_HOME/bin 目錄下,執行 ./emctl stop dbconsole

6.安裝更新檔(root & oracle,每個節點)

a.切換服務(oracle)

注意:采用逐一更新的方式,實作零當機更新。是以更新一個節點時,應将該節點的所有服務切換到其他節點上。其中,切換服務指令類似如下。

srvctl relocate service -d <db_name> -s <service_name> -i <orig_instance_name> -t <target_instance_name>

b.關閉資料庫執行個體(oracle)

以 oracle 使用者登入節點,在 sqlplus 環境下使用以下指令關閉資料庫執行個體。

alter system checkpoint; 更新檢查點。

alter system archive log current; 更新歸檔日志。

shutdown immediate 關閉節點資料庫。

c.解壓縮更新檔包(grid)

以 grid 使用者解壓縮更新檔包。

d.為 Grid Infrastructure 打更新檔(root)

以 root 使用者進入 Grid Infrastructure 的 $ORACLE_HOME/OPatch 目錄下。

執行 ./opatch auto <UNZIPPED_PATCH_LOCATION> -oh <GI_HOME> -ocmrf <ocm response file>

例如:./opatch auto /u01/setup -oh /u01/app/11.2.0/grid -ocmrf /home/grid/grid.rsp

e.為 Database 打更新檔(root)

以 root 使用者進入 Database 的 $ORACLE_HOME/OPatch 目錄下。

執行 ./opatch auto <UNZIPPED_PATCH_LOCATION> -oh <DATABASE_HOME> -ocmrf <ocm response file>

例如:./opatch auto /u01/setup -oh /u01/app/oracle/product/11.2.0/db_1/ -ocmrf /home/oracle/oracle.rsp

f.為其餘節點打更新檔

當單個節點更新完畢後,選擇更新下一個節點,重複執行 a~e 步驟操作,直至所有節點更新完畢。

7.更新 SQL 檔案至資料庫(oracle,單個節點)

待 RAC 更新檔安裝完畢後,運作 catbundle.sql 腳本,以更新 SQL 檔案至資料庫。

SQL> @?/rdbms/admin/catbundle.sql psu apply

8.更新 Oracle RMAN 目錄庫(oracle,單個節點)

對于有使用 RMAN 目錄庫的情況,需更新目錄庫資訊。

# rman catalog username/password@alias

RMAN> UPGRADE CATALOG;

參考文檔:

《Patch Installation and Deinstallation For 11.2.0.3.x GI PSU (文檔 ID 1494646.1)》

更新環境:

1.源庫版本:

Grid Infrastructure:11.2.0.3.13

Database:11.2.0.3.13

2.目标庫版本:

Grid Infrastructure:11.2.0.3.15

Database:11.2.0.3.15

執行步驟:

1.備份源庫(root & grid & oracle,每個節點)

在待更新的節點執行備份,以防止更新失敗後導緻軟體故障。

a.備份 ASM 執行個體參數檔案(grid)

以 / as sysasm 身份進入 sqlplus 環境,執行語句 create pfile='/home/grid/init_asm.ora' from spfile;

b.備份 ASM 執行個體參數檔案(oracle)

以 / as sysdba 身份進入 sqlplus 環境,執行語句 create pfile='/home/oracle/init_db.ora' from spfile;

c.備份叢集資訊(root):

進入 gird 使用者的 $ORACLE_HOME/bin 目錄下(例如:/u01/app/11.2.0/grid/bin)

./crsctl query css votedisk

./ocrcheck

./ocrconfig -manualbackup

d.備份資料庫(oracle):

以 / as sysdba 身份進入 sqlplus 環境,執行語句 alter system archive log current;

随後調用資料庫全備份腳本備份資料庫。

e.關閉待更新節點(oracle $ root)

參見《Oracle-10g&11g 關閉 RAC 叢集的單個節點》

f.備份 Grid Infrastructure 的 OPatch(root)

進入 gird 使用者的 $ORACLE_HOME/OPatch 目錄下(例如:/u01/app/11.2.0/grid/OPatch)

執行 tar -cpf ../gridOPatch.tar.20161014 ./

g.備份 Database 的 OPatch(root)

進入 oracle 使用者的 $ORACLE_HOME/OPatch 目錄下(例如:/u01/app/oracle/product/11.2.0/db_1/OPatch

執行 tar -cpf ../oracleOPatch.tar.20161014 ./

h.備份 Grid Infrastructure 及 Database 軟體(root)

進入 Grid Infrastructure 及 Database 安裝根目錄下(例如:/u01/app)

執行 tar -cpf ../u01.tar.20161014 ./ 備份軟體。

e.重新開機待復原節點 CRS(root)

以 root 使用者登入欲節點,進入 Grid Infrastructure 的 BIN 目錄下,輸入 ./crsctl start crs

2.更新 OPatch(grid & oracle,每個節點)

下載下傳最新的 OPatch 工具,例如更新至 11.2.0.3.6 其 OPatch 版本應高于 11.2.0.3.4。

分别以 grid 及 oracle 進入已下載下傳的 OPatch 工具壓縮包的目錄下,執行 unzip <OPATCH-ZIP> -d <ORACLE_HOME>

注意:ORACLE_HOME 應分别為 Grid Infrastructure 及 Database 的 ORACLE_HOME。

更新 OPatch 後,分别在 Grid Infrastructure 及 Database 的 OPatch 目錄下執行 ./opatch version 進行驗證。

3.建立 OCM response 檔案(grid $ oracle,每個節點)

分别以 grid 及 oracle 進入Grid Infrastructure 及 Database 的 $ORACLE_HOME/OPatch/ocm/bin 目錄下。

執行 ./emocmrsp -no_banner -output <specify_the_location>/file.rsp 例如:./emocmrsp -no_banner -output ~/grid.rsp

生成 response 檔案的導航界面如下:

注意:要求輸入 Email 時可為空,并在随後的不告知安全事件中輸入 Yes。

4.檢查 Oracle 目錄的相容性(grid $ oracle,每個節點)

分别以 grid 及 oracle 進入 Grid Infrastructure 及 Database 的 $ORACLE_HOME/OPatch 目錄下。

執行 ./opatch lsinventory -detail -oh <ORACLE_HOME>

如果執行成功,将列出 Grid Infrastructure 及 Database 的 $ORACLE_HOME 目錄下安裝的所有元件。

5.關閉 EM 代理程序(oracle,每個節點)

在為 Grid Infrastructure 及 Database 打更新檔之前,需要關閉 EM 代理程序。

需要以 oracle 使用者進入 Database 的 $ORACLE_HOME/bin 目錄下,執行 ./emctl stop dbconsole

6.安裝更新檔(root & oracle,每個節點)

a.切換服務(oracle)

注意:采用逐一更新的方式,實作零當機更新。是以更新一個節點時,應将該節點的所有服務切換到其他節點上。其中,切換服務指令類似如下。

srvctl relocate service -d <db_name> -s <service_name> -i <orig_instance_name> -t <target_instance_name>

b.關閉資料庫執行個體(oracle)

以 oracle 使用者登入節點,在 sqlplus 環境下使用以下指令關閉資料庫執行個體。

alter system checkpoint; 更新檢查點。

alter system archive log current; 更新歸檔日志。

shutdown immediate 關閉節點資料庫。

c.解壓縮更新檔包(grid)

以 grid 使用者解壓縮更新檔包。

d.為 Grid Infrastructure 打更新檔(root)

以 root 使用者進入 Grid Infrastructure 的 $ORACLE_HOME/OPatch 目錄下。

執行 ./opatch auto <UNZIPPED_PATCH_LOCATION> -oh <GI_HOME> -ocmrf <ocm response file>

例如:./opatch auto /u01/setup -oh /u01/app/11.2.0/grid -ocmrf /home/grid/grid.rsp

e.為 Database 打更新檔(root)

以 root 使用者進入 Database 的 $ORACLE_HOME/OPatch 目錄下。

執行 ./opatch auto <UNZIPPED_PATCH_LOCATION> -oh <DATABASE_HOME> -ocmrf <ocm response file>

例如:./opatch auto /u01/setup -oh /u01/app/oracle/product/11.2.0/db_1/ -ocmrf /home/oracle/oracle.rsp

f.為其餘節點打更新檔

當單個節點更新完畢後,選擇更新下一個節點,重複執行 a~e 步驟操作,直至所有節點更新完畢。

7.更新 SQL 檔案至資料庫(oracle,單個節點)

待 RAC 更新檔安裝完畢後,運作 catbundle.sql 腳本,以更新 SQL 檔案至資料庫。

SQL> @?/rdbms/admin/catbundle.sql psu apply

8.更新 Oracle RMAN 目錄庫(oracle,單個節點)

對于有使用 RMAN 目錄庫的情況,需更新目錄庫資訊。

# rman catalog username/password@alias

RMAN> UPGRADE CATALOG;

參考文檔:

《Patch Installation and Deinstallation For 11.2.0.3.x GI PSU (文檔 ID 1494646.1)》