pos机刷机模式,传统模式转GTID模式

 新闻资讯2  |   2023-05-25 12:01  |  投稿人:pos机之家

网上有很多关于pos机刷机模式,传统模式转GTID模式的知识,也有很多人为大家解答关于pos机刷机模式的问题,今天pos机之家(www.poszjia.com)为大家整理了关于这方面的知识,让我们一起来看下吧!

本文目录一览:

1、pos机刷机模式

pos机刷机模式

关键字:mysql、复制、GTID

参考地址:https://www.sundayle.com/mysql-gtid-relication/

备注:本文包含mysql主从复制从传统模式切换到GTID模式的操作步骤。

什么是Gitd

GTID (Global Transaction ID) 是对于一个已提交事务的编号,并且是一个全局唯一的编号。

Gtid的作用:

Gtid采用了新的复制协议,旧协议是,首先从服务器上在一个特定的偏移量位置连接到主服务器上一个给定的二进制日志文件,然后主服务器再从给定的连接点开始发送所有的事件。 新协议有所不同,支持以全局统一事务ID (GTID)为基础的复制。当在主库上提交事务或者被从库应用时,可以定位和追踪每一个事务。GTID复制是全部以事务为基础,使得检查主从一致性变得非常简单。如果所有主库上提交的事务也同样提交到从库上,一致性就得到了保证。

工作原理:

①当一个事务在主库端执行并提交时,产生GTID,一同记录到binlog日志中。 ②binlog传输到slave,并存储到slave的relaylog后,读取这个GTID的这个值设置gtid_next变量,即告诉Slave,下一个要执行的GTID值。 ③sql线程从relay log中获取GTID,然后对比slave端的binlog是否有该GTID。 ④如果有记录,说明该GTID的事务已经执行,slave会忽略。 ⑤如果没有记录,slave就会执行该GTID事务,并记录该GTID到自身的binlog, 在读取执行事务前会先检查其他session持有该GTID,确保不被重复执行。 ⑥在解析过程中会判断是否有主键,如果没有就用二级索引,如果没有就用全部扫描。

模式切换,操作步骤:

(1)、主库,修改业务账号密码,禁止写数据到主库

[root@mayi ~]# mysql -u root -pMayi123@ -S /dev/shm/mysql.sock mysql> update mysql.user set authentication_string=password('Mayi123@') where user='mayi';mysql> flush privileges;

(2)、所有服务器

mysql> set global ENFORCE_GTID_CONSISTENCY=WARN;         #使得所有事务都允许GTID违反一致性,检查错误日志确保无任何警告。mysql> set global ENFORCE_GTID_CONSISTENCY=ON;             #使得所有事务都不能违反GTID一致性。mysql> set global gtid_mode=off_PERMISSIVE;                         #表明新的事务是匿名的,同时允许复制的事务是匿名的或GTID。mysql> set global gtid_mode=ON_PERMISSIVE;                         #表明新的事务是GTID,同时允许复制的事务是匿名的或GTID。

(3)、从库

mysql> show global status like 'ONGOING_ANONYMOUS_TRANSACTION_COUNT';

备注:在每个从库上等待ONGOING_ANONYMOUS_TRANSACTION_COUNT值为0。状态为0表示无事务需要处理

(4)、所有服务器

mysql> set global gtid_mode=ON;                                           #开启GTID

(5)、所有服务器的my.cnf,增加配置

#GTIDgtid-mode = onenforce_gtid_consistency = 1master-info-repository = TABLErelay-log-info-repository = TABLErelay_log_recovery = onsync-master-info = 1

参数说明:

gtid-mode = on #启用gitd功能enforce-gtid-consistency = 1 #开启强制GTID一致性master-info-repository = TABLE #记录IO线程读取已经读取到的master binlog位置,用于slave宕机后IO线程根据文件中的POS点重新拉取binlog日志relay-log-info-repository = TABLE #记录SQL线程读取Master binlog的位置,用于Slave 宕机后根据文件中记录的pos点恢复Sql线程relay_log_recovery = on #从库会自动放弃所有未执行的relay log,重新生成一个relay log,这样在从库中事务不会丢失sync-master-info = 1 #启用确保无信息丢失;任何一个事务提交后, 将二进制日志的文件名及事件位置记录到文件中

(6)、从库:

mysql> stop slave;mysql> change master to MASTER_AUTO_POSITION=1;           #开启GTID事物mysql> start slave;mysql> show slave status\\G;

(7) 重启从库

[root@mayi ~]# systemctl restart mysqld

(8)、主库,还原alc607wjyd密码,根据apollo还原

[root@mayi ~]# mysql -u root -pMayi123@ -S /dev/shm/mysql.sock mysql> update mysql.user set authentication_string=password("dMrHN9N*6Qk") where user='mayi';mysql> flush privileges;

(9)、检查主从同步

mysql> show slave status\\G;   Retrieved_Gtid_Set: dd2feb85-e8ec-11ea-9827-4e66b74e2168:1-308   Executed_Gtid_Set: dd2feb85-e8ec-11ea-9827-4e66b74e2168:1-308

#备注,如果显示以上信息表示已切换为gtid模式

其他:主库查看状态

mysql> show master status;+-------------------------+----------+--------------+------------------+---------------------------------------------+| File                   | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set                           |+-------------------------+----------+--------------+------------------+---------------------------------------------+| mysql-master-bin.000090 | 11912550 |             |                 | 3b8e89ca-fe36-11ea-bbba-66ef29902e35:1-2049 |+-------------------------+----------+--------------+------------------+---------------------------------------------+1 row in set (0.00 sec)mysql> show slave hosts;+-----------+------+------+-----------+--------------------------------------+| Server_id | Host | Port | Master_id | Slave_UUID                           |+-----------+------+------+-----------+--------------------------------------+|         3 |     | 4980 |         1 | cc39d9b2-fe3d-11ea-8d2d-c205e58d09b7 ||         2 |     | 4980 |         1 | 046312b1-fe3a-11ea-a1f0-8a3384c1b93a |+-----------+------+------+-----------+--------------------------------------+2 rows in set (0.00 sec)mysql> show global variables like '%gtid%';+----------------------------------+---------------------------------------------+| Variable_name                   | Value                                       |+----------------------------------+---------------------------------------------+| binlog_gtid_simple_recovery     | ON                                         || enforce_gtid_consistency         | ON                                         || gtid_executed                   | 3b8e89ca-fe36-11ea-bbba-66ef29902e35:1-2057 || gtid_executed_compression_period | 1000                                       || gtid_mode                       | ON                                         || gtid_owned                       |                                             || gtid_purged                     |                                             || session_track_gtids             | OFF                                         |+----------------------------------+---------------------------------------------+8 rows in set (0.01 sec)其他常用命令

mysql> show binlog events\\G; #查询第一个(最早)的binlog日志mysql> show binlog events in 'master-bin.000088'; #指定查询 master-bin.000088 这个文件:mysql> show master logs; #查看master有哪些bin文件

注:本文章只用于技术记录,不喜勿喷!感谢!

转载请标明出处!

以上就是关于pos机刷机模式,传统模式转GTID模式的知识,后面我们会继续为大家整理关于pos机刷机模式的知识,希望能够帮助到大家!

转发请带上网址:http://www.poszjia.com/newsone/55321.html

你可能会喜欢:

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 babsan@163.com 举报,一经查实,本站将立刻删除。