博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql高可用架构一主多从(半同步复制+复制限制)
阅读量:4201 次
发布时间:2019-05-26

本文共 2251 字,大约阅读时间需要 7 分钟。

一、原理

写操作时单个数据库操作    1.请求到达数据库程序——写到事务日志中    2.程序读取事务日志——内存,在内存中运行完毕    3.将内存中有关数据的操作——写到二进制日志    4.内存操作——二进制写完之后;通知客户端操作完成    5.(顺序写)将二进制日志的操作——定期刷到磁盘写操作时主从数据库操作    1.slave_I/O线程请求master二进制日志    2.master_dump线程读取二进制日志给slave_I/O线程    3.slave_I/O线程将接收到的二进制日志写到slave的relay_log(中继日志)    4.slave_sql线程将relay_log运行到内存、写到二进制日志、刷到磁盘

二、步骤分析

1.一主多从+半同步

这里写图片描述

2.复制限制的设置

这里写图片描述

三、master配置

1.配置文件

vim /etc/my.cnf    [mysqld]    datadir=/var/lib/mysql    socket=/var/lib/mysql/mysql.sock    symbolic-links=0    server_id=174    log_bin=/var/lib/mysql/log_bin    skip-name-resolve    [mysqld_safe]    log-error=/var/log/mariadb/mariadb.log    pid-file=/var/run/mariadb/mariadb.pid

2.mysql>命令配置

给slave服务器replication权限-创建有replication 权限用户             MariaDB [(none)]> grant replication slave,replication client on *.* to  slave@'%' identified by 'slave_passwd';半同步设置        安装半同步_master模块               mysql>命令                  install plugin rpl_semi_sync_master soname 'semisync_master.so';        查看master半同步是否开启            MariaDB [(none)]> show global variables like 'rpl_semi%';        开启master半同步            mysql>命令              set global rpl_semi_sync_master_enabled=1;

四、slave配置

salve的server_id不同

1.配置文件

vim /etc/my.cnf    [mysqld]        datadir=/var/lib/mysql        socket=/var/lib/mysql/mysql.sock        symbolic-links=0        server_id=175        log_bin=/var/lib/mysql/log_bin        relay_log=/var/lib/mysql/relay_log        read_only=on        log_slave_updates=1        replicate_ignore_db=db1        replicate_ignore_table=db2.table1,db2.table2    [mysqld_safe]        log-error=/var/log/mariadb/mariadb.log        pid-file=/var/run/mariadb/mariadb.pid

2.mysql>命令配置

使用master创建的repliction权限用户    change master to master_host='192.168.17.174', master_user='slave', master_password='slave_passwd', master_log_file='log_bin.000001',master_log_pos=412;开启I/O线程和sql线程    start slave;半同步设置    安装半同步_slave模块        install plugin rpl_semi_sync_slave soname'semisync_slave.so';    查看master半同步是否开启        show global variables like 'rpl_semi%';    开启slave半同步        set global rpl_semi_sync_slave_enabled=1;重启I/O线程和sql线程    先stop,再start        stop slave;        start slave;查看状态    查看从服务器状态        SHOW SLAVE STATUS\G    查看当前复制状态        show processlist \G

五、复制限制的表现

这里写图片描述

你可能感兴趣的文章
傻傻的我
查看>>
paypal 沙盒账号注册
查看>>
ebay 沙盒账号注册
查看>>
linux -8 Linux磁盘与文件系统的管理
查看>>
linux -8 Linux磁盘与文件系统的管理
查看>>
linux 9 -文件系统的压缩与打包 -dump
查看>>
PHP在变量前面加&是什么意思?
查看>>
ebay api - GetUserDisputes 函数
查看>>
ebay api GetMyMessages 函数
查看>>
wdlinux
查看>>
关于mysql升级到5.5报错问题
查看>>
magento - 通过storeid,分类id,天数(几天内)得到产品
查看>>
一个很不错的bash脚本编写教程,至少没接触过BASH的也能看懂!
查看>>
Redis和Memcache对比及选择
查看>>
用谷歌账号登陆magento、
查看>>
php oauth 模块在linux下安装
查看>>
代替nginx的服务器 - The Tengine Web Server
查看>>
nginx 升级成 tengine 的代码
查看>>
magento rest api 调用
查看>>
magento rest api 调用!
查看>>