程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> RHEL AS4下升級oracle10g到10.2.0.3

RHEL AS4下升級oracle10g到10.2.0.3

編輯:Oracle數據庫基礎

注:以下內容如未明確指定用戶,默認均為Oracle用戶操作。

 

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

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

2.停止所有數據庫服務,監聽等

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

4.安裝補丁包:

[Oracle@JSsLinux oraupdate]$ cd Disk1

[Oracle@JSsLinux Disk1]$ ./runInstaller

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

230); FONT-FAMILY: ''宋體''">

 

打開一個終端窗口:

[Oracle@JSsLinux ~]$ su - root

執行提示的腳本,本例中:

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

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

 

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

下面進入重頭戲--升級數據庫

選擇題如下:

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

B. 手工升級(字符界面,操作稍復制,據說出錯機率低)

 

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

以Oracle用戶登陸

打開終端,設置好環境變量$ORACLE_HOME,$Oracle_SID,$PATH

執行dbua

[Oracle@JSsLinux ~]$ dbua

SIZE: 10.5pt; FONT-FAMILY: ''宋體''">看到歡迎界面,如圖

 

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

 

如果運氣好即沒碰上bug,也沒遭遇錯誤,

那就可以finish了,如圖

 

升級完成,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

rgb: ">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

 

...

n style="FONT-SIZE: 10.5pt; FONT-FAMILY: ''宋體''">...

SQL>

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

SQL> Rem END catupgrd.sqlSQL> Rem *********************************************************************

 

SQL> SPOOL OFF

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

 

4、重啟數據庫

SQL> shutdown

數據庫已經關閉。

學網 http://www.xue5.com (本站) [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12]

21pt; TEXT-ALIGN: justify; rgb: ">已經卸載數據庫。

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

style="FONT-SIZE: 10.5pt; FONT-FAMILY: ''宋體''">...

...

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後提供的新功能,對象刪除後並非真正被刪,而是扔到回收站,這些對象就是回收站的對象,不用管它。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved