ITPub博客

首页 > 数据库 > Oracle > 从10.2.0.1升级到10.2.0.5操作实验(上)

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

Oracle 作者:dbhelper 时间:2014-11-29 15:19:10 0 删除 编辑

 

日常升级、打补丁是系统运维人员经常面对的工作项目。很多情况下,升级数据库和打补丁是解决Oracle Bug的终极策略。

在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、环境介绍

 

我们已经在Redhat 6.5上成功安装Oracle 10gR2,版本号为10.2.0.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 option -- 'p'

Try `chown --help' for more information.

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

[root@SimpleLinux /]#

 

升级软件是在图形化界面中进行,所需要配置XWindows或者vnc界面工具。执行目录中的.runInstall脚本,就可以启动界面。如果环境变量配置正常,自动Path都会带入到界面中。

 

 

大部分操作,都是点击Next确认过程。下面是验证操作系统环境信息,是否满足安装条件。

 

安装过程,界面和工作内容和一般安装Oracle没有过多差异。

 

最后需要以root用户手工执行脚本。

 

执行root.sh中,有一些覆盖的确认,建议覆盖。

 

[root@SimpleLinux ~]# cd /u01/app/oracle/product/10.2.0/db_1/

[root@SimpleLinux db_1]# ./root.sh

Running Oracle 10g root.sh script...

 

The following environment variables are set as:

    ORACLE_OWNER= oracle

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

 

Enter the full pathname of the local bin directory: [/usr/local/bin]:

The file "dbhome" already exists in /usr/local/bin.  Overwrite it? (y/n)

[n]: y

(篇幅原因,有省略……)

Now product-specific root actions will be performed.

 

如果没有明确的报错信息,就说明Oracle软件部分的安装成功。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/8494287/viewspace-1351115/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2017-10-14

  • 博文量
    651
  • 访问量
    392236