9.3-9.4任务

这两天无新课,主要是扩充知识面

因为对mysql接触不长,很多东西不能融汇贯通,所以暂时针对每一篇文章进行总结,之后再补。

 

不停库不锁表在线主从配置

这篇文章介绍的是使用Xtrabackup对数据库做备份。

XtraBackup优势 :

  1. 无需停止数据库进行InnoDB热备
  2. 增量备份MySQL
  3. 流压缩到传输到其它服务器
  4. 能比较容易地创建主从同步
  5. 备份MySQL时不会增大服务器负载

这个软件适用于100GB-500GB的数据库,而且这篇文章提到做主从复制之前要考虑三个问号,是为了实现读写分离,减轻主库负载或数据分析? 为了数据安全,做备份恢复?主从切换做高可用?知道了做主从复制的目的,生产环境中出现了问题就会有的放矢。

由于Mysql复制机制在5.7.7以前默认采用基于语句的复制,在 5.7.7 及以后版本默认改用 row-based。其实有很多复制问题都是因为版本引起的。


主从不同步

主MYSQL上建表时,主键有重复的值报错,造成从不能同步。

可以跳过1062错误,但是个人觉得极其不推荐,不如重新锁表备份重新做主从。


主从不同步

虽然不知道主从复制出错是由什么造成的,bin_log是一方面,这篇文章出错是因为主从复制格式问题,文章后说的挺对,解决问题的方法很多,搞清第一要务是从根本解决问题还是先暂时恢复生产。


主主

MySQL5.6以前的版本复制过程有一个很重要的限制——复制在slave上是串行化的,也就是说master上的并行更新操作不能在slave上并行操作。 MySQL5.6版本参数slave-parallel-workers=1 表示启用多线程功能。

MySQL5.6开始,增加了一个新特性,是加入了全局事务 ID (GTID) 来强化数据库的主备一致性,故障恢复,以及容错能力。

MySQL主主åæ­¥æ¹æ¡

1.两台mysql都可读写,互为主备,默认只使用一台(masterA)负责数据的写入,另一台(masterB)备用;
2.masterA是masterB的主库,masterB又是masterA的主库,它们互为主从;
3.两台主库之间做高可用,可以采用keepalived等方案(使用VIP对外提供服务);
4.所有提供服务的从服务器与masterB进行主从同步(双主多从);
5.建议采用高可用策略的时候,masterA或masterB均不因宕机恢复后而抢占VIP(非抢占模式);

这样做可以在一定程度上保证主库的高可用,在一台主库down掉之后,可以在极短的时间内切换到另一台主库上(尽可能减少主库宕机对业务造成的影响),减少了主从同步给线上主库带来的压力;

但是也有几个不足的地方:

1.masterB可能会一直处于空闲状态(可以用它当从库,负责部分查询);
2.主库后面提供服务的从库要等masterB先同步完了数据后才能去masterB上去同步数据,这样可能会造成一定程度的同步延时;

个人感觉从库可以通过VIP进行同步。


关于 auto_increment

数据库id字段自增变量。

MySQL中对于表上ID自增列可以在创建表的时候来指定列上的auto_increment属性;等同于SQL server中的identity属性;Oracle则是通过Sequence方式来实现。在MySQL中,系统变量auto_increment_increment,auto_increment_offset 影响自增列的值及其变化规则。

  1. auto_increment_increment控制列中的值的增量值,也就是步长。

  2. auto_increment_offset确定AUTO_INCREMENT列值的起点,也就是初始值。

  3. 变量范围:可以在全局以及session级别设置这2个变量


mysql-proxy 实现读写分离 

这篇文章讲的不明所以。

 

mysql-proxy类似的产品有:
mycat 基于阿里的开源软件cobar,官网 www.mycat.io 

mycat实现分库分表 

mycat就像nginx至于网络服务,它针对的是数据库服务。

10002722_3vn0.jpg

Mycat作为主数据库中间件,肯定是与代码弱关联的,所以代码是不用修改的,使用Mycat后,连接数据库是不变的,默认端口是8066。


atlas 出自于360,不维护不更新了

讲的是360的atlas如何配置,先记下。

 

mysql环形主从

每个从只能有一个主,不知道环形主从的应用场景在哪,一个节点瘫痪,一个集群就是瘫痪的缺点太严重了。


mysql架构演变

单台服务器->web服务和db分离->db做到主从结构->一主多从变为一主一从,其他从的主为这“一主已从”的从->分库分表


MHA架构 

Master High Availability,是做的Master的高可用。

MHA的主要作用就是监测到Master节点故障时会提升主从复制环境中拥有最新数据的Slave节点成为新的master节点。同时,在切换master期间,MHA会通过从其他的Slave节点来获取额外的信息来避免一致性的问题,整个的切换过程对于应用程序而言是完全透明的。MHA还提供了master节点在线切换功能,即按需切换master/slave节点。


比较复杂的mysql集群架构

框架图,等之后又更深理解再仔细读一读。

95afbb3fa9b9a2f9fb875cef775cf81f5ba.jpg

 

 

转载于:https://my.oschina.net/u/3866688/blog/1944778

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值