中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Mysql半同步復制定義及安裝教程簡析

發布時間:2020-04-28 14:36:42 來源:億速云 閱讀:285 作者:三月 欄目:MySQL數據庫

下文內容主要給大家帶來Mysql半同步復制定義及安裝教程簡析,這里所講到的知識,與書籍略有不同,都是億速云專業技術人員在與用戶接觸過程中,總結出來的,具有一定的經驗分享價值,希望給廣大讀者帶來幫助。

1  概述

半同步復制指一部分主機同步復制,另一部分主機異步復制

同步的邏輯是用戶寫操作到主云服務器,主服務記錄到二進制文件后,主服務會同步發送給從服務器,從服務器響應數據同步后,主服務器才會把響應發給用戶。這種方式對IO有強依賴。

mysql是高度插件化的,半同步復制插件是google共獻給mysql的插件。裝有該插件的服務器才能實現同步復制。半同步復制的插件在主節點和從節點是不一樣的,各自分別使用專有插件,當插件配置啟用后,從節點將同步的方式來同步主服務器數據,其他沒有配置的插件的機器為異步同步機制復制。這里的同步復制可以設定時間,在一定的時間范圍內,如果配有插件的從服務器沒有復制主服務器的數據,該從服務器將會被降級為異步復制。

Mysql半同步復制定義及安裝教程簡析

PXC:Percona XtraDB Cluster,percona的插件,是一種多主的高可用,可擴展的解決方案,可以在生產環境使用。實現了主從復制集群,和mysql的主從服務復制邏輯不一樣,PXC實現了多主的集群復制,每一個節點都是可讀可寫。通過集群信道來同步信息,不依賴于二進制日志和中繼日志,按位復制,不同步量少,實現幾乎同步的復制。二進制級別做校驗,可以發現數據的不一致,但是這個方案不是mysql官方的,這種方案可能會停止維護,當數據量大后,要重新轉移數據庫難度就很大。

本文沒有介紹PXC工具的使用,主要mysql自帶的半同步復制安裝插件才能實現半同步的功能

2  插件安裝

查看當前數據庫安裝的插件

MariaDB [sunny]> show plugins;

mysql支持多種插件,其中,在路徑/usr/lib64/mysql/plugin/下的semisync_master.so和semisync_slave.so這兩個插件實現半同步復制,需要安裝才能使用同步復制功能

在mysql下執行help  install查看install的使用方法

安裝語法如下:

mysql> INSTALL PLUGIN plugin_name SONAME 'shared_library_name'; 

其中,

plugin_name為插件名,與文件名不一致

shared_library_name為共享庫名稱,即/usr/lib64/mysql/plugin/下不需要加.so后綴的插件名。

通過文檔得知插件對應的插件名稱和文件名,沒有規律可尋

半同步復制:

semisync_master.so  主節點的插件

semisync_slave.so  從節點的插件

主節點:

INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';

MariaDB [mydb]> SHOW GLOBAL VARIABLES LIKE 'rpl_semi%';

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

| Variable_name                      | Value |

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

| rpl_semi_sync_master_enabled       | OFF   |

| rpl_semi_sync_master_timeout       | 10000 |

| rpl_semi_sync_master_trace_level   | 32    |

| rpl_semi_sync_master_wait_no_slave | ON    |

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

MariaDB [mydb]> SET GLOBAL rpl_semi_sync_master_enabled=ON;

從節點:

INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';

MariaDB [mydb]> SHOW GLOBAL VARIABLES LIKE 'rpl_semi%';                        

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

| Variable_name                   | Value |

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

| rpl_semi_sync_slave_enabled     | OFF   |

| rpl_semi_sync_slave_trace_level | 32    |

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

MariaDB [mydb]> STOP SLAVE IO_THREAD;

MariaDB [mydb]> SHOW GLOBAL VARIABLES LIKE 'rpl_semi%';

MariaDB [mydb]> START SLAVE IO_THREAD;

判斷方法:

主節點:

MariaDB [mydb]> SELECT @@global.rpl_semi_sync_master_clients;

3  例子 實現半同步復制

步驟一,主從復制模型配置

主服務器71配置

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

[server]

skip_name_resolve = ON

innodb_file_per_table = ON

max_connections = 20000

log_bin = master-log

server_id = 1 

重啟mysql

[root@CentOS7A ~]#systemctl restart mariadb

授權擁有復制權限的賬號

MariaDB [sunny]> grant replication client,replication slave on *.* to 'sunnycopy'@'192.168.1.%' identified by 'Pass123456';

MariaDB [sunny]> flush privileges;

從節點73配置

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

[server]

skip_name_resolve = ON

innodb_file_per_table = ON

innodb_buffer_pool_size = 256M

max_connections = 2000

relay_log = relay-log

server_id = 2 

重啟mysql

[root@CentOS7C ~]#systemctl restart mariadb

連接入從服務器,啟動從服務器的復制

MariaDB [(none)]> change master to master_host='192.168.1.71',master_user='sunnycopy',master_password='Pass1234',master_log_file='master-log.000004',master_log_pos=245;

其中,master_log_file和master_log_pos可以到主服務器上用如下命令

MariaDB [sunny]> show binlog events in 'master-log.000004';

或者

MariaDB [sunny]> show mastert status;

查看從哪個二進制文件的位置開始復制

啟動復制線程

MariaDB [(none)]> start slave;

查看狀態

MariaDB [(none)]> show slave status\G;

到這里,主從復制集群設置完成。


步驟二,配置為半同步模式

主節點73上安裝模塊

MariaDB [sunny]> install plugin rpl_semi_sync_master soname 'semisync_master';

安裝完成后,在主節點上會生成相關服務器半同步參數

查看如下

MariaDB [sunny]> show global variables like '%rpl%';

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

| Variable_name                      | Value |

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

| rpl_recovery_rank                  | 0     |

| rpl_semi_sync_master_enabled       | OFF   |

| rpl_semi_sync_master_timeout       | 10000 |

| rpl_semi_sync_master_trace_level   | 32    |

| rpl_semi_sync_master_wait_no_slave | ON    |

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

5 rows in set (0.00 sec)

查看半同步復制狀態的相關參數,命令如下

MariaDB [sunny]> show status like '%rpl%';

從節點73安裝插件

MariaDB [(none)]> install plugin rpl_semi_sync_slave soname 'semisync_slave';

查看參數

MariaDB [sunny]> show global variables like '%rpl%';

MariaDB [sunny]> show status like '%rpl%';


步驟三,設置參數為啟用

注意,插件安裝完成后,master和slave節點上的rpl_semi_sync_master_enabled 和rpl_semi_sync_slave_enabled都是禁用的,需要啟用

主節點71上啟用

MariaDB [sunny]> set @@global.rpl_semi_sync_master_enabled=on;

從節點73上啟用

MariaDB [(none)]> set @@global.rpl_semi_sync_slave_enabled=on;


步驟四,從節點重啟復制線程

注意,這里是從原來的主從復制轉為半同步復制,已經設置了同步主機,即執行過change master to的命令,如果沒有需要設置相關參數,然后啟用復制線程

73上設置

MariaDB [(none)]> stop slave io_thread;

MariaDB [(none)]> start slave io_thread;

確認,從服務器的Rpl_semi_sync_slave_status狀態為on才是正常啟用,查看命令如下

MariaDB [(none)]> show status like '%rpl%';

主服務器上查看Rpl_semi_sync_master_clients 參數,value是1,表示已經有1臺從服務器啟用半同步復制方式連接到該主服務器上

MariaDB [sunny]> show status like '%rpl%';

檢查,在主節點,插入數據后,狀態會變化

如73上執行如下操作

MariaDB [sunny]> create database test2;

MariaDB [sunny]> use test2

MariaDB [test2]> create table class(id int,major char(20));

查看相關參數狀態, 就會發生變化,命令如下

MariaDB [test2]> show status like '%rpl%';

半同步復制到這里配置完成,注意,半同步是一把雙刃劍,因為為了等待事務同步復制事務的完成,需要耗費一定的時間,速度相對較慢。

生成環境,建議用keepalive工具將proxysql配置為高可用,防止單點故障

對于以上關于Mysql半同步復制定義及安裝教程簡析,如果大家還有更多需要了解的可以持續關注我們億速云的行業推新,如需獲取專業解答,可在官網聯系售前售后的,希望該文章可給大家帶來一定的知識更新。

 

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

民勤县| 拉孜县| 韶山市| 黄冈市| 文水县| 黄大仙区| 上高县| 宜丰县| 行唐县| 阳山县| 桦甸市| 云安县| 合作市| 兴安盟| 多伦县| 盐城市| 泰州市| 靖边县| 镇原县| 天气| 宁城县| 葵青区| 固原市| 额敏县| 家居| 合水县| 龙山县| 天长市| 瑞安市| 天镇县| 绵阳市| 沁源县| 隆昌县| 都兰县| 阳朔县| 宣武区| 马山县| 永宁县| 济南市| 长寿区| 和政县|