Oracle 10.2.0.1 升级到 10.2.0.4

--*********************************

-- 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

10g后增加了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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏沃趣科技

MySQL复制应用中继日志解析

一、从一张图开始 从一个大神那边得到一张图片,SQL线程应用中继日志流程,下面就实验验证一下:(PS,我个人认为这张图binlog_format为ROW格式是正...

4596
来自专栏自由而无用的灵魂的碎碎念

Oracle:创建db_link

global_name也就是数据库的全局数据库名,可已使用select * from global_name;查询:

872
来自专栏数据和云

查看SQL执行计划的方法及优劣

作者 | 胡佳伟:云和恩墨技术工程师,有多年数据库优化经验,在一线执行过多个包括通信、保险等行业的优化项目。

1132
来自专栏jouypub

Hive日常操作

根据分区查询数据:select table_coulm from table_name where partition_name = '2018-11-01';

2203
来自专栏逸鹏说道

解决session阻塞的问题

简介 对于数据库运维人员来说创建session或者查询时产生问题是常规情况,下面介绍一种很有效且不借助第三方工具的方式来解决类似问题。 最近开始接触运维...

3526
来自专栏性能与架构

跨库的查询策略

对拆分字段的查询 单值查询 select * from table1 where user_id=‘test1234’ user_id 是分库时的拆分字段...

3715
来自专栏应用案例

索引,视图,存储过程和触发器文档

实验案例一:验证索引的作用 1、首先创建一个数据量大的表,名称为“学生表”,分别有三列,学号,姓名和班级,如下图所示,学号为自动编号,班级为默认值“一班”。 ?...

2268
来自专栏架构师之路

数据库中间件cobar调研笔记

13年底负责数据库中间件设计时的调研笔记,拿出来和大家分享,轻拍。文章很长,可提前收藏,转发。 一,cobar是什么 开源的mysql的中间件服务 使用mysq...

4106
来自专栏解Bug之路

MySql之自动同步表结构

在开发过程中,由于频繁的修改数据库的字段,导致rd和qa环境的数据库表经常不一致。 而由于这些修改数据库的操作可能由多个rd操作,很难一次性收集全。人手工去和...

871
来自专栏WindCoder

通过Mysql数据库批量修改WordPress的URL地址

更换个域名,文章的地址有时不会跟着改变,之前遇到过一次,今天又遇到了,就暂且记录一个以备日后使用,由于网上资源很多,就不在写明原创作者了O(∩_∩)O~(主要是...

3262

扫码关注云+社区

领取腾讯云代金券