简介:主要介绍:复制功能介绍、mysql二进制日志、mysql复制拓扑、高可用框架、单点故障、读写分离和负载均衡介绍等mysql复制功能介绍mysql复制功能提供分担读负载复制解决的问题实现在不同服务器上的数据分布利用二进制日 ...
主要介绍:复制功能介绍、mysql二进制日志、mysql复制拓扑、高可用框架、单点故障、读写分离和负载均衡介绍等mysql复制功能介绍mysql复制功能提供分担读负载复制解决的问题实现在不同服务器上的数据分布利用二进制日志增量进行不需要太多的带宽但是使用基于行的复制在进行大批量的更改时会对带宽带来一定得压力,特别是跨IDC环境下进行复制实现在不同服务器上的数据分布实现数据读取的负载均衡需要其他组件配合完成利用DNS轮询的方式把程序的读连接到不同的备份数据库,使用LVS,haproxy这样的代理方式非共享架构,同样的数据分布在多台服务器上增强了数据安全性利用备库的备份来减少主库负载复制并不能代替备份实现数据库高可用和故障切换实现数据在线升级mysql二进制日志mysql服务层日志二进制日志慢查日志通用日志mysql存储引擎层日志innodb日志重做日志回滚日志记录了所有对mysql数据库的修改事件,包括增删改查事件和对表结构的修改事件二进制日志格式基于段的格式(记录sql语句)binlog_format = statement优点日志记录量相对较小,节约磁盘及网络i/o, 只对一条记录修改或者插入缺点必须要记录上下文信息保证语句在从服务器和主服务器上执行结果一致对于特定的函数如uuid(),user()这样非确定性函数还是无法复制,可能造成mysql复制的主备服务器数据不一致基于行的格式binlog_format = ROW同一sql语句修改了10000条数据的情况下,基于段的日志格式只会记录这个sql语句,基于行的日志格式会有10000条记录分别记录每一行的数据修改优点使mysql主从复制更加安全对每一行数据的修改比基于段的复制高效误操作而修改了数据库中的数据,同时又没有备份可以恢复时,我们就可以通过分析二进制日志,对日志记录的数据修改操作做反向处理的方式来达到恢复数据的目的。缺点记录日志格式较大binlog_row_image = [full|minimal|noblob]混合日志格式binlog_format = mixed特点:根据sql语句由系统决定在基于段和基于行的日志格式中进行选择数据量的大小由所执行的sql语句决定mysql二进制日志格式对复制的影响基于sql语句的复制(SBR)优点生成的日志量少,节约网络传输i/o并不强制要求主从数据库的表定义完全相同相比于基于行的复制方式更为灵活缺点对于非确定事件,无法保证主从复制数据的一致性对于存储过程、触发器、自定义函数进行的修改也可能造成数据不一致相比于基于行的复制方式在从上执行时需要更多的行锁基于行的复制优点可以应用于任何sql的复制包括非确定函数,存储过程等可以减少数据库锁的使用缺点要求主从数据的表结构相同,否则可能会中断复制无法在从上单独执行触发器mysql复制工作方式 GTID即全局事务id,其保证为每一个在主上提交的事务在复制集群中可以生成一个唯一的id;GTID=source_id:transaction_idbin_log = /usr/local/mysql/log/mysql-binserver_id = 100gtid_mode = onenforce-gtid-consiste启动基于GTID的复制change master to master_host="master_host_ip",master_user="repl",master_password="password",master_auto_position = 1;优缺点优点可以很方便的进行故障专业从库不会丢失主库上的任何修改缺点故障处理比较复杂对执行的sql有一定得限制选择复制模式要考虑的问题所使用的mysql版本复制架构及主从切换的方式所使用的高可用管理组件对应用的支持程度mysql复制拓扑 高可用H.A(High Avalilability)指的是通过尽量缩短因日常维护操作(计划)和突发的系统崩溃(非计划)所导致的停机时间,以提高系统和应用的可用性表示高可用常用的因子正常可用时间全年时间百分比引起系统不可用的原因严重的主从延迟主从复制中断锁引起的大量阻塞软硬件故障造成的服务器宕机等如何实现高可用避免导致系统不可用的因素,减少系统不可用的时间建立完善的监控及报警系统对备份数据进行恢复测试正确配置数据库环境对不需要的数据进行归档和清理增加系统冗余,保证发生系统不可用时可以尽快恢复避免存在单点故障主从切换及故障转移原因有服务器磁盘空间耗尽、性能糟糕的sql表结构和索引没有优化主从数据不一致人为的操作失误单点故障 单点故障是指在一个系统中提供相同功能的组件只有一个,如果这个组件失效了,就会影响整个系统的正常使用。组成应用系统的各个组件都有可能成为单点。如何避免mysql单点故障利用sun共享存储或drdb磁盘复制解决mysql单点故障sun Multi-Master Replication ManagerMMM提供了什么功能MMM监控mysql主从复制健康情况在主库出现宕机时进行故障转移并自动配置其他从对主的复制如何找到从库对应的新的主库日志点的日志同步点如果存在多个从库出现数据不一致的情况如何处理提供了读、写虚拟ip, 在主服务器出现问题时,可以自动迁移虚拟ipMMM架构 Master High Avalilability提供的功能监控主数据库服务是否可用当主DB不可用时,从多个从服务器中选举出新的主数据库服务器提供了主从切换和故障转移功能MHA主从切换过程尝试从出现故障的主数据库保存二进制日志从多个备选从服务器中选举新的备选主服务器在备选主服务器和其他从服务器之间同步差异二进制数据应用从原db服务器上保存的二进制日志读写分离和负载均衡介绍进行mysql主从复制配置的一个主要目的:为了分担主库的读负载为什么要读写分离只能在主上进行写操作读操作主和从上都可以 |