mysql分布式思维)- mysql replication


mysql分布式思维)- mysql replication_第1张图片
 
mysql分布式思维)- mysql replication_第2张图片
 
mysql分布式思维)- mysql replication_第3张图片
 

mysql - Replication
一种比较简单的架构 Master/Slave
slave会从master读取binlog 来进行数据同步
一、典型的Replication复制架构
 1.master-slaves
      大部分是这样的应用,特别适合读多写少的场景,一些互联网的应用都这样搭建。
      一个master多个slave,配置类似。master不知道有多少个slave,只做连接认证,
      根据slave的IO线程信息返回给slave io线程

 2.DualMaster(用的比较少)
    互为Master/Slave
3. master-slave-slave-slave
二、master/slave的一个搭建
       搭建的时候两台机器(最好是真实两台机器,环境类似)
       master而言
             ----->server-id = 1;
      ----->logbin打开
      -------------------其它一些细致的参数根据具体情况而定--------------
      ----->binlog-ignore-db=mysql不要复制的数据库
      ----->binlog-do-db=test要复制的数据库等等
      这些参数一定要放在[mysqld]结点下,都是小写
      reset master;
      show variables like '%server%';

     授权 远程的访问---> 虚拟机下可以访问
       GRANT REPLICATION SLAVE ON *.* TO ' zhangsan'@'192.168.154.128' IDENTIFIED BY 'zhangsan';
    
       slave 端,在虚拟机中配置的
          关闭虚拟机linux防火墙    service iptables stop
   my.cnf
         server-id = 2;
  master-host=192.168.1.101
  master-user=zhangsan
  master-password=zhangsan
  replication-do-db=test
  master-port=3306

  关闭服务 service mysql stop;
                 service mysql start;
          如果启动不了有错误可以通过mysql_install_db --user=mysql
          可能有版本报master-host变量不认识
          mysql有些版本不识别master-host参数,如果识别不用管。
          如果不识别解决方案
          只配置server-id
                    和replication-do-db 及其它跟复制内容相关的参数。
          重启启动service mysql start
                        mysql -uroot -proot
          slave stop;
          change master to master_host='192.168.1.101', master_user='zhangsan', master_password='zhangsan', master_log_file='mysqlbin.000001', master_log_pos=0;
          slave start;
三、复制的缺陷
       slave端异步线程完成logbin读取数据同步操作
       会有延迟,数据并不是实时同步的。

四、读写分离
      master进行写操作,slave进行读操作
      slave不能进行写操作,否则master/slave不同步
      slave未必直接能读到最新的数据
                      ----->权衡CAP原理三者只能选其二
      如果做读写分离,程序员控制哪个数据源读,那个数据源写,风险比较大
      将来会有数据切分及整合的中间件来处理这个事。

 

 

 

 

 

你可能感兴趣的:(mysql)