mysql – binlog-do-db和replicate-do-db有什么区别?
作者:互联网
我是MySQL Master-Slave的初学者.
我已经阅读了两个教程.
> How to Setup MariaDB (Master-Slave) Replication
> Setup MariaDB Master-Slave Replication
在第一个教程中.它让我这样
[mysqld] Master section
log-bin
server_id=1
replicate-do-db=employees
bind-address=192.168.0.18
[mysqld] SLAVE Section
server_id=2
replicate-do-db=employees
但在第二个教程中,它向我展示了这一点
[mysqld] Master
server_id=1
log-basename=master
log-bin
binlog-format=row
binlog-do-db=unixmen
[mysqld] Slave
server-id = 2
replicate-do-db=unixmen
为什么我应该LOCK TABLES和mysqldump sql,然后导入它?
FLUSH TABLES WITH READ LOCK;
解决方法:
免责声明:为了让事情变得简单和不混乱,我谈到了一个简单的1 Master-1 Slave设置.没有锁链,没有主人,或者其他……
你的第一个教程是错的,它应该是binlog-do-db.
复制就像这样.
主服务器将所有事务写入其二进制日志.
从站从主站二进制日志中读取事务并将它们写入其中继日志.
只有在那之后,从服务器才会执行其中继日志中的语句.
binlog-do-db将指定DB的主写入语句放入其二进制日志中.
replicate-do-db使slave只读取中继日志中的语句,这些语句适用于指定的DB.
replicate-do-db对主服务器没有影响,因为没有要读取的中继日志.
LOCK TABLES部分就在那里,因此数据是一致的.它可以防止在备份数据仍在进行过程中修改主服务器上的数据.
您可以从从属服务器上的此备份还原数据库,因为在设置从属服务器时,并不总是从新服务器开始.因此,它只是在两台服务器上提供相同的数据基础,然后告诉从站主站的事务坐标,瞧,您可以开始复制.您也可以在转储数据后解锁主服务器.只需确保在二进制日志中的语句因日志轮换而丢失之前及时启动了从属服务器.
标签:mysql,mariadb,master-slave 来源: https://codeday.me/bug/20190713/1453126.html