MySQL管理工具MySQL Utilities — 使用mysqlreplicate创建复制(47)

MySQL已经内置支持多种类型的复制。复制通常是为了增强性能和容错。配置复制是一个比较复杂而容易出错的。不过不用担心哈,MySQL Utilities 提供的工具可以帮助简化和自动化,甚至一些复制相关的任务。

假设我们需要使用复制来改进服务的吞吐量,通过添加更多的服务器到现有的复制架构中。这些副本允许向外扩展,读写分离,所有的读请求发送到从上。

我们将使用mysqlreplicate工具来完成该任务,然后使用mysqlrpladmin 工具来检查结果。

环境如下:Server1 IP为 192.168.1.1 端口为 13001,要添加两台服务器,Server2 IP为192.168.1.2 端口为13001 Server3 IP为192.168.1.3 端口为3306。

实例

在上面的例子中,我们使用mysqlreplicate 工具设置一个两层的复制拓扑,一主两从。 –master选项指定了server1,–slave选项指定server2和server3。还使用了-b标记,使复制从主二进制日志中的第一个事件开始。

同时,使用mysqlrplcheck 工具来检查复制的健康状况。在上面例子中, “Check slave delay”失败的,表明从正赶上主。当从读取并应用完主二进制日志中的所有事务,”Check slave delay”检测将是pass的。

权限

m_account 用户需要对mysql数据库的 SELECT 和 INSERT 权限,以及REPLICATION SLAVE, REPLICATION CLIENT 和 GRANT OPTION 权限。

slave_acc 用户需要有SUPER 权限。

对于 –rpl-user 选项的用户,要么自动创建要么已经存在,需要有REPLICATION SLAVE权限。

当使用GTIDs,slave_acc 用户还需要有对mysql数据库的SELECT 权限,才能成功执行mysqlrplcheck 工具。

小技巧

mysqlreplicate工具可以使用–test-db选项来创建一个虚拟的数据库来测试复制设置。从而,mysqlrplcheck 工具提供更详细的信息。

如前所述,-b标记,使复制从主二进制日志中的第一个事件开始。省略这个标记,复制将从当前的二进制日志开始。

使用 –master-log-file 和 –master-log-pos 选项分别制定主日志文件和主日志位置来决定到底从哪开始复制。

-p标记用来确保复制只在主从存储引擎匹配下执行。

mysqlrplcheck 工具,可以使用-s选项来检查show slave status命令的输出。这是有用的,来检查是什么原因导致”Is slave connected”失败的。也可以使用 –master-log-file 选项来读取主信息文件。

也可以使用–verbose选项来获取更多信息。