mysql5.6之主从复制

新的之间创建复制:
mysql

   1. 配置服务器中的配置文件my.cnf,二进制日志文件和服务器IDsql

      [mysqld]服务器

      log-bin=mysql-bin    ###最好与数据文件分离dom

      server-id=1ide

   2. 开启服务器spa

   3. 创建用于链接服务器的用户    线程

      CREATE USER 'repl'@'%.mydomain.com' IDENTIFIED BY '密码';日志

      GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%.mydomain.com';orm

   4. 获得服务器的状态信息server

      mysql> flush tables with read lock

      mysql> show master status;

   5. 在服务器上,释放读锁

      mysql> unlock tables;

   6. 配置服务器中的配置文件my.cnf,服务器ID

      [mysqld]

      server-id=2

   7. 开启服务器

   8. 在服务器上设置主配置

      mysql> CHANGE MASTER TO

           -> MASTER_HOST='主服务器IP',

           -> MASTER_USER='用户名',

           -> MASTER_PASSWORD='密码',

           -> MASTER_LOG_FILE='当前的二进制日志文件',

           -> MASTER_LOG_POS=2063;


MySQL使用3个线程进行复制:

  一个在主服务器上

 Binlog dump thread   当从服务器链接主服务器时,主服务器创造了一个线程,发送二进制日志内容到从服务器。使用SHOW PROCESSLIST,能够识别这个线程  

  两个在从服务器上

 Slave I/O thread     当在从服务器上执行START SLAVE时,从服务器创造了这个线程,链接上主服务器,请求主服务器传送更新的二进制日志,而后读取复制到从服务器上面造成中继日志。使用SHOW SLAVE STATUS\G,能够看到Slave_IO_running

 Slave SQL thread     从服务器创造了这个线程,从中继日志里读取执行事件 


问题:slave stop

    set global sql_slave_skip_counter=1

    slave start


主主复制:

      auto-increment-increment   #增加量#

      auto-incremnet-offset     #起始值# 


开启crash-safe功能

                      relay_log_info_repository=TABLE  

                      relay_log_recovery=ON

主上:

        sync_binlog = 1

        innodb_flush_log_at_trx_commit = 1

        innodb_support_xa = 1


如何阻止更新直到跟上:

   1.在主上执行

       mysql> FLUSH TABLES WITH READ LOCK;

        mysql> SHOW MASTER STATUS;

   2.在从上执行

        mysql> SELECT MASTER_POS_WAIT('log_name', log_pos);

    3.在主上执行

           mysql> UNLOCK TABLES;

相关文章
相关标签/搜索