MySQL 5.7如何使用GTID方式搭建复制环境

技术MySQL 5.7如何使用GTID方式搭建复制环境这篇文章主要为大家展示了“MySQL 5.7如何使用GTID方式搭建复制环境”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下

本文主要向您展示MySQL 5.7如何使用GTID构建复制环境。内容简单易懂,条理清晰,希望能帮你解开疑惑。让边肖带领大家学习《MySQL 5.7如何使用GTID构建复制环境》一文。

当使用GTIDS(全局事务标识符)时,每个事务在提交时都将被标记一个唯一的事务号,该事务号将在备份数据库中使用。因此,在构建复制环境时,不需要传统的设置日志文件和日志位置的方式,这大大简化了设置复制环境的过程。可以使用语句级和行级复制格式,建议使用行级复制格式。

GTID的格式如下。

GTID=source _ id : transaction _ id

Source_id表示源服务器,transaction_id表示事务的序列号。

限制:

因为基于GTID的复制是基于事务的,所以某些功能在复制中会受到限制。

不支持非事务性表,如MyISAM表。

创建表格.不支持SELECT语句。创建表格.SELECT对于语句级的复制格式是不安全的。当使用行级复制格式时,该语句在日志中被记录为两个独立的事件,一个是表的创建,另一个是表的插入。当在事务中执行此语句时,在某些情况下,这两个事件将被分配相同的事务号,因此可以从库中跳过执行插入操作的第二个事务。

临时桌子。在事务中,GTID复制不支持创建临时表和删除临时表语句。

GTID复制不支持sql_slave_skip_counter参数。如果需要跳过事务,请在主库中使用gtid_executed参数。

主库gtid_purged参数包含主库二进制日志中清除的所有事务。搭建流程:

编辑主库的配置文件并重新启动主库。

#日志

服务器id=27100

对数箱

# log-bin-index=/log/production-bin . index

binlog_format=row

日志_从属_更新

gtid-模式=开

强制一致性=开

编辑从库的配置文件并重新启动从库。

#日志

服务器id=35100

对数箱

# log-bin-index=/log/production-bin . index

binlog_format=row

日志_从属_更新

gtid-模式=开

强制一致性=开

导出主库中的备份,并将其传输到从库中。

[root @ localhost 20160609]# MySQL dump-uroot-p ' system # 2013 '-S/var/lib/MySQL/MySQL . sock-A-R-单事务-默认-字符集=utf8 20160609.sql

应用库中的备份。

[root @ localhost 20160609]# MySQL-uroot-p ' system # 2013 ' 20160609 . SQL

为主数据库上的复制创建一个特殊帐户。

mysql在*上授予复制从属权限。*至“repl ”@ ' 192 . 168 . 78。“%”由“Mysql#2015”标识;

查询正常,0行受影响,1条警告(0.17秒)

从库中执行变更主命令。

mysql将主服务器更改为

- master_host='192.168.78.141 ',

- master_port=3306,

- master_user='repl ',

- master_password='Mysql#2015 ',

-master _ auto _ position=1;

查询正常,0行受影响,2个警告(0.31秒)

-启动IO和SQL线程。

关系型数据库

start slave;
Query OK, 0 rows affected (0.04 sec)

mysql> show slave status\G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.78.141
                  Master_User: repl
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: production-bin.000002
          Read_Master_Log_Pos: 448
               Relay_Log_File: localhost-relay-bin.000002
                Relay_Log_Pos: 671
        Relay_Master_Log_File: production-bin.000002
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: 
          Replicate_Ignore_DB: 
           Replicate_Do_Table: 
       Replicate_Ignore_Table: 
      Replicate_Wild_Do_Table: 
  Replicate_Wild_Ignore_Table: 
                   Last_Errno: 0
                   Last_Error: 
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 448
              Relay_Log_Space: 882
              Until_Condition: None
               Until_Log_File: 
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File: 
           Master_SSL_CA_Path: 
              Master_SSL_Cert: 
            Master_SSL_Cipher: 
               Master_SSL_Key: 
        Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error: 
               Last_SQL_Errno: 0
               Last_SQL_Error: 
  Replicate_Ignore_Server_Ids: 
             Master_Server_Id: 27100
                  Master_UUID: cf291e84-2c89-11e6-b6f0-000c29631605
             Master_Info_File: /var/lib/mysql/master.info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
      Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates
           Master_Retry_Count: 86400
                  Master_Bind: 
      Last_IO_Error_Timestamp: 
     Last_SQL_Error_Timestamp: 
               Master_SSL_Crl: 
           Master_SSL_Crlpath: 
           Retrieved_Gtid_Set: cf291e84-2c89-11e6-b6f0-000c29631605:1
            Executed_Gtid_Set: cf291e84-2c89-11e6-b6f0-000c29631605:1
                Auto_Position: 1
         Replicate_Rewrite_DB: 
                 Channel_Name: 
           Master_TLS_Version: 
1 row in set (0.00 sec)

mysql> show processlist;
+----+-------------+-----------+------+---------+------+--------------------------------------------------------+------------------+
| Id | User        | Host      | db   | Command | Time | State                                                  | Info             |
+----+-------------+-----------+------+---------+------+--------------------------------------------------------+------------------+
|  4 | root        | localhost | fire | Query   |    0 | starting                                               | show processlist |
|  6 | system user |           | NULL | Connect |  480 | Waiting for master to send event                       | NULL             |
|  7 | system user |           | NULL | Connect |  153 | Slave has read all relay log; waiting for more updates | NULL             |
+----+-------------+-----------+------+---------+------+--------------------------------------------------------+------------------+
3 rows in set (0.02 sec)

以上是“MySQL 5.7如何使用GTID方式搭建复制环境”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/66419.html

(0)

相关推荐

  • Git版本思路是什么

    技术Git版本思路是什么这篇文章给大家介绍Git版本思路是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。简单的说,git的管理策略目前有两大流派。平时和同事聊天或和别的公司的朋友交流时也能够感觉

    攻略 2021年10月20日
  • win7系统安装SQLServer2000的步骤是什么呢

    技术win7系统安装SQLServer2000的步骤是什么呢本篇文章给大家分享的是有关win7系统安装SQLServer2000的步骤是什么呢,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,

    攻略 2021年12月1日
  • javagetclass与classforname(javagetclass获取属性值)

    技术Java中的getClass()及getName()方法怎么使用本篇内容介绍了“Java中的getClass()及getName()方法怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就

    攻略 2021年12月22日
  • js限制只能输入数字(input限制输入数字大小)

    技术html5如何限制输入数字的多少这篇文章主要介绍html5如何限制输入数字的多少,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! html中,可用输入标签的max和m

    攻略 2021年12月19日
  • 如何使用源码解析AbstractOwnableSynchronizer

    技术如何使用源码解析AbstractOwnableSynchronizer如何使用源码解析AbstractOwnableSynchronizer ,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解

    攻略 2021年10月28日
  • imp导入乱码怎么办

    技术imp导入乱码怎么办小编给大家分享一下imp导入乱码怎么办,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! 在i

    攻略 2021年11月11日