Mysql的AB复制

环境:rhel 6.5

master:192.168.2.1

slave1:192.168.2.2

slave2:192.168.2.10

1.mysql的单向复制

注: mysql数据库的版本,两个数据库版本要相同,或者slave比master版本高!

yum install  mysql-server -y

请注意当你进行复制时,所有对复制中的表的更新必须在主服务器上进行。否则,你

必须要小心,以避免用户对主服务器上的表进行的更新与对从服务器上的表所进行的

更新之间的冲突。

master server配置

开启mysqld服务

mysql> show master status;

+------------------+----------+--------------+------------------+

| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+----------+--------------+------------------+

| mysql-bin.000003 |      106 | westos      | mysql            |

+------------------+----------+--------------+------------------+

1 row in set (0.00 sec)

1)创建同步帐户,并给予权限

mysql> grant replication slave, reload, super on *.* to westos@'%' identified by 'westos';

mysql>flush privileges;

2 )配置 /etc/my.cnf配置文件

在[mysqld]下添加一下参数

log-bin=mysql-bin #启动二进制日志系统

binlog-do-db=westos #二进制需要同步的数据库名

server-id=1 #必须为1到232–1之间的一个正整数值

binlog-ignore-db=mysql #避免同步 mysql用户配置,以免不必要的麻烦

3 )service mysqld restart

slave server配置

1 )配置 /etc/ my.cnf文件

在[mysqld]下添加一下参数

server-id=2 #从服务器 ID号,不要和主ID相同,如果设置多个从服务器,每个从服务器必须有一个唯一的server-id值,必须与主服务器的以及其它从服务器的不相同。可以 认为server-id值类似于IP地址:这些ID值能唯一识别复制服务器群集中的每个服务 器实例。

2 )service mysqld   start

mysql -uwestos  -pwestos  -h  192.168.2.1 #进入mysql

mysql> change master to master_host='192.168.2.1', master_user='westos', master_password='westos', master_log_file='mysql-bin.000003', master_log_pos=106; #注意跟master的日志文件,日志位置保持一致

mysql> slave start;

mysql> show slave status\G;

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: 192.168.2.1

Master_User: westos

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: mysql-bin.000003

Read_Master_Log_Pos: 106

Relay_Log_File: mysqld-relay-bin.000002

Relay_Log_Pos: 251

Relay_Master_Log_File: mysql-bin.000003

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

Replicate_Do_DB:

Replicate_Ignore_DB:

Replicate_Do_Table:

Replicate_Ignore_Table:

Replicate_Wild_Do_Table:

Replicate_Wild_Ignore_Table:

Last_Errno: 0

Last_Error:

Skip_Counter: 0

Exec_Master_Log_Pos: 106

Relay_Log_Space: 407

Until_Condition: None

Until_Log_File:

Until_Log_Pos: 0

Master_SSL_Allowed: No

Master_SSL_CA_File:

Master_SSL_CA_Path:

Master_SSL_Cert:

Master_SSL_Cipher:

Master_SSL_Key:

Seconds_Behind_Master: 0

Master_SSL_Verify_Server_Cert: No

Last_IO_Errno: 0

Last_IO_Error:

Last_SQL_Errno: 0

Last_SQL_Error:

在master创建数据库,创建表添加数据,看slave server是否同步

mysql> create database westos;

mysql> use westos;

mysql> create table linux(

-> username varchar(20)  not  null,

-> password varchar(50)  not  null

-> );

mysql> desc linux;

mysql> insert into linux values ('user1','123');

mysql> insert into linux values ('user2',password(123));

mysql> select * from linux;

+----------+-------------------------------------------+

| username | password                                  |

+----------+-------------------------------------------+

| user1    | 123                                       |

| user2    | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |

+----------+-------------------------------------------+

slave机子上:

mysql> show databases;

mysql> select * from westos.linux; #数据同步成功

+----------+-------------------------------------------+

| username | password                                  |

+----------+-------------------------------------------+

| user1    | 123                                       |

| user2    | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |

+----------+-------------------------------------------+

master上更改:

mysql> update linux set password=456;

slave上:#查看数据同步已过来

mysql> select * from westos.linux;

+----------+----------+

| username | password |

+----------+----------+

| user1    | 456      |

| user2    | 456      |

+----------+----------+

线性A- > B - > C,master - >slave1- >slave2

添加一个slave2,192.168.2.10

在slave1即node2上修改配置文件

vim /etc/my.cnf

server-id=2

添加:log-bin=mysql-bin

binlog-do-db=westos

inlog-ignore-db=mysql

log-slave-updates

/etc/init.d/mysqld  restart #重启mysql

授权mysql>grant replication slave, reload, super on *.* to westos@'%' identified by 'westos';

mysql> flush privileges;

在slave2即192.168.2.10上:

验证权限  mysql -uwestos  -pwestos  -h  192.168.2.2看能否登录进mysql

vim /etc/my.cnf

server-id=3

/etc/init.d/mysqld  restart #重启mysql

在slave1上:

由于 master上已经有数据,而新加的slave2没有,必须在配置复制前同步数据。

把westos库里的表导入到back里

mysqldump westos > back

scp back 192.168.2.10: #把库发给slave2

在slave2上:

mysqladmin create westos #创建westos库

mysql westos < back #把back库里的表导入到westos库

mysql> show databases;

mysql> use westos;

mysql> show tables;

mysql> select * from linux;

在slave1上mysql> show master status;

+------------------+----------+--------------+------------------+

| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+----------+--------------+------------------+

| mysql-bin.000001 |      106 | westos       | mysql            |

+------------------+----------+--------------+------------------+

slave2上:

mysql> change master to master_host='192.168.2.2', master_user='westos', master_password='westos', master_log_file='mysql-bin.000001', master_log_pos=106

mysql> slave start;

mysql> show salve status\G; #查看状态是否正常

现在开始测试:

在A master上mysql> delete from linux;

验证查看B slave1和C slave2   mysql> select * from linux;

在A master上mysql> insert into linux values ('sxy','123');

验证查看B slave1和C slave2   mysql> select * from linux;

+----------+----------+

| username | password |

+----------+----------+

| sxy      | 123      |

+----------+----------+

mysql ab复制延时_Mysql的AB复制相关推荐

  1. mysql异步复制参数_MySQL Replication(异步复制)基本原理

    1.复制进程 Mysql的复制(replication)是一个异步的复制,从一个Mysql instace(称之为Master)复制到另一个Mysql instance(称之Slave).实现整个复制 ...

  2. adg类似于mysql半同步机制_MySQL基准测试异步复制和半同步复制延迟对比

    测试环境 :MySQL 5.7.26 主从异步复制(GTID) 测试数据 :测试数据:10张表,每张表500万行数据,共12G的数据. 每次测试,主实例服务器测试脚本不变,线程为10,复制方式分别为异 ...

  3. mysql半同步模式_MySQL 半同步复制模式的实现

    半同步复制原理图 #半同步启动需要主从两端都需要加载安装各自对应的semi模块,从库端支持半同步功能的数量至少一台:主库端当一个事务成功提交后,并不及时反馈给前端用户,该线程会被临时block,等待由 ...

  4. mysql 半同步 原理_MySQL半同步复制原理与配置详解

    一 .异步.同步和半同步复制概念 异步复制(Asynchronous replication),MySQL默认的复制是异步的,主库在执行完客户端提交的事务后会立即将结果返给给客户端,并不关心从库是否已 ...

  5. mysql双主数据一致性_mysql双主复制的主备数据一致性知多少

    展开全部 为提高MySQL服务器32313133353236313431303231363533e58685e5aeb931333337376331提供数据服务的可用性和可靠性,实际生产环境中,大量使 ...

  6. mysql多源复制脚本_Mysql多源复制

    1.概述 以下是多源复制的架构图(来自2015 OOW的ppt) 本文档实验的架构图: 2.所需软件 3.MySQL软件的安装(在四台服务器上都装上MySQL5.7.9数据库软件) 3.1.查询服务器 ...

  7. mysql半同步降级_MySQL半同步复制

    半同步复制简介 MySQL复制默认情况下是异步的,主库将事件写入binlog并不管从库是否接受并处理它们,如果主库崩溃时,已提交的事务可能没有被传送到从库,因此主从切换可能导致数据丢失.Semisyn ...

  8. mysql 半同步 配置_Mysql 半同步复制配置

    以下是配置和监控半同步复制: 1. 半同步复制功能以plugin的方式接入MySQL,需要在主库与从库两端同时开启半同步的支持,具体配置如下: On the master mysql> INST ...

  9. mysql数据库主主_MySQL主主复制(图文详解)

    MySQL主主复制(图文详解) 发布时间:2020-07-12 23:10:25 来源:51CTO 阅读:218 作者:BonnieJason 一.实现原理 主主复制即在两台MySQL主机内都可以变更 ...

最新文章

  1. [Notes] Bash Shell特性
  2. .net core项目部署到centos7
  3. ionice使用说明与参数详析
  4. 一张图看懂新一代人工智能知识体系
  5. autojs怎么post协议_autojs QQ群post签到(五)
  6. 990. Satisfiability of Equality Equations
  7. Binding是WPF的核心,WPF的常用数据源绑定有四种
  8. iTerm2 + oh my zsh +agnoster 打造最强Mac终端
  9. unity2d自动生成敌人_【A*Pathfinding】超级简单的Unity2D寻路
  10. 笔记《鸟哥的Linux私房菜》6 Linux的档案权限与目录配置
  11. [POJ3274 Gold Balanced Lineup]
  12. Windows驱动开发,几个BLOG值得经常看看
  13. 数据库,万能密码与密码解析
  14. 那些开挂的人,如何打败50%的竞争者?
  15. hdmi 计算机 接口类型,四大常用视频接口对比,你的电脑是哪种接口?
  16. 【机器学习】Sklearn-cluster聚类方法
  17. JAVA的file.separate
  18. svg图标如何修改大小?
  19. EPP-域名映射(RFC5731翻译)
  20. 【PS】如何把图片变成透明

热门文章

  1. Struts2的通配符配置方式
  2. .net core linux安装
  3. Ubuntu18.04 Flutter开发环境搭建
  4. .net关于app.config的使用 对于自己的类库
  5. mysql 字符转数值_深入MYSQL字符数字转换的详解
  6. Redis启动的三种方式
  7. 【BZOJ4559】【JLOI2016】—成绩比较(拉格朗日插值+dp)
  8. android 面试汇总二
  9. HDU 1525 类Bash博弈
  10. Solarized ----vim配色方案