oracle patch版本,oracle小版本升级patch过程和分析

看过很多篇关于oracle数据库升级的文章,也做过相应的测试和生产环境中的实施,下面自己动手测试的一则比较完整的数据库的10.2.0.1升级到10.2.0.5的步奏和分析,虽然不是很难,但是还是愿意分析一下自己的思路。当然这种实施的还是推荐大家自己多动手,相信很快能掌握其中的要领

[root@localhost ~]# df -h

FilesystemSizeUsed Avail Use% Mounted on

/dev/sda112G8.5G 2.7G77% /

/dev/sda21.9G40M1.8G3% /home

tmpfs385M0385M0% /dev/shm

/dev/sdb14.6G1.3G3.2G28% /backup

[root@localhost ~]# cd /backup/

[root@localhost backup]# ls

Disk1lost+foundREADME.html

上述的Disk1是下载的10.2.0.5的patch,oracle官网可能已经停止了oracle 10g相关方面的下载,有mos的可以直接从mos上download下来。

废话一点自己的习惯:

个人有个习惯,做实施方面可能第一次我会严格参照文档上面来做,主要是保证其成功即可,而后自己还是喜欢去分析为什么要这么做,可能有自己的办法可能也会同意大家的做法,想想自己从linux上安装oracle,rac、asm等实施,懂得其中的缘由脱离文档也是一个非常容易的事情。

升级数据库当然需要对数据库软件进行升级,而后对数据库的数据文件进行相应的update,软件升级前我们要备份oracle的软件,那么数据文件update当然需要备份其数据,那么可以考虑的就有两种了冷备和热备。

软件备份

[root@localhost backup]# su - oracle

[oracle@localhost ~]$ sqlplus /nolog

SQL*Plus: Release 10.2.0.1.0 - Production on Thu Sep 6 10:36:55 2012

Copyright (c) 1982, 2005, Oracle.All rights reserved.

[oracle@localhost ~]$ cd $ORACLE_HOME

[oracle@localhost db_1]$ pwd

/db/oracle/oracle/product/10.2.0/db_1

[oracle@localhost db_1]$ tar -cvzf ora_home.tar.gz ./

软件升级主要是对ORACLE_HOME下的文件进行修改,先对其打tar包。

数据文件备份:

需要备份的文件主要是spfile、controlfile、datafile,如果是采取的冷备份方式直接cp的方式备份数据文件所在的目录即可,而如果是热备,则需要备份controlfile和datafile以及备份的control中未完全记录的archivelog。

RMAN> run{

2> allocate channel disk1 type disk;

3> delete obsolete;

4> crosscheck backup;

5> delete expired backup;

6> backup database format '/backup/db_%d_%T_%s'

7> plus archivelog delete all input format '/backup/arch_%d_%T_%s';

8> backup current controlfile format '/backup/ctl_%d_%T_%s';

9> release channel disk1;

10> }

上述是自己经常用的全备份脚本。

接下来正常关闭数据库,此时buffer cache中的数据已经全部sync到disk中去,接下来可以放心的升级了!

RMAN> shutdown immediate;

升级软件前请先关闭所有使用ORACLE_HOME下面的对象的进程,不然后续可能无法正常打patch。

这里也可以利用oracle 10R2中的restore point功能来实现升级,由于生产库一般是不开启flashback database。

SQL>shutdown immediate;

SQL>startup mount;

SQL>create restore point upgrade guarantee flashback database;

这里创建一个restore point upgrade,而后如果升级失效可以直接回退这个点,这样也就不需要备份数据文件和控制文件了,restore point是记录在控制文件中,而后相应的记录改变都会记录在闪回区中,所以需要保证闪回恢复区的容量足够大,相对于rman的恢复更节省了时间(不需要restore数据文件)。

升级软件完毕后需要用upgrade启动数据库,运行相应的数据字典更新和编译失效的系统对象。

[oracle@localhost ~]$ cd /db/oracle/oracle/product/10.2.0/db_1/rdbms/admin/

[oracle@localhost admin]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.5.0 - Production on Thu Sep 6 23:06:17 2012

Copyright (c) 1982, 2010, Oracle.All Rights Reserved.

Connected to an idle instance.

SQL> startup upgrade;

ORACLE instance started.

Total System Global Area524288000 bytes

Fixed Size1274668 bytes

Variable Size272633044 bytes

Database Buffers247463936 bytes

Redo Buffers2916352 bytes

Database mounted.

Database opened.

SQL>spool ‘/tmp/catupgrd.log’

SQL>start catupgrd.sql

更新数据字典,此过程比较漫长,适当的增加shared pool和java pool网络上说是可以增加更新速度,不过一般生产环境中肯定的是足够的。

SQL>spool off;

SQL>shutdown immediate;

编译失效的对象

SQL>startup;

SQL>start utltp.sql

SQL>start catalog.sql

SQL>start catproc.sql

检查是否正常升级

SQL> col comp_name for a30

SQL> col version for a20

SQL> select comp_name,version from dba_registry;

SQL> select comp_name,version from dba_registry;

COMP_NAMEVERSION

------------------------------ --------------------

Oracle Database Catalog Views10.2.0.50

Oracle Database Packages and T 10.2.0.5.0

ypes

Oracle Workspace Manager10.2.0.5.0

JServer JAVA Virtual Machine10.2.0.5.0

Oracle XDK10.2.0.5.0

……

升级全部完成,如果其中出现了不可预料的错误,我们至少可以正常回退软件和数据文件,不会影响系统的使用。[@more@]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值