老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業(yè)提供網(wǎng)站建設(shè)、域名注冊、服務(wù)器等服務(wù)

初識MariaDB之8——GTID主從復(fù)制

一、背景介紹

成都創(chuàng)新互聯(lián)公司是網(wǎng)站建設(shè)技術(shù)企業(yè),為成都企業(yè)提供專業(yè)的成都做網(wǎng)站、網(wǎng)站設(shè)計、外貿(mào)營銷網(wǎng)站建設(shè),網(wǎng)站設(shè)計,網(wǎng)站制作,網(wǎng)站改版等技術(shù)服務(wù)。擁有十多年豐富建站經(jīng)驗和眾多成功案例,為您定制適合企業(yè)的網(wǎng)站。十多年品質(zhì),值得信賴!

在MySQL5.6之前,主從復(fù)制是通過binlog和position實現(xiàn)的,當(dāng)A主機(jī)宕機(jī)后,B主機(jī)成為新的主節(jié)點(diǎn),此時在C主機(jī)上需要使用sql語句:CHANGE MASTER TO MASTER_HOST='xxx', MASTER_LOG_FILE='xxx', MASTER_LOG_POS='xxx';將自己的復(fù)制源指向B主機(jī),難點(diǎn)在于,同一個事務(wù)在每臺機(jī)器上的binlog名字和位置都不一樣,怎么找到C主機(jī)當(dāng)前同步停止點(diǎn)在B主機(jī)上的master_log_file和master_log_pos位置就成了問題

初識MariaDB之8——GTID主從復(fù)制初識MariaDB之8——GTID主從復(fù)制

于是MySQL在5.6.2之后產(chǎn)生了GTID,即全局事務(wù)ID(global transaction ID),其形式為:DomainID-ServerID-TransactionID,在配置是必須確保每個MySQL服務(wù)器的server_id都不相同,同一GTID事務(wù)在每個節(jié)點(diǎn)上都是相同的。

二、GTID與binlog

需要注意的是Mariadb的gtid配置方式與MySQL不相同,二者之間不兼容。MaraDB在10.0.2之后的版本默認(rèn)是啟用的,即使從服務(wù)器使用的是binlog和position進(jìn)行主從復(fù)制,但他仍是采用GTID進(jìn)行追蹤

初識MariaDB之8——GTID主從復(fù)制初識MariaDB之8——GTID主從復(fù)制

這就意味著原先的slave配置可以簡單的切換到GTID模式

STOP SLAVE;

CHANGE MASTER TO master_host='xxxx', master_port=3306, master_user='xxx',master_password='xxx',master_use_gtid=current_pos;

START SLAVE;

而從GTID模式切換回以前的binlog模式也不復(fù)雜

STOP SLAVE;

CHANGE MASTER TO MASTER_HOST='xxx', MASTER_LOG_FILE='xxx', MASTER_LOG_POS='xxx';

START SLAVE;

三、master_use_gtid介紹

master_use_gtid = { slave_pos | current_pos | no }有3種選項:

slave_pos:slave將Master最后一個GTID的position復(fù)制到本地,Slave主機(jī)可通過gtid_slave_pos變量查看最后一個GTID的position

current_pos:假設(shè)有AB兩臺主機(jī),A是Master,當(dāng)A故障后,B成為Master,A修復(fù)后以Slave的身份重新添加,A之前從沒擔(dān)任過slave角色,所以沒有之前復(fù)制的GTID號,此時gtid_slave_pos為空,為了能讓A能自動添加為Slave,此時就用到該選項。該選項是大多數(shù)情況下使用的選項,因為他簡單易用同,不必在意服務(wù)器之前是Master還是Slave角色。但要注意不要讓從服務(wù)器在binlog日志中寫入事務(wù)。

建議在服務(wù)器上啟用gtid_strict_mode,這樣非Master產(chǎn)生的事物將被拒絕。如果從服務(wù)器沒有開啟binlog上面兩種方式等價。

no:關(guān)閉GTID功能

四、環(huán)境及Maradb配置介紹

本次實驗采用CentOS7.4,數(shù)據(jù)庫版本為MariaDB-10.2.14,拓?fù)淙缦聢D所示:

初識MariaDB之8——GTID主從復(fù)制初識MariaDB之8——GTID主從復(fù)制

本次模擬當(dāng)A主機(jī)故障后C主機(jī)將Master主機(jī)重新指向B主機(jī),并且當(dāng)A主機(jī)修復(fù)后以Slave的身份重新加入集群

三、操作步驟

1.3臺服務(wù)器安裝MariaDB-10.2.14(略)

2.A主機(jī)操作

(1)編輯配置文件

[root@host3 ~]# vim /etc/my.cnf.d/server.cnf

[mysqld]

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

skip_name_resolve=ON

relay_log=mysql-relaylog

relay_log_index=mysql-relaylog

relay_log_purge=OFF

slow_query_log=ON

server-id=10

innodb_file_per_table=ON

binlog_format=ROW

log_bin=mysql-binlog

log_slave_updates=ON

gtid_strict_mode=ON

(2)啟動并進(jìn)入MySQL

[root@host3 ~]# systemctl start mariadb.service

[root@host3 ~]# mysql

(3)創(chuàng)建一個用于主從復(fù)制的賬號

MariaDB [(none)]> grant replication slave on *.* to 'bak'@'172.16.10.%' identified by 'bakpass';

MariaDB [(none)]> flush privileges;

(4)備份當(dāng)前數(shù)據(jù)庫并發(fā)送給B主機(jī)

[root@host3 ~]# mysqldump -uroot --single-transaction  --databases=hellodb --masterdata=2 --quick > /tmp/hello.sql

[root@host3 ~]# scp -r /tmp/hellodb.sql root@172.16.10.40:/tmp

(5)之后做任意DML操作,查看當(dāng)前 gtid_binlog_pos

MariaDB [hellodb]> show global variables like 'gtid%';

+------------------------+---------+

| Variable_name          | Value   |

+------------------------+---------+

| gtid_binlog_pos        | 0-10-40 |

| gtid_binlog_state      | 0-10-40 |

| gtid_current_pos       | 0-10-40 |

| gtid_domain_id         | 0       |

| gtid_ignore_duplicates | OFF     |

| gtid_slave_pos         |         |

| gtid_strict_mode       | ON      |

+------------------------+---------+

3.B主機(jī)操作(以備份形式復(fù)制)

(1)編輯配置文件

[root@host4 ~]# vim /etc/my.cnf.d/server.cnf

[mysqld]

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

skip_name_resolve=ON

relay_log=mysql-relaylog

relay_log_index=mysql-relaylog

relay_log_purge=OFF

slow_query_log=ON

server-id=20

innodb_file_per_table=ON

binlog_format=ROW

log_bin=mysql-binlog

log_slave_updates=ON

gtid_strict_mode=ON

(2)查看備份時A主機(jī)的gtid_slave_pos位置

[root@host4 ~]# cat /tmp/hello.sql

初識MariaDB之8——GTID主從復(fù)制初識MariaDB之8——GTID主從復(fù)制

(3)登陸MySQL,創(chuàng)建一個用于主從復(fù)制的賬號

[root@host4 ~]# systemctl start mariadb.service

[root@host4 ~]# mysql

MariaDB [(none)]> grant replication slave on *.* to 'bak'@'172.16.10.%' identified by 'bakpass';

MariaDB [(none)]> flush privileges;

(4)以備份方式還原并同步數(shù)據(jù)庫

MariaDB [(none)]> source /tmp/hellodb.sql;

MariaDB [(none)]> SET GLOBAL gtid_slave_pos = '0-10-38';

MariaDB [(none)]> CHANGE MASTER TO master_host='172.16.10.30', master_port=3306, master_user='bak', master_password='bakpass',master_use_gtid=slave_pos;

MariaDB [(none)]> start slave;

(5)驗證效果

MariaDB [hellodb]> show global variables like 'gtid%';

+------------------------+-----------------+

| Variable_name          | Value           |

+------------------------+-----------------+

| gtid_binlog_pos        | 0-10-40         |

| gtid_binlog_state      | 0-20-37,0-10-40 |

| gtid_current_pos       | 0-10-40         |

| gtid_domain_id         | 0               |

| gtid_ignore_duplicates | OFF             |

| gtid_slave_pos         | 0-10-40         |

| gtid_strict_mode       | ON              |

+------------------------+-----------------+

可以看到gtid_binlog_pos已經(jīng)和A主機(jī)保持一致,之前導(dǎo)入數(shù)據(jù)庫和創(chuàng)建復(fù)制賬號所以B主機(jī)上gtid_binlog_state有2個值,官方建議開啟gtid_strict_mode選項或臨時禁用sql_log_bin

4.設(shè)置C服務(wù)器(以新服務(wù)器方式同步)

(1)編輯配置文件(該服務(wù)器只作為Slave角色binlog可以不要)

[root@host5 ~]# vim /etc/my.cnf.d/server.cnf

[mysqld]

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

skip_name_resolve=ON

relay_log=mysql-relaylog

relay_log_index=mysql-relaylog

relay_log_purge=OFF

slow_query_log=ON

server-id=20

innodb_file_per_table=ON

binlog_format=ROW

log_bin=mysql-binlog

log_slave_updates=ON

gtid_strict_mode=ON

(2)啟動并進(jìn)入MySQL

[root@host5 ~]# systemctl start mariadb.service

[root@host5 ~]# mysql

(3)以空服務(wù)器進(jìn)行數(shù)據(jù)庫同步恢復(fù)

MariaDB [(none)]> SET GLOBAL gtid_slave_pos = "";

MariaDB [(none)]> CHANGE MASTER TO master_host='172.16.10.30', master_port=3306, master_user='bak', master_password='bakpass',master_use_gtid=current_pos;

MariaDB [(none)]> start slave;

(4)驗證效果

MariaDB [(none)]> show global variables like 'gtid%';

+------------------------+---------+

| Variable_name          | Value   |

+------------------------+---------+

| gtid_binlog_pos        | 0-10-40 |

| gtid_binlog_state      | 0-10-40 |

| gtid_current_pos       | 0-10-40 |

| gtid_domain_id         | 0       |

| gtid_ignore_duplicates | OFF     |

| gtid_slave_pos         | 0-10-40 |

| gtid_strict_mode       | ON      |

+------------------------+---------+

===================以上完成主從環(huán)境搭建=========================

5.停止A主機(jī)MySQL服務(wù),模擬故障

[root@host3 ~]# systemctl stop mariadb.service

6.此時將B主機(jī)提升為Master主機(jī),并進(jìn)行操作

MariaDB [hellodb]> stop slave;

MariaDB [hellodb]> show global variables like 'gtid%';

+------------------------+-----------------+

| Variable_name          | Value           |

+------------------------+-----------------+

| gtid_binlog_pos        | 0-10-40         |

| gtid_binlog_state      | 0-20-37,0-10-40 |

| gtid_current_pos       | 0-10-40         |

| gtid_domain_id         | 0               |

| gtid_ignore_duplicates | OFF             |

| gtid_slave_pos         | 0-10-40         |

| gtid_strict_mode       | ON              |

+------------------------+-----------------+

MariaDB [hellodb]> delete from students where stuid=21;

MariaDB [hellodb]> show global variables like 'gtid%';

+------------------------+-----------------+

| Variable_name          | Value           |

+------------------------+-----------------+

| gtid_binlog_pos        | 0-20-41         |

| gtid_binlog_state      | 0-10-40,0-20-41 |

| gtid_current_pos       | 0-20-41         |

| gtid_domain_id         | 0               |

| gtid_ignore_duplicates | OFF             |

| gtid_slave_pos         | 0-10-40         |

| gtid_strict_mode       | ON              |

+------------------------+-----------------+

7.將C主機(jī)的Master有A指向B,并觀察變化

MariaDB [(none)]> show global variables like 'gtid%';

+------------------------+---------+

| Variable_name          | Value   |

+------------------------+---------+

| gtid_binlog_pos        | 0-10-40 |

| gtid_binlog_state      | 0-10-40 |

| gtid_current_pos       | 0-10-40 |

| gtid_domain_id         | 0       |

| gtid_ignore_duplicates | OFF     |

| gtid_slave_pos         | 0-10-40 |

| gtid_strict_mode       | ON      |

+------------------------+---------+

MariaDB [(none)]> stop slave;

MariaDB [(none)]> CHANGE MASTER TO master_host='172.16.10.40', master_port=3306, master_user='bak', master_password='bakpass',master_use_gtid=current_pos;

MariaDB [(none)]> start slave;

MariaDB [(none)]> show global variables like 'gtid%';

+------------------------+-----------------+

| Variable_name          | Value           |

+------------------------+-----------------+

| gtid_binlog_pos        | 0-20-41         |

| gtid_binlog_state      | 0-10-40,0-20-41 |

| gtid_current_pos       | 0-20-41         |

| gtid_domain_id         | 0               |

| gtid_ignore_duplicates | OFF             |

| gtid_slave_pos         | 0-20-41         |

| gtid_strict_mode       | ON              |

+------------------------+-----------------+

此時C主機(jī)的gtid_slave_pos已發(fā)生改變

MariaDB [(none)]> show variables like 'gtid_slave_pos';

+----------------+---------+

| Variable_name  | Value   |

+----------------+---------+

| gtid_slave_pos | 0-20-41 |

+----------------+---------+

8.再將A主機(jī)以Slave的身份加入集群操作

[root@host3 tmp]# systemctl start mariadb.service

[root@host3 tmp]# mysql

MariaDB [(none)]> CHANGE MASTER TO master_host='172.16.10.40', master_port=3306, master_user='bak', master_password='bakpass',master_use_gtid=current_pos;

MariaDB [(none)]> show variables like 'gtid_slave_pos';

+----------------+---------+

| Variable_name  | Value   |

+----------------+---------+

| gtid_slave_pos | 0-20-41 |

+----------------+---------+

至此全部操作完成

補(bǔ)充說明:

1.master_use_gtid = { slave_pos | current_pos }具體用哪一種仍不是很明白,文檔說current_pos適用于大部分環(huán)境,所以后期使用都是用該值。

2.Master和Candidate之間可以采用半同步方式降低數(shù)據(jù)不一致

3.雙主模式下1臺采用binlog1臺采用GTID可以正常工作


當(dāng)前題目:初識MariaDB之8——GTID主從復(fù)制
當(dāng)前網(wǎng)址:http://www.xueling.net.cn/article/ghcsjs.html

其他資訊

在線咨詢
服務(wù)熱線
服務(wù)熱線:028-86922220
TOP
主站蜘蛛池模板: 噜噜噜综合亚洲 | 成人精品天堂一区二区三区 | 麻豆国产av超爽剧情系列 | 国产欧美日韩亚洲 | 亚洲人成小说 | 亚洲精品久久久久久国 | 欧美久久国产精品 | 日韩aaa视频 | 18禁男女污污污午夜网站免费暖暖 | 操空姐色图 | 香蕉久久夜色精品国产更新时间 | 成人爽a毛片在线视频淮北 成人免费观看视频大全 | 午夜精品a片一区二区三区 国产女主播喷水视频在线观看 | 亚洲欧美另类久久久精品能播放的 | 精品一区二区久久久久 | 欧美日韩国产这里只有精品 | 少妇高潮呻吟A片免费看 | 91爱视频 | 亚洲精品无码久久久久久久 | 国产色播av在线 | 综合天堂av久久久久久久 | 欧美成人免费一区二区 | 一区二区三区三区在线 | 成人免费a级毛片无码片在线播放 | 66lu国产在线观看 | 日韩国产欧美视频 | 九九热播视频在线精品6 | 国产乱对白刺激视频户外 | 欧美又大又粗又硬又色A片 亚洲精品国产成人片 | 国产乱码精品一区二三 | 国产真实迷奷系列 | 亚洲人成网站在e线播放 | 亚洲国产精品久久久久婷婷老年 | 91呆先生大战瑜伽老师 | 波多野吉衣视频在线观看 | 国产女极品在线观看AV | 18禁超污无遮挡无码免费网站国产 | 一级黄色免费视频 | 国产精品久久久久久久久久久久午夜片 | 九九久久久久久久久激情 | 国产亚洲精品第一综合另类灬 |