牛刀小试MySQL--基于GTID的replication

实验环境:两个MySQL实例

IP地址:10.0.0.201 端口:3306 (MySQL的Master)
IP地址:10.0.0.201 端口:3307 (MySQL的Slave)

需要的参数

  • server_id: 每个MySQL实例的server_id必须不一样。
  • log-bin:MySQL开启binglog日志。
  • gtid_mode=ON : MySQL开启GTID模式。
  • enforce-gtid-consistency=true :保证GTID的数据一致性。
  • log_slave_updates=1:Slave接收来自Master的更新操作日志,并记录至Slave的binlog日志中。可以完成级联复制
  • binlog_format= row:基于行格式,保证数据的一致。
  • skip-slave-start=1:保证Slave数据库启动的时候,slave不会自动启动(可以手动来启动 start slave)

步骤:

1.my.cnf的参数配置如下:

  • Master(3306)的配置
    server-id = 1203306log-bin = /data/mysqldata/3306/binlog/mysql-bin#*********** GTID settting*******************gtid_mode=ONenforce-gtid-consistency=true binlog_format= rowskip-slave-start=1log_slave_updates = 1
  • Slave(3307)的配置
    server-id = 1203307log-bin = /data/mysqldata/3307/binlog/mysql-bin#*********** GTID settting*******************gtid_mode=ONenforce-gtid-consistency=true binlog_format= rowskip-slave-start=1log_slave_updates = 1

2.为Replication创建一个用户

在master上,配置一个新用户,可以让slaves数据库能权限访问master数据库

mysql> CREATE USER 'repl'@'10.0.0.201' IDENTIFIED BY 'repl@3307';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'10.0.0.201';

3.保证Master数据库的数据一致性,设置为只读

mysql> SET @@global.read_only = ON;

3.备份Master数据库的数据

master导出备份
/usr/local/mysql/bin/mysqldump -uroot -p'zsd@7101' -S /data/mysqldata/3306/mysql.sock --all-databases --triggers --routines --events --flush-logs --single-transaction -e --default-character-set=utf8 | gzip > mysql_3306_full_backup_`date +%F`.sql.gz

参数详解:

  • all-databases: --all-databases, -A。备份所有数据库的所有表。。
  • triggers:备份所有触发器。
  • routines: 备份所有存储过程和函数。
  • events :数据库的事件。
  • flush-logs:在数据dump之前,刷新数据库的日志。
  • single-transaction:服务器dump之前,发起一个BEGIN SQL的语句, START TRANSACTION 放进一个事务里面,保证数据的一致性,防止锁表。
  • default-character-set=utf8:保证导出的字符集为UTF8
  • extended-insert:-e 产生一个相对来说较小的dump文件,加速导入数据库时,插入数据的速度。加快数据库的恢复。
slave导入备份
/usr/local/mysql/bin/mysql -uroot -p'zsd@3307' -S /data/mysqldata/3307/mysql.sock --default-character-set=utf8 < mysql_3306_full_backup_2018-06-01.sql

5.SLAVE追日志,完成复制操作

  • 抽象语句
mysql> CHANGE MASTER TO>     MASTER_HOST = host,>     MASTER_PORT = port,>     MASTER_USER = user,>     MASTER_PASSWORD = password,>     MASTER_AUTO_POSITION = 1;
  • 实战语句
CHANGE MASTER TO MASTER_HOST = '10.0.0.201',MASTER_PORT = 3306,MASTER_USER = 'repl',MASTER_PASSWORD = 'repl@3307',MASTER_AUTO_POSITION = 1;

6.启动Slave

mysql> START SLAVE;

7.查看slave状态

(root@localhost) [(none)]> show slave status\G;
*************************** 1. row ***************************Slave_IO_State: Waiting for master to send eventMaster_Host: 10.0.0.201Master_User: replMaster_Port: 3306Connect_Retry: 60Master_Log_File: mysql-bin.000011Read_Master_Log_Pos: 1658Relay_Log_File: relay-bin.000002Relay_Log_Pos: 1832Relay_Master_Log_File: mysql-bin.000011Slave_IO_Running: YesSlave_SQL_Running: YesReplicate_Do_DB: Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 0Last_Error: Skip_Counter: 0Exec_Master_Log_Pos: 1658Relay_Log_Space: 2034Until_Condition: NoneUntil_Log_File: Until_Log_Pos: 0Master_SSL_Allowed: NoMaster_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: NoLast_IO_Errno: 0Last_IO_Error: Last_SQL_Errno: 0Last_SQL_Error: Replicate_Ignore_Server_Ids: Master_Server_Id: 1203306Master_UUID: 4160e9b3-58d9-11e8-b174-005056af6f24Master_Info_File: mysql.slave_master_infoSQL_Delay: 0SQL_Remaining_Delay: NULLSlave_SQL_Running_State: Slave has read all relay log; waiting for more updatesMaster_Retry_Count: 86400Master_Bind: Last_IO_Error_Timestamp: Last_SQL_Error_Timestamp: Master_SSL_Crl: Master_SSL_Crlpath: Retrieved_Gtid_Set: 4160e9b3-58d9-11e8-b174-005056af6f24:27-32Executed_Gtid_Set: 4160e9b3-58d9-11e8-b174-005056af6f24:1-32,
e60a3353-6567-11e8-b305-005056af6f24:1-2Auto_Position: 1Replicate_Rewrite_DB: Channel_Name: Master_TLS_Version: Master_public_key_path: Get_master_public_key: 0
1 row in set (0.00 sec)

8.Master数据库,关闭只读

mysql> SET @@global.read_only = OFF;

知识点:完全删除replication的拓扑结构
(root@localhost) [(none)]> stop slave;
(root@localhost) [(none)]> RESET SLAVE ALL;

posted on 2018-06-12 11:07 东瑜 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/zhangshengdong/p/9172110.html

牛刀小试MySQL--基于GTID的replication相关推荐

  1. mysql 基于gtid复制_深入MySQL复制(二):基于GTID复制

    相比传统的MySQL复制,gtid复制无论是配置还是维护都要轻松的多.本文对gtid复制稍作介绍. 1.gtid基本概念 传统的基于binlog position复制的方式有个严重的缺点:如果slav ...

  2. 配置MYSQL基于GTID 主从复制详细解析及步骤

    GTID的概念 全局事务标识:global transaction identifiers GTID是一个事务一一对应,并且全局唯一ID GTID在一个服务器上只执行一次,避免重复执行导致数据混乱或主 ...

  3. Mysql基于GTID复制模式-运维小结 (完整篇)

    先来看mysql5.6主从同步操作时遇到的一个报错: mysql> change master to master_host='192.168.10.59',master_user='repli ...

  4. mysql基于gtid的故障恢复模拟

    binog的gtid记录模式管理 介绍: 全局事务唯一编号,对于binlog中每个事务,都会生成一个GTID号码 DDL,DCL一个event就是一个事务,都会生成GTID号码 DML语句,从begi ...

  5. mysql数据库基于gtid复制,mysql基于gtid复制的错误解决

    1.错误描述 Last_SQL_Errno: 1032 Last_SQL_Error: Coordinator stopped because there were error(s) in the w ...

  6. MySQL 5.7 基于 GTID 的主从复制实践

    MySQL 5.7 基于 GTID 的主从复制实践 Posted by Mike on 2017-07-03 运维之美 Home About Archives Tags 在 「MySQL 5.7多源复 ...

  7. mysql 跳过一个事物_MySQL基于GTID的数据恢复

    大家好,我是anyux.本文介绍MySQL基于GTID的数据恢复. 文末总结基于GTID的数据恢复,并有导图 创建一个数据库 gtid,在gtid库下创建表tmp,插入5行数据 create data ...

  8. 迅猛快捷——基于Gtid搭建Mysql主从,gtid实现主从切换自动同步——@$23$人鱼的眼泪

    mysql基于Gtid做主从 环境准备 1. 安装mysql5.7 如果没安装wget,先安装wget 首先获取5.7的包 2.修改配置文件 [主] [从] 主从都执行重启,使配置文件生效 3.查看初 ...

  9. 企业级-Mysql双主互备高可用负载均衡架构(基于GTID主从复制模式)(原创)

    前言: 原理与思想 这里选用GTID主从复制模式Mysql主从复制模式,是为了更加确保主从复制的正确性.健康性与易配性.这里做的是两服务器A,B各有Mysql实例3310,两个实例间互为主从 主从复制 ...

最新文章

  1. 游戏伤害计算机,电脑游戏的危害(The harm of PC games)
  2. Docker (2)与虚拟机的比较
  3. 使用Objects判断对象是否为空,并返回对应信息
  4. Linux内存释放脚本
  5. java遍历Set集合
  6. 前端小知识点(8):作者为什么设计原型
  7. lnmp编译安装mysql_LNMP一键包不安装mysql | 厘米天空
  8. Oracle SQL 优化原则(实用篇)
  9. php注册变量函数,PHP变量函数
  10. 系统架构与软件架构是一层含义吗
  11. Redis 主从复制的实现及配置
  12. 【字幕制作】从IDX/SUB到PGS的小白入门教程
  13. python jsonrpc_python-jsonrpc框架实现JsonRPC协议的web服务
  14. FastDFS原理和过程
  15. python共享单车案例分析_通过python数据可视化分析共享单车项目
  16. 调用第三方api在线生成二维码
  17. 公示系统php,企业信用查询公示系统
  18. 【电源专题】什么是开关稳压器
  19. 生化实验技术——Fret荧光共振能量转移
  20. 应用深度学习function-loss-optimization 2020.8.24

热门文章

  1. 复联4里用到的方法论
  2. CentOS7与Windows AD集成之二Windows域账户登录CentOS7
  3. 使用 ES6 的浏览器兼容性问题
  4. c#devexpres窗体划分 以及panelcontrol 相关操作
  5. 要啥网·商信:一款让所有商业活动一步跨入移动互联时代的APP
  6. 五大成功企业家的成功创业箴言
  7. 大一matlab知识整理,MATLAB基础课程 第二章 MATLAB绘图知识(5)
  8. 如何清空c盘只剩系统_C盘满了怎么办?除了重装系统,还有这些办法!
  9. 机器学习用于数字图像处理_用于创建数字内容的免费电子学习工具
  10. 采访拍摄镜头技巧_采访开放文化公司的6个技巧