Mysql双机互备热备自动切换Word格式文档下载.docx

上传人:b****8 文档编号:22474630 上传时间:2023-02-04 格式:DOCX 页数:9 大小:17.67KB
下载 相关 举报
Mysql双机互备热备自动切换Word格式文档下载.docx_第1页
第1页 / 共9页
Mysql双机互备热备自动切换Word格式文档下载.docx_第2页
第2页 / 共9页
Mysql双机互备热备自动切换Word格式文档下载.docx_第3页
第3页 / 共9页
Mysql双机互备热备自动切换Word格式文档下载.docx_第4页
第4页 / 共9页
Mysql双机互备热备自动切换Word格式文档下载.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

Mysql双机互备热备自动切换Word格式文档下载.docx

《Mysql双机互备热备自动切换Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《Mysql双机互备热备自动切换Word格式文档下载.docx(9页珍藏版)》请在冰豆网上搜索。

Mysql双机互备热备自动切换Word格式文档下载.docx

方法2中,可以不用增加一个对外IP,同时在监控上,可以直接监控mysql的服务,至于稳定性,有待测试。

此方法中还有一个问题,就是提供给客户端的数据库连接IP,因为切换后,IP也就变了。

如果说更改程序,那不现实。

所以,这里可以用域名,不过仍然需要修改域名的IP指向或是修改客户机的hosts文件。

本文使用的是修改DNS的方法,因为DNS是自己配置的,可以灵活操作。

本方分两部分进行说明

第一部分用heartbeat实现的高可用

1环境条件

两个虚拟机(IP:

192.168.1.91/92/93),

CentOS5.4,mysql-5.1.37,heartbeat-2.1.3-3

2安装前的准备

Heartbeat的工作原理:

heartbeat最核心的包括两个部分,心跳监测部分和资源接管部分,心跳监测可以通过网络链路和串口进行,而且支持冗余链路,它们之间相互发送报文来告诉对方自己当前的状态,如果在指定的时间内未受到对方发送的报文,那么就认为对方失效,这时需启动资源接管模块来接管运行在对方主机上的资源或者服务。

更多请看官网http:

//linux-ha.org/HomePage

基础系统的安装,mysql的安装(略)

软件下载

http:

//linux-ha.org/DownloadSoftware

Http:

//

3安装过程(heartbeat)

一般的软件源码安装是./configure–prefix=path;

make;

makeinstall,本文使用yum安装

yuminstallheartbeat

yuminstallheartbeat-ldirectord

有一点要注意:

heartbeat的监测,可以是网络或串口,本文使用网络也就是网卡

4配置文档及脚本

1)Heartbeat的三个配置文件ha.cf,authkeys,haresources

CatHa.cf

debugfile/var/log/ha-debug

logfile/var/log/ha-log

logfacilitylocal0

keepalive2

deadtime5

warntime10

initdead10

udpport694

bcasteth0

auto_failbackoff

nodemysqlm

nodemysqls

respawnhacluster/usr/lib/heartbeat/ipfail

apiauthipfailgid=haclientuid=hacluster

Catauthkeys

auth1

1crc

Catharesources

mysqlmmysql_start1.shIPaddr:

:

192.168.1.93/32/eth0

2)mysql_start1.sh脚本

#!

/bin/sh

#author:

wdlinux

#url:

#description:

mysqlstart

local_ip=192.168.1.91

mip=192.168.1.92

vip=192.168.1.93

mysql_in=/usr/local/mysqlm

mysql_bin=${mysql_in}/bin/mysql

mysql_user=root

mysql_port=3306

mysql_pass=12345

mysqld_start=/etc/rc.d/init.d/mysqldm

./etc/rc.d/init.d/functions

functionslave_to_master(){

echo"

mysqltomasterfromslave..."

$mysql_bin-u"

${mysql_user}"

-p"

${mysql_pass}"

-e"

slavestop;

"

log_file=$(${mysql_bin}-u"

-P"

${mysql_port}"

-e"

showmasterstatus\G"

|grep"

File:

|a

wk-F'

'

{printf$2}'

log_id=$(${mysql_bin}-u"

Position:

|

awk-F'

usems_state;

updatems_logsetmlf='

${log_file}'

mlp

='

${log_id}'

mysqlserverismaster"

}

functionmaster_to_slave{

mysqltoslavefrommaster..."

if(${mysql_bin}-h"

${vip}"

-u"

showslavestatus"

>

/dev/null2>

&

1)

then

log_file=$(${mysql_bin}-h"

selectm

lffromms_log\G"

mlf:

|awk-F'

log_id=$(${mysql_bin}-h"

selectmlp

fromms_log\G"

mlp:

CHANGEMASTERTOMASTER_LOG_FILE

='

MASTER_LOG_POS=${log_id};

slavestart"

;

mysqlserverisslave"

fi

case"

$1"

in

start)

slave_to_master

stop)

master_to_slave

*)

Usage:

mysql_start.sh{start|stop}"

startisslavetomaster"

stopismastertoslave"

exit1

esac

3)同保证和记录当主机由slave到master转变时记录当前master的文件和位置,需要建一个数据库和表来记录

createdatabasems_state;

createtablems_log(

idtinyint

(1)unsignednotnullauto_increment,

mlfvarchar(20)notnulldefault'

'

mlpvarchar(20)notnulldefault'

primarykey(id)

);

insertintoms_logvalues(NULL,"

test"

"

123"

4)mysql的配置

在原本的配置里加上,文件f,主从一样,ID要不同

log-bin=mysql-bin

binlog_format=mixed

server-id=1

master-host=192.168.1.92

master-user=msdata

master-password=pass

slave-skip-errors=all

replicate-do-db=test

replicate-ignore-db=mysql

replicate-ignore-db=ms_state

其它配置略

经测试,91,92重起关机都能自动切换,接管93的IP,且故障机恢复后都能自动进入备份状态,且数据同步及时和一致

第二部分自己编写脚本实现的高可用

一监控实现原理

自己编写脚本,实现的功能和heartbeat差不多,都是监控,切换等

对于监控,可以监控系统的状态如ping,也可以监控mysql服务状态(本文使用的方法)

二实现脚本

除了用此脚本替换heartbeat外,其它的实现和配置同上

1监控脚本mysql_monitor.sh

/bin/bash

monitorshellofmysql

local_ip=192.168.1.92

rip=192.168.1.91

st=0

whiletrue;

do

${rip}"

showmasterstatus"

--connect_timeout=1>

/

dev/null2>

if(($st==0));

/etc/rc.d/init.d/mysql_start1.shstop

letst=$st+1

else

for((i=0;

i&

break

if(($i==3));

slavetomaster"

/etc/rc.d/init.d/mysql_start1.shstart

###modifydnsprg

exit

done

sleep3

将local_ip,rip作相应的修改,local_ip代表本机IP,rip为另一台机的IP

2将监控脚本加入自启动,随系统启动,如

Echo“/etc/rc.d/init.d/mysql_monitor.sh&

”>

>

/etc/rc.d/rc.local

此方法也可以增加一个对外服务IP,如ha实现的一样,这样就省去了修改域名IP等问题

但在脚本里,需要增加监控,添加,删除IP的实现和功能

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 军事政治

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1