主要按照下面文档进行安装的:
http://wenku.baidu.com/view/462ab595dd88d0d233d46ac6.html
详细内容见扩展
[@more@]HP双机MC/SG上ORACLE 10g
安装指导
杭州华三通信技术有限公司
HP 双机MC/SG 上ORACLE 10g 安装指导
杭州华三通信技术有限公司
第i页
目 录
1 安装目标 ...........................................................................................................................1
2 HP MC/SG 简介..............................................................................................................1
2.1 什么是MC/SG ............................................................................................................. 1
2.2 ................................................................................................................. MC/SG实现的功能1
2.3 ........................................................................................................ MC/SG集群的硬件组成1
2.4 ................................................................................................................. MC/SG软件的组成1
2.5 ........................................................................................................ MC/SG集群的结构组成2
2.5.1 组成......................................................................................................................... 2
2.5.2 包(package)的概念....................................................................................... 2
2.6 ......................................................................................................................MC/SG相关文件2
2.7 故障处理机制............................................................................................................... 3
2.7.1 概念......................................................................................................................... 3
2.7.2 节点故障................................................................................................................ 3
2.7.3 网络故障............................................................................................................... 4
2.7.4 软件故障............................................................................................................... 4
3 软硬件需求.......................................................................................................................4
3.1 硬件需求............................................................................................................................ 4
3.2 ................................................................................................................................... 软件需求 5
4 安装前准备工作...............................................................................................................5
4.1 HP-UX基本安装.............................................................................................................. 5
4.2 确定操作系统的版本号和主机名................................................................................ 5
4.3 规划存储资源................................................................................................................... 5
4.4 网络地址规划................................................................................................................... 6
4.5 安装ORACLE必需的PACK和PATCH....................................................................... 7
4.5.1 需要的系统包........................................................................................................ 7
4.5.2 需要的PATCH...................................................................................................... 7
4.6 安装ORACLE需调整内核参数.................................................................................... 8
4.7 安装ORACLE需执行以下命令修补bug.................................................................... 8
5 安装配置MC/SG..............................................................................................................9
5.1 设置两个节点的/etc/hosts文件(ip地址和主机名的解析)............................ 9
5.2 建立双机信任关系.......................................................................................................... 9
5.3 安装Serviceguard......................................................................................................... 10
5.3.1 使用swinstall命令安装serviceguard软件.................................................. 10
5.3.2 确定两个系统中已安装的MC/SG软件包及版本号一致:..................... 10
5.4 共享卷组的创建和配置............................................................................................... 10
HP 双机MC/SG 上ORACLE 10g 安装指导
杭州华三通信技术有限公司
第ii页
5.4.1 在hp1 上创建VGLOCK和VGDATA.............................................................. 10
5.4.2 将共享卷组从hp1 导出并导入hp2 ............................................................... 11
5.4.3 ...............................................................................编辑两个节点的/etc/lvmrc文件12
5.5 配置双机MC................................................................................................................... 12
5.6 ................................................................................................ 编辑pkg包的配置参考文件15
5.7 生成并编辑pkg包控制文件/etc/cmcluster/pkg/ora.sh....................................... 16
5.8 编写oracle启动,关闭,监视脚本........................................................................... 17
6 安装ORACLE 10g软件................................................................................................28
6.1 创建oracle用户和组................................................................................................. 28
6.2 用户oracle环境变量设置........................................................................................ 29
6.3 安装前存储资源挂载................................................................................................ 30
6.4 ..........................................................................................................Oracle主程序安装步骤31
6.5 网络监听配置............................................................................................................. 31
6.6 创建数据库................................................................................................................. 32
7 安装验证 .........................................................................................................................32
7.1 启动双机 ..................................................................................................................... 32
7.2 查看双机信息............................................................................................................. 33
7.3 双机倒换验证............................................................................................................. 34
7.4 拔掉前端网络接口网线测试................................................................................... 34
7.5 .........................................................................................................ORACLE服务故障测试34
8 附录:MC/ServieGuard常用命令..............................................................................34
HP 双机MC/SG 上ORACLE 10g 安装指导
杭州华三通信技术有限公司
第1页, 共39页
1 安装目标
在 HP 双机上实现ORACLE 的 Active-Passive 模式应用。具体的安装目标是,通
过安装HP 的双机软件Serviceguard 和Oracle 10g,使得ORACLE 在一台HP 主
机上运行,该主机一旦发生故障,ORACLE 服务能够快速切换到另一台主机上。
2 HP MC/SG 简介
2.1 什么是MC/SG
MC/ServiceGuard,简称MC/SG 用于将HP9000 系列服务器组成高可用性集群的
软件。
“MC”指“Mul 提示le Computers”。
2.2 MC/SG 实现的功能
通过合理的配置集群,可以在集群中出现单点故障(硬件、软件、网络等)时,通
过切换保证应用程序的不间断运行,从而实现系统的高可用性。
2.3 MC/SG 集群的硬件组成
HP-UX 主机
多台主机构成集群,每台主机必须拥有自己独立的根盘,强烈建议镜像
存储磁盘
由于 MC/SG 不能对数据磁盘故障做出响应,需要使用高可用性的磁盘阵列或对数
据盘进行镜像
网络
MC/SG 中的network manager 可以对网络故障做出响应。需要配置冗余的网络设
备(网线、交换机、网卡等)
2.4 MC/SG 软件的组成
软件组件
Package Manager 运行包管理器
Cluster Manager 集群管理器
HP 双机MC/SG 上ORACLE 10g 安装指导
杭州华三通信技术有限公司
第2页, 共39页
Network Manager 网络管理器
主要后台进程
cmcld:节点守护进程,负责发送心跳信号、管理本地网络、以及负责运行包的管
理
cmlogd:负责在系统日志(syslog)中记录信息
cmlvmd:监控所有属于集群控制的卷组(VG)的状态
cmsrvassistd:负责包启动、停止脚本以及服务程序的运行
2.5 MC/SG 集群的结构组成
2.5.1 组成
节点(node)
指构成集群的主机。一个集群中允许的节点数量是 2-16 个
运行包(package)
运行包里包含用户的应用程序,以及为该应用程序所分配的资源。包运行在集群中
的其中一个节点上,并且可以在节点之间切换
2.5.2 包(package)的概念
包含应用程序(application)
分配相应资源
(1) 卷组、逻辑卷和文件系统
(2) 浮动IP 地址
(3) 应用程序的启动,停止,监控脚本
(4) 服务程序(service)
规则
(1) 分配给一个包的资源不能再分给其它包。
(2) 同一时间一个包只运行在一个节点上。
2.6 MC/SG 相关文件
/etc/cmcluster/cluster.ascii
集群配置文件,包含节点组成、卷组指定和相关参数设定等
/etc/cmcluster/cmclconfig
集群二进制文件,由配置文件编译而成,包含集群的全部信息
/etc/cmcluster/pkg/pkg.conf
包配置文件,指定包所在的节点、监控网段、切换模式等参数信息
HP 双机MC/SG 上ORACLE 10g 安装指导
杭州华三通信技术有限公司
第3页, 共39页
/etc/cmcluster/pkg/pkg.sh
包控制文件,指定包所拥有的各种资源
/etc/cmcluster/pkg/pkg.sh.log
包运行时记录的日志
/etc/cmcluster/pkg/pkg_service.sh
包启动时用于启动、停止和进程监控应用程序的脚本
以上文件中“pkg”实际上是MC/SG 配置中的运行包名,实际配置可更改。
2.7 故障处理机制
2.7.1 概念
心跳(Heartbeat)
用于在节点之间互相传递心跳信号的网线(网络),如中断则表明某一节点出现故
障
锁盘(lock disk)
当集群由两个节点组成时,需要一块物理磁盘作为仲裁设备。当心跳中断时,两个
节点会去争用锁盘,得到锁盘的一方将会重组集群,而另一方则会发生TOC 并重
启。
TOC(Transfer Of Control)
为保证没有得到锁盘的节点能够尽快释放占用的资源,该节点将自动执行 TOC,
保存当前内存和CPU 影像后重新启动。
2.7.2 节点故障
当主节点发生故障时
备机守护进程 cmcld 检测到心跳超时,开始争用锁盘
主机发生 TOC,由备机重组集群
在备机上启动运行包,恢复应用访问
切换时间视启动脚本设置而定
当备用节点发生故障时
主机守护进程 cmcld 检测到心跳超时,开始争用锁盘
备机发生 TOC,由主机重组集群
该过程对应用运行无影响
HP 双机MC/SG 上ORACLE 10g 安装指导
杭州华三通信技术有限公司
第4页, 共39页
2.7.3 网络故障
Serviceguard 不要求必须有主备两个网卡,不配置备用网卡(standby network)
的情况下,Serviceguard 也能检测通过,但是作为高可用性的保障,每个节点上
应该有主备两个网卡,这样
当主网络发生故障时
守护进程 cmcld 检测到主网卡不通后,会将固定IP 和浮动IP 加载到备用网卡上
主网卡连接恢复后,IP 地址会自动回到原主网卡上
当主节点网络发生故障时
守护进程 cmcld 检测到主网卡不通后,会将固定IP 和浮动IP 加载到备用网卡上
如备用网卡也不通,当MC/SG 发现到监控网段不通时,会将运行包切换到备用节
点上
2.7.4 软件故障
服务程序(service)
在配置运行包时,可定制服务程序,在包启动后,服务程序也会相应启动。如果服
务程序中断退出,整个运行包也会停止并切换到备节点上。
监控脚本
服务程序最常用的功能就是监控应用程序运行状况。通常由应用提供商来定制监控
脚本,由服务程序来调用。当应用发生异常(如进程吊死)时,服务程序会发生中
断,并造成应用包切换。
MC/SG 对软件故障的响应能力很大程度上取决于服务程序脚本的编写
3 软硬件需求
在 HP-UX 11.23 上配置Serviceguard A.11.17.00,且仲裁盘和数据盘均采用H3C
的存储设备时,请确认环境满足以下需求:
3.1 硬件需求
HP 服务器2 台(本文以RX1620 为例),每台服务器网卡个数>=3
H3C 存储一台
管理控制 PC 一台
交换机台数>=1
网线若干
HP 双机MC/SG 上ORACLE 10g 安装指导
杭州华三通信技术有限公司
第5页, 共39页
3.2 软件需求
HP-UX 11.23 安装光盘一套
Serviceguard A.11.17.00 安装软件
HP-UX 11.23 补丁软件(可网络下载)
Oracle 10g 安装软件
4 安装前准备工作
4.1 HP-UX 基本安装
由于 HP-UX 的分区容量不能动态改变,为避免后续使用中的麻烦,建议:
Swap 分区容量大于1GB;
一个 Globaldevices 分区,容量大于512MB;硬盘的S7 分区,容量大于20MB,
主要为磁盘管理使用。其他具体安装步骤可参见相关HP-UX 安装文档。
另外,需要给操作系统打上最新的 PATCH。
4.2 确定操作系统的版本号和主机名
命令如下:
# uname -rn
hp1 B.11.23
# uname -rn
hp2 B.11.23
4.3 规划存储资源
由于是双机 AP 模式,所以存储资源可以这样规划:
后 端 存 储 划分两个Volume 资源: 一个大小为10g ( 本安装指导使用
/dev/rdsk/c5t0d0),用于双机lock 盘;一个大小为500G (本安装指导使用
/dev/rdsk/c6t0d0),用于存放所有的oracle 程序和数据,所以两个盘都是共享盘,
两台HP 都要扫描到两个volume。后一个资源上做volume group(本安装指导使
用vgdata),在其上划分两个vol,一个大小为100G,用于存放oracle 主程序文
件,也就是Oracle 安装主目录所在存储资源;另一个大小为400G,用于创建oracle
数据库。
HP 双机MC/SG 上ORACLE 10g 安装指导
杭州华三通信技术有限公司
第6页, 共39页
hp1 hp2 是否共享
盘
空间大小
双机 LOCK
盘
/dev/rdsk/c5t0d0
/dev/vglock
/dev/rdsk/c5t0d0
/dev/vglock
是10GB
Oracle 10g
主程序
/dev/rdsk/c6t0d0
/dev/vgdata/lvol-oracle
/dev/rdsk/c6t0d0
/dev/vgdata/lvol-oracle 是 100GB
Oracle 10g
数据库
/dev/rdsk/c6t0d0
/dev/vgdata/lvol-oradata
/dev/rdsk/c6t0d0
/dev/vgdata/lvol-oradata
是400GB
HP-UX 操作系统连接存储资源的方法请参考《HP-UX 11iv1&11iv2 操作系统
Initiator 软件安装、配置和使用指导书.doc》。本安装指导默认已按上表连接好存
储资源。
4.4 网络地址规划
使用 lanscan 可以查找系统中有几块网卡及其相关的信息,在本工程中可以看到每
台机器上有lan0、lan1、lan2 等三块网卡,其作用如下:
lan0:心跳线heart beating network
双机心跳线使用10 Base-T 网卡,配置在同一网段172.16.0.0/24,使用交叉线连
接。(直连线的制作需要自己动手,HP 不提供,请参阅有关文档)
作为 IP-SAN 网络,服务器的网络接口规划为前端网络接口和后端网络接口。前端
网络接口,是HP 提供对外服务的网络接口,比如本安装指导所描述的ORACLE
安装,在完成安装后,ORACLE 服务就是通过前端网络接口与ORACLE 客户端建
立连接。后端网络接口,在IP-SAN 中专指连接后端存储资源的网络接口。
lan1: 规划为连接前端网络网卡。
lan2: 规划为连接后端网络网卡,即连接存储资源的网卡。
IP 地址规划如下表:
主机名 前端网络 IP 后端网络IP
hp1 200.200.20.251/24 lan1 200.200.200.251/24 lan2
hp2 200.200.20.252/24 lan1 200.200.200.252/24 lan2
hp (虚拟主机名) 200.200.20.250/24(双机浮动IP)
可通过系统工具 sam 进行将网卡IP 地址更改到需要的工作网段上,并可通过查看
/etc/rc.config.d/netconf 文件来查看当前网络的配置情况。
HP 双机MC/SG 上ORACLE 10g 安装指导
杭州华三通信技术有限公司
第7页, 共39页
4.5 安装ORACLE 必需的PACK 和PATCH
4.5.1 需要的系统包
BUNDLE11i B.11.23.0409.3: Patch Bundle for HP-UX 11i V2
4.5.2 需要的PATCH
HP-UX 11.23 Patches:
PHCO_32426 Reboot(1M) cumulative patch
PHCO_34208 11.23 cumulative SAM patch [replaces PHCO_31820]
PHCO_34195 11.23 kernel configuration commands patch [replaces PHCO_33385]
PHCO_35048 11.23 libsec cumulative patch
PHKL_32646 wsio.h header file patch
PHKL_33025 11.23 file system tunables cumulative patch
PHKL_34907 Message Signaled Interrupts (MSI and MSI-X) [replaces
PHKL_32632,PHKL_33807,PHKL_34430]
PHKL_34479 WSIO (IO) subsystem MSI/MSI-X/WC Patch [replaces PHKL_32645]
PHKL_35229 VM Copy on write data corruption fix [replaces
PHKL_33552,PHKL_33563,PHKL_34596]
PHNE_35182 11.23 cumulative ARPA Transport patch
PHSS_34859 11.23 Integrity Unwind Library [replaces PHSS_31851,PHSS_34043]
PHSS_34858 11.23 linker + fdp cumulative patch [replaces
PHSS_34040,PHSS_33275,PHSS_31849,PHSS_34440]
PHSS_34444 11.23 assembler patch [replaces PHSS_31850,PHSS_34044]
PHSS_34445 11.23 milli cumulative patch [replaces PHSS_31854,PHSS_34045]
PHSS_34853 11.23 Math Library Cumulative Patch [replaces
PHSS_33276,PHSS_34042]
PHNE_35182 11.23 cumulative ARPA Transport patch [replaces PHNE_34671]
ANSI C++ patches:
PHSS_32511 11.23 HP aC++ Compiler (A.03.63)
PHSS_32512 11.23 ANSI C compiler B.11.11.12 cumulative patch
PHSS_32513 11.23 +O4/PBO Compiler B.11.11.12 cumulative patch
PHSS_35055 11.23 aC++ Runtime [replaces PHSS_31855,PHSS_34041,PHSS_31852]
JDK patches:
PHCO_34944 11.23 pthread library cumulative patch [replaces
PHCO_31553,PHCO_33675,PHCO_34718]
PHSS_35045 11.23 Aries cumulative patch [replaces PHSS_32213,PHSS_34201]
PHKL_31500 11.23 Sept04 base patch
Serviceguard 11.17 and OS Patches :
PHCO_32426 11.23 reboot(1M) cumulative patch
PHCO_35048 11.23 libsec cumulative patch [replaces PHCO_34740]
PHSS_33838 11.23 Serviceguard eRAC A.11.17.00
PHSS_33839 11.23 COM B.04.00.00
PHSS_35371 11.23 Serviceguard A.11.17.00 [replaces PHSS_33840]
HP 双机MC/SG 上ORACLE 10g 安装指导
杭州华三通信技术有限公司
第8页, 共39页
PHKL_34213 11.23 vPars CPU migr, cumulative shutdown patch
PHKL_35420 11.23 Overtemp shutdown / Serviceguard failover
C and C++ patches (如果需安装PL/SQL native compilation, Pro*C/C++,
Oracle Call Interface, Oracle C++ Call Interface, Oracle XML Developer's
Kit (XDK)这些组件,需打以下patch, 否则不用打。)
PHSS_33277 11.23 HP C Compiler (A.06.02)
PHSS_33278 11.23 aC++ Compiler (A.06.02)
PHSS_33279 11.23 u2comp/be/plugin library patch
以上所列 PATCH 可能不是最新的,下载时注意有替代的最新PATCH;而且如果
安装的是最新的操作系统版本,很多PATCH 都已安装了。
4.6 安装ORACLE 需调整内核参数
用 SAM 工具修改内核参数,如下:
KSI_ALLOC_MAX (NPROC*8)
EXECUTABLE_STACK=0
MAX_THREAD_PROC 1024
MAXDSIZ 1073741824 bytes
MAXDSIZ_64BIT 2147483648 bytes
MAXSSIZ 134217728 bytes
MAXSSIZ_64BIT 1073741824
MAXUPRC ((NPROC*9)/10)
MSGMAP (MSGTQL+2)
MSGMNI NPROC
MSGSEG 32767
MSGTQL 4096
NFILE (15*NPROC+2048)
NFLOCKS 4096
NINODE (8*NPROC+2048)
NKTHREAD (((NPROC*7)/4)+16)
NPROC 4096
SEMMNI 4096
SEMMNS (SEMMNI*2)
SEMMNU (NPROC - 4)
SEMVMX 32767
SHMMAX AvailMem
SHMMNI 512
SHMSEG 120
VPS_CEILING 64
4.7 安装ORACLE 需执行以下命令修补bug
# cd /usr/lib
HP 双机MC/SG 上ORACLE 10g 安装指导
杭州华三通信技术有限公司
第9页, 共39页
# ln -s /usr/lib/libX11.3 libX11.sl
# ln -s /usr/lib/libXIE.2 libXIE.sl
# ln -s /usr/lib/libXext.3 libXext.sl
# ln -s /usr/lib/libXhp11.3 libXhp11.sl
# ln -s /usr/lib/libXi.3 libXi.sl
# ln -s /usr/lib/libXm.4 libXm.sl
# ln -s /usr/lib/libXp.2 libXp.sl
# ln -s /usr/lib/libXt.3 libXt.sl
# ln -s /usr/lib/libXtst.2 libXtst.sl
5 安装配置MC/SG
5.1 设置两个节点的/etc/hosts 文件(ip 地址和主机名的解析)
分别在两个节点上编辑/etc/hosts 文件,如下:
# vi /etc/hosts
## Configured using SAM by root on Mon May 7 15:22:41 2007
## Configured using SAM by root on Tue Jun 12 14:55:07 2007
# @(#)B11.23_LRhosts $Revision: 1.9.214.1 $ $Date: 96/10/08 13:20:01 $
#
# The form for each entry is:
#
#
# For example:
# 192.1.2.34 hpfcrm loghost
#
# See the hosts(4) manual page for more information.
# Note: The entries cannot be preceded by a space.
# The format described in this file is the correct format.
# The original Berkeley manual page contains an error in
# the format description.
#
127.0.0.1 localhost loopback
200.200.20.251 hp1
200.200.200.251 hp1prvt
200.200.20.252 hp2
200.200.200.252 hp2prvt
200.200.20.250 hp
5.2 建立双机信任关系
建立双机的信任关系,分别在两个节点上编辑/.rhost 文件,如下:
HP 双机MC/SG 上ORACLE 10g 安装指导
杭州华三通信技术有限公司 第10页, 共39页
# vi /.rhosts
hp1 root
hp2 root
5.3 安装Serviceguard
5.3.1 使用swinstall 命令安装serviceguard 软件
5.3.2 确定两个系统中已安装的MC/SG 软件包及版本号一致:
#swlist | grep guard
T1905BA A.11.17.00 Serviceguard
PHSS_35371 1.0 Serviceguard A.11.17.00
5.4 共享卷组的创建和配置
共享卷组包括双机的锁盘和数据盘,见 4.3 节。
5.4.1 在hp1 上创建VGLOCK 和VGDATA
(1) 在hp1 上创建PV(存储设备划分两个资源)
#pvcreate -f /dev/rdsk/c5t0d0(锁盘)
#pvcreate -f /dev/rdsk/c6t0d0(数据盘)
(2) 在HP1 上创建卷组VG
#mkdir /dev/vglock
#mkdir /dev/vgdata
#mknod /dev/vglock/group c 64 0x040000
#mknod /dev/vgdata/group c 64 0x050000
(其中,主设备号总是64,次设备号以16 进制数0xhh0000 表示,0Xhh0000 必须在系统内唯一,
使用系统中下一个可用的数值。使用下面的命令可以得到系统中已经存在的卷组:
# ls -l /dev/*/group )
#vgcreate /dev/vglock /dev/dsk/c5t0d0
#vgcreate /dev/vgdata /dev/dsk/c6t0d0
提示: 如何在1T 磁盘上创建VG
# vgcreate -s 16 vg03 /dev/dsk/c13t0d2 (创建卷组,指定卷组中包括的每个
物理卷)
Increased the number of physical extents per physical volume to 63999.
Volume group "/dev/vg03" has been successfully created.
Volume Group configuration for /dev/vg03 has been saved in
/etc/lvmconf/vg03.conf
说明:-s 16 说明每个PE(盘区)的大小是16m,这个参数在该磁盘环境中是要
增加的。否则将会出现错误:
Warning: Max_PE_per_PV for the volume group (65535) too small for this PV
(255999).
Using only 65535 PEs from this physical volume.
HP 双机MC/SG 上ORACLE 10g 安装指导
杭州华三通信技术有限公司 第11页, 共39页
Increased the number of physical extents per physical volume to 65535.
vgcreate: Volume group "/dev/vg03" could not be created:
VGRA for the disk is too big for the specified parameters. Increase the
extent size or decrease max_PVs/max_LVs and try again.
如果磁盘大小是1T,-s 是PE 数,默认是4,(65535*4=262140 也就是256G)。
因为磁盘大小是1T,所以-s 应该是16。(65535*16=1048560)
(3) 在hp1 上显示VG
#vgdisplay -v
/dev/dsk/c5t0d0
/dev/dsk/c6t0d0
(4) 在hp1 上创建逻辑卷lvol-oracle 和lvol-oradata
#lvcreate –L 20000 -n lvol-oracle /dev/vgdata (-L 单位是M)
#lvcreate –L 500000 -n lvol-oradata /dev/vgdata
(5) 创建文件系统,并且mount:
# newfs –F vxfs /dev/vgdata/rdsk/lvol-oracle
(6) 创建mount 目录点:
#mkdir /oracle
#mkdir /ora-data
mount 文件系统以检查正确性
#mount /dev/vgdata/dsk/lvol-oracle /oracle
#mount /dev/vgdata/dsk/lvol-oradata /ora-data
# umount /oracle
# umount /ora-data
5.4.2 将共享卷组从hp1 导出并导入hp2
(1) 先去激活VG
# vgchange -a n /dev/vglock
Volume group "/dev/vglock" has been successfully changed.
# vgchange -a n /dev/vgdata
Volume group "/dev/vgdata" has been successfully changed.
#
(2) 将hp1 上VGLOCK 和VGDATA 信息export 出来,并且复制到hp2
#vgexport -s -p -m /tmp/vglock.map /dev/vglock
#vgexport -s -p -m /tmp/vgdata.map /dev/vgdata
#rcp /tmp/vglock.map hp2:/tmp/vglock.map
#rcp /tmp/vgdata.map hp2:/tmp/vgdata.map
(3) 在hp2 上将VGLOCK 和VGDATA 的信息import 出来
#mkdir /dev/vglock
#mkdir /dev/vgdata
#mknod /dev/vglock/group c 64 0x040000
HP 双机MC/SG 上ORACLE 10g 安装指导
杭州华三通信技术有限公司 第12页, 共39页
#mknod /dev/vgdata/group c 64 0x050000
#vgimport -s -m /tmp/vglock.map /dev/vglock
#vgimport -s -m /tmp/vgdata.map /dev/vgdata
(注意,在节点2 上面的设备文件名字可能与节点1 上面不同,必须确认)
(4) 在hp2 上激活卷组,挂载文件系统:
#vgchange -a y /dev/vglock
#vgchange -a y /dev/vgdata
# mkdir /oracle
# mkdir /ora-data
(5) Mount 文件系统以检查正确性:
#mount /dev/vgdata/dsk/lvol-oracle /oracle
#mount /dev/vgdata/dsk/lvol-oradata /ora-data
(6) 去激活vg
# umount /oracle
# umount /ora-data
# vgchange -a n /dev/vgdata
5.4.3 编辑两个节点的/etc/lvmrc 文件
保 证 在 系 统 启 动 时 不 自 动 激 活 与 CLUSTER 有关的卷组( 将
AUTO_VG_ACTIVATE 置为0,并确认root 卷组包含在custom_vg_activation 函
数内)。这些卷组将在应用包的文本中激活。
#vi /etc/lvmrc
将其中AUTO_VG_ACTIVATE=1 修改为0
在配置节点hp1 上激活卷组
# vgchange -a y /dev/vgdata
5.5 配置双机MC
(1) 确定一台主机,通过hostname 来查看各主机的名称,并确定hp1 为主机,
hp2 为备份机。
(2) 在主机HP1 上生成、编辑cluster.ascii 文件
#cmquerycl -n hp1 -v -C /etc/cmcluster/cluster.ascii
#vi /etc/cmcluster/cluster.ascii
修改如下参数:
CLUSTERNAME HP
#注意:给CLUSTER 起一个名字,方便记忆就可以,没有固定约束
FIRST_CLUSTER_LOCK_VG /dev/vglock
#注意:锁盘在HP 和IBM 都有类似的概念,用来仲裁双机的占领vg 权利
NODE_NAME hp1
NETWORK_INTERFACE lan0
HP 双机MC/SG 上ORACLE 10g 安装指导
杭州华三通信技术有限公司 第13页, 共39页
HEARTBEAT_IP 172.16.0.50
NETWORK_INTERFACE lan1
HEARTBEAT_IP 200.200.20.251
#注意:两个网卡都作了心跳,防止因为心跳地址失效而误切换
NETWORKINTERFACE lan2
FIRST_CLUSTER_LOCK_PV /dev/dsk/c5t0d0
#注意:物理路径要符合,不要把vgdata 和vglock 两个混淆
NODE_NAME hp2
NETWORK_INTERFACE lan0
HEARTBEAT_IP 172.16.0.51
NETWORK_INTERFACE lan1
HEARTBEAT_IP 200.200.20.252
NETWORKINTERFACE lan2
FIRST_CLUSTER_LOCK_PV /dev/dsk/c5t0d0
#注意有些时候hp1 和hp2 上同一个锁盘的设备文件名是不一样的
# Cluster Timing Parmeters (microseconds).
HEARTBEAT_INTERVAL 1000000
NODE_TIMEOUT 2000000
#注意:节点轮询时间和超时设置,一般不动,毫秒为单位
# Configuration/Reconfiguration Timing Parameters (microseconds).
AUTO_START_TIMEOUT 600000000
NETWORK_POLLING_INTERVAL 2000000
#注意:网络启动时间,失败时候的顺序,一般不动,毫秒为单位
# Package Configuration Parameters.
# Enter the maximum number of packages which will be configured in the cluster.
# You can not add packages beyond this limit.
# This parameter is required.
MAX_CONFIGURED_PACKAGES 2
#注意:MC 里面需要预留几个程序包,有的环境是2 个,3 个,多个程序包多会
耗费一定的内存,如果以后要加程序包,这个参数不可逆,要重新做MC 生成模版
最后一行加:
VOLUME_GROUP /dev/vglock
VOLUME_GROUP /dev/vgdata
#注意:要给出和主机对应的vg,有的时候有3,4 个vg
(3) 对配置进行检查
HP 双机MC/SG 上ORACLE 10g 安装指导
杭州华三通信技术有限公司 第14页, 共39页
强烈建议:任何时候对双机配置文件做过改动,重新启动双机之前必须进行配置的
检查
#cmcheckconf -v -C /etc/cmcluster/cluster.ascii
如果没有报错信息,显示完成信息,即表示通过。有的时候有一些有关CDROM
的小警告,但是只要系统建议你可以做下一步,只要提示是complete 就OK
说明
如果先配置启动了不同名的 cluster,这个检查会失败。需要先停止cluster ,用命令
cmhaltcl 然后删除这个cluster, 使用 cmdeleteconf
# cmhaltcl
Disabling all packages from starting on nodes to be halted.
Warning: Do not modify or enable packages until the halt operation is completed.
This operation may take some time.
Waiting for nodes to halt .... done
Successfully halted all nodes specified.
Halt operation complete.
# cmdeleteconf -c hp2620
Checking current status
Delete cluster hp2620 ([y]/n)? y
Completed the cluster deletion
(4) 将配置信息分发到各节点上
#vgchange -a y /dev/vglock
#注意:因为分发是正式的要发二进制的控制文件,一定要提前激活vglock 的属
性,否则以后MC 启动有问题。
#cmapplyconf -v -C /etc/cmcluster/cluster.ascii
出现modify the cluster configuration
输入:y
# cmcheckconf -v -C /etc/cmcluster/cluster.ascii
Checking cluster file: /etc/cmcluster/cluster.ascii
Note : a NODE_TIMEOUT value of 2000000 was found in line 127. For a
significant portion of installations, a higher setting is more appropriate.
Refer to the comments in the cluster configuration ascii file or Serviceguard
manual for more information on this parameter.
Checking nodes ... Done
Checking existing configuration ... Done
Gathering storage information
Found 3 devices on node hp1
Found 3 devices on node hp2
Analysis of 6 devices should take approximately 1 seconds
0%----10%----20%----30%----40%----50%----60%----70%----80%----90%----100%
HP 双机MC/SG 上ORACLE 10g 安装指导
杭州华三通信技术有限公司 第15页, 共39页
Found 3 volume groups on node hp1
Found 3 volume groups on node hp2
Analysis of 6 volume groups should take approximately 1 seconds
0%----10%----20%----30%----40%----50%----60%----70%----80%----90%----100%
Gathering network information
Beginning network probing (this may take a while)
Completed network probing
Checking for inconsistencies
Adding node hp1 to cluster hpcluster
Adding node hp2 to cluster hpcluster
cmcheckconf: Verification completed with no errors found.
Use the cmapplyconf command to apply the configuration.
#
(5) 设置自动启动参数
编辑文件/etc/rc.config.d/cmcluster,将参数AUTOSTART_CMCLD 设为1,则在
系统自举时自动启动CLUSTER。
#vi /etc/rc.config.d/cmcluster
AUTOSTART_CMCLD= 1
(6) 启动双机
# cmruncl -v
(7) 查看双机信息
#cmviewcl -v
5.6 编辑pkg 包的配置参考文件
以上只是将双机运行起来了,下面开始配置运行在双机上的包
在 hp1 上生成并编辑pkg 包的配置参考文件
#mkdir /etc/cmcluster/pkg
#cmmakepkg -p /etc/cmcluster/pkg/ora.conf
#vi /etc/cmcluster/pkg/pkg.conf
修改如下参数:
PACKAGE_NAME ora
#注意:起一个程序包的名字
NODE_NAME hp1 #主节点
NODE_NAME hp2 #备份节点
RUN_script /etc/cmcluster/pkg/ora.sh #Package 启动脚本
RUN_script_TIMEOUT NO_TIMEOUT
HALT_script /etc/cmcluster/pkg/ora.sh #Package 停止脚本
HALT_script_TIMEOUT NO_TIMEOUT
HP 双机MC/SG 上ORACLE 10g 安装指导
杭州华三通信技术有限公司 第16页, 共39页
#注意: /etc/cmcluster/pkg/ora.sh
#这个文件很重要,在MC 里面有呈上启下的作用,一旦开始,就会带动后面的程
序包运行起来。
#以下配置服务名称
SERVICE_NAME ora
SERVICE_FAIL_FAST_ENABLED YES
SERVICE_HALT_TIMEOUT 300
SUBNET 200.200.20.0
#注意:公网的网络,也就是前面提到的前端网路程序包可以在里面漂移,和心跳网
#络要区别。
5.7 生成并编辑pkg 包控制文件/etc/cmcluster/pkg/ora.sh
(1) 生成包控制文件
#cmmakepkg -s /etc/cmcluster/pkg/ora.sh
(2) 编辑包控制文件/etc/cmcluster/pkg/ora.sh
#vi /etc/cmcluster/pkg/ora.sh
修改如下参数:
VG[0]=vgdata
#注意:程序包需要几个vg,就加几个vg
LV[0]=/dev/vgdata/lvol-oracle; FS[0]=/oracle; FS_MOUNT_OPT[0]="-o rw"
LV[1]=/dev/vgdata/lvol-oradata; FS[1]=/ora-data; FS_MOUNT_OPT[1]="-o rw"
#增加需要mount 的文件系统和逻辑卷名字
IP[0]= "200.200.20.150"
SUBNET[0]= "200.200.20.0"
#注意:这个地址是oracle 包的漂移IP 地址,不要和两个主机的真实IP,心跳IP
混淆
# 服务名称(和包配置中一致)、服务命令、重启次数
SERVICE_NAME[0]=ora
SERVICE_CMD[0]="/etc/cmcluster/pkg/oracle10g.sh monitor"
SERVICE_RESTART[0]="-r 3"
#oracle10g.sh 是稍后要写的oracle 启动/关闭/监视脚本
#以下修改包启动关闭函数
function customer_defined_run_cmds
{
HP 双机MC/SG 上ORACLE 10g 安装指导
杭州华三通信技术有限公司 第17页, 共39页
# ADD customer defined run commands.
: # do nothing instruction, because a function must contain some command.
/etc/cmcluster/pkg/oracle10g.sh start
#oracle10g.sh 是稍后要写的oracle 启动/关闭脚本
test_return 51
}
function customer_defined_halt_cmds
{
# ADD customer defined halt commands.
: # do nothing instruction, because a function must contain some command.
/etc/cmcluster/pkg/oracle10g.sh stop
test_return 52
}
(3) 拷贝配置文件到HP51 节点上
#rcp /etc/cmcluster/pkg/ora.sh hp2: /etc/cmcluster/pkg/ora.sh
#rcp /etc/cmcluster/pkg/oracle10g.sh hp2: /etc/cmcluster/pkg/oracle10g.sh
#rcp /etc/cmcluster/pkg/ora.conf hp2: /etc/cmcluster/pkg/ora.conf
(4) 执行配置检查
强烈建议:任何时候对双机配置文件做过改动,重新启动双机之前必须进行配置的
检查
#cmcheckconf -v -C /etc/cmcluster/cluster.ascii -P
/etc/cmcluster/pkg/ora.conf
重新分发 cluster.ascii 文件
#cmapplyconf -v -C /etc/cmcluster/cluster.ascii -P
/etc/cmcluster/pkg/ora.conf
5.8 编写oracle 启动,关闭,监视脚本
前面配置中涉及的 oracle10g.sh 脚本如下:
#!/usr/bin/sh
# VERSION="@(#)B5139DA (11.x):"
# "@(#) B.01.08 $Revision: 2.00 $ $Date: 02/02/21 10:18:02 $"
#
*************************************************************************
****
# ******** Startup, Shutdown and Monitor Script for ORACLE (Template)
*********
#
*************************************************************************
****
# ********** Note: This file MUST be edited before it can be used. ************
HP 双机MC/SG 上ORACLE 10g 安装指导
杭州华三通信技术有限公司 第18页, 共39页
#
*************************************************************************
****
# Oracle 相关变量
ORA_ver=10_2_0
SID_NAME=ora
ORACLE_HOME=/oracle/product/10.2.0
LISTENER=yes
LISTENER_NAME=${SID_NAME} #LISTENER_NAME=LSNR_${SID_NAME}
LISTENER_PASS=
MONITOR_INTERVAL=30
MONITOR2_INTERVAL=5
PACKAGE_NAME=ora
TIME_OUT=30
set -A MONITOR_PROCESSES ora_pmon_${SID_NAME} ora_dbw0_${SID_NAME}
ora_ckpt_${SID_NAME} ora_smon_${SID_NAME} ora_lgwr_${SID_NAME}
ora_reco_${SID_NAME}
LISTENERDIR=/oracle/product/10.2.0/network/admin
LISTENERORA=/etc/cmcluster/ora/listener.ora
HOST=`uname -n`
DATE=`date`
PATH=${ORACLE_HOME}/bin:/sbin:/usr/bin:/usr/sbin:/etc:/bin
export ORACLE_SID=${SID_NAME}
export ORACLE_HOME
#########################################################################
######
#########################################################################
######
# Function: oracle_run_cmds
#
# Start the ORACLE instance defined in the environment variables ORACLE_HOME
# and SID_NAME.
#########################################################################
######
# Oracle 启动函数
function oracle_run_cmds
{
# The Oracle initialization file (init${SID_NAME}.ora) can contain node
# specific information. A large memory configuration might not run on a
# smaller backup system so you might need to create node specific
# configuration files as shown below:
#
# ${ORACLE_HOME}/dbs/init${SID_NAME}.ora.${HOST}
#
HP 双机MC/SG 上ORACLE 10g 安装指导
杭州华三通信技术有限公司 第19页, 共39页
# Note: You must have node specific files for ALL NODES in the cluster.
# PFILE=${ORACLE_HOME}/dbs/init${SID_NAME}.ora
# if [[ -f ${PFILE}.${HOST} ]]
# then
# PFILE=${PFILE}.${HOST}
# fi
# Make sure that the configuration file exists. If not, then the
# database cannot be started on this node.
# if [[ ! -f ${PFILE} ]]
# then
# print "ORACLE: The file ${PFILE} does not exist."
# print "tERROR: Failed to start Oracle database."
# exit 1
# fi
# Startup Oracle.
# These commands will not return any error codes; therefore, anything
# that fails after this point will cause a failover to another node.
#
case $ORA_ver in
10_2_0) su oracle -c "${ORACLE_HOME}/bin/sqlplus '/as sysdba'"<startup
#pfile=${PFILE}
exit
EOF
if [[ $? != 0 ]]
then
print "Oracle startup failed."
else
print "Oracle startup done."
fi
;;
*)
print "Oracle startup failed, check configuration variables."
;;
esac
# Start the listener process.
case $LISTENER in
HP 双机MC/SG 上ORACLE 10g 安装指导
杭州华三通信技术有限公司 第20页, 共39页
yes )
cp /etc/cmcluster/ora/listener.ora /oracle/product/10.2.0/network/admin
su oracle -c "${ORACLE_HOME}/bin/lsnrctl start "
if [[ $? != 0 ]]
then
print "Oracle lsnrctl start failed."
else
print "Oracle lsnrctl start done."
fi
;;
*)
print "Not starting the listener, configured not to start."
;;
esac
}
#########################################################################
######
# Function: oracle_shutdown_cmds
#
# Shutdown Oracle using the shutdown immediate command.
# This will do a clean shutdown of the database.
# Do NOT use 'cmhaltpkg' to shutdown the database as 'cmhaltpkg'
# does a database abort and all transactions in memory will be lost.
#########################################################################
######
# Oracle 停止函数
function oracle_shutdown_cmds
{
case $ORA_ver in
10_2_0) su oracle -c "${ORACLE_HOME}/bin/sqlplus '/as sysdba'" <shutdown immediate
exit
EOF
if [[ $? != 0 ]]
then
print "Oracle shutdown failed."
else
print "Oracle shutdown done."
fi
;;
*)
print "Oracle shutdown failed, check configuration variables."
;;
esac
HP 双机MC/SG 上ORACLE 10g 安装指导
杭州华三通信技术有限公司 第21页, 共39页
su oracle -c "${ORACLE_HOME}/bin/lsnrctl stop"
}
#########################################################################
######
# Function: oracle_abort_cmds
#
# Recursively call this script with the "kill" option to terminate any process
# that will not die normally after waiting for the TIME_OUT period.
#########################################################################
######
# Oracle 中止函数
function oracle_abort_cmds
{
# Something is wrong so we will abort. If you wish to shutdown the database
# without an abort, you must manually execute "${SID_NAME}.sh shutdown" from
# the command line instead of using cmhaltpkg. "Abort" is used because
# "immediate" and "normal" will wait for all users to log off and they are
# not deterministic.
#
# Call this script with the kill option to terminate any process that will
# not die normally after waiting for the TIME_OUT period.
set -m
${0} kill &
# Stop Oracle process.
case $ORA_ver in
10_2_0)
su oracle -c "${ORACLE_HOME}/bin/sqlplus '/as sysdba'" <shutdown abort
exit
EOF
if [[ $? != 0 ]]
then
print "Oracle abort failed."
else
print "Oracle abort done."
fi
;;
esac
HP 双机MC/SG 上ORACLE 10g 安装指导
杭州华三通信技术有限公司 第22页, 共39页
# Stop the listener process for Oracle.
su oracle -c "${ORACLE_HOME}/bin/lsnrctl stop"
#case $LISTENER in
#yes )
#su oracle -c ${ORACLE_HOME}/bin/lsnrctl <#set password ${LISTENER_PASS}
#stop ${LISTENER_NAME}
#exit
#EOF
#;;
#esac
# Make sure all processes have gone away before determining that shutdown
is
# complete. This stops the other node from starting up the package before
it
# has been stopped and the file system has been unmounted.
typeset -i c
typeset -i num_procs=${#MONITOR_PROCESSES[@]}
while true
do
for i in ${MONITOR_PROCESSES[@]}
do
id=`ps -fu oracle | awk '/'${i}$'/ { print $2 }'` #JAGad06432
if [[ ${id} = "" ]] #JAGad06432
then
print "n *** ${i} process has stopped. ***n"
c=0
while (( c < $num_procs ))
do
if [[ ${MONITOR_PROCESSES[$c]} = $i ]]
then
unset MONITOR_PROCESSES[$c]
c=$num_procs
fi
(( c = c + 1 ))
done
fi
done
if [[ ${MONITOR_PROCESSES[@]} = "" ]]
then
# The shutdown was successful; therefore, get rid of the script (which
HP 双机MC/SG 上ORACLE 10g 安装指导
杭州华三通信技术有限公司 第23页, 共39页
# was started earlier) to kill any existing hung processes. Check
to
# see if the script is still running. If the result from the 'job'
# command indicates that the script is done, then there is no need
# to kill it.
job=$(jobs | grep -v Done)
if [[ ${job} != "" ]]
then
print "Killing the kill_hung_processes scriptn"
kill %1
fi
exit 0 # fix for 1653287920
fi
sleep 5
done
}
#########################################################################
######
# Function: kill_hung_processes
#
# If the database is hung, spawn a background process that will issue a
# a SIGKILL to each of the monitored processes. This allows us to guarantee
# a time limit for clean halt attempts.
#########################################################################
######
# 杀掉挂起进程
function kill_hung_processes
{
# Wait for the TIME_OUT period before sending a kill signal. The TIME_OUT
# value should be less than the MC/Serviceguard package time-out.
sleep ${TIME_OUT}
for i in ${MONITOR_PROCESSES[@]}
do
id=`ps -fu oracle | awk '/'${i}$'/ { print $2 }'` #JAGad06432
if [[ ${id} != "" ]]
then
kill -9 ${id}
if [[ $? != 0 ]]
then
print "n *** ${0} kill_hung_processes function did NOT find
process ***n *** ${i} running. ***n"
HP 双机MC/SG 上ORACLE 10g 安装指导
杭州华三通信技术有限公司 第24页, 共39页
else
print "n *** ${0} kill_hung_processes function did find
process ***n *** ${i} running. Sent SIGKILL. ***n"
fi
else
print " *** kill_hung_processes function did NOT find ANY process
running. ***n"
fi
done
}
#
*************************************************************************
****
# return code
# 0 - succeed
# 1 - fail
#
*************************************************************************
****
# 监控Oracle 监听是否启动
function monitor_listener
{
su - oracle -c "${ORACLE_HOME}/bin/lsnrctl status
${ORACLE_LISTENER_NAME}" > /dev/null
if [ $? = 0 ]
then
MONITOR_PROCESSES_PID=`ps -fu oracle | grep tnslsnr | awk '{ print
$2 }'`
print "Monitored process = tnslsnr, pid = ${MONITOR_PROCESSES_PID}"
>> ${LOG_FILE}
return 0
fi
su - oracle -c "${ORACLE_HOME}/bin/lsnrctl start
${ORACLE_LISTENER_NAME}" > /dev/null
if [ $? = 0 ]
then
MONITOR_PROCESSES_PID=`ps -fu oracle | grep tnslsnr | awk '{ print
$2 }'`
print "Monitored process = tnslsnr, pid = ${MONITOR_PROCESSES_PID}"
>> ${LOG_FILE}
print "n *** listener has restarted. ***" >> ${LOG_FILE}
return 0
HP 双机MC/SG 上ORACLE 10g 安装指导
杭州华三通信技术有限公司 第25页, 共39页
fi
print "n *** listener has failed. Aborting Oracle. ***" >> ${LOG_FILE}
return 1
}
#########################################################################
######
# Function: monitor_processes
#
# Monitor the Oracle processes by making sure that all required processes are
# running.
#########################################################################
#####
# 监视函数。监视Oracle 相关进程。
function monitor_processes
{
typeset -i n=0
for i in ${MONITOR_PROCESSES[@]}
do
MONITOR_PROCESSES_PID[$n]=`ps -fu oracle | awk '/'${i}$'/ { print $2 }'`
#JAGad06432
print "Monitored process = ${i}, pid = ${MONITOR_PROCESSES_PID[$n]}"
if [[ ${MONITOR_PROCESSES_PID[$n]} = "" ]]
then
print "nn"
ps -ef
print "n *** ${i} has failed at startup time. Aborting Oracle.
***"
set -m
nohup ${0} fault & # The script calls itself with the fault
option.
set +m
sleep 999999
fi
(( n = n + 1 ))
done
sleep ${MONITOR_INTERVAL}
while true
do
for i in ${MONITOR_PROCESSES_PID[@]}
do
kill -s 0 ${i} > /dev/null
HP 双机MC/SG 上ORACLE 10g 安装指导
杭州华三通信技术有限公司 第26页, 共39页
if [[ $? != 0 ]]
then
print "nn"
ps -ef
print "n *** ${i} has failed. Aborting Oracle. ***"
set -m
nohup ${0} fault & # The script calls itself with the fault
option.
set +m
sleep 999999
fi
done
monitor_listener
if [ $? = 1 ]
then
print "n Listener has failed. Aborting Oracle. ***"
set -m
nohup ${0} fault & # The script calls itself with the fault
option.
set +m
sleep 999999
fi
sleep ${MONITOR_INTERVAL}
done
}
# 监视用户是否可以连接。注意修改用户名密码
function monitor_processes2
{
while true
do
su oracle -c "${ORACLE_HOME}/bin/sqlplus corpring/corpring" <WHENEVER SQLERROR EXIT 1
select 'success' from dual;
exit
EOF
if [[ $? != 0 ]]
then
print "Connect to oracle failed."
set -m
nohup ${0} fault & # The script calls itself with the fault option.
set +m
sleep 999999
else
print "Connected to oracle."
fi
HP 双机MC/SG 上ORACLE 10g 安装指导
杭州华三通信技术有限公司 第27页, 共39页
sleep ${MONITOR2_INTERVAL}
done
}
#########################################################################
######
# Function: halt_package
#
# Because there is no move command in MC/Serviceguard, the package must first
# be halted, disabled from running on the host, and then enabled to run in
the
# cluster.
#########################################################################
######
# 中止包函数
function halt_package
{
cmhaltpkg ${PACKAGE_NAME}
cmmodpkg -d -n ${HOST} ${PACKAGE_NAME}
sleep 1
cmmodpkg -e ${PACKAGE_NAME}
}
#########################################################################
######
# MAIN
#
# Check the command-line option and take the appropriate action.
#########################################################################
######
print "n *** $0 called with $1 argument. ***n"
case $1 in
fault)
halt_package
;;
kill)
kill_hung_processes
;;
monitor)
monitor_processes
HP 双机MC/SG 上ORACLE 10g 安装指导
杭州华三通信技术有限公司 第28页, 共39页
;;
monitor2)
monitor_processes2
;;
start)
print "n "${HOST}": Starting Oracle SESSION $SID_NAME at ${DATE}
"
oracle_run_cmds
;;
halt)
print "n "${HOST}": Aborting Oracle SESSION $SID_NAME at ${DATE}
"
oracle_abort_cmds
;;
shutdown)
print "n "${HOST}": Shutting down Oracle SESSION $SID_NAME at
${DATE} "
oracle_shutdown_cmds
;;
*)
print "Usage: ${0} [ shutdown | halt | start | monitor ]"
;;
esac
6 安装ORACLE 10g 软件
以下 6.1-6.2 步骤hp1 和hp2 上都要配置。
6.1 创建oracle 用户和组
(1) 创建用户组
# /usr/sbin/groupadd dba
(2) 创建用户
# /usr/sbin/useradd -g dba oracle
(3) 设置用户密码
# passwd oracle
HP 双机MC/SG 上ORACLE 10g 安装指导
杭州华三通信技术有限公司 第29页, 共39页
6.2 用户oracle 环境变量设置
编辑/home/oralce 目录下用户oracle 的profile 文件
注意以下几个环境变量设置
umask 022
ORACLE_BASE=/oracle
export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/10.2.0
export ORACLE_HOME
ORACLE_SID=ora
export ORACLE_SID
PATH=$ORACLE_HOME/bin:$PATH
export PATH
EDITOR=vi
export EDITOR
TERM=xterm
export TERM
以下是作者配置的完整的profile 文件,供参考:
$ more .profile
# @(#)B11.23_LR
# Default user .profile file (/usr/bin/sh initialization).
# Set up the terminal:
if [ "$TERM" = "" ]
then
eval ` tset -s -Q -m ':?hp' `
else
eval ` tset -s -Q `
fi
stty erase "^H" kill "^U" intr "^C" eof "^D"
stty hupcl ixon ixoff
tabs
ORACLE_BASE=/oracle
ORACLE_HOME=/oracle/product/10.2.0
ORACLE_SID=ora
ORACLE_TERM=xterm
export ORACLE_BASE ORACLE_HOME ORACLE_SID ORACLE_TERM
NLS_LANG=american_america.ZHS16GBK
export NLS_LANG
#ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
LE_HOME/rdbms/lib:$ORACLE_HOME/lib32
export
HP 双机MC/SG 上ORACLE 10g 安装指导
杭州华三通信技术有限公司 第30页, 共39页
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:$ORACLE_HOME/rdbms/lib
#Set up the search paths:
PATH=$PATH:.:/bin:/usr/bin:/usr/sbin:/opt/bin:/usr/local/bin:$ORACLE_HOME
export PATH
# Set up the shell environment:
set -u
trap "echo 'logout'" 0
# Set up the shell variables:
EDITOR=vi
export EDITOR
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
CLASSPATH=$CLASSPATH:$ORACLE_HOME/network/jlib
export CLASSPATH
umask 022
export TEMP=/oracle/tmp
export TMPDIR=/oracle/tmp
export DISPLAY=200.200.20.68:0.0
以下安装步骤仅需在 hp1 上执行即可。
6.3 安装前存储资源挂载
(1) 激活VG vgdata,并将lvol-oracle 和lvol-oradata Mount 到/oracle 和
/ora-data 目录下。
#vgchange -a y /dev/vgdata
#mount /dev/vgdata/dsk/lvol-oracle /oracle
#mount /dev/vgdata/dsk/lvol-oradata /ora-data
提示: 无法激活VG 怎么办?
比如#vgchange -a y /dev/vgdata 执行失败,提示如下:
vgchange: Activation mode requested for the volume group "/dev/vgdata"
conflicts with configured mode.
可以先执行以下命令:
#vgchange -c n /dev/vgdata
再激活:
#vgchange -a y /dev/vgdata
不过,不要忘了,去激活要完成如下操作:
#vgchange –a n /dev/vgdata
#vgchange -c y /dev/vgdata
(2) 将oracle 安装文件拷贝到/ora-data 目录下,如果是光盘安装,此步可省。
HP 双机MC/SG 上ORACLE 10g 安装指导
杭州华三通信技术有限公司 第31页, 共39页
(3) 修改/oracle 和 /ora-data 目录权组和属性
#chown -R oracle:dba /oracle
#chmod 755 /oracle
#chown –R oracle:dba /ora-data
6.4 Oracle 主程序安装步骤
(1) 使用oracle 帐户登陆,执行安装程序runInstaller
(2) 出现Welcome 窗口,点击NEXT。
(3) 出现Specify Home Details 窗口, 输入安装主目录, 也就是
/oracle/product/10.2.0
(4) 出现Select Installation Type 窗口,请选择custom,指定安装组件。
(5) 选择安装的组件
本安装指导没有安装以下组件:
oracle Advanced Security
oracle C++ call Interface
oracle Call Interface (OCI)
oracle Programmer
(6) 出现Product-Specific Prerequisite Checks 窗口,进行安装前检查。
(7) 出现summary 窗口,点击install 安装
(8) 出现安装进度Install 窗口,在进度进行到大概90%的时候,需要已root
帐户执行$ORACLE_HOME 下的root.sh
(9) 出现End of Installation 窗口,安装完毕,点击Exit 完成安装。
6.5 网络监听配置
(1) 要启动 NETCA,请以 oracle 用户帐户运行以下 GUI 实用程序:
$netca
(2) 选择监听程序配置
(3) 后续屏幕只需接受后续 6 个屏幕的默认参数即可:
选择:添加
监听程序名:LISTENER
选定的协议:TCP
端口号:1521
是否配置另外一个:否
HP 双机MC/SG 上ORACLE 10g 安装指导
杭州华三通信技术有限公司 第32页, 共39页
监听程序配置完成:下一步
您将返回到此“欢迎使用”屏幕。
(4) 选择命名方法配置
后续屏幕是:
选择的命名方法: 本地命名
命名方法配置完成:下一步
返回到此“欢迎使用”屏幕。
(5) 选择完成,退出 NETCA
6.6 创建数据库
(1) 启动DBCA 建立数据库。使用oracle 帐户,执行dbca 命令
$ dbca
(2) Welcome 窗口,点击Next
(3) 选择 Create a database,点击Next
(4) 数据库模板选择。选择New Database
(5) Database Identification 窗口,定义数据库名,输入ora
(6) Database Feature 窗口,不需要选择任何组件;并选择使用文件系统建库
(7) Database Connection Option 窗口,选择Dedicated Server Mode
(8) Installation Parameters 窗口,只需在Character Sets 中选择ZHS16GBK
字符集。其它保持默认配置。
(9) Creation Options 窗口,勾上Create Database 和 Generate Database
Creation Scripts 选项
(10) Summary 窗口,检查一下,点击OK,开始建库。
(11) 以上操作完成后,会提示设置sys,system 密码,请自行设置,dbca 运行
完成。
最后验证一把数据库连接:
#su – oracle
$sqlplus /nolog
SQL>conn sys/dba@ora
SQL>select * from v$option;
7 安装验证
7.1 启动双机
#cmruncl -v
HP 双机MC/SG 上ORACLE 10g 安装指导
杭州华三通信技术有限公司 第33页, 共39页
7.2 查看双机信息
#cmviewcl –v
CLUSTER STATUS
HP up
NODE STATUS STATE
hp1 up running
Cluster_Lock_LVM:
VOLUME_GROUP PHYSICAL_VOLUME STATUS
/dev/vglock /dev/dsk/c5t0d0 up
Network_Parameters:
INTERFACE STATUS PATH NAME
PRIMARY up 0/1/2/1 lan1
PRIMARY up 0/1/2/0 lan0
PACKAGE STATUS STATE AUTO_RUN NODE
ora up running enabled hp1
Policy_Parameters:
POLICY_NAME CONFIGURED_VALUE
Failover configured_node
Failback manual
Script_Parameters:
ITEM STATUS MAX_RESTARTS RESTARTS NAME
Subnet up 200.200.20.0
Node_Switching_Parameters:
NODE_TYPE STATUS SWITCHING NAME
Primary up enabled hp1 (current)
Alternate up enabled hp2
NODE STATUS STATE
HP51 up running
Cluster_Lock_LVM:
VOLUME_GROUP PHYSICAL_VOLUME STATUS
/dev/vglock /dev/dsk/c5t0d0 up
Network_Parameters:
INTERFACE STATUS PATH NAME
PRIMARY up 0/1/2/1 lan1
HP 双机MC/SG 上ORACLE 10g 安装指导
杭州华三通信技术有限公司 第34页, 共39页
PRIMARY up 0/1/2/0 lan0
7.3 双机倒换验证
当 oracle 在hp1 上运行时,手工将系统shutdown
#shutdown -h -y 0
然后到hp2 上查看双机的状态
#cmviewcl –v
连接oracle 数据库能否连接上。
提示: 双机倒换后的检查
1. 检查 cmviewcl –v 是否输出正确,比如ora 包是不是在接管node 上
2. 检查是否 mount 的oracle 主程序,如本安装指导使用的/oracle 目录
3. 检查浮动 IP 是否能PING 通,注意切换中只有1-2 个丢包
4. 检查 oracle 服务是否正常,倒换后马上连接数据库没有问题。而且查询倒换前
的数据没有问题。
7.4 拔掉前端网络接口网线测试
参照 7.3 验证
7.5 ORACLE 服务故障测试
如果 ORACLE 服务故障,ORACLE 服务运行包会切换到备节点上。
可以做以下操作观察运行包是否切换
执行 oracle10g.sh stop 命令,运行包应该切换
强制中止(kill -9)oracle10g 的某个进程,运行包应该切换
8 附录:MC/ServieGuard 常用命令
MC ServiceGuard 常用命令
cmapplyconf 验证并应用 Serviceguard 群集配置和程序包配置文件。
cmapplyconf 命令验证在 cluster_ascii_file 和相关的 pkg_ascii_file 中指定的群集配置和程
序包配置,创建或更新名为 cmclconfig 的二进制配置文件,并将其分发到所有节点。此二
进制配置文件包含群集配置信息以及所有指定的程序包的程序包配置信息。此文件保存在
/etc/cmcluster 目录下,群集守护程序用它来管理整个群集和程序包环境。
如果需要对群集配置或任何程序包配置文件进行修改,请首先更新相应的 ASCII 文件(群集
或者程序包),再使用 cmcheckconf 命令使这些更改生效,然后使用 cmapplyconf 命令验
证二进制文件,并将其再分发到所有节点。只有在群集关闭后,才能修改群集和程序包配置。
HP 双机MC/SG 上ORACLE 10g 安装指导
杭州华三通信技术有限公司 第35页, 共39页
MC ServiceGuard 常用命令
仅在首次配置群集或者添加、删除群集节点时,才需要指定群集 ASCII 文件。仅在添加程序
包或修改程序包配置时,才需要指定程序包 ASCII 文件。
在每次需要修改现有配置时,都建议用户运行 cmgetconf 命令来获得群集 ASCII 配置文件
或程序包 ASCII 配置文件。
请注意,cmapplyconf 命令将验证并分发群集配置或程序包文件。这不会造成群集守护程序
被启动或从群集配置中删除。这种处理方式同样适用于程序包配置,以确定是否添加或删除
程序包节点、程序包子网等。对程序包配置进行任何修改时都要求将程序包暂停。
cmcheckconf 检查高可用性群集配置和(或)程序包配置文件。
cmcheckconf 命令验证由 cluster_ascii_file 指定的群集配置和(或)由命令中的每个
pkg_ascii_file 指定的程序包配置文件。如果以前已经配置了群集,cmcheckconf 命令就会
将 cluster_ascii_file 中的配置与以前存储在二进制文件中的配置信息进行比较,并使更改生
效。这些规则也适用于 pkg_ascii_file。需要暂停群集才能运行 cmcheckconf 命令。
cmhaltcl 暂停高可用性群集。
cmhaltcl 命令使已配置群集中的所有节点停止其群集守护程序,可选地暂停此进程中的所有
程序包或应用程序。
此命令将暂停当前正在运行的所有系统上的所有守护程序。如果用户只想关闭守护程序的一
个子集,则应使用 cmhaltnode 命令。
cmhaltnode 暂停高可用性群集中的节点。
cmhaltnode 命令使节点暂停其群集守护程序,并将其自身从现有群集中删除。
当在一个节点上运行 cmhaltnode 命令时,群集守护程序会暂停,并且如果可能,在此节点
上运行的所有程序包都将可选地移动到其他节点上。如果未指定节点名,则将暂停在本地节
点上运行的群集守护程序,并将其从现有的群集中删除。
cmhaltpkg 暂停高可用性程序包。
cmhaltpkg 命令手动暂停在 Serviceguard 群集中运行的高可用性程序包。此命令可以在群
集中的任何节点上运行,并可以暂停群集中的任何程序包。
cmmodpkg 启用或禁用高可用性程序包的切换属性。
cmmodpkg 命令启用或禁用程序包出现故障时切换到其他节点的能力,并且它还启用或禁用
特定节点运行特定的程序包。可以全局启用或禁用程序包的切换属性。例如,如果一个被全
局禁用此能力的程序包出现故障,它将不会切换到其他节点;如果一个被全局启用此能力的
程序包出现故障,它将尝试切换到配置为可以在其上运行的第一个可用节点上。
cmruncl 运行高可用性群集。
cmruncl 命令可使配置群集中的所有节点或所有指定的节点启动其群集守护程序,并组成一
个新的群集。只有当群集在任何已配置的节点上都处于非活动状态时,才可以运行此命令。
如果群集已经在节点子集上运行,则应该使用 cmrunnode 命令启动剩余的节点,并强制它
们加入到现有的群集中。
cmrunnode 运行高可用性群集中的节点。
cmrunnode 命令可使节点启动其群集守护程序,以加入到现有的群集中。
启动节点不会导致任何活动的程序包移动到新的节点。不过,如果程序包是关闭的,并且启
用了切换功能,而且能够在新节点上运行,则此程序包将会在新节点上自动运行。
HP 双机MC/SG 上ORACLE 10g 安装指导
杭州华三通信技术有限公司 第36页, 共39页
MC ServiceGuard 常用命令
cmrunpkg 运行高可用性程序包。
cmrunpkg 命令运行先前暂停的高可用性程序包。此命令可以在群集中的任何节点上运行,
并可以运行群集中的任何程序包。如果没有指定节点,则将使用运行此命令的节点。如果当
前节点不能运行程序包,或不在程序包可能的属主列表中,这样做将导致错误。在新节点上
启动程序包时,将执行程序包的运行脚本。
cmviewcl 查看关于当前高可用性群集的信息。
cmviewcl 命令显示群集的当前状态信息。可以显示整个群集的输出信息,或者只显示特定
节点或程序包的输出信息。
可以用表格格式对信息进行格式设置,这种组织方式适用于查看;也可以用线型格式对信息
进行格式设置,这种方式适用于脚本,易于进行分析。
cmviewconf 查看 Serviceguard 群集配置信息。
cmviewconf 命令以 ASCII 格式收集和显示现有群集二进制配置文件中的群集配置信息。作
为可选项,输出信息还可以写入文件中。此命令可以用作确定群集配置的故障排除工具。
Copyright © 2008 杭州华三通信技术有限公司版权所有,保留一切权利。
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。
本文档中的信息可能变动,恕不另行通知。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/41451/viewspace-1047904/
,如需转载,请注明出处,否则将追究法律责任。