RHEL AS4下升級oracle10g到10.2.0.3

junsansi發表於2007-11-21
接上篇"RHEL AS4下安裝32位oracle10g",呵呵這篇介紹如何從10.2.0.1升級到10.2.0.3。

注:以下內容如未明確指定使用者,預設均為oracle使用者操作。

準備工作--安裝補丁包:

1.下載補丁包p5337014_10203_LINUX.zip並解壓unzip p5337014_10203_LINUX.zip

2.停止所有資料庫服務,監聽等

3.備份資料庫,冷備熱備均可,但必須是完全備份。推薦冷備,一旦有問題恢復也快。

4.安裝補丁包:

[oracle@jsslinux oraupdate]$ cd Disk1

[oracle@jsslinux Disk1]$ ./runInstaller

按照提示一直下一步,直到:如圖

RHEL AS4下升級oracle10g到10.2.0.3

開啟一個終端視窗:

[oracle@jsslinux ~]$ su - root

執行提示的指令碼,本例中:

[root@jsslinux ~]# /opt/ora10g/product/10.2.0/db_1/root.sh

完成後關閉終端,返回安裝介面,確定。如圖

RHEL AS4下升級oracle10g到10.2.0.3

這個時候別忙著啟動資料庫,補丁打完了,還需要升級資料庫才行。

下面進入重頭戲--升級資料庫

選擇題如下:

A. 使用DBUA升級(圖型化介面,操作簡單,據說出錯機率高)

B. 手工升級(字元介面,操作稍複製,據說出錯機率低)

選A,好,我不得不說,這不是一個不明智的選擇。

以oracle使用者登陸

開啟終端,設定好環境變數$ORACLE_HOME,$ORACLE_SID,$PATH

執行dbua

[oracle@jsslinux ~]$ dbua

看到歡迎介面,如圖

RHEL AS4下升級oracle10g到10.2.0.3

下一步,按照提示選擇資料庫(如果你要操作的資料庫不在列表中,手工修改/etc/oratab新增SID),注意"升級完成後編譯無效物件"的選項,建議選中,接著下一步。如果在操作之前沒有備份資料庫,可以在此選擇備份。dbua執行的是冷備,需要估計好磁碟剩餘空間。點選下一步,oracle開始升級操作,如圖

RHEL AS4下升級oracle10g到10.2.0.3

如果運氣好即沒碰上bug,也沒遭遇錯誤,那就可以finish了,如圖

RHEL AS4下升級oracle10g到10.2.0.3

升級完成,Oracle自動開啟資料庫,趕緊連線進去看看資料是否還在:)

選B,好,我不得不又說,這不是一個不明智的選擇。

1、以oracle使用者登陸

開啟終端,設定好環境變數$ORACLE_HOME,$ORACLE_SID,$PATH

[oracle@jsslinux dbs]$ export ORACLE_SID=jsscon

[oracle@jsslinux dbs]$ sqlplus "/ as sysdba"

SQL*Plus: Release 10.2.0.3.0 - Production on 星期三 11月 21 12:48:16 2007

Copyright (c) 1982, 2006, Oracle. All Rights Reserved.

已連線到空閒例程。

2、以升級模式啟動資料庫

SQL> startup upgrade

ORACLE 例程已經啟動。

Total System Global Area 109051904 bytes

Fixed Size 1260360 bytes

Variable Size 92275896 bytes

Database Buffers 12582912 bytes

Redo Buffers 2932736 bytes

資料庫裝載完畢。

資料庫已經開啟。

3、重建資料字典,另:如果有歸檔的話,強烈建議首先關閉歸檔

SQL> spool /home/oracle/oraupgrade.log

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

...

...

SQL>

SQL> Rem *********************************************************************

SQL> Rem END catupgrd.sql

SQL> Rem *********************************************************************

SQL> SPOOL OFF

如果這一步順利執行,升級已經完成了大半。

4、重啟資料庫

SQL> shutdown

資料庫已經關閉。

已經解除安裝資料庫。

ORACLE 例程已經關閉。

SQL> startup

ORACLE 例程已經啟動。

Total System Global Area 109051904 bytes

Fixed Size 1260360 bytes

Variable Size 92275896 bytes

Database Buffers 12582912 bytes

Redo Buffers 2932736 bytes

資料庫裝載完畢。

資料庫已經開啟。

5、編譯無效物件

由於catupgrd.sql重建過程中可能造成一些物件失效,我們需要執行utlrp.sql重新編譯那些無效物件(知道utlrp.sql功能了吧,黑黑,有事沒事都可以執行一下)。

SQL> select count(1) from dba_objects where status='INVALID';

COUNT(1)

----------

108

已選擇 1 行。

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

...

...

SQL> DECLARE

2 threads pls_integer := &&1;

3 BEGIN

4 utl_recomp.recomp_parallel(threads);

5 END;

6 /

耐心等候吧。

SQL> Rem ================================================================

SQL> Rem END utlrp.sql

SQL> Rem ================================================================

SQL> select tablespace_name,status from dba_tablespaces;

--表空間都在

SQL> select username from dba_users;

--使用者都在

SQL> select object_name from dba_objects where owner='JSS';

--使用者物件都在

ok,恭喜,升級成功。。

注:dba_objects檢視中也許會有一些類似BIN$BD34RX+6TICOMtVfhZZ6Zw==$0的物件存在,這是10g後提供的新功能,物件刪除後並非真正被刪,而是扔到回收站,這些物件就是回收站的物件,不用管它。

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

相關文章