成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Mysql5.7如何并行復(fù)制-創(chuàng)新互聯(lián)

這篇文章將為大家詳細(xì)講解有關(guān)Mysql5.7如何并行復(fù)制,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

成都創(chuàng)新互聯(lián)專注骨干網(wǎng)絡(luò)服務(wù)器租用10多年,服務(wù)更有保障!服務(wù)器租用,遂寧服務(wù)器托管 成都服務(wù)器租用,成都服務(wù)器托管,骨干網(wǎng)絡(luò)帶寬,享受低延遲,高速訪問。靈活、實(shí)現(xiàn)低成本的共享或公網(wǎng)數(shù)據(jù)中心高速帶寬的專屬高性能服務(wù)器。
啟用MySQL并行復(fù)制

MySQL 5.7的并行復(fù)制建立在組提交的基礎(chǔ)上,所有在主庫上能夠完成 Prepared 的語句表示沒有數(shù)據(jù)沖突,就可以在 Slave 節(jié)點(diǎn)并行復(fù)制。

關(guān)于 MySQL 5.7 的組提交,我們要看下以下的參數(shù):

(test) > show global variables like '%group_commit%'
    -> ;
+-----------------------------------------+-------+
| Variable_name                           | Value |
+-----------------------------------------+-------+
| binlog_group_commit_sync_delay          | 0     |
| binlog_group_commit_sync_no_delay_count | 0     |
+-----------------------------------------+-------+

要開啟 MySQL 5.7 并行復(fù)制需要以下二步,首先在主庫設(shè)置 binlog_group_commit_sync_delay 的值大于0 。

 > set global binlog_group_commit_sync_no_delay_count=20;
 > set global binlog_group_commit_sync_delay =10;

這里簡要說明下 binlog_group_commit_sync_delay 和 binlog_group_commit_sync_no_delay_count 參數(shù)的作用。

  • binlog_group_commit_sync_delay

全局動態(tài)變量,單位微妙,默認(rèn)0,范圍:0~1000000(1秒)。

表示 binlog 提交后等待延遲多少時(shí)間再同步到磁盤,默認(rèn)0 ,不延遲。當(dāng)設(shè)置為 0 以上的時(shí)候,就允許多個(gè)事務(wù)的日志同時(shí)一起提交,也就是我們說的組提交。組提交是并行復(fù)制的基礎(chǔ),我們設(shè)置這個(gè)值的大于 0 就代表打開了組提交的功能。

  • binlog_group_commit_sync_no_delay_count

全局動態(tài)變量,單位個(gè)數(shù),默認(rèn)0,范圍:0~1000000。

表示等待延遲提交的大事務(wù)數(shù),如果上面參數(shù)的時(shí)間沒到,但事務(wù)數(shù)到了,則直接同步到磁盤。若 binlog_group_commit_sync_delay 沒有開啟,則該參數(shù)也不會開啟。

其次要在 Slave 主機(jī)上設(shè)置如下幾個(gè)參數(shù):

# 過多的線程會增加線程間同步的開銷,建議4-8個(gè)Slave線程。
slave-parallel-type=LOGICAL_CLOCK
slave-parallel-workers=4

或者直接在線啟用也是可以的:

mysql> stop slave;
Query OK, 0 rows affected (0.07 sec)
mysql> set global slave_parallel_type='LOGICAL_CLOCK';
Query OK, 0 rows affected (0.00 sec)
mysql> set global slave_parallel_workers=4;
Query OK, 0 rows affected (0.00 sec)
mysql> start slave;
Query OK, 0 rows affected (0.06 sec)
mysql> show variables like 'slave_parallel_%';
+------------------------+---------------+
| Variable_name          | Value         |
+------------------------+---------------+
| slave_parallel_type    | LOGICAL_CLOCK |
| slave_parallel_workers | 4             |
+------------------------+---------------+
2 rows in set (0.00 sec)
檢查Worker線程的狀態(tài)

當(dāng)前的 Slave 的 SQL 線程為 Coordinator(協(xié)調(diào)器),執(zhí)行 Relay log 日志的線程為 Worker(當(dāng)前的 SQL 線程不僅起到協(xié)調(diào)器的作用,同時(shí)也可以重放 Relay log 中主庫提交的事務(wù))。

我們上面設(shè)置的線程數(shù)是 4 ,從庫就能看到 4 個(gè) Coordinator(協(xié)調(diào)器)進(jìn)程。

Mysql5.7如何并行復(fù)制

并行復(fù)制配置與調(diào)優(yōu)

開啟 MTS 功能后,務(wù)必將參數(shù) master-info-repository 設(shè)置為 TABLE ,這樣性能可以有 50%~80% 的提升。這是因?yàn)椴⑿袕?fù)制開啟后對于 master.info 這個(gè)文件的更新將會大幅提升,資源的競爭也會變大。

在 MySQL 5.7 中,推薦將 master-info-repository 和 relay-log-info-repository 設(shè)置為 TABLE ,來減小這部分的開銷。

master-info-repository = table
relay-log-info-repository = table
relay-log-recovery = ON
并行復(fù)制監(jiān)控

復(fù)制的監(jiān)控依舊可以通過 SHOW SLAVE STATUS\G,但是 MySQL 5.7 在 performance_schema 架構(gòu)下多了以下這些元數(shù)據(jù)表,用戶可以更細(xì)力度的進(jìn)行監(jiān)控:

mysql> use performance_schema;
mysql> show tables like 'replication%';
+---------------------------------------------+
| Tables_in_performance_schema (replication%) |
+---------------------------------------------+
| replication_applier_configuration           |
| replication_applier_status                  |
| replication_applier_status_by_coordinator   |
| replication_applier_status_by_worker        |
| replication_connection_configuration        |
| replication_connection_status               |
| replication_group_member_stats              |
| replication_group_members                   |
+---------------------------------------------+
8 rows in set (0.00 sec)
想辦法統(tǒng)計(jì)出來每個(gè)同步線程使用的比率。統(tǒng)計(jì)方法如下:
1、將線上從機(jī)相關(guān)統(tǒng)計(jì)打開(出于性能考慮默認(rèn)是關(guān)閉的),打開方法可以如下如下SQL:
UPDATE performance_schema.setup_consumers SET ENABLED = 'YES' WHERE NAME LIKE 'events_transactions%';
UPDATE performance_schema.setup_instruments SET ENABLED = 'YES', TIMED = 'YES'WHERE NAME = 'transaction';
2、創(chuàng)建一個(gè)查看各個(gè)同步線程使用量的視圖,代碼如下:
USE test;
CREATE VIEW rep_thread_count AS SELECT a.THREAD_ID AS THREAD_ID,a.COUNT_STAR AS COUNT_STAR FROM performance_schema.events_transactions_summary_by_thread_by_event_name a WHERE a.THREAD_ID in (SELECT b.THREAD_ID FROM performance_schema.replication_applier_status_by_worker b);
3、一段時(shí)間后,統(tǒng)計(jì)各個(gè)同步線程的使用比率,SQL如下:
SELECT SUM(COUNT_STAR) FROM rep_thread_count INTO @total;
SELECT 100*(COUNT_STAR/@total) AS thread_usage FROM rep_thread_count;

關(guān)于“Mysql5.7如何并行復(fù)制”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯(cuò),請把它分享出去讓更多的人看到。

當(dāng)前題目:Mysql5.7如何并行復(fù)制-創(chuàng)新互聯(lián)
轉(zhuǎn)載來于:http://jinyejixie.com/article24/dpehje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站營銷型網(wǎng)站建設(shè)、App設(shè)計(jì)、Google定制網(wǎng)站、品牌網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司
平远县| 五峰| 平凉市| 金塔县| 庆云县| 白水县| 永修县| 方城县| 北海市| 什邡市| 阳山县| 常德市| 泗水县| 饶河县| 旅游| 井陉县| 旅游| 万盛区| 齐齐哈尔市| 阳高县| 临高县| 闸北区| 新丰县| 肇州县| 灵宝市| 客服| 政和县| 丰宁| 阳泉市| 洪洞县| 上虞市| 微山县| 肇州县| 鄂尔多斯市| 蓝田县| 佳木斯市| 聂拉木县| 右玉县| 黔西| 桑日县| 蒲江县|