|
个人认为,90%的公司的数据体量和并发量压根用不上从服务器,结合Redis,一台性能强劲的云MySQL服务器,做好日常备份。足够了。
概念
一个MySQL主(Master)服务器上的数据自动复制到至少一个的MySQL从(Slave)服务器的过程,利用bin log,主服务器上的数据更改会被自动地同步到从服务器,以保持至少两个服务器上数据的一致性。
注意:客户端请求MySQL Server,写主还是写从,读主还是读从,决定权在客户端。
解决了什么问题?
- 负载均衡:一台机器读写可能扛不住,多个服务器过来帮忙,主负责写,从负责读。
- 读写分离:起到了数据备份的作用,鸡蛋不要放到一个篮子里。
- 高可用性:一台服务器宕机,可切换到另一台服务器上,提供继续服务的能力。
缺点
- 增加运维复杂度。
- 无法保证主从实时通信,可能出现数据不一致的情况。
主从通信推还是拉?
拉,通过从机上配置主机的IP就能看出来,如果是推,则是主机上配置从机IP。
主服务器主动请求从服务器或推送,这是推。
从服务器主动请求主服务器,这是拉。
配置一主一从
mysql有大量的可选主从的配置,很多不一定能用上,具体可查看MySQL官网:https://dev.mysql.com/doc/refman/8.0/en/replication-configuration.html
最好先ping对方的服务器,能互相ping通,说明可通信。
防火墙开启3306端口:
firewall-cmd --zone=public --add-port=3306/tcp --permanent && systemctl restart firewalld值得一提的是,在主机的配置上,有一个binlog_format的属性,用于指定二进制日志文件中记录的事件格式
- statement:如执行now()这种函数时,从机会照搬复制主机的数据。
- row:默认值。 如执行now()这种函数时,从机会获取自身的数据,能够避免由于不确定性造成的错误。但可能生成更大的二进制日志文件,因为它记录了每一行数据的变化。
- mixed:中庸策略,在某些情况下,它会记录 SQL 语句,而在另一些情况下会记录数据行更改。
来源:https://www.cnblogs.com/phpphp/p/18058421
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作! |
|