Chinaunix首页 | 论坛 | 博客
  • 博客访问: 9267378
  • 博文数量: 1669
  • 博客积分: 16831
  • 博客等级: 上将
  • 技术积分: 12594
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-25 07:23
个人简介

柔中带刚,刚中带柔,淫荡中富含柔和,刚猛中荡漾风骚,无坚不摧,无孔不入!

文章分类

全部博文(1669)

文章存档

2023年(4)

2022年(1)

2021年(10)

2020年(24)

2019年(4)

2018年(19)

2017年(66)

2016年(60)

2015年(49)

2014年(201)

2013年(221)

2012年(638)

2011年(372)

分类:

2011-12-15 14:17:10

Linux下环境安装配置Rose HA全攻略(图)  

2010-07-23 03:03:49|  分类: HA |  标签: |字号 

如何在Linux环境下安装Rose HA。本文假设环境为Linux操作系统,采用9.2版本的oracle数据库。下面我们看看,在Linux Oracle环境下如何安装和配置Rose HA。

    首先将光盘放进光驱 

Linux下环境安装配置Rose HA全攻略(图)

    计算机— CD-ROM 双击打开 将三个文件复制到系统的某个文件夹下或是将将光驱 mount 到 /mnt 下。

Linux下环境安装配置Rose HA全攻略(图)

系统工具—终端(将光驱挂载到 mnt 文件夹下)

Linux下环境安装配置Rose HA全攻略(图)

    在终端窗口下一次键入: # mount –t iso9660 /dev/cdrom /mnt (挂载设备)
    # cd /mnt (进入 mnt 文件夹)
    # ls ( 查看 mnt 下的文件 )  

Linux下环境安装配置Rose HA全攻略(图)


    安装 ROSEHA ,进入到 mnt 目录下 运行 # ./install.sh 

Linux下环境安装配置Rose HA全攻略(图)

    可检查 /opt/roseha/bin 面是否有文件存在

Linux下环境安装配置Rose HA全攻略(图)

两个较为重要的文件 NewPass 修改密码(第一次运行需要修改密码)

Linux下环境安装配置Rose HA全攻略(图)

运行 # ./NewPass 按照下图进行

Linux下环境安装配置Rose HA全攻略(图)

按照提示首先 User : ha ( 管理员的用户名 ) New password : 密码 Re-enter new password 重新输入密码 

Linux下环境安装配置Rose HA全攻略(图) 

    到这里,Rose HA的安装基本结束,但是不要心急,我们会还需要一些步骤来设置Rose HA的初始化。

 

初始设置Rose软件

    在进入系统之前然我们来设置一下系统的相关信息如下图所示: /etc/hosts

Linux下环境安装配置Rose HA全攻略(图)

    设置完毕后重新引导系统确定 starting RoseHA dearm 服务启动正常

Linux下环境安装配置Rose HA全攻略(图)

 在 /opt/roseha/bin 下运行 # ./hacon 运行 ROSEHA 的管理界面

Linux下环境安装配置Rose HA全攻略(图)

    进入控制界面首先敲击回车选择 Connect 进入系统,User 是上面我们设置的用户名 Password 也是我们设置的密码 全部输完 “ OK”

Linux下环境安装配置Rose HA全攻略(图)

    出现如下和面说明连接正常

Linux下环境安装配置Rose HA全攻略(图)

当我们没有拿到正式的 licence 授权之前我们就可以先享受 30 天的使用期,可是也需要设置一下 

Linux下环境安装配置Rose HA全攻略(图)

 只要移动 Tab 键在 HostName: 处将本机的主机名 和对端主机名填写正确就可以了“ OK “
两边机器都需要进行设置

Linux下环境安装配置Rose HA全攻略(图)

    出现下图所示的 License Information success 说明我们可以用试用版了只要在一个月内注册正式版产品就可以了!两边的服务器都需要做相同的设置。

Linux下环境安装配置Rose HA全攻略(图) 

 

配置双机HA

1 、管理界面的启动

    # hacon

2 、连接:

    进入 Tools---Connect, 输入 Server:localhost

    User:root

    Password:root

3 、 license 号输入:

    进入 Tools---License, 输入 HostName: 左边为本机主机名,右边为远程主机名。 ( 把左边主机名输入后 , 按 Tab 键可把光标移动到右边 , 输入远程主机名 , 点击 ok)

4 、创建 RS232 私网:

    进入 PrivateNet---Create RS232, 把两台主机的 DeviceName 改成 /dev/ttys0 。

        注:该操作在两台主机上都要做

5 、创建 socket 私网

    进入 PrivateNet---Create Socket, 选择主机用于私网的地址,输入远程主机用于私网的地址。说明:这是两台机器通讯用的 IP 地址(心跳 IP ),

    注:该操作在两台主机上都要做

6 、获取对方主机信息:

    进入 Tools---Network, 直接选中 AutoGet , OK 。这样就会得到对方主机信息。

7 、创建服务:

    进入 Services---Create ,

    Type : ORACLE

    IP Holding NIC :分别选择两台主机所提供外界服务的网卡设备名(如: eth0 ) ,

    不能与心跳网卡在同一个设备上。

    Active IP Address :这是为外界数据库服务的 IP (虚拟 IP )地址。此地址必

    须与公网的实际 IP 在同一网段上(也就是与在 IP Holding NIC 中所选择的网卡实际 IP 在同一网段上)。

    Active SubnetMask :虚拟 IP 的子网掩码。

    Agent Script :相应的监控脚本,如: ha_ag_oracle.x 。

    Start Script :相应的启动脚本,如: ora_start.sh 。

    Stop Script :相应的停止脚本,如: ora_stop.sh 。

    Active Volume :磁盘阵列两台主机共用的文件系统的设备名。如: /dev/sdb1

    Backup Volume :磁盘阵列两台主机共用的文件系统的设备名。 Active Volume 应与 Backup Volume 的值相同。

    Mount Point :与 Active Volume,Backup Volume 值所对应的 mount 点。如: /oracle

    SwitchBack:NO

Oracle 9.2.0 版本的启动脚本

(1)ora_start.sh

#!/bin/sh

# This file: ora_start.sh

# Version: 4.0.1

HAHOME=`cat /etc/init.d/HAHOME`

export HAHOME

out=$HAHOME/bin/APIOUT.x

JOBNAME=$2

# When Another Server are Down, You MUST sleep awhile.

# You can change this value to meet your requirement if need.

if [ "$1" = "anotherdown" ]

then

/bin/sleep 30

fi

# DISKDEV=/dev/sda5

# MOUNTPOINT=/oracle

# $HAHOME/bin/dflush $DISKDEV

# fsck -a $DISKDEV

# if test $? -ne 0

# then

# ${out} "[INFO] fsck ${DISKDEV}......"

# fsck -yf $DISKDEV

# fi

# mount $DISKDEV $MOUNTPOINT

# mount | grep "${DISKDEV} on ${MOUNTPOINT} " >/dev/null 2>&1

# if test $? -ne 0

# then

# ${out} "[INFO] Cannot mount ${DISKDEV}."

# exit

# fi

$HAHOME/bin/ha_ag_oracle.x $JOBNAME 0

if test $? -eq 0

then

${out} "[INFO] The service <${JOBNAME}> has started."

exit

else

${out} "[INFO] Start Oracle server...."

su - oracle -c "$HAHOME/bin/ora_dbshut_ab.sh"

su - oracle -c "$HAHOME/bin/ora_dbstart.sh"

fi

${out} "[INFO] Start shell <$0> finished."

(2) ora_dbstart

#!/bin/sh

# This file: ora_dbstart.sh

# Version: 4.0.1

HAHOME=`cat /etc/init.d/HAHOME`

export HAHOME

if test ! "$1" -o ! "$2"

then

echo "ora_dbstart.sh: Message: ORACLE_SID LISTENER not specified."

else

ORACLE_SID=$1

LISTENER=$2

export ORACLE_SID

fi

# start Oracle Instance

# You MUST choose a Oracle setup mode to meet your requirement.

# The nether lines for Oracle Version 9 or Later

sqlplus "/ as sysdba "<

startup

exit

!

# The nether lines for Oracle Version 8 or Older

# svrmgrl <

# connect internal

# startup

# exit

# !

# start Oracle listener

lsnrctl start $2

 

Oracle 9.2.0 版本的启动脚本

(1)ora_start.sh

#!/bin/sh

# This file: ora_start.sh

# Version: 4.0.1

HAHOME=`cat /etc/init.d/HAHOME`

export HAHOME

out=$HAHOME/bin/APIOUT.x

JOBNAME=$2

# When Another Server are Down, You MUST sleep awhile.

# You can change this value to meet your requirement if need.

if [ "$1" = "anotherdown" ]

then

/bin/sleep 30

fi

# DISKDEV=/dev/sda5

# MOUNTPOINT=/oracle

# $HAHOME/bin/dflush $DISKDEV

# fsck -a $DISKDEV

# if test $? -ne 0

# then

# ${out} "[INFO] fsck ${DISKDEV}......"

# fsck -yf $DISKDEV

# fi

# mount $DISKDEV $MOUNTPOINT

# mount | grep "${DISKDEV} on ${MOUNTPOINT} " >/dev/null 2>&1

# if test $? -ne 0

# then

# ${out} "[INFO] Cannot mount ${DISKDEV}."

# exit

# fi

$HAHOME/bin/ha_ag_oracle.x $JOBNAME 0

if test $? -eq 0

then

${out} "[INFO] The service <${JOBNAME}> has started."

exit

else

${out} "[INFO] Start Oracle server...."

su - oracle -c "$HAHOME/bin/ora_dbshut_ab.sh"

su - oracle -c "$HAHOME/bin/ora_dbstart.sh"

fi

${out} "[INFO] Start shell <$0> finished."

(2) ora_dbstart

#!/bin/sh

# This file: ora_dbstart.sh

# Version: 4.0.1

HAHOME=`cat /etc/init.d/HAHOME`

export HAHOME

if test ! "$1" -o ! "$2"

then

echo "ora_dbstart.sh: Message: ORACLE_SID LISTENER not specified."

else

ORACLE_SID=$1

LISTENER=$2

export ORACLE_SID

fi

# start Oracle Instance

# You MUST choose a Oracle setup mode to meet your requirement.

# The nether lines for Oracle Version 9 or Later

sqlplus "/ as sysdba "<

startup

exit

!

# The nether lines for Oracle Version 8 or Older

# svrmgrl <

# connect internal

# startup

# exit

# !

# start Oracle listener

lsnrctl start $2

 

Oracle 9.2.0 的停止脚本

(1)ora_stop.sh

#!/bin/sh

# This file: ora_stop.sh

# Version: 4.0.1

HAHOME=`cat /etc/init.d/HAHOME`

export HAHOME

out=$HAHOME/bin/APIOUT.x

JOBNAME=$2

ERRORNUMBER=$3

${out} "[INFO] The service <${JOBNAME}> stop because of {$ERRORNUMBER}."

# DISKDEV=/dev/sda5

# MOUNTPOINT=/oracle

$HAHOME/bin/ha_ag_oracle.x $JOBNAME 0

if test $? -eq 0

then

${out} "[INFO] Stop Oracle server immediate...."

su - oracle -c "$HAHOME/bin/ora_dbshut_im.sh"

else

${out} "[INFO] Stop Oracle server...."

su - oracle -c "$HAHOME/bin/ora_dbshut_ab.sh"

fi

sync

# $HAHOME/bin/UMOUNT $DISKDEV $MOUNTPOINT

# mount | grep "${DISKDEV} on ${MOUNTPOINT} " >/dev/null 2>&1

# if test $? -eq 0

# then

# ${out} "[WARNING] Cannot umount ${DISKDEV}."

# /sbin/reboot

# fi

${out} "[INFO] Stop shell <$0> finished."

(2) ora_dbshut_ab

#!/bin/sh

# This file: ora_dbshut_ab.sh

# Version: 4.0.1

COLUMNS=1024

export COLUMNS

HAHOME=`cat /etc/init.d/HAHOME`

export HAHOME

if test ! "$1" -o ! "$2"

then

echo "ora_dbshut_ab.sh: ORACLE_SID or LISTENER not specified."

LSNR_PID=`ps -ef | grep tnslsnr | grep -v grep | awk -F" " '{print $2}'`

else

ORACLE_SID=$1

LISTENER=$2

echo "ora_dbshut_ab.sh: ORACLE_SID=$ORACLE_SID, LISTENER=$LISTENER."

LSNR_PID=`ps -ef | grep tnslsnr | grep $LISTENER | grep -v grep | awk -F" " '{print $2}'`

fi

# Kill Oracle Listener

if [ EMPTY"$LSNR_PID" = EMPTY ]

then

echo "Not found listener process !"

else

echo "Kill oracle listener process <"$LSNR_PID">."

kill -9 $LSNR_PID

fi

# Stop Oracle Instance

# You MUST choose a Oracle stop mode to meet your requirement.

# The nether lines for Oracle Version 9 or Later

sqlplus "/ as sysdba "<

shutdown abort

exit

!

# The nether lines for Oracle Version 8 or older

# svrmgrl <

# connect internal

# shutdown abort

# exit

# !

卸载 Rose HA 

# mount /dev/cdrom /mnt /cdrom
# cd /mnt/ cdrom/Shell
#./uninstall.sh

 

常见问题及注意事项

?  开机方法:
开机的时候我们必须注意到,必须先开磁盘阵列,等 磁盘阵列状态READY 后,再开主机,主机完全开启后,再把备机开启。

?  关机方法:
关机的方法则是开机的反顺序,先关备机,备机关完以后,再关主机,最后关磁盘阵列。

?  Q :两台服务器上的双机软件启动后,而双机两边的资源都处于虚状态怎么办?


A : 在工作机上将资源一一点中,使资源处于高亮状态,点击工具栏上的 bring in 按钮。

?  Q :安装 ROSE HA 软件时, Windows NT 对 Service Pack 版本的 要求?
A : 用 Service Pack4 , Service Pack5 或以上。

?  Q :当工具栏的“ takeover”, “ failover”, “bring in”, “bring out” 等快捷按 钮均为不可用。主备机的状态保持不变,提示“ the public net is functioning, but all instances of private net are down or unavailable.”
A : 如果在“ private net ”界面下心跳线变为红色,检查心跳是否连接正常。

?  Q :没有选择 Auto-Switch Back 开关时,关机后先启 关机前为备机状态的 Host ,后启 关机前为主机状态的 Host 。会出现什么情况?
A : 先启的 Host 成为主机,后启的 Host 成为备机。

?  Q :两台 Host 均是在本地机上启动 ROSE HA 双机,启动双机时无法启动,并出现报错“ Fail to get remote Server's IP address from the registry ”。以上情况如何处理?
A : 以上情况是由于两台服务器上的 Administrator 的密码不相同而造成的, 将两台服务器的 Administrator 密码改为一样,重新登录即可。

?  Q :双机手工切换时无法切换,软件报错信息如下:
999. [System Error] 拒绝访问 (0x5)
423. Lock Volume < E: >: Fail ”(注: E: 为公共磁盘卷)
该现象是什么原因造成的?(设数据库文件安装在公共磁盘 E 盘上)
A : 以上现象发生后,检查是否打开了察看 E 盘的窗口,或者正在使用磁 盘管理器。关掉窗口或磁盘管理器后即可正常切换。

?  Q : 安装完毕后,进入控制界面,点击开始,显示 “Cluster doesn't start” , 服务无法启动,以上情况如何解决。
A : 进入“服务”,启动 cluster service ,得到提示登录时错误,然后双击该服务,点击“确定”,即可。

?  其它重要的注意事项:
1.在安装双机软件以后,数据库的服务的启 / 停都应该通过双机软件的 Bring In (启动服务)和 Bring Out (停止服务)功能来实现,不要使用数据库自带的工具软件来进行
2 .心跳线的(私用网) IP 地址和公用网 IP 最好设置在不同的网段。

阅读(1592) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~