Upgrade 10gr2 RAC to 11gr2 RAC – Fung’s DBA World

2025-10-02ASM / Linux/AIX / Oracle / RAC / RMAN / 性能优化

April 06, 2014 本文演示了如何从10gr2 RAC升级至11gr2 RAC,示例中的10g版本为10.2.0.4,可以直接升级至11.2.0.4。11g升级路径如下:

  • 直接升级路径:9.2.0.8 +,10.1.0.5+,10.2.0.2+,11.1.0.6+
  • 9.0.1.3=>9.0.1.4=>10.2.0.4=>11.2
  • 9.2.0.3=>9.2.0.8=>11.2
  • 一些语法及惯用语说明: ORACLE_HOMEORACLE_BASE:Database软件安装目录

GRID_HOME:11g Grid Infrastructure软件安装目录

CRS_HOME:10g Clusterware安装目录

  • 以#开头表示root用户执行,以$表示grid或者oracle用户执行,SQL> 则表示SQL*Plus执行。 在升级前,有些地方需要注意:
  • CRS必须在DB前升级
  • 11g新版本带来很多改变,10g中的CRS和ASM HOME均不存在了,而是集中到同一个地方:GRID_HOME,同时也引进了SCAN的概念
  • Raw Device在RAC升级中,仍旧支持OCR及Voting disk,但在全新的安装中,已经不支持裸设备存储OCR及Voting Disk了
  • 在11g中,GI的安装及管理用户单独分离出来,常见以grid命名。虽然仍然可以用同一用户安装维护,但Oracle强烈建议分开。
  • 在以前的版本中,ORACLE_HOME都在ORACLE_BASE目录下,但是在11g RAC中,GRID_HOME则不是在GRID_BASE中,两者是在同一级目录下。ORACLE_HOME则还是在ORACLE_BASE下。
  • 11g以后patch是和base一起的,因此不需要跟10g一样先安装base版本再打补丁。
  • 本次实验升级方法:以非滚动升级方式升级。 升级前后信息对比如下,在升级前,先要创建grid用户,创建相关目录并且赋权。 在两个节点执行相同内容。 #创建grid用户,添加环境变量

创建相关目录并且授权 #添加grid用户ssh等效性 验证并且通过测试。 本例中SCAN的名字为rac-scan.oraclema.com。IP地址如下: 在11gr2中,取消Linux自带的ntpd时间服务,而采用Oracle自带的CTSS(Cluster Time Synchronization Service)服务。因此,ntpd需要停止,以免造成冲突导致集群无法同步。 两个节点的ntpd已经停止,10g的环境是采用rdate同步。直接屏蔽即可,同时移除ntp设定文档。 在升级前先做好备份,可以用于紧急回退。需要备份的数据有OCR,Votiedisk,ORACLE_HOME目录,CRS_HOME目录及数据库RMAN备份。 注意,OCR备份方式也可以使用Oracle自带命令。 RMAN全备数据库: 如果有EM,需要停止EM。如有需要,可以关闭归档。 为了安装11g GI,需要屏蔽掉10g的CRS,否则两者会有冲突。滚动升级不需要此步骤。 以grid用户执行安装 export CVUQDISK_GRP=oinstall 以root用户执行输出脚本 安装完成以root用户执行/u01/app/11gr2/grid/root.sh脚本。脚本完成后,11gr2的高可用服务(CRS,CSS及EVMD)就起来了。 以上为整个GI集群状态。 将原来数据文件存放的ASM磁盘迁移至11gr2 GI管理。先用grid用户调用asmca,利用asmca挂载原有磁盘组DATA1,这样,DATA1磁盘组就能自动在GI里面注册了。 以oracle用户安装11gr2软件至NEW ORACLE_HOME目录,建议的做法是备份原先的profile,重新使用新的profile,主要修改ORACLE_HOME变量: 安装完成后,两个节点复制相关到11G目录下 修改初始化文件,由于10G的rac spfile在共享磁盘上,因此,先需要从ASM中复制到文件系统,这一步可以在停止CRS前做。 移除11g废弃参数,如background_dump_dest,user_dump_dest等,改为11g的diagnostic_dest。修改版本兼容号compatible,修改cluster_database=false。屏蔽掉监听参数。修改后对比如下: 添加11g HOME目录到/etc/oratab orcl:/u01/app/oracle/product/11.2.0/db_1:N 在run上述脚本时候报了一个错误: 为timezone的问题,MOS上解决方法,ID 1466464.1: 再次执行升级脚本: 升级完后,会自动关闭数据库,以正常模式启动数据库,并执行以下查询: 重启数据库,创建spfile,同时修改initorcl1.ora为以下内容: 通过srvctl启动集群数据库,并查看状态:

  • 1.升级前准备
  • 1.1.升级前信息收集
  • ![](Upgrade%2010gr2%20RAC%20to%2011gr2%20RAC%20-%20Fung's%20DBA%20World.resources/A4A50A77-8D79-48F6-91B8-11D38DA727F3.jpg)
  • 1.2.创建相关目录

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

[root@oel1:/u01/app]# useradd -u 54322 grid -g oinstall -G dba
[root@oel1:/u01/app]# cat /home/grid/.bash_profile
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_SID=+ASM1
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/11gr2/grid
export JAVA_HOME=$ORACLE_HOME/jdk
export ORACLE_TERM=xterm
export NLS_DATE_FORMAT="yyyy-mm-dd Hh34:MI:SS"
export ORA_NLS11=$ORACLE_HOME/nls/data
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export PATH=/usr/sbin:$ORACLE_HOME/bin:$JAVA_HOME:$PATH
export PS1='[$LOGNAME@$HOSTNAME:$PWD]$ '
umask 022
export DISPLAY=192.168.56.1:0.0

:—

1 2 3 4 5 6 7

[root@oel1:/u01/app]# mkdir -p /u01/app/grid/ 
[root@oel1:/u01/app]# mkdir -p /u01/app/11gr2/grid 
[root@oel1:/u01/app]# chown -R grid:oinstall grid/ 
[root@oel1:/u01/app]# chown -R grid:oinstall 11gr2/ 
[grid@oel2:/u01/app]$ chmod g+w grid/ 
[grid@oel2:/u01/app]$ chmod g+w 11gr2/ 
[oracle@oel2:/u01/app/oracle/product]$ mkdir -p /u01/app/oracle/product/11gr2

:—

1 2 3 4 5 6 7 8 9 10

[grid@oel1:/home/grid]$ mkdir -p ~/.ssh 
[grid@oel1:/home/grid]$ mkdir -p ~/.ssh 
[grid@oel1:/home/grid]$ ssh-keygen -t rsa 
[grid@oel1:/home/grid]$ ssh-keygen -t dsa 
[grid@oel1:/home/grid]$ cd .ssh 
[grid@oel1:/home/grid/.ssh]$ touch authorized_keys 
[grid@oel1:/home/grid/.ssh]$ cat ~/.ssh/*.pub >>authorized_keys  
[grid@oel1:/home/grid/.ssh]$ ssh oel1 cat ~/.ssh/id_rsa.pub >>authorized_keys 
[grid@oel1:/home/grid/.ssh]$ ssh oel2 cat ~/.ssh/id_rsa.pub >>authorized_keys 
[grid@oel1:/home/grid/.ssh]$ scp authorized_keys oel2:.ssh/authorized_keys

:—

  • 1.3.验证安装条件

1 2 3 4 5 6 7 8 9 10 11 12

#查看rpm包是否齐全: 
[root@oel1:/u01/app]# rpm -q binutils compat-libstdc++-33 elfutils-libelf  
elfutils-libelf-devel elfutils-libelf-devel-static  
gcc gcc-c++ glibc glibc-common glibc-devel  
glibc-headers kernel-headers ksh libaio libaio-devel  
libgcc libgomp libstdc++ libstdc++-devel make  
numactl-devel sysstat unixODBC unixODBC-devel 
#将没安装的包安装上: 
[root@oel1:/u01/app]# mount /dev/cdrom /mnt 
[root@oel1:/u01/app]# yum install -y numactl-devel 
#两个节点安装cvu包: 
[root@oel1:/u01/worktmp/11gr2/grid/rpm]# rpm -ivh cvuqdisk-1.0.9-1.rpm

:—

  • 1.4.SCAN DNS设置

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21

[root@oel2:/u01/app]# cat /etc/hosts 
# Do not remove the following line, or various programs 
# that require network functionality will fail. 
127.0.0.1               localhost.localdomain localhost 
#Public  
192.168.56.123  oel1.oraclema.com       oel1 
192.168.56.124  oel2.oraclema.com       oel2 
#Vip 
192.168.56.125  orcl1-vip.oraclema.com  orcl1-vip 
192.168.56.126  orcl2-vip.oraclema.com  orcl2-vip 
#Private 
10.10.56.123    orcl1-prv 
10.10.56.124    orcl2-prv 
#11gr2 SCAN 
#192.168.56.120 rac-scan.oraclema.com   rac-scan 
#192.168.56.121 rac-scan.oraclema.com   rac-scan 
#192.168.56.122 rac-scan.oraclema.com   rac-scan 

:—

  • 因在DNS中已经存在rac-scan的解析,因此/etc/hosts文件中取消此解析。11gr2 SCAN DNS简单设置请参照前文: 11gr2 RAC SCAN DNS Configuration
  • 1.5.NTP时间设置

1 2

[root@oel2:/u01/app]# /etc/init.d/ntpd status 
ntpd is stopped 

:—

1 2 3

[root@oel2:/u01/app]# crontab -l 
*/1 * * * * rdate -s 192.168.56.123 
[root@oel1:/root]#  mv /etc/ntp.conf /etc/ntp.conf.org 

:—

  • 1.6.创建GI使用的ASM磁盘组

1 2 3 4 5 6 7 8 9 10 11

[root@oel1:/root]# /etc/init.d/oracleasm createdisk OCR1 /dev/sdh1 
Marking disk "OCR1" as an ASM disk: [  OK  ] 
[root@oel1:/root]# /etc/init.d/oracleasm createdisk OCR2 /dev/sdi1 
Marking disk "OCR2" as an ASM disk: [  OK  ] 
[root@oel1:/root]# /etc/init.d/oracleasm createdisk OCR3 /dev/sdj1 
Marking disk "OCR3" as an ASM disk: [  OK  ] 
[root@oel2:/root]# /etc/init.d/oracleasm listdisks 
OCR1 
OCR2 
OCR3 
DATA1

:—

  • 1.7.备份数据库

1 2 3 4 5 6 7 8 9

#节点1: 
[root@oel1:/backup]# dd if=/dev/raw/raw1 of=./ocr_disk_10gr2.bk 
401562+0 records in 
401562+0 records out 
205599744 bytes (206 MB) copied, 214.279 seconds, 959 kB/s 
[root@oel1:/backup]# dd if=/dev/raw/raw3 of=votedisk_10gr2.bk 
401562+0 records in 
401562+0 records out 
205599744 bytes (206 MB) copied, 233.01 seconds, 882 kB/s

:—

1

[root@oel1:/backup]# /u01/app/oracle/product/crs/bin/ocrconfig -export /backup/ocr.dmp

:—

1 2 3 4 5 6 7

#备份软件HOME目录: 
[root@oel1:/backup]# tar -cvzf oel1.crs.tgz /u01/app/oracle/product/crs/* 
[root@oel1:/backup]# tar -cvzf oel1.db.tgz /u01/app/oracle/product/10.2.0/db_1/* 
[root@oel1:/backup]# cp /etc/inittab etc_inittab 
[root@oel1:/backup]# mkdir ./etc_init.d/ 
[root@oel1:/backup]# cp /etc/init.d/init.* ./etc_init.d/ 
[root@oel1:/backup]# tar -cvzf oel1.etcoracle.tgz /etc/oracle/*

:—

1 2 3 4 5 6 7

#节点2: 
[root@oel2:/backup]# tar -cvzf oel2.crs.tgz /u01/app/oracle/product/crs/* 
[root@oel2:/backup]# tar -cvzf oel2.db.tgz /u01/app/oracle/product/10.2.0/db_1/* 
[root@oel2:/backup]# tar -cvzf oel2.etcoracle.tgz /etc/oracle/* 
[root@oel2:/backup]# cp /etc/inittab /backup/etc_inittab 
[root@oel2:/backup]# mkdir -p /backup/etc_init.d/ 
[root@oel2:/backup]# cp /etc/init.d/init* /backup/etc_init.d/

:—

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

run { 
ALLOCATE CHANNEL ch00 TYPE DISK; 
ALLOCATE CHANNEL ch01 TYPE DISK; 
sql 'alter system archive log current'; 
BACKUP  
AS BACKUPSET  
SKIP INACCESSIBLE 
TAG hot_db_bk_level0 FORMAT '/backup/rman/bk_%s_%p_%U_%T_%d' 
FULL  DATABASE; 
sql 'alter system archive log current'; 
sql 'alter system archive log current'; 
sql 'alter system archive log current'; 
backup archivelog all delete input format '/backup/rman/arch_%U_%T_%d'; 
backup current controlfile tag 'ctl' format '/backup/rman/ctl_%U_%T_%d'; 
RELEASE CHANNEL ch00; 
RELEASE CHANNEL ch01; 
}

:—

1

emctl stop dbconsole

:—

  • 2.非滚动升级
  • 2.1.关闭CRS

1 2

[root@oel1:/root]# /u01/app/oracle/product/crs/bin/crsctl stop crs 
[root@oel2:/root]# /u01/app/oracle/product/crs/bin/crsctl stop crs

:—

  • 2.2.重命名CRS相关文件及目录

1 2 3 4 5 6

[root@oel1:/root]# mv /etc/oracle /etc/oracle_orig 
[root@oel1:/root]# mkdir /etc/init.d/bk 
[root@oel1:/root]# mv /etc/init.d/init* /etc/init.d/bk 
[root@oel2:/root]# mv /etc/oracle /etc/oracle_orig 
[root@oel2:/root]# mkdir /etc/init.d/bk 
[root@oel2:/root]# mv /etc/init.d/init* /etc/init.d/bk

:—

  • 2.3.两个节点屏蔽/etc/inittab中RAC启动相关选项

1 2 3 4 5 6

[root@oel2:/backup]# tail -5 /etc/inittab 
# Run xdm in runlevel 5
x:5:respawn:/etc/X11/prefdm -nodaemon
#h1:35:respawn:/etc/init.d/init.evmd run >/dev/null 2>&1 </dev/null
#h3:35:respawn:/etc/init.d/init.cssd fatal >/dev/null 2>&1 </dev/null
#h4:35:respawn:/etc/init.d/init.crsd run >/dev/null 2>&1 </dev/null

:—

  • 2.4.删除网络接口文件

1 2 3 4

[root@oel1:/root]# rm -rf /var/tmp/.oracle 
[root@oel2:/root]# rm -rf /var/tmp/.oracle 
[root@oel2:/root]# rm -rf /tmp/.oracle/ 
[root@oel1:/root]# rm -rf /tmp/.oracle/ 

:—

  • 2.5.重启系统

1 2

[root@oel1:/root]# shutdown -ry 0 
[root@oel2:/root]# shutdown -ry 0 

:—

  • 3.安装Grid Infrastructure

1 2 3

#安装前检查: 
[grid@oel1:/u01/worktmp/11gr2/grid]$ ./runcluvfy.sh stage -pre crsinst  
-n oel1,oel2 -fixup -fixupdir /home/grid/ -verbose 

:—

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

#安装步骤: 
[grid@oel1:/u01/worktmp/11gr2/grid]$ ./runInstaller 
Download Software Update:Skip 
Select Installation Option: Install and Configure Grid Infrastructure for a Cluster 
Select Installation Type:Advanced Installation 
Select Product Language: English & Simplified Chinese 
Grid Plug and Play Information: 
 Cluster Name:orcl 
 SCAN Name:rac-scan 
 SCAN port:1521 
Cluster Node Information: refer to /etc/hosts 
Specify Network Interface Usage: 
Storage Option Information:ASM 
Create ASM Disk Group: 
 DG Name:CRS 
 Redundency:Normal 
 Change Discovery Path:/dev/oracleasm/disks/* 
Specify ASM Password: 
Failure Isolation Support: Do not use IPMI 
Privileged OS Group:default 
Specify Installation Home: 
 Oracle Base:/u01/app/grid 
 Software Location:/u01/app/11gr2/grid

:—

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49

#确认GI集群状态: 
[grid@oel1:/worktmp/11g/grid]$ crsctl query crs activeversion 
Oracle Clusterware active version on the cluster is [11.2.0.4.0] 
[grid@oel1:/worktmp/11g/grid]$ crsctl query crs softwareversion 
Oracle Clusterware version on node [oel1] is [11.2.0.4.0] 
[grid@oel1:/worktmp/11g/grid]$ ocrcheck 
Status of Oracle Cluster Registry is as follows : 
         Version                  :          3 
         Total space (kbytes)     :     262120 
         Used space (kbytes)      :       2832 
         Available space (kbytes) :     259288 
         ID                       : 1417014589 
         Device/File Name         :       +CRS 
                                    Device/File integrity check succeeded 
                                   Device/File not configured 
                                   Device/File not configured 
                                   Device/File not configured 
                                   Device/File not configured 
        Cluster registry integrity check succeeded 
        Logical corruption check bypassed due to non-privileged user 
[grid@oel1:/worktmp/11g/grid]$ crsctl query css votedisk 
##  STATE    File Universal Id                File Name Disk group 
--  -----    -----------------                --------- --------- 
 1. ONLINE   3756bd45b9214f22bf4f45e87da09fa8 (/dev/oracleasm/disks/OCR1) [CRS] 
 2. ONLINE   2968da754a974fc1bf86b19fb18afad5 (/dev/oracleasm/disks/OCR2) [CRS] 
 3. ONLINE   2e7ea902e0514f97bf258b70d975a9b6 (/dev/oracleasm/disks/OCR3) [CRS] 
Located 3 voting disk(s). 
[root@oel1:/root]# /u01/app/11gr2/grid/bin/crsctl stat res -t 
[root@oel1:/root]# /u01/app/11gr2/grid/bin/crsctl check cluster -all 
************************************************************** 
oel1: 
CRS-4537: Cluster Ready Services is online 
CRS-4529: Cluster Synchronization Services is online 
CRS-4533: Event Manager is online 
************************************************************** 
oel2: 
CRS-4537: Cluster Ready Services is online 
CRS-4529: Cluster Synchronization Services is online 
CRS-4533: Event Manager is online 
************************************************************** 
[root@oel1:/root]# /u01/app/11gr2/grid/bin/crsctl check ctss 
CRS-4701: The Cluster Time Synchronization Service is in Active mode. 
CRS-4702: Offset (in msec): 0

:—

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85

#确认集群状态无误后查看监听配置情况: 
[grid@oel2:/home/grid]$ srvctl config listener -l listener 
Name: LISTENER 
Network: 1, Owner: grid 
Home: <crs home>
End points: TCP:1521 
[grid@oel2:/home/grid]$ crs_stat -t 
Name           Type           Target    State     Host         
------------------------------------------------------------ 
ora....ER.lsnr ora....er.type ONLINE    ONLINE    oel1         
ora....N1.lsnr ora....er.type ONLINE    ONLINE    oel2         
ora....N2.lsnr ora....er.type ONLINE    ONLINE    oel1         
ora....N3.lsnr ora....er.type ONLINE    ONLINE    oel1         
ora.OCR.dg     ora....up.type ONLINE    ONLINE    oel1         
ora.asm        ora.asm.type   ONLINE    ONLINE    oel1         
ora.cvu        ora.cvu.type   ONLINE    ONLINE    oel1         
ora.gsd        ora.gsd.type   OFFLINE   OFFLINE                
ora....network ora....rk.type ONLINE    ONLINE    oel1         
ora.oc4j       ora.oc4j.type  ONLINE    ONLINE    oel1         
ora....SM1.asm application    ONLINE    ONLINE    oel1         
ora....L1.lsnr application    ONLINE    ONLINE    oel1         
ora.oel1.gsd   application    OFFLINE   OFFLINE                
ora.oel1.ons   application    ONLINE    ONLINE    oel1         
ora.oel1.vip   ora....t1.type ONLINE    ONLINE    oel1         
ora....SM2.asm application    ONLINE    ONLINE    oel2         
ora....L2.lsnr application    ONLINE    ONLINE    oel2         
ora.oel2.gsd   application    OFFLINE   OFFLINE                
ora.oel2.ons   application    ONLINE    ONLINE    oel2         
ora.oel2.vip   ora....t1.type ONLINE    ONLINE    oel2         
ora.ons        ora.ons.type   ONLINE    ONLINE    oel1         
ora....ry.acfs ora....fs.type ONLINE    ONLINE    oel1         
ora.scan1.vip  ora....ip.type ONLINE    ONLINE    oel2         
ora.scan2.vip  ora....ip.type ONLINE    ONLINE    oel1         
ora.scan3.vip  ora....ip.type ONLINE    ONLINE    oel1         
[grid@oel2:/home/grid]$ crsctl stat res -t 
-------------------------------------------------------------------------------- 
NAME           TARGET  STATE        SERVER                   STATE_DETAILS        
-------------------------------------------------------------------------------- 
Local Resources 
-------------------------------------------------------------------------------- 
ora.LISTENER.lsnr 
               ONLINE  ONLINE       oel1                                          
               ONLINE  ONLINE       oel2                                          
ora.OCR.dg 
               ONLINE  ONLINE       oel1                                          
               ONLINE  ONLINE       oel2                                          
ora.asm 
               ONLINE  ONLINE       oel1                     Started              
               ONLINE  ONLINE       oel2                     Started              
ora.gsd 
               OFFLINE OFFLINE      oel1                                          
               OFFLINE OFFLINE      oel2                                          
ora.net1.network 
               ONLINE  ONLINE       oel1                                          
               ONLINE  ONLINE       oel2                                          
ora.ons 
               ONLINE  ONLINE       oel1                                          
               ONLINE  ONLINE       oel2                                          
ora.registry.acfs 
               ONLINE  ONLINE       oel1                                          
               ONLINE  ONLINE       oel2                                          
-------------------------------------------------------------------------------- 
Cluster Resources 
-------------------------------------------------------------------------------- 
ora.LISTENER_SCAN1.lsnr 
      1        ONLINE  ONLINE       oel2                                          
ora.LISTENER_SCAN2.lsnr 
      1        ONLINE  ONLINE       oel1                                          
ora.LISTENER_SCAN3.lsnr 
      1        ONLINE  ONLINE       oel1                                          
ora.cvu 
      1        ONLINE  ONLINE       oel1                                          
ora.oc4j 
      1        ONLINE  ONLINE       oel1                                          
ora.oel1.vip 
      1        ONLINE  ONLINE       oel1                                          
ora.oel2.vip 
      1        ONLINE  ONLINE       oel2                                          
ora.scan1.vip 
      1        ONLINE  ONLINE       oel2                                          
ora.scan2.vip 
      1        ONLINE  ONLINE       oel1                                          
ora.scan3.vip 
      1        ONLINE  ONLINE       oel1                                          
[grid@oel2:/home/grid]$

:—

  • 4.迁移10g ASM磁盘组

1

[grid@oel1:/home/grid]$ asmca 

:—

  • ![](Upgrade%2010gr2%20RAC%20to%2011gr2%20RAC%20-%20Fung's%20DBA%20World.resources/E7AA0E35-6C16-440D-B9F0-9D31FEB3FF7B.jpg)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29

#查看ASM磁盘组状态,以grid用户调用SQLPLUS: 
SQL> col path for a30 
SQL> col instance_name for a10 
SQL> select name,state,type,total_mb,free_mb 
from gv$asm_diskgroup; 
NAME                           STATE       TYPE     TOTAL_MB    FREE_MB 
------------------------------ ----------- ------ ---------- ---------- 
OCR                            MOUNTED     NORMAL       3057       2131 
DATA                           MOUNTED     EXTERN       8189       6918 
OCR                            MOUNTED     NORMAL       3057       2131 
DATA                           MOUNTED     EXTERN       8189       6918 
SQL> select group_number,path,state,total_mb,free_mb 
from v$asm_disk;
GROUP_NUMBER PATH                           STATE      TOTAL_MB    FREE_MB 
------------ ------------------------------ -------- ---------- ---------- 
           1 /dev/oracleasm/disks/OCR3      NORMAL         1019        710 
           1 /dev/oracleasm/disks/OCR2      NORMAL         1019        710 
           1 /dev/oracleasm/disks/OCR1      NORMAL         1019        711 
           2 /dev/oracleasm/disks/DATA1      NORMAL         8189       6919 
#从inventory删除旧的crs home。Detach Old CRS home from Inventory 
[grid@oel1:/worktmp/11g/grid]$  /u01/app/oracle/product/crs/oui/bin/runInstaller  
-detachHome -silent -local ORACLE_HOME=/u01/app/oracle/product/crs 
Starting Oracle Universal Installer...
No pre-requisite checks found in oraparam.ini, no system pre-requisite checks will be executed. 
The inventory pointer is located at /etc/oraInst.loc 
The inventory is located at /u01/app/oracle/oraInventory 
'DetachHome' was successful.

:—

  • 5.升级10g数据库
  • 5.1.安装11gr2 Database软件

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29

[oracle@oel1:/home/oracle]$ cp .bash_profile .profile 
export EDITOR=vi 
# User specific environment and startup programs 
PATH=$PATH:$HOME/bin 
export ORACLE_BASE=/u01/app/oracle 
#export ORA_CRS_HOME=$ORACLE_BASE/product/crs 
#export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1 
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1 
export ORACLE_SID=orcl1 
export PATH=.:${PATH}:$HOME/bin:$ORACLE_BASE/product/crs/bin:$ORACLE_HOME/bin 
export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin 
export PATH=${PATH}:$ORACLE_BASE/common/oracle/bin:$ORACLE_BASE/product/crs/bin 
export ORACLE_TERM=xterm 
export TNS_ADMIN=$ORACLE_HOME/network/admin 
#export ORA_NLS10=$ORACLE_HOME/nls/data 
export ORA_NLS11=$ORACLE_HOME/nls/data 
export LD_LIBRARY_PATH=$ORACLE_HOME/lib 
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib 
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib 
export CLASSPATH=$ORACLE_HOME/JRE 
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib 
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib 
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib 
export THREADS_FLAG=native 
export TEMP=/tmp 
export TMPDIR=/tmp 
export DISPLAY=192.168.56.1:0.0 
export PS1='[$LOGNAME@$HOSTNAME:$PWD]$ ' 
umask 022

:—

1 2 3 4 5 6 7 8 9 10 11 12 13

#安装步骤如下: 
[oracle@oel1:/u01/worktmp/11gr2/database]$ ./runInstaller 
Configure Security Updates:None 
Down Software Updates:Skip software updates 
Installation Option:Install Database software only 
Grid Installation Option:select ALL NODES 
Product Language:English & Simplified Chinese 
Installation Location: 
 ORACLE_BASE:/u01/app/oracle 
 ORACLE_HOME:/u01/app/oracle/product/11.2.0/db_1 
Operating System Groups: 
 OSDBA:dba 
 OSOPER:NONE

:—

1 2 3 4

[root@oel2:/root]# cp /u01/app/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora /u01/app/oracle/product/11.2.0/db_1/network/admin/ 
[root@oel1:/root]# cp /u01/app/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora /u01/app/oracle/product/11.2.0/db_1/network/admin/ 
[oracle@oel1:/home/oracle]$ scp /u01/app/oracle/product/10.2.0/db_1/dbs/orapworcl1 $ORACLE_HOME/dbs 
[oracle@oel2:/home/oracle]$ scp /u01/app/oracle/product/10.2.0/db_1/dbs/orapworcl2 $ORACLE_HOME/dbs

:—

  • 5.2.手工升级数据库

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21

[grid@oel2:/home/grid]$ asmcmd -p 
ASMCMD [+] > ls 
CRS/ 
DATA/ 
ASMCMD [+] > cd data 
ASMCMD [+data] > ls 
ORCL/ 
arch/ 
ASMCMD [+data] > cd orcl 
ASMCMD [+data/orcl] > ls 
ARCHIVELOG/ 
CONTROLFILE/ 
DATAFILE/ 
ONLINELOG/ 
PARAMETERFILE/ 
TEMPFILE/ 
spfileorcl.ora 
ASMCMD [+data/orcl] > cp spfileorcl.ora /tmp 
copying +data/orcl/spfileorcl.ora -> /tmp/spfileorcl.ora 
SQL> create pfile='/tmp/init.ora' from spfile='/tmp/spfileorcl.ora'; 
File created. 

:—

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43

[oracle@oel1:/home/oracle]$ cat /u01/app/oracle/product/11.2.0/db_1/dbs/initorcl1.ora  
orcl2.__db_cache_size=427819008 
orcl1.__db_cache_size=427819008 
orcl2.__java_pool_size=4194304 
orcl1.__java_pool_size=4194304 
orcl2.__large_pool_size=4194304 
orcl1.__large_pool_size=4194304 
orcl2.__shared_pool_size=155189248 
orcl1.__shared_pool_size=155189248 
orcl2.__streams_pool_size=0 
orcl1.__streams_pool_size=0 
*.audit_file_dest='/u01/app/oracle/admin/orcl/adump' 
#*.background_dump_dest='/u01/app/oracle/admin/orcl/bdump' 
*.cluster_database_instances=2 
#*.cluster_database=true 
*.cluster_database=false 
#*.compatible='10.2.0.3.0' 
*.compatible='11.2.0.0.0' 
*.control_files='+DATA/orcl/controlfile/current.256.844116025' 
*.core_dump_dest='/u01/app/oracle/admin/orcl/cdump' 
*.db_block_size=8192 
*.db_create_file_dest='+DATA' 
*.db_domain='' 
*.db_file_multiblock_read_count=16 
*.db_name='orcl' 
orcl2.instance_number=2 
orcl1.instance_number=1 
*.job_queue_processes=10 
*.log_archive_dest_1='LOCATION=+DATA/arch' 
*.log_archive_format='%t_%s_%r.dbf' 
*.open_cursors=300 
*.pga_aggregate_target=199229440 
*.processes=150 
#*.remote_listener='LISTENERS_ORCL' 
*.remote_login_passwordfile='exclusive' 
*.sga_target=597688320 
orcl2.thread=2 
orcl1.thread=1 
*.undo_management='AUTO' 
orcl1.undo_tablespace='UNDOTBS1' 
orcl2.undo_tablespace='UNDOTBS2' 
#*.user_dump_dest='/u01/app/oracle/admin/orcl/udump' 
*.diagnostic_dest='/u01/app/oracle'

:—

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

#开始手工升级: 
[oracle@oel1:/home/oracle]$ export ORACLE_SID=orcl1 
[oracle@oel1:/home/oracle]$ export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1 
[oracle@oel1:/home/oracle]$ which sqlplus 
/u01/app/oracle/product/11.2.0/db_1/bin/sqlplus 
[oracle@oel1:/home/oracle]$ sqlplus "/as sysdba" 
SQL*Plus: Release 11.2.0.4.0 Production on Sun Apr 6 18:26:19 2014 
Copyright (c) 1982, 2013, Oracle.  All rights reserved. 
Connected to an idle instance. 
SQL> startup upgrade 
ORACLE instance started. 
Total System Global Area  597098496 bytes 
Fixed Size                  2255552 bytes 
Variable Size             176162112 bytes 
Database Buffers          415236096 bytes 
Redo Buffers                3444736 bytes 
Database mounted. 
Database opened. 
SQL> spool upgrade.log 
SQL> @?/rdbms/admin/catupgrd.sql 

:—

1 2 3 4

SELECT TO_NUMBER('MUST_HAVE_RUN_PRE-UPGRADE_TOOL_FOR_TIMEZONE') 
                 * 
ERROR at line 1: 
ORA-01722: invalid number

:—

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

SQL> CREATE TABLE registry$database(    
           platform_id   NUMBER,          
           platform_name VARCHAR2(101),   
           edition       VARCHAR2(30),    
           tz_version    NUMBER           
           ); 
Table created. 
SQL> truncate table registry$database;  
Table truncated. 
SQL> INSERT into registry$database   
  (platform_id, platform_name, edition, tz_version)   
VALUES   
  ((select platform_id from v$database),   
   (select platform_name from v$database),   
   NULL,   
   (select version from v$timezone_file)); 
1 row created. 
SQL> commit; 
SQL> col PLATFORM_NAME for a30 
SQL> select * from sys.registry$database;
PLATFORM_ID PLATFORM_NAME              EDITION                        TZ_VERSION 
----------- -------------------------- ------------------------------ ---------- 
         13 Linux x86 64-bit                                                  14

:—

1 2

SQL> spool upgrade.log 
SQL> @?/rdbms/admin/catupgrd.sql

:—

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39

SQL> set lines 200; 
SQL> set pages 1000; 
SQL> column comp_name format a40; 
SQL> column version format a12; 
SQL> column status format a15; 
SQL> select comp_name, version, status from dba_registry; 
COMP_NAME                                VERSION      STATUS 
---------------------------------------- ------------ --------------- 
Oracle Workspace Manager                 11.2.0.4.0   VALID 
Oracle Database Catalog Views            11.2.0.4.0   VALID 
Oracle Database Packages and Types       11.2.0.4.0   VALID 
Oracle Real Application Clusters         11.2.0.4.0   VALID 
SQL> @?/rdbms/admin/utlu112s 
.
Oracle Database 11.2 Post-Upgrade Status Tool           04-06-2014 19:29:05 
.
Component                               Current      Version     Elapsed Time 
Name                                    Status       Number      HH:MM:SS 
.
Oracle Server 
.                                         VALID      11.2.0.4.0  00:41:01 
Oracle Real Application Clusters 
.                                         VALID      11.2.0.4.0  00:00:02 
Oracle Workspace Manager 
.                                         VALID      11.2.0.4.0  00:01:29 
Final Actions 
.                                                                00:02:03 
Total Upgrade Time: 00:44:38 
PL/SQL procedure successfully completed. 
#执行脚本catuppst,This script will migrate the Baseline data on a pre-11g database to the 11g database. 
SQL>  @?/rdbms/admin/catuppst.sql 
#编译非法对象 
SQL> spool recompile.log 
SQL>  @?/rdbms/admin/utlrp.sql 
#关闭数据库,修改参数文件,改为集群模式 
*.cluster_database='true' 
*.remote_listener='rac-sca:1521'

:—

1 2 3 4 5 6 7 8 9 10 11 12

SQL> create spfile='+DATA/orcl/spfileorcl.ora' from pfile; 
[oracle@oel1:/home/oracle]$ cat /u01/app/oracle/product/11.2.0/db_1/dbs/initorcl1.ora  
SPFILE='+DATA/orcl/spfileorcl.ora' 
#节点2拷贝 
[oracle@oel2:/home/oracle]$ cp /u01/app/oracle/product/10.2.0/db_1/dbs/initorcl2.ora $ORACLE_HOME/dbs/ 
[oracle@oel2:/home/oracle]$ cat $ORACLE_HOME/dbs/initorcl2.ora 
SPFILE='+DATA/orcl/spfileorcl.ora' 
SQL> show parameter spfile 
NAME                                 TYPE        VALUE 
------------------------------------ ----------- ------------------------------ 
spfile                               string      +DATA/orcl/spfileorcl.ora 

:—

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

#关闭数据库,添加升级好的11g RAC到GI集群: 
[oracle@oel1:/home/oracle]$ srvctl add database -d orcl -m oraclema.com  
-o /u01/app/oracle/product/11.2.0/db_1 -p +data/orcl/spfileorcl.ora -y AUTOMATIC 
[oracle@oel1:/home/oracle]$ srvctl add instance -d orcl -i orcl1 -n oel1 
[oracle@oel1:/home/oracle]$ srvctl add instance -d orcl -i orcl2 -n oel2 
[oracle@oel1:/home/oracle]$ srvctl modify database -d orcl -n orcl 
[oracle@oel1:/home/oracle]$ srvctl config database -d orcl -a 
Database unique name: orcl 
Database name: orcl 
Oracle home: /u01/app/oracle/product/11.2.0/db_1 
Oracle user: oracle 
Spfile: +data/orcl/spfileorcl.ora 
Domain: oraclema.com 
Start options: open 
Stop options: immediate 
Database role: PRIMARY 
Management policy: AUTOMATIC 
Server pools: orcl 
Database instances: orcl1,orcl2 
Disk Groups:  
Mount point paths:  
Services:  
Type: RAC 
Database is enabled 
Database is administrator managed

:—

1 2 3 4 5 6 7 8

#节点2 Detach 10g CRS_HOME 
[oracle@oel2:/home/oracle]$ /u01/app/oracle/product/crs/oui/bin/runInstaller  
-detachHome -silent -local ORACLE_HOME=/u01/app/oracle/product/crs 
Starting Oracle Universal Installer...
No pre-requisite checks found in oraparam.ini, no system pre-requisite checks will be executed. 
The inventory pointer is located at /etc/oraInst.loc 
The inventory is located at /u01/app/oracle/oraInventory 
'DetachHome' was successful. 

:—

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105

[oracle@oel1:/home/oracle]$ srvctl start database -d orcl 
[grid@oel1:/home/grid]$ crsctl stat res -t 
-------------------------------------------------------------------------------- 
NAME           TARGET  STATE        SERVER                   STATE_DETAILS        
-------------------------------------------------------------------------------- 
Local Resources 
-------------------------------------------------------------------------------- 
ora.CRS.dg 
               ONLINE  ONLINE       oel1                                          
               ONLINE  ONLINE       oel2                                          
ora.DATA.dg 
               ONLINE  ONLINE       oel1                                          
               ONLINE  ONLINE       oel2                                          
ora.LISTENER.lsnr 
               ONLINE  ONLINE       oel1                                          
               ONLINE  ONLINE       oel2                                          
ora.asm 
               ONLINE  ONLINE       oel1                     Started              
               ONLINE  ONLINE       oel2                     Started              
ora.gsd 
               OFFLINE OFFLINE      oel1                                          
               OFFLINE OFFLINE      oel2                                          
ora.net1.network 
               ONLINE  ONLINE       oel1                                          
               ONLINE  ONLINE       oel2                                          
ora.ons 
               ONLINE  ONLINE       oel1                                          
               ONLINE  ONLINE       oel2                                          
ora.registry.acfs 
               ONLINE  ONLINE       oel1                                          
               ONLINE  ONLINE       oel2                                          
-------------------------------------------------------------------------------- 
Cluster Resources 
-------------------------------------------------------------------------------- 
ora.LISTENER_SCAN1.lsnr 
      1        ONLINE  ONLINE       oel2                                          
ora.LISTENER_SCAN2.lsnr 
      1        ONLINE  ONLINE       oel1                                          
ora.LISTENER_SCAN3.lsnr 
      1        ONLINE  ONLINE       oel1                                          
ora.cvu 
      1        ONLINE  ONLINE       oel1                                          
ora.oc4j 
      1        ONLINE  ONLINE       oel1                                          
ora.oel1.vip 
      1        ONLINE  ONLINE       oel1                                          
ora.oel2.vip 
      1        ONLINE  ONLINE       oel2                                          
ora.orcl.db 
      1        ONLINE  ONLINE       oel1                     Open                 
      2        ONLINE  ONLINE       oel2                     Open                 
ora.scan1.vip 
      1        ONLINE  ONLINE       oel2                                          
ora.scan2.vip 
      1        ONLINE  ONLINE       oel1                                          
ora.scan3.vip 
      1        ONLINE  ONLINE       oel1                                          
[grid@oel1:/home/grid]$ crs_stat -t 
Name           Type           Target    State     Host         
------------------------------------------------------------ 
ora.CRS.dg     ora....up.type ONLINE    ONLINE    oel1         
ora.DATA.dg    ora....up.type ONLINE    ONLINE    oel1         
ora....ER.lsnr ora....er.type ONLINE    ONLINE    oel1         
ora....N1.lsnr ora....er.type ONLINE    ONLINE    oel2         
ora....N2.lsnr ora....er.type ONLINE    ONLINE    oel1         
ora....N3.lsnr ora....er.type ONLINE    ONLINE    oel1         
ora.asm        ora.asm.type   ONLINE    ONLINE    oel1         
ora.cvu        ora.cvu.type   ONLINE    ONLINE    oel1         
ora.gsd        ora.gsd.type   OFFLINE   OFFLINE                
ora....network ora....rk.type ONLINE    ONLINE    oel1         
ora.oc4j       ora.oc4j.type  ONLINE    ONLINE    oel1         
ora....SM1.asm application    ONLINE    ONLINE    oel1         
ora....L1.lsnr application    ONLINE    ONLINE    oel1         
ora.oel1.gsd   application    OFFLINE   OFFLINE                
ora.oel1.ons   application    ONLINE    ONLINE    oel1         
ora.oel1.vip   ora....t1.type ONLINE    ONLINE    oel1         
ora....SM2.asm application    ONLINE    ONLINE    oel2         
ora....L2.lsnr application    ONLINE    ONLINE    oel2         
ora.oel2.gsd   application    OFFLINE   OFFLINE                
ora.oel2.ons   application    ONLINE    ONLINE    oel2         
ora.oel2.vip   ora....t1.type ONLINE    ONLINE    oel2         
ora.ons        ora.ons.type   ONLINE    ONLINE    oel1         
ora.orcl.db    ora....se.type ONLINE    ONLINE    oel1         
ora....ry.acfs ora....fs.type ONLINE    ONLINE    oel1         
ora.scan1.vip  ora....ip.type ONLINE    ONLINE    oel2         
ora.scan2.vip  ora....ip.type ONLINE    ONLINE    oel1         
ora.scan3.vip  ora....ip.type ONLINE    ONLINE    oel1       
[oracle@oel1:/u01/app/oracle/product/10.2.0/db_1/network/admin]$ lsnrctl service 
LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 06-APR-2014 22:26:50 
Copyright (c) 1991, 2013, Oracle.  All rights reserved.
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521)) 
Services Summary... 
Service "+ASM" has 1 instance(s). 
  Instance "+ASM1", status READY, has 1 handler(s) for this service... 
    Handler(s): 
      "DEDICATED" established:0 refused:0 state:ready 
         LOCAL SERVER 
Service "orcl" has 1 instance(s). 
  Instance "orcl1", status READY, has 1 handler(s) for this service... 
    Handler(s): 
      "DEDICATED" established:0 refused:0 state:ready 
         LOCAL SERVER 
The command completed successfully  

:—

[](http://www.oraclema.com/oracle/upgrade-10gr2-rac-to-11gr2-rac.html) Authored by Fung Kong April 06, 2014 oracle « 10g rac管理命令 nbu lanfree issue » Fung Kong– © 2013 – 2016