• HP-UX oracle RAC 双机实践 (转载)


    一、软硬件配置检查
    1、检查内存
    #/usr/contrib/bin/machinfo
    CPU info:
      4 Intel(R) Itanium 2 9100 series processors (1.59 GHz, 18 MB)
              532 MT/s bus, CPU version A1
              8 logical processors (2 per socket)
    Memory: 32737 MB (31.97 GB)
    Firmware info:
       Firmware revision:  04.11
       FP SWA driver revision: 1.18
       IPMI is supported on this system.
       BMC firmware revision: 5.24
    Platform info:
       Model:                  "ia64 hp server rx6600"
       Machine ID number:      85468ec4-4ed7-11de-b9fa-eb58278042cf
       Machine serial number:  SGH4917N5P
    OS info:
       Nodename:  rx6600b
       Release:   HP-UX B.11.31
       Version:   U (unlimited-user license)
       Machine:   ia64
       ID Number: 2235993796
       vmunix _release_version:               
    @(#) $Revision: vmunix:    B.11.31_LR FLAVOR=perf

    2、检查交换空间
    #/usr/sbin/swapinfo -a
                 Kb      Kb      Kb   PCT  START/      Kb
    TYPE      AVAIL    USED    FREE  USED   LIMIT RESERVE  PRI  NAME
    dev     8388608       0 8388608    0%       0       -    1  /dev/vg00/lvol2
    reserve       -  579384 -579384
    memory  31886172 4310692 27575480   14%
    对于小于2g物理内存的系统,设置为物理内存的2倍。对应大于2g内存的系统,设置为跟物理内存同样大小。
    3、检查临时空间
    #bdf  /tmp
    Filesystem          kbytes    used   avail %used Mounted on
    /dev/vg00/lvol4    2097152  548944 1536784   26% /tmp
    保证至少400m,推荐1g
    如果没有400M可以设置oracle用户的环境变量,增加临时空间
    $ oracle用户执行 vi ~/.profile,增加
    export TEMP=/directory
    export TMPDIR=/directory
    可以在线扩展文件系统
    4、建立 oracle 安装目录,包括 crs (安装在共享存储上)
    #lvcreate -L 15g  -n lv_ora  /dev/vg00
    #newfs -F vxfs  /dev/vg00/rlv_ora
    #mkdir  /oracle
    #vi /etc/fstab   增加自动挂载
    #mount /oracle
    5、查看是否开启RAW设备的异步I/O
    # swlist | grep -i -e extsw -e gold -e qpk
    QPKBASE               B.11.31.0903.334a Base Quality Pack Bundle for HP-UX 11i v3, March 2009
    # ll /dev/async  (默认是开启的)
     crw-rw-rw- 1 bin bin 101 0x000000 Jun 9 09:38 /dev/async
    没有开启可以通过一下方法开启
    #创建/dev/async character device
    /sbin/mknod /dev/async c 101 0x0
    chown oracle:dba /dev/async
    chmod 660 /dev/async
    #用SAM在 kernel配置async driver
    => Kernel Configuration
    => Kernel
    => the driver is called 'asyncdsk'
    Generate new kernel(生成新的kernel)
    重启
    # shutdown -r -y 0
    #用sam设置HP-UX kernel参数
    max_async_ports = init.ora参数中指定的processes值 + oracle后台进程的数量
    aio_max_ops = 默认2048
    6、检查系统时间是否同步
    #date
    查看每个节点的日期时间,尽可能的同步,如果不同步,用date MMDDHHMIYY ,比如2007/09/09 10:21,可以如下设置:date 0909102107进行同步
    7、检查符合的连接是否存在
    cd /usr/lib
    ls libX*.sl
    # 如果不存在需要创建
    cd /usr/lib
    ln -s libX11.3 libX11.sl
    ln -s libXIE.2 libXIE.sl
    ln -s libXext.3 libXext.sl
    ln -s libXhp11.3 libXhp11.sl
    ln -s libXi.3 libXi.sl
    ln -s libXm.4 libXm.sl
    ln -s libXp.2 libXp.sl
    ln -s libXt.3 libXt.sl
    ln -s libXtst.2 libXtst.sl
    ls -al libX*.sl
    8、查看网络接口
    #查看各个接口
    #lanscan   
    Hardware Station        Crd Hdw   Net-Interface  NM  MAC       HP-DLPI DLPI
    Path     Address        In# State NamePPA        ID  Type      Support Mjr#
    0/4/2/0  0x001A4B09924C 0   UP    lan0 snap0     1   ETHER     Yes     119
    0/4/2/1  0x001A4B09924D 1   UP    lan1 snap1     2   ETHER     Yes     119
    LinkAgg0 0x000000000000 900 DOWN  lan900 snap900 4   ETHER     Yes     119
    LinkAgg1 0x000000000000 901 DOWN  lan901 snap901 5   ETHER     Yes     119
    LinkAgg2 0x000000000000 902 DOWN  lan902 snap902 6   ETHER     Yes     119
    LinkAgg3 0x000000000000 903 DOWN  lan903 snap903 7   ETHER     Yes     119
    LinkAgg4 0x000000000000 904 DOWN  lan904 snap904 8   ETHER     Yes     119

    #显示各个接口的ip和状态 (需要保证每台节点上使用的接口具有相同的名字)
    #netstat -in
    Name      Mtu  Network         Address         Ipkts              Ierrs Opkts              Oerrs Coll
    lo0      32808 127.0.0.0       127.0.0.1       58845              0     58845              0     0   
    lan1      1500 192.168.1.0     192.168.1.3     91391              0     178583             0     0   
    lan0      1500 10.160.8.0      10.160.8.12     6760363            0     640706             0     0
    # 显示指定接口的当前配置
    #ifconfig lanX
    保证一个接口比如lan0为外部连接用,一个接口如lan1为内部心跳线。vip的ip跟外部接口要在一个网段
    9、编辑 /etc/hosts
    #vi /etc/hosts
    192.168.1.2     rx6600a-priv
    192.168.1.3     rx6600b-priv
    10.160.8.11     rx6600a
    10.160.8.12     rx6600b
    10.160.8.15     rx6600a-vip
    10.160.8.16     rx6600b-vip
    127.0.0.1       localhost       loopback
    //注意: hosts中必须存在127.0.0.1的条目,且只能对应localhost相关,不能对应hostname;如果不设置127.0.0.1,则无法正常启动数据库。
    #vi .rhosts
    rx6600a root
    rx6600b root
    rx6600a-priv root
    rx6600b-priv root
    rx6600a-vip  root
    rx6600b-vip root
    # su - oracle
    #vi .rhosts
    rx6600a  oracle 
    rx6600b oracle
    rx6600a-priv oracle
    rx6600b-priv oracle
    rx6600a-vip  oracle
    rx6600b-vip oracle
    10、查看hp-ux的具体patch 和pack
    /usr/sbin/swlist -l bundle | grep xxxName
    /usr/sbin/swlist -l patch
    /usr/sbin/swlist -l patch <patch_number>
    /usr/sbin/swlist -l product |grep Serviceguard
      PHSS_38558            1.0            Serviceguard eRAC A.11.18.00 
      PHSS_39484            1.0            Serviceguard A.11.18.00 
      SG-NMAPI              A.11.18.00     SG-NMAPI Serviceguard Extension for RAC SD product 
      SG-RAC-Tool           A.11.18.00     Serviceguard Extension for RAC Toolkit SD Product 
      SGManagerPI           B.01.01        HP Serviceguard Manager 
      SGWBEMProviders       A.02.00.00     HP Serviceguard WBEM Providers SD Product 
      ServiceGuard          A.11.18.00     Serviceguard SD Product
    注:Hp-ux 11.31的默认安装过程,能够满足oracle 10.2.0.1的安装需求。
    二、安装MC/SG
    1、安装MC/SG
    #mount /dev/cdrom  /cdrom
    #swinstall -s /cdrom
    2、创建锁盘
    #ioscan -m dsf   //察看磁盘
    #pvcreate -f /dev/disk/disk27
    #mkdir /dev/vglock
    #mknod /dev/vglock/group  c 64  0x010000  (这里注意group不能重复)
    #vgcreate /dev/vglock /dev/disk/disk27 (将物理磁盘disk23加给该卷组)
    #strings /etc/lvmtab
    /dev/vg00
    /dev/disk/disk1_p2
    /dev/vglock
    /dev/disk/disk27
    /dev/vgcrs
    /dev/disk/disk33
    /dev/vgdata2
    /dev/disk/disk28
    /dev/disk/disk34
    /dev/vgdata1
    /dev/disk/disk25
    /dev/disk/disk26
    #vgchange -a n /dev/vglock
    #vgexport -s -p -v -m /tmp/vglock.map  /dev/vglock
    #rcp /tmp/vglock.map rx6600b:/tmp/
    #vgimport -s -m  /tmp/vglock.map
    3、创建concurrent VG 及相关文件系统或 LV raw
    #ioscan -m dsf
    #pvcreate -f /dev/rdisk/disk12
    #mkdir /dev/vg03
    #mknod /dev/vg03/group c 64 0x030000
    #vgcreate vg03 /dev/disk/disk12
    #lvcreate -L 1000 -n mylv vg03    
    建立文件系统
    #newfs -F vxfs /dev/vg03/mylv
    #mkdir /oradata                  建mount目录
    #mount /dev/vg03/mylv /oradata    mount文件系统
    开机自动挂载文件系统
    #vi /etc/fstab
    如果是要共享的vg 则:
     #vgchange -a n vg03           关闭卷组
     #vgexport -p -s -m /tmp/map1 vg03    导出卷组配置信息(注:-p是保留卷组信息,-s是设为共享,-m /tmp/map1是生成map1卷组信息信息文件)
     #rcp /tmp/map1 rx6600b:/tmp/map1   拷贝文件到主机B上
    在 rx6600b 机器上
       #mkdir /dev/vg03             创建设备卷目录
       #mknod /dev/vg03/group c 64 0x030000  创建卷控制文件
    (注:03是机器上唯一的,先用ls -l */group查看是否已存在,如已存在03,将改变此值,取值:00-16)
       #vgimport -s -m /tmp/map1 vg03    导入vg03卷组信息
       #strings /etc/lvmtab       查看导入的卷组配置
       #vgchange -a y vg03       激活vg03卷组
       #mkdir /oradata            建mount目录(与主机A相同)
       #mount /dev/vg03/mylv /oradata    mount文件系统
    将VG设置为非自动激活
    #vi /etc/lvmrc
    其中
    AUTO_VG_ACTIVATE=1 修改为0

    4、MC/SG 配置
    #cd /etc/cmcluster          进入cluster的默认目录
    #cmquerycl -C cluster.ascii -n rx6600 -n rx6600  创建cluster文本文件
    #vi cluster.ascii              编辑cluster ASCII 文件,更改cluste name、锁盘、节点心跳时间、包数量
    CLUSTER_NAME            cluster1
    FIRST_CLUSTER_LOCK_VG           /dev/vglock
    NODE_NAME               rx6600a
    NETWORK_INTERFACE     lan0
    HEARTBEAT_IP        10.160.8.11
    NETWORK_INTERFACE     lan1
    HEARTBEAT_IP        192.168.1.2
    #  CLUSTER_LOCK_LUN     
    FIRST_CLUSTER_LOCK_PV  /dev/disk/disk27
    NODE_NAME               rx6600b
      NETWORK_INTERFACE     lan0
        HEARTBEAT_IP        10.160.8.12
      NETWORK_INTERFACE     lan1
        HEARTBEAT_IP        192.168.1.3
    #  CLUSTER_LOCK_LUN     
      FIRST_CLUSTER_LOCK_PV /dev/disk/disk32

    HEARTBEAT_INTERVAL              1000000
    NODE_TIMEOUT            2000000
    AUTO_START_TIMEOUT      600000000
    NETWORK_POLLING_INTERVAL        2000000
    MAX_CONFIGURED_PACKAGES         4
    ///// VOLUME_GROUP          /dev/vg02          热备双机时,设置
    OPS_VOLUME_GROUP                /dev/vglock                //并发VG 的设置,用于 oracle RAC
    OPS_VOLUME_GROUP                /dev/vgcrs
    OPS_VOLUME_GROUP                /dev/vgdata2
    OPS_VOLUME_GROUP                /dev/vgdata1
    #cmcheckconf -C cluster.ascii      检查cluster、节点配置情况
    #cmapplyconf -C cluster.ascii      创建cluster
    #cmruncl -v   
    #cmviewcl -v   
    5.配置服务包运行脚本、环境
    主机A(rx660a):
    #mkdir /etc/cmcluster/pkg1
    #cd /etc/cmcluster/pkg1                         创建和进入一目录
    #cmmakepkg -p clustercrs.conf         创建包配置文件,可修改包名、节点、服务和包属性
    #vi clustercrs.conf                               编辑包配置文件
    PACKAGE_NAME  pkg1        //包名字
    PACKAGE_TYPE                    FAILOVER     //发生错误时进行切换。
    NODE_NAME     rx6600a            //first 优先级节点1
    //NODE_NAME     rx6600b            //second优先级节点1,当热备时用
    AUTO_RUN                        YES    //cmruncl 时,自启动。
    NODE_FAIL_FAST_ENABLED          NO     //当pkg 发生问题时,节点是否也宕。
    RUN_SCRIPT /etc/cmcluster/pkg1/clustercrs.cntl     包运行脚本
    RUN_SCRIPT_TIMEOUT  NO_TIMEOUT
    HALT_SCRIPT /etc/cmcluster/pkg1/clustercrs.cntl     包停止脚本
    HALT_SCRIPT_TIMEOUT  NO_TIMEOUT
    #CONFIGURED_NODE, MIN_PACKAGE_NODE, SITE_PREFERRED.    //当pkg fail 时,切换到的节点规则
    FAILOVER_POLICY                 CONFIGURED_NODE                              //切换到已配置的优先级高的节点。
    FAILBACK_POLICY                 MANUAL                                                  //是自动AUTOMATIC ,还是 手动 切换回来。
    MONITORED_SUBNET    10.160.8.0
    #cmmakepkg -s clustercrs.cntl           创建包控制脚本
    #vi clustercrs.cntl                       编辑包控制脚本
    clustercrs.cntl配置例子:
    PATH=/usr/bin:/usr/sbin:/etc:/bin:/usr/lbin:/etc/cmcluster/pkg1    ///加入包文件目录的路径
    VGCHANGE="vgchange -a s"   //MC接管激活卷组的参数,默认是vgchange -a e ,RAC 用vgchange -a s
    VG[0]=vg03            //切换接管的卷组名,可同时有多个,顺序是0、1、2、3
    VG[1]="vgdata1"
    VG[2]="vgdata2"
    VG[3]="vgcrs"
    /// LV[2]=/dev/vg03/mylv; FS[2]=/oradata; FS_MOUNT_OPT[2]=""  // 逻辑卷的mount 目录,需要挂载的文件系统
    //IP[0]=192.168.168.20                应用包的IP地址
    //SUBNET[0]=192.168.168.0             应用包的监听网段
    //SERVICE_NAME[0]="demo"
    //SERVICE_CMD[0]="/usr/bin/X11/xclock -display 192.168.168.23:0"(或设置一个脚本,内容见附录)
    //SERVICE_RESTART[0]="-R"
    function customer_defined_run_cmds
    {  (在此加入应用启动的命令)
     test_return 51
    }
           
    function customer_defined_halt_cmds
    {   (在此加入应用关闭的命令)
     test_return 52
    }
    (注: SERVICE_NAME[0]="demo"是服务名,必须与demo.conf里的SERVICE_NAME相同名。SERVICE_CMD[0]= "..."是启动服务时运行的命令,现在用的命令是"/usr/bin/X11/xclock -display 192.168.168.23:0"表示运行xclock并在192.168.168.23的工作站上显示出来。SERVICE_RESTART[0] =""是服务重启的次数,“-r 2”是重启两次,“-R”是不断重启。)
    4.在集群内添加服务包,配置各节点接管包环境
    #rcp clustercrs.cntl rx6600b:/etc/cmcluster/pkg1     拷贝控制脚本,将demo.cntl控制脚本拷到主机B上,使其环境同步)
    #cmcheckconf -v -P clustercrs.conf         检查包配置,检验以上对包的配置是否有误,在脚本目录里会有与脚本名相同的log文件,如:demo.cntl.log 。如果一切无误将接着做下一步,否则要做相应的修改,直至无误。)
    #cmapplyconf -v -P clustercrs.conf    将包加入集群cluster
    执行配置检查
    #cmcheckconf -v -C /etc/cmcluster/cmcluster.ascii -P /etc/cmcluster/informix/informix.cntl
    重新分发cluster.ascii文件
    #cmapplyconf -v -C /etc/cmcluster/cluster.ascii -P /etc/cmcluster/informix/informix.cntl
    #cmrunpkg cluster                           运行demo包
    #cmviewcl -v                  查看cluster和cluster里节点的信息
    CLUSTER、NODE、INTERFACE、PACKAGE的状态都是up和running ,PKG_SWITCH、NODE_TYPE SWITCHING都是enabled,)
    5.启动和管理、集群、节点、服务包
      #cmruncl                   启动集群cluster
      #cmhaltcl                   关闭集群cluster
      #cmrunnode  node_name     启动一个或多个节点
      #cmhaltnode -f node_name    关闭一个或多个节点
      #cmrunpkg  pkg_name      启动应用包
      #cmhaltpkg  pkg_name      关闭应用包
      #cmviewcl -v                查看cluster和cluster里节点的信息
      #cmmodpkg -e pkg_name      使应用包可被接管、切换
      #cmmonpkg -e -n node_name pkg_name  使节点可接管应用包
    附录:
    mc的监控脚本可以写一个无实质的循环指令,目的在于让命令不执行不间断。可以起一个名为monitor的脚本,在脚本内写入简单的,如:
    while [ 1 ]
    do
    sleep 30
    done

    安装 oracle clusterware
    采取文件系统形式或 LV raw 方式,则需要OPSVG 解决concurrent VG的问题。
    #groupadd -g 201 dba
    #groupadd -g 200 oinstall
    #useradd -u 200 -g oinstall -G dba,oinstall oracle  //如果没有创建oracle的默认目录,创建默认目录 /home/oracle
    #id oracle            //检查是否存在nobody用户
    #id nobody
    编辑oracle用户$HOME目录下的.rhosts
    #vi /home/oracle/.rhosts
    rx6600a  oracle
    rx6600a_vip  oracle
    rx6600a_priv  oracle
    rx6600b  oracle
    rx6600b_vip  oracle
    rx6600b_priv  oracle
    配置 profile 文件
    #vi /home/oracle/.profile
    ORACLE_HOME=/oracle/product/10.2.0 
    export ORACLE_HOME 
    ORACLE_BASE=/oracle 
    export ORACLE_BASE 
    ORACLE_SID=gzga1
    export ORACLE_SID 
    export ORA_CRS_HOME=/oracrs
    JAVA_HOME=/opt/java1.5 
    export JAVA_HOME
    TNS_ADMIN=$ORACLE_HOME/network/admin 
    export TNS_ADMIN 
    NLS_LANG=AMERICAN_AMERICA.ZHS16GBK 
    export NLS_LANG 
    NLS_LANGUAGE=$NLS_LANG 
    export NLS_LANGUAGE 
    ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data export ORA_NLS33 
    LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:$ORACLE_HOME/rdbms/lib 
    SHLIB_PATH=$ORACLE_HOME/lib32:$ORACLE_HOME/rdbms/lib32 
    export LD_LIBRARY_PATH 
    export SHLIB_PATH 
    stty erase 
    PATH=$PATH:/opt/java1.5/bin:/bin:/usr/bin:/usr/sbin:/etc:/opt/bin:/usr/ccs/bin:/usr/local/bin:$ORACLE_HOME/bin:. 
    export PATH 
    TMP=/tmp export TMP 
    TMPDIR=/tmp export TMPDIR 
    CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib:$ORACLE_HOME/jdbc/lib/classes12.zip 
    export CLASSPATH

    ORACLE_BASE=/oracle/app/oracle;export ORACLE_BASE
    ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db;export ORACLE_HOME
    export ORA_CRS_HOME=/oracrs
    ORACLE_SID=gzga1;export ORACLE_SID
    ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data;export ORA_NLS33
    ORACLE_TERM=vt100;export ORACLE_TERM
    TMPDIR=/oracle/tmp;export TMPDIR
    LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib;export LD_LIBRARY_PATH
    PATH=/usr/ccs/bin:$ORACLE_HOME/bin:/usr/bin:/usr/opt/networker/bin:$PATH;export PATH
    DISPLAY=10.160.8.191:0.0;export DISPLAY
    NLS_LANG=american_america.zhs16gbk;export NLS_LANG
    TNS_ADMIN=$ORACLE_HOME/network/admin;export TNS_ADMIN
    TERM=vt100;export TERM
    EDITOR=vi; export EDITOR
    TMP=/tmp;export TMP
    CLASSPATH=$ORACLE_HOME/JRE/lib:$ORACLE_HOME/jlib:$ORACLE_HOME/network/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/plsql/jlib:$ORACLE_HOME/assistants/jlib:$ORACLE_HOME/assistants/dbca/jlib;export CLASSPATH
    DBCA_RAW_CONFIG=/oracle/dbca_raw_config.txt;export DBCA_RAW_CONFIG
    export PS1=`hostname`@`whoami`'[$PWD]'$
    创建clusterWare和oracle的安装目录
    mkdir -p /oracle/product/CRS
    mkdir -p /oracle/product/RAC10g
    chown -R oracle:oinstall /oracle
    chmod -R 775 /oracle
    # 设置OCR使用的raw设备:
    chown root:oinstall  /dev/rdisk/disk140
    chmod 640  /dev/rdisk/disk140
    如果数据库采用 ASM 方式,则不需要 MC/SG 双机软件
    需要修改 磁盘的属性
    chown oracle:dba /dev/rdisk/disk137       
    chown oracle:dba /dev/rdisk/disk138       
    chown oracle:dba /dev/rdisk/disk139
    chmod 660 /dev/rdisk/disk137       
    chmod 660 /dev/rdisk/disk138       
    chmod 660 /dev/rdisk/disk139 
    安装oracle 数据库
    #/cdrom/database/runInstaller -ignoresysprereqs
  • 相关阅读:
    Pythoy 数据类型序列化——json&pickle 模块
    Python xml 模块
    Spring MVC <mvc:annotation-driven/>的作用
    Spring MVC学习笔记
    springboot配置logback日志
    Git master合并分支时提示“Already up-to-date”
    解决idea tomcat乱码问题
    MYSQL 八大优化方案
    SpringBoot项目集成PageHelper使用
    Git--远程仓库版本回退方法
  • 原文地址:https://www.cnblogs.com/future2012lg/p/3989443.html
Copyright © 2020-2023  润新知