微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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部分就在那里,因此数据是一致的.它可以防止在备份数据仍在进行过程中修改主服务器上的数据.

您可以从从属服务器上的此备份还原数据库,因为在设置从属服务器时,并不总是从新服务器开始.因此,它只是在两台服务器上提供相同的数据基础,然后告诉从站主站的事务坐标,瞧,您可以开始复制.您也可以在转储数据后解锁主服务器.只需确保在二进制日志中的语句因日志轮换而丢失之前及时启动了从属服务器.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐