Chinaunix首页 | 论坛 | 博客
  • 博客访问: 276896
  • 博文数量: 44
  • 博客积分: 2046
  • 博客等级: 大尉
  • 技术积分: 611
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-06 11:11
文章分类

全部博文(44)

文章存档

2011年(1)

2010年(43)

我的朋友

分类:

2010-07-11 22:53:39

本文是继《MYSQL主从同步配置》一文之后的又一篇文档,主要是为了实现数据库的读写操作异步进行,达到减轻DB服务器压力的目的。在进行mysql主从同步之后,数据安全性得到了提高,但当业务量不断提高之后,数据库压力日渐增加,为了降低数据库压力,因此提出了读写分离功能,具体实现方式如下:

关于主从备份配置,请参阅文章MYSQL主从同步配置》,本人在实现主从同步的基础服务器上进行操作。

准备一台mysql-proxy服务器,环境也为centos 5.4

所需软件准备:

mysql-5.1.30.tar.gz

一、安装mysql-proxy.需要按下列顺序安装其所依赖的包:
 1安装LUA
tar zxvf lua-5.1.tar.gz
cd lua-5.1
sed -i 's#INSTALL_TOP= /usr/local#INSTALL_TOP= /usr/local/lua#' /tmp/soft/lua-5.1/Makefile

(/tmp/soft/lua-5.1/Makefile目录是我的lua解压后的目录,主要目的是把lua所有文件都安装到/usr/local/lua目录下)

make posix
 make install
 
2安装 libevent

tar zxvf libevent-1.1a.tar.gz
cd libevent-1.1a

./configure --prefix=/usr/local/libevent

make

make install
 
3安装check
 tar zxvf check-0.8.4.tar.gz
 cd check-0.8.4

./configure
 make
 make install 

4设置安装mysql-proxy所需的环境变量.

export LUA_CFLAGS="-I/usr/local/lua/include" LUA_LIBS="-L/usr/local/lua/lib -llua -ldl" LDFLAGS="-L/usr/local/libevent/lib -lm"
 export CPPFLAGS="-I/usr/local/libevent/include"
 export CFLAGS="-I/usr/local/libevent/include"
 在不重启系统的情况,重新加载环境变量

 source /etc/profile 


5安装mysql(只安装mysql客户端即可)
 tar zxvf mysql-5.0.45.tar.gz
 cd mysql-5.0.45
 ./configure --prefix=/usr/local/mysql --without-server
 make
 make install 

6安装mysql-proxy

tar zxvf mysql-proxy-0.5.0.tar.gz
cd mysql-proxy-0.5.0
./configure --prefix=/usr/local/mysql-proxy --with-mysql=/usr/local/mysql5 --with-lua
Make
Make install

7、代理的配置:

/usr/local/mysql-proxy/mysql-proxy/sbin/mysql-proxy 

  --admin-address=:4401

  --proxy-address=:3307

--proxy-read-only-backend-addresses=172.16.16.200:3306 --proxy-read-only-backend-addresses=172.16.16.201:3306 --proxy-backend-addresses=172.16.16.199:3306  --proxy-lua-script=/usr/local/mysql-proxy/share/rw-splitting.lua &

 

参数详解

--admin-address=:4401 指定mysql proxy的管理端口,在这里,表示本机的4401端口

--proxy-address=:3307 指定mysql proxy的监听端口,也可以用 127.0.0.1:3307 表示

--proxy-backend-addresses指定mysql写主机的端口

--proxy-read-only-backend-addresses指定只读的mysql主机端口

--proxy-read-only-backend-addresses指定另一个只读的mysql主机端口

--proxy-lua-script指定lua脚本位置,使用的是rw-splitting脚本,用于读写分离

8、编写启动脚本:

vi /root/mysql-proxy

#!/bin/bash

LUA_PATH="/usr/local/mysql-proxy/share/?.lua"

mysql-proxy --admin-address=:4401 --proxy-address=:3307 --proxy-read-only-backend-addresses=172.1

6.16.200:3306 --proxy-read-only-backend-addresses=172.16.16.201:3306 --proxy-backend-addresses=17

2.16.16.199:3306  --proxy-lua-script=/usr/local/mysql-proxy/share/rw-splitting.lua &
给启动脚本赋于执行权限

chmod 755 mysql-proxy


9、读写分离测试:用mysql客户端程序如mysql登陆到mysql代理,然后执行读写操作,以测试读写分离的正确性。

阅读(4694) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~