解决高并发的数据库主从复制结构
2015-07-27 19:08
351 查看
高并发的企业架构
在高并发下企业架构主要是由集群支撑的。本文主要是讨论主从复制的数据库集群搭建。
主从复制的数据库集群架构
详解:
数据库的操作主要分为两种,联机事务处理(OLTP):增删改,联机分析处理(OLAP):查,这里主要是将这两种操作用数据库路由器分开,有写服务器集群和读服务器集群。
对于读服务器集群来说,只是读取数据,并不会对数据的一致性造成影响。但是对于写操作来说,在写操作完成之后,必须让所有的服务器同步此操作,因此才有了主从复制的架构。
如图,写操作的服务器为双主服务器,当然也可以为多主服务器。(须知:在整体架构上,写服务器为主服务器群,读服务器为从服务器群,在主服务器群中,又分为主服务器和从服务器)。在一台写服务器写完成操作后,会产生一个二进制日志,之后将二进制日志分发给其他写服务器和性能较好的读服务器,收的日志我们称之为中继日志,这些服务器会根据中继日志来更新数据库中的数据,保持数据的一致性,较好的读服务器收到中继日志后先对自己进行数据更新,之后产生二进制日志再分发给其他的读服务器,这样来保持整个服务器群的数据一致性。
详细配置
说明:这里我们使用两台windows server2008来模拟两台数据库服务器,每台windows server2008上装有一台mysql(免安装版,自己配置集群方便)。第一步:准备两台windowsserver2008并把免安装版的mysql放在c盘。
第二步:修改配置文件
这里提供了两个.ini简要配置文件(my-master.ini和my-slave.ini),重命名为my.ini后分别放在mysql根目录下,并修改内部的相应配置项。
第三步:在两台服务器上安装并启动mysql服务
命令名字--install 服务名字 --defaults-file="配置文件"
mysqld.exe--install MySQL0930 --defaults-file="my文件的路径"
第四步:进入master服务器,并添加用户
登录
mysql-u root -p
添加用户
mysql>create user jk;
添加用户的权限
mysql>grant replication slave on *.*to jk identified by '密码';
第五步:登入slave服务器,并修改配置
先用root用户登入
再修改:
changemaster to
master_host='192.168.57.128',
master_port=3306,
master_user='cll',
master_password='123456';
最后开启主从复制
startslave;
第六步:验证,在主数据库上创建数据库后,从数据库会也会有相应的改变。
附录
【my-master.ini】[client] port=3306 default-character-set=utf8 [mysqld] port=3306 character_set_server=utf8 #character_set_server=utf8 一定要这样写; basedir=C:\Program Files\MySQL\mysql-5.6.16-win32 #解压目录 datadir=C:\Program Files\MySQL\mysql-5.6.16-win32\data #解压目录下data目录,必须为data目录 #sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 这个有问题,在创建完新用户登录时报错 sql_mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION #主服务器的配置 #开启二进制日志 log-bin=master-bin #使用二进制日志的索引文件 log-bin-index=master.bin.index #为服务器添加唯一的编号 server-id=1
【my-slave.ini】
[client] port=3306 default-character-set=utf8 [mysqld] port=3306 character_set_server=utf8 #character_set_server=utf8 一定要这样写; basedir=C:\Program Files\MySQL\mysql-5.6.16-win32 #解压目录 datadir=C:\Program Files\MySQL\mysql-5.6.16-win32\data #解压目录下data目录,必须为data目录 #sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 这个有问题,在创建完新用户登录时报错 sql_mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION server-id=2 relay-log=slave-relay-log-bin relay-log-index=slave-relay-log-bin.index
相关文章推荐
- windows环境下mysql忘记密码如何重置
- NoSql——mongoDB(主从复制)
- Mongodb中在已有Colloection插入/更新相关域值
- SQLServer中事务日志已满的原因以及解决办法
- Sql日期时间格式转换
- 常用的sql语句集锦
- 常用的sql语句集锦
- 从join on和where执行顺序认识T-SQL查询处理执行顺序
- Memcached 群集高可用性(HA)架构
- oracle 任务使用
- SQL中Group By的使用
- SQL Server 2008 R2 安装出错:Could not open key
- 关于MySQL中添加数据的两种方法
- SQL Server 2008 R2 安装出错:Could not open key
- SQL Basics For HANA-Unit1:Motivation And Basic Concepts
- 【VB与数据库】——数据库连接
- xmemcached net.rubyeye.xmemcached.exception.UnknownCommandException
- oracle---DBLink
- MySql数据库连接操作
- sql 时间处理