mysql不中断切换_用MySQL+HeartBeat实现MySQL主主自动切换来保证网站不中断服务

对于数据库的高可用性,各商业软件的厂商都有各自的解决方案,比如Oracle OPS server和IBM DB2 (share-nothing architecture)。最

Mysql HA实现MYSQL的高可用

一、背景

当前大多网站采用MYSQL+Linux+APACHE这种经典配置,如何防止单点失败造成的整个网站的不可用是网站管理者必须要考虑的问题,其中数据库的高可用性(Database server’s high availability)是重中之重。

对于数据库的高可用性,各商业软件的厂商都有各自的解决方案,比如Oracle OPS server和IBM DB2 (share-nothing architecture)。最近MYSQL AB也发布了MYSQL cluster 软件,使用与IBM DB2类似的技术。

MySQL cluster可能会是日后最理想的方案,但是从资源、可集成度方面考虑,,给出一个简单实用的方案借鉴。本文介绍的是性价比比较高的一种: 使用Heartbeat 2.0配置Linux高可用性集群。

二、实现原理

通过Linux HA 软件 heartbeat 实现IP的自动漂移,即当一台服务器宕机后,浮动IP(整个cluster的对外IP )自动漂移到另外一台服务器。

0072e04ba1aa8b101be8a17e950370fd.png

通过Mysql自身的replication 实现不同机器上多个数据库的同步整体性能此方案将会降低MYSQL 1%左右的性能,可用性及数据安全性将大有提高,同时服务器的切换对终端使用者是透明的,终端应用不需要进行更改。

所需硬件

安装有双网卡的配置大致相同的服务器或工作机两台 一条交叉网线(用于双机对连的心跳线)

所需软件

Linux HA 软件 heartbeat (只支持两个节点),安装盘里集成的有这个软件的rpm包

软件主页:

Mysql软件

软件主页:

实现步骤

一、设置硬件环境:如下表:

计算机名:

网卡

ip地址

primary

Eth0

eth1

192.168.0.10/255.255.255.0

10.0.0.1/255.0.0.0 (用于心跳)

backup

Eth0

eth1

192.168.0.11/255.255.255.0

10.0.0.2/255.0.0.0 (用于心跳

primary和backup的eth0分别连接到你的交换机

primary和backup的eth1之间用心跳线直连起来,做心跳

浮动IP为192.168.0.8/255.255.255.0

二、安装MYSQL

在primary节点上安装mysql数据库

这里我开始都把它下载到本地了,所以这里我用软件把mysql包上传到服务器root目录下

1、在linux系统中添加运行Mysql的用户和组

[root@primary ~]# groupadd mysql

[root@primary ~]# useradd -g mysql mysql

2、解压缩源码包

[root@primary ~]# tar -zxvf mysql-5.0.22.tar.gz

[root@primary ~]# cd mysql-5.0.22

3、配置编译

配置mysql的安装目录,并制定数据库的存放位置

[root@primary mysql-5.0.22]# ./configure –prefix=/usr/local/mysql \

–localstatedir=/var/lib/mysql

4、编译并安装

[root@primary mysql-5.0.22]#make

[root@primary mysql-5.0.22]#make install

5、装载原始授权到数据库

[root@primary mysql-5.0.22]#./scripts/mysql_install_db

6、copy配置文件到/etc目录

[root@primary mysql-5.0.22]# cp support-files/my-medium.cnf /etc/my.cnf

7、copy启动脚本到资源目录

cp support-files/mysql.server /etc/rc.d/init.d/mysqld

8、添加mysql服务,让系统启动时自动启动mysql服务

[root@primary mysql-5.0.22]#chmod +x /etc/rc.d/init.d/mysqld

[root@primary mysql-5.0.22]#chkconfig –level 235 mysqld on

9、更改目录属主/var/lib/mysql

[root@primary mysql-5.0.22]#chown -R mysql.mysql /var/lib/mysql

10、启动mysql

[root@primary mysql-5.0.22]#service mysqld start

11、设置环境变量

[root@primary ~]# vi /etc/profile添加一行就 ,在运行mysql的时候就不用输入很长的路经了

export PATH=$PATH:/usr/local/mysql/bin

设置好之后,用下行命令是设置立即生效

# source /etc/profile

在backup服务器上安装mysql如同上面的步骤

在mysql数据库中创建一个库,用来同步数据和测试用,mysql安装完后有一个练习库test这里就不建了直接就用它了。在test库里面先建一个表

登陆mysql数据库

mysql -u root -p

(执行后提示输入密码,正确输入mysql root用户密码后,登入mysql,以下操作在mysql命令行下进行)

要使用test数据库,先用use命令选择该数据库:

mysql> use test

创建一个表

下面使用create table语句指定你要建的表的布局,下面只是用于一个测试的表。我就随便建了一个:

mysql> create table data(name VARCHAR(20), address VARCHAR(50), phone VARCHAR(20));

Query OK, 0 rows affected (0.11 sec)

在表中添加一条记录,用insert into语句:

mysql> insert into data(name,address,phone) values(‘jhone’,'beijing’,’138000000′);

Query OK, 1 row affected (0.02 sec)

查看表中的记录

mysql> select * from data;

+——-+———+———–+

| name | address | phone |

+——-+———+———–+

| jhone | beijing | 138000000 |

+——-+———+———–+

1 row in set (0.05 sec)

logo.gif

f68f2add0b68e4f9810432fce46917b7.png

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值