mysql5.7跳过gitd_MySQL5.7在线开启/关闭GTID
MySQL5.7在線開啟/關(guān)閉GTID
環(huán)境介紹
Part1:寫在最前
截止本文撰寫當(dāng)日,MySQL5.7.16是官網(wǎng)的最新穩(wěn)定版,本文將用MySQL5.7.16來進行演示。從MySQL5.6開始,支持了GTID復(fù)制模式,這種模式其實是把雙刃劍,雖然容易搭建主從復(fù)制了,但使用不當(dāng),就容易出現(xiàn)一些錯誤,例如error 1236。在MySQL5.6如果開啟GTID模式,需要在my.cnf中加入以下幾個參數(shù):
①log-bin=mysql-bin
②binlog_format=row
③log_slave_updates=1
④gtid_mode=ON
⑤enforce_gtid_consistency=ON
Warning:警告這里的一些參數(shù)不是動態(tài)參數(shù),也就是需要重啟mysql才能生效。
Part2:環(huán)境[root@HE1?~]#?mysql?-uroot?-p
Enter?password:
Welcome?to?the?MySQL?monitor.??Commands?end?with?;?or?\g.
Your?MySQL?connection?id?is?4
Server?version:?5.7.16-log?MySQL?Community?Server?(GPL)
Copyright?(c)?2000,?2016,?Oracle?and/or?its?affiliates.?All?rights?reserved.
Oracle?is?a?registered?trademark?of?Oracle?Corporation?and/or?its
affiliates.?Other?names?may?be?trademarks?of?their?respective
owners.
Type?'help;'?or?'\h'?for?help.?Type?'\c'?to?clear?the?current?input?statement.
mysql>?select?version();
+------------+
|?version()??|
+------------+
|?5.7.16-log?|
+------------+
1?row?in?set?(0.00?sec)
mysql>?show?global?variables?like?'log_slave%';
+-------------------+-------+
|?Variable_name?????|?Value?|
+-------------------+-------+
|?log_slave_updates?|?OFF???|
+-------------------+-------+
1?row?in?set?(0.00?sec)
MySQL5.6開啟GTID需要開啟log_slave_updates參數(shù),否則啟動報錯,而5.7不在需要開啟該參數(shù)。
實戰(zhàn)
Part1:搭建傳統(tǒng)復(fù)制模式
本文環(huán)境HE1為從,HE3為主庫
[root@HE1?~]#?mysql?-uroot?-p
Enter?password:
Welcome?to?the?MySQL?monitor.??Commands?end?with?;?or?\g.
Your?MySQL?connection?id?is?7
Server?version:?5.7.16-log?MySQL?Community?Server?(GPL)
Copyright?(c)?2000,?2016,?Oracle?and/or?its?affiliates.?All?rights?reserved.
Oracle?is?a?registered?trademark?of?Oracle?Corporation?and/or?its
affiliates.?Other?names?may?be?trademarks?of?their?respective
owners.
Type?'help;'?or?'\h'?for?help.?Type?'\c'?to?clear?the?current?input?statement.
mysql>?show?slave?status\G
***************************?1.?row?***************************
Slave_IO_State:?Waiting?for?master?to?send?event
Master_Host:?192.168.1.250
Master_User:?mysync
Master_Port:?3306
Connect_Retry:?60
Master_Log_File:?mysql-bin.000002
Read_Master_Log_Pos:?1694
Relay_Log_File:?HE1-relay-bin.000002
Relay_Log_Pos:?320
Relay_Master_Log_File:?mysql-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:?1694
Relay_Log_Space:?525
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:?1250
Master_UUID:?82b160c7-9a8f-11e6-8412-000c29c6361d
Master_Info_File:?/data/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:
Executed_Gtid_Set:
Auto_Position:?0
Replicate_Rewrite_DB:
Channel_Name:
Master_TLS_Version:
1?row?in?set?(0.00?sec)
Part2:傳統(tǒng)復(fù)制模式切換為GTID
①主庫從庫都需執(zhí)行以下命令mysql>?set?global?gtid_mode='OFF_PERMISSIVE';
Query?OK,?0?rows?affected?(0.01?sec)
mysql>?set?global?gtid_mode='ON_PERMISSIVE';
Query?OK,?0?rows?affected?(0.01?sec)
mysql>?set?global?enforce_gtid_consistency=ON;
Query?OK,?0?rows?affected?(0.00?sec)
mysql>?set?global?gtid_mode='ON';
Query?OK,?0?rows?affected?(0.00?sec)
②主庫插數(shù)從庫執(zhí)行mysql>?show?master?status;
+------------------+----------+--------------+------------------+----------------------------------------+
|?File?????????????|?Position?|?Binlog_Do_DB?|?Binlog_Ignore_DB?|?Executed_Gtid_Set??????????????????????|
+------------------+----------+--------------+------------------+----------------------------------------+
|?mysql-bin.000005?|??????154?|??????????????|??????????????????|?82b160c7-9a8f-11e6-8412-000c29c6361d:1?|
+------------------+----------+--------------+------------------+----------------------------------------+
1?row?in?set?(0.00?sec)
可以看到gtid_set下面有數(shù)了,這說明已經(jīng)開啟了gtid模式
Part3:GTID變更為傳統(tǒng)模式mysql>?stop?slave;-----從庫執(zhí)行
Query?OK,?0?rows?affected?(0.00?sec)
mysql>?set?global?gtid_mode='ON_PERMISSIVE';
Query?OK,?0?rows?affected?(0.00?sec)
mysql>?set?global?gtid_mode='OFF_PERMISSIVE';
Query?OK,?0?rows?affected?(0.01?sec)
mysql>?CHANGE?MASTER?TO?MASTER_AUTO_POSITION=0;
Query?OK,?0?rows?affected?(0.05?sec)
mysql>?set?global?gtid_mode='OFF';
Query?OK,?0?rows?affected?(0.00?sec)
mysql>?start?slave;
Query?OK,?0?rows?affected?(0.00?sec)
mysql>?show?variables?like?'%gtid%';
+----------------------------------+----------------------------------------+
|?Variable_name????????????????????|?Value??????????????????????????????????|
+----------------------------------+----------------------------------------+
|?binlog_gtid_simple_recovery??????|?ON?????????????????????????????????????|
|?enforce_gtid_consistency?????????|?ON?????????????????????????????????????|
|?gtid_executed_compression_period?|?1000???????????????????????????????????|
|?gtid_mode????????????????????????|?OFF????????????????????????????????????|
|?gtid_next????????????????????????|?AUTOMATIC??????????????????????????????|
|?gtid_owned???????????????????????|????????????????????????????????????????|
|?gtid_purged??????????????????????|?82b160c7-9a8f-11e6-8412-000c29c6361d:1?|
|?session_track_gtids??????????????|?OFF????????????????????????????????????|
+----------------------------------+----------------------------------------+
8?rows?in?set?(0.01?sec)
可以看到這里GTID模式已經(jīng)關(guān)了,下面再次開啟GTID模式來觀察id的變化mysql>?set?global?gtid_mode='OFF_PERMISSIVE';
Query?OK,?0?rows?affected?(0.01?sec)
mysql>?set?global?gtid_mode='ON_PERMISSIVE';
Query?OK,?0?rows?affected?(0.01?sec)
mysql>?set?global?enforce_gtid_consistency=ON;
Query?OK,?0?rows?affected?(0.00?sec)
mysql>?set?global?gtid_mode='ON';
Query?OK,?0?rows?affected?(0.01?sec)
mysql>
mysql>
mysql>?show?variables?like?'%gtid%';
+----------------------------------+----------------------------------------+
|?Variable_name????????????????????|?Value??????????????????????????????????|
+----------------------------------+----------------------------------------+
|?binlog_gtid_simple_recovery??????|?ON?????????????????????????????????????|
|?enforce_gtid_consistency?????????|?ON?????????????????????????????????????|
|?gtid_executed_compression_period?|?1000???????????????????????????????????|
|?gtid_mode????????????????????????|?ON?????????????????????????????????????|
|?gtid_next????????????????????????|?AUTOMATIC??????????????????????????????|
|?gtid_owned???????????????????????|????????????????????????????????????????|
|?gtid_purged??????????????????????|?82b160c7-9a8f-11e6-8412-000c29c6361d:1?|
|?session_track_gtids??????????????|?OFF????????????????????????????????????|
+----------------------------------+----------------------------------------+
8?rows?in?set?(0.00?sec)
主庫做操作,從庫執(zhí)行如下命令會看到gtid_set的值在變化
mysql>?show?master?status;
+------------------+----------+--------------+------------------+------------------------------------------+
|?File?????????????|?Position?|?Binlog_Do_DB?|?Binlog_Ignore_DB?|?Executed_Gtid_Set????????????????????????|
+------------------+----------+--------------+------------------+------------------------------------------+
|?mysql-bin.000011?|??????154?|??????????????|??????????????????|?82b160c7-9a8f-11e6-8412-000c29c6361d:1-2?|
+------------------+----------+--------------+------------------+------------------------------------------+
1?row?in?set?(0.00?sec)
mysql>?show?master?status;
+------------------+----------+--------------+------------------+------------------------------------------+
|?File?????????????|?Position?|?Binlog_Do_DB?|?Binlog_Ignore_DB?|?Executed_Gtid_Set????????????????????????|
+------------------+----------+--------------+------------------+------------------------------------------+
|?mysql-bin.000011?|??????154?|??????????????|??????????????????|?82b160c7-9a8f-11e6-8412-000c29c6361d:1-3?|
+------------------+----------+--------------+------------------+------------------------------------------+
1?row?in?set?(0.00?sec)
——總結(jié)——
MySQL5.7開啟/關(guān)閉GTID,不用重啟mysql,這大大提高了GTID的易用性。由于筆者的水平有限,編寫時間也很倉促,文中難免會出現(xiàn)一些錯誤或者不準確的地方,不妥之處懇請讀者批評指正。
《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的mysql5.7跳过gitd_MySQL5.7在线开启/关闭GTID的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 求问想进军队文职,报军戎文培能行吗?
- 下一篇: mysql.max links_Mysq