<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
對於現在的系統來說,在業務複雜的系統中,資料庫往往是應用的瓶頸,單機往往是不能扛住大型系統的並行壓力的,這時候需要從資料庫方面下手解決其瓶頸,例如sql語句需要鎖表,導致暫時不能使用讀的服務,那麼就很影響執行中的業務。使用主從之後,從庫的讀操作是不受影響的。
MySQL 主從複製是指資料可以從一個MySQL資料庫伺服器主節點複製到一個或多個從節點。MySQL 預設採用非同步複製方式,這樣從節點不用一直存取主伺服器來更新自己的資料,資料的更新可以在遠端連線上進行,從節點可以複製主資料庫中的所有資料庫或者特定的資料庫或者特定的表。
原理:
也就是說:
注意:
圖來源《高效能mysql》
mysql的主從複製都是單執行緒的操作,主庫對所有DDL和DML產生的紀錄檔寫進binlog,由於binlog是順序寫,所以效率很高,slave的sql thread執行緒將主庫的DDL和DML操作事件在slave中重放。DML和DDL的IO操作是隨機的,不是順序,所以成本要高很多,另一方面,由於sql thread也是單執行緒的,當主庫的並行較高時,產生的DML數量超過slave的SQL thread所能處理的速度,或者當slave中有大型query語句產生了鎖等待,那麼延時就產生了。
解決方案:
mysql5.7之後使用MTS並行複製技術,永久解決複製延時問題 這個後面文章在說下吧
本次測試mysql的版本是5.7
. 比較窮,在一臺機子上裝了兩個mysql範例,修改下不同埠即可。 當然如果有錢準備兩臺能互相存取的機子安裝兩個mysql也是可以的。
測試階段兩個mysql範例IP相同都是本機(ip=127.0.0.1),區分下分別命名 主是node1
,從是node2
,埠不同 我實際測試用的是3306和3307)
網上很多按照的例子,這裡就不重複說了,請自行百度/google(結果是資料庫能正常使用),待兩臺mysql都按照完成之後,我們開始設定主從複製了。
--注意兩臺必須全部執行,兩臺的資料庫保持相同 create database test;
#修改組態檔,執行以下命令開啟mysql組態檔 vi /etc/my.cnf #在mysqld模組中新增如下設定資訊 log-bin=master-bin #二進位制檔名稱 #二進位制紀錄檔格式,有row、statement、mixed三種格式, binlog-format=ROW server-id=1 #要求各個伺服器的id必須不一樣 binlog-do-db=test #同步的資料庫名稱
二進位制紀錄檔格式,有row、statement、mixed三種格式; row指的是把改變的內容複製過去,而不是把命令在從伺服器上執行一遍;statement指的是在主伺服器上執行的SQL語句,在從伺服器上執行同樣的語句。MySQL預設採用基於語句的複製,效率比較高; mixed指的是預設採用基於語句的複製,一旦發現基於語句的無法精確的複製時,就會採用基於行的複製。
--授權操作 set global validate_password_policy=0; set global validate_password_length=1; grant replication slave on *.* to 'root'@'%' identified by '123456'; --重新整理許可權 flush privileges;
#修改組態檔,執行以下命令開啟mysql組態檔 vi /etc/my.cnf #在mysqld模組中新增如下設定資訊 log-bin=master-bin #二進位制檔案的名稱 binlog-format=ROW #二進位制檔案的格式 server-id=2 #伺服器的id
#重啟mysql服務 service mysqld restart #登入mysql資料庫 mysql -uroot -p #檢視master的狀態 show master status;
#重啟mysql服務 service mysqld restart #登入mysql mysql -uroot -p #連線主伺服器(master_host是主的IP地址,我測試本地) change master to master_host='127.0.0.1',master_user='root',master_password='123456',master_port=3306,master_log_file='master-bin.000001',master_log_pos=154; #啟動slave start slave #檢視slave的狀態 show slave statusG #(注意沒有分號)
這樣主從的設定已經完成,此時可以在主伺服器進行相關的資料新增刪除工作,在從伺服器看相關的狀態,檢視對應資料有沒有變化。
到此這篇關於MySQL主從複製原理詳情的文章就介紹到這了,更多相關MySQL主從複製內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45