zoukankan      html  css  js  c++  java
  • 17.3.4 Replicating Different Databases to Different Slaves 复制不同的数据库到不同的Slaves

    17.3.4 Replicating Different Databases to Different Slaves  复制不同的数据库到不同的Slaves
    
    
    
    有可能的一种情况, 你只有一个master但是需要复制不同的数据库到不同的slaves,
    
    
    比如, 你需要分发不同的sales 数据到不同的部门来帮助分散数据分析的压力。
    
    Figure 17.2 Using Replication to Replicate Databases to Separate Replication Slaves
    
    使用复制来复制数据库到单独的复制slaves
    
    
    你可以完成这种分离通过配置master和slave,限制binary log 语句在每个slave处理通过使用
    
    --replicate-wild-do-table 配置选项在每个slave上:
    
    
    重要:
    
    
    你不能使用 --replicate-do-db 用于这个目的当使用基于语句的复制,
    
    
    因为基于语句的复制导致 这个选项的影响 根据当前选择的数据库而定。
    
    
    这个也同样应用于mixed-format replication , 因为这个会让一些更新被复制 在基于语句格式的情况下。
    
    
    然而,如果你只使用基于行的复制, --replicate-do-db是安全的,因为在这种情况下,
    
    当前选择的数据库没有影响在这个选项的操作。
    
    
    例如, 为了支持如图17.2所示的分离,使用复制到复制数据来分散复制slaves:
    
    Replication slave 1 should use --replicate-wild-do-table=databaseA.%.
    
    Replication slave 2 should use --replicate-wild-do-table=databaseB.%.
    
    Replication slave 3 should use --replicate-wild-do-table=databaseC.%.
    
    
    每个slave 在这种配置下 接收整个binary log 从master, 但是只行包括在--replicate-wild-do-table
    
    选项的binary log的events:
    
    
    
    如果你有数据必须被同步到slave 在复制开始前,你有很多选择:
    
    
    同步所有的数据到每个slave,删除数据库,表和其他你不需要保留的。
    
    
    
    使用mysqldump 来创建一个单独的dump 文件为每个数据库,在每个slave上加载dump文件。
    
    
    注意:
    
    这个不会工作 在InnoDB 数据库 除非你使用 innodb_file_per_table.
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    

  • 相关阅读:
    MySQL Delete 后,如何快速释放磁盘空间
    浅谈MySQl 主从复制
    MySQL 5.6,5.7 基于Shell 的一键安装
    【MySQL 5.7 】从库1032 报错处理
    633. Sum of Square Numbers
    find a balance point in an array
    Longest Common Prefix
    cubic root
    41. First Missing Positive
    build tree with balanced parenthesis
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13351301.html
Copyright © 2011-2022 走看看