ITPub博客

首页 > 数据库 > Oracle > Oracle 11.2.0.1 rac 升级到 11.2.0.3 方法

Oracle 11.2.0.1 rac 升级到 11.2.0.3 方法

原创 Oracle 作者:lovehewenyu 时间:2013-09-06 17:48:03 0 删除 编辑

rac upgrade;from 11.2.0.1 to 11.2.0.3

 

总结:

1、   升级 GI and ASM

1-1 、升级 optch version      --(p6880880)

1-2 、打补丁 9413827          -- 注意 : 打补丁前需当前实例执行 rootcrs.pl -unlock

1-3 、 Out of place 升级 GI ; 先升级 ASM 后升级 GI (./runInstaller)

1-3-1: 新目录安装 11.2.0.3 GI 软件

1-3-2: 直接升级 GI ; 执行 rootupgrade.sh 先升级 ASM 后 Oracle cluster

注: rootupgrade.sh 执行其中一个节点成功了,另一个节点 HANG 住或中断这个时间可能会提示你重启,你必须先设置新的 GRID 环境变量

2、   升级 Oracle Database

2-1 、 Out of place 升级 Oracle Database (./runInstaller)

            2-1-1: 新目录安装 11.2.0.3 Database 软件

            2-1-2: 直接升级原有的 RDBMS

 

操作步骤

1. 建立升级所需目录

--oracle 用户

ORACLE_BASE=/u01/app/oracle03

ORACLE_HOME=/u01/app/oracle03/03

mkdir -p /u01/app/oracle03/03

chown oracle:oinstall /u01/app/oracle03/03 -R

chmod 775 /u01/app/oracle03/03 -R

--grid 用户

export ORACLE_HOME=/u01/11.2.0.3

mkdir -p /u01/11.2.0.3

chown grid:oinstall /u01/11.2.0.3 -R

chmod 775 /u01/11.2.0.3 -R

 

2. 检查当前 oracle database 、 oracle clusterware 状态

2-1. 当前 oracle database 版本

select * from v$version;

BANNER

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

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

PL/SQL Release 11.2.0.1.0 - Production

CORE    11.2.0.1.0      Production

TNS for Linux: Version 11.2.0.1.0 - Production

NLSRTL Version 11.2.0.1.0 - Production

2-2. 当前 oracle database 组件

select comp_name,version,status from dba_registry;

COMP_NAME                                VERSION         STATUS

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

OWB                                      11.2.0.1.0      VALID

Oracle Application Express               3.2.1.00.10     VALID

Oracle Enterprise Manager                11.2.0.1.0      VALID

OLAP Catalog                             11.2.0.1.0      VALID

Spatial                                  11.2.0.1.0      VALID

Oracle Multimedia                        11.2.0.1.0      VALID

Oracle XML Database                      11.2.0.1.0      VALID

Oracle Text                              11.2.0.1.0      VALID

Oracle Expression Filter                 11.2.0.1.0      VALID

Oracle Rules Manager                     11.2.0.1.0      VALID

Oracle Workspace Manager                 11.2.0.1.0      VALID

Oracle Database Catalog Views            11.2.0.1.0      VALID

Oracle Database Packages and Types       11.2.0.1.0      VALID

JServer JAVA Virtual Machine             11.2.0.1.0      VALID

Oracle XDK                               11.2.0.1.0      VALID

Oracle Database Java Packages            11.2.0.1.0      VALID

OLAP Analytic Workspace                  11.2.0.1.0      VALID

Oracle OLAP API                          11.2.0.1.0      VALID

Oracle Real Application Clusters         11.2.0.1.0      VALID

19 rows selected.

2-3. 当前 oracle clusterware 版本

[oracle@racdou02 app]$ crsctl query crs softwareversion racdou01

Oracle Clusterware version on node [racdou01] is [11.2.0.1.0]

[oracle@racdou02 app]$ crsctl query crs softwareversion racdou02

Oracle Clusterware version on node [racdou02] is [11.2.0.1.0]

[root@racdou01 ~]# crsctl query crs activeversion

Oracle Clusterware active version on the cluster is [11.2.0.1.0]

2-4. 当前 GI 版本( grid )

select * from v$version;

BANNER

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

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

PL/SQL Release 11.2.0.1.0 - Production

CORE    11.2.0.1.0      Production

TNS for Linux: Version 11.2.0.1.0 - Production

NLSRTL Version 11.2.0.1.0 – Production

 

3. 升级前备份

3-1. 数据库备份 RMAN 全备(省略)

备份 oracle_home,crs_home

tar -zcvf app.tar.gz app/                       -- 压缩

tar -zxvf app.tar.gz                            -- 解压

3-2. 检查 votedisk 和 ocr 备份

[oracle@racdou02 u01]$ crsctl query css votedisk

##  STATE    File Universal Id                File Name Disk group

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

 1. ONLINE   38c99c120ba14f72bf9639a4f409c603 (/dev/asm-data02) [DATA]

Located 1 voting disk(s).

[oracle@racdou02 u01]$ ocrconfig -showbackup

racdou01     2013/08/08 19:14:18     /u01/app/11.2.0/grid/cdata/dou_rac/backup00.ocr

racdou01     2013/08/08 15:14:27     /u01/app/11.2.0/grid/cdata/dou_rac/backup01.ocr

racdou01     2013/08/06 02:45:46     /u01/app/11.2.0/grid/cdata/dou_rac/backup02.ocr

racdou01     2013/08/08 15:14:27     /u01/app/11.2.0/grid/cdata/dou_rac/day.ocr

racdou01     2013/08/05 18:45:44     /u01/app/11.2.0/grid/cdata/dou_rac/week.ocr

PROT-25: Manual backups for the Oracle Cluster Registry are not available

        3-4. 手动备份 OCR

虽然 oracle 可以自动备份,兜兜还是决定手动备份一份, 11gr2 只备份 OCR 就够了

在 Oracle11g R2 中,不必备份 voting disk, 当任何配置发生改变, voting disk

数据会自动备份在 OCR 中,并自动恢复到任何加入的 voting disk 中。

http://space.itpub.net/35489/viewspace-683852

备份 OCR

[root@racdou02 ~]# ocrconfig -export /u01/app/11.2.0/grid/cdata/dou_rac/manual.ocr

恢复 OCR

[root@racdou02 ~]# ocrconfig    -restore /u01/app/11.2.0/grid/cdata/dou_rac/manual.ocr

备份 asmdisk header

select path from v$asm_disk;

[grid@racdou02 dou_rac]$ kfed read /dev/asm-data01 text=/u01/asm-data01-disker

恢复 amdisk header

[grid@racdou02 dou_rac]$ kfed merge /dev/asm-data01 text=/u01/asm-data01-disker

 

以上备份完毕

 

4. 升级前检验(是否满足升级条件)

[grid@racdou01 grid]$ ./runcluvfy.sh stage -pre crsinst -upgrade -n racdou01,racdou02 -rolling -src_crshome $ORACLE_HOME -dest_crshome $ORACLE_HOME -dest_version 11.2.0.3.0 -fixup -fixupdir /tmp -verbose

总结一下检查失败的部分与解决方案

 

正在检查主机配置文件 ...

  节点名            状态                         注释                      

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

  racdou02      失败                         条目无效                    

  racdou01      失败                         条目无效                    

 

ERROR:

PRVF-4190 : 主机配置文件的验证失败

 

解决方案:

注释掉:: 1  成 # :: 1

 

结果 : 节点连接性检查失败

 

 

检查 : "racdou02:/u01/app/11.2.0/grid,racdou02:/u01/tmp" 的 空闲磁盘空间

  路径                 节点名            装载点            可用              必需             状态          

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

  /u01/app/11.2.0/grid  racdou02      /             4.5635GB      7.5GB         失败          

  /u01/tmp          racdou02      /             4.5635GB      7.5GB         失败    

 

解决方案:

Node 2 : grid 用户环境变量中添加一行 export tmpdir=/opt

 

正在检查主目录 "/u01/app/11.2.0/grid" 中的 Oracle 补丁程序 " 9413827" 。

  节点名            已应用                        必需                         注释        

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

  racdou02      缺失                         9413827                   失败        

  racdou01      缺失                         9413827                   失败       

 

此补丁程序所解决的 Bug

9413827

11201 TO 11202 ASM ROLLING UPGRADE - OLD CRS STACK FAILS TO STOP

解决方案:

apply 9413827 patch   11.2.0.1 升级 11.2.0.3 前 oracle 推荐使用 9413827 patch

 

1 、 check patch 9413827 、 opatch version

su - grid

$CRS_HOME/OPatch/opatch lsinventory

su - oracle

$ORACLE_HOME/OPatch/opatch lsinventory

su - grid

$CRS_HOME/OPatch/opatch version

su - oracle

$ORACLE_HOME/OPatch/opatch version

 

2 、 installation p6880880_112000_LINUX.zip, upgrade opatch version ( to 11.2.0.3.4 from 11.1.0.6.6 )

su - root

cd $CRS_HOME

mv OPatch/ OPatch_bk

unzip p6880880_112000_LINUX.zip -d $CRS_HOME

chown grid:oinstall OPatch -R

$CRS_HOME/OPatch/opatch version

 

3 、 installation p9413827_112010_LINUX.zip ( 需要停止升级 GI 节点上的实例 )

su–root

unzip p9413827_112010_LINUX.zip -d $CRS_HOME

chown grid:oinstall 9413827 -R

su–oracle

sh /u01/app/11.2.0/grid/9413827/custom/scripts/prepatch.sh -dbhome $ORACLE_HOME

su–root

/u01/app/11.2.0/grid/crs/install/rootcrs.pl -unlock

su–grid

first applying patch for grid;

cd $CRS_HOME

$CRS_HOME/OPatch/opatch napply -local -oh /u01/app/11.2.0/grid -id 9413827

$CRS_HOME/OPatch/opatch lsinventory

the for database;

su - oracle

$ORACLE_HOME/OPatch/opatch napply /u01/app/11.2.0/grid/9413827/custom/server/ -local -oh $ORACLE_HOME -id 9413827

$ORACLE_HOME/OPatch/opatch lsinventory

su – root

chmod +w /u01/app/11.2.0/grid/log/dou_rac1/agent/

chmod +w /u01/app/11.2.0/grid/log/dou_rac1/agent/crsd/

su–oracle

sh /u01/app/11.2.0/grid/9413827/custom/scripts/postpatch.sh -dbhome $ORACLE_HOME

su–root

/u01/app/11.2.0/grid/crs/install/rootcrs.pl -patch

same setups of others node;

GI and Oracle software patch succeed !

 

分别以 oracle grid 用户验证安装是否成功 !

[grid@racdou01 ~]$ $ORACLE_HOME/OPatch/opatch lsinventory  -oh $ORACLE_HOME

[oracle@racdou01 ~]$ $ORACLE_HOME/OPatch/opatch lsinventory  -oh $ORACLE_HOME

Bugs fixed:

     9413827, 9706490

简要证明这补丁已经安装成功!

 

 

检查 : "shmall" 的 内核参数

  节点名                当前值            已配置            必需             状态             注释          

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

  racdou02          524288        524288        2097152       失败             当前值太低。 配置的值太低。

  racdou01          524288        524288        2097152       失败             当前值太低。 配置的值太低。

结果 :"shmall" 的 内核参数 检查失败

 

解决方案:

vi  /etc/sysctl.conf   

shmall=2097152 通过验证

 

检查 : "cvuqdisk" 的 包存在性

  节点名            可用                         必需                         状态        

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

  racdou02      cvuqdisk-1.0.7-1          cvuqdisk-1.0.9-1          失败        

  racdou01      cvuqdisk-1.0.7-1          cvuqdisk-1.0.9-1          失败        

结果 :"cvuqdisk" 的 包存在性 检查失败

 

解决方案: /u01/tmp/CVU_11.2.0.3.0_grid/runfixup.sh (all nodes)

 

5. 升级 GI

unset ORACLE_HOME

unset ORACLE_BASE

unset ORACLE_SID

export DISPLAY=192.168.1.25:0.0

./runInstaller

rootupgrade.sh 执行前,修改 crsconfig_lib.pm

 

cp $NEW_CRS_HOME/crs/install/crsconfig_lib.pm $NEW_CRS_HOME/crs/install/crsconfig_lib.pm.bak

vi $NEW_CRS_HOME/crs/install/crsconfig_lib.pm

从以上配置文件中修改如下行,并使用 diff 命令确认

From

 @cmdout = grep(/$bugid/, @output);

To

  @cmdout = grep(/(9655006|9413827)/, @output);

From

my @exp_func = qw(check_CRSConfig validate_olrconfig validateOCR

To

my @exp_func = qw(check_CRSConfig validate_olrconfig validateOCR read_file

$ diff crsconfig_lib.pm.orig crsconfig_lib.pm

699c699

< my @exp_func = qw(check_CRSConfig validate_olrconfig validateOCR --- >

my @exp_func = qw(check_CRSConfig validate_olrconfig validateOCR read_file

13277c13277

< @cmdout = grep(/$bugid/, @output); --- > @cmdout = grep(/(9655006|9413827)/, @output);

cp /g01/11.2.0.2/grid/crs/install/crsconfig_lib.pm /g01/11.2.0.2/grid/crs/install/crsconfig_lib.pm.bak

并在所有节点上复制该配置文件

scp /g01/11.2.0.2/grid/crs/install/crsconfig_lib.pm vrh2:/g01/11.2.0.2/grid/crs/install/crsconfig_lib.pm

 

 

附表:

软件包列表

p6880880_112000_LINUX.zip

p9413827_112010_LINUX.zip

p10404530_112030_LINUX_1of7.zip

p10404530_112030_LINUX_2of7.zip

p10404530_112030_LINUX_3of7.zip

/opt/CVU_11.2.0.3.0_grid/runfixup.sh

 

 

rootupgrade.sh 记录

[root@racdou01 install]# /u01/11.2.0.3/ rootupgrade.sh

Performing root user operation for Oracle 11g

 

The following environment variables are set as:

    ORACLE_OWNER= grid

    ORACLE_HOME=  /u01/11.2.0.3

 

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

Creating y directory...

   Copying dbhome to y ...

   Copying oraenv to y ...

   Copying coraenv to y ...

 

Entries will be added to the /etc/oratab file as needed by

Database Configuration Assistant when a database is created

Finished running generic part of root script.

Now product-specific root actions will be performed.

Using configuration parameter file: /u01/11.2.0.3/crs/install/crsconfig_params

Creating trace directory

 

ASM 升级已在第一个节点上开始。

 

CRS-2791: 正在启动用于关闭 'racdou01' 上 Oracle High Availability Services 管理的资源的操作

CRS-2673: 尝试停止 'ora.crsd' ( 在 'racdou01' 上 )

CRS-2790: 正在启动关闭 'racdou01' 上集群就绪服务管理的资源的操作

CRS-2673: 尝试停止 'ora.LISTENER.lsnr' ( 在 'racdou01' 上 )

CRS-2673: 尝试停止 'ora.racdou.db' ( 在 'racdou01' 上 )

CRS-2673: 尝试停止 'ora.registry.acfs' ( 在 'racdou01' 上 )

CRS-2673: 尝试停止 'ora.LISTENER_SCAN1.lsnr' ( 在 'racdou01' 上 )

CRS-2677: 成功停止 'ora.registry.acfs' ( 在 'racdou01' 上 )

CRS-2677: 成功停止 'ora.LISTENER_SCAN1.lsnr' ( 在 'racdou01' 上 )

CRS-2673: 尝试停止 'ora.scan1.vip' ( 在 'racdou01' 上 )

CRS-2677: 成功停止 'ora.LISTENER.lsnr' ( 在 'racdou01' 上 )

CRS-2673: 尝试停止 'ora.racdou01.vip' ( 在 'racdou01' 上 )

CRS-2677: 成功停止 'ora.scan1.vip' ( 在 'racdou01' 上 )

CRS-2672: 尝试启动 'ora.scan1.vip' ( 在 'racdou02' 上 )

CRS-2677: 成功停止 'ora.racdou01.vip' ( 在 'racdou01' 上 )

CRS-2672: 尝试启动 'ora.racdou01.vip' ( 在 'racdou02' 上 )

CRS-2676: 成功启动 'ora.scan1.vip' ( 在 'racdou02' 上 )

CRS-2676: 成功启动 'ora.racdou01.vip' ( 在 'racdou02' 上 )

CRS-2672: 尝试启动 'ora.LISTENER_SCAN1.lsnr' ( 在 'racdou02' 上 )

CRS-2676: 成功启动 'ora.LISTENER_SCAN1.lsnr' ( 在 'racdou02' 上 )

CRS-2677: 成功停止 'ora.racdou.db' ( 在 'racdou01' 上 )

CRS-2673: 尝试停止 'ora.DATA.dg' ( 在 'racdou01' 上 )

CRS-2677: 成功停止 'ora.DATA.dg' ( 在 'racdou01' 上 )

CRS-2673: 尝试停止 'ora.asm' ( 在 'racdou01' 上 )

CRS-2677: 成功停止 'ora.asm' ( 在 'racdou01' 上 )

CRS-2673: 尝试停止 'ora.eons' ( 在 'racdou01' 上 )

CRS-2673: 尝试停止 'ora.ons' ( 在 'racdou01' 上 )

CRS-2677: 成功停止 'ora.ons' ( 在 'racdou01' 上 )

CRS-2673: 尝试停止 'ora.net1.network' ( 在 'racdou01' 上 )

CRS-2677: 成功停止 'ora.net1.network' ( 在 'racdou01' 上 )

CRS-2677: 成功停止 'ora.eons' ( 在 'racdou01' 上 )

CRS-2792: 关闭 'racdou01' 上集群就绪服务管理的资源的操作已完成

CRS-2677: 成功停止 'ora.crsd' ( 在 'racdou01' 上 )

CRS-2673: 尝试停止 'ora.cssdmonitor' ( 在 'racdou01' 上 )

CRS-2673: 尝试停止 'ora.ctssd' ( 在 'racdou01' 上 )

CRS-2673: 尝试停止 'ora.evmd' ( 在 'racdou01' 上 )

CRS-2673: 尝试停止 'ora.asm' ( 在 'racdou01' 上 )

CRS-2673: 尝试停止 'ora.drivers.acfs' ( 在 'racdou01' 上 )

CRS-2673: 尝试停止 'ora.mdnsd' ( 在 'racdou01' 上 )

CRS-2677: 成功停止 'ora.cssdmonitor' ( 在 'racdou01' 上 )

CRS-2677: 成功停止 'ora.evmd' ( 在 'racdou01' 上 )

CRS-2677: 成功停止 'ora.ctssd' ( 在 'racdou01' 上 )

CRS-2677: 成功停止 'ora.mdnsd' ( 在 'racdou01' 上 )

CRS-2677: 成功停止 'ora.drivers.acfs' ( 在 'racdou01' 上 )

CRS-2677: 成功停止 'ora.asm' ( 在 'racdou01' 上 )

CRS-2673: 尝试停止 'ora.cssd' ( 在 'racdou01' 上 )

CRS-2677: 成功停止 'ora.cssd' ( 在 'racdou01' 上 )

CRS-2673: 尝试停止 'ora.gpnpd' ( 在 'racdou01' 上 )

CRS-2673: 尝试停止 'ora.diskmon' ( 在 'racdou01' 上 )

CRS-2677: 成功停止 'ora.gpnpd' ( 在 'racdou01' 上 )

CRS-2673: 尝试停止 'ora.gipcd' ( 在 'racdou01' 上 )

CRS-2677: 成功停止 'ora.gipcd' ( 在 'racdou01' 上 )

CRS-2677: 成功停止 'ora.diskmon' ( 在 'racdou01' 上 )

CRS-2793: 关闭 'racdou01' 上 Oracle High Availability Services 管理的资源的操作已完成

CRS-4133: Oracle High Availability Services has been stopped.

OLR initialization - successful

Replacing Clusterware entries in inittab

clscfg: EXISTING configuration version 5 detected.

clscfg: version 5 is 11g Release 2.

Successfully accumulated necessary OCR keys.

Creating OCR keys for user 'root', privgrp 'root'..

Operation successful.

Configure Oracle Grid Infrastructure for a Cluster ... succeeded

You have new mail in /var/spool/mail/root

 

另一个节点执行 rootupgrade.sh ,可能出现 HANG 住,或是中断情况

1、   不要害怕,先设置 GRID 新的环境变量

2、   crsctl query crs activeversion

Oracle Clusterware active version on the cluster is [11.2.0.3.0]  表示 GI 升级成功,可能你会问我 ASM 怎么办,刚才的执行的节点已经说明了 ASM 已经升级成功了!所以忽略即可

3 、设置新的环境变量

 

6. 升级 Oracle database

unset ORACLE_HOME

unset ORACLE_BASE

unset ORACLE_SID

export DISPLAY=192.168.1.25:0.0

./runInstaller

设置新的环境变量

 

7. 检验升级结果

su – oracle

select * from v$version;

select comp_name,version,status from dba_registry;

su – grid

select * from v$version;

crsctl query crs softwareversion racdou01

crsctl query crs softwareversion racdou02

crsctl query crs activeversion

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

请登录后发表评论 登录
全部评论
10年金融行业老鸟。Oracle,Mysql,PostgreSQL,EMC 存储,NBU备份。微信/电话 18211103995

注册时间:2012-02-03

  • 博文量
    307
  • 访问量
    1528522