数据库部署架构——MySQL如何通过Amoeba实现主从复制、读写分离?

数据库为什么要主从复制、读写分离?

一、主从复制原理

  • 基于语句的复制(默认)
    在主服务器上执行的语句,从服务器执行同样的语句
  • 基于行的复制
    把改变的内容复制到从服务器
  • 混合类型的复制
    一旦发现基于语句无法精确复制时,就会采用基于行的复制

主从间的工作过程
主服务器上开启二进制日志文件,并允许其他数据库同步
从服务器上开启中继日志
主服务器的二进制日志数据以字节流的形式传入I/O线程
I/O线程写入中继日志
从服务器通过SQL线程从中继日志读取SQL语句与主服务器同步

二、读写分离原理

  • 只在主服务器上写,只在从服务器上读
  • 主数据库处理事务性查询,从数据库处理SELECT查询
  • 数据库复制用于将事务性查询的变更同步到集群中的从数据库

三、Amoeba实现主从复制、读写分离

3.1原理:

  • 共涉及三个账号
    1.主从复制账号myslave,允许从服务器访问主服务器
    2.mysql允许amoeba直接访问的账号 test
    3.允许客户端访问amoeba服务器的账号 amoeba
  • 通过Amoeba实现读写分离
  • 虚拟模块MySQL-Proxy做读取从服务器时的轮询

3.2实例

此处在amoeba上装数据库作为客户端
在这里插入图片描述

3.2.1.时间同步

[root@master ~]# ntpdate ntp1.aliyun.com
21 Oct 18:29:46 ntpdate[44242]: step time server 120.25.115.20 offset 1.449094 sec

3.2.2.三台数据库安装mysql5.7,amoeba服务器作为客户端使用时可安装mysql5.7或者简易数据库做测试,此处四台都装了mysql5.7,安装方法见

mysql5.7编译安装

3.3.3.主服务器20.0.0.21上

vim /etc/my.cnf
#找到server-id部分,三台主从数据库的id必须不同
server-id = 11
log-bin = master-bin               //主服务器日志文件
log-slave-updates=true				//允许从服务器更新
[root@master ~]# systemctl restart mysqld.service    //配置文件修改后必须重启

然后进数据库

[root@master ~]# mysql -uroot -p
Enter password: 
mysql> grant replication slave on *.* to 'myslave'@'20.0.0.%' identified by 'abc123'';
Query OK, 0 rows affected, 1 warning (0.01 sec)
//给从服务器授权,允许20.0.0.网段的服务器使用myslave访问所有库的所有表
mysql> flush privileges;  //策略刷新
Query OK, 0 rows affected (0.00 sec)

mysql> show master status;  //查看主服务器状态,日志用于从服务器同步,position是当前定位
+-------------------+----------+--------------+------------------+-------------------+
| File              | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+-------------------+----------+--------------+------------------+-------------------+
| master-bin.000001 |      599 |              |                  |                   
  • 7
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Amoeba:分布式数据库Proxy解决方案 随着传统的数据库技术日趋成熟、计算机网络技术的飞速发展和应用范围的扩充,数据库应用 已经普遍建立于计算机网络之上。这时集中式数据库系统表现出它的不足:集中式处理,势必造成性 能瓶颈;应用程序集中在一台计算机上运行,一旦该计算机发生故障,则整个系统受到影响,可靠性 不高;集中式处理引起系统的规模和配置都不够灵活,系统的可扩充性差。在这种形势下,集中式数 据库将向分布式数据库发展。 分布式数据库系统的优点: 1、降低费用。分布式数据库在地理上可以式分布的。其系统的结构符合这种分布的要求。允许用 户在自己的本地录用、查询、维护等操作,实行局部控制,降低通信代价,避免集中式需要更高要求 的硬件设备。而且分布式数据库在单台机器上面数据量较少,其响应速度明显提升。 2、提高系统整体可用性。避免了因为单台数据库的故障而造成全部瘫痪的后果。 3、易于扩展处理能力和系统规模。分布式数据库系统的结构可以很容易地扩展系统,在分布式数 据库中增加一个新的节点,不影响现有系统的正常运行。这种方式比扩大集中式系统要灵活经济。在 集中式系统中扩大系统和系统升级,由于有硬件不兼容和软件改变困难等缺点,升级的代价常常是昂 贵和不可行的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值