Oracle 从10.2.0.1升级到10.2.0.5操作实验(一)

2014-11-24 17:22:17 · 作者: · 浏览: 0

在Oracle 11gR2之前,Oracle普遍采用的是一种增量补丁升级策略。初始安装都是一个比较低的基础版本,比如10.2.0.1或者11.2.0.1,这些都是可以在官方网站上直接下载的版本。之后如果需要进行小版本升级或者特定bug修复,则需要到Oracle官方网站Oracle Support上下载专门的补丁包进行升级。我们常见的10.2.0.5和11.2.0.4都是用这些策略进行升级的。


在升级方面,Oracle官方会推出两个版本的补丁包,CPU和PSU。CPU(Critical Patch Update)是对于其产品每个季度发行的安全补丁,主要是针对产品安全问题隐患的修复。而PSU(Patch Set Update)也是一个季度发行,包括了Bug修复,以及各种被认可低风险补丁。


进入11R2之后,Oracle更新策略有所变化。我们可以直接下载到高版本的PSU包,这些包其实就是全新的Oracle软件包。目前我们安装11.2.0.3和11.2.0.4,都可以直接安装PSU,而不需要从基础版进行升级。


本篇主要想记录下历史,介绍一下从10.2.0.1升级到10.2.0.5的步骤过程,留待需要的朋友待查。说明:本文实验过程中参考了诸多网络资源,特此表示感谢。


1、环境介绍


[oracle@SimpleLinux ~]$ uname -r


2.6.32-431.el6.i686


SQL> select * from v$version;


BANNER


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


Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod


PL/SQL Release 10.2.0.1.0 - Production


CORE 10.2.0.1.0 Production


TNS for Linux: Version 10.2.0.1.0 - Production


NLSRTL Version 10.2.0.1.0 – Production


当前操作系统用户oracle关键环境变量如下:


[oracle@SimpleLinux ~]$ env | grep ORA


ORACLE_SID=ora11g


ORACLE_BASE=/u01/app/oracle


ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1


操作系统存储和内存资源相对充足。


[oracle@SimpleLinux ~]$ df -h


Filesystem Size Used Avail Use% Mounted on


/dev/mapper/vg_simplelinux-LogVol00 29G 8.7G 19G 32% /


tmpfs 448M 0 448M 0% /dev/shm


/dev/sda1 485M 33M 427M 8% /boot


[oracle@SimpleLinux ~]$ free -m


total used free shared buffers cached


Mem: 894 332 561 0 20 241


-/+ buffers/cache: 70 824


Swap: 1999 0 1999


2、备份环境和补丁包准备


首先,我们需要将数据库、监听程序等相关对象进行关闭。根据不同的情况,ASM、DB Control也需要关闭。


[oracle@SimpleLinux ~]$ lsnrctl stop


LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 13-MAY-2014 11:19:04


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


Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))


The command completed successfully


SQL> conn / as sysdba


Connected.


SQL> shutdown immediate;


Database closed.


Database dismounted.


ORACLE instance shut down.


下面需要备份环境。注意:升级过程是有风险的,特别是在生产环境下。两个步骤是降低升级风险的重要策略:多次测试和数据备份。多次测试(在系统测试环境)可以帮助我们事先发现升级方案问题,准备应对策略,验证方案。数据备份可以最大程度减少我们数据损失风险。


具体备份方法针对各自情况不同,可以选择RMAN、冷备份、exp/expdp等。此处笔者选择直接将目录拷贝的完全方法。


[root@SimpleLinux upload]# mkdir /u02


[root@SimpleLinux upload]# cd /u01


[root@SimpleLinux u01]# cp -r * /u02


[root@SimpleLinux u01]#


正式进行动作前,要重新规划确定升级步骤。本次升级要实现两个补丁包,一个是10.2.0.5升级包,另一个是在10.2.0.5上运行的补丁包。在MOS上针对特定版本下载升级安装包,并且上传到服务器上。


[root@SimpleLinux ~]# cd /upload/


[root@SimpleLinux upload]# ls -l


total 1082304


-rw-r--r-- 1 root root 4278863 May 13 11:27 p11724962_10205_LINUX.zip


-rw-r--r-- 1 root root 1103992900 May 13 11:29 p8202632_10205_LINUX.zip –升级10.2.0.5包


注意:我们升级数据库是有两个大的步骤,Oracle软件升级和Oracle数据库升级。可以回想一下我们在安装数据库的时候,是先安装数据库软件(包括Grid、Clusterware),之后创建dbca数据库。升级也是一样,我们需要先把数据库软件更新为最新版本,之后清理已经存在的数据库对象,使之升级为最新版本。


3、Oracle软件升级


我们首先进行软件升级动作,解压安装包。


[root@SimpleLinux upload]# ls -l


total 1082472


drwxr-xr-x 5 root root 4096 Jul 23 2010 Disk1


-rw-r--r-- 1 root root 4278863 May 13 11:27 p11724962_10205_LINUX.zip


-rw-r--r-- 1 root root 1103992900 May 13 11:29 p8202632_10205_LINUX.zip


-rwxrwxrwx 1 root root 165290 Jul 20 2010 README.html


root中给oracle用户授权。


[root@SimpleLinux upload]# cd /


[root@SimpleLinux /]# chown -p oracle:oinstall upload/


chown: invalid o