日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

MySql主從復制實現原理及配置

瀏覽:12日期:2023-10-08 14:33:15

數據庫讀寫分離對于大型系統或者訪問量很高的互聯網應用來說,是必不可少的一個重要功能。對于MySQL來說,標準的讀寫分離是主從模式,一個寫節點Master后面跟著多個讀節點,讀節點的數量取決于系統的壓力,通常是1-3個讀節點的配置。而一般的讀寫分離中間件,例如Mycat的讀寫分離和自動切換機制,需要mysql的主從復制機制配合。

MySql主從復制實現原理及配置

主從配置需要注意的地方

1、主DB server和從DB server數據庫的版本一致

2、主DB server和從DB server數據庫數據名稱一致

3、主DB server開啟二進制日志,主DB server和從DB server的server_id都必須唯一MySQL主服務器配置

第一步:修改my.conf文件:

在[mysqld]段下添加:

binlog-ignore-db=mysql#啟用二進制日志log-bin=mysql-bin//二進制日志的格式,有三種:statement/row/mixedbinlog_format=row#主服務器唯一ID,一般取IP最后一段server-id=82

第二步:重啟mysql服務

service mysql restart

第三步:建立帳戶并授權slave

mysql>GRANT FILE ON *.* TO ’slave’@’%’ IDENTIFIED BY ’slavepw’;mysql>GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* to ’slave’@’%’ identified by ’slavepw’;

一般不用root帳號,“%”表示所有客戶端都可能連,只要帳號,密碼正確,此處可用具體客戶端IP代替,如192.168.145.226,加強安全。

刷新權限

mysql> FLUSH PRIVILEGES;

第四步:查詢master的狀態

mysql> show master status;+------------------+----------+--------------+------------------+-------------------+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |+------------------+----------+--------------+------------------+-------------------+| mysql-bin.000001 | 881 | | mysql | |+------------------+----------+--------------+------------------+-------------------+1 row in set (0.00 sec)

MySQL從服務器配置

第一步:修改my.conf文件

[mysqld]#從服務器唯一ID,一般取IP最后一段server-id=83

第二步:配置從服務器

mysql>change master to master_host=’192.168.11.82’,master_port=3306,master_user=’slave’,master_password=’slavepw’,master_log_file=’mysql-bin.000001’,master_log_pos=881;

注意語句中間不要斷開,master_port為mysql服務器端口號(無引號),master_user為執行同步操作的數據庫賬戶,“881”無單引號(此處的881就是show master status 中看到的position的值,這里的mysql-bin.000001就是file對應的值)。

第三步:啟動從服務器復制功能

mysql>start slave;

第四步:檢查從服務器復制功能狀態:

mysql> show slave status;

Slave_IO_Running: Yes //此狀態必須YES

Slave_SQL_Running: Yes //此狀態必須YES

注:Slave_IO及Slave_SQL進程必須正常運行,即YES狀態,否則都是錯誤的狀態(如:其中一個NO均屬錯誤)。

進行驗證

在主節點上創建表、插入數據,發現從節點也創建表并插入數據。

MySQL 主從復制原理的是啥?

主庫將變更寫入 binlog 日志,然后從庫連接到主庫之后,從庫有一個 IO 線程,將主庫的 binlog 日志拷貝到自己本地,寫入一個 relay 中繼日志中。接著從庫中有一個 SQL 線程會從中繼日志讀取 binlog,然后執行 binlog 日志中的內容,也就是在自己本地再次執行一遍 SQL,這樣就可以保證自己跟主庫的數據是一樣的。

這里有一個非常重要的一點,就是從庫同步主庫數據的過程是串行化的,也就是說主庫上并行的操作,在從庫上會串行執行。所以這就是一個非常重要的點了,由于從庫從主庫拷貝日志以及串行執行 SQL 的特點,在高并發場景下,從庫的數據一定會比主庫慢一些,是有延時的。所以經常出現,剛寫入主庫的數據可能是讀不到的,要過幾十毫秒,甚至幾百毫秒才能讀取到。

而且這里還有另外一個問題,就是如果主庫突然宕機,然后恰好數據還沒同步到從庫,那么有些數據可能在從庫上是沒有的,有些數據可能就丟失了。

所以 MySQL 實際上在這一塊有兩個機制,一個是半同步復制,用來解決主庫數據丟失問題;一個是并行復制,用來解決主從同步延時問題。

這個所謂半同步復制,也叫semi-sync復制,指的就是主庫寫入 binlog 日志之后,就會將強制此時立即將數據同步到從庫,從庫將日志寫入自己本地的 relay log 之后,接著會返回一個 ack 給主庫,主庫接收到至少一個從庫的 ack 之后才會認為寫操作完成了。

所謂并行復制,指的是從庫開啟多個線程,并行讀取 relay log 中不同庫的日志,然后并行重放不同庫的日志,這是庫級別的并行。

MySQL 主從同步延時問題

以前線上確實處理過因為主從同步延時問題而導致的線上的 bug,屬于小型的生產事故。

是這個么場景。有個同學是這樣寫代碼邏輯的。先插入一條數據,再把它查出來,然后更新這條數據。在生產環境高峰期,寫并發達到了 2000/s,這個時候,主從復制延時大概是在小幾十毫秒。線上會發現,每天總有那么一些數據,我們期望更新一些重要的數據狀態,但在高峰期時候卻沒更新。用戶跟客服反饋,而客服就會反饋給我們。

我們通過 MySQL 命令:

show status

查看Seconds_Behind_Master,可以看到從庫復制主庫的數據落后了幾 ms。

一般來說,如果主從延遲較為嚴重,有以下解決方案:

分庫,將一個主庫拆分為多個主庫,每個主庫的寫并發就減少了幾倍,此時主從延遲可以忽略不計。打開 MySQL 支持的并行復制,多個庫并行復制。如果說某個庫的寫入并發就是特別高,單庫寫并發達到了 2000/s,并行復制還是沒意義。重寫代碼,寫代碼的同學,要慎重,插入數據時立馬查詢可能查不到。如果確實是存在必須先插入,立馬要求就查詢到,然后立馬就要反過來執行一些操作,對這個查詢設置直連主庫。不推薦這種方法,你要是這么搞,讀寫分離的意義就喪失了。開啟并行復制

開啟多線程復制,默認關鍵的參數有兩個:

mysql> show variables like ’slave_parallel_%’;+------------------------+----------+| Variable_name | Value |+------------------------+----------+| slave_parallel_type | DATABASE || slave_parallel_workers | 0 |+------------------------+----------+2 rows in set (0.00 sec)

slave-parallel-type 默認值為database

slave-parallel-workers 默認值為0

開啟:

mysql> stop slave sql_thread;Query OK, 0 rows affected (0.05 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 sql_thread;Query OK, 0 rows affected (0.07 sec)

參考資料:

https://www.jianshu.com/p/3932551e0221

https://github.com/doocs/advanced-java/blob/master/docs/high-concurrency/mysql-read-write-separation.md

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: MySQL 數據庫
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
六月婷婷一区| 夜夜嗨av一区二区三区网站四季av| 中文字幕日韩亚洲| 中文日韩欧美| 一区三区视频| 88久久精品| 国产不卡精品| 日韩av网站免费在线| 国产精品1区| 久久国产精品免费精品3p| 国产日韩高清一区二区三区在线 | 蜜臀av亚洲一区中文字幕| 亚洲自啪免费| 日韩欧美中文字幕一区二区三区| 日韩黄色在线观看| 国产精品高潮呻吟久久久久| 国产精品高清一区二区| 黄色aa久久| 在线日韩一区| 宅男噜噜噜66国产日韩在线观看| 水野朝阳av一区二区三区| 视频一区中文字幕精品| 日韩精品一区二区三区中文在线| 91成人在线精品视频| 久久精品国产99国产| 日本一区二区免费高清| 91精品韩国| 亚洲综合精品四区| 欧美日本二区| 中文字幕人成乱码在线观看 | 国产精品日本一区二区三区在线| 国产网站在线| 欧美日韩国产高清| 中文字幕日韩亚洲| 久久影院资源站| 国产综合色产| 久久精品99国产国产精| 精品一级视频| 欧美1区2区3区| 日韩一区二区三区精品 | av一区二区高清| 日韩精品成人在线观看| 精品少妇一区| 欧美日韩国产综合网| 日韩欧美中文在线观看| 精品在线网站观看| 欧美日韩伊人| 免费在线成人网| 久久av导航| 日韩av中文字幕一区| 99国产精品| 国产极品嫩模在线观看91精品| 国产成人精选| 国产亚洲在线| 另类欧美日韩国产在线| 美女少妇全过程你懂的久久| 国产精品丝袜xxxxxxx| 蜜臀av免费一区二区三区| 麻豆网站免费在线观看| 丝袜脚交一区二区| 蜜桃一区二区三区在线| 国产精品超碰| 99成人在线视频| 日本中文字幕一区二区| 久久69成人| 久久婷婷av| 日本免费一区二区视频| 97在线精品| 久久亚洲一区| 成人污污视频| 亚州av日韩av| 在线国产一区| 国产精品s色| 99香蕉国产精品偷在线观看 | 狂野欧美性猛交xxxx| 女主播福利一区| 精品国产亚洲一区二区在线观看| 亚洲欧美日韩国产| 狠狠久久伊人| 久久久久蜜桃| 欧美gv在线| 亚洲一级大片| 三级欧美在线一区| 精品久久国产一区| 精品国产亚洲一区二区三区大结局| 麻豆精品蜜桃| 国产情侣久久| 九九99久久精品在免费线bt| 蜜臀久久99精品久久久久宅男| 91大神在线观看线路一区| 欧美+亚洲+精品+三区| 国内精品麻豆美女在线播放视频| 美女久久一区| 99久久夜色精品国产亚洲1000部| 国产免费av国片精品草莓男男| 99精品国产一区二区三区| 欧美aa在线视频| 色综合视频一区二区三区日韩 | 美女日韩在线中文字幕| 中文av在线全新| 久久不见久久见免费视频7| 国产一区丝袜| 国产精品日本一区二区三区在线| 伊人久久大香伊蕉在人线观看热v| 久久国产影院| 国产一区二区三区亚洲| 18国产精品| 蜜桃av一区二区三区电影| 久久精品成人| 国产精选在线| 美日韩一区二区三区| 日韩美女精品| 亚洲精品国产精品粉嫩| 韩日一区二区三区| 私拍精品福利视频在线一区| 久久精品二区亚洲w码| 国产精品一区二区av交换| 日韩激情一二三区| 亚洲三区欧美一区国产二区| 日韩视频久久| 九一精品国产| 亚洲精品99| 亚洲精品一二三区区别| 久久五月天小说| 日韩欧美午夜| 美女av在线免费看| 国产一区二区三区亚洲综合| 精品国产欧美日韩| 日本天堂一区| 欧美亚洲自偷自偷| 国产亚洲欧美日韩精品一区二区三区| 亚洲乱码视频| 青青青国产精品| 国产精品一页| 美女视频黄免费的久久| 国产高清视频一区二区| 国产精品v日韩精品v欧美精品网站 | 久久精品凹凸全集| 久久国产麻豆精品| 国产精品视频一区二区三区综合| 国产精品毛片久久久| 日本午夜精品一区二区三区电影| 日韩 欧美一区二区三区| 日本午夜精品一区二区三区电影| 日韩av不卡一区二区| 久久中文字幕一区二区三区| 国产成人精品免费视| 国产高潮在线| 日韩欧美一区二区三区免费观看| 亚洲深夜视频| 久久免费黄色| 中日韩男男gay无套| 中文字幕一区二区精品区| 日本不卡在线视频| 麻豆国产精品视频| 日韩一区电影| 久久天堂av| 国产午夜精品一区二区三区欧美| 亚洲精品乱码久久久久久蜜桃麻豆 | 毛片不卡一区二区| av资源亚洲| 亚洲国产一区二区三区在线播放| 中文欧美日韩| 日韩高清一区在线| 精品中文字幕一区二区三区| 香蕉成人av| 伊人影院久久| 国产午夜久久av| 久久这里只有| 亚洲手机视频| 日韩精品成人| 日韩在线精品| 美国欧美日韩国产在线播放| 欧美久久久网站| 91亚洲国产成人久久精品| 欧美日韩国产高清电影| 日本高清久久| 日韩在线看片| 日本在线不卡视频一二三区| 精品国产网站| 久久国产88| 国产乱子精品一区二区在线观看 | 亚洲高清激情| 日韩欧美中文字幕在线视频| 精品精品99| 不卡视频在线| 国产精品日韩精品中文字幕| 欧美freesex黑人又粗又大| 蘑菇福利视频一区播放| 国产欧美三级| 99久久久久久中文字幕一区| 日韩不卡一二三区| 黄在线观看免费网站ktv| 日韩一区精品字幕| 精品国产亚洲一区二区三区在线| 91精品久久久久久久久久不卡| 亚洲日韩中文字幕一区| 桃色av一区二区| 日韩 欧美一区二区三区| 欧产日产国产精品视频|