可能存在的情况下有一个源服务器和想要复制不同的数据库不同的副本。例如,您可能想要不同的销售数据分发给不同的部门在数据分析来帮助分散负载。一个示例所示的布局图3.2,“将数据库复制到单独的副本”。
可以通过配置实现这种分离源和正常副本,然后限制了二进制日志语句,每个副本流程使用——replicate-wild-do-table
配置选项在每个副本。
你应该不使用——replicate-do-db
为此当使用statement-based复制,因为statement-based复制导致这个选项的影响有所不同根据当前选中的数据库。这也适用于复合格式复制,因为这使得一些更新使用statement-based格式复制。
但是,它应该安全使用——replicate-do-db
为此,如果您使用的是基于行的复制,因为在这种情况下,当前选中的数据库选项的操作没有影响。
例如,支持所示的分离图3.2,“将数据库复制到单独的副本”之前,你应该每个副本如下配置,执行开始复制
:
副本1应该使用
——replicate-wild-do-table = databaseA. %
。副本2应该使用
——replicate-wild-do-table = databaseB. %
。副本3应该使用
——replicate-wild-do-table = databaseC. %
。
每个副本在这个配置接收整个二进制日志的来源,但只有那些执行事件从二进制日志,适用于包括数据库和表的——replicate-wild-do-table
选择复制的影响。
如果你有数据之前,必须同步副本复制开始,你有很多选择:
每个副本同步所有数据,和删除数据库表,或两者兼而有之,你不想继续。
使用,mysqldump为每个数据库创建一个单独的转储文件和加载相应的转储文件在每个副本。
只使用一个原始数据文件转储,包括特定的文件和数据库,您需要为每个副本。
请注意这并不工作
InnoDB
数据库,除非你使用innodb_file_per_table
。