BBS.ChinaUnix.net
首页 | 新闻 | Linux | FreeBSD | AIX | Windows | 博客 | 论坛 | 存储 | 网络 | 人才 | Wiki | 资料 | 读书 | 手册 | 下载 | 空间 | 搜索
  会员: 密码: 免费注册 | 忘记密码 | 会员登录 | 搜索 | 帮助 


奥运快报: 
奥运热点:
 

精华帖子 Drbd+heartbeat+mysql replication来构建mysql的高可用性
首页 » 论坛 » MySQL »  
[打印] [订阅] [收藏] [本帖文本页] [推荐此主题给朋友,立即获积分]
  本主题由 qlks 于 2007-8-23 15:11 加入精华 
版主 love100   帅哥
版主-天使



UID:103062
注册:2003-10-4
最后登录: 2008-08-20
帖子:1458
精华:3

可用积分:1638 (家境小康)
信誉积分:100
空间积分:3 (白手起家)
专家积分:20 (本版)

状态:...保密...

[个人空间] [短信] [博客]


[推广] 顶部
1楼 发表于 2007-8-22 12:23 
作者:china-lg
                       http://www.china-lg.com
A(M)[192.168.33.11\192.168.43.11]->B(Backup)[192.168.33.13\192.168.43.13]->C(M/S)[192.168.33.15\192.168.43.15]->s1、s2....
公用IP:192.168.33.100
本例可实现以下功能:
一、实现mysql replication
A(M)-->C(M/S)-->s1、s2、s3....
性能:降低A服务器的负载
扩展性:可扩展到20台slave服务器。
二、实现实时备份、安全可靠功能
利用drbd(号称网络RAID)将A服务器与C服务器的数据进行实时备份
如果仅A服务器down掉了,通过heartbeatB服务器则会自动切换,变成A服务器的角色.
如果仅C服务器down掉了,则需要在B服务器上,进行手动切换,变成C服务器的角色.
如果A和C服务器都down掉了,则需要改进本例,方可解决问题.(如:再增加一台backup机器)
本例需要的软件包如下:
drbd-0.7.23-1.c4.x86_64.rpm
heartbeat-2.0.7-1.c4.x86_64.rpm
heartbeat-pils-2.0.7-1.c4.x86_64.rpm
heartbeat-stonith-2.0.7-1.c4.x86_64.rpm
kernel-module-drbd-2.6.9-42.0.10.ELsmp-0.7.23-1.el4.centos.x86_64.rpm
mysql-5.0.33.tar.gz
★1.分区:
在A、C机器分出/opt分区
在B机器上分出/opt1、/opt2分区
且大小相同/opt=/opt1=/op2
★2.安装mysql并进行mysql replication设定.
[mdbrw01 ~]#tar -zxf mysql-5.0.33.tar.gz
[mdbrw01 ~]#cd mysql-5.0.33
[mdbrw01 ~]#./configure --prefix=/usr/local/mysql --with-mysqld-ldflags=-all-static --with-mysqld-user=mysql --with-charset=cp932 --with-pthread CFLAGS=-O3 CXXFLAGS=-O3 CXX=gcc
[mdbrw01 ~]#make && make install
[mdbrw01 ~]#/usr/local/mysql/bin/mysql -A -e "grant REPLICATION SLAVE on *.* to [email=slaver@]slaver@"%[/email]" Identified by"slave;FLUSH PRIVILEGES;"
[mdbrw01 ~]# /usr/local/mysql/bin/mysqladmin shutdown
[mdbrw01 ~]# mv /usr/local/mysql /opt
[mdbrw01 ~]#ln -s /opt/mysql /usr/local/mysql
replication设定比较简单,在此就不说明了.
★3.分别在A、B、C机器上安装以下软件
drbd-0.7.23-1.c4.x86_64.rpm
  kernel-module-drbd-2.6.9-42.0.10.ELsmp-0.7.23-1.el4.centos.x86_64.rpm
  heartbeat-pils-2.0.7-1.c4.x86_64.rpm
  heartbeat-stonith-2.0.7-1.c4.x86_64.rpm
  heartbeat-2.0.7-1.c4.x86_64.rpm
  (请按照顺序来进行安装)
==========配置drbd===============
★4.在A服务器上
[mdbrw01 ~]#vi /etc/drbd.conf
resource r0 {
  protocol C;
  startup {
    degr-wfc-timeout 120;
     }
  disk {
    on-io-error   detach;
      }
  net {
  }
  syncer {
    rate 10M;
    group 1;
    al-extents 257;
  }
  on mdbrw01{
    device     /dev/drbd0;
    disk       /dev/sda5;
    address    192.168.43.11:7788;
    meta-disk  internal;
  }
  on mdbbk01
    device    /dev/drbd0;
    disk      /dev/sda5;
    address   192.168.43.13:7788;
    meta-disk internal;
  }
}
启动Drbd并设置为Primary
[mdbrw01 ~]# /etc/init.d/drbd start
[mdbrw01 ~]#drbdadm -- --do-what-I-say primary all
建立专用块及文件系统
[mdbrw01 ~]#mknod /dev/drbd0 b 147 0
[mdbrw01 ~]#mkfs /dev/drbd0
在B服务器上
[mdbrwbak ~]#vi /etc/drbd.conf
resource r0 {
  protocol C;
  startup {
    degr-wfc-timeout 120;
      }
  disk {
    on-io-error   detach;
  }
  net {
  }
  syncer {
    group 1;
    al-extents 257;
  }
  on mdbrw01{
    device     /dev/drbd0;
    disk       /dev/sda5;
    address    192.168.43.11:7788;
    meta-disk  internal;
      }
  on mdbbk01{
    device    /dev/drbd0;
    disk      /dev/sda5;
    address   192.168.43.13:7788;
    meta-disk internal;
  }
}
resource r1 {
  protocol C;
  incon-degr-cmd "echo '!DRBD! pri on incon-degr' | wall ; sleep 60 ; halt -f";
  startup {
    wfc-timeout         0;
    degr-wfc-timeout  120;
  }
  disk {
    on-io-error detach;
  }
  net {
  }
  syncer {
    rate   4M;
    group   1;
  }
  on mdbrw02{
    device     /dev/drbd1;
    disk       /dev/sda5;
    address    192.168.43.15:7789;
    meta-disk  internal;
  }
  on mdbbk01 {
    device     /dev/drbd1;
    disk       /dev/sda6;
    address    192.168.43.13:7789;
    meta-disk  internal;
  }
}
启动Drbd
[mdbrwbak ~]# /etc/init.d/drbd start
建立专用块及文件系统
[mdbrwbak ~]#mknod /dev/drbd0 b 147 0
[mdbrwbak ~]#mknod /dev/drbd1 b 147 1
在C服务器上
[mdbrw02 ~]#vi /etc/drbd.conf
resource r0 {
  protocol C;
  startup {
    degr-wfc-timeout 120;
  }
  disk {
    on-io-error   detach;
  }
  net {
  }
  syncer {
    rate 10M;
    group 1;
    al-extents 257;
  }
  on mdbrw02{
    device     /dev/drbd1;
    disk       /dev/sda5;
    address    192.168.43.15:7789;
    meta-disk  internal;
  }
  on mdbbk01{
    device    /dev/drbd1;
    disk      /dev/sda6;
    address   192.168.43.13:7789;
    meta-disk internal;
  }
}
启动Drbd并设置为Primary
[mdbrw02 ~]# /etc/init.d/drbd start
[mdbrw02 ~]#drbdadm -- --do-what-I-say primary all
建立专用块及文件系统
[mdbrw02 ~]#mknod /dev/drbd1 b 147 1
[mdbrw02 ~]#mkfs /dev/drbd1
========配置heartbeat==========
分别在A、B服务器上创建authkeys和haresources文件
# vi /etc/ha.d/authkeys
auth 1
1 crc
#2 sha1 HI!
#3 md5 Hello!
[mdbrw01 ~]#chmod 600 /etc/ha.d/authkeys
[mdbrw01 ~]#vi /etc/ha.d/haresources
mdbrw01 IPaddr::192.168.33.100/24/eth1 mysql_umount mysql
[mdbrw01 ~]# cat /etc/ha.d/resource.d/mysql_umount
#!/bin/sh
unset LC_ALL; export LC_ALL
unset LANGUAGE; export LANGUAGE
prefix=/usr
exec_prefix=/usr
. /etc/ha.d/shellfuncs
case "$1" in
'start')
/sbin/drbdadm -- --do-what-I-say primary r0
#/sbin/drbdadm -- --do-what-I-say primary all
/bin/mount /dev/drbd0 /opt
        ;;
'pre-start')
        ;;
'post-start')
        ;;
'stop')
/bin/umount /opt
/sbin/drbdadm  secondary r0  
#/sbin/drbdadm  secondary all      
;;
'pre-stop')
        ;;
'post-stop')
        ;;
*)
        echo "Usage: $0 { start | pre-start | post-start | stop | pre-stop | post-stop }"
        ;;
esac
exit 0
[mdbrw01 ~]# cat /etc/ha.d/resource.d/mysql
内容略..
[mdbrw01 ~]# cat /etc/ha.d/ha.cf
logfile /var/log/ha-log
logfacility     local0
keepalive 625ms
deadtime 5
warntime 1250ms
initdead 30
udpport 699
bcast   eth1            # Linux
auto_failback off
node mdbrw01
node mdbbk01
ping  192.168.33.1
respawn hacluster /usr/lib64/heartbeat/ipfail
=============启动heartbeat==========
分别在A、B服务器上
[mdbrw01 ~]#etc/init.d/heartbeat start
注意事项:
1.drbd.conf文件中每一个资源的配置需要相同.
2.在/opt mount状态下不能启动drbd
3.在drbd启动状态下添加、修改、删除drbd.conf文件中的资源,可能会导致drbd stop失败
4.A、B服务器上的ha.cf需要保持一致



您对本贴的看法:鲜花[1] 臭蛋[0]

__________________________________

个人BLOG
http://www.china-lg.com

空间积分可以换礼品了! | 有奖跟帖:服务器节能,奖50-100元图书 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘
版主 yejr (Leo)
版主-精灵使



UID:82061
注册:2003-8-9
最后登录: 2008-08-29
帖子:3515
精华:1

可用积分:3460 (小富即安)
信誉积分:100
空间积分:0 (白手起家)
专家积分:10 (本版)

来自:中国茶都
状态:...离线...

[个人空间] [短信] [博客]


[推广] 顶部
2楼 发表于 2007-8-22 21:46 
支持,不过原理及说明性的东西少了点



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

MySQL中文网
MySQL技术支持、服务、解决方案
MySQL FAQ

空间积分可以换礼品了! | 有奖跟帖:服务器节能,奖50-100元图书 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘
mxbao
光明使者




UID:130134
注册:2004-2-3
最后登录: 2008-03-04
帖子:825
精华:0

可用积分:828 (稍有积蓄)
信誉积分:105
空间积分:0 (白手起家)
专家积分:0 (本版)

状态:...离线...

[个人空间] [短信] [博客]


[推广] 顶部
3楼 发表于 2007-8-23 11:39 
学习一下,等有机会,试验一下,哈哈



您对本贴的看法:鲜花[0] 臭蛋[0]
空间积分可以换礼品了! | 有奖跟帖:服务器节能,奖50-100元图书 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘
版主 qlks   帅哥
版主-光明使者




UID:272085
注册:2005-5-24
最后登录: 2008-08-28
帖子:718
精华:2

可用积分:780 (稍有积蓄)
信誉积分:100
空间积分:0 (白手起家)
专家积分:0 (本版)

状态:...离线...

[个人空间] [短信] [博客]


[推广] 顶部
4楼 发表于 2007-8-23 15:11 
非常不错
不过你这个在生产环境下试过吗?
因为我一直觉得DRBD速度上不行
所以一直没有在正式库上用过
做个测试对比吧,结果贴上来看看



您对本贴的看法:鲜花[0] 臭蛋[0]
空间积分可以换礼品了! | 有奖跟帖:服务器节能,奖50-100元图书 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘
sunnyfun
光明使者




UID:550758
注册:2007-4-12
最后登录: 2008-08-29
帖子:718
精华:1

可用积分:1796 (家境小康)
信誉积分:100
空间积分:0 (白手起家)
专家积分:278 (本版)

状态:...离线...

[个人空间] [短信] [博客]


[推广] 顶部
5楼 发表于 2007-8-23 15:58 
测试对比结果关注中...



您对本贴的看法:鲜花[0] 臭蛋[0]
空间积分可以换礼品了! | 有奖跟帖:服务器节能,奖50-100元图书 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘
lvscluster   帅哥 (largelove)
精灵王




UID:430440
注册:2006-6-13
最后登录: 2008-08-25
帖子:269
精华:0

可用积分:261 (白手起家)
信誉积分:100
空间积分:0 (白手起家)
专家积分:0 (本版)

状态:...离线...

[个人空间] [短信] [博客]


[推广] 顶部
6楼 发表于 2007-8-23 21:06 
回复 #1 love100 的帖子

写的太差了。



您对本贴的看法:鲜花[0] 臭蛋[0]
空间积分可以换礼品了! | 有奖跟帖:服务器节能,奖50-100元图书 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘
版主 love100   帅哥
版主-天使



UID:103062
注册:2003-10-4
最后登录: 2008-08-20
帖子:1458
精华:3

可用积分:1638 (家境小康)
信誉积分:100
空间积分:3 (白手起家)
专家积分:20 (本版)

状态:...保密...

[个人空间] [短信] [博客]


[推广] 顶部
7楼 发表于 2007-8-24 10:40 
回复 #4 qlks 的帖子

一直都在使用...
并且系统还是外汇交易。



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

个人BLOG
http://www.china-lg.com

空间积分可以换礼品了! | 有奖跟帖:服务器节能,奖50-100元图书 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘
版主 love100   帅哥
版主-天使



UID:103062
注册:2003-10-4
最后登录: 2008-08-20
帖子:1458
精华:3

可用积分:1638 (家境小康)
信誉积分:100
空间积分:3 (白手起家)
专家积分:20 (本版)

状态:...保密...

[个人空间] [短信] [博客]


[推广] 顶部
8楼 发表于 2007-8-24 10:41 
回复 #6 lvscluster 的帖子

请不吝赐教



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

个人BLOG
http://www.china-lg.com

空间积分可以换礼品了! | 有奖跟帖:服务器节能,奖50-100元图书 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘
版主 qlks   帅哥
版主-光明使者




UID:272085
注册:2005-5-24
最后登录: 2008-08-28
帖子:718
精华:2

可用积分:780 (稍有积蓄)
信誉积分:100
空间积分:0 (白手起家)
专家积分:0 (本版)

状态:...离线...

[个人空间] [短信] [博客]


[推广] 顶部
9楼 发表于 2007-8-24 21:46 


QUOTE:
原帖由 love100 于 2007-8-24 10:40 发表
一直都在使用...
并且系统还是外汇交易。

外汇交易系统用的是MySQL?
你是哪里的,我可以跟你交流下



您对本贴的看法:鲜花[0] 臭蛋[0]
空间积分可以换礼品了! | 有奖跟帖:服务器节能,奖50-100元图书 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘
版主 love100   帅哥
版主-天使



UID:103062
注册:2003-10-4
最后登录: 2008-08-20
帖子:1458
精华:3

可用积分:1638 (家境小康)
信誉积分:100
空间积分:3 (白手起家)
专家积分:20 (本版)

状态:...保密...

[个人空间] [短信] [博客]


[推广] 顶部
10楼 发表于 2007-8-25 09:17 
MSN:lg@china-lg.com



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

个人BLOG
http://www.china-lg.com

空间积分可以换礼品了! | 有奖跟帖:服务器节能,奖50-100元图书 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘

首页 » 论坛 » MySQL »


 


Copyright © 2001-2008 ChinaUnix.net All Rights Reserved     联系我们:

感谢所有关心和支持过ChinaUnix的朋友们    转载本站内容请注明原作者名及出处

京ICP证041476号


清除 Cookies - ChinaUnix - Archiver - WAP - TOP

Processed in 0.048402 second(s), 5 queries , Gzip enabled