pos機(jī)刷機(jī)模式,傳統(tǒng)模式轉(zhuǎn)GTID模式

 新聞資訊2  |   2023-05-25 12:01  |  投稿人:pos機(jī)之家

網(wǎng)上有很多關(guān)于pos機(jī)刷機(jī)模式,傳統(tǒng)模式轉(zhuǎn)GTID模式的知識(shí),也有很多人為大家解答關(guān)于pos機(jī)刷機(jī)模式的問題,今天pos機(jī)之家(m.shineka.com)為大家整理了關(guān)于這方面的知識(shí),讓我們一起來看下吧!

本文目錄一覽:

1、pos機(jī)刷機(jī)模式

pos機(jī)刷機(jī)模式

關(guān)鍵字:mysql、復(fù)制、GTID

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

備注:本文包含mysql主從復(fù)制從傳統(tǒng)模式切換到GTID模式的操作步驟。

什么是Gitd

GTID (Global Transaction ID) 是對(duì)于一個(gè)已提交事務(wù)的編號(hào),并且是一個(gè)全局唯一的編號(hào)。

Gtid的作用:

Gtid采用了新的復(fù)制協(xié)議,舊協(xié)議是,首先從服務(wù)器上在一個(gè)特定的偏移量位置連接到主服務(wù)器上一個(gè)給定的二進(jìn)制日志文件,然后主服務(wù)器再從給定的連接點(diǎn)開始發(fā)送所有的事件。 新協(xié)議有所不同,支持以全局統(tǒng)一事務(wù)ID (GTID)為基礎(chǔ)的復(fù)制。當(dāng)在主庫上提交事務(wù)或者被從庫應(yīng)用時(shí),可以定位和追蹤每一個(gè)事務(wù)。GTID復(fù)制是全部以事務(wù)為基礎(chǔ),使得檢查主從一致性變得非常簡單。如果所有主庫上提交的事務(wù)也同樣提交到從庫上,一致性就得到了保證。

工作原理:

①當(dāng)一個(gè)事務(wù)在主庫端執(zhí)行并提交時(shí),產(chǎn)生GTID,一同記錄到binlog日志中。 ②binlog傳輸?shù)絪lave,并存儲(chǔ)到slave的relaylog后,讀取這個(gè)GTID的這個(gè)值設(shè)置gtid_next變量,即告訴Slave,下一個(gè)要執(zhí)行的GTID值。 ③sql線程從relay log中獲取GTID,然后對(duì)比slave端的binlog是否有該GTID。 ④如果有記錄,說明該GTID的事務(wù)已經(jīng)執(zhí)行,slave會(huì)忽略。 ⑤如果沒有記錄,slave就會(huì)執(zhí)行該GTID事務(wù),并記錄該GTID到自身的binlog, 在讀取執(zhí)行事務(wù)前會(huì)先檢查其他session持有該GTID,確保不被重復(fù)執(zhí)行。 ⑥在解析過程中會(huì)判斷是否有主鍵,如果沒有就用二級(jí)索引,如果沒有就用全部掃描。

模式切換,操作步驟:

(1)、主庫,修改業(yè)務(wù)賬號(hào)密碼,禁止寫數(shù)據(jù)到主庫

[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)、所有服務(wù)器

mysql> set global ENFORCE_GTID_CONSISTENCY=WARN;         #使得所有事務(wù)都允許GTID違反一致性,檢查錯(cuò)誤日志確保無任何警告。mysql> set global ENFORCE_GTID_CONSISTENCY=ON;             #使得所有事務(wù)都不能違反GTID一致性。mysql> set global gtid_mode=off_PERMISSIVE;                         #表明新的事務(wù)是匿名的,同時(shí)允許復(fù)制的事務(wù)是匿名的或GTID。mysql> set global gtid_mode=ON_PERMISSIVE;                         #表明新的事務(wù)是GTID,同時(shí)允許復(fù)制的事務(wù)是匿名的或GTID。

(3)、從庫

mysql> show global status like 'ONGOING_ANONYMOUS_TRANSACTION_COUNT';

備注:在每個(gè)從庫上等待ONGOING_ANONYMOUS_TRANSACTION_COUNT值為0。狀態(tài)為0表示無事務(wù)需要處理

(4)、所有服務(wù)器

mysql> set global gtid_mode=ON;                                           #開啟GTID

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

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

參數(shù)說明:

gtid-mode = on #啟用gitd功能enforce-gtid-consistency = 1 #開啟強(qiáng)制GTID一致性master-info-repository = TABLE #記錄IO線程讀取已經(jīng)讀取到的master binlog位置,用于slave宕機(jī)后IO線程根據(jù)文件中的POS點(diǎn)重新拉取binlog日志relay-log-info-repository = TABLE #記錄SQL線程讀取Master binlog的位置,用于Slave 宕機(jī)后根據(jù)文件中記錄的pos點(diǎn)恢復(fù)Sql線程relay_log_recovery = on #從庫會(huì)自動(dòng)放棄所有未執(zhí)行的relay log,重新生成一個(gè)relay log,這樣在從庫中事務(wù)不會(huì)丟失sync-master-info = 1 #啟用確保無信息丟失;任何一個(gè)事務(wù)提交后, 將二進(jìn)制日志的文件名及事件位置記錄到文件中

(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密碼,根據(jù)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模式

其他:主庫查看狀態(tài)

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; #查詢第一個(gè)(最早)的binlog日志mysql> show binlog events in 'master-bin.000088'; #指定查詢 master-bin.000088 這個(gè)文件:mysql> show master logs; #查看master有哪些bin文件

注:本文章只用于技術(shù)記錄,不喜勿噴!感謝!

轉(zhuǎn)載請(qǐng)標(biāo)明出處!

以上就是關(guān)于pos機(jī)刷機(jī)模式,傳統(tǒng)模式轉(zhuǎn)GTID模式的知識(shí),后面我們會(huì)繼續(xù)為大家整理關(guān)于pos機(jī)刷機(jī)模式的知識(shí),希望能夠幫助到大家!

轉(zhuǎn)發(fā)請(qǐng)帶上網(wǎng)址:http://m.shineka.com/newsone/55321.html

你可能會(huì)喜歡:

版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請(qǐng)發(fā)送郵件至 babsan@163.com 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。