- 论坛徽章:
- 0
|
# FILESYSTEM UNMOUNT COUNT
# Specify the number of unmount attempts for each filesystem during package
# shutdown. The default is set to 1.
FS_UMOUNT_COUNT=1
#注意:按照默认数值
# IP ADDRESSES
# Specify the IP and Subnet address pairs which are used by this package.
# Uncomment IP[0]=\"\" and SUBNET[0]=\"\" and fill in the name of your first
# IP and subnet address. You must begin with IP[0] and SUBNET[0] and
# increment the list in sequence.
#
# For example, if this package uses an IP of 192.10.25.12 and a subnet of
# 192.10.25.0 enter:
# IP[0]=192.10.25.12
# SUBNET[0]=192.10.25.0 # (netmask=255.255.255.0)
#
# Hint: Run \"netstat -i\" to see the available subnets in the Network field.
#
# IP/Subnet address pairs for each IP address you want to add to a subnet
# interface card. Must be set in pairs, even for IP addresses on the same
# subnet.
#
IP[0]=10.10.10.8
SUBNET[0]=10.10.10.0
#注意:这个地址是程序包ORACLE的漂移IP地址,不要和两个主机的真实IP,心跳IP混淆
# SERVICE NAMES AND COMMANDS.
# Specify the service name, command, and restart parameters which are
# used by this package. Uncomment SERVICE_NAME[0]=\"\", SERVICE_CMD[0]=\"\",
# SERVICE_RESTART[0]=\"\" and fill in the name of the first service, command,
# and restart parameters. You must begin with SERVICE_NAME[0], SERVICE_CMD[0],
# and SERVICE_RESTART[0] and increment the list in sequence.
#
# For example:
# SERVICE_NAME[0]=pkg1a
# SERVICE_CMD[0]=\"/usr/bin/X11/xclock -display 192.10.25.54:0\"
# SERVICE_RESTART[0]=\"\" # Will not restart the service.
#
# SERVICE_NAME[1]=pkg1b
# SERVICE_CMD[1]=\"/usr/bin/X11/xload -display 192.10.25.54:0\"
# SERVICE_RESTART[1]=\"-r 2\" # Will restart the service twice.
#
# SERVICE_NAME[2]=pkg1c
# SERVICE_CMD[2]=\"/usr/sbin/ping\"
# SERVICE_RESTART[2]=\"-R\" # Will restart the service an infinite
# number of times.
#
# Note: No environmental variables will be passed to the command, this
# includes the PATH variable. Absolute path names are required for the
# service command definition. Default shell is /usr/bin/sh.
#注意:上面是HP举的一个很无聊的例子,表示你可以启动一个程序包,这里是一个X-WIDONWS界面的钟表,一个主机关闭,但是钟表还在转动,表明MC确实可以做到高可用性,
这个例子只有在上培训课的时候才用,没有任何实际价值.
SERVICE_NAME[0]=\"dbservice\"
SERVICE_CMD[0]=\"/etc/cmcluster/pkg1/oracle.sh monitor\"
SERVICE_RESTART[0]=\"\"
#注意:要和文件/etc/cmcluster/pkg1/pkg1.ascii的SERVICE_NAME吻合
SERVICE_CMD[0]=\"/etc/cmcluster/pkg1/oracle.sh monitor\"
为什么要用 monitor呢?后面对这个文件详细解释
SERVICE_RESTART[0]=\"\" 写成 “-r 2”也可以,说明失败以后可以再重新启动两次.这个参数不重要
# DEFERRED_RESOURCE NAME
# Specify the full path name of the \'DEFERRED\' resources configured for
# this package. Uncomment DEFERRED_RESOURCE_NAME[0]=\"\" and fill in the
# full path name of the resource.
#
#DEFERRED_RESOURCE_NAME[0]=\"\"
# DTC manager information for each DTC.
# Example: DTC[0]=dtc_20
#DTC_NAME[0]=
#注意:资源的延迟特性,无所谓的参数
# START OF CUSTOMER DEFINED FUNCTIONS
# This function is a place holder for customer define functions.
# You should define all actions you want to happen here, before the service is
# started. You can create as many functions as you need.
function customer_defined_run_cmds
{
# ADD customer defined run commands.
# do nothing instruction, because a function must contain some command.
/etc/cmcluster/pkg1/oracle.sh start
test_return 51
}
#如果是什么事情也不做,可以加一个: 表示空包运行
#强烈注意: /etc/cmcluster/pkg1/oracle.sh start
一定要写这个sh,因为你要使用ORACLE的启动脚本
# This function is a place holder for customer define functions.
# You should define all actions you want to happen here, before the service is
# halted.
function customer_defined_halt_cmds
{
# ADD customer defined halt commands.
# do nothing instruction, because a function must contain some command.
# /etc/cmcluster/pkg1/oracle.sh shutdown
/etc/cmcluster/pkg1/oracle.sh halt
test_return 52
}
#强烈注意: /etc/cmcluster/pkg1/oracle.sh halt
一定要写这个sh,因为你要使用ORACLE的关闭脚本
# END OF CUSTOMER DEFINED FUNCTIONS
########################################################################
#######################################################################
#######################################################################
下面是MC怎样启动,关闭的程序,也许这就是为什么MC价值两千美圆的主要原因,
程序的主要思路,流程简单介绍:
按照给定的各个变量启动MC
activate_volume_group
获得vg的模式设定变量,vg属于独自占用状态(vgchange –e),如果是OPS版本,那么这里的程序要变化为有share模式(vgchange –s)的属性
check_and_mount
各个文件系统mount起来
add_ip_address
ip加上
get_ownership_dtc
托管资源控制
customer_defined_run_cmds
MC开始托管程序包
start_services
按照变量51启动程序
关闭MC:
halt_services
按照变量52关闭程序
customer_defined_halt_cmds
MC开始停止程序包
disown_dtc
放开资源控制
remove_ip_address
摆脱IP
umount_fs
umount 文件系统
deactivate_volume_group
放开vg控制权利
没有编程序基础,没有耐心就不要往下看了,估计IBM,VERITAS的CLUSTER和MC的程序差不多
########################################################################
#######################################################################
########################################################################
fi
C: COPY控制脚本
# rcp /etc/cmcluster/pkg1/control.sh hnyb02:/etc/cmcluter/pkg1/control.sh
D:验证模版文件
# cmcheckconf –v –P /etc/cmcluster/pkg1/pkg1.ascii
如果没有报错信息,显示完成信息,即表示通过。有的时候有一些有关CDROM的小警告,但是只要系统建议你可以做下一步,只要提示是complete就OK
E: 在节点间分发配置文件
# vgchange –a y /dev/vglock
# cmapplyconf –v –P /etc/cmcluster/pkg1/pkg1.ascii
#vgchange –a n /dev/vglock
注意: # vgchange –a y /dev/vglock
因为分发是正式的要发二进制的控制文件,一定要提前激活vglock的属性,否则以后MC启动有BUG
这个时候MC已经全部配置好了,但是需要提醒的是/etc/cmcluster/pkg1/oracle.sh这个重要的文件,HP公司给主要的数据库厂商(除了DB2)都提供了很好的监控脚本,但是用户要根据具体的情况改动.
这个脚本是不是免费的,在/opt/cluster里面会找到原始脚本,但是通过很多渠道可以免费得到.
F : oracle.sh参数分析
#!/usr/bin/sh
#VERSION=\"@(#) B.01.04 $Revision: 1.13 $ $Date: 98/07/23 10:18:02 $\"
# *****************************************************************************
# ******** Startup, Shutdown and Monitor Script for ORACLE (Template) *********
# *****************************************************************************
# ********** Note: This file MUST be edited before it can be used. ************
# *****************************************************************************
processes when
# there was more than one Oracle instance running.
ORA_7_3_X=no
ORA_8_0_X=no
ORA_8_1_X=yes
#注意:用户的ORACLE版本
SID_NAME=ora82
#注意:实例名
ORACLE_HOME=/home/oracle/app/oracle/product/8.1.6
#注意:设置变量
SQLNET=no
NET8=yes
#注意:使用NET8连接客户端
LISTENER_NAME=
LISTENER_PASS=
#注意:不用写
MONITOR_INTERVAL=30
#注意:30秒一个询问
PACKAGE_NAME=pkg1
#注意:程序包名字
TIME_OUT=10
#注意:超时错误
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} ora_arc0_${SID_NAME}
#强烈注意:如果ORACLE某些进程没有使用,比如没有使用归档进程,( ora_arc0_${SID_NAME})一定不可以在上面监控,否则MC认为你的ORACLE总是有问题,强制停止ORACLE进程
############################################################################################################################################################
下面的程序是HP根据你设置好的变量,详细的监控你的ORACLE的主要进程,即使你的ORACLE主要的6个进程是好的,但是有一个进程发生问题,HP一样会发生程序包的切换.
##############################################################################
##############################################################################
HOST=`hostname`
DATE=`date`
PATH=${ORACLE_HOME}/bin:/sbin:/usr/bin:/usr/sbin:/etc:/bin
export ORACLE_SID=${SID_NAME}
export ORACLE_HOME
F: 运行群集
# cmruncl –f –v
查看群集状态
# cmviewcl –v
停用群集
# cmhaltcl –f –v
不属于双机MC的注意问题
1:HP为了保护启动盘,使用了双保险
一个是备份全部vg00的内容,有任何问题出现,仍掉硬盘,用磁带机启动,全面回忆主机vg00的内容,时间需要50到70分钟.
还有就是使用MIRROR DISK软件保护系统, 有任何问题出现,仍掉一个硬盘,使用另外一个硬盘启动, 全面回忆主机vg00的内容,启动.时间需要5到10分钟
2:在HP上安装ORACLE,前提条件是
X-WINDOWS,JRE软件包,C编译器,
需要的主要系统工作是:改动KERNEL参数,建立DBA组,ORACLE用户,使用
chown –R改变相对应的属性,得到合适的ORACLE的环境变量
需要的数据库工作由ORACLE工程师完成。
3:ORACLE OPS版本的安装和CLIENT则需要更多的技巧,但是原理和普通的MC安装类似.
补充:MC本身不是一个技术,是一个方案的描述,其中网络,软件,应用,数据库,硬件,都会给MC造成影响,其中升级的时候最为危险。
本来在各个城市有很多处理问题的经验,碍于时间,就不想写了
多次和ORACLE合作做项目,感觉HP的技术难度和ORACLE不是一个概念,HP的难题和产品,经验结合很多,HP的难度是面面具到,有时候,一个电缆,一个光纤HUB,一个补丁就是罪魁祸首,事情完了才发现问题总是那么可笑,有时候一个问题的解决就是一个电话,两句话搞定。
但是ORACLE的难度需要仔细分析,一头钻进去,还要结合应用,SQL优化等。 |
|