zoukankan      html  css  js  c++  java
  • 四十、过滤复制

    过滤复制介绍

    主库只想同步一部分数据库或只同步除某些数据库以外的库到从库中去。

    主库方面配置

    需要用到的参数

    mysql> show slave status G
    binlog_do_db:#相当于白名单,只同步哪些库
    binlog_ignore_db:#相当于黑名单,不同步哪些库
    

    用法
    写入配置文件my.cnf中即可,注意有多个库需要写多行

    #以下写法为只同步这两个库到从库中区
    $ vim /etc/my.cnf
    [mysqld]
    ...
    binlog_do_db=world 
    binlog_do_db=wordpress 
    
    $ /etc/init.d/mysqld restart
    

    从库方面配置

    需要用到的参数

    mysql> show slave status G
    Replicate_Do_DB: #白名单,SQL线程只回放指定库
    Replicate_Ignore_DB: #黑名单,SQL线程不回放这些库
    
    Replicate_Do_Table: #白名单,SQL线程只回放指定表
    Replicate_Ignore_Table: #黑名单,SQL线程不回放这些表
    
    Replicate_Wild_Do_Table: #白名单,模糊过滤
    Replicate_Wild_Ignore_Table:  #黑名单,模糊过滤
    

    用法,写入配置文件my.cnf中

    $ vim /etc/my.cnf
    [mysqld]
    ...
    Replicate_Do_DB=world #回放world库
    Replicate_Do_Table=wordpress.t1 #回放wordpress库的t1表
    Replicate_Wild_Do_Table=world.t* #回放world库下的t开头的表
    
    $ /etc/init.d/mysqld restart
    

    案例

    只让从库SQL线程回放指定库

    #注意要小写
    vim /etc/my.cnf
    replicate_do_db=inc1
    replicate_do_db=inc2
    
    $ /etc/init.d/mysqld restart
    
    mysql> show slave statusG
    Replicate_Do_DB: inc1,inc2
    

    半同步复制

    传统的主从复制,主库通过dump线程将日志发给从库的TCP/IP缓存,从库再返回ACK给主库,日志并没有立即写入relay-log文件中,如果此时断电,则会影响主从同步。

    而半同步复制,加了一个插件,通过位于应用层的插件来确认接收跟应答ACK,让接收的日志立即写入到relay-log中。如果从库一段时间内无应答,则切换为传统主从复制。

    生产环境中很少用到,不详细介绍了,可能面试会问到。

    生产环境中常用MGR架构模式,有空我研究一下下。


    学习来自:B站课程:MySQL过滤复制/半同步复制 P137-138

    今天的学习是为了以后的工作更加的轻松!
  • 相关阅读:
    Python3 sorted() 函数
    [Python网络编程]一个简单的TCP时间服务器
    [爬虫]统计豆瓣读书中每个标签下的前两百本书
    [leetcode]39. Combination Sum
    [leetcode]18. 4Sum
    [leetcode DP]72. Edit Distance
    [leetcode DP]120. Triangle
    [leetcode DP]91. Decode Ways
    [leetcode DP]70. Climbing Stairs
    [leetcode DP]64. Minimum Path Sum
  • 原文地址:https://www.cnblogs.com/tz90/p/14645447.html
Copyright © 2011-2022 走看看