zoukankan      html  css  js  c++  java
  • mysql主主复制

    -1 主主复制读分担50%,写无法分担

    -2 配置方法

    --1 服务器1号(192.168.1.1)配置完,重启mysql

    1   [mysql]
    2   server-id=1
    3   log-bin=mysql-bin
    4   auto-increment-increment=2 
    5   auto-increment-offset=1
    6   sync-binlog=1
    7   innodb-flush-logs-at-trx-commit=1
    8   replication-ignore-db=mysql

    --2 服务器2号(192.168.1.2)配置完,重启mysql

    1   [mysql]
    2   server-id=1
    3   log-bin=mysql-bin
    4   auto-increment-increment=2 
    5   auto-increment-offset=2
    6   sync-binlog=1
    7   innodb-flush-logs-at-trx-commit=1
    8   replication-ignore-db=mysql

    auto-increment-increment的值应设为整个结构中服务器的总数,本案例用到两台服务器,所以值设为2

    auto-increment-offset的值用来设定数据库中自动增长的起点的,因为这两台服务器都设定了一次同一个自动增长值2,所以它们的起点必须得不同,这样才能避免两台服务器数据同步时出现主键冲突

    --3 服务器1号备份当前数据并记录备份前一刻的bin日志位置(--lock-all-tables自缩/解表,--master-data=2加入bin日志位置,方便一会查看,这里假设1号当前日志是mysql-bin.000004;位置是300)

     ---1 备份服务器1号当前数据

    1    mysqldump --all-databases --lock-all-tables --master-data=2 > /tmp/mysql1.sql
    2 
    3    scp /tmp/mysql1.sql root@192.168.1.2:/tmp/

     ---2 创建授权账号

        ----1 服务器1号授权给服务器2号      

    1   mysql -uroot
    2   >GRANT REPLICATION CLIENT,REPLICATION SLAVE ON *.* TO 'REPL1'@'192.168.1.1' IDENTIFIED BY '123456';

        ----2 服务器2号授权给服务器1号

    1   mysql -uroot
    2   >GRANT REPLICATION CLIENT,REPLICATION SLAVE ON *.* TO 'REPL2'@'192.168.1.2' IDENTIFIED BY '123456';

    --4 服务器2号导入1号数据,保证1/2号数据库一致性,记录此时2号日志位置(这里假设2号日志是mysql-bin.000001;位置是100);添加1号日志位置,并开启2号slave;

       同时服务器1号添加2号日志位置,并开启1号slave;

      ---1 服务器2号

     1     mysql -uroot -ppassword < /tmp/mysql1.sql
     2     mysql -uroot
     3 
     4     >FLUSH TABLES WITH READ LOCK;
     5 
     6     >SHOW MASTER STATUSG
     7 
     8     >UNLOCK TABLES;
     9 
    10     >CHANGE MASTER TO MASTER_HOST='192.168.1.1',MASTER_USER='REPL1',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql_bin.000004' 
    11 
    12      MASTER_LOG_POS='300';
    13 
    14     >START SLAVE;

      ---2 服务器1号

    1     mysql -uroot
    2 
    3     >CHANGE MASTER TO MASTER_HOST='192.168.1.2',MASTER_USER='PERL2',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql_bin-00001' 
    4 
    5      MASTER_LOG_POS='100';
    6 
    7     >START SLAVE;

    关于FLUSH TABLES WITH READ LOCK

    -1 进入mysql会话使用此命令时一定不能退出会话,如果退出会话,所有表会自动解锁

    -2 使用flush tables with read lock后再用mysqldump导出数据库脚本会遇到“Toomany connections”的错误,此时在my.cnf中添加“max_connections=500”以及”max_packet=32M”的选项

     
     binlog-format?
     
    [星空刺] |-->一颗星辰一闪即逝,支撑它的唯有方向和目的
  • 相关阅读:
    JavaScriptSerializer的使用, 今上午琢磨了半天, 小结一下.
    解决TextBox中, JS方法(DatePicker)改变Text内容后, 无法触发OnTextChanged事件的问题
    学习笔记Oracle操作总结
    学习笔记再次理解事件和委托
    Linux第一天接触, 安装CentOS后解决中文字体的问题
    jQuery验证客户端控件, 在提交表单时用MD5.js将密码变成密文
    学习笔记 缓存、动态页面静态化、网站优化
    学习笔记母板页、用户控件、第三方控件及视图状态管理
    学习笔记Javascript原型对象、this的5钟用法、原型继承、Caller和Callee的使用
    学习笔记元数据、程序集、GAC版本控制、属性(Attribute)、反射(利用.NET编译器实现表达式计算器)
  • 原文地址:https://www.cnblogs.com/aaa103439/p/3298833.html
Copyright © 2011-2022 走看看