mysql+drbd+heartbeat+主从

系统介绍:mysql+drbd+heartbeat+主从
mysql_drbdA  eth0:192.168.1.233 eth1:172.20.27.10
mysql_drbdB  eth0:192.168.1.234 eth1:172.20.27.20
VIP=192.168.1.235
mysql_slaveA eth0:192.168.1.232 eth1:172.20.27.30
一:DRBD安装
1.在mysql_drbdA和mysql_drbdB上面同时安装下面软件
1.1修改分别主机名为mysql_drbdA和mysql_drbdB
 vi /etc/hosts增加以下内容
 192.168.1.233 mysql_drbdA
 192.168.1.234 mysql_drbdB
1.2安装
tar zxvf drbd-8.3.5.tar.gz 
cd drbd-8.3.5
 make
 make install
 chkconfig --add drbd
 chkconfig --level 35 drbd off
1.3加载DRBD模块
 modprobe drbd
 lsmod |grep drbd
1.4配置/etc/drbd.conf
rm -rf /etc/drbd.conf
vi /etc/drbd.conf
global { usage-count yes; }
common { syncer { rate 100M; } }
resource r0 {
     protocol C;

startup { 
  wfc-timeout 0; 
  degr-wfc-timeout 120; 
}
disk { 
  on-io-error detach;
}
     net {
          cram-hmac-alg sha1; 
          shared-secret "FooFunFactory";
     }
     on mysql_drbdA {
          device    /dev/drbd0;
          disk      /dev/sdb1;
          address   192.168.1.233:7898;
          meta-disk  internal;
     }
     on mysql_drbdB {
          device    /dev/drbd0;
          disk      /dev/sdb1;
          address   192.168.1.234:7898;
          meta-disk  internal;
     } 
}
1.5创建一块虚拟硬盘为/dev/sdb的10G空间
 fdisk /dev/sdb(进去以后输入n,然后输入p,然后输入1,然后回车,然后输入+10G,最后输入w)
 mkfs.ext3 /dev/sdb1或者 dd if=/dev/zero bs=1M count=1 of=/dev/sdb1
 mkdir /data/mysql
1.6在mysql_drbdA和mysql_drbdB上面同时启动及使用
1.6.1建立md设备
  drbdadm create-md r0
1.6.2启动drbd服务程序
 /etc/init.d/drbd start
1.6.3确认drbd状态
 cat /proc/drbd
version: 8.3.5 (api:88/proto:86-91)
GIT-hash: ded8cdf09b0efa1460e8ce7a72327c60ff2210fb build by [email protected], 2012-06-08 17:47:52
 0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r----
    ns:1959800 nr:0 dw:0 dr:1959800 al:0 bm:120 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:0
再次确认backup的drbd状态
 cat /proc/drbd
 GIT-hash: ded8cdf09b0efa1460e8ce7a72327c60ff2210fb build by [email protected], 2012-06-08 18:10:58
 0: cs:Connected ro:Secondary/Primary ds:UpToDate/UpToDate C r----
    ns:0 nr:1959800 dw:1959800 dr:0 al:0 bm:120 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:0
2.在mysql_drbdA上面验证磁盘镜像结果
初始化Primary机
第一次的话要使用
drbdsetup /dev/drbd0 primary -o
以后可以使用drbdadm  primary all命令。
再次确认master的drbd状态
将新创建的设备格式化并且挂载:
mkfs.ext3 /dev/drbd0  //破坏文件系统:dd if=/dev/zero bs=1M of=/dev/sdb1;sync 
mount /dev/drbd0 /data/
将主服务器降为从:
先卸载设备:
 umount /data/ 
drbdadm secondary all 
3.解决drbd脑裂问题
3.1在从节点mysql_drbdB上面执行
/etc/init.d/heartbeat stop
drbdadm -- --discard-my-data connect r0
3.2在主节点mysql_drbdA上面执行
/etc/init.d/heartbeat stop
drbdadm disconnect r0
drbdadm connect r0
drbdadm primary r0
二.安装mysql数据库
2.1在mysql_drbdA安装mysql数据库
mount /dev/drbd0 /data/
chown -R mysql.mysql  /data/mysql
yum -y install ncurses ncurses-devel
groupadd mysql
useradd -g mysql -s /sbin/nologin mysql 
cd /root/soft
tar zxvf mysql-5.1.41.tar.gz
chown -R mysql:mysql mysql-5.1.41
cd mysql-5.1.41
./configure \
--prefix=/usr/local/mysql \
--localstatedir=/data/mysql \
--with-unix-socket-path=/data/mysql/mysql.sock \
--with-plugins=innobase,partition,myisam,heap \
--enable-assembler \
--with-charset=utf8 \
--enable-thread-safe-client \
--with-client-ldflags=-all-static \
--with-mysqld-ldflags=-all-static \
--enable-static=yes \
--with-big-tables   
make
make install
cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf
sed -i ‘/myisam_/  a\ pid-file = /data/mysql/mysql.pid‘ /etc/my.cnf
sed -i ‘/pid-file/  a\ datadir = /data/mysql‘ /etc/my.cnf
chown -R mysql:mysql /usr/local/mysql
chown -R mysql:mysql /data/mysql
/usr/local/mysql/bin/mysql_install_db \
--basedir=/usr/local/mysql \
--defaults-file=/etc/my.cnf \
--skip-external-locking \
--user=mysql
/usr/local/mysql/bin/mysqld_safe \
--defaults-file=/etc/my.cnf \
--user=mysql &
cp /usr/local/mysql/share/mysql/mysql.server /etc/init.d/mysqld
chmod 700 /etc/init.d/mysqld
ln -s /usr/local/mysql/bin/mysql /usr/bin/
ln -s /usr/local/mysql/bin/mysqldump /usr/bin/
service mysqld start
chkconfig mysqld off
2.2在mysql_drbdB安装mysql数据库
mount /dev/drbd0 /data/
yum -y install ncurses ncurses-devel
groupadd mysql
useradd -g mysql -s /sbin/nologin mysql 
cd /root/soft
tar zxvf mysql-5.1.41.tar.gz
chown -R mysql:mysql mysql-5.1.41
cd mysql-5.1.41
./configure \
--prefix=/usr/local/mysql \
--localstatedir=/data/mysql \
--with-unix-socket-path=/data/mysql/mysql.sock \
--with-plugins=innobase,partition,myisam,heap \
--enable-assembler \
--with-charset=utf8 \
--enable-thread-safe-client \
--with-client-ldflags=-all-static \
--with-mysqld-ldflags=-all-static \
--enable-static=yes \
--with-big-tables   
make
make install
cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf
sed -i ‘/myisam_/  a\ pid-file = /data/mysql/mysql.pid‘ /etc/my.cnf
sed -i ‘/pid-file/  a\ datadir = /data/mysql‘ /etc/my.cnf
chown -R mysql:mysql /usr/local/mysql
chown -R mysql:mysql /data/mysql
cp /usr/local/mysql/share/mysql/mysql.server /etc/init.d/mysqld
chmod 700 /etc/init.d/mysqld
ln -s /usr/local/mysql/bin/mysql /usr/bin/
ln -s /usr/local/mysql/bin/mysqldump /usr/bin/
service mysqld start
chkconfig mysqld off
三:heartbeat安装
3.1.在mysql_drbdA和mysql_drbdB安装libnet和heartbeat
tar zxvf libnet-1.1.6.tar.gz 
 cd libnet-1.1.6
./configure 
 make && make install
3.2.添加用户
groupadd haclient
useradd -g haclient hacluster 
3.3.heartbeat编译
tar zxvf heartbeat-2.1.3.tar.gz 
cd heartbeat-2.1.3
./ConfigureMe configure
make && make install
3.4.配置heartbeat
 cd /etc/ha.d/
 vi ha.cf
    debugfile /var/log/ha-debug
    logfile /var/log/ha-log
    logfacility local0
keepalive 2
deadtime 15
warntime 5
initdead 120
        udpport 694
        bcast  eth0
auto_failback off
node mysql_drbdA
node mysql_drbdB
ucast eth0 192.168.1.234    #(对端服务器这里配置192.168.1.233 ) 
respawn  hacluster /usr/lib64/heartbeat/ipfail
apiauth  ipfail   gid=haclient  uid=hacluster
hopfudge
 vi  authkeys 
  auth 3
3 md5 Hello!

chmod 600 authkeys 
cp /etc/init.d/mysqld /etc/ha.d/resource.d/
 vi haresources
  mysql_drbdA drbddisk Filesystem::/dev/drbd0::/data::ext3 mysqld 192.168.1.235 (对端服务器这里写mysql_drbdB) 
/etc/init.d/heartbeat start
3.5在mysql_drbdA重启服务器需执行下面命令
modprobe drbd
service drbd start
drbdadm  primary all
mount /dev/drbd0 /data/
service mysqld restart
/etc/init.d/heartbeat start
3.6在mysql_drbdB重启服务器需执行下面命令
modprobe drbd
service drbd start
/etc/init.d/heartbeat start
四:从向VIP数据同步
4.1在mysql_drbdA和mysql_drbdB配置
1)、确保/etc/my.cnf中有如下参数,没有的话需手工添加,并重启mysql服务。
[mysqld]
log-bin=mysql-bin      #启动二进制文件
expire_logs_days = 20  #保留20的天的二进制日志 
server-id=1            #服务器ID
binlog-ignore-db =mysql #不需要备份的数据库,多个写多行
binlog-ignore-db =test
binlog-ignore-db =information_schema 
2)、登录mysql,在mysql中添加一个backup的账号,并授权给从服务器。
mysql -uroot -p123
grant replication slave on *.* to ‘backup‘@‘192.168.1.232‘ identified by ‘backup‘; 创建backup用户,并授权给192.168.1.232使用。
flush privileges;
quit 
4.2在mysql_slaveA从服务器上操作:
1)、确保/etc/my.cnf中有log-bin=mysql-bin和server-id=1参数,并把server-id=1修改为server-id=2。修改之后如下所示:
[mysqld]
log-bin=mysql-bin    #这个参数可以不用,因为他不需要双向同步
binlog_format=mixed
server-id=2
master-host          = 192.168.1.235   
master-user          = backup 
master-password      = backup    
master-port          = 3306    
master-connect-retry = 120  
read-only            = 1   
relay-log-purge      = 1  
replicate-ignore-db  = mysql  #不需要同步数据库,多个写多行
replicate-ignore-db  = test
replicate-ignore-db  = information_schema
slave-skip-errors    = all  
2)、重启mysql服务。
service mysqld restart 
3)、登录mysql,执行如下语句
mysql -uroot -p123
slave stop;
change master to 
master_host=‘192.168.1.235‘,master_user=‘backup‘,master_password=‘backup‘,master_log_file=‘mysql-bin.000059‘,master_log_pos=106;
4)、启动slave同步。
mysql> start slave; 
5)、检查主从同步,如果您看到Slave_IO_Running和Slave_SQL_Running均为Yes,则主从复制连接正常。
mysql> show slave status\G
验证配置是否正常,mysql主从能否正常复制。

时间: 2024-10-25 12:14:16

mysql+drbd+heartbeat+主从的相关文章

mysql+DRBD+heartbeat

MySQL+DRBD+heartbeat                     概述: DRBD 一.DRBD简介 DRBD的全称为:Distributed ReplicatedBlock Device(DRBD)分布式块设备复制,DRBD是由内核模块和相关脚本而构成,用以构建高可用性的集群.其实现方式是通过网络来镜像整个设备.你可以把它看作是一种网络RAID.它允许用户在远程机器上建立一个本地块设备的实时镜像. 二.DRBD工作原理 (DRBD Primary)负责接收数据,把数据写到本地磁

Mysql+DRBD+Heartbeat 实现mysql高可用的双击热备(DRBD篇)

DRBD官方tar包下载地址:   http://oss.linbit.com/drbd/ 环境介绍: 系统版本:CentOS 6.4 (64位) 内核版本  2.6.32-358.el6.x86_64 软件版本:drbd-8.4.3.tar.gz 主:10.0.0.1   从:10.0.0.2 两台机器上的hosts都需要修改: [[email protected] ~]# vim /etc/hosts 10.0.0.1    node1 10.0.0.2    node2 两台服务器双网卡,

Mysql+DRBD+Heartbeat 实现mysql高可用的双机热备(mysql+heartbeat篇)

*************************************部署MYSQL******************************************* yum -y install  gcc gcc-c++ gcc-g77 autoconf automake zlib* fiex* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel* make cmake bison* useradd mysql -d /usr/loc

IV 12 MySQL+drbd+heartbeat

一主多从是最常用的DB架构方案,该架构部署简单.维护方便,通过代理或程序的方式可实现rw splitting,且多个从库通过LVS或haproxy实现LB分担r的压力,排除了r的单点问题,但仅有一个主库这也是单点,若主出问题w将停止,最简单的方案人工介入,做监控,主一旦宕机,管理人员手动选择半同步的那个从改为主,让其它从与新的主同步,人工介入虽可行但高要求的场合并不适用 注: 正常情况下MySQL-M-active负责w,MySQL-M-inactive为不可见状态,MySQL slave负责r

mysql+drbd+heartbeat高可用配置说明

环境描述: 系统版本:Red Hat Enterprise Linux Server release 5.5 (Tikanga)x86_64 2.6.18-164.el5 mysql版本:mysql-5.1.49.tar.gz drbd版本:drbd83-8.3.15-2.el5.centos.rpm heartbeat版本:heartbeat.x86_64 0:2.1.3-3.el5.centos.rpm 主机名 Eth0 Eth1 备注 ln-master 10.10.206.193 192

MySQL+DRBD+heartbeat+LVS+keepalived

在node1上的操作:[[email protected] 桌面]# iptables -F[[email protected] 桌面]# chkconfig iptables off[[email protected] 桌面]# setenforce 0[[email protected] 桌面]# ip addr show1: lo: mtu 16436 qdisc noqueue state UNKNOWN     link/loopback 00:00:00:00:00:00 brd 0

Drbd+Heartbeat+Mysql主从高可用

一.准备工作 系统:Centos6.5 两台主机需要相互域名解析 主节点(Primary Node) 次节点(Secondary Node) 主机名 ser5.hyzc.com ser6.hyzc.com IP地址 192.168.2.10 192.168.2.11 1.安装DRBD 参考博客安装  http://pengjc.blog.51cto.com/9255463/1835186 2.安装heartbeat与mysql 安装epel扩展源:        #yum -y install

DRBD+HEARTBEAT+MYSQL实践过程

### 知识补充,一定要看哦: 工作原理:指定heartbeat服务器作为主服务器,则另外一台将自动成为热备服务器,然后热备服务器上的配置heartbeat守护程序来监听来自主服务器的心跳,如果热备服务器在指定时间内未监听到来自主服务器的心跳,就会启动故障转移程序,并取得主服务器上的相关资源及服务的所有权,阶梯主服务器继续提供不间断服务从而达到资源及服务高可用性的目的. 和keepalived服务器一样,heartbeat高可用是服务器级别的,不是服务级别的. heartbeat切换的常见条件:

DRBD+Heartbeat+Mysql:配置mysql的高可用

说明: 今天接着研究DRBD的第二个应用,利用DRBD+Heartbeat+Mysql:配置mysql的高可用 环境: [[email protected] ~]# cat /etc/issue CentOS release 6.4 (Final) Kernel \r on an \m [[email protected] ~]# uname -r 2.6.32-358.el6.i686 dbm137 192.168.186.137 dbm137.51.com primary DRBD+Hear