跳轉到內容

RAC 攻擊 - Oracle 叢集資料庫實戰 / 修補網格和資料庫軟體

來自 Wikibooks,開放世界中的開放書籍


修補概述

[編輯 | 編輯原始碼]
  • 對“基本版本”的升級非常複雜,始終使用完整的 Oracle 安裝程式(runInstaller)。主要新功能僅在新的基本版本中引入。
  • 修補集也使用完整的 Oracle 安裝程式安裝。歷史上,每個修補集都是使用 runInstaller 安裝在基本版本之上的(圖示中的最上面一行)。但是,從 11.2.0.2 開始,修補集可以作為新的安裝安裝,而無需基本版本。現在建議以這種方式“就地”執行修補集升級。有時,修補集也會包含新功能(例如 RAT 資料收集)。
  • PSU 使用opatch安裝。它們包括安全更新和重要的錯誤修復。它們每季度釋出一次,始終包含最新的 CPU。
  • CPU 使用 opatch 安裝。CPU 僅包含安全更新,也每季度釋出一次。在應用任何 PSU 後,無法應用 CPU。(直到您升級到新的修補集或基本版本。)

支援狀態和已知問題

[編輯 | 編輯原始碼]

在執行任何 Oracle 安裝或升級之前,您應始終檢查該版本的支援狀態和已知問題。Metalink 說明161818.1始終是起點 - 開啟該說明並進行檢視。接下來,按照指向 11.2.0.X 的連結,檢視 Metalink 說明880782.1。最後,按照指向說明880707.1的連結,檢視 Oracle 11.2.0.1 的已知問題,我們將在此實驗室中使用該版本。

滾動應用程式實踐

[編輯 | 編輯原始碼]

對於此實驗室,講師已提供最新的 PSU。PSU 和 CPU 是單一補丁的集合。如果單一補丁已透過滾動升級認證,則只能以滾動方式應用於 Oracle 資料庫。


  1. 檢視安裝說明。我們將安裝三個補丁,您可以在以下位置找到 README 檔案
    • /mnt/cdrom5/patch/psu6-db-12419378/12419378/README.html
    • /mnt/cdrom5/patch/psu2-gi-9655006/README.html
    • /mnt/cdrom5/patch/opatch-6880880/README.txt
  2. 首先,我們需要更新 OPatch 實用程式。在講師提供的 CDROM 上找到補丁 6880880,並將其直接解壓縮到網格主目錄和資料庫主目錄中。在解壓縮檔案之前,請備份現有的 OPatch 程式。$ oenv 這裡顯示的 SID 為:grid +ASM1 RAC1 ORACLE_SID = [RAC1] ? grid $ cd $ORACLE_HOME $ tar czvf ~/gi-opatch-backup_$(date +%Y-%m-%d).tgz OPatch/ ... $ unzip -o /mnt/cdrom*/patch/opatch-6880880/p6880880_112000_LINUX.zip ... $ OPatch/opatch version 呼叫 OPatch 11.2.0.1.5 OPatch 版本:11.2.0.1.5 OPatch 成功。$ oenv 這裡顯示的 SID 為:grid +ASM1 RAC1 ORACLE_SID = [grid] ? RAC1 $ cd $ORACLE_HOME $ mv OPatch OPatch.backup $ unzip /mnt/cdrom*/patch/opatch-6880880/p6880880_112000_LINUX.zip ... $ OPatch/opatch version 呼叫 OPatch 11.2.0.1.5 OPatch 版本:11.2.0.1.5 OPatch 成功。
  3. 在節點collabn2上重複上一步。$ ssh collabn2 ... 重複上一步 ... $ exit
  4. 此新版本的 OPatch 要求某些操作使用“OCM 響應檔案”。使用 OCM 實用程式生成此檔案。我們不想配置 OCM;請將您的使用者名稱留空,並確認“YES”您不想輸入任何帳戶資訊。$ $ORACLE_HOME/OPatch/ocm/bin/emocmrsp -output /home/oracle/ocm.rsp OCM 安裝響應生成器 10.3.4.0.0 - 生產版 版權所有 (c) 2005, 2010,Oracle 及其附屬公司。保留所有權利。提供您的電子郵件地址,以便接收有關安全問題、安裝和啟動 Oracle 配置管理器的通知。如果您使用 My Oracle Support 電子郵件地址/使用者名稱,則對您而言更便捷。請訪問 http://www.oracle.com/support/policies.html 獲取詳細資訊。電子郵件地址/使用者名稱:<enter> 您尚未提供電子郵件地址,以便接收有關安全問題的通知。您是否希望繼續不接收安全問題的通知 ([Y]es, [N]o) [N]: Y OCM 配置響應檔案 (/home/oracle/ocm.rsp) 已成功建立。
  5. 在講師提供的 DVD 上找到網格基礎架構和資料庫 PSU。$ cd /mnt/cdrom5/patch $ ls opatch-6880880 psu2-gi-9655006 psu6-db-12419378
  6. 我們知道這些 PSU 可以以滾動方式應用,但請驗證這一點。$ for D in psu*/[0-9]*; do echo -n $D: cd $D $ORACLE_HOME/OPatch/opatch query -is_rolling_patch | grep rolling cd ../.. done psu2-gi-9655006/9654983: 補丁是否為滾動補丁:true psu2-gi-9655006/9655006: 補丁是否為滾動補丁:true psu6-db-12419378/12419378: 補丁是否為滾動補丁:true
  7. 我們還知道不會有任何補丁衝突(因為這些是我們安裝的第一個補丁) - 但也要驗證這一點。$ oenv ORACLE_SID = [RAC1] ? grid [grid]$ cd psu2-gi-9655006 psu2-gi-9655006[grid]$ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir ./9655006 ... 呼叫先決條件“checkconflictagainstohwithdetail” 先決條件“checkConflictAgainstOHWithDetail” 已透過。[grid]$ oenv ORACLE_SID = [RAC1] ? RAC1 [RAC1]$ cd ../psu6-db-12419378/ psu6-db-12419378[RAC1]$ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir ./12419378 ... 呼叫先決條件“checkconflictagainstohwithdetail” 先決條件“checkConflictAgainstOHWithDetail” 已透過。
  8. 自動補丁應用流程將自動關閉和重新啟動節點上的所有資料庫程序。但是,我們不想進行自動重啟 - 因為我們正在應用兩個 PSU(一個用於網格,一個用於資料庫)。停用節點collabn1的例項自動啟動,並手動關閉例項以應用補丁。
    collabn1$ srvctl disable instance -d rac -i RAC1
    collabn1$ srvctl stop instance -d rac -i RAC1
    


  9. 我們將使用自動補丁應用來應用網格基礎架構 PSU。首先使用oenv進入網格環境,然後切換到root使用者並執行opatch auto
    • 注意:此節點上的任何資料庫程序都將在修補期間自動關閉。
    • 當提示輸入 OCM 響應檔案路徑時,請輸入/home/oracle/ocm.rsp並按回車鍵。
    • 當提示網格主目錄是否已共享時,請鍵入yes以繼續。
    $ oenv
    SIDs here are: grid +ASM1 RAC1
    ORACLE_SID = [RAC1] ? grid
    The Oracle base for ORACLE_HOME=/u01/grid/oracle/product/11.2.0/grid_1 is /u01/app/oracle
    
    [grid]$ cd /mnt/cdrom5/patch/psu2-gi-9655006
    psu2-gi-9655006[grid]$ su
    Password: racattack
    
    psu2-gi-9655006# $ORACLE_HOME/OPatch/opatch auto . -oh $ORACLE_HOME
    Executing /usr/bin/perl /u01/grid/oracle/product/11.2.0/grid_1/OPatch/crs/patch112.pl -patchdir . -patchn . -oh /u01/grid/oracle/product/11.2.0/grid_1 -paramfile /u01/grid/oracle/product/11.2.0/grid_1/crs/install/crsconfig_params
    opatch auto log file location is /u01/grid/oracle/product/11.2.0/grid_1/OPatch/crs/../../cfgtoollogs/opatchauto2011-04-01_22-44-08.log
    Detected Oracle Clusterware install
    Using configuration parameter file: /u01/grid/oracle/product/11.2.0/grid_1/crs/install/crsconfig_params
    OPatch  is bundled with OCM, Enter the absolute OCM response file path:
     /home/oracle/ocm.rsp 
    Can't change permissions of ./.: Read-only file system
    
    Unable to determine if /u01/grid/oracle/product/11.2.0/grid_1 is shared oracle home
    Enter 'yes' if this is not a shared home or if the prerequiste actions are performed to patch this shared home (yes/no): yes 
    Successfully unlock /u01/grid/oracle/product/11.2.0/grid_1
    patch ././9655006  apply successful for home  /u01/grid/oracle/product/11.2.0/grid_1
    patch ././9654983  apply successful for home  /u01/grid/oracle/product/11.2.0/grid_1
    ACFS-9300: ADVM/ACFS distribution files found.
    ACFS-9312: Existing ADVM/ACFS installation detected.
    ACFS-9314: Removing previous ADVM/ACFS installation.
    ACFS-9315: Previous ADVM/ACFS components successfully removed.
    ACFS-9307: Installing requested ADVM/ACFS software.
    ACFS-9308: Loading installed ADVM/ACFS drivers.
    ACFS-9321: Creating udev for ADVM/ACFS.
    ACFS-9323: Creating module dependencies - this may take some time.
    ACFS-9327: Verifying ADVM/ACFS devices.
    ACFS-9309: ADVM/ACFS installation correctness verified.
    CRS-4123: Oracle High Availability Services has been started.
    


  10. 返回到 oracle 使用者,並在講師提供的 DVD 上找到資料庫 PSU。使用oenv進入資料庫環境,然後執行opatch apply
    • 以本地模式執行 OPatch,以使它不會嘗試在整個叢集上自動滾動安裝。
    • 當提示您有關 OCM 的資訊時,請將您的使用者名稱留空,並使用“y”確認您不想輸入任何帳戶資訊。
    • 當提示您本地主目錄是否已準備好進行修補時,請鍵入“y”以繼續。
    # 退出 $ cd ../psu6-db-12419378 psu6-db-12419378$ oenv 這裡有 SIDs:grid +ASM1 RAC1 ORACLE_SID = [grid]  ? RAC1 ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1 的 Oracle 基礎為 /u01/app/oracle psu6-db-12419378[RAC1]$ cd 12419378 12419378[RAC1]$ $ORACLE_HOME/OPatch/opatch apply -local 呼叫 OPatch 11.2.0.1.5 Oracle 中間補丁安裝程式版本 11.2.0.1.5 版權所有 (c) 2010,Oracle Corporation。保留所有權利。Oracle 主目錄  : /u01/app/oracle/product/11.2.0/db_1 中央清單  : /u01/app/oraInventory 來自  : /etc/oraInst.loc OPatch 版本  : 11.2.0.1.5 OUI 版本  : 11.2.0.1.0 OUI 位置  : /u01/app/oracle/product/11.2.0/db_1/oui 日誌檔案位置  : /u01/app/oracle/product/11.2.0/db_1/cfgtoollogs/opatch/opatch2011-04-02_16-10-50PM.log 補丁歷史記錄檔案: /u01/app/oracle/product/11.2.0/db_1/cfgtoollogs/opatch/opatch_history.txt ApplySession 將中間補丁“12419378”應用於 OH '/u01/app/oracle/product/11.2.0/db_1' 執行先決條件檢查... 補丁 12419378:缺少可選元件  : [ oracle.client, 11.2.0.1.0 ] 提供您的電子郵件地址,以便在出現安全問題時收到通知,安裝並啟動 Oracle 配置管理器。如果您使用 My Oracle Support 電子郵件地址/使用者名稱,則更方便。訪問 http://www.oracle.com/support/policies.html 獲取詳細資訊。電子郵件地址/使用者名稱: <enter> 您沒有提供電子郵件地址來接收安全問題的通知。您是否希望不瞭解安全問題 ([Y]es,[N]o) [N]: Y 您選擇了 -local 選項,因此 OPatch 將僅修補本地系統。請關閉本地系統上從該 ORACLE_HOME 執行的 Oracle 例項。(Oracle 主目錄 = '/u01/app/oracle/product/11.2.0/db_1') 本地系統是否已準備好進行修補?[y|n] y 使用者回覆:Y 正在備份 Oracle 主目錄的檔案和清單(不適用於自動回滾) 正在備份受補丁“12419378”影響的檔案以進行還原。這可能需要一段時間... 正在備份受補丁“12419378”影響的檔案以進行回滾。這可能需要一段時間... 執行“sh /mnt/cdrom5/patch/psu6-db-12419378/12419378/custom/scripts/pre -apply 12419378”:返回程式碼 = 0 正在修補元件 oracle.rdbms.rsf,11.2.0.1.0... ... ... ... ... 正在執行 make 以生成目標 itnslsnr ApplySession 將中間補丁“12419378”新增到清單中 正在驗證更新... 清單檢查成功:補丁 ID 12419378 已在 Oracle 主目錄清單中註冊,並具有正確的元資料。檔案檢查成功:來自補丁 ID 12419378 的檔案存在於 Oracle 主目錄中。本地系統已修補,可以重新啟動。OPatch 成功。
  11. 在節點 collabn1 上啟用並啟動 Oracle 資料庫例項。例項執行後,停止並停用節點 collabn2 上的例項。資料庫不應該在任何時間點停止執行。 $ srvctl enable instance -d rac -i RAC1 $ srvctl start instance -d rac -i RAC1
    $ srvctl disable instance -d rac -i RAC2
    $ srvctl stop instance -d rac -i RAC2
    


  12. 使用自動補丁應用程式將網格基礎結構 PSU 應用於 collabn2
    • 注意:此節點上的任何資料庫程序都將在修補期間自動關閉。
    • 將 OCM 響應檔案 (/home/oracle/ocm.rsp) 複製到 collabn2
    • 當提示網格主目錄是否已共享時,請鍵入yes以繼續。
    $ scp /home/oracle/ocm.rsp collabn2:/home/oracle/
    $ ssh collabn2
    $ oenv
    SIDs here are: grid +ASM2 RAC2
    ORACLE_SID = [RAC2] ? grid
    The Oracle base for ORACLE_HOME=/u01/grid/oracle/product/11.2.0/grid_1 is /u01/app/oracle
    
    [grid]$ cd /mnt/cdrom5/patch/psu2-gi-9655006
    psu2-gi-9655006[grid]$ su
    Password: racattack
    
    psu2-gi-9655006# $ORACLE_HOME/OPatch/opatch auto . -oh $ORACLE_HOME
    Executing /usr/bin/perl /u01/grid/oracle/product/11.2.0/grid_1/OPatch/crs/patch112.pl -patchdir . -patchn . -oh /u01/grid/oracle/product/11.2.0/grid_1 -paramfile /u01/grid/oracle/product/11.2.0/grid_1/crs/install/crsconfig_params
    opatch auto log file location is /u01/grid/oracle/product/11.2.0/grid_1/OPatch/crs/../../cfgtoollogs/opatchauto2011-04-02_16-42-52.log
    Detected Oracle Clusterware install
    Using configuration parameter file: /u01/grid/oracle/product/11.2.0/grid_1/crs/install/crsconfig_params
    OPatch  is bundled with OCM, Enter the absolute OCM response file path:
     /home/oracle/ocm.rsp 
    Can't change permissions of ./.: Read-only file system
    
    Unable to determine if /u01/grid/oracle/product/11.2.0/grid_1 is shared oracle home
    Enter 'yes' if this is not a shared home or if the prerequiste actions are performed to patch this shared home (yes/no): yes 
    Successfully unlock /u01/grid/oracle/product/11.2.0/grid_1
    patch ././9655006  apply successful for home  /u01/grid/oracle/product/11.2.0/grid_1
    patch ././9654983  apply successful for home  /u01/grid/oracle/product/11.2.0/grid_1
    ACFS-9300: ADVM/ACFS distribution files found.
    ACFS-9312: Existing ADVM/ACFS installation detected.
    ACFS-9314: Removing previous ADVM/ACFS installation.
    ACFS-9315: Previous ADVM/ACFS components successfully removed.
    ACFS-9307: Installing requested ADVM/ACFS software.
    ACFS-9308: Loading installed ADVM/ACFS drivers.
    ACFS-9321: Creating udev for ADVM/ACFS.
    ACFS-9323: Creating module dependencies - this may take some time.
    ACFS-9327: Verifying ADVM/ACFS devices.
    ACFS-9309: ADVM/ACFS installation correctness verified.
    CRS-4123: Oracle High Availability Services has been started.
    


  13. 返回到 oracle 使用者並找到講師提供的 DVD 上的資料庫 PSU。使用 oenv 進入資料庫環境,然後執行 opatch apply
    • 以本地模式執行 OPatch,以使它不會嘗試在整個叢集上自動滾動安裝。
    • 當提示您有關 OCM 的資訊時,請將您的使用者名稱留空,並使用“y”確認您不想輸入任何帳戶資訊。
    • 當提示您本地主目錄是否已準備好進行修補時,請鍵入“y”以繼續。
    # 退出 $ cd ../psu6-db-12419378 psu6-db-12419378$ oenv 這裡有 SIDs:grid +ASM2 RAC2 ORACLE_SID = [grid]  ? RAC2 ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1 的 Oracle 基礎為 /u01/app/oracle psu6-db-12419378[RAC2]$ cd 12419378 12419378[RAC2]$ $ORACLE_HOME/OPatch/opatch apply -local 呼叫 OPatch 11.2.0.1.5 Oracle 中間補丁安裝程式版本 11.2.0.1.5 版權所有 (c) 2010,Oracle Corporation。保留所有權利。Oracle 主目錄  : /u01/app/oracle/product/11.2.0/db_1 中央清單  : /u01/app/oraInventory 來自  : /etc/oraInst.loc OPatch 版本  : 11.2.0.1.5 OUI 版本  : 11.2.0.1.0 OUI 位置  : /u01/app/oracle/product/11.2.0/db_1/oui 日誌檔案位置  : /u01/app/oracle/product/11.2.0/db_1/cfgtoollogs/opatch/opatch2011-04-02_17-11-00PM.log 補丁歷史記錄檔案: /u01/app/oracle/product/11.2.0/db_1/cfgtoollogs/opatch/opatch_history.txt ApplySession 將中間補丁“12419378”應用於 OH '/u01/app/oracle/product/11.2.0/db_1' 執行先決條件檢查... 補丁 12419378:缺少可選元件  : [ oracle.client, 11.2.0.1.0 ] 提供您的電子郵件地址,以便在出現安全問題時收到通知,安裝並啟動 Oracle 配置管理器。如果您使用 My Oracle Support 電子郵件地址/使用者名稱,則更方便。訪問 http://www.oracle.com/support/policies.html 獲取詳細資訊。電子郵件地址/使用者名稱: <enter> 您沒有提供電子郵件地址來接收安全問題的通知。您是否希望不瞭解安全問題 ([Y]es,[N]o) [N]: Y 您選擇了 -local 選項,因此 OPatch 將僅修補本地系統。請關閉本地系統上從該 ORACLE_HOME 執行的 Oracle 例項。(Oracle 主目錄 = '/u01/app/oracle/product/11.2.0/db_1') 本地系統是否已準備好進行修補?[y|n] y 使用者回覆:Y 正在備份 Oracle 主目錄的檔案和清單(不適用於自動回滾) 正在備份受補丁“12419378”影響的檔案以進行還原。這可能需要一段時間... 正在備份受補丁“12419378”影響的檔案以進行回滾。這可能需要一段時間... 執行“sh /mnt/cdrom5/patch/psu6-db-12419378/12419378/custom/scripts/pre -apply 12419378”:返回程式碼 = 0 正在修補元件 oracle.rdbms.rsf,11.2.0.1.0... ... ... ... ... 正在執行 make 以生成目標 itnslsnr ApplySession 將中間補丁“12419378”新增到清單中 正在驗證更新... 清單檢查成功:補丁 ID 12419378 已在 Oracle 主目錄清單中註冊,並具有正確的元資料。檔案檢查成功:來自補丁 ID 12419378 的檔案存在於 Oracle 主目錄中。本地系統已修補,可以重新啟動。OPatch 成功。
  14. 在節點 collabn2 上啟用並重新啟動 Oracle 資料庫例項。 $ srvctl enable instance -d rac -i RAC2 $ srvctl start instance -d rac -i RAC2 $ srvctl status database -d rac 例項 RAC1 在節點 collabn1 上執行 例項 RAC2 在節點 collabn2 上執行
  15. 執行 catbundle.sql 指令碼。 $ ss SQL> @?/rdbms/admin/catbundle.sql psu apply $ less /u01/app/oracle/product/11.2.0/db_1/cfgtoollogs/catbundle/ catbundle_PSU_RAC_APPLY_2011Apr02_17_28_19.log
  16. 可選:如果您想練習更多有關補丁的操作,請嘗試回滾資料庫 PSU,然後嘗試在自動滾動模式(沒有本地標誌)或“最小停機時間”模式下應用它。


華夏公益教科書