Oracle Database 12c 版本 1 (12.1) 升級新增功能 (文件 ID 1602865.1)

mosdoc發表於2016-11-08

適用於:

Oracle Database - Enterprise Edition - 版本 12.1.0.1 和更高版本
Oracle Database - Standard Edition - 版本 12.1.0.1 和更高版本
本文件所含資訊適用於所有平臺

用途

介紹 Oracle Database 12c 版本 1 (12.1) 的升級方面新功能

詳細資訊

DBUA 介面在版本 12cR1 (12.1.0.1) 中有了重大改變。

DBUA 現在採用皮膚設計(與 OUI 相同),並將升級過程劃分為以下幾個階段:

  • 升級前步驟
  • 資料庫升級步驟
  • 升級後步驟

使用新的 Pre-Upgrade Information Tool 增強了升級自動化功能

  • Oracle 提供了新的 Pre-Upgrade Information Tool/指令碼 preupgrd.sql。
  • Pre-Upgrade Information Tool 包括 preupgrd.sql 和 utluppkg.sql。
  • 這些指令碼必須從新的 12c $ORACLE_HOME/rdbms/admin 複製到需要被升級的 $ORACLE_HOME/rdbms/admin 目錄。
  • 必須從要升級的資料庫環境執行 preupgrd.sql。
  • 該工具生成修復指令碼和日誌檔案,它們位於 $ORACLE_HOME/cfgtoollogs/$ORACLE_SID/preupgrade。               
    • 生成的 preupgrade_fixups.sql 指令碼是為了解決源資料庫中可以使用 SQL*Plus 修復的問題。
    • 生成的 postupgrade_fixups.sql 指令碼是為了解決可在資料庫升級之後修復的問題。
    • 生成的日誌檔案 preupgrade.log,其中包含 Pre-Upgrade Information Tool 的輸出。
  • Pre-Upgrade Information Tool 會顯示建議,但並不自動執行建議以確保您可以完全控制修復指令碼的執行方式和時間。

資料庫升級的並行處理

  • 並行升級是 Oracle Database 12cR1 中引入的新功能,可以並行執行升級指令碼和程式。
  • 並行升級旨在充分利用 CPU 能力,從而減少升級所需時間。
  • 並行執行會將各 SQL 檔案分解為單獨(獨立)元件。
    如果一個 SQL 檔案是獨立的,那麼它就可以與另一個 SQL 檔案一起並行執行。
    這種情況並不適用於所有 SQL 指令碼,因為一些 SQL 指令碼依賴於其他指令碼並會呼叫其他實用程式。
    在這種情況下,Oracle 確保呼叫下一個指令碼或進行引用之前滿足這些相關性。
  • 將升級過程分為不同階段的目的是為了並行升級。
    階段就是 Oracle 升級如何並行載入 sql 檔案。
    必須先完成一個階段,然後才能進入下一個階段。
  • 預設情況下,升級以並行度 4 執行。
    即使在單 CPU 下將該數字設定為 4 也觀察到了效能提升。
    升級過程可以獲取更多 CPU 週期來完成工作,即使只有一個處理器/CPU 也是如此。

新升級實用程式 catctl.pl

  • Oracle Database 12cR1 中引入了新的升級實用程式 (catctl.pl)。
  • 它並行載入資料字典和元件,從而減少了整體升級時間。
  • 它使得不需要按照特定順序升級的元件可以同時升級,即並行升級。
  • 下面是對 catctl.pl 指令碼可用的一些引數:
    • -n : 指定用於並行操作的程式數量。預設值為 4。最大值為 8。對於序列模式,請將其設定為 0。
    • -u : 使用者名稱(提示輸入口令)
    • -d : 包含要執行的檔案的目錄
    • -t  : 用於階段日誌記錄的表名稱
    • -l  : 用於存放 spool 日誌檔案的目錄
    • -s : 用於初始化會話的 SQL 指令碼
    • -e : 在執行指令碼時關閉命令回顯
    • -p : 重新啟動階段(重新執行時跳過成功的階段)
    • -i  : 建立 spool 日誌檔案時使用的識別符號
    • -y : 僅顯示階段

要在 Linux 上執行 catctl.pl,請執行以下操作:

: cd $ORACLE_HOME/rdbms/admin
: $ORACLE_HOME/perl/bin/perl catctl.pl catupgrd.sql

要在 Windows 上執行 catctl.pl,請執行以下操作:

: cd %ORACLE_HOME%\rdbms\admin
: %ORACLE_HOME%\perl\bin\perl catctl.pl catupgrd.sql

示例:並行度為 6 (n=6)

: cd $ORACLE_HOME/rdbms/admin_
: $ORACLE_HOME/perl/bin/perl catctl.pl -n  6 -l $ORACLE_HOME/diagnostics -t phase_tab -i V112 catupgrd.sql

Oracle XML DB 現在是安裝的必需元件

  • Oracle XML Database (Oracle XML DB) 現在是 Oracle 資料庫的必需元件。
    如果在升級期間發現未安裝 Oracle XML DB,則 Oracle XML DB 將自動被載入到 SYSAUX 表空間中。
    升級後的 Oracle資料庫中將包含 Oracle XML DB。

升級日誌檔案

  • 如果設定了環境變數 ORACLE_BASE,則 DIAGNOSTIC_DEST 預設為由 ORACLE_BASE 指定的目錄,並且生成的指令碼和日誌檔案將在以下位置中建立:

            $ORACLE_BASE/cfgtoollogs/tool_name/SID/upgrade

  • 如果未定義 ORACLE_BASE,則生成的指令碼和日誌檔案將在以下位置中建立:

    $ORACLE_HOME/cfgtoollogs/tool_name/SID/upgrade

    其中 n 表示此係統上針對特定 ORACLE_SID 已執行升級的編號。
  • 每個並行執行緒有一個日誌檔案。根據執行 catctl.pl 和 catupgrd.sql 指令碼時選擇的並行度,catctl.pl 指令碼將建立多個日誌檔案。
    例如:

            catupgrd0.log
            catupgrd1.log
            catupgrd2.log
            catupgrd3.log

  • 預設日誌位置是當前工作目錄。
  • 使用 catcctl.pl 的 –l 引數指定日誌位置。


Oracle EM Express


?   EM DB Control 在 12c 中由 Oracle EM Express 取代。

   - 因此不再需要資料檔案庫。

   - 如果沒有提前刪除 EM 資料檔案庫,則將在 catuppst.sql 升級後階段中自動刪除。

或者

  - 用如下命令刪除 Enterprise Manager Database Control 資料檔案庫。


$emctl stop dbcontrol

SQL> @ ?/rdbms/admin/emremove.sql


 


參考

NOTE:1520299.1 - Master Note For Oracle Database 12c Release 1 (12.1) Database/Client Installation/Upgrade/Migration Standalone Environment (Non-RAC)
NOTE:1493645.1 - Oracle Database 12c Release 1 (12.1) DBUA : Understanding New Changes with All New 12.1 DBUA
NOTE:1503653.1 - Complete Checklist for Manual Upgrades to Oracle Database 12c Release 1 (12.1)

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

相關文章