解决高并发的数据库主从复制结构

释放双眼,带上耳机,听听看~!

高并发的企业架构

解决高并发的数据库主从复制结构

    在高并发下企业架构主要是由集群支撑的。本文主要是讨论主从复制的数据库集群搭建。

主从复制的数据库集群架构

解决高并发的数据库主从复制结构

详解:

    数据库的操作主要分为两种,联机事务处理(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】


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
1[client]
2port=3306
3default-character-set=utf8
4
5[mysqld]
6port=3306
7
8character_set_server=utf8
9#character_set_server=utf8 一定要这样写;
10
11basedir=C:\Program Files\MySQL\mysql-5.6.16-win32
12#解压目录
13
14datadir=C:\Program Files\MySQL\mysql-5.6.16-win32\data
15#解压目录下data目录,必须为data目录
16
17#sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 这个有问题,在创建完新用户登录时报错
18sql_mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
19
20
21#主服务器的配置
22#开启二进制日志
23log-bin=master-bin
24#使用二进制日志的索引文件
25log-bin-index=master.bin.index
26#为服务器添加唯一的编号
27server-id=1
28

【my-slave.ini】


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
1[client]
2port=3306
3default-character-set=utf8
4
5[mysqld]
6port=3306
7
8character_set_server=utf8
9#character_set_server=utf8 一定要这样写;
10
11basedir=C:\Program Files\MySQL\mysql-5.6.16-win32
12#解压目录
13
14datadir=C:\Program Files\MySQL\mysql-5.6.16-win32\data
15#解压目录下data目录,必须为data目录
16
17#sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 这个有问题,在创建完新用户登录时报错
18sql_mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
19
20server-id=2
21relay-log=slave-relay-log-bin
22relay-log-index=slave-relay-log-bin.index
23

给TA打赏
共{{data.count}}人
人已打赏
安全经验

人们为何痛恨Google Adsense

2021-10-11 16:36:11

安全经验

安全咨询服务

2022-1-12 14:11:49

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索