1、主从复制与备份的区别
主从复制不等于备份,在实际工作中,我们可以根据需要配置主从复制,但是备份工作我们是必须要做的。我的理解是,我们可以不做主从,但一定要做备份,而且主从复制不等于备份。
2、主从复制的作用
第一,创建一个数据库的的备份,避免主库崩溃时丢失数据,第二,创建一个数据的副本,近而可以在不影响主库业务的情况下执行报表和分析等操作。第三,支持多地部署,做到数据库的冗余。第四,我们可以通过延时复制的技术,实现错误保护的功能,这样当master发生错误时,可以找出错误的语句,然后在slave执行它之前删除它。第五,针对读密集型的场景,实现数据库的横向扩展,从而减少master的负担。横向扩展时要理解复制的异步性,要注意master与salve数据的不一致。
3、主从复制的原理
Mysql服务器之间的主从同步是基于二进制日志机制,主服务器使用二进制日志来记录数据库的改变,从服务器通过读取和执行该日志文件来保持和主服务器的数据一致。
复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环。这些日志可以记录发送到从服务器的更新。当一个从服务器连接主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置。从服务器接收从那时起发生的任何更新,然后封锁并等待主服务器通知新的更新。
4、mysql支持的复制类型:
基于语句的复制:在主服务器上执行的SQL语句,在从服务器上执行同样的语句。MySQL默认采用基于语句的复制,效率比较高。一旦发现没法精确复制时,会自动选着基于行的复制。
基于行的复制:把改变的内容复制过去,而不是把命令在从服务器上执行一遍.从mysql5.0开始支持
混合类型的复制:默认采用基于语句的复制,一旦发现基于语句的无法精确的复制时,就会采用基于行的复制。