從10.2.0.1升級到10.2.0.5操作實驗(上)

dbhelper發表於2014-11-29

 

日常升級、打補丁是系統運維人員經常面對的工作專案。很多情況下,升級資料庫和打補丁是解決Oracle Bug的終極策略。

Oracle 11gR2之前,Oracle普遍採用的是一種增量補丁升級策略。初始安裝都是一個比較低的基礎版本,比如10.2.0.1或者11.2.0.1,這些都是可以在官方網站上直接下載的版本。之後如果需要進行小版本升級或者特定bug修復,則需要到Oracle官方網站Oracle Support上下載專門的補丁包進行升級。我們常見的10.2.0.511.2.0.4都是用這些策略進行升級的。

在升級方面,Oracle官方會推出兩個版本的補丁包,CPUPSUCPUCritical Patch Update)是對於其產品每個季度發行的安全補丁,主要是針對產品安全問題隱患的修復。而PSUPatch Set Update)也是一個季度發行,包括了Bug修復,以及各種被認可低風險補丁。

進入11R2之後,Oracle更新策略有所變化。我們可以直接下載到高版本的PSU包,這些包其實就是全新的Oracle軟體包。目前我們安裝11.2.0.311.2.0.4,都可以直接安裝PSU,而不需要從基礎版進行升級。

本篇主要想記錄下歷史,介紹一下從10.2.0.1升級到10.2.0.5的步驟過程,留待需要的朋友待查。說明:本文實驗過程中參考了諸多網路資源,特此表示感謝。

 

1、環境介紹

 

我們已經在Redhat 6.5上成功安裝Oracle 10gR2,版本號為10.2.0.1

 

[oracle@SimpleLinux ~]$ uname -r

2.6.32-431.el6.i686

 

SQL> select * from v$version;

 

BANNER

----------------------------------------------------------------

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod

PL/SQL Release 10.2.0.1.0 - Production

CORE    10.2.0.1.0      Production

TNS for Linux: Version 10.2.0.1.0 - Production

NLSRTL Version 10.2.0.1.0 – Production

 

當前作業系統使用者oracle關鍵環境變數如下:

 

[oracle@SimpleLinux ~]$ env | grep ORA

ORACLE_SID=ora11g

ORACLE_BASE=/u01/app/oracle

ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1

 

作業系統儲存和記憶體資源相對充足。

 

[oracle@SimpleLinux ~]$ df -h

Filesystem                           Size  Used Avail Use% Mounted on

/dev/mapper/vg_simplelinux-LogVol00   29G  8.7G   19G  32% /

tmpfs                                448M     0  448M   0% /dev/shm

/dev/sda1                            485M   33M  427M   8% /boot

[oracle@SimpleLinux ~]$ free -m

             total       used       free     shared    buffers     cached

Mem:           894        332        561          0         20        241

-/+ buffers/cache:         70        824

Swap:         1999          0       1999

 

2、備份環境和補丁包準備

 

首先,我們需要將資料庫、監聽程式等相關物件進行關閉。根據不同的情況,ASMDB Control也需要關閉。

 

[oracle@SimpleLinux ~]$ lsnrctl stop

LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 13-MAY-2014 11:19:04

Copyright (c) 1991, 2005, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))

The command completed successfully

 

SQL> conn / as sysdba

Connected.

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

 

下面需要備份環境。注意:升級過程是有風險的,特別是在生產環境下。兩個步驟是降低升級風險的重要策略:多次測試和資料備份。多次測試(在系統測試環境)可以幫助我們事先發現升級方案問題,準備應對策略,驗證方案。資料備份可以最大程度減少我們資料損失風險。

具體備份方法針對各自情況不同,可以選擇RMAN、冷備份、exp/expdp等。此處筆者選擇直接將目錄複製的完全方法。

 

[root@SimpleLinux upload]# mkdir /u02

[root@SimpleLinux upload]# cd /u01

[root@SimpleLinux u01]# cp -r * /u02

[root@SimpleLinux u01]#

 

正式進行動作前,要重新規劃確定升級步驟。本次升級要實現兩個補丁包,一個是10.2.0.5升級包,另一個是在10.2.0.5上執行的補丁包。在MOS上針對特定版本下載升級安裝包,並且上傳到伺服器上。

 

[root@SimpleLinux ~]# cd /upload/

[root@SimpleLinux upload]# ls -l

total 1082304

-rw-r--r-- 1 root root    4278863 May 13 11:27 p11724962_10205_LINUX.zip

-rw-r--r-- 1 root root 1103992900 May 13 11:29 p8202632_10205_LINUX.zip –升級10.2.0.5

 

注意:我們升級資料庫是有兩個大的步驟,Oracle軟體升級和Oracle資料庫升級。可以回想一下我們在安裝資料庫的時候,是先安裝資料庫軟體(包括GridClusterware),之後建立dbca資料庫。升級也是一樣,我們需要先把資料庫軟體更新為最新版本,之後清理已經存在的資料庫物件,使之升級為最新版本。

 

3Oracle軟體升級

 

我們首先進行軟體升級動作,解壓安裝包。

 

[root@SimpleLinux upload]# ls -l

total 1082472

drwxr-xr-x 5 root root       4096 Jul 23  2010 Disk1

-rw-r--r-- 1 root root    4278863 May 13 11:27 p11724962_10205_LINUX.zip

-rw-r--r-- 1 root root 1103992900 May 13 11:29 p8202632_10205_LINUX.zip

-rwxrwxrwx 1 root root     165290 Jul 20  2010 README.html

 

root中給oracle使用者授權。

 

[root@SimpleLinux upload]# cd /

[root@SimpleLinux /]# chown -p oracle:oinstall upload/

chown: invalid option -- 'p'

Try `chown --help' for more information.

[root@SimpleLinux /]# chown -R oracle:oinstall upload/

[root@SimpleLinux /]#

 

升級軟體是在圖形化介面中進行,所需要配置XWindows或者vnc介面工具。執行目錄中的.runInstall指令碼,就可以啟動介面。如果環境變數配置正常,自動Path都會帶入到介面中。

 

從10.2.0.1升級到10.2.0.5操作實驗(上)

 

大部分操作,都是點選Next確認過程。下面是驗證作業系統環境資訊,是否滿足安裝條件。

 

從10.2.0.1升級到10.2.0.5操作實驗(上)

安裝過程,介面和工作內容和一般安裝Oracle沒有過多差異。

 

從10.2.0.1升級到10.2.0.5操作實驗(上)

最後需要以root使用者手工執行指令碼。

 

從10.2.0.1升級到10.2.0.5操作實驗(上)

執行root.sh中,有一些覆蓋的確認,建議覆蓋。

 

[root@SimpleLinux ~]# cd /u01/app/oracle/product/10.2.0/db_1/

[root@SimpleLinux db_1]# ./root.sh

Running Oracle 10g root.sh script...

 

The following environment variables are set as:

    ORACLE_OWNER= oracle

    ORACLE_HOME=  /u01/app/oracle/product/10.2.0/db_1

 

Enter the full pathname of the local bin directory: [/usr/local/bin]:

The file "dbhome" already exists in /usr/local/bin.  Overwrite it? (y/n)

[n]: y

(篇幅原因,有省略……

Now product-specific root actions will be performed.

 

如果沒有明確的報錯資訊,就說明Oracle軟體部分的安裝成功。


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

相關文章