--*********************************
-- Oracle 10.2.0.1 升 级 到 10.2.0.4
--*********************************
数 据 库 升 级并 不 难 ,只要遵循其步 骤 ,一般 问题 不大。但是升 级 失 败 的情 况 也是 屡见 不 鲜 ,尤其是生 产数 据 库 的升 级 , 搞 不定的 时 候甚至要 创 建 SR 。
下面描述基于 Linux(Oracle Linux 5.4 / 2.6 .18- 164 .el5PAE) 平台下 Oracle 10.2 .0.1 升 级 到 10.2 .0.4 的步 骤 。
Oracle 升 级 包的下 载 , 请链 接: Oracle 补 丁全集 (Oracle 9i 10g 11g Path)
注:
在 9i 以前,无 论 升 级 / 降 级 , 数 据 库 都是 startup migrate
10 g 后增加了 upgrade 参数 ,升 级 可直接用 startup upgrade ,降 级 仍是 startup migrate
一、 单实 例升 级 先 决条 件:
1 . 表空 间 需求
确保 system 表空 间 至少有 10M 空 间 可用,下面 给 出 查询语 句
col "tablespace_name" for a20
col "Usage_Percent" for a10
SELECT upper (f.tablespace_name) "tablespace_name"
,d.tot_grootte_mb "tablespace_size(M)"
,d.tot_grootte_mb - f.total_bytes "used_size(M)"
,to_char( round ((d.tot_grootte_mb - f.total_bytes) / d.tot_grootte_mb * 100 ,
2 ),
'990.99' ) "Usage_Percent"
,f.total_bytes "free_size(M)"
FROM ( SELECT tablespace_name
, round ( SUM (bytes) / 1024 / 1024 ) total_bytes
, round ( MAX (bytes) / ( 1024 * 1024 ), 2 ) max_bytes
FROM sys.dba_free_space
GROUP BY tablespace_name) f
,( SELECT dd.tablespace_name
, round ( SUM (bytes) / 1024 / 1024 ) tot_grootte_mb
FROM sys.dba_data_files dd
GROUP BY dd.tablespace_name) d
WHERE d.tablespace_name = f.tablespace_name
ORDER BY 2 DESC ;
2 . 系 统参数 :
确保 参数 SHARED_POOL_SIZE 和 JAVA_POOL_SIZE 大于 150MB 以上, 为 加快升 级 速度,在系 统内 存可用的情 况 下,可 临时调 大 这 2 个参数
SQL > SHOW PARAMETER SHARED_POOL_SIZE
SQL > SHOW PARAMETER JAVA_POOL_SIZE
SQL > ALTER SYSTEM SET SHARED_POOL_SIZE= '200M' SCOPE = spfile ;
SQL > ALTER SYSTEM SET JAVA_POOL_SIZE= '200M' SCOPE = spfile ;
二、 实 施升 级
1 . 关闭 需要升 级 的 实 例
停止 实 例
SQL > shutdown immediate
停止 与该实 例相 关 的所有后台 进 程
lsnrctl emctl
2 . 备份 Oracle Home 目 录 及 数 据 库
tar -cvf $ORACLE_BASE /orabak/ -- 确保 Oracle 相 关 的所有配置都位于 $ORACLE_BASE 目 录 ,如 监 听等
cp *.dbf con*.ora redo*.log /orabak/ -- 对数 据 库实 施冷 备
3 . 升 级软 件
./runIstanller -->oracle 账户
root.sh -->root 账户
4 . 更新 数 据字典
SQL > startup upgrade
SQL > spool patch.log
SQL > @?/rdbms/ admin /catupgrd.sql -- 注 9i 使用 catpatch.sql
SQL > spool off
5 . 重 编译 失效 对 象:
sql > shutdown immediate
sql >startup
SQL >@?/rdbms/ admin /utlrp.sql
6 . 升 级 后的 检测
SQL > select comp_name, version ,status from sys.dba_registry;
检查组 件的升 级 情 况
SQL > select * from utl_recomp_errors;
7 . 修改兼容性 参数
SQL > alter system set compatible= '10.2.0.4.0' scope = spfile ;
8 . 重新 启动数 据 库 :
SQL > SHUTDOWN
SQL > STARTUP
9 . 如果使用了恢 复 目 录 , 则执 行下面的命令
$ rman catalog username/ password @ alias
RMAN> UPGRADE CATALOG;
10 . 升 级 回退:
SQL > STARTUP DOWNGRADE
SQL > SPOOL downgrade.log
SQL > @catdwgrd.sql ( 10.2 .10 运 行的是 这个 ,而 10.1 降 级 用的是 d92000.sql ,即 dold_release.sql )
Sql >spool off
Sql > shutdown immediate
12 . 检查 升 级 后的情 况
SQL > select comp_name, version ,status from sys.dba_registry;
COMP_NAME VERSION STATUS
---------------------------------------- ------------------------------ -----------
Oracle Database Catalog Views 10.2 .0.4.0 VALID
Oracle Database Packages and Types 10.2 .0.4.0 VALID
Oracle Workspace Manager 10.2 .0.4.3 VALID
JServer JAVA Virtual Machine 10.2 .0.4.0 VALID
Oracle XDK 10.2 .0.4.0 VALID
Oracle Database Java Packages 10.2 .0.4.0 VALID
Oracle Expression Filter 10.2 .0.4.0 VALID
Oracle Data Mining 10.2 .0.4.0 VALID
Oracle Text 10.2 .0.4.0 VALID
Oracle XML Database 10.2 .0.4.0 VALID
Oracle Rule Manager 10.2 .0.4.0 VALID
COMP_NAME VERSION STATUS
---------------------------------------- ------------------------------ -----------
Oracle interMedia 10.2 .0.4.0 VALID
OLAP Analytic Workspace 10.2 .0.4.0 VALID
Oracle OLAP API 10.2 .0.4.0 VALID
OLAP Catalog 10.2 .0.4.0 VALID
Spatial 10.2 .0.4.0 VALID
Oracle Enterprise Manager 10.2 .0.4.0 VALID
17 rows selected.
SQL > select * from utl_recomp_errors;
no rows selected