一直不太清楚Oracle打patch和做upgrade会涉及到那些步骤和方法. 前几天有空试了一把. 现有oracle 10.2.0.1版本的单节点环境, 准备升级到10.2.0.2 总结大概的升级步骤如下.
1. 到Metalink上下载10.2.0.2 patchset和安装guide
[@more@]2. 安装Patchset
-- 设置环境变量
export ORACLE_HOME
export ORACLE_SID
Note: 因为安装10.2.0.1的时候已经设置了这俩个变量, 省略了这一步
-- 停掉所有Oracle服务
emctl stop dbconsole
sql> shutdown immeidate
lsnrctl stop
-- 备份现有环境
find /opt/app/oracle | cpio -pduvm /storage/ora_data/backup
-- 解压安装文件
unzip p4547817_10202_LINUX.zip
-- 运行installer
./runInstaller
-- Run $ORACLE_HOME/root.sh
-- Note: if prompted regards to overwirte file, type "y" to continue
3. 升级的后续工作
-- 设置两个变量值
sql> show parameter shared_pool_size
100M
sql> show parameter java_pool_size
0M
sql> show parameter sga_target
424M
sql> alter system set shared_pool_size=150m scope=spfile;
sql> alter system set java_pool_size=150m scope=spfile;
sql> shutdown
-- run catupgrd.sql
$ sqlplus / as sysdba
sql>startup upgrade
sql>spool /opt/app/oracle/patch.log
sql>@?/rdbms/admin/catupgrd.sql
sql>spool off
-- Restart the database
sql>shutdown immediate
sql>startup
-- Run the utlrp.sql to recomplile all invalid pl/sql packages
sql> @?/rdbms/admin/utlrp.sql
-- 升级RMAN catalog中的信息
$ rman catalog rman/rman123@mytest
RMAN> upgrade catalog;
--- rerun the catupgrd.sql script after correcting any problems if necesssary
-- Restart the database
-- Run the utlrp.sql script to recompile all invalid PL/SQL packages
sql> @?/rdbms/admin/utlrp.sql
-- Running changePerm.sh script on an Oracle database server home
$ $ORACLE_HOME/install/changePerm.sh
4. 在安装过程中遇到一个问题,简单描述如下
执行sql语句的时候遇到下面的的错误信息:
ORA-04063: package body "SYS.DBMS_REGISTRY_SYS" has errors
select comp_name, status, version from dba_registry;
ORA-04063: view "SYS.DBA_REGISTRY" has errors
解决办法:
sql> @?/rdbms/admin/catproc.sql
重启Oracle后, 查看v$version, 版本变为10.2.0.2, 检查alert.log没有发现错误信息, 在数据库中操作正常.
总之, 在开始做升级前认真阅读oracle提供的upgrade guide, 记录下升级步骤.
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7319061/viewspace-1024166/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/7319061/viewspace-1024166/