你们公司mysql用的什么备份,如果是主从,那如果主服务器突然挂了怎么办?
解决方法一:
甩锅给开发---当时的主从开发写了一个超时的,如果超时就自动转给从服务器
方法二:
做一个互为主从:主挂了另一台可以继续运行
方法三:
使用keepliaved,创建一个公ip让开发链接,当一个挂了,可以第一时间进行切换
公司主从复制,从在写入是特别慢,有什么好的解决方案吗?
1.先找出为什么延迟会高
更多的是因为,主库执行完后写入二进制日志,然后通知I/O进程,I/O进程是可以进行多进程读取的,但是进行写入的sql进程只能有一个,所以就导致了,sql进程跟不上的缘故
2.寻找解决方案
MySql数据库从库同步其他问题及解决方案
1)、mysql主从复制存在的问题: ● 主库宕机后,数据可能丢失 ● 从库只有一个sql Thread,主库写压力大,复制很可能延时2)、解决方法: ● 半同步复制---解决数据丢失的问题 ● 并行复制----解决从库复制延迟的问题
3)、半同步复制mysql semi-sync(半同步复制)半同步复制: ● 5.5集成到mysql,以插件的形式存在,需要单独安装 ● 确保事务提交后binlog至少传输到一个从库 ● 不保证从库应用完这个事务的binlog ● 性能有一定的降低,响应时间会更长 ● 网络异常或从库宕机,卡主主库,直到超时或从库恢复4)、主从复制--异步复制原理、半同步复制和并行复制原理比较
a、异步复制原理:
b、半同步复制原理:
事务在主库写完binlog后需要从库返回一个已接受,才放回给客户端;5.5集成到mysql,以插件的形式存在,需要单独安装确保事务提交后binlog至少传输到一个从库不保证从库应用完成这个事务的binlog性能有一定的降低网络异常或从库宕机,卡主库,直到超时或从库恢复
c、并行复制mysql并行复制 ● 社区版5.6中新增 ● 并行是指从库多线程apply binlog ● 库级别并行应用binlog,同一个库数据更改还是串行的(5.7版并行复制基于事务组)设置set global slave_parallel_workers=10;设置sql线程数为10
原理:从库多线程apply binlog在社区5.6中新增库级别并行应用binlog,同一个库数据更改还是串行的5.7版本并行复制基于事务组
解决方法二:
也可以一主多从,每个从服务器只备份一张表,就可以实现意义上的负载均衡