mysql架构

一 mysql复制功能
1.mysql的复制功能,是构建基于mysql数据库的大规模高性能的基础
mysql架构
数据库不同,由于数据库中负载严重的时候,因为数据库事务性要求,不能通过简单的增加数据库服务器的方式来分担读写负载,而mysql的复制功能为我们提供了分担读负载的好办法,只做简单的复制还是不能分担写负载的,只能分担读负载,同时mysql的复制功能,不仅能够分担读负载也为高可用,灾难恢复,备份等提供了更多的选择

mysql架构
可以使用复制功能为数据库增加一个或者多个备库进行水平扩展,这些备库就可以分担读负载。mysql的复制是基于主库上的二进制日志,然后在备库上重放这些日志,mysql的复制是异步的,意味着在同一时间点上,备库上的数据可能与主库不一致,并且无法保证主库和备库之间的延迟,影响主库和备库之间的延迟有很多,虽然延迟无法避免但是复制功能还是很好的
mysql复制能够解决什么问题?能够实现在不同服务器上的数据分布,能够实现数据读取的负载均衡,需要其他组件配合完成,增加了数据的安全性,利用备库的备份来减少主库的负载,复制并不代表安全性,实现数据库的高可用,和故障切换,实现数据库的在线升级
mysql有很多日志,可以分为mysql服务层日志(二进制日志,慢查询日志,通用日志),mysql存储引擎层的日志(innodb的重做日志和回滚日志)。mysql服务器层的日志和使用什么类型的存储引擎无关,是由mysql服务器层进行记录的
mysql的二进制日志,记录了所有对mysql数据库的修改事件,包括增删改查事件和对表结构的修改事件。在binlog中记录的事件是成功执行的事件,由于回滚或者是语法错误而不会进行记录,通过binlog命令行工具进行查看,myql二进制日志的格式有三种