本文主要向您展示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