mysql高可用架构一主多从(半同步复制+复制限制)

来源:互联网 发布:网络兼职遭遇刷单陷阱 编辑:程序博客网 时间:2024/06/05 20:17

一、原理

写操作时单个数据库操作    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    assorted security risks    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        assorted security risks        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

五、复制限制的表现

这里写图片描述

原创粉丝点击