MySQL管理工具MySQL Utilities — mysqlreplicate(41)

  • A+
所属分类:MySQL

mysqlreplicate  工具是在两台服务器间设置和启动复制。用户提供登录从服务器信息和连接到主的信息。也可以指定一个数据库用于测试复制。

该工具报告条件是当主和从的存储引擎不一样时。如果主和从的存储引擎不同将产生告警信息。对于Innodb存储引擎而言,必需完全一样,Innodb的类型(built-in 或 InnoDB Plugin)需要一样,同时主次版本号也要一样,并启用状态。

默认情况下,该工具的警告问题在于下面的信息不匹配,存储引擎设置、默认存储引擎和Innodb存储引擎。为了使用错误代替警告,使用 --pedantic 选项来要求主从存储引擎必需一直。

为了查看存储引擎和innodb值之间的差异,可以使用-vv选项,不管有没使用--pedantic选项。

可以使用下面的策略启动复制:

  • Start from the current position (default)

    从当前的主二进制日志和位置开始复制。该工具使用SHOW MASTER STATUS语句来获取这些信息。

  • Start from the beginning

    从主二进制日志中记录的第一个事件开始复制。使用 --start-from-beginning 选项。

  • Start from a binary log file

    从指定的主二进制日志的第一个事件开始复制。使用 --master-log-file 选项。

  • Start from a specific event

    从特定的事件坐标开始复制 (特定的二进制日志和位置)。使用 --master-log-file 和 --master-log-pos 选项。

选项

注意事项

登录主服务器的用户必须具有对访问数据库的授权权限和创建账号的权限。也就是WITH GRANT OPTION 权限。

主和从的server ID必须非零和唯一的。如果为0或相同产生错误报告。

IP地址和主机名混合使用不推荐。涉及到反向解析的问题。

MySQL客户端工具的路径需要包含在PATH环境变量中,以便使用login-paths验证机制。允许使用my_print_defaults 来从登陆配置文件(.mylogin.cnf)读取login-path值。

实例

在同一台服务器上使用相同的默认设置不同端口的两个实例的复制,命令如下:

使用 --pedantic选项来确保主和从复制成功,当且仅当两个服务器具有相同的存储引擎,相同的默认存储引擎和相同的InnoDB存储引擎。如下所示:

从当前主的位置开始复制,默认的。如下所示:

从主记录的事件开始复制,如下所示:

从特定的主二进制日志开始复制,如下所示:

从特定的主二进制日志坐标开始复制(指定二进制文件和位置),如下所示:

建议

在从的my.cnf文件中配置read_only=1来确保数据不被意外修改,只允许从主读取事件。

使用 --pedantic 和 -vv 选项来避免不同的存储引擎可能导致的问题。

权限

在主上需要对mysql数据库具有SELECT 和 INSERT权限,同时还要有REPLICATION SLAVE, REPLICATION CLIENT 和 GRANT OPTION权限。

在从上需要有SUPER 权限。

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

weinxin
微信公众号
扫一扫关注运维生存时间公众号,获取最新技术文章~

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: