使用DBUA单一实例如何升级至Oracle数据库12c
對于Oracle數據庫的每個版本,總是需要遵循一個升級路徑。而對于很多人來說,他們經常是在不了解需要做些什么的情況下就匆忙下載軟件并嘗試去安裝或升級。如果失敗,這就有可能會導致災難并對業務產生潛在的影響。
升級至Oracle數據庫12c(12.1.0)的路徑是相當簡單的。如果你所運行的Oracle數據庫支持升級至12c的直接路徑,那么使用任何受支持的升級方法都沒問題。反之,如果你的版本不支持直接路徑升級,那么你就需要在升級至Oracle數據庫12c之前先升級至一個受支持的版本。
受支持的直接升級路徑:
?Oracle數據庫10g(10.2.0.5)
?Oracle 數據庫 11g (11.1.0.7)
?Oracle 數據庫 11g (11.2.0.2 或后續版本)
目前有三個受支持的升級路徑/工具,每個都有各自需要注意的問題。升級選項包括:
?數據庫升級助手 (DBUA)
?手動升級 (基于腳本)
?導出/導入
本文主要介紹如何使用DBUA升級到Oracle數據庫12c。
Oracle已對DBUA做出改進以提供無縫升級。如果出現錯誤,我們現在就有選擇可直接從DBUA對它們進行修復。此外,DBUA使得監控升級更為簡便。要使用DBUA,我們必須去Oracle數據庫12c主目錄并通過運行dbua來開啟它。
運行 PREUPGRD.SQL
為了運行preupgrd.sql文件,我們首先需要為12c安裝新的二進制文件到Oracle主目錄。之后需要配置環境來連接想要升級的數據庫。
在本文的測試環境中,Oracle數據庫11g設置如下:
ORACLE_SID=ora11g
ORACLE_BASE=/opt/oracle
ORACLE_HOME=/opt/oracle/product/11.2.0.3.0/db_1
接下來,我們需要去preupgrd.sql 文件所在的目錄:
#> cd /opt/oracle/product/12.1.0.1/dbhome_1/rdbms/admin
最后,我們需要使用SQL*Plus并運行preupgrd.sql 文件來連接11g數據庫:
#> sqlplus / as sysdba
SQL>@preupgrd.sql
當preupgrd.sql腳本完成后,我們就會獲得需要參考的文件所在路徑,這些文件可以幫助我們檢驗并糾正環境中出現的任何問題。
/opt/oracle/cfgtoollogs/ora11g/preupgrade/preupgrade.log
預升級修復腳本(在源數據庫環境中運行):
/opt/oracle/cfgtoollogs/ora11g/preupgrade/preupgrade_fixups.sql
升級后修復腳本(升級后運行):
/opt/oracle/cfgtoollogs/ora11g/preupgrade/postupgrade_fixups.sql
檢查這些腳本并糾正任何需要修復的問題。一旦修正完成,再運行DBUA就會更加簡單。而如果在preupgrade.log中列有任何錯誤,那就需要在繼續之前對它們加以糾正。
運行 DBUA
一旦在檢查了preupgrade.log之后并糾正了所有問題,我們就可以啟動DBUA了。
要啟動DBUA,我們需要去Oracle數據庫12c主目錄并運行dbua:
#> cd /opt/oracle/product/12.1.0.1/dbhome_1/bin
#> ./dbua &
這將開啟GUI開始升級。注意目前并沒有對環境做任何更改,仍然指向11g的環境。
ORACLE_SID=ora11g
ORACLE_BASE=/opt/oracle
ORACLE_HOME=/opt/oracle/product/11.2.0.3.0/db_1
DBUA啟動后,你會注意到我們是處在11個步驟中的步驟1。而步驟數量的變化取決于所選擇的選項。步驟1,我們有兩個選項
?升級一個Oracle數據庫
?遷移一個已存在的12c數據庫到一個新的12coracle主目錄
出于更新的目的,我們可以只點擊下一步并繼續。
作為升級過程的一部分,我們需要確定想要升級的Oracle主目錄。因為我們是在將Oracle主目錄設置到11g主目錄的情況下啟動DBUA的,DBUA就會給我們所有與Oracle主目錄相關的數據庫。選擇所要升級的數據庫,然后點擊下一步。
在步驟3中,我們看到的結果與我們在preupgrade.log看到的相類似。DBUA實際上是運行了相同的preupgrade.log腳本并返回結果給GUI。
步驟4是DBUA中最有意思的界面之一。Oracle已經對如何處理升級做了一個根本性的改變,升級現在可以并行完成。這可通過使用新的perl腳本catctl.pl來完成。并行的數量是基于服務器中CPU的數量來進行計算的。此外,現在我們可以并行重編譯對象并讓DBUA執行此多時區的升級,獲取統計信息并使得表空間在升級過程中只讀。點擊下一步繼續。
步驟5可以選擇如何管理Oracle數據庫12c環境。我們可以選擇使用EM Express,這是Oracle數據庫12c中新的Web界面,它用以替代之前版本中的數據庫控制臺,或者我們可以選擇通過Oracle企業管理12c(OEM)來注冊數據庫。
注意:如果在正在進行升級的服務器上已經安裝了OEM12c,那么DBUA就會自動選擇所需信息。
步驟6允許我們指定想要將數據文件遷移到何處并在何處設置快速恢復區(FRA)。如果想要在此處使用Oracle管理文件(OMF),我們也可以進行配置。
步驟7讓我們可以選擇將11g上的監聽器遷移至12c(如果還沒有完成升級)。在下圖中,已經安裝了12c二進制文件并有一個監聽器正運行。此界面的重要之處在于‘Migrate’列。此列會告訴你監聽器是否會進行遷移。
在步驟8中,我們可以選擇在升級之前為數據庫創建一個新備份。如果你對自己的備份策略自信的話,就可選擇‘I have my own backup and restore strategy ’,告訴DBUA不必做備份。
最后,我們看到的是總結界面(步驟9)。此界面會向我們展示DBUA認為它將要做的事情。應該始終有人對此界面進行檢查并在點擊‘Finish ’之前確保一切正常。一旦我們點擊了完成,升級就會開始并且我們可以通過進度界面對這一過程進行監控。
在進度界面上,我們可以看到升級的進度。界面上的箭頭可以擴展顯示DBUA當前所在進行的步驟。進度界面上另一個不錯的功能就剩余時間展示,可以在時間列看到這一點。
一旦升級完成,‘Stop ’按鈕就會改變其文字并顯示為‘Upgrade Results ’。點擊此按鈕,界面就會改變并為你提供升級的結果。
此時,升級完成并且可以關閉DBUA。點擊‘Close ’按鈕退出GUI。
驗證升級
有多種方法可以對升級進行驗證。而最為簡單的方法就是檢查/etc/oratab 文件。一旦升級完成,oratab文件就應該已將Oracle主目錄變成與12c二進制文件相匹配的路徑。
另外一種驗證方法就是用以下命令行檢查環境變量:
#> env | grep ORA
ORACLE_SID=ora11g
ORACLE_BASE=/opt/oracle
ORACLE_HOME=/opt/oracle/product/12.1.0.1/dbhome_1
最后,我們可以使用SQL*Plus對數據庫版本進行檢查:
#> sqlplus / as sysdba
SQL> select banner from v$version
甲骨文為Oracle數據庫12c的升級提供了非常簡單的路徑,希望本文對你有所幫助。
總結
以上是生活随笔為你收集整理的使用DBUA单一实例如何升级至Oracle数据库12c的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: RAC 核心概念 Cache Fusi
- 下一篇: Oracle 数据库启动 startup