ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Keepalived 架构高可用 Mysql

Keepalived 架构高可用 Mysql

原创 Linux操作系统 作者:czxin788 时间:2015-01-21 11:18:44 0 删除 编辑

Keepalived 架构高可用 Mysql

 

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

 

1、实验网络拓扑图

2、keepalived的安装

在10.72.16.226和10.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/

--选择和自己一样的kernel,tab键补齐。

[root@localhost keepalived-1.2.1]# make

[root@localhost keepalived-1.2.1]# make install

主备机器都如上安装。

3、keepalived的配置

3.1在10.72.16.226(master)上面配置

[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.2在10.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改成BACKUP,priority改成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.226和10.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

2)keepalived 故障转移测试

 

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.230,ifconfig看不到。

 

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博客 ” ,链接:https://blog.itpub.net/28916011/viewspace-1409122/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: plsql学习笔记
请登录后发表评论 登录
全部评论

注册时间:2014-06-03

  • 博文量
    233
  • 访问量
    858415