`
dengkane
  • 浏览: 40413 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

MySQL主从架构配置案例

阅读更多

  一般规范一点的公司,为了服务器的安全稳定,都要进行主从配置,而且开发人员也希望主从配置,因为只有一台机器工作的话,一旦宕机,工程师就得日日夜夜加班搞,但是有主从机的架构就不一样了。

  注:如果刚开始不是主从架构,主库单独跑了一段时间后要改为主从,那需要保证数据库data一致。

  1. 主库编辑my.cnf

  mysql代码

  [mysqld]

  log-bin=mysql-bin

  server-id=1 #配一个唯一的ID编号,(2-2的32次幂)-1。

  #设置要进行或不要进行主从复制的数据库名,同时也要在 Slave 上设定。

  #binlog-do-db=数据库名1

  #binlog-do-db=数据库名2

  #binlog-ignore-db=数据库名1

  #binlog-ignore-db=数据库名2

  binlog-do-db=testdb

  重启mysql 服务后,连接数据库。

  java代码

  mysql> grant replication slave on *.* to slaveuser@192.168.1.2 identified by '123456' ;

  mysql> flush privileges;

  mysql> show master status;

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

  | File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

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

  | mysql-bin.000016 | 120 | testdb | |

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

  记录下二进制日志的文件名及位置。

  2. 从库编辑my.cnf

  Mysql代码

  [mysqld]

  server-id=2 #唯一

  #设置要进行或不要进行主从复制的数据库名,同时也要在 Master 上设定。

  #replicate-do-db=数据库名1

  #replicate-do-db=数据库名2

  #replicate-ignore-db=数据库名1

  #replicate-ignore-db=数据库名2

  replicate-do-db=testdb

  重启mysql 服务后,连接数据库。

  Mysql代码

  mysql> change master to master_host='192.168.1.1',master_user='slaveuser',master_password='123456', master_log_file='mysql-bin.000016',master_log_pos=120;

  mysql> start slave;

  mysql> show slave status\G;

  如显示如下,则成功。

  Slave_IO_Running: Yes

  Slave_SQL_Running: Yes

  Replicate_Do_Db: testdb

  3. Mysql主备复制实现工作原理

 

 

  从上图来看,复制分成三步:

  master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events,可以通过show binlog events进行查看);

  slave将master的binary log events拷贝到它的中继日志(relay log);

  slave重做中继日志中的事件,将改变反映它自己的数据。

  附一些问题的解决过程:

  1). error:“/usr/sbin/mysqld: unknown variable 'master-host=10.1.4.154'”

  原因是MySQL自5.1.7版本之后不支持master-host 类似的参数,需要在从库上执行:

  change master to master_host='masterIP', master_user='slave', master_password='slvaePASS';

  slave start;

  2). slave status: "Slave_IO_Running:No"

  Mysql代码

  解决方法:

  Mysql > stop slave;

  Mysql > set global sql_slave_skip_counter =1 ;

  Mysql > start slave;

  3). Last_IO_Error: Got fatal error 1236 from master when reading data from binary log

  对照master status 确认log文件及position数据是否正确。

  4). Slave can not handle replication events with the checksum that master is configured to log

  这个错误一般出现在master5.6,slave在低版本的情况下。这是由于5.6使用了crc32做binlog的checksum。除了把master的设置从crc32改到none

  Mysql代码

  binlog-checksum = none [my.cnf]

  5). 在SLAVE执行CHANGE MASTER时,出现ERROR 1201 (HY000): Could not initialize master!

  Msyql代码

  mysql> slave stop;

  Query OK, 0 rows affected, 1 warning (0.00 sec)

  mysql> change master to master_host='192.168.100.10',master_user='replication',master_password='123456',master_log_file='updatelog.000004',master_log_pos=106;

  ERROR 1201 (HY000): Could not initialize master info structure; more error messages can be found in the MySQL error log

  修正问题:

  Mysql代码

  mysql> slave stop;

  Query OK, 0 rows affected, 1 warning (0.00 sec)

  mysql> reset slave;

  Query OK, 0 rows affected,(0.00 sec)

  mysql> change master to master_host='192.168.100.10',master_user='replication',master_password='123456',

master_log_file='updatelog.000004',master_log_pos=106;

  Query OK, 0 rows affected (0.05 sec)

  mysql> slave start;

  Query OK, 0 rows affected (0.00 sec)

  6). 主从复制binlog问题,如果没有删除的配置,则会无限增长,严重占用磁盘空间。

  Java代码

  expire_logs_days = 30 #有效期30天,之前的会被删除

  7). 如果主数据库服务器已经存在用户数据,那么在进行主从复制时,需要做以下处理。

  Java代码

  (1)主数据库锁表操作,不让数据再进行写入动作。

  mysql>flush tables with read lock;

  (2)查看主数据库的状态

  mysql>show master status;

  记下File以及Position的值,以备从服务器使用。

  (3)把主服务器的数据文件复制到从服务器,最好先用tar归档压缩处理一下

  (4)取消主数据库锁定

  mysql>unlock tables;

  从服务器的操作和前面的步骤一样,略过。

  自己的学习笔记,在java论坛记录下来,也希望对大家有帮助!有更厉害的人的话,求赐教哦!(文章来源:http://www.nei-mao.com/

 

转自:http://blog.itpub.net/29870867/viewspace-1304862/

分享到:
评论

相关推荐

    2017最新老男孩MySQL高级专业DBA实战课程全套【清晰不加密】,看完教程月入40万没毛病

    08-不停主库一键批量配置MySQL主从复制方案.avi 09-MySQL主从复制3个线程状态信息讲解.avi 10-MySQL主从复制读写分离授权多种方案案例详解.avi 11-忽略MySQL主从复制主库授权表同步实战.avi 12-MySQL主从复制指定...

    大数据高并发系统架构实战方案(全套视频+代码+课件)

    13.mysql主从复制安装配置 14.mysql主从复制安装配置进阶 15.hadoop分布计算安装 16.hadoop分布计算配置 17.redis安装实战 18.redis使用进阶 19.redis实用命令实战 20.redis实战案例及总回顾 .....

    分布式集群、PB级别网站性能优化

    大数据高并发服务器实战教程 Linux LNMP部分 Memcached篇 ...mysql主从复制安装配置进阶 hadoop分布计算安装 hadoop分布计算配置 redis安装实战 redis使用进阶 redis实用命令实战 redis实战案例及总回顾

    《海量数据处理与大数据技术实战》、《MySQL技术大全:开发、优化与运维实战》作者 旨在分享各种编程语言、开发技术、分布式与微服

    糟了,生产环境MySQL主从数据库不一致怎么办?! 实际案例:MySQL主键性能压测!! MySQL8索引篇:性能提升了100%!! 卧槽,安装完MySQL竟然提示数据表不存在!! 冰河视频聊架构:三分钟带你彻底掌握MySQL Undo ...

    Java面试专属视频

    面试必考之HashMap源码分析与实现 ,微服务架构之Spring Cloud Eureka 场景分析与实战,高性能必学之Mysql主从架构实践 ,架构师不得不知道的Spring事物不能回滚的深层次原因 ,分库分表之后分布式下如何保证ID全局...

    深入理解Mysql MHA高可用集群搭建:从实验到实战

    MHA(Master High Availability)是一个用于MySQL高可用性的开源工具,专门用于处理MySQL主从复制架构中的主节点故障。本文深入探讨了MHA的关键组成部分,包括MHA Manager和MHA Node的角色,以及它如何在主节点故障...

    Mysql性能优化教程

    目录 1 背景及目标 2 Mysql 执行优化 2 认识数据索引 2 为什么使用数据索引能提高效率 2 如何理解数据索引的结构 2 ...主从架构 21 故障转移处理 22 缓存方案 22 缓存结合数据库的读取 22 缓存结合数据库的写入

    Linux运维从入门到高级全套案例v3.rar

    目录 Linux入门篇 操作系统简介 1.2 Linux发展趋势 3 Linux系统安装 4 Linux学习技巧 2. Linux系统篇…… 2.1 Linux系统管理… 2.1.1 Linux目录初识 ...5.7 MySQL主从高可用架构… 5.8Ls+ Keepalived负载均衡

    mysql高级视频教程百度云(2019).txt

    63.MySQL高级_主从复制.avi 62.MySQL高级_行锁总结.avi 61.MySQL高级_如何锁定一行.avi 60.MySQL高级_间隙锁危害.avi 59.MySQL高级_索引失效行锁变表锁.avi 58.MySQL高级_行锁演示答疑补充.avi 57....

    尚硅谷Java视频教程_MySQL高级视频

    尚硅谷_MySQL高级_MySQL配置文件 · 08.尚硅谷_MySQL高级_MySQL逻辑架构简介 · 09.尚硅谷_MySQL高级_存储引擎简介 · 10.尚硅谷_MySQL高级_SQL性能下降原因 · 11.尚硅谷_MySQL高级_SQL执行加载顺序 · 12....

    Linux运维从入门到高级全套案例v3

    5. 7 MySQL主从高可用架构 102 5. 8 LVS+Keepalived负载均衡 110 5. 9 Squid缓存服务器配置 116 6. Linux下高并发系统内核优化 122 7. Nginx负载均衡机制及常见问题 124 8. Linux运维职业规划 127 9. Linux运维面试...

    高清pdf-MySQL王者晋级之路.rar

    《MySQL王者晋级之路》深入剖析MySQL数据库体系结构,实战演练备份恢复、主从复制,详解高可用集群架构的设计与实践过程,详细梳理优化思路,展现新版本的特性,并与真实生产案例相结合,通过核心原理到“王者”实战...

    MySQL管理之道 性能调优、高可用与监控.part2.rar

    《mysql管理之道:性能调优、高可用与监控》由资深mysql专家撰写,以最新的mysql版本为基础,以构建高性能mysql服务器为核心,从故障诊断、表设计、sql优化、性能参数调优、mydumper逻辑、xtrabackup热备份与恢复、...

    开涛高可用高并发-亿级流量核心技术

    15.11.1 Mysql主从复制 315 15.11.2 Canal简介 316 15.11.3 Canal示例 318 第4部分案例 323 16 构建需求响应式亿级商品详情页 324 16.1 商品详情页是什么 324 16.2 商品详情页前端结构 325 16.3 我们的性能数据 327 ...

    MySQL学习笔记5-数据库性能优化与扩展.md

    课件还以高可用性和负载均衡作为案例,讲解了主从复制、读写分离等数据库架构,并提供了具体的配置示例。内容结构清晰,重点突出。 适合人群: 需要对数据库性能优化和高可用架构有全面了解的DBA或相关技术人员。代码...

    MyCat数据库中间件开发实战(主从复制,读写分离,分库分表,)

    MyCat 是目前流行的基于 java 语言编写的数据库中间件,是一个实现了 MySQL...MyCat 是基于阿里开源的 Cobar 产品而研发,Cobar 的稳定性、可靠性、优秀的架构和性能以及众多成熟的使用案例使得 MyCat 变得非常的强大!

    MySQLDBA运维笔记.pdf

    1.2.7 创建两个 mysql 多实例的配置文件...................................................................12 1.2.7.1 3306 的实例.............................................................................

    Apress.Expert.MySQL.Jan.2007

    本书深入剖析MySQL数据库体系结构,实战演练备份恢复、主从复制,详解高可用集群架构的设计与实践过程,详细梳理优化思路,展现新版本的特性,并与真实生产案例相结合,通过核心原理到“王者”实战,全面覆盖MySQL...

    Mycat-server-1.7.0-DEV-20170416134921-linux.tar.gz

      MyCat 是基于阿里开源的 Cobar 产品而研发,Cobar 的稳定性、可靠性、优秀的架构和性能以及众多成熟的使用案例使得 MyCat 变得非常的强大。   MyCat 发展到目前的版本,已经不是一个单纯的 MySQL 代

Global site tag (gtag.js) - Google Analytics