最近,Oracle已经在mysql5.7.2最新版本发布了一些新的功能,从而有了这篇文章。大多数的改进数据库性能和复制相关的功能,和这个新的版本将给我们带来令人难以置信的结果。

在这篇文章中,我将尝试使用一些简单的步骤来了解这一新的多源复制原理和如何进行自己的试验。需要说明的是,这是一个开发版,不用于生产环境。因此,本文的目的是给那些想知道这个新的功能,看看它是如何工作的应用,所有这一切都是在临时环境操作相关。

多源复制是什么

首先,我们需要明确的是,多主机与多源复制不一样。多主复制通常是循环复制,您可以将数据复制到任何主机上的其他主机。





多源不同。MySQL在这个新版本中恢复了一个拷贝限制。此限制是从站只能有一个主站。这是一个限制因素,在我们的设计中复制环境,和一些极客让它正常工作。但是现在有一个官方的solution.so.in一词,多意味着从一个站多个主站。现在,复制下面这样的环境是可能的。





这将帮助我们创建一些过去不可能的重复层次结构。例如,你可以把一个奴隶放在你的办公室里。把办公室里所有主要站点的数据复制到世界各地。



它是如何工作的

现在我们的沟通渠道的概念,每个通信信道是一个链接,从服务器到2日志从主服务器。这意味着每个通道有一个io_thread。我们需要为每个主服务器运行不同的变更主命令。我们需要使用通道参数来提供通信链路的名称。






更改主master_host =,master_user =…信道=name_of_channel ;



这很容易。有一个前提,安全功能需要配置从服务器的mysql5.6,这意味着信息通常包含在主服务器的信息或日志应在表中,让我们开始配置

下面举个例子!

首先,你需要下载测试版本的MySQL。点击这个链接:下载。

我们需要有一个沙箱环境从服务器和两个主服务器。我不会详细说明如何配置server_id,二进制日志和复制的用户。我假设它已经配置好了。如果你不知道怎么做,你可以看看这个链接。

首先,我们在服务器上实现了事故安全功能。






master_info_repository =表;
relay_log_info_repository =表;



从服务器重新启动。我们可以开始创建与两名Master1 和master2 的沟通渠道:






奴隶>改变主master_host =127.0.0.1
奴隶>改变主master_host =127.0.0.1



根据通讯名称集从服务器开始。






奴隶的奴隶>>开始信道=Master1 ;
奴隶的奴隶>>开始信道=master2 ;



现在让我们从服务器状态检查:






从属>显示从属状态
空集(0秒)



啊,它是空的。我们需要写通讯的名字。复查状态从服务器:






奴隶> SHOW SLAVE STATUS信道=Master1 G
*************************** 1。行***************************
slave_io_state:等待主人发送事件
master_host:127.0.0.1
master_user:msandbox
master_port:12047
connect_retry:60
master_log_file:mysql-bin.000002
read_master_log_pos:232
relay_log_file:squeeze-relay-bin-master1.000003
relay_log_pos:395
relay_master_log_file:mysql-bin.000002
slave_io_running:是的
slave_sql_running:是的
{…}



我们还可以检查运行io_thread和sql_threads:






奴隶>显示列表;
+ -- + + + ------------- -----------------------------------------------------------------------------
ID用户状态| | | |
+ -- + + + ------------- -----------------------------------------------------------------------------
| 2 |系统用户等待主人送事件| |
| 3 |系统用户从读了中继日志|;等待从我 / O线程更新它|
| 4 |系统用户等待主人送事件| |
| 5 |系统用户从读了中继日志|;等待从我 / O线程更新它|
+ -- + + + ------------- -----------------------------------------------------------------------------



看看考试。






Master1 >创建数据库Master1;
master2 >创建数据库master2;
奴隶>显示数据库like'master %;
-------------------- + +
|数据库(主%)|
-------------------- + +
| Master1 |
| master2 |
-------------------- + +



工作正常,看起来很简单!

结论

这种新的多源特性使得在过去创建一些复杂操作的复制环境更加容易。当然,您的应用程序可以考虑这个新特性的设计和开发。您需要特别注意使用多主和多源。不要弄乱你的数据。

在每一个新版本,MySQL的复制能力给我们更多的配置、性能和设计的可能性。所有这些新的功能可以合并复制的环境。你将在你的新的更好的(旧)功能。例如,您可以配置gtid使用多线程架构或数据库内从每。