Keepalived 架构高可用 Mysql

Keepalived 架构高可用 Mysql

 

以下是我实验的步骤,仅供参考。

 

1、实验网络拓扑图

28916011_1421810323d3dS.png

2keepalived的安装

10.72.16.22610.72.16.227分别安装keepalived软件。

[root@localhost ~]# tar xf keepalived-1.2.1.tar.gz

[root@localhost ~]# cd keepalived-1.2.1

[root@localhost keepalived-1.2.1]# ./configure --prefix=/ --mandir=/usr/local/share/man/         --with-kernel-dir=/usr/src/kernels/2.6.18-194.el5xen-i686/

--选择和自己一样的kerneltab键补齐。

[root@localhost keepalived-1.2.1]# make

[root@localhost keepalived-1.2.1]# make install

主备机器都如上安装。

3keepalived的配置

3.110.72.16.226master)上面配置

[root@localhost keepalived-1.2.1]# cd /etc/keepalived/

[root@localhost keepalived]# cp keepalived.conf keepalived.conf.default

[root@localhost keepalived]# vim keepalived.conf

主备mysql中只是黄色字体不一样,其他都一样

global_defs {

router_id Hadb_1

}

vrrp_sync_group VGM {

group {

VI_HA

}

}

vrrp_script chk_mysql {

script "killall -0 mysqld"

#script "/tcp/127.0.0.1/3306"

interval 1

}

# vvrp_instance define #

vrrp_instance VI_HA {

state MASTER

interface eth0

virtual_router_id 54

priority 100

advert_int 1

authentication {

auth_type PASS

auth_pass hamysql

}

virtual_ipaddress {

10.72.16.230

}

track_script {

chk_mysql

}

}

 

[root@localhost keepalived]#scp keepalived.conf 10.72.16.227:/etc/keepalived/

3.210.72.16.227(backup)上面的配置

[root@localhost keepalived-1.2.1]# cd /etc/keepalived/

[root@localhost keepalived]# cp keepalived.conf keepalived.conf.default

[root@localhost keepalived]# vim keepalived.conf

主备的keepalived.conf中只是黄色字体不一样,其他都一样。

所以只需将state改成BACKUPpriority改成50即可

 

global_defs {

router_id Hadb_1

}

vrrp_sync_group VGM {

group {

VI_HA

}

}

vrrp_script chk_mysql {

script "killall -0 mysqld"

#script "/tcp/127.0.0.1/3306"

interval 1

}

# vvrp_instance define #

vrrp_instance VI_HA {

state BACKUP

interface eth0

virtual_router_id 54

priority 50

advert_int 1

authentication {

auth_type PASS

auth_pass hamysql

}

virtual_ipaddress {

10.72.16.230

}

track_script {

chk_mysql

}

}

 

3.3启动 Keepalived 服务

分别启动两台服务器(10.72.16.22610.72.16227)的 Keepalived 服务并观察其日志,校验高可用是否成功。

[localhost@localhost ~]# service keepalived start

[localhost @localhost ~]# tail /var/log/messages

3.4 测试keepalived

1)在一台装有 mysql 客户端的 windows linux 机器登陆 VIP 10.72.16.230 测试。

# mysql -uroot –p123 -h10.72.16.230

2keepalived 故障转移测试

 

A:在 windows linux 客户端一直去 ping VIP 10.72.16.230,然后关闭 10.72.16.226 上的 keepalived,正常情况下 VIP 10.72.16.230就会切换到 10.72.16.227 上面去。

注:通过命令ip a来查看vip 10.72.16.230ifconfig看不到。

 

B:开启 10.72.16.226 上的 keepalived,看vip是否能自动切换回来。

3)MySQL 故障转移测试

A:在 10.72.16.226 上关闭 MySQL 服务,看 VIP 是否会切换到 10.72.16.227

[localhost@localhost ~]# service mysqld stop

[localhost @localhost ~]# tail /var/log/messages -f

[root@localhost keepalived]# ip a

2: eth0: mtu 1500 qdisc pfifo_fast qlen 1000

    link/ether 00:0c:29:76:fe:3b brd ff:ff:ff:ff:ff:ff

    inet 10.72.16.226/24 brd 10.72.16.255 scope global eth0

    inet 10.72.16.230/32 scope global eth0

    inet6 fe80::20c:29ff:fe76:fe3b/64 scope link

       valid_lft forever preferred_lft forever

4 MySQL主主复制

4.1 授权用户

10.72.16.226

grant replication slave,file on *.* to 'repl1'@'10.72.16.227' identified by '123';

 

10.72.16.227

grant replication slave,file on *.* to 'repl2'@'10.72.16.226' identified by '123';

 

4.2 修改配置文件

4.2.1 10.72.16.226

vi /etc/my.cnf

添加如下标黄色部分,其中只需要修改红色字体部分。

[mysqld]

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

user=mysql

log-bin=mysql-bin

server-id=1

binlog-do-db=db1 #需要进行同步的数据库

binlog-ignore-db=mysql

replicate-do-db=db1 #需要进行同步的数据库

replicate-ignore-db=mysql

log-slave-updates

slave-skip-errors=all

sync_binlog=1

auto_increment_increment=2

auto_increment_offset=1

master-host=10.72.16.227

master-user=repl2

master-password=123

# Default to using old password format for compatibility with mysql 3.x

# clients (those using the mysqlclient10 compatibility package).

old_passwords=1

 

# Disabling symbolic-links is recommended to prevent assorted security risks;

# to do so, uncomment this line:

# symbolic-links=0

 

[mysqld_safe]

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

 

4.2.2 10.72.16.227

vi /etc/my.cnf

添加如下标黄色部分,其中只需要修改红色字体部分。

 

[mysqld]

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

user=mysql

log-bin=mysql-bin

server-id=2

binlog-do-db=db1 #需要同步的数据库

binlog-ignore-db=mysql

replicate-do-db=db1 #需要同步的数据库

replicate-ignore-db=mysql

log-slave-updates

slave-skip-errors=all

sync_binlog=1

auto_increment_increment=2

auto_increment_offset=1

master-host=10.72.16.226

master-user=repl1

master-password=123

# Default to using old password format for compatibility with mysql 3.x

# clients (those using the mysqlclient10 compatibility package).

old_passwords=1

 

# Disabling symbolic-links is recommended to prevent assorted security risks;

# to do so, uncomment this line:

# symbolic-links=0

 

[mysqld_safe]

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

~

4.3分别重启两服务器的 Mysql 服务

service mysqld restart

4.4 分别在两服务器上查看从服务器状态

mysql>show slave status\G;

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

查看以上两项的值,均为 Yes 则表示状态正常

 

4.5  测试主主同步

A:测试服务器 Master,在服务器 Master 中新建数据

mysql> use db1

Database changed

mysql> show tables;

+----------------+

| Tables_in_test |

+----------------+

1 row in set (0.00 sec)

mysql> create table t2 (id int,name varchar(10));

Query OK, 0 rows affected (0.00 sec)

B:在 Backup 服务器进行查看

mysql> show tables;

+----------------+

| Tables_in_test |

+----------------+

| t2              |

+----------------+

2 rows in set (0.00 sec)

C:在 Backup 服务器中插入一条记录

mysql> insert into t2 values (001,"ganxing");

Query OK, 1 row affected (0.01 sec)

D:在 Master 服务器中查看

mysql> select * from t2;

+------+---------+

| id    | name     |

+------+---------+

|     1 | ganxing |

+------+---------+

1 row in set (0.00 sec)

 

 

以上,我们搭建完成了MYSQL的主主复制和keepalived提供vip漂移的高可用模式。

 

完!





附件列表

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28916011/viewspace-1409122/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/28916011/viewspace-1409122/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
自动控制节水灌溉技术的低代表着农业现代化的发展状况,灌溉系统自动化水平较低是制约我国效农业发展的主要原因。本文就此问题研究了单片机控制的滴灌节水灌溉系统,该系统可对不同土壤的湿度进行监控,并按照作物对土壤湿度的要求进行适时、适量灌水,其核心是单片机和PC机构成的控制部分,主要对土壤湿度与灌水量之间的关系、灌溉控制技术及设备系统的硬件、软件编程各个部分进行了深入的研究。 单片机控制部分采用上下位机的形式。下位机硬件部分选用AT89C51单片机为核心,主要由土壤湿度传感器,信号处理电路,显示电路,输出控制电路,故障报警电路等组成,软件选用汇编语言编程。上位机选用586型以上PC机,通过MAX232芯片实现同下位机的电平转换功能,上下位机之间通过串行通信方式进行数据的双向传输,软件选用VB级编程语言以建立友好的人机界面。系统主要具有以下功能:可在PC机提供的人机对话界面上设置作物要求的土壤湿度相关参数;单片机可将土壤湿度传感器检测到的土壤湿度模拟量转换成数字量,显示于LED显示器上,同时单片机可采用串行通信方式将此湿度值传输到PC机上;PC机通过其内设程序计算出所需的灌水量和灌水时间,且显示于界面上,并将有关的灌水信息反馈给单片机,若需灌水,则单片机系统启动鸣音报警,发出灌水信号,并经放大驱动设备,开启电磁阀进行倒计时定时灌水,若不需灌水,即PC机上显示的灌水量和灌水时间均为0,系统不进行灌水。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值