Linux 环境中11g RAC 安装 PSU
这个是实验笔记,做实做成功了,但是有些地方是在是不懂,怕忘,记录一下。
1.1 环境准备
1.1.1 停掉数据库
1.1.2 所需磁盘空间
1.1.3 升级OPatch工具
1.1.4 验证Inventory一致性
1.1.5 下载并解压PSU
1.1.6 停掉EM,如果有的话
1.1.7 冲突检查
1.2 手动升级执行过程
1.2.1 rootcrs.pl停止本节点的服务
1.2.2 给GI HOME打补丁
1.2.2.1 用grid给GI组件打补丁
1.2.2.2 用grid给RDBMS打补丁
1.2.3 给RDBMS DB HOME 打补丁
1.2.3.1 用Oracle给GI打补丁
1.2.3.2 用Oracle给RDBMS打补丁
1.2.4 执行rootcrs.pl -patch
1.2.5 在另一个节点进行前面的操作
1.2.6 对dba_registry_history视图增加记录
1.2.7 执行utlrp 脚本并重启DB
1.2.8 升级catalog数据库
1.2.9 重启应用程序
1.2.10 检查应用之后的结果
--------------------------------------分割线 --------------------------------------
在CentOS 6.4下安装Oracle 11gR2(x64)
Oracle 11gR2 在VMWare虚拟机中安装步骤
Debian 下 安装 Oracle 11g XE R2
--------------------------------------分割线 --------------------------------------
1.1 环境准备操作系统
数据库版本
升级之后版本
节点角色
RHEL5u8 x64
11.2.0.3.0
11.2.0.3.8
racdb1
RHEL5u8 x64
11.2.0.3.0
11.2.0.3.8
racdb2
用户
变量
值
grid用户变量
$ echo $ORACLE_HOME
/u01/app/11.2.0.3/grid
$ echo $ORACLE_BASE
/u01/app/grid
oracle用户变量
$ echo $ORACLE_HOME
/u01/app/oracle/product/11.2.0.3
$ echo $ORACLE_BASE
/u01/app/oracle
root 用户变量
# echo $GRID_HOME
/u01/app/11.2.0.3/grid
# echo $ORACLE_HOME
/u01/app/oracle/product/11.2.0.3
1.1.1 停掉数据库
su - oracle
$ srvctl stop database -d racdb
1.1.2 所需磁盘空间
在Linux环境中所需要的磁盘大小是6.5G
1.1.3 升级OPatch工具
README中提出需要OPatch工具版本是11.2.0.3.4 或者是以后的版本。在我的环境中一共有两个节点,每个节点上都有Oracle和grid用户,所以需要对他们分别进行升级,也就是说共需要升级四次。
这里演示在一个节点上进行升级。
使用Oracle用户对OPatch升级
su - oracle
$ cd $ORACLE_HOME/OPatch/ //进入OPatch目录,查看当前版本
$ ./opatch version
Invoking OPatch 11.2.0.1.7
OPatch Version: 11.2.0.1.7 //这个就是当前版本
OPatch succeeded.
$ cd
$ mv $ORACLE_HOME/OPatch $ORACLE_HOME/OPatch.bak //备份一下当前的OPatch
$ unzip /tmp/p6880880_112000_Linux-x86-64.zip -d $ORACLE_HOME
$ cd $ORACLE_HOME/OPatch //替换了OPatch之后,重新查看版本
$ ./opatch version
OPatch Version: 11.2.0.3.6
OPatch succeeded.
使用grid用户对OPatch进行升级
su - grid
$ cd $ORACLE_HOME/OPatch/
$ ./opatch version
Invoking OPatch 11.2.0.1.7
OPatch Version: 11.2.0.1.7
OPatch succeeded.
$ mv $ORACLE_HOME/OPatch $ORACLE_HOME/OPatch.ba
$ unzip /tmp/p6880880_112000_Linux-x86-64.zip -d $ORACLE_HOME
$ cd $ORACLE_HOME/OPatch
$ ./opatch version
OPatch Version: 11.2.0.3.6
OPatch succeeded.
1.1.4 验证Inventory一致性
在执行opatch apply之前需要验证GI home和DB home的一致性
su - grid
$ $ORACLE_HOME/OPatch/opatch lsinventory -detail -oh $ORACLE_HOME
最后正常显示的结果应该是
OPatch succeeded.
1.1.5 下载并解压PSU
把PSU解压到一个非/tmp目录中,这个目录是空的,并且具有oinstall组的权限(README中提到的是ORA_INSTALL组)
# mkdir /psu
# chown grid:oinstall /psu
# chmod 775 /psu //Oracle用户也在oinstall组,所以用这个权限。
# ll -d /psu
drwxrwxr-x 2 grid oinstall 4096 Apr 23 23:30 /psu
su - grid
$ unzip /tmp/p17272731_112030_Linux-x86-64.zip -d /psu
1.1.6 停掉EM,如果有的话
在安装和回滚patch之前先关掉EM
su - oracle
$ emctl stop dbconsole
1.1.7 冲突检查
su - grid
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /psu/16902043 -oh $ORACLE_HOME
su - oracle
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /psu/16902043 -oh $ORACLE_HOME
应该都是OPatch succeeded.状态的
1.2 手动升级执行过程
这里演示手动升级的过程,因为自动升级可能会出问题。
1.2.1 rootcrs.pl停止本节点的服务
若有RDBMS DB在运行则首先关闭该实例,使用root关掉集群
su - root
# crsctl stop crs //如果不执行这个,那么下面的rootcrs.pl执行速度会很慢
下面的rootcrs.pl脚本在$GRID_HOME/crs/install 下
# $GRID_HOME/crs/install/rootcrs.pl -unlock
Using configuration parameter file: /u01/app/11.2.0.3/grid/crs/install/crsconfig_params
...........
Successfully unlock /u01/app/11.2.0.3/grid
在AIX上(Linux不用做):
因为有用户进程占用了文件libclntsh.so.11
grid用户执行:
genld -l|grep /home/db/grid/product/11.2.0
genkld|grep /home/db/grid/product/11.2.0
另外一个窗口root:
/usr/sbin/slibclean
1.2.2 给GI HOME打补丁
升级之前把所有的sqlplus关掉,不然报错。
报错内容如下:这个是我贴出其他人的报错:
Verifying environment and performing prerequisite checks...
Prerequisite check "CheckActiveFilesAndExecutables" failed.
The details are:
Following executables are active :
/u01/app/oracle/product/db11.2.0.3/lib/libclntsh.so.11.1
UtilSession failed: Prerequisite check "CheckActiveFilesAndExecutables" failed.
Log file location: /u01/app/oracle/product/db11.2.0.3/cfgtoollogs/opatch/opatch2013-03-10_20-37-12PM_1.log
更多详情见请继续阅读下一页的精彩内容: