1、MySQL数据库双机热备服务器配置ha解决方案redhat522020年5月29日文档仅供参考 中国网通河北省银河网扩容工程MySQL数据库服务器安装配置北京华夏电通科技有限公司 01月10日目 录一平台整体拓扑结构1二概述12.1安装准备22.2安装规划32.2.1服务器磁盘分区32.2.2磁盘阵列32.2.3IP规划32.3安装概要3三操作系统安装配置43.1系统安装43.2网络配置(Bonding)203.3JRE安装22四HDLM安装224.1安装22五数据库安装配置24六Rose HA安装配置256.1安装256.2初始设置Rose软件306.3配置双机HA35一 概述mysql双机
2、系统的拓扑结构如下图所示两台服务器经过以太网卡连接网络,经过网络对外提供服务、相互通信。两台服务器之间用com口直接互联,双机热备软件利用这个连接进行双机热备相关的通信、监控、和控制等等。两台服务器经过HBA卡连接FC网络,访问共同的磁盘阵列,实现双机热别系统必要的磁盘。1.1 安装准备硬件信息用途配置数量SNMySQL数据库2个1.60G双核CPU ,内存4G,1个73G硬盘,机架导轨、DVD、双口网卡,2个4Gb HBA 2597C72X697C72X软件准备操作系统:Red Hat Enterprise Linux AS 4 update5 x86 64位版JRE:Java Runtim
3、e Environment 5.0 Update 13 for linux x64版HDLM 5.9.3-00 for linuxMySQL 5.0.45-0 for RedHatEnterpriseLinux 64Rose HA for linux 6.11.2 安装规划1.2.1 服务器磁盘分区磁盘挂载点类型大小备注sdaSwap4Gsda/varext310Gsda/bootext3100Msda/ext3120G剩余空间1.2.2 磁盘阵列MySQL数据库双机热备系统需要使用HDS AMS1000磁盘阵列提供的磁盘,在AMS1000上,unit 0的disk 0到disk 3,共4块3
4、00G磁盘做RAID 1+0,分配给MySQL数据库存储数据,可用容量约600G。1.2.3 IP规划设备名称设备命名IP地址/掩码网关备注MySQL数据库1mysql-1192.168.35.1/24192.168.35.254MySQL数据库2mysql-2192.168.35.2/24192.168.35.254MySQL数据库虚拟IP192.168.35.3/24漂移IP192.168.35.1和192.168.35.2分别是两台服务器的固定IP,192.168.35.3是漂移IP,负责在双机系统中对外提供MySQL服务,在银河平台中有用到此MySQL服务的应用均要将目标地址指向192
5、.168.35.3而不是1或2。1.3 安装概要序号概要步骤步骤说明1操作系统安装系统安装网卡绑定JRE安装2HDLM安装磁盘多路径软件的安装配置3数据库安装MySQL程序安装配置4Rose HA安装双机热备软件安装配置二 操作系统安装配置操作系统版本Red Hat Enterprise Linux AS 4 update5 x86 64位版2.1 系统安装从光盘启动将系统安装盘放入光驱,启动服务器。当系统从光盘启动时,首先出现如下画面直接回车,选择图形界面安装模式。跳过光盘检查选择Skip,跳过光盘介质的检查。接下来进入图形化的欢迎界面点击Next。安装过程语言选择可选择Chinese(Si
6、mplified)(简体中文),点击Next继续。键盘布局类型选择使用默认的U.S.English即可,点击”下一步”继续。磁盘分区方式选择选择”用Disk Druid手工分区”,点击”下一步”继续会有一个警告信息点击”是”确认。进入磁盘分区界面点击”新建”,出现下图我们的分区原则磁盘挂载点类型大小备注sdaSwap8G内存两倍sda/varext320Gsda/tmpext34Gsda/ext336G剩余空间以下对四个参数作个简单说明:1、 挂载点:它指定了该分区对应Linux文件系统的哪个目录。意思就是将不同的物理磁盘上的分区映射到不同的目录,这样能够实现将不同的服务程序放在不同的物理磁盘
7、上,当其中一个分区损坏不会影响到其它的分区数据。2、 文件系统类型:可选择的类型有EXT2、EXT3、REISERFS、SWAP等。前两个是系统默认类型,SWAP是建立虚拟内存空间。3、 大小:以MB为单位。这里主要提一下SWAP分区大小,一般设为物理内存的两倍,如果你的物理内存大于1GB,SWAP分区建议设置为2GB。4、 驱动器:即是指计算机中有多个物理磁盘,能够很方便的选择你要进行分区操作的那个物理磁盘。类似于”FDISK”分区中的操作。磁盘分区完成后如下图所示配置引导装载程序当你机子还有windows系统存在时,就要注意在这里配置一下了。如图9所示,框内部分即为你机器里安装的所有系统列
8、表,如果没有发现其它系统而你确实安装过的,能够点”添加”进行加入,不然计算机将会默认启动Linux,你先前的操作系统将无法启动!点”编辑”能够设定某个系统的启动等待时间。图9 系统引导菜单配置此次项目中,单机上没有多操作系统存在的情况,所用使用默认设置即可,点击”下一步”。网络配置网络配置不用做任何配置,系统安装完成后我们将另行单独配置网络图10 网络配置防火墙配置系统已配置硬件防火墙,因此此步骤中,禁用防火墙,禁用SElinux。 防火墙配置接下来是选择系统默认使用语言、时区选择、以及设置根口令这三步。由于这几步没什么需要注意的,按其默认点下一步即可,故在此略过,唯有设置根口令一步提醒一下,
9、只有在管理时才使用根帐号。附加语言支持点击下一步。时区选择选择 ”亚洲/上海”,点击”下一步”。设置根用户口令root用户口令Chinsys在两个输入栏中重复输入口令,点击”下一步”。软件包安装设置选择默认软件包即可。点击”下一步”。确认开始安装开始安装经过前面十步,现在终于能够开始安装了。Linux比起windows操作系统的安装来说,要慢得多,根据你机器的配置情况,此过程会持续一小时左右(如图13所示)!期间会让提示让你插入第二张、第三张光盘,因此得乖乖的呆在电脑面前!OK,一小时过后,满足的使用你的Linux系统吧!安装完成 最后系统会提示你安装完成,点击完成系统会自动退出光盘并自动重启
10、。至此redhat AS4 安装完成!2.2 网络配置(Bonding)编辑文件/etc/modprobe.confvi /etc/modprobe.conf添加一行alias bond0 bondingoptions bond0 miimon=100 mode=1options bond0 arp_interval=60 arp_ip_target=192.168.35.254 primary=eth0 mode=1编辑/etc/sysconfig/network-script/ifcfg-bond0vi /etc/sysconfig/network-script/ifcfg-bond0my
11、sql-1服务器的内容如下DEVICE=bond0IPADDR=192.168.35.1NETMASK=255.255.255.0NETWORK=192.168.35.0BROADCAST=192.168.35.255ONBOOT=yesBOOTPROTO=noneUSERCTL=nomysql-2服务器的内容如下DEVICE=bond0IPADDR=192.168.35.2NETMASK=255.255.255.0NETWORK=192.168.35.0BROADCAST=192.168.35.255ONBOOT=yesBOOTPROTO=noneUSERCTL=no编辑文件/etc/sys
12、config/network-scripts/ifcfg-eth0vi /etc/sysconfig/network-scripts/ifcfg-eth0内容如下DEVICE=eth0USERCTL=noONBOOT=yesMASTER=bond0SLAVE=yesBOOTPROTO=none编辑文件/etc/sysconfig/network-scripts/ifcfg-eth1vi /etc/sysconfig/network-scripts/ifcfg-eth1内容如下DEVICE=eth1USERCTL=noONBOOT=yesMASTER=bond0SLAVE=yesBOOTPROT
13、O=none修改主机名,增加网关vi /etc/sysconfig/networkmysql-1服务器设置如下内容GATEWAY=192.168.35.254HOSTNAME=mysql-1mysql-2服务器设置如下内容GATEWAY=192.168.35.254HOSTNAME=mysql-22.3 JRE安装部分程序的运行需要Java环境支持,因此需要安装java运行环境,我们选用了Java Runtime Environment 5.0 Update 13 for linux x64版。 将安装程序包jre-1_5_0_13-linux-amd64-rpm.bin传至服务器。增加可执行
14、属性chmod u+x jre-1_5_0_13-linux-amd64-rpm.bin运行安装程序即可完成JRE安装。./ jre-1_5_0_13-linux-amd64-rpm.binjava目录/usr/java/jre1.5.0_13三 HDLM安装3.1 安装放入license光盘,mount光盘mount /dev/cdrom /media/cdrom拷贝licensecp /media/cdrom/*.plk /var/tmp/hdlm_licenseumount光盘cd /umount /media/cdrom放入HDLM安装光盘,mount光盘mount /dev/cdro
15、m /media/cdrom进入光盘目录cd /media/cdrom运行安装命令./installhdlmKAPL09093-I HDLM xx-xx will be installed. Is this OK ? y/n: yPreparing packages for installation.KAPL09076-I The permanent license was installed.HDLM-x.xx.x.xxx-xxKAPL09043-I The installation of HDLM-x.xx.x.xxx-xx completed successfully.查询HDLM是否安
16、装rpm qi HDLMrootmysql-1 # rpm -qi HDLMName : HDLM Relocations: (not relocatable)Version : 5.93.0.583 Vendor: Hitachi, Ltd.Release : 11 Build Date: Tue 07 Aug 11:08:10 PM CSTInstall Date: Thu 22 Nov 08:04:58 PM CST Build Host: inspire.hitachi.co.jpGroup : System Environment/Driver Source RPM: HDLM-5.
17、93.0.583-11.src.rpmSize : 19282117 License: All Rights Reserved. Copyright (C) , , Hitachi, Ltd.Signature : (none)Packager : Hitachi, Ltd.Summary : I/O Path Management SoftwareDescription :HDLM manages paths between a host and storage subsystem.HDLM evenly distributes the load across paths and switc
18、hes to another path if there is a failure in a path being used, thus improving system reliability.为运行命令方便,编辑文件/root/.bash_profile,增加如下HDLM程序路径行PATH=$PATH:/opt/DynamicLinkManager/binexport PATH生成hdlm设备dlmcfgmgr -r查看磁盘设备,是否生成了名为sddlmaa的设备fdisk -lrootmysql-1 # fdisk -lDisk /dev/sda: 73.4 GB, bytes255 h
19、eads, 63 sectors/track, 8924 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System/dev/sda1 * 1 4746 38122213+ 83 Linux/dev/sda2 4747 7357 20972857+ 83 Linux/dev/sda3 7358 8401 8385930 82 Linux swap/dev/sda4 8402 8924 4 97+ 5 Extended/dev/sda5 8402 8923 419
20、2933+ 83 LinuxDisk /dev/sdb: 575.2 GB, bytes255 heads, 63 sectors/track, 69937 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System/dev/sdb1 1 69937 83 LinuxDisk /dev/sdc: 575.2 GB, bytes255 heads, 63 sectors/track, 69937 cylindersUnits = cylinders of 1606
21、5 * 512 = 8225280 bytes Device Boot Start End Blocks Id System/dev/sdc1 1 69937 83 LinuxDisk /dev/sddlmaa: 575.2 GB, bytes255 heads, 63 sectors/track, 69937 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System/dev/sddlmaa1 1 69937 83 Linux四 数据库安装配置我们选用的数据库
22、为MySQL 5.0.45-0 for RedHatEnterpriseLinux 64位版。有可能需要删除冲突包rpm -e cyrus-sasl-sql-2.1.19-5.EL4.i386rpm e mysql-4.1.20-2.RHEL4.1.i386将安装包传至服务器,用rpm一条命令就能够完成mysql的安装。rpm -ivh MySQL-server-community-5.0.45-0.rhel4.x86_64.rpm 安装客户端rpm ivh MySQL-client-community-5.0.45-0.rhel4.x86_64.rpm五 Rose HA安装配置5.1 安装首
23、先将光盘放进光驱计算机 CD-ROM 双击打开 将三个文件复制到系统的某个文件夹下或是将将光驱 mount 到 /mnt 下。系统工具终端(将光驱挂载到 mnt 文件夹下)在终端窗口下一次键入: # mount t iso9660 /dev/cdrom /mnt (挂载设备)# cd /mnt (进入 mnt 文件夹) # ls ( 查看 mnt 下的文件 )安装 ROSEHA ,进入到 mnt 目录下 运行 # ./install.sh可检查 /opt/roseha/bin 面是否有文件存在两个较为重要的文件 NewPass 修改密码(第一次运行需要修改密码)运行 # ./NewPass 按
24、照下图进行按照提示首先 User : root ( 管理员的用户名 ) New password : 密码 Re-enter new password 重新输入密码到这里,Rose HA的安装基本结束。还需要一些步骤来设置Rose HA的初始化。vi /root/.bash_profile添加如下内容HAHOME=/opt/rosehaexport HAHOMEPATH=$PATH:/opt/roseha/binexport PATH修改gui.sh,改为如下内容PATH=$PATH:/usr/java/jre1.5.0_13/binexport PATHjava -cp $HAHOME/gu
25、i/hagui.jar hagui/GUI tzoffset=8 /dev/null 2&1 &5.2 初始设置Rose软件在进入系统之前然我们来设置一下系统的相关信息如下图所示: /etc/hosts192.168.35.1 mysql-1192.168.35.2 mysql-2192.168.35.3 mysql设置完毕后重新引导系统确定 starting RoseHA dearm 服务启动正常在 /opt/roseha/bin 下运行 # ./gui.sh 运行 ROSEHA 的管理界面进入控制界面首先敲击回车选择 Connect 进入系统,User 是上面我们设置的用户名 Passwo
26、rd 也是我们设置的密码 全部输完 ” OK” 出现如下和面说明连接正常点击tools license,输入licence 授权只要移动 Tab 键在 HostName: 处将本机的主机名 和对端主机名填写正确就能够了”OK”两边机器都需要进行设置 出现下图所示的 License Information success 说明我们能够用试用版了只要在一个月内注册正式版产品就能够了!两边的服务器都需要做相同的设置。5.3 配置双机HA1 、管理界面的启动。运行如下命令gui.sh 2 、连接: 进入 Tools-Connect, 输入 Server:localhost User: Password
27、: 3 、 license 号输入: 进入 Tools-License, 输入 HostName: 左边为本机主机名,右边为远程主机名。 ( 把左边主机名输入后 , 按 Tab 键可把光标移动到右边 , 输入远程主机名 , 点击 ok) 4 、创立 RS232 私网: 进入 PrivateNet-Create RS232, 把两台主机的 DeviceName 改成 /dev/ttys0 。 注:该操作在两台主机上都要做 获取对方主机信息: 进入 Tools-NetworkConfig, 直接选中 AutoGet , OK 。这样就会得到对方主机信息。5 、创立 socket 私网 进入 Pri
28、vateNet-Create Socket, 选择主机用于私网的地址,输入远程主机用于私网的地址。说明:这是两台机器通讯用的 IP 地址(心跳 IP ), 注:该操作在两台主机上都要做 7 、创立服务: 进入 Services-Create , Type : mysql IP Holding NIC :分别选择两台主机所提供外界服务的网卡设备名, bond0 Active IP Address :这是为外界数据库服务的 IP (虚拟 IP )地址192.168.35.3。此地址必须与公网的实际 IP 在同一网段上(也就是与在 IP Holding NIC 中所选择的网卡实际 IP 在同一网段上
29、)。 Active SubnetMask :虚拟 IP 的子网掩码。 Agent Script :相应的监控脚本,如: ha_ag_msql.sh 。 Start Script :相应的启动脚本,如: msql_start.sh 。 Stop Script :相应的停止脚本,如: msql_stop.sh 。 Active Volume :磁盘阵列两台主机共用的文件系统的设备名。如: /dev/sddlmaa1 Backup Volume :磁盘阵列两台主机共用的文件系统的设备名。 Active Volume 应与 Backup Volume 的值相同。 Mount Point :与 Acti
30、ve Volume,Backup Volume 值所对应的 mount 点。/var/lib/mysql SwitchBack:NO 常见问题及注意事项 开机方法:开机的时候我们必须注意到,必须先开磁盘阵列,等 磁盘阵列状态READY 后,再开主机,主机完全开启后,再把备机开启。 关机方法:关机的方法则是开机的反顺序,先关备机,备机关完以后,再关主机,最后关磁盘阵列。 Q :两台服务器上的双机软件启动后,而双机两边的资源都处于虚状态怎么办? A : 在工作机上将资源一一点中,使资源处于高亮状态,点击工具栏上的 bring in 按钮。 Q :安装 ROSE HA 软件时, Windows NT
31、 对 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-Sw
32、itch Back 开关时,关机后先启 关机前为备机状态的 Host ,后启 关机前为主机状态的 Host 。会出现什么情况? A : 先启的 Host 成为主机,后启的 Host 成为备机。 Q :两台 Host 均是在本地机上启动 ROSE HA 双机,启动双机时无法启动,并出现报错” Fail to get remote Servers IP address from the registry ”。以上情况如何处理? A : 以上情况是由于两台服务器上的 Administrator 的密码不相同而造成的, 将两台服务器的 Administrator 密码改为一样,重新登录即可。 Q :双
33、机手工切换时无法切换,软件报错信息如下: 999. System Error 拒绝访问 (0x5) 423. Lock Volume : Fail ”(注: E: 为公共磁盘卷) 该现象是什么原因造成的?(设数据库文件安装在公共磁盘 E 盘上) A : 以上现象发生后,检查是否打开了察看 E 盘的窗口,或者正在使用磁 盘管理器。关掉窗口或磁盘管理器后即可正常切换。 Q : 安装完毕后,进入控制界面,点击开始,显示 ”Cluster doesnt start” , 服务无法启动,以上情况如何解决。A : 进入”服务”,启动 cluster service ,得到提示登录时错误,然后双击该服务,点击”确定”,即可。 其它重要的注意事项:1.在安装双机软件以后,数据库的服务的启 / 停都应该经过双机软件的 Bring In (启动服务)和 Bring Out (停止服务)功能来实现,不要使用数据库自带的工具软件来进行 2 心跳线的(私用网) IP 地址和公用网 IP 最好设置在不同的网段。