<b>系統環境:</b><b>RHEL5</b>
<b>文檔版本</b>:<b>V1.0.1</b>
<b>更新時間</b>:<b>2011-08-27</b>
<b>備注</b>:<b>DBA</b><b>專用</b>
<a>目錄</a>
<a target="_blank">Linux(RHEL5)下ORACLE_10g_10.2.0.1.0更新到10.2.0.5.0操作文檔(超給力版本)... 1</a>
<a target="_blank">目錄... 2</a>
<a target="_blank">1. 文檔更新記錄... 3</a>
<a target="_blank">2. 文檔說明... 3</a>
<a target="_blank">3. 更新前,需要做的準備工作:... 4</a>
<a target="_blank">3.1.1. 臨時增加shared pool和java pool的大小... 4</a>
<a target="_blank">3.1.2. 備份oracle軟體,備份資料庫... 4</a>
<a target="_blank">3.1.3. 停掉監聽,OEM,ISQLPLUS等... 4</a>
<a target="_blank">3.1.4. 上傳更新檔包... 4</a>
<a target="_blank">4. 資料庫軟體産品的更新:... 5</a>
<a target="_blank">4.1.1. 打開控制X server通路權限... 5</a>
<a target="_blank">4.1.2. 執行runInstaller,開啟安裝OUI界面... 5</a>
<a target="_blank">5. 進行資料庫的更新操作:... 11</a>
<a target="_blank">5.1.1. 開始更新及更新資料字典... 11</a>
<a target="_blank">5.1.2. 重編譯失效對象... 12</a>
<a target="_blank">5.1.3. 察看資料庫安裝的元件、版本、狀态: 12</a>
<a target="_blank">5.1.4. 開啟監聽,OEM及ISQLPLUS. 12</a>
<a target="_blank">6. 小結... 13</a>
<a target="_blank">6.1.1. 全新安裝的情況... 13</a>
<a target="_blank">6.1.2. 非全新安裝的情況... 13</a>
<a target="_blank">6.1.3. 更新失敗,嘗試回退機制... 14</a>
<b>時間</b>
<b>修改人</b>
<b>版本号</b>
<b>修改說明</b>
2011.08.20
Kevin.Lu
1.0.0
建立文檔
2011.08.27
1.0.1
梳理文檔
<a></a>
本文檔規範oracle10.2.0.1.0更新到10.2.0.5.0版本的更新流程及操作,供DBA人員在進行資料庫版本更新的時參考使用。
更新操作的具體步驟如下:
確定參數shared_pool_size和java_pool_size至少為150M大小,保證catupgrd.sql(10g)更新腳本運作正常(9i版本中是catpatch.sql)
[root@10gpri ~]# su – oracle
[oracle@10gpri Disk1]$ sqlplus / as sysdba
SQL>startup
SQL>alter system set shared_pool_size='150M' scope=spfile;
SQL> alter system set java_pool_size='150M' scope=spfile;
SQL>shutdown immediate
[oracle@10gpri Disk1]$cp -r $ORACLE_HOME/product/10.2.0/db_1 /bk/oracle_product_back
[oracle@10gpri Disk1]$ tar -cvfz /bk/oracle_backup.tar.gz $ORACLE_BASE /oradata/ora10g/*
[oracle@10gpri ~]$ lsnrctl stop
[oracle@10gpri ~]$ emctl stop dbconsole
[oracle@10gpri ~]$ isqlplusctl stop
将p8202632_10205_LINUX.zip上傳到/bk并解壓:
[oracle@10gpri bk]$ ls Disk1/
install patch_note.htm response runInstaller stage
[oracle@10gpri Disk1]$ export LANG=en
[root@10gpri ~]# xhost +
access control disabled, clients can connect from any host
[oracle@10gpri Disk1]$ ./runInstaller
Starting Oracle Universal Installer...
Checking installer requirements...
Checking operating system version: must be redhat-3, SuSE-9, SuSE-10, redhat-4, redhat-5, redhat-6, UnitedLinux-1.0, asianux-1, asianux-2, asianux-3, enterprise-4, enterprise-5 or SuSE-11 Passed
All installer requirements met.
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2011-08-26_10-34-03AM. Please wait ...[oracle@10gpri Disk1]$ Oracle Universal Installer, Version 10.2.0.5.0 Production
Copyright (C) 1999, 2010, Oracle. All rights reserved.
出現OUI圖形界面如下:
點選 ”Next”,進入選擇oracle_home界面:
隻有一個資料庫的話預設即可,接着點選 “Next”,出現如下對話框:
由于之前安裝過資料庫軟體,是以這裡提示安裝目的目錄非空,是否覆寫,點選”Yes”即可:
<a href="http://blog.51cto.com/attachment/201204/134709620.jpg" target="_blank"></a>
填寫一個郵箱位址,取消第二項的對鈎,繼續點選 ”Next”,出現下圖:
打上對鈎,點選 ”Continue”,出現下圖示:
檢查系統參數配置通過,點選 “Next”,如下:
點選 “Install”按鈕,開始安裝更新資料庫軟體,過程如下圖所示:
安裝完成後,會出現如下一個對話框:
按照上面對話框的要求,打開另一個終端,以root身份登入,執行腳本/u01/oracle/product/10.2.0/db_1/root.sh,該腳本會提示是否覆寫已存在的目錄,預設為否即可。
再回到剛才的終端,點選”OK”按鈕,彈出如下界面:
<a href="http://blog.51cto.com/attachment/201204/134738181.jpg" target="_blank"></a>
此時提示版本更新已經成功,點選 ”Exit”按鈕,退出即可。
至此,資料庫軟體産品更新已經完成。
SQL> startup upgrade;
SQL> select tablespace_name, sum(bytes)/(1024*1024) "Free M" from dba_free_space where tablespace_name = 'SYSTEM' group by tablespace_name;
TABLESPACE_NAME Free M
------------------------------ ----------
SYSTEM 10.375
SQL> SPOOL patch.log
SQL>@?/rdbms/admin/catupgrd.sql //此腳本執行時間大概需要20分鐘左右
Total Upgrade Time: 00:24:46 //設定JAVA_POOL_SIZE為150M時的更新所用時間
Total Upgrade Time: 01:06:39 //不設定JAVA_POOL_SIZE為150M時的更新所用時間,是以,大家一定要記得設定這個參數啊!!
SQL>SPOOL OFF
SQL> startup
SQL> @?/rdbms/admin/utlrp.sql
SQL> @?/rdbms/admin/catalog.sql;
SQL> @?/rdbms/admin/catproc.sql;
SQL> shutdown immediate;
SQL> select owner,object_name,subobject_name,object_type,status from dba_objects where status<>'VALID';
SQL> select status from v$instance;
SQL> select * from v$version;
SQL> col comp_name format a30
SQL>col version format a30
SQL>col status format a10
SQL> SELECT comp_name, version, status FROM dba_registry;
SQL>select username from dba_users;
SQL> quit
[oracle@10gpri Disk1]$ emctl start dbconsole
[oracle@10gpri Disk1]$ isqlplusctl start
[oracle@10gpri Disk1]$ lsnrctl start
http://ip:1158/em (IE方式通路OEM)
http://ip:5560/isqlplus (IE方式通路isqlplus)
http://ip:5560/isqlplus/dba (IE方式通路isqlplus dba)
以上更新操作可以總結為以下幾個要點:
如果是全新安裝的資料庫,直接運作更新檔包就可以了
p8202632_10205_LINUX.zip
./runInstaller
如果是已經建立了資料庫,并且有應用在上面,則先停止相關應用
再按以下步驟執行:
0)shutdown 資料庫,并停止所有oracle相關的服務和stop listener .
$ isqlplusctl stop
$ emctl stop dbconsole
$ lsnrctl stop
注意: 需要停止Distributed Transaction Coordinator服務/iis服務/web publish(www)/;
1)冷備份資料庫
2)運作安裝更新檔程式
3)startup upgrade; lsnrctl start
3.1)修改java_pool_size / large_pool_size=150M
SQL> ALTER SYSTEM SET JAVA_POOL_SIZE=’150M’ SCOPE=spfile;
SQL>spool upgrd.log
4)運作腳本
SQL>@?/rdbms/admin/catupgrd.sql
SQL>spool off
5)shutdown immediate
6)startup
7)運作腳本
SQL>@?/rdbms/admin/utlrp.sql;
SQL>@?/rdbms/admin/catalog.sql;
SQL>@?/rdbms/admin/catproc.sql;
8)察看資料庫安裝的元件、版本、狀态:
col comp_name format a30
col version format a30
col status format a10
SELECT comp_name, version, status FROM dba_registry;
如果更新失敗,可以嘗試回退機制
SQL>startup downgrade
SQL>spool downgrade.log
SQL>@catdwgrd.sql (10.2.0.1運作的是這個,而10.1降級用的是d92000.sql,即dold_release.sql)
本文轉自vcdog 51CTO部落格,原文連結:http://blog.51cto.com/255361/837573,如需轉載請自行聯系原作者