MySQL管理利器 MySQL Utilities---mysqlreplicate

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 选项。

选项

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

MySQL Utilities mysqlreplicate version 1.5.3

License type: GPLv2

Usage: mysqlreplicate --master=root@localhost:3306 --slave=root@localhost:3310 --rpl-user=rpl:passwd

mysqlreplicate - establish replication with a master

Options:

  --version             show program's version number and exit

  --help                display a help message and exit

  --license             display program's license and exit

  --master=MASTER       connection information for master server in the form:

                        <user>[:<password>]@<host>[:<port>][:<socket>] or

                        <login-path>[:<port>][:<socket>] or <config-

                        path>[<[group]>].

  --slave=SLAVE         connection information for slave server in the form:

                        <user>[:<password>]@<host>[:<port>][:<socket>] or

                        <login-path>[:<port>][:<socket>] or <config-

                        path>[<[group]>].

  --rpl-user=RPL_USER   the user and password for the replication user

                        requirement, in the form: <user>[:<password>] or

                        <login-path>. E.g. rpl:passwd

  -p, --pedantic        fail if storage engines differ among master and slave.

  --test-db=TEST_DB     database name to use in testing replication setup

                        (optional)如果没有给出这个选项,不进行任何测试,只进行错误检查。

  --master-log-file=MASTER_LOG_FILE

                        use this master log file to initiate the slave.

  --master-log-pos=MASTER_LOG_POS

                        use this position in the master log file to initiate

                        the slave.与--master-log-file选项同时使用有效。

  -b, --start-from-beginning

                        start replication from the first event recorded in the

                        binary logging of the master. Not valid with --master-

                        log-file or --master-log-pos. 与--master-log-file 和

                        --master-log-pos 同时使用才有效。

  --ssl-ca=SSL_CA       The path to a file that contains a list of trusted SSL

                        CAs.

  --ssl-cert=SSL_CERT   The name of the SSL certificate file to use for

                        establishing a secure connection.

  --ssl-key=SSL_KEY     The name of the SSL key file to use for establishing a

                        secure connection.

  -v, --verbose         control how much information is displayed. e.g., -v =

                        verbose, -vv = more verbose, -vvv = debug

  -q, --quiet           turn off all messages for quiet execution.

注意事项

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

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

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

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

实例

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

1

2

3

4

5

6

7

shell> mysqlreplicate --master=root@localhost:3306 \

          --slave=root@localhost:3307 --rpl-user=rpl:rpl

# master on localhost: ... connected.

# slave on localhost: ... connected.

# Checking for binary logging on master...

# Setting up replication...

# ...done.

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

shell> mysqlreplicate --master=root@localhost:3306 \

          --slave=root@localhost:3307 --rpl-user=rpl:rpl -vv --pedantic

# master on localhost: ... connected.

# slave on localhost: ... connected.

# master id = 2

#  slave id = 99

# Checking InnoDB statistics for type and version conflicts.

# Checking storage engines...

# Checking for binary logging on master...

# Setting up replication...

# Flushing tables on master with read lock...

# Connecting slave to master...

# CHANGE MASTER TO MASTER_HOST = [...omitted...]

# Starting slave...

# status: Waiting for master to send event

# error: 0:

# Unlocking tables on master...

# ...done.

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

1

2

3

4

5

6

7

shell> mysqlreplicate --master=root@localhost:3306 \

          --slave=root@localhost:3307 --rpl-user=rpl:rpl

# master on localhost: ... connected.

# slave on localhost: ... connected.

# Checking for binary logging on master...

# Setting up replication...

# ...done.

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

1

2

3

4

5

6

7

8

shell> mysqlreplicate --master=root@localhost:3306 \

     --slave=root@localhost:3307 --rpl-user=rpl:rpl \

     --start-from-beginning

# master on localhost: ... connected.

# slave on localhost: ... connected.

# Checking for binary logging on master...

# Setting up replication...

# ...done.

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

1

2

3

4

5

6

7

8

shell> mysqlreplicate --master=root@localhost:3306 \

          --slave=root@localhost:3307 --rpl-user=rpl:rpl \

          --master-log-file=my_log.000003

# master on localhost: ... connected.

# slave on localhost: ... connected.

# Checking for binary logging on master...

# Setting up replication...

# ...done.

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

1

2

3

4

5

6

7

8

shell> mysqlreplicate --master=root@localhost:3306 \

          --slave=root@localhost:3307 --rpl-user=rpl:rpl \

          --master-log-file=my_log.000001 --master-log-pos=96

# master on localhost: ... connected.

# slave on localhost: ... connected.

# Checking for binary logging on master...

# Setting up replication...

# ...done.

建议

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

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

权限

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

在从上需要有SUPER 权限。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/535327.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL管理工具MySQL Utilities — 如何连接MySQL服务器

连接参数 连接到一个服务器&#xff0c;必须指定连接参数&#xff0c;如用户名&#xff0c;主机名称&#xff0c;密码&#xff0c;端口号&#xff0c;socket。MySQL Utilities提供了三种提供这些参数的方法&#xff0c;这些方法都需要通过命令行指定。 使用.mylogin.cnf文件&…

MHA高可用

manager 组件 masterha_manger # 启动MHA masterha_check_ssh # 检查MHA的SSH配置状况 masterha_check_repl # 检查MySQL复制状况&#xff0c;配置信息 masterha_master_monitor # 检测master是否宕机 masterha_check_status # 检测当…

MySQL Replication需要注意的问题

主库意外宕机 如果没有设置主库的sync_binlog选项&#xff0c;就可能在奔溃前没有将最后的几个二进制日志事件刷新到磁盘中。备库I/O线程因此也可一直处于读不到尚未写入磁盘的事件的状态中。当主库从新启动时&#xff0c;备库将重连到主库并再次尝试去读该事件&#xff0c;但…

update和delete操作忘加where条件导致全表更新的处理方法

在数据库日常维护中&#xff0c;开发人员是最让人头痛的&#xff0c;很多时候都会由于SQL语句写的有问题导致服务器出问题&#xff0c;导致资源耗尽。最危险的操作就是在做DML操作的时候忘加where条件&#xff0c;导致全表更新&#xff0c;这是作为运维或者DBA的我们改如何处理…

Innodb结构

从MySQL5.5版本开始默认使用InnoDB作为引擎&#xff0c;它擅长处理事务&#xff0c;具有自动崩满恢复的特性&#xff0c;在日常开发中使用非常广泛&#xff0c;下面是言方的InnoDB引擎美构图&#xff0c;主要分为内存结构和磁盘结构两大部分。 内存结构主要包括Buffer Pool、C…

ES备份工具elasticdump

安装 下载node下载 | Node.js 中文网 tar xvf node-v16.5.0-linux-x64.tar.xz ln -s /app/temp/node-v16.5.0-linux-x64/bin/node /usr/bin/node ln -s /app/temp/node-v16.5.0-linux-x64/bin/npm /usr/bin/npm npm install elasticdump -g npm config get cache npm in…

innodb_flush_method理解【转】

innodb_flush_method这个参数控制着innodb数据文件及redo log的打开、刷写模式&#xff0c;对于这个参数&#xff0c;文档上是这样描述的&#xff1a; 有三个值&#xff1a;fdatasync(默认)&#xff0c;O_DSYNC&#xff0c;O_DIRECT 默认是fdatasync&#xff0c;调用fsync()去…

linux下的/dev/shm/

首先可以看出来/dev/shm是一个设备文件, 可以把/dev/shm看作是系统内存的入口, 可以把它看做是一块物理存储设备&#xff0c;一个tmp filesystem, 你可以通过这个设备向内存中读写文件, 以加快某些I/O高的操作&#xff0c;比如对一个大型文件频繁的open, write, read&#xff0…

2021-07-30

1.服务器级别的锁等待 可以通过show processlist看到等待锁的线程id&#xff0c;但是无法知道究竟哪个线程持有锁 可以通过mysqladmin debug 相关等待锁的线程以及谁持有锁可以在错误日志中找到 2.存储引擎层的锁等待则比较麻烦&#xff0c;以下是innodb存储引擎中锁等待以及…

getopt设计shell脚本选项

写shell脚本的时候&#xff0c;通过while、case、shift来设计脚本的命令行选项是一件比较麻烦的事&#xff0c;因为Unix命令行的选项和参数自由度很高&#xff0c;支持短选项和长选项&#xff0c;参数可能是可选的&#xff0c;选项顺序可能是无所谓的&#xff0c;等等。 bash下…

percona-toolkit---pt-heartbeat

对于MySQL数据库主从复制延迟的监控&#xff0c;可以借助percona的有力武器pt-heartbeat来实现。 pt-heartbeat的工作原理通过使用时间戳方式在主库上更新特定表&#xff0c;然后在从库上读取被更新的时间戳然后与本地系统时间对比来得出其延迟。具体流程&#xff1a; 1&…

定时删除脚本

#!/bin/sh backup_dir/data/xtrabackup DATEdate %Y-%m-%d #DATE_NOWdate %Y-%m-%d.%H%M DATE_NOWdate %Y-%m-%d PATH/usr/local/mysql/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin export PATHbinog保留7天 binlog/data/binlogserver binlog_Rtime7#备…

percona-toolkit--pt-table-checksum

pt-table-checksum 是 Percona-Toolkit的组件之一&#xff0c;用于检测MySQL主、从库的数据是否一致。其原理是在主库执行基于statement的sql语句来生成主库数据块的checksum&#xff0c;把相同的sql语句传递到从库执行&#xff0c;并在从库上计算相同数据块的checksum&#xf…

Docker容器间网络通信

自从Docker容器出现以来&#xff0c;容器网络通信就一直是被关注的焦点&#xff0c;也是生产环境的迫切需求。容器网络通信又分为两大方面&#xff1a;单主机容器上的相互通信&#xff0c;和跨主机的容器相互通信。 一、Docker单主机容器通信 基于对net namespace的控制&#…

Docker容器的重启策略

1. Docker容器的重启策略 Docker容器的重启策略是面向生产环境的一个启动策略&#xff0c;在开发过程中可以忽略该策略。 Docker容器的重启都是由Docker守护进程完成的&#xff0c;因此与守护进程息息相关。 Docker容器的重启策略如下&#xff1a; no&#xff0c;默认策略&…

innobackupex实现导出和导入单张表

默认情况下&#xff0c;InnoDB表不能通过直接复制表文件的方式在mysql服务器之间进行移植&#xff0c;即便使用了innodb_file_per_table选项。而使用Xtrabackup工具可以实现此种功能&#xff0c;不过只能"导出"具有.ibd文件的表&#xff0c;也就是说导出表的mysql服务…

xtrabackup工具

(1).备份过程 和innobackupex备份过程不同的是&#xff0c;xtrabackup的备份路径是由"--target-dir"选项严格指定的&#xff0c;如果指定的目录不存在&#xff0c;它备份的时候不会在target-dir目录中再创建时间戳子目录。 [rootxuexi data]# xtrabackup --backup …

mysql数据库参数

注意&#xff1a;在配置binlog相关变量的时候&#xff0c;相关变量名总是搞混&#xff0c;因为有的是binlog&#xff0c;有的是log_bin&#xff0c;当他们分开的时候&#xff0c;log在前&#xff0c;当它们一起的时候&#xff0c;bin在前。在配置文件中也同样如此。 log_bin …

oracle命令行安装

cd /home/oracle/databases/runInstaller -silent -force -showprogress -responseFile /home/oracle/database/db_install.rsp -ignoreSysPrereqs -ignorePrereqdbca -silent -responseFile pwd/dbca.rspnetca -silent -responseFile /home/oracle/databases/netca.rsp

定期删除数据脚本

#!/bin/sh backup_dir/data/xtrabackup DATEdate %Y-%m-%d #DATE_NOWdate %Y-%m-%d.%H%M DATE_NOWdate %Y-%m-%d PATH/usr/local/mysql/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin export PATH#binog保留7天 binlog/data/binlogserver binlog_Rtime7#备…