前言
还是大家常说的那句:生产环境千万记得备份哈~~~
以下的环境,是我的测试环境,这里就不备份啦~
1. 升级Grid Infrastructure
1.1 升级前准备
1.1.1 软件准备
这个当然不用多说:下载、上传到服务器、解压
1.1.2 新建GI的新HOME
mkdir -p /u01/app/11.2.0.4/grid
chown -R grid:oinstall /u01/app/11.2.0.4
chmod -R 775 /u01/app/11.2.0.4
1.1.3 检查两台Node的名称
[root@RAC01 ~]# cat /etc/hosts
# Do not remove the following line, or variousprograms
# that require network functionality willfail.
127.0.0.1 localhostlocalhost.localdomain localhost
::1 localhost6.localdomain6localhost6
#Eth0 Public
10.0.0.240 RAC01
10.0.0.242 RAC02
#Virtual IP
10.0.0.241 RAC01-VIP
10.0.0.243 RAC02-VIP
#Eth1 Private
172.30.1.1 RAC01-PRIV
172.30.1.2 RAC02-PRIV
#Scan
10.0.0.244 RACSCAN
1.1.4 升级前的CUV检查(建议)
[root@RAC01 app]# su - grid
[grid@RAC01 ~]$ /software/grid/runcluvfy.sh stage -pre crsinst-upgrade -n rac01,rac02 -rolling -src_crshome /u01/app/11.2.0/grid-dest_crshome /u01/app/11.2.0.4/grid -dest_version 11.2.0.4.0
如果检查出错误,请根据提示修复。
1.2 进行升级
需要保证所有节点的GI都正常运行
[grid@RAC01 ~]# su – grid
[grid@RAC01 ~]$ unset ORACLE_HOME
[grid@RAC01 ~]$ unset ORACLE_BASE
[grid@RAC01 ~]$ unset ORACLE_SID
[grid@Oracle-LAB ~]$ cd /software/grid/
[grid@Oracle-LAB grid]$ ./runInstaller
注意:如果在上面一个步骤上点“Next”出现下图错误:
第一:先分别在两个NODE上测试SSH,如:
[grid@rac01 ~]$ sshrac02 date
Fri Jan 10 17:34:55 CST 2014
第二:如果以上不能SSH,那在“SSH Connectivity”中先输入GRID帐号密码,然后再测试,如果SETUP成功,但TEST仍报上图的错误,那可能是因为Node Name大小写引起,需要执行以下命令,命令格式如下:
$ <OLD_GI_HOME>/oui/bin/runInstaller -updateNodelistORACLE_HOME=<OLD_GI_HOME> “CLUSTER_NODES={racnode1,racnode2}” CRS=true
例:
[grid@rac01 grid]$ cd /u01/app/11.2.0/grid/oui/bin/
[grid@rac01 bin]$ ./runInstaller -updateNodelistORACLE_HOME=/u01/app/11.2.0/grid "CLUSTER_NODES=rac01,rac02" CRS=true
Starting Oracle Universal Installer...
Checking swap space: must be greater than 500MB. Actual 5633 MB Passed
The inventory pointer is located at/etc/oraInst.loc
The inventory is located at/u01/app/oraInventory
‘UpdateNodeList‘ was successful.
执行了以上的命令后,重新执行[grid@Oracle-LAB grid]$ ./runInstaller
你会发现Node Name由原来的大写变为小写了,再“Next“就可以了。根据以上提示分别在RAC01、RAC02上执行:
[root@rac01 ~]#/u01/app/11.2.0.4/grid/rootupgrade.sh
[root@rac02 ~]#/u01/app/11.2.0.4/grid/rootupgrade.sh
完成后在当前GRID帐号下运行:crsctlquery has softwareversion查看当前版本信息。
[grid@Oracle-LAB grid]$ crsctl query hassoftwareversion
Oracle High Availability Services version onthe local node is [11.2.0.4.0]
当出现以下报错时,只要能PING通SCAN IP即可忽略。1.1 修改改Grid帐号下的ORACLE_HOME值
[root@rac01/]# gedit /home/grid/.bash_profile
ORACLE_SID=+ASM1
ORACLE_BASE=/u01/app/grid
ORACLE_HOME=/u01/app/11.2.0.4/grid
PATH=$PATH:$ORACLE_HOME/bin
export PATH ORACLE_SID ORACLE_BASE ORACLE_HOME
[root@rac02/]# gedit /home/grid/.bash_profile
ORACLE_SID=+ASM2
ORACLE_BASE=/u01/app/grid
ORACLE_HOME=/u01/app/11.2.0.4/grid
PATH=$PATH:$ORACLE_HOME/bin
export PATH ORACLE_SID ORACLE_BASE ORACLE_HOME
1.2 重启oracle
[root@rac01 /]# cd/u01/app/11.2.0.4/grid/bin
[root@rac01 bin]# ./crsctlstop cluster –all
[root@rac01 bin]# ./crsctlstart cluster -all
完成重启后检查版本:
[root@rac01 bin]# ./crsctlquery crs activeversion
Oracle Clusterware active version on thecluster is [11.2.0.4.0]
2. 升级数据库软件
2.1 升级前准备
2.1.1 软件准备
这个当然不用多说:下载、上传到服务器、解压
注:再次重新强调:生产环境升级前请备份!!
2.1.2 分别在RAC中所有节点上新建DB软件的新HOME
mkdir -p/u01/app/oracle/product/11.2.0.4/dbhome_1
chown -R oracle:oinstall/u01/app/oracle/product/11.2.0.4
chmod -R 775 /u01/app/oracle/product/11.2.0.4
2.1.3 检查Oracle软件版本
[oracle@Oracle-LAB ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.3.0 Production on MonJan 6 13:08:12 2014
Copyright (c) 1982, 2011, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release11.2.0.3.0 - 64bit Production
With the Partitioning, Automatic StorageManagement, OLAP, Data Mining
and Real Application Testing options
2.1.4 备份数据库
不再详述。
2.2 进行升级
[oracle@rac01 ~]$ unset ORACLE_BASE
[oracle@ rac01 ~]$ unset ORACLE_HOME
[oracle@ rac01 ~]$ unset ORACLE_SID
[oracle@ rac01 ~]$ cd /software/database/
出现以下错误提示可以忽略,这个主要是因为在DNS中没有对应Node记录引起,不会影响数据库软件的应用与运行。
[root@rac01 /]# /u01/app/oracle/product/11.2.0.4/dbhome_1/root.sh
Performing root user operation for Oracle 11g
The following environment variables are setas:
ORACLE_OWNER= oracle
ORACLE_HOME= /u01/app/oracle/product/11.2.0.4/dbhome_1
Enter the full pathname of the local bindirectory: [/usr/local/bin]:
The contents of "dbhome" have notchanged. No need to overwrite.
The contents of "oraenv" have notchanged. No need to overwrite.
The contents of "coraenv" have notchanged. No need to overwrite.
Entries will be added to the /etc/oratab fileas needed by
Database Configuration Assistant when adatabase is created
Finished running generic part of root script.
Now product-specific root actions will beperformed.
Finished product-specific root actions.
[root@rac02 /]#/u01/app/oracle/product/11.2.0.4/dbhome_1/root.sh
Performing root user operation for Oracle 11g
The following environment variables are setas:
ORACLE_OWNER= oracle
ORACLE_HOME= /u01/app/oracle/product/11.2.0.4/dbhome_1
Enter the full pathname of the local bindirectory: [/usr/local/bin]:
The contents of "dbhome" have notchanged. No need to overwrite.
The contents of "oraenv" have notchanged. No need to overwrite.
The contents of "coraenv" have notchanged. No need to overwrite.
Entries will be added to the /etc/oratab fileas needed by
Database Configuration Assistant when adatabase is created
Finished running generic part of root script.
Now product-specific root actions will beperformed.
Finished product-specific root actions.
运行完脚本后,即可下一步,然后结束安装。
3. 升级数据库
3.1 升级前检查
进入新目录下执行utlu112i.sql来进行升级前的检查:
[root@Oracle-LAB~]# su - oracle
[oracle@Oracle-LAB~]$ /u01/app/oracle/product/11.2.0.4/dbhome_1/bin/sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Mon Jan 6 13:33:40 2014
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bitProduction
With the Partitioning, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing options
SQL> @/u01/app/oracle/product/11.2.0.4/dbhome_1/rdbms/admin/utlu112i.sql
Oracle Database 11.2 Pre-Upgrade Information Tool 01-06-2014 13:34:41
Oracle Database 11.2 Pre-Upgrade Information Tool 01-13-2014 16:02:16
Script Version: 11.2.0.4.0 Build: 001
.**********************************************************************
Database:
**********************************************************************
--> name: RACORCL
--> version: 11.2.0.3.0
--> compatible: 11.2.0.0.0
--> blocksize: 8192
--> platform: Linux x86 64-bit
--> timezone file: V14
.**********************************************************************
Tablespaces: [make adjustments in the current environment]
**********************************************************************
--> SYSTEM tablespace is adequate for the upgrade.
.... minimum required size: 938 MB
--> SYSAUX tablespace is adequate for the upgrade.
.... minimum required size: 829 MB
--> UNDOTBS1 tablespace is adequate for the upgrade.
.... minimum required size: 400 MB
--> TEMP tablespace is adequate for the upgrade.
.... minimum required size: 60 MB
--> EXAMPLE tablespace is adequate for the upgrade.
.... minimum required size: 310 MB
.**********************************************************************
Flashback: OFF
**********************************************************************
**********************************************************************
Update Parameters: [Update Oracle Database 11.2 init.ora or spfile]
Note: Pre-upgrade tool was run on a lower version 64-bit database.
**********************************************************************
--> If Target Oracle is 32-Bit, refer here for Update Parameters:
-- No update parameter changes are required.
.--> If Target Oracle is 64-Bit, refer here for Update Parameters:
-- No update parameter changes are required.
.**********************************************************************
Renamed Parameters: [Update Oracle Database 11.2 init.ora or spfile]
**********************************************************************
-- No renamed parameters found. No changes are required.
.**********************************************************************
Obsolete/Deprecated Parameters: [Update Oracle Database 11.2 init.ora orspfile]
**********************************************************************
-- No obsolete parameters found. No changes are required
.**********************************************************************
Components: [The following database components will be upgraded orinstalled]
**********************************************************************
--> Oracle Catalog Views [upgrade] VALID
--> Oracle Packages and Types [upgrade] VALID
--> JServer JAVA Virtual Machine [upgrade] VALID
--> Oracle XDK for Java [upgrade] VALID
--> Real Application Clusters [upgrade] VALID
--> Oracle Workspace Manager [upgrade] VALID
--> OLAP Analytic Workspace [upgrade] VALID
--> OLAP Catalog [upgrade] VALID
--> EM Repository [upgrade] VALID
--> Oracle Text [upgrade] VALID
--> Oracle XML Database [upgrade] VALID
--> Oracle Java Packages [upgrade] VALID
--> Oracle interMedia [upgrade] VALID
--> Spatial [upgrade] VALID
--> Expression Filter [upgrade] VALID
--> Rule Manager [upgrade] VALID
--> Oracle Application Express [upgrade] VALID
... APEX will only be upgraded if the version of APEX in
... the target Oracle home is higher than the current one.
--> Oracle OLAP API [upgrade] VALID
.**********************************************************************
Miscellaneous Warnings
**********************************************************************
WARNING: --> The "cluster_database" parameter is currently"TRUE"
.... and must be set to "FALSE" prior to running a manualupgrade.
WARNING: --> Your recycle bin is turned on and currently contains noobjects.
.... Because it is REQUIRED that the recycle bin be empty prior toupgrading
.... and your recycle bin is turned on, you may need to execute thecommand:
PURGE DBA_RECYCLEBIN
.... prior to executing your upgrade to confirm the recycle bin is empty.
WARNING: --> Database contains schemas with objects dependent onDBMS_LDAP package.
.... Refer to the 11g Upgrade Guide for instructions to configure NetworkACLs.
.... USER APEX_030200 has dependent objects.
.**********************************************************************
Recommendations
**********************************************************************
Oracle recommends gathering dictionary statistics prior to
upgrading the database.
To gather dictionary statistics execute the following command
while connected as SYSDBA:
EXECUTEdbms_stats.gather_dictionary_stats;
**********************************************************************
Oracle recommends reviewing any defined events prior to upgrading.
To view existing non-default events execute the following commands
while connected AS SYSDBA:
Events:
SELECT(translate(value,chr(13)||chr(10),‘ ‘)) FROM sys.v$parameter2
WHERE UPPER(name) =‘EVENT‘ AND isdefault=‘FALSE‘
Trace Events:
SELECT(translate(value,chr(13)||chr(10),‘ ‘)) from sys.v$parameter2
WHERE UPPER(name) =‘_TRACE_EVENTS‘ AND isdefault=‘FALSE‘
Changes will need to be made in the init.ora or spfile.
**********************************************************************
3.2 运行DBUA来升级数据库
以Oracle用户,进入新目录运行DBUA。
[root@rac01/]# su - oracle
[root@Oracle-LAB~]$ cd /u01/app/oracle/product/11.2.0.4/dbhome_1/bin
[oracle@Oracle-LABbin]$ ./dbua
3.3 修改Oracle帐号的ORACLE_HOME
[root@rac01/]# gedit /home/oracle/.bash_profile
ORACLE_SID=RACORCL1 #第二个节点为ORCL2
ORACLE_UNQNAME=RACORCL #如果不配置,EM起不来
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=$ORACLE_BASE/product/11.2.0.4/dbhome_1
PATH=$PATH:$ORACLE_HOME/bin
export PATH ORACLE_SID ORACLE_BASE ORACLE_HOMEORACLE_UNQNAME
[root@rac02 /]# gedit/home/oracle/.bash_profile
ORACLE_SID=ORCL2 #第二个节点为ORCL2
ORACLE_UNQNAME=RACORCL #如果不配置,EM起不来
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=$ORACLE_BASE/product/11.2.0.4/dbhome_1
PATH=$PATH:$ORACLE_HOME/bin
export PATH ORACLE_SID ORACLE_BASE ORACLE_HOMEORACLE_UNQNAME
重启数据库服务:
[root@rac02 /]# /u01/app/11.2.0.4/grid/bin/crsctl stop cluster-all
[root@rac02 /]# /u01/app/11.2.0.4/grid/bin/crsctl start cluster-all