mysql5.17组复制安装

来源:互联网 发布:excel取消数据验证 编辑:程序博客网 时间:2024/06/07 23:23

17.2.1在单主模式下部署组复制

17.2.1.1部署组复制实例
17.2.1.2配置组复制实例
17.2.1.3用户证书
17.2.1.4启动组复制
17.2.1.5向组中添加实例

组中的每个服务器实例可以在独立的物理机器上运行,也可以在同一台计算机上运行。本节介绍如何在一台物理机器上创建具有三个MySQL Server实例的复制组。这意味着需要三个数据目录,每个服务器实例一个,您需要独立配置每个实例。

图17.4组织架构

部署在组中的三台服务器

本教程介绍如何使用组复制插件获取和部署MySQL Server,如何在创建组之前配置每个服务器实例,以及如何使用性能模式监视来验证一切正常。

17.2.1.1部署组复制实例

第一步是部署三个MySQL服务器实例。组复制是MySQL Server 5.7.17及更高版本提供的内置MySQL插件。有关MySQL插件的更多背景信息,请参见第5.5节“MySQL服务器插件”此过程假定MySQL Server已下载并解包到名为的目录中mysql-5.7以下过程使用一台物理机,因此每个MySQL服务器实例都需要一个特定的实例数据目录。在名为的目录中创建数据目录,data并初始化每个目录 

mkdir datamysql-5.7/bin/mysqld --initialize-insecure --basedir=$PWD/mysql-5.7 --datadir=$PWD/data/s1mysql-5.7/bin/mysqld --initialize-insecure --basedir=$PWD/mysql-5.7 --datadir=$PWD/data/s2mysql-5.7/bin/mysqld --initialize-insecure --basedir=$PWD/mysql-5.7 --datadir=$PWD/data/s3

里面data/s1data/s2 data/s3是一个初始化的数据目录,包含了MySQL系统数据库和相关表等等。要了解有关初始化过程的更多信息,请参见 第2.10.1.1节“使用mysqld手动初始化数据目录”

警告

不要--initialize-insecure在生产环境中使用,仅用于简化本教程。有关安全设置的更多信息,请参见 第17.5节“组复制安全性”

17.2.1.2配置组复制实例

本节介绍要用于组复制的MySQL Server实例所需的配置设置。有关背景信息,请参见 第17.7.2节“组复制限制”

组复制服务器设置

要安装和使用组复制插件,必须正确配置MySQL Server实例。建议将配置存储在实例的配置文件中。有关详细信息请参见第4.2.6节“使用选项文件”除非另有说明,以下是组中第一个实例的配置,在此过程中称为s1以下部分显示了服务器配置示例。

[mysqld]# server configurationdatadir=<full_path_to_data>/data/s1basedir=<full_path_to_bin>/mysql-5.7/port=24801socket=<full_path_to_sock_dir>/s1.sock

这些设置将MySQL服务器配置为使用早期创建的数据目录,服务器应打开哪个端口并开始侦听传入连接。

注意

使用24801的非默认端口,因为在本教程中,三个服务器实例使用相同的主机名。在使用三台不同机器的设置中,这不是必需的。

复制框架

以下设置根据MySQL组复制要求配置复制。

server_id=1gtid_mode=ONenforce_gtid_consistency=ONmaster_info_repository=TABLErelay_log_info_repository=TABLEbinlog_checksum=NONElog_slave_updates=ONlog_bin=binlogbinlog_format=ROW

这些设置将服务器配置为使用唯一标识符号1,以启用全局事务标识符,并将复制元数据存储在系统表中而不是文件中。此外,它指示服务器打开二进制日志记录,使用基于行的格式并禁用二进制日志事件校验和。有关详细信息,请参见 第17.7.2节“组复制限制”

组复制设置

此时,my.cnf文件可确保已配置服务器,并指示在给定配置下实例化复制基础架构。以下部分配置服务器的组复制设置。

transaction_write_set_extraction=XXHASH64loose-group_replication_group_name="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"loose-group_replication_start_on_boot=offloose-group_replication_local_address= "127.0.0.1:24901"loose-group_replication_group_seeds= "127.0.0.1:24901,127.0.0.1:24902,127.0.0.1:24903"loose-group_replication_bootstrap_group= off
注意

loose-如果组复制插件在服务器启动时尚未加载,则用于上面的group_replication变量 前缀指示服务器继续启动。

  • 第1行指示服务器,每个事务必须收集写入集,并使用XXHASH64散列算法将其编码为散列。

  • 第2行告诉插件,它正在加入或创建的组名称为“aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa”。

  • 第3行指示插件在服务器启动时不会自动启动操作。

  • 第4行告诉插件使用IP地址127.0.0.1或本地主机和端口24901用于组中其他成员的传入连接。

    重要

    服务器侦听此端口上的成员到成员连接。该端口根本不能用于用户应用程序,但在运行组复制时,必须保留该组件的不同成员之间的通信。

    group_replication_local_address 所有组成员都可以访问 配置的本地地址 例如,如果每个服务器实例位于不同的机器上,则使用机器的IP和端口,例如10.0.0.1:33061。推荐的端口 group_replication_local_address 是33061,但在本教程中,我们使用在一台机器上运行的三个服务器实例,因此使用端口24901到24903。

  • 第5行告诉插件,应该联系这些主机和端口上的以下成员,以防需要加入该组。这些是种子成员,当该成员想要连接到组时使用。首先加入服务器联系人(种子)之一,然后它要求组重新配置以允许加入服务器在组中被接受。请注意,这个选项并 没有需要列出组中的所有成员,而是应该在情况下联络服务器列表这个服务器希望加入该群。

    启动组的服务器不会使用此选项,因为它是初始服务器,因此它负责引导组。第二个服务器加入询问组中唯一的成员加入,然后组扩展。第三台服务器加入可以询问这两个服务器中的任何一个加入,然后组再次扩展。后续服务器在加入时重复此过程。

    警告

    同时加入多个服务器时,请确保它们指向已经在组中的种子成员。不要使用也加入组的成员作为种子,因为它们在联系时可能还没有在组中。

    首先启动引导成员是一个好习惯,让它创建组。然后让它成为加入其他成员的种子成员。这确保了在连接其他成员时形成的组。

    不支持创建组并同时加入多个成员。这可能是有效的,但可能是操作竞赛,然后加入组的行为会出现错误或超时。

  • 第6行指示插件是否对组进行boostrap。

    重要

    此选项只能在任何时间在一个服务器实例上使用,通常是第一次引导组(或如果整个组被关闭并重新备份)。如果您多次引导组,例如,当多个服务器实例设置此选项时,它们可能会创建一个人造裂脑方案,其中存在两个具有相同名称的不同组。在第一个服务器实例上线后禁用此选项。

组中所有服务器的配置非常相似。您需要更改有关每个服务器的细节(例如server_id datadirgroup_replication_local_address)。这在本教程后面说明

17.2.1.3用户证书

组复制使用异步复制协议实现分布式恢复,将组成员同步到组之前同步。分布式恢复过程依赖于命名的复制通道group_replication_recovery,用于在组成员之间传输事务。因此,您需要设置具有正确权限的复制用户,以便组复制可以建立直接的成员到成员恢复复制通道。

启动服务器:

mysql-5.7/bin/mysqld --defaults-file=data/s1/s1.cnf

创建具有该REPLICATION-SLAVE权限的MySQL用户 应该在二进制日志中捕获此过程,以避免将更改传播到其他服务器实例。在以下示例中,显示了rpl_user具有密码 的用户 rpl_pass配置服务器时使用合适的用户名和密码。连接到服务器s1并发出以下语句:

mysql> SET SQL_LOG_BIN=0;mysql> CREATE USER rpl_user@'%' IDENTIFIED BY 'rpl_pass';mysql> GRANT REPLICATION SLAVE ON *.* TO rpl_user@'%';mysql> FLUSH PRIVILEGES;mysql> SET SQL_LOG_BIN=1;

一旦用户被配置如上所述,使用 CHANGE MASTER TO语句来配置服务器,以便group_replication_recovery在下一次需要从另一个成员恢复其状态时,使用给定的凭据进行 复制通道。发出以下内容,替换 rpl_user rpl_pass使用创建用户时使用的值。

mysql> CHANGE MASTER TO MASTER_USER='rpl_user', MASTER_PASSWORD='rpl_pass' \\      FOR CHANNEL 'group_replication_recovery';

分布式恢复是加入组的服务器采取的第一步。如果这些凭据设置不正确,服务器将无法运行恢复过程并与其他组成员同步,因此最终无法加入组。类似地,如果成员无法通过服务器正确识别其他成员, hostname则恢复过程可能会失败。建议运行MySQL的操作系统hostname使用DNS或本地设置进行正确配置hostname可以Member_hostperformance_schema.replication_group_members 列中 进行验证如果多个组成员外部化一个默认值 hostname由操作系统设置,会员无法解析正确的会员地址,无法加入该组。在这种情况下,可以使用每个服务器report_host配置独特的hostname外部化功能。

17.2.1.4启动组复制

一旦服务器s1被配置和启动,安装组复制插件。连接到服务器并发出以下命令:

INSTALL PLUGIN group_replication SONAME 'group_replication.so';
重要

mysql.session用户必须存在,你可以加载组复制。 mysql.session在MySQL版本5.7.19中被添加。如果您的数据字典是使用较早版本初始化的,则必须运行 mysql_upgrade过程。如果升级未运行,组复制无法从错误消息开始尝试使用用户访问服务器时出现错误:mysql.session@localhost。确保用户在服务器中,并且mysql_upgrade在服务器更新后运行。

要检查插件是否已成功安装,请发出 SHOW PLUGINS;并检查输出。应该显示如下:

mysql> SHOW PLUGINS;+----------------------------+----------+--------------------+----------------------+-------------+| Name                       | Status   | Type               | Library              | License     |+----------------------------+----------+--------------------+----------------------+-------------+| binlog                     | ACTIVE   | STORAGE ENGINE     | NULL                 | PROPRIETARY |(...)| group_replication          | ACTIVE   | GROUP REPLICATION  | group_replication.so | PROPRIETARY |+----------------------------+----------+--------------------+----------------------+-------------+

要启动组,请指示服务器s1引导组,然后启动组复制。此引导程序只能由单个服务器完成,即启动该组并且仅启动一次的服务器。这就是引导配置选项的值没有保存在配置文件中的原因。如果将其保存在配置文件中,则重新启动后,服务器将自动引导具有相同名称的第二组。这将导致两个具有相同名称的不同组。同样的理由适用于停止并重新启动此选项设置为的插件ON

mysql> SET GLOBAL group_replication_bootstrap_group=ON;mysql> START GROUP_REPLICATION;mysql> SET GLOBAL group_replication_bootstrap_group=OFF;

一旦START GROUP_REPLICATION 声明返回,该组已经启动。您可以检查该组是否已创建,并且其中有一个成员:

mysql> SELECT * FROM performance_schema.replication_group_members;+---------------------------+--------------------------------------+-------------+-------------+---------------+| CHANNEL_NAME              | MEMBER_ID                            | MEMBER_HOST | MEMBER_PORT | MEMBER_STATE  |+---------------------------+--------------------------------------+-------------+-------------+---------------+| group_replication_applier | ce9be252-2b71-11e6-b8f4-00212844f856 | myhost      |       24801 | ONLINE        |+---------------------------+--------------------------------------+-------------+-------------+---------------+

该表中的信息确认组中有一个具有唯一标识符的成员 ce9be252-2b71-11e6-b8f4-00212844f856,它正在ONLINE和正在myhost 侦听端口上的客户端连接 24801

为了表明服务器确实在一个组中,并且能够处理加载,创建一个表并向其添加一些内容。

mysql> CREATE DATABASE test;mysql> USE test;mysql> CREATE TABLE t1 (c1 INT PRIMARY KEY, c2 TEXT NOT NULL);mysql> INSERT INTO t1 VALUES (1, 'Luis');

检查表t1和二进制日志的内容。

mysql> SELECT * FROM t1;+----+------+| c1 | c2   |+----+------+|  1 | Luis |+----+------+mysql> SHOW BINLOG EVENTS;+---------------+-----+----------------+-----------+-------------+--------------------------------------------------------------------+| Log_name      | Pos | Event_type     | Server_id | End_log_pos | Info                                                               |+---------------+-----+----------------+-----------+-------------+--------------------------------------------------------------------+| binlog.000001 |   4 | Format_desc    |         1 |         123 | Server ver: 5.7.19-gr080-log, Binlog ver: 4                        || binlog.000001 | 123 | Previous_gtids |         1 |         150 |                                                                    || binlog.000001 | 150 | Gtid           |         1 |         211 | SET @@SESSION.GTID_NEXT= 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa:1'  || binlog.000001 | 211 | Query          |         1 |         270 | BEGIN                                                              || binlog.000001 | 270 | View_change    |         1 |         369 | view_id=14724817264259180:1                                        || binlog.000001 | 369 | Query          |         1 |         434 | COMMIT                                                             || binlog.000001 | 434 | Gtid           |         1 |         495 | SET @@SESSION.GTID_NEXT= 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa:2'  || binlog.000001 | 495 | Query          |         1 |         585 | CREATE DATABASE test                                               || binlog.000001 | 585 | Gtid           |         1 |         646 | SET @@SESSION.GTID_NEXT= 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa:3'  || binlog.000001 | 646 | Query          |         1 |         770 | use `test`; CREATE TABLE t1 (c1 INT PRIMARY KEY, c2 TEXT NOT NULL) || binlog.000001 | 770 | Gtid           |         1 |         831 | SET @@SESSION.GTID_NEXT= 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa:4'  || binlog.000001 | 831 | Query          |         1 |         899 | BEGIN                                                              || binlog.000001 | 899 | Table_map      |         1 |         942 | table_id: 108 (test.t1)                                            || binlog.000001 | 942 | Write_rows     |         1 |         984 | table_id: 108 flags: STMT_END_F                                    || binlog.000001 | 984 | Xid            |         1 |        1011 | COMMIT /* xid=38 */                                                |+---------------+-----+----------------+-----------+-------------+--------------------------------------------------------------------+

如上所述,创建了数据库和表对象,并将其对应的DDL语句写入二进制日志。此外,数据已插入表中并写入二进制日志。随着新成员尝试追赶并上线,二进制日志条目的重要性将在下一节中说明,当组增长并且分发恢复被执行时

17.2.1.5向组中添加实例

在这一点上,该组中有一个成员,服务器s1,其中有一些数据。现在是通过添加以前配置的其他两个服务器来扩展组的时候了。

17.2.1.5.1添加第二个实例

为了添加第二个实例,服务器s2首先为其创建配置文件。配置类似于服务器s1所用的配置,除了数据目录的位置,s2将要侦听的端口或其上的内容之外 server_id这些不同的行在下面的列表中突出显示。

[mysqld]# server configurationdatadir=<full_path_to_data>/data/s2basedir=<full_path_to_bin>/mysql-5.7/port=24802socket=<full_path_to_sock_dir>/s2.sock## Replication configuration parameters#server_id=2gtid_mode=ONenforce_gtid_consistency=ONmaster_info_repository=TABLErelay_log_info_repository=TABLEbinlog_checksum=NONElog_slave_updates=ONlog_bin=binlogbinlog_format=ROW## Group Replication configuration#transaction_write_set_extraction=XXHASH64loose-group_replication_group_name="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"loose-group_replication_start_on_boot=offloose-group_replication_local_address= "127.0.0.1:24902"loose-group_replication_group_seeds= "127.0.0.1:24901,127.0.0.1:24902,127.0.0.1:24903"loose-group_replication_bootstrap_group= off

与服务器s1的过程类似,配置文件就位,您启动服务器。

mysql-5.7/bin/mysqld --defaults-file=data/s2/s2.cnf

然后如下配置恢复凭据。这些命令与在组中共享用户时设置服务器s1时使用的命令相同。在s2上发出以下语句。

SET SQL_LOG_BIN=0;CREATE USER rpl_user@'%';GRANT REPLICATION SLAVE ON *.* TO rpl_user@'%' IDENTIFIED BY 'rpl_pass';SET SQL_LOG_BIN=1;CHANGE MASTER TO MASTER_USER='rpl_user', MASTER_PASSWORD='rpl_pass' \\FOR CHANNEL 'group_replication_recovery';

安装组复制插件,并启动将服务器加入组的过程。以下示例以与部署服务器s1时使用的插件相同的方式安装插件。

mysql> INSTALL PLUGIN group_replication SONAME 'group_replication.so';

将服务器s2添加到组中。

mysql> START GROUP_REPLICATION;

不像是同在S1上执行这些前面的步骤,这里有在你的差异 发出SET GLOBAL group_replication_bootstrap_group=ON;启动组复制,因为组已经创建,并通过服务器S1自举之前。此时,服务器s2只需要添加到已存在的组中。

小费

当组复制成功启动并且服务器加入组时,它会检查该 super_read_only变量。通过super_read_only 在成员的配置文件中设置为ON,您可以确保由于任何原因启动组复制失败的服务器不接受事务。如果服务器应该将该组作为读写实例加入,例如作为单主组中的主要组或作为多主组的成员,则当 super_read_only变量设置为ON时,在加入时将其设置为OFF群组。

performance_schema.replication_group_members 再次 检查 表格显示中现在有两个 ONLINE服务器。

mysql> SELECT * FROM performance_schema.replication_group_members;+---------------------------+--------------------------------------+-------------+-------------+---------------+| CHANNEL_NAME              | MEMBER_ID                            | MEMBER_HOST | MEMBER_PORT | MEMBER_STATE  |+---------------------------+--------------------------------------+-------------+-------------+---------------+| group_replication_applier | 395409e1-6dfa-11e6-970b-00212844f856 | myhost      |       24801 | ONLINE        || group_replication_applier | ac39f1e6-6dfa-11e6-a69d-00212844f856 | myhost      |       24802 | ONLINE        |+---------------------------+--------------------------------------+-------------+-------------+---------------+

由于服务器s2也被标记为ONLINE,它必须已经自动赶上了服务器s1。验证它确实与服务器s1同步如下。

mysql> SHOW DATABASES LIKE 'test';+-----------------+| Database (test) |+-----------------+| test            |+-----------------+mysql> SELECT * FROM test.t1;+----+------+| c1 | c2   |+----+------+|  1 | Luis |+----+------+mysql> SHOW BINLOG EVENTS;+---------------+------+----------------+-----------+-------------+--------------------------------------------------------------------+| Log_name      | Pos  | Event_type     | Server_id | End_log_pos | Info                                                               |+---------------+------+----------------+-----------+-------------+--------------------------------------------------------------------+| binlog.000001 |    4 | Format_desc    |         2 |         123 | Server ver: 5.7.17-log, Binlog ver: 4                              || binlog.000001 |  123 | Previous_gtids |         2 |         150 |                                                                    || binlog.000001 |  150 | Gtid           |         1 |         211 | SET @@SESSION.GTID_NEXT= 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa:1'  || binlog.000001 |  211 | Query          |         1 |         270 | BEGIN                                                              || binlog.000001 |  270 | View_change    |         1 |         369 | view_id=14724832985483517:1                                        || binlog.000001 |  369 | Query          |         1 |         434 | COMMIT                                                             || binlog.000001 |  434 | Gtid           |         1 |         495 | SET @@SESSION.GTID_NEXT= 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa:2'  || binlog.000001 |  495 | Query          |         1 |         585 | CREATE DATABASE test                                               || binlog.000001 |  585 | Gtid           |         1 |         646 | SET @@SESSION.GTID_NEXT= 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa:3'  || binlog.000001 |  646 | Query          |         1 |         770 | use `test`; CREATE TABLE t1 (c1 INT PRIMARY KEY, c2 TEXT NOT NULL) || binlog.000001 |  770 | Gtid           |         1 |         831 | SET @@SESSION.GTID_NEXT= 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa:4'  || binlog.000001 |  831 | Query          |         1 |         890 | BEGIN                                                              || binlog.000001 |  890 | Table_map      |         1 |         933 | table_id: 108 (test.t1)                                            || binlog.000001 |  933 | Write_rows     |         1 |         975 | table_id: 108 flags: STMT_END_F                                    || binlog.000001 |  975 | Xid            |         1 |        1002 | COMMIT /* xid=30 */                                                || binlog.000001 | 1002 | Gtid           |         1 |        1063 | SET @@SESSION.GTID_NEXT= 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa:5'  || binlog.000001 | 1063 | Query          |         1 |        1122 | BEGIN                                                              || binlog.000001 | 1122 | View_change    |         1 |        1261 | view_id=14724832985483517:2                                        || binlog.000001 | 1261 | Query          |         1 |        1326 | COMMIT                                                             |+---------------+------+----------------+-----------+-------------+--------------------------------------------------------------------+

如上所述,第二台服务器已经被添加到该组,并且自动地从服务器s1复制了更改。根据分布式恢复过程,这意味着服务器s2在加入组之后立即被联机,自动连接到服务器s1,并从中删除丢失的数据。换句话说,它从s1的二进制日志中复制了它丢失的事务,直到它加入组的时间点。

17.2.1.5.2添加其他实例

向组添加其他实例基本上与添加第二个服务器的步骤相同,只是必须更改配置,因为它必须用于服务器s2。总结所需的命令:

1.创建配置文件

[mysqld]# server configurationdatadir=<full_path_to_data>/data/s3basedir=<full_path_to_bin>/mysql-5.7/port=24803socket=<full_path_to_sock_dir>/s3.sock## Replication configuration parameters#server_id=3gtid_mode=ONenforce_gtid_consistency=ONmaster_info_repository=TABLErelay_log_info_repository=TABLEbinlog_checksum=NONElog_slave_updates=ONlog_bin=binlogbinlog_format=ROW## Group Replication configuration#transaction_write_set_extraction=XXHASH64loose-group_replication_group_name="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"loose-group_replication_start_on_boot=offloose-group_replication_local_address= "127.0.0.1:24903"loose-group_replication_group_seeds= "127.0.0.1:24901,127.0.0.1:24902,127.0.0.1:24903"loose-group_replication_bootstrap_group= off

2.启动服务器

mysql-5.7/bin/mysqld --defaults-file=data/s3/s3.cnf

3.配置group_replication_recovery通道的恢复凭据。

SET SQL_LOG_BIN=0;CREATE USER rpl_user@'%';GRANT REPLICATION SLAVE ON *.* TO rpl_user@'%' IDENTIFIED BY 'rpl_pass';FLUSH PRIVILEGES;SET SQL_LOG_BIN=1;CHANGE MASTER TO MASTER_USER='rpl_user', MASTER_PASSWORD='rpl_pass'  \\FOR CHANNEL 'group_replication_recovery';

4.安装组复制插件并启动它。

INSTALL PLUGIN group_replication SONAME 'group_replication.so';START GROUP_REPLICATION;

此时,服务器s3已启动并运行,已加入组并赶上组中的其他服务器。performance_schema.replication_group_members 再次咨询 表,证实了这一点。

mysql> SELECT * FROM performance_schema.replication_group_members;+---------------------------+--------------------------------------+-------------+-------------+---------------+| CHANNEL_NAME              | MEMBER_ID                            | MEMBER_HOST | MEMBER_PORT | MEMBER_STATE  |+---------------------------+--------------------------------------+-------------+-------------+---------------+| group_replication_applier | 395409e1-6dfa-11e6-970b-00212844f856 | myhost      |       24801 | ONLINE        || group_replication_applier | 7eb217ff-6df3-11e6-966c-00212844f856 | myhost      |       24803 | ONLINE        || group_replication_applier | ac39f1e6-6dfa-11e6-a69d-00212844f856 | myhost      |       24802 | ONLINE        |+---------------------------+--------------------------------------+-------------+-------------+---------------+

在服务器s2或服务器s1上发出相同的查询产生相同的结果。此外,您可以验证服务器s3是否也被捕获:

mysql> SHOW DATABASES LIKE 'test';+-----------------+| Database (test) |+-----------------+| test |+-----------------+mysql> SELECT * FROM test.t1;+----+------+| c1 | c2 |+----+------+| 1 | Luis |+----+------+mysql> SHOW BINLOG EVENTS;+---------------+------+----------------+-----------+-------------+--------------------------------------------------------------------+| Log_name | Pos | Event_type | Server_id | End_log_pos | Info |+---------------+------+----------------+-----------+-------------+--------------------------------------------------------------------+| binlog.000001 | 4 | Format_desc | 3 | 123 | Server ver: 5.7.17-log, Binlog ver: 4 || binlog.000001 | 123 | Previous_gtids | 3 | 150 | || binlog.000001 | 150 | Gtid | 1 | 211 | SET @@SESSION.GTID_NEXT= 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa:1' || binlog.000001 | 211 | Query | 1 | 270 | BEGIN || binlog.000001 | 270 | View_change | 1 | 369 | view_id=14724832985483517:1 || binlog.000001 | 369 | Query | 1 | 434 | COMMIT || binlog.000001 | 434 | Gtid | 1 | 495 | SET @@SESSION.GTID_NEXT= 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa:2' || binlog.000001 | 495 | Query | 1 | 585 | CREATE DATABASE test || binlog.000001 | 585 | Gtid | 1 | 646 | SET @@SESSION.GTID_NEXT= 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa:3' || binlog.000001 | 646 | Query | 1 | 770 | use `test`; CREATE TABLE t1 (c1 INT PRIMARY KEY, c2 TEXT NOT NULL) || binlog.000001 | 770 | Gtid | 1 | 831 | SET @@SESSION.GTID_NEXT= 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa:4' || binlog.000001 | 831 | Query | 1 | 890 | BEGIN || binlog.000001 | 890 | Table_map | 1 | 933 | table_id: 108 (test.t1) || binlog.000001 | 933 | Write_rows | 1 | 975 | table_id: 108 flags: STMT_END_F || binlog.000001 | 975 | Xid | 1 | 1002 | COMMIT /* xid=29 */ || binlog.000001 | 1002 | Gtid | 1 | 1063 | SET @@SESSION.GTID_NEXT= 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa:5' || binlog.000001 | 1063 | Query | 1 | 1122 | BEGIN || binlog.000001 | 1122 | View_change | 1 | 1261 | view_id=14724832985483517:2 || binlog.000001 | 1261 | Query | 1 | 1326 | COMMIT || binlog.000001 | 1326 | Gtid | 1 | 1387 | SET @@SESSION.GTID_NEXT= 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa:6' || binlog.000001 | 1387 | Query | 1 | 1446 | BEGIN || binlog.000001 | 1446 | View_change | 1 | 1585 | view_id=14724832985483517:3 || binlog.000001 | 1585 | Query | 1 | 1650 | COMMIT |+---------------+------+---



原创粉丝点击