高可用性oracle配置步骤(HP-Unix环境)

来源:互联网 发布:windows未能启动系统 编辑:程序博客网 时间:2024/05/22 16:41
硬件环境:
两台HP Server rp5470小型机,7110磁盘阵列
软件环境:
HP-UX B.11.11、MirrorDisk/UX B.11.11、MC / Service Guard A.11.14、Oracle 9i for HP-UX。

3.1准备系统
3.1.1编辑安全文件:
[/@machine01]vi .rhosts文件
machine1 root
machine2 root
3.1.2创建根逻辑卷的镜像
[/@machine01]#pvcreate -B /dev/rdsk/c2t2d0
[/@machine01]#vgextend /dev/vg00 /dev/dsk/c2t2d0
[/@machine01]#mkboot -l /dev/rdsk/c2t2d0
[/@machine01]#lvextend -m 1 /dev/vg00/lvol1 /dev/dsk/c2t2d0
[/@machine01]#lvextend -m 1 /dev/vg00/lvol2 /dev/dsk/c2t2d0
[/@machine01]#lvextend -m 1 /dev/vg00/lvol3 /dev/dsk/c2t2d0
[/@machine01]#lvextend -m 1 /dev/vg00/secswap /dev/dsk/c2t2d0
[/@machine01]#lvextend -m 1 /dev/vg00/lvol4 /dev/dsk/c2t2d0
[/@machine01]#lvextend -m 1 /dev/vg00/lvol5 /dev/dsk/c2t2d0
[/@machine01]#lvextend -m 1 /dev/vg00/lvol6 /dev/dsk/c2t2d0
[/@machine01]#lvextend -m 1 /dev/vg00/lvol7 /dev/dsk/c2t2d0
[/@machine01]#lvextend -m 1 /dev/vg00/lvol8 /dev/dsk/c2t2d0
[/@machine01]#/usr/sbin/lvlnboot -b /dev/vg00/lvol1
[/@machine01]#/usr/sbin/lvlnboot -s /dev/vg00/lvol2
[/@machine01]#/usr/sbin/lvlnboot -r /dev/vg00/lvol3
验证镜像是否已正确创建:
[/@machine01]#lvlnboot -v
显示下列信息说明镜像已正确创建
Boot Definitions for Volume Group /dev/vg00:
Physical Volumes belonging in Root Volume Group:
        /dev/dsk/c1t2d0 (0/0/1/1.2.0) -- Boot Disk
        /dev/dsk/c2t2d0 (0/0/2/0.2.0) -- Boot Disk
Boot: lvol1     on:     /dev/dsk/c1t2d0
                        /dev/dsk/c2t2d0
Root: lvol3     on:     /dev/dsk/c1t2d0
                        /dev/dsk/c2t2d0
Swap: lvol2     on:     /dev/dsk/c1t2d0
                        /dev/dsk/c2t2d0
Dump: lvol2     on:     /dev/dsk/c1t2d0, 0
在machine02机上重复以上步骤
3.1.3创建群集锁卷组和物理卷:
[/@machine01]#pvcreate -f /dev/rdsk/c4t0d0
[/@machine01]#mkdir /dev/vglock
[/@machine01]#mknod /dev/vglock/group C 64 0x020000
[/@machine01]#vgcreate /dev/vglock /dev/dsk/c4t0d0
[/@machine01]#vgexport -p -s -m /tmp/vglock.map /dev/vglock
[/@machine01]#rcp /tmp/vglock.map machine02:/tmp/.
[/@machine02]#mkdir /dev/vglock
[/@machine02]#mknod /dev/vglock/group c 64 0x020000
[/@machine02]#vgimport -s -m /tmp/vglock.map /dev/vglock
3.2用LVM创建存储基本结构:
3.2.1创建卷组:
#c4t0d1盘来自磁盘阵列,vg01用于存放oracle库ora9的数据
[/@machine01]#pvcreate -f dev/rdsk/c4t0d1
[/@machine01]#mkdir /dev/vg01
[/@machine01]#mknod /dev/vg01/group c 64 0x010000
[/@machine01]#vgcreate /dev/vg01 /dev/dsk/c4t0d1
[/@machine01]#lvcreate -L 10000 /dev/vg01
[/@machine01]#newfs -F vxfs /dev/vg01/data
[/@machine01]#mkdir /data
[/@machine01]#mount /dev/vg01/data /data
[/@machine01]#vgdisplay -v /dev/vg01 #验证卷组是否已正确创建
3.2.2将卷组分发到二号机:
[/@machine01]#umount /data
[/@machine01]#vgchange -a n /dev/vg01
[/@machine01]#vgexport -p -s -m /tmp/vg01.map /dev/vg01
[/@machine01]#rcp /tmp/vg01.map machine02:/tmp/.
[/@machine02]#mkdir /dev/vg01
[/@machine02]#mknod /dev/vg01/group c 64 0x010000
[/@machine02]#vgimport -s -m /tmp/vg01.map /dev/vg01
[/@machine02]#vgchange -a y /dev/vg01
[/@machine02]#mkdir /data
[/@machine02]#mount /dev/vg01/data /data
[/@machine02]#vgdisplay -v /dev/vg01] #验证配置
[/@machine02]#umount /data
[/@machine02]#vgchange -a n /dev/vg01

3.3建库:
3.3.1建库:
假设Oracle99i数据库软件已经安装在系统中,oracle用户及其环境变量等均已设置好:
ORACLE_BASE=/home/oracle/app
ORACLE_HOME=$ORACLE_BASE/product/9.2.0
ORACLE_SID=ora9
ORACLE_TERM=xterm
NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:$ORACLE_HOME/rdbms/lib
PATH=/bin:/usr/bin:/usr/sbin:/etc:/opt/bin:/usr/ccs/bin:/usr/local/bin:$ORACLE_H
OME/bin
按如下步骤执行:
[/@machine01]#vgchange -a y vg01
[/@machine01]#mount /dev/vg01/data /data
启动XWindows,打开一个terminal窗口,在terminal窗口中执行下列命令
[/@machine01]#su - oracle
$vi .profile
DISPLAY=x.x.x.x:0.0 #改DISPLAY变量,x.x.x.x为你当前运行xwindows终端的电脑的ip地址
$exit
[/@machine01]#su - oracle
$dbca
在GUI中选Create a database——New Database——全局数据库名:ora9.world,SID:ora9——Dedicated ServerMode——Initialization Parameters,根据实际需要填参数——改变DataBase Storage画面中Controlfile、datafile、Redo Log文件位置均为/data/——Create a database并生成创建代码——最后改sys及system用户的口令——完成

3.3.2将必要的文件拷贝至二号机:
[/home/oracle/app/admin/@machine02]rcp –r machine01:/home/oracle/app/admin/ora9 .
[/home/oracle/app/admin@machine02]#chown -R oracle:dba ora9
[/home/oracle/app/product/9.2.0/@machine02]rcp-r machine01:/home/oracle/app/product/9.2.0/dbs .
[/home/oracle/app/product/9.2.0/@machine02]chown -R oracle:dba dbs

3.4配置群集:
3.4.1生成摸板并修改
[/@machine01]#cmquerycl -v -c /etc/cmcluster/clconfig.ascii -n machine01 -n machine02
[/@machine01]#vi /etc/cmcluster/clconfig.ascii
CLUSTER_NAME   oracledb
FIRST_CLUSTER_LOCK_VG  /dev/vglock
NODE_NAME  machine01
  NETWORK_INTERFACE lan2
    HEARTBEAT_IP  192.168.100.80
  NETWORK_INTERFACE lan0
    HEARTBEAT_IP  192.1.1.1
  FIRST_CLUSTER_LOCK_PV /dev/dsk/c4t0d0
NODE_NAME  machine02
  NETWORK_INTERFACE lan0
    HEARTBEAT_IP  192.1.1.2
  NETWORK_INTERFACE lan2
    HEARTBEAT_IP  192.168.100.81
  FIRST_CLUSTER_LOCK_PV /dev/dsk/c4t0d0
HEARTBEAT_INTERVAL  2000000
NODE_TIMEOUT  6000000
AUTO_START_TIMEOUT  600000000
NETWORK_POLLING_INTERVAL  2000000
MAX_CONFIGURED_PACKAGES  4  #最大包个数,根据实际情况确定,小于等于60
VOLUME_GROUP  /dev/vg01
VOLUME_GROUP  /dev/vglock
3.4.2验证群集配置:
[/@machine01]#cmcheckconf -k -v -C /etc/clconfig.ascii
3.4.3分发二进制文件:
[/@machine01]#vgchange -a y vglock #必须仅在发出cmapplyconf命令的节点上激活vglock,这样才可初始化锁磁盘
[/@machine01]#cmapplyconf -k -v -C /etc/cmcluster/clconfig.ascii
[/@machine01]#vgchange -a n vglock
3.4.4启动群集并检查群集:
[/@machine01]#cmruncl -v
[/@machine01]#cmviewcl -v
还可通过断开某节点网络、停下某节点等观察群集是否能正常切换。
3.4.5存储卷组和群集锁配置数据:
[/@machine01]#vgcfgbackup vg01
[/@machine01]#vgcfgbackup vglock

3.5配置高可用性oracle包:
3.5.1建立包目录
[/@machine01]#mkdir /etc/cmcluster/pkg_ora
3.5.2创建包配置文件并进行修改
[/@machine01]#cmmakepkg -p /etc/cmcluster/pkg_ora/pkg_ora.conf
[/@machine01]#vi /etc/cmcluster/pkg_ora/pkg_ora.conf
PACKAGE_NAME   pkg_ora
PACKAGE_TYPE    FAILOVER
FAILOVER_POLICY  CONFIGURED_NODE
FAILBACK_POLICY  MANUAL
NODE_NAME                machine01
NODE_NAME                machine02
AUTO_RUN                 YES
LOCAL_LAN_FAILOVER_ALLOWED  YES
NODE_FAIL_FAST_ENABLED    NO
RUN_SCRIPT       /etc/cmcluster/pkg_ora/pkg_ora.cntl  
RUN_SCRIPT_TIMEOUT    NO_TIMEOUT
HALT_SCRIPT     /etc/cmcluster/pkg_ora/pkg_ora.cntl  
HALT_SCRIPT_TIMEOUT    NO_TIMEOUT
SERVICE_NAME     oracle_service
SERVICE_FAIL_FAST_ENABLED   NO
SERVICE_HALT_TIMEOUT    300
SUBNET     192.168.100.0
3.5.3创建包控制文件并进行修改
[/@machine01]#cmmakepkg -v -s /etc/cmcluster/pkg_ora/pkg_ora.cntl
[/@machine01]#vi /etc/cmcluster/pkg_ora/pkg_ora.cntl
VG[0]="/dev/vg01"
LV[0]="/dev/vg01/data"; FS[0]="/data"; FS_MOUNT_OPT[0]="-o rw"
IP[0]="192.168.100.82"
SUBNET[0]="192.168.100.0"
SERVICE_NAME[0]="oracle_service"
SERVICE_CMD[0]="/etc/cmcluster/pkg_ora/oracle9i.sh monitor"
SERVICE_RESTART[0]=""
function customer_defined_run_cmds
{
# ADD customer defined run commands.
: # do nothing instruction, because a function must contain some command.
/etc/cmcluster/pkg_ora/oracle9i.sh start
 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_ora/oracle9i.sh halt
 test_return 52
}
3.5.4修改oracle9i脚本     
[/@machine01]#vi /etc/cmcluster/pkg_ora/oracle9i.sh
SID_NAME=ora9
ORACLE_HOME=/home/oracle/app/product/9.2.0
LISTENER_NAME=LISTENER
LISTENER_PASS=
MONITOR_INTERVAL=30
PACKAGE_NAME=pkg_ora
其余部分保持原状  
3.5.5验证包配置文件
[/etc/cmcluster/pkg_ora@machine01]#cmcheckconf –v –C /etc/cmcluster/clconfig.ascii -P pkg_ora.conf
3.5.6分发包二进制文件
[/etc/cmcluster/pkg_ora@machine01]#cmapplyconf -v –C /etc/cmcluster/clconfig.ascii -P pkg_ora.conf
3.5.7修改listener.ora文件
[/home/oracle/app/product/9.2.0/@machine01]#vi listener.ora
将下列条目:
(ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.100.80)(PORT = 1521))
192.168.100.80改为包地址192.168.100.82,其余部分不变。
3.5.8将包目录和listener.ora文件拷贝至二号机
[/etc/cmcluster@machine02]#rcp -r machine01:/etc/cmcluster/pkg_ora .
[/home/oracle/app/product/9.2.0/network/@machine02]rcp machine01:/oracle/app/product/9.2.0/network/listener.ora .
[/home/oracle/app/product/9.2.0/network/@machine02]chown oracle:dba listener.ora
3.5.9启动包并观察包是否运行正常
[/@machine01]#cmmodpkg -v -e pkg_ora  #启动包
[/@machine01]#cmviewcl -v  #观察包及群集是否运行正常
还可通过sqlplus及OEM等oracle实用程序验证oracle包是否运行正常。

原创粉丝点击