mysqlMySQL数据库⾼可⽤HA实现
起因:在⼯作中常常要⽤到mysql,平常只是对数据库crud,并没有认真的了解过她,sql语句也只是会⼀些最基本的,和常⽤的,⼀些不常⽤的都要去⽹上百度,即决定学习⼀下mysql,来了解她,虽然开发很多都是⿊盒,但追本溯源总是我们想要的。
trueskate下载1.什么是数据库⾼可⽤
1.1.什么是⾼可⽤集
N+1:N就是集,1就是⾼可⽤,⾼可⽤的核⼼就是冗余,集是保证服务最低使⽤标准的
1.2.⾼可⽤集的衡量标准
mysql无法连接到服务器
⼀般是通过系统的可靠性和可维护性来衡量的MTTF:平均⽆故障时间,这是衡量可靠性的MTTR:衡量系统的可维护性的
HA=MTTF/(MTTF+MTTR)*100%
SLA:99.999%:表⽰⼀年年故障时间/宕机时间不超过6分钟
1.3.实现⾼可⽤的三种⽅式
主从⽅式(⾮对称)
这种⽅⽅式的组织形式通常都是通过两个节点和⼀个或多个服务器器,其中⼀台作为主节点
(active),另⼀台作为备份节点(standy),备份节点应该随时都在检测主节点的健康状况,当主节点发⽣⽣故障,服务会⾃动切换到备份节点保障服务正常运行
对称⽅式
两个节点,都运行着不同的服务且相互备份,相互检测对⽅的健康,当任意⼀个节点发⽣⽣故障,这 个节点上的服务就会⾃动切换到另⼀节点
多机⽅⽅式
包含多个节点多个服务,每个节点都要备份运⾏行不同的服务,出现问题⾃动迁移
1.4MySQL数据的⾼可⽤实现
1.4.1.主从⽅式(⾮对称)
vue ui组件库
资源:两台同版本的MySQL数据库
主从实现的内部运行原理和机制
First Step:主数据库服务器器会把数据的修改记录记录进binlog⽇⽇志,binlog⼀⼀定要打开
Second Step:从库的I/O进⾏⾏行读取主库的binlog内容后存⼊⼊⾃⾃⼰⼰的Relay Log中继⽇⽇志中,这个I/O线程会和主库建⽴⽴⼀⼀个普通的客户端连接,然后主库启动⼀⼀个⼆⼆进制转储线程,I/O线程通过转储线程读取binlog更更新事件,同步完毕后I/O进⼊⼊sleep,有新的更更新会再唤醒
Relay Log和Binlog的格式是⼀样的,可以⽤⽤mysqlbinlog读取,也可show
flash特效网mysql> show relaylog events in 'relay-log.000001';
⽬前数据库有两种复制⽅式
binlog⽇志点position
GTID⽅⽅式也要依赖binlog
第三步:从服务器器的SQL进程会从Relay Log中读取事件并在从库中重放
victoryday孕妇从服务器器执行重放操作时是可以在配置里声明是否写⼊⼊服务器的binlog⽇志中
malloc函数返回值

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。