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 )自动漂移到另外一台服务器。通过Mysql自身的replication 实现不同机器上多个数据库的同步整体性能此方案将会降低MYSQL 1%左右的性能,可用性及数据安全性将大有提高,同时服务器的切换对终端使用者是透明的,终端应用不需要进行更改。所需硬件安装有双网卡的配置大致相同的服务器或工作机两台 一条交叉网线(用于双机对连的心跳线)所需软件Linux HA 软件 heartbeat (只支持两个节点),安装盘里集成的有这个软件的rpm包软件主页:http://www.linux-ha.org/Mysql软件软件主页:http://www.mysql.com实现步骤一、设置硬件环境:如下表:
| 计算机名: | 网卡 | 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 mysql2、解压缩源码包[root@primary ~]# tar -zxvf mysql-5.0.22.tar.gz[root@primary ~]# cd mysql-5.0.223、配置编译配置mysql的安装目录,并制定数据库的存放位置[root@primary mysql-5.0.22]# ./configure –prefix=/usr/local/mysql –localstatedir=/var/lib/mysql4、编译并安装[root@primary mysql-5.0.22]#make[root@primary mysql-5.0.22]#make install5、装载原始授权到数据库[root@primary mysql-5.0.22]#./scripts/mysql_install_db6、copy配置文件到/etc目录[root@primary mysql-5.0.22]# cp support-files/my-medium.cnf /etc/my.cnf7、copy启动脚本到资源目录cp support-files/mysql.server /etc/rc.d/init.d/mysqld8、添加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 on9、更改目录属主/var/lib/mysql[root@primary mysql-5.0.22]#chown -R mysql.mysql /var/lib/mysql10、启动mysql[root@primary mysql-5.0.22]#service mysqld start11、设置环境变量[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)
Oracle的简单优化实例分析远程连接Oracle报错:TNS-: no listener相关资讯 MySQL教程
- 30分钟带你快速入门MySQL教程 (02月03日)
- MySQL教程:关于I/O内存方面的一些 (01月24日)
- CentOS上开启MySQL远程访问权限 (01/29/2013 10:58:40)
| - MySQL教程:关于checkpoint机制 (01月24日)
- MySQL::Sandbox (04/14/2013 08:03:38)
- 生产环境MySQL 5.5.x单机多实例配 (11/02/2012 21:02:36)
|
本文评论 查看全部评论 (0)