成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

MySQL組復制技術實現與數據庫性能測試工具

原創
數據庫
MySQL當前存在的三種復制模式有:異步模式、半同步模式和組復制模式。本次主要調研MySQL組復制技術實現,與數據庫性能測試工具使用。

【51CTO.com原創稿件】MySQL 當前存在的三種復制模式有:異步模式、半同步模式和組復制模式。本次主要調研 MySQL 組復制技術實現,與數據庫性能測試工具使用。

測試環境

本文檔是在 99Cloud Lab OpenStack 平臺虛機上面測試,僅供參考。

系統: CentOS 7.3

虛機: 2 核 4G

版本: MySQL 5.7

技術架構

MySQL Group Replication(簡稱 MGR)是官方推出的高可用解決方案,原生復制技術,基于插件的方式工作。其中 single primary mode 單主模式只有一個讀寫,其余都是只讀。

multi primary mode多主模式全部可讀寫

不管組復制單主還是多主的故障切換都無法讓應用無感知,需要自主實現,包含以下特性:

  •     復制管理操作更為自動化。
  •     通過 Paxos 協議提供數據庫集群節點數據強一致性保證。
  •     多主模式所有節點都可讀寫操作。
  •     解決網絡分區導致的腦裂問題,提升復制數據的可靠性。

一些不足

01、官方引言

 Quite obviously, regardless the mode Group Replication is deployed, it does not handle client-side fail-over. That must be handled by the application itself, connector or a middleware framework such as a proxy or router.

意思就是 MGR 內部沒有提供一種機制來實現主節點故障切換對應用的無感知。應用的這種故障無感知需要借助外力實現。

02、組復制的局限

所有涉及的數據都必須發生在 InnoDB 存儲引擎的表內。

  •     所有的表必須有明確的主鍵定義。
  •     網絡地址只支持 IPv4。
  •     需要低延遲,高帶寬的網絡。
  •     目前集群限制最多允許 9 個節點。
  •     必須啟用 binlog。
  •     binlog 格式必須是 row 格式。
  •     必須打開 gtid 模式。
  •     復制相關信息必須使用表存儲。
  •     事務寫集合(Transaction write set extraction)必須打開。
  •     log slave updates 必須打開。
  •     binlog 的 checksum 目前不支持。
  •     由于事務寫集合的干擾,無法使用 savepoint。
  •     serializable 隔離級別目前不支持。
  •     對同一個對象,在集群中不同的實例上,并行地執行 DDL(哪怕是相互沖突的DDL)是可行的,但會導致數據一致性等方面的錯誤,目前階段不支持在多節點同時執行同一對象的 DDL。
  •     外鍵的級聯約束操作目前的實現并不完全支持,不推薦使用。

實驗搭建

01、實驗環境

主機名

主機地址

組復制端口

mysql01

172.16.200.4

33061

mysql02

172.16.200.6

33062

mysql03

172.16.200.9

33063

02、安裝軟件

數據庫主配文件定義

  1. datadir=/var/lib/mysql  
  2. socket=/var/lib/mysql/mysql.sock 
  3. report_host = 172.16.200.4 
  4. max_connections = 4096 
  5. # Disabling symbolic-links is recommended to prevent assorted security risks 
  6. symbolic-links=0 
  7. log-error=/var/log/mysqld.log 
  8. pid-file=/var/run/mysqld/mysqld.pid 
  9. server_id=1 
  10. gtid_mode=ON 
  11. enforce_gtid_consistency=ON 
  12. master_info_repository=TABLE 
  13. relay_log_info_repository=TABLE 
  14. binlog_checksum=NONE 
  15. log_slave_updates=ON 
  16. log_bin=binlog 
  17. binlog_format=ROW 
  18. # Group Replication configuration 
  19. transaction_write_set_extraction=XXHASH64 
  20. loose-group_replication_group_name="09f09aca-2ee4-44f7-b4bb-7d5fe32b52a4"  
  21. loose-group_replication_start_on_boot=off 
  22. loose-group_replication_local_address= "172.16.200.4:33061" 
  23. loose-group_replication_group_seeds= "172.16.200.9:33063,172.16.200.4:33061,172.16.200.6:33062" 
  24. loose-group_replication_bootstrap_group= off 
  25. #loose-group_replication_single_primary_mode=FALSE 
  26. #loose-group_replication_enforce_update_everywhere_checks= TRUE 

03、復制授權

進入數據庫

  1. mysql> SET SQL_LOG_BIN=0
  2. mysql> CREATE USER rpl_user@'%' IDENTIFIED BY 'rpl_pass'; 
  3. mysql> GRANT REPLICATION SLAVE ON *.* TO rpl_user@'%'; 
  4. mysql> FLUSH PRIVILEGES; 
  5. mysql> SET SQL_LOG_BIN=1
  6. mysql> CHANGE MASTER TO MASTER_USER='rpl_user'MASTER_PASSWORD='rpl_pass'      FOR CHANNEL 'group_replication_recovery'; 

04、啟動組復制

安裝插件

  1. INSTALL PLUGIN group_replication SONAME 'group_replication.so';  

啟動復制通道

  1. SET GLOBAL group_replication_bootstrap_group=ON; 
  2. START GROUP_REPLICATION; 
  3. SET GLOBAL group_replication_bootstrap_group=OFF; 

查看集群成員

  1. mysql> SELECT * FROM performance_schema.replication_group_members; 

創建測試同步數據

  1. mysql> CREATE DATABASE test; 
  2. mysql> USE test; 
  3. mysql> CREATE TABLE t1 (c1 INT PRIMARY KEY, c2 TEXT NOT NULL); 
  4. mysql> INSERT INTO t1 VALUES (1'Luis'); 

檢查同步數據和 Binlog

05、加入集群

其余節點加入集群

1)先定義主配文件與主機 hosts

2)建立通道授權

  1. SET SQL_LOG_BIN=0
  2. CREATE USER rpl_user@'%' IDENTIFIED BY 'rpl_pass' ; 
  3. GRANT REPLICATION SLAVE ON *.* TO rpl_user@'%' IDENTIFIED BY 'rpl_pass'
  4. SET SQL_LOG_BIN=1
  5. CHANGE MASTER TO MASTER_USER='rpl_user', MASTER_PASSWORD='rpl_pass'  
  6.     FOR CHANNEL 'group_replication_recovery'

3)添加插件

  1. mysql>INSTALLPLUGINgroup_replicationSONAME'group_replication.so'

4)啟動復制通道

  1. mysql>STARTGROUP_REPLICATION; 

5)查看集群成員

  1. mysql>SELECT*FROMperformance_schema.replication_group_members; 

06、集群驗證

在各個節點都能看到同步的數據,說明集群搭建成功。

查看集群中的主節點

  1. mysql> SELECT VARIABLE_VALUE FROM performance_schema.global_status
  2. WHERE VARIABLE_NAME= 'group_replication_primary_member'

性能測試

01、工具選型

對于 MySQL 壓力測試,大多用 sysbench/tpcc-mysql 工具,主要針對數據庫 OLTP(在線事務處理)指標。

在編輯 tpcc-mysql 環境時依賴 mysql_config,MySQL 5.7 版本以后 mysql_config 更換為了 pkg--config,明顯 tpcc-mysql 跟不上節奏。

本文檔性能測試工具選用sysbench 1.0.6

02、工具用法

準備測試數據

 sysbencholtp_read_write.lua --mysql-host=172.16.200.4 --mysql-port=3306 --mysql-db=test --mysql-user=root --mysql-password=MyNewPass4! --table_size=5000 --tables=10 --threads=300 --time=60 --report-interval=10 prepare

開始壓測

 sysbencholtp_read_write.lua --mysql-host=172.16.200.4 --mysql-port=3306 --mysql-db=test --mysql-user=root --mysql-password=MyNewPass4! --table_size=5000 --tables=10 --threads=300 --time=60 --report-interval=10 run

清除測試數據

 sysbencholtp_read_write.lua --mysql-host=172.16.200.4 --mysql-port=3306 --mysql-db=test --mysql-user=root --mysql-password=MyNewPass4! --table_size=5000 --tables=10 --threads=300 --time=60 --report-interval=10 cleanup

03、壓測 screen view

準備測試數據

集群測試

單機測試

04、測試結果

 

tps

qps

備注

單機

576.86

11617.78

 

集群(3節點single mode)

263.48

7507.35

單個IP讀寫

集群(3節點multi mode)

307.19

8343.02

單個IP讀寫

調研結果

組復制模式配置比異步復制,半同步復制簡單便捷,數據同步效率也較高,組復制以插件形式工作。不管組復制單主還是多主的故障切換都無法讓應用無感知,需要自主實現。

參考文檔

單庫安裝:https://dev.mysql.com/doc/refman/5.7/en/linux-installation-yum-repo.html

集群安裝:https://dev.mysql.com/doc/refman/5.7/en/group-replication-deploying-in-single-primary-mode.html

【51CTO原創稿件,合作站點轉載請注明原文作者和出處為51CTO.com】

責任編輯:王雪燕 來源: 51CTO
相關推薦

2012-08-01 10:50:48

性能測試測試架構

2012-06-28 10:18:01

數據庫

2013-05-23 09:40:09

LinkBench性能測試數據庫性能測試

2014-07-11 09:48:42

2021-05-07 07:27:51

Python測試工具

2010-10-15 09:37:14

MySQL性能測試

2011-08-04 09:57:03

dbmonsterMySQL

2010-06-07 14:42:47

Linux性能測試工具

2010-06-04 16:07:09

Linux 性能測試工

2021-06-02 07:15:57

Locust測試工具

2023-12-08 13:15:00

MySQL數據庫Java

2025-01-26 11:05:23

2024-03-06 18:09:06

Linux性能工具

2022-06-22 09:41:16

接口異常測試

2016-09-14 11:09:06

Web工具運維

2010-06-10 17:37:08

Linux 性能測試工

2024-11-19 13:11:19

2019-08-30 09:32:32

監控負載測試工具

2010-05-17 13:16:23

MySQL壓力測試工具

2011-05-18 09:39:19

Oracle數據庫性能優化
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 黄a大片 | 成人免费xxxxx在线视频 | 日韩一 | 日日摸天天添天天添破 | 国产一区二区三区久久 | 正在播放国产精品 | 免费1区2区3区 | 粉嫩一区二区三区四区公司1 | 亚洲精品中文字幕在线观看 | 精品视频在线观看 | av片网| 华人黄网站大全 | 91pao对白在线播放 | 三级在线免费 | 日韩免费中文字幕 | 亚洲精品字幕 | 日韩日b视频 | 特黄小视频 | 亚洲人成人一区二区在线观看 | 中文字幕 视频一区 | 一级全黄少妇性色生活免费看 | 成人免费看电影 | 久久久国产一区二区 | 精品国产青草久久久久福利 | 成人午夜电影在线观看 | 欧美一区二区 | 精品一区av | 韩日有码 | 国产69精品久久99不卡免费版 | 无毛av| 成人av观看 | 在线视频91 | 精品国产1区2区3区 在线国产视频 | 国产一区二区三区在线看 | 亚洲成人免费在线 | 懂色中文一区二区三区在线视频 | 国产精品伦一区二区三级视频 | 成人永久免费 | 亚洲一区中文字幕在线观看 | 1级毛片| 97精品国产 |