【发布时间】:2021-06-22 12:02:08
【问题描述】:
我正在尝试设置复制从属设备。
我希望如果我在从站上将 binlog 位置设置为 0,它会从 0 开始读取并从头开始复制所有内容,直到它与主站匹配,但从站不做任何事情,也不会出错。
所以我首先需要一个当前数据库快照。如果两台服务器都可以在本地网络上相互通信,我可以在不将数据库转储到文件的情况下执行此操作吗?我试过这个命令,但它只是吐出使用帮助:
slave ~$ sudo mysqlimport --host='[master-server-ip]' --user='repl' -pC
重申一下,我想通过网络传输所有数据库(除了 mysql 内置数据库),而无需手动传输文件。
【问题讨论】:
-
@AmirSaleem 很遗憾不是因为它使用文件和手动文件传输。我知道你可以这样做,但我想做得更精简。
-
我已经发布了一个可能的答案,但无论如何你为什么不想使用文件传输数据库?是因为主数据库不断更新吗?对于这种情况,Percona XtraBackup 工具可以备份热数据库,导入后您可以轻松配置复制而不会丢失任何内容。
-
@Stalinko 一方面是因为它很乏味,另一方面是因为在生产环境中我必须跳过保护节点,所以我必须 scp, rm, scp, rm, scp, rm ad iniftum .另外,为什么 mariadb 可以将数据传输到远程客户端,但您不能使用该功能进行即时备份?
-
@USB_S0lderer 通常不应该将复制用于完整数据传输。在实时数据库上,只有最后几天的二进制日志,而不是所有时间,因此不可能进行完整的数据传输。这种传输方式也是过度的,因为您不仅要复制数据,还要重复生成该数据的所有查询。如果您无法将备份存储在主服务器上,则可以将其直接转储到从服务器中。或者您可以将 master 转储到您的计算机上,然后将该备份上传到 slave。这很简单,而且复杂的复制也不会让人头疼。
标签: mysql replication