mysql主从服务器配置

假如一个业务场景,测试后,读写比列为1:20,根据读写比例,合理设置优化方案。

读写比列:

写数据/读数据比例,    insert/update/delete    /  select

从“读写分离”概念推导实现基本要素:

一般来说,读服务器就是指写服务器的数据镜像。

从服务器端看:要有N台从服务器和主服务器保持数据一致。

从客户端看:比如有一条insert语句和一条select语句,

则要区分读/写语句,并且分别请求从/主服务器。

服务器端读写分离的具体技术

1:数据库集群技术

集群由3个概念

(1)sql节点    sql node

(2)数据节点    data node

(3)管理节点    ndb managerment

sql语句发送“1sql节点”,“1sql”节点发往“2数据节点”,再由3管理节点完成数据节点之间的同步。

集群技术相对复杂,至少有3种节点,4台服务器才能完成。

2,数据库复制

写/master(0)      同步        读/slave(1)

3,数据库复制replication的实现原理

(1)主服务器凡运行语句,都产生一个二进制日志 binlog

(2)从服务器不断读取主服务器的binlog

(3)从服务器读取到的binlog,转换为自身可执行的relaylog

(4)执行relaylog

4,实现步骤:

(1)首先确保主服务器打开二进制日志功能

这样,主服务器一旦有数据变化,立即产生二进制日志

(2)从服务器也需要开启二进制日志和relay日志功能

这样可以从主服务器读取binlog,并产生relaylog

(3)在主服务器建立一个从服务器的账号,并授予最高权限

(4)指定从服务器对应的主服务器,开启从服务器

具体实施

假如一台虚拟机xp,和一台linux

(1)在虚拟机xp下安装mysql作为从服务器

(2)在linux下编译mysql,作为主服务器

(3)保证xp与linux的3306端口互通

(4)配置主服务器,打开binlog

mysql>show master status;

Empty set (0.00 sec)

#开启二进制日志

log-bin=mysql-bin

#给服务器起一个唯一的id

serve-id=1

#指定日志格式

binlog-format=mixd/row/statement

重启mysql

mysql>show master status;

会多两个文件:mysql-bin.000001和mysql-bin.index

已经能够充当master服务器

5,配置从服务器打开binlog和relaylog

mysql>show slave status;

Empty set (0.00 sec)

[mysql]

#slave config

log_bin    =mysql-bin

server_id    =2

relay_log    =mysql-relay-bin

log_slave_updates    =1

read_only    =1

重启从服务器

6,在主服务器上创建相应的复制账号

mysql>grant replication slave,replication client

->on *.*

->to [email protected]‘192.168.2.%‘ identified by ‘111111‘;

Query OK, 0 rows affected (0.02 sec)

mysql>flush privileges;

Query OK,0 rows affected (0.00 sec)

7,在从服务器通过语句指定要复制的主服务器(注意,可以一主多从,不可以一从多主)

mysql>change master to

->master_host=‘192.168.2.99‘,(主服务器ip)

->master_user=‘repl‘,

->master_password=‘111111‘,

->master_log_file=‘mysql-bin.000001‘,

->master_log_pos=0;

Query OK, 0 rows affected (0.08 sec)

8,启动从服务器功能

->start slave;

9,测试

如何在客户端应用的时候,路由语句

一般用两种方法

(1)直接在PHP的mysql类做判断,最简单,不用额外加软件

比如discuz论坛。

代码:

//下面这个mysql类,不仅仅是一个mysql类,还充当一个sql语句的路由功能。

class mysql{

$dbm=主服务器;

$dbs1=从服务器1;

$dbs2=从服务器2;

public function query(){

在query里面进行语句判断

分别连接不同的mysql服务器

}

}

new mysql

mysql->query();

(2)用集群中间件

比如官方的mysql_proxy,还有国产的中间件amoeba

mysql主从服务器配置

时间: 2024-10-24 10:32:39

mysql主从服务器配置的相关文章

【转载】MySQL主从服务器配置

摘要: 1.配置主服务器 2.配置从服务器 3.主从服务器状态查看及问题处理 MySQL的主从同步架构是当前比较流行的一种数据库架构,利用MySQL的主从配置,可以实现读写分离,减轻主数据库的访问压力,提升网站性能.MySQL的主从服务器的基本原理如下: 大致描述一下过程:从服务器的IO线程从主服务器获取二进制日志,并在本地保存为中继日志,然后通过SQL线程来在从上执行中继日志中的内容,从而使从库和主库保持一致.主从同步的详细过程如下: 1. 主服务器验证连接. 2. 主服务器为从服务器开启一个

mysql 主从服务器配置

当遇到磁盘读写的事务锁 导致的系统读写能力下降的问题,可以使用主从读写分离的模式进行优化.不过读写分离会导致数据读取的延时性. mysql的主从复制 主要依赖于数据库的二级制文件进行数据库的同步功能. 参考链接: http://blog.csdn.net/cutesource/article/details/5710645 http://blog.itpub.net/29870867/viewspace-1304862/ 1.安装mysql  我的master 用的是win10系统  mysql

mysql主从数据库复制

Mysql内建的复制功能是构建大型,高性能应用程序的基础.将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重新执行一遍来实现的.复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器.主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环.这些日志可以记录发送到从服务器的更新.当一个从服务器连接主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置.从服务器接收从那时起发生的

搭建mysql主从服务器

搭建mysql主从服务器: //注:注释掉my.cn文件中的skip-federated字段[[email protected] ]# /bin/cp -r /usr/local/mysql/share/mysql/my-huge.cnf  /etc/my.cnf 配置主服务器:修改my.cnf文件server-id=1 //每个数据库服务器都要指定唯一一个server-id log-bin=mysql-bin //mysql进行主从复制时通过二进制日志文件来进行的,所以必须开启mysql日志功

mysql 主从原理及配置

MySQL的Replication(英文为复制)是一个多MySQL数据库做主从同步的方案,特点是异步复制,广泛用在各种对MySQL有更高性能.更高可靠性要求的场合.与之对应的是另一个同步技术是MySQL Cluster,但因为MySQL Cluster配置比较复杂,所以使用者较少. MySQL的Replication是一个异步复制的过程(mysql5.1.7以上版本分为异步复制和半同步两种模式),它是从一个Mysql instance(instance英文为实例)(我们称之为Master)复制到

mysql 主从配置(master slave)

mysql主从复制(超简单) 怎么安装mysql数据库,这里不说了,只说它的主从复制,步骤如下: 1.主从服务器分别作以下操作:  1.1.版本一致  1.2.初始化表,并在后台启动mysql  1.3.修改root的密码 2.修改主服务器master:   #vi /etc/my.cnf       [mysqld]       log-bin=mysql-bin   //[必须]启用二进制日志       server-id=222      //[必须]服务器唯一ID,默认是1,一般取IP

《高可用MySQL》读书笔记2 – 单机版MySQL主从配置

这里搭建的主从是最简单的单一主从复制(即一个Master和一个slave,没有任何的热机备份和多slave),该主从结构的基本拓扑图如下所示: 建立基本的主从复制可以总结为以下三个基本步骤: 配置master服务器 配置slave服务器 将slave连接到master 在配置完成之后,我们会做一个简单的测试,测试复制是否正常. 本文所涉及的master和slave服务器均位于同一台单机上,使用不同的端口号区分,基本的环境为:Window 7 旗舰版 32位,MySQL的版本为5.6.21 .上一

MySQL主从同步、读写分离配置步骤

现在使用的两台服务器已经安装了MySQL,全是rpm包装的,能正常使用. 为了避免不必要的麻烦,主从服务器MySQL版本尽量保持一致; 环境:192.168.0.1 (Master) 192.168.0.2 (Slave) MySQL Version:Ver 14.14 Distrib 5.1.48, for pc-linux-gnu (i686) using readline 5.1 1.登录Master服务器,修改my.cnf,添加如下内容: server-id = 1 //数据库ID号,

MySQL主从备份详细步骤

1.主从服务器分别作以下操作: 1.1.版本一致  1.2.初始化表,并在后台启动mysql  1.3.修改root的密码 2.修改主服务器master:   #vi /etc/my.cnf       [mysqld]       log-bin=mysql-bin   //[必须]启用二进制日志       server-id=222      //[必须]服务器唯一ID,默认是1,一般取IP最后一段 3.修改从服务器slave:   #vi /etc/my.cnf       [mysql