不懂就问!MYSQL一主多从,如果主库挂了怎么办?

MYSQL一主多从如果主库挂了,那么数据都写不进来了 ,这个时候从库应该不会自动变成主库吧,又不是双主架构,那这个期间不是丢数据了吗?还有一个问题就是Master_Log_File二进制日志文件是一直在变化的,比如从库挂了再启动,他是从主库最新的二进制日志读取数据吗?如果是这样的话,那这个期间主库如果在不停的写数据,从库只读主库最新的二进制日志,那从库宕机这期间主库的日志他不就读取不到了吗?我还是没搞清楚原理,谁能用比较通俗易懂的给我解释一下?

不管是一主多从也好,一主一从也好
还是双主也好
所有冗余模式其实本质上都是互为备份
那么到底是能够自动切换还是需要手动切换,这里先不讨论
总之就是个备份
那么本来有2个备份,其中一个坏掉了,就必须马上修复,否则两个备份都坏了肯定就造成数据丢失找不回来了呀
如果主机挂了,那肯定要想办法把其中一个从机变成主机,不管是自动切换还是手动切换,但是在这期间肯定就没有冗余了,需要抓紧时间恢复冗余,否则再坏就真丢数据了
如果从机挂了,也一样,需要抓紧恢复从机数据,想办法重新同步,而不是坐等它自己恢复
如果从机只是宕机,那么重启之后,它去读主库的日志,与上一次读取到的日志比较,然后把最新的部分写入,它并不是只能读一行记录

如果主服务器挂了,需要采取以下措施:

  1. 将其中一个从服务器提升为新的主服务器
  2. 确认所有其他从服务器都与新的主服务器同步了。
  3. 更新应用程序的配置,以指向新的主服务器。

具体操作措施如下:

  1. 停止主服务器上的MySQL服务和应用程序访问。

  2. 确认从服务器中有一个可以担任新的主服务器。通常选择与最近活跃的主服务器同步的从服务器。

  3. 把新的主服务器设置为可写,并启动MySQL服务。

  4. 确认新的主服务器已经准备好接收读写请求。

  5. 更新从服务器配置文件,指向新的主服务器。

  6. 启动从服务器上的MySQL服务,并确保数据正确同步到新主服务器。

  7. 更新应用程序配置,以使用新的主服务器。

  8. 重新启动应用程序并测试。

需要注意的是,建议在实施一主多从架构之前,预先考虑主服务器故障时的应对措施,以确保数据不会丢失。例如,可以配置自动故障转移,并使用数据备份和恢复工具来保护数据。此外,在执行一主多从架构时,还应该进行适当的监控和维护,以确保系统正常运行。