主从复制时,如果主上正在进行读写,则需要加上读锁
flush tables with read lock;
#关闭所有打开的表,同时对于所有数据库中的表都加一个读锁,直到显示地执行unlock
tables,该操作常常用于数据备份的时候。也就是将所有的脏页都要刷新到磁盘,然后对所有的表加上了读锁,
于是这时候直接拷贝数据文件也就是安全的。为此库下的所有表施加读锁,退出会话后失效,所谓读锁,也就是只能读,不能写。
unlock tables; 解锁数据库:
主主复制需要在配置时确保 id 自增是有区别的
Master-Master复制的两台服务器,既是master,又是另一台服务器的slave。这样,任何一方所做的变更,都会通过复制应用到另外一方的数据库中。
可能有些读者朋友会有一个担心,这样搭建复制环境之后,难道不会造成两台MySQL之间的循环复制么?实际上MySQL自己早就想到了这一点,所以在MySQL的BinaryLog中记录了当前MySQL的server-id,而且这个参数也是我们搭建MySQLReplication的时候必须明确指定,而且Master和Slave的server-id参数值比需要不一致才能使MySQLReplication搭建成功。一旦有了server-id的值之后,MySQL就很容易判断某个变更是从哪一个MySQLServer最初产生的,所以就很容易避免出现循环复制的情况。而且,如果我们不打开记录Slave的BinaryLog的选项(--log-slave-update)的时候,MySQL根本就不会记录复制过程中的变更到BinaryLog中,就更不用担心可能会出现循环复制的情形了。
设置配置高可用的Mysql双机热备(Mysql_HA) :
https://www.cnblogs.com/xinyuyuanm/archive/2013/05/18/3086162.html
其他参考文档
https://blog.csdn.net/l192168134/article/details/75601773
https://www.jianshu.com/p/34d6eb991555
https://blog.csdn.net/mhdp820121/article/details/80606488
https://blog.csdn.net/wo18237095579/article/details/80944800
https://www.cnblogs.com/dannylinux/p/8058657.html
https://www.2cto.com/database/201804/735013.html