【问题标题】:MySQL database replicationMySQL数据库复制
【发布时间】:2009-04-27 12:00:54
【问题描述】:

这是场景:

  1. 我有一个带有数据库的 MySQL 服务器,我们称之为 consolidateddb。该数据库整合了来自不同数据库的多个表
  2. 我有另一个 MySQL 服务器,带有原始数据库,这些数据库是生产数据库并且每天更新。
  3. 公司希望将生产数据库中每个表上的每个更新/插入/删除复制到 consolidateddb 中的相应表中。

复制能做到这一点吗?我知道复制是在数据库上完成的,而不是在属于不同数据库的表上复制到一个目标数据库。

我希望我的解释很清楚。谢谢。

编辑:将每个数据库中的所有表的递归副本复制到单个从属服务器是否有效?或者它是一个丑陋的解决方案?

【问题讨论】:

  • 是否有任何原因统一数据库不只是将所有内容存储在从服务器上的单独数据库中?

标签: mysql database copy replication


【解决方案1】:

为了澄清一些事情,让我们根据当前的mysql实践来命名。数据库是数据库服务器。模式是一个数据库实例。一个数据库服务器可以有多个模式。表存在于模式中。

如果您想复制模式或表在主/生产服务器上定义,复制将帮助您。复制通过将在主服务器上运行的所有 sql 语句的二进制日志传送到从属服务器,后者尽职尽责地运行它们,就好像它们在自身上按顺序运行一样。

您可以选择复制所有数据,或者您可以选择一些模式甚至只是一些表。

您不能从不同的模式中选择表并将它们复制到一个模式中,一个表属于一个特定的模式。

顺便说一句,重要的通知。复制服务器不能成为多个主服务器的从属服务器。您可以使用联合表来模拟这一点,但这永远不会将数据复制到整合服务器,只是将它们显示为好像来自不同服务器的数据在一台服务器上一样。

复制的好处是您的整合服务器将或多或少一直更新数据。

【讨论】:

    【解决方案2】:

    您可以从每个 master 获取二进制日志,使用 mysqlbinlog 解析它们,然后将其运行到整合的机器中。

    类似的东西:

    mysqlbinlog [binary log files] | mysql -h consolidated
    

    你需要某种简单的应用程序(我怀疑如果你需要它可以在 bash 中完成)来包装逻辑。

    【讨论】:

      【解决方案3】:

      查看Replicating Different Databases to Different Slaves,看看它是否对您有任何帮助。

      【讨论】:

      • 您好,这恰恰相反,改写为:将不同的主数据库复制到从属数据库,其中包含不同主数据库中的所有表。别问我为什么,我就是继承了这个怪胎。
      【解决方案4】:

      MySQL 基于语句的复制(基本复制)通过在从属服务器上运行在主服务器上运行的完全相同的语句来工作。这包括有关该表所在的数据库的信息。

      我认为 MySQL 没有提供任何内置方式来在数据库之间移动复制语句(即“插入 db1.table1 ...”->“插入 db2.table1”)。您可以通过手动更改复制日志来欺骗它,但它不会是体外的 MySQL 复制。

      【讨论】:

        【解决方案5】:

        您也许可以通过MySQL Proxy 完成它

        【讨论】:

          【解决方案6】:

          您可能想查看maatkit 工具包。它是免费下载的,并且有许多专门用于优化归档表等工具的工具。我在过去的项目中使用它来将某些数据复制到另一个数据库等。你可以根据时间或任何其他数量的因素来做。

          【讨论】:

            【解决方案7】:

            据我所知,您可以设置复制(MySQL 4+)并在 my.cnf 文件中让从属服务器仅处理某些表或让主服务器仅记录某些表,无论哪种方式都可以解决您的问题。

            以下是一些技巧的指南:

            http://www.onlamp.com/pub/a/onlamp/2006/04/20/advanced-mysql-replication.html

            我在复制设置方面遇到的问题很少,我所有的问题都来自尝试同步数据库,尤其是在重启等之后。

            【讨论】:

              猜你喜欢
              • 2015-09-18
              • 1970-01-01
              • 2015-05-26
              • 1970-01-01
              • 2010-12-25
              • 2018-05-18
              • 2013-02-25
              • 2013-10-21
              • 1970-01-01
              相关资源
              最近更新 更多