校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > MySQL主從復制與讀寫分離原理及用法詳解

MySQL主從復制與讀寫分離原理及用法詳解

熱門標簽:在哪里申請400電話 巫師三血與酒地圖標注 安徽ai電話電銷機器人有效果嗎 400電話申請信用卡 銷售語音電話機器人 常州網絡外呼系統開發 走過哪個省地圖標注 外呼系統電銷受騙 萊西市地圖標注

本文實例講述了MySQL主從復制與讀寫分離原理及用法。分享給大家供大家參考,具體如下:

主從復制

概念

影響MySQL-A數據庫的操作,在數據庫執行后,都會寫入本地的日志系統A中。
假設,實時的將變化了的日志系統中的數據庫事件操作,在MYSQL-A的3306端口,通過網絡發給MYSQL-B。
MYSQL-B收到后,寫入本地日志系統B,然后一條條的將數據庫事件在數據庫中完成。
那么,MYSQL-A的變化,MYSQL-B也會變化,這樣就是所謂的MYSQL的復制,即MYSQL replication。
在上面的模型中,MYSQL-A就是主服務器,即master,MYSQL-B就是從服務器,即slave。
日志系統A,其實它是MYSQL的日志類型中的二進制日志,也就是專門用來保存修改數據庫表的所有動作,即bin log。【注意MYSQL會在執行語句之后,釋放鎖之前,寫入二進制日志,確保事務安全】
日志系統B,并不是二進制日志,由于它是從MYSQL-A的二進制日志復制過來的,并不是自己的數據庫變化產生的,有點接力的感覺,稱為中繼日志,即relay log。
可以發現,通過上面的機制,可以保證MYSQL-A和MYSQL-B的數據庫數據一致,但是時間上肯定有延遲,即MYSQL-B的數據是滯后的。
【即便不考慮什么網絡的因素,MYSQL-A的數據庫操作是可以并發的執行的,但是MYSQL-B只能從relay log中讀一條,執行下。因此MYSQL-A的寫操作很頻繁,MYSQL-B很可能跟不上。】

解決問題

數據如何不被丟失
備份
讀寫分離
數據庫負載均衡
高可用

環境搭建

1.準備環境
兩臺windows操作系統 ip分別為: 172.27.185.1(主)、172.27.185.2(從)
2.連接到主服務(172.27.185.1)服務器上,給從節點分配賬號權限。
GRANT REPLICATION SLAVE ON . TO ‘root'@‘172.27.185.2' IDENTIFIED BY ‘root';
3.在主服務my.ini文件新增

server-id=200
log-bin=mysql-bin
relay-log=relay-bin
relay-log-index=relay-bin-index

重啟mysql服務
4.在從服務my.ini文件新增

server-id = 210
replicate-do-db =itmayiedu #需要同步數據庫

重啟mysql服務
5.從服務同步主數據庫

stop slave;
change
master to master_host='172.27.185.1',master_user='root',master_password='root';
start slave;
show slave status;

注意事項
①一定要在同一個局域網中
②使用360WiFi創建局域網
③最好把防火墻全部關閉掉

什么是讀寫分離

在數據庫集群架構中,讓主庫負責處理事務性查詢,而從庫只負責處理select查詢,讓兩者分工明確達到提高數據庫整體讀寫性能。當然,主數據庫另外一個功能就是負責將事務性查詢導致的數據變更同步到從庫中,也就是寫操作。

讀寫分離的好處

1)分攤服務器壓力,提高機器的系統處理效率
讀寫分離適用于讀遠比寫的場景,如果有一臺服務器,當select很多時,update和delete會被這些select訪問中的數據堵塞,等待select結束,并發性能并不高,而主從只負責各自的寫和讀,極大程度的緩解X鎖和S鎖爭用;
假如我們有1主3從,不考慮上述1中提到的從庫單方面設置,假設現在1分鐘內有10條寫入,150條讀取。那么,1主3從相當于共計40條寫入,而讀取總數沒變,因此平均下來每臺服務器承擔了10條寫入和50條讀取(主庫不承擔讀取操作)。因此,雖然寫入沒變,但是讀取大大分攤了,提高了系統性能。另外,當讀取被分攤后,又間接提高了寫入的性能。所以,總體性能提高了,說白了就是拿機器和帶寬換性能;
2)增加冗余,提高服務可用性,當一臺數據庫服務器宕機后可以調整另外一臺從庫以最快速度恢復服務

主從復制原理

依賴于二進制日志,binary-log.
二進制日志中記錄引起數據庫發生改變的語句
Insert 、delete、update、create table

Scale-up與Scale-out區別

Scale Out是指Application可以在水平方向上擴展。一般對數據中心的應用而言,Scale out指的是當添加更多的機器時,應用仍然可以很好的利用這些機器的資源來提升自己的效率從而達到很好的擴展性。
Scale Up是指Application可以在垂直方向上擴展。一般對單臺機器而言,Scale Up值得是當某個計算節點(機器)添加更多的CPU Cores,存儲設備,使用更大的內存時,應用可以很充分的利用這些資源來提升自己的效率從而達到很好的擴展性。

MyCat

什么是 Mycat

是一個開源的分布式數據庫系統,但是因為數據庫一般都有自己的數據庫引擎,而Mycat并沒有屬于自己的獨有數據庫引擎,所有嚴格意義上說并不能算是一個完整的數據庫系統,只能說是一個在應用和數據庫之間起橋梁作用的中間件。
在Mycat中間件出現之前,MySQL主從復制集群,如果要實現讀寫分離,一般是在程序段實現,這樣就帶來了一個問題,即數據段和程序的耦合度太高,如果數據庫的地址發生了改變,那么我的程序也要進行相應的修改,如果數據庫不小心掛掉了,則同時也意味著程序的不可用,而對于很多應用來說,并不能接受;

引入Mycat中間件能很好地對程序和數據庫進行解耦,這樣,程序只需關注數據庫中間件的地址,而無需知曉底層數據庫是如何提供服務的,大量的通用數據聚合、事務、數據源切換等工作都由中間件來處理;
Mycat中間件的原理是對數據進行分片處理,從原有的一個庫,被切分為多個分片數據庫,所有的分片數據庫集群構成完成的數據庫存儲,有點類似磁盤陣列中的RAID0.

Mycat安裝

創建表結構

CREATE DATABASE IF NOT EXISTS `weibo_simple`;
-- ------------------------------------
-- Table structure for `t_users` 用戶表
-- ------------------------------------
DROP TABLE IF EXISTS `t_users`;
CREATE TABLE `t_users` (
 `user_id` varchar(64) NOT NULL COMMENT '注冊用戶ID',
 `user_email` varchar(64) NOT NULL COMMENT '注冊用戶郵箱',
 `user_password` varchar(64) NOT NULL COMMENT '注冊用戶密碼',
 `user_nikename` varchar(64) NOT NULL COMMENT '注冊用戶昵稱',
 `user_creatime` datetime NOT NULL COMMENT '注冊時間',
 `user_status` tinyint(1) NOT NULL COMMENT '驗證狀態 1:已驗證 0:未驗證',
 `user_deleteflag` tinyint(1) NOT NULL COMMENT '刪除標記 1:已刪除 0:未刪除',
 PRIMARY KEY (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- -------------------------------------
-- Table structure for `t_message`微博表
-- -------------------------------------
DROP TABLE IF EXISTS `t_message`;
CREATE TABLE `t_message` (
 `messages_id` varchar(64) NOT NULL COMMENT '微博ID',
 `user_id` varchar(64) NOT NULL COMMENT '發表用戶',
 `messages_info` varchar(255) DEFAULT NULL COMMENT '微博內容',
 `messages_time` datetime DEFAULT NULL COMMENT '發布時間',
 `messages_commentnum` int(12) DEFAULT NULL COMMENT '評論次數',
 `message_deleteflag` tinyint(1) NOT NULL COMMENT '刪除標記 1:已刪除 0:未刪除',
 `message_viewnum` int(12) DEFAULT NULL COMMENT '被瀏覽量',
 PRIMARY KEY (`messages_id`),
 KEY `user_id` (`user_id`),
 CONSTRAINT `t_message_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `t_users` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

配置server.xml

	!-- 添加user -->
  user name="mycat">
  property name="password">mycat/property>
  property name="schemas">mycat/property>
  /user>
	
	!-- 添加user -->
  user name="mycat_red">
  property name="password">mycat_red/property>
  property name="schemas">mycat/property>
	property name="readOnly">true/property>
  /user>

配置schema.xml

?xml version="1.0"?>
!DOCTYPE mycat:schema SYSTEM "schema.dtd">
mycat:schema xmlns:mycat="http://org.opencloudb/">
  !-- 與server.xml中user的schemas名一致 -->
  schema name="mycat" checkSQLschema="true" sqlMaxLimit="100">
    table name="t_users" primaryKey="user_id" dataNode="dn1" rule="rule1"/>
   
    table name="t_message" type="global" primaryKey="messages_id" dataNode="dn1" />
  /schema>
dataNode name="dn1" dataHost="jdbchost" database="weibo_simple


" />
  
  dataHost name="jdbchost" maxCon="1000" minCon="10" balance="1"
        writeType="0" dbType="mysql" dbDriver="native" switchType="1"
        slaveThreshold="100">
     heartbeat>select user()/heartbeat> 
    writeHost host="hostMaster" url="172.27.185.1:3306" user="root" password="root">
    /writeHost>
    writeHost host="hostSlave" url="172.27.185.2:3306" user="root" password="root"/>
  /dataHost>
  
/mycat:schema>

配置rule.xml文件

?xml version="1.0" encoding="UTF-8"?>
!-- - - Licensed under the Apache License, Version 2.0 (the "License"); 
	- you may not use this file except in compliance with the License. - You 
	may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 
	- - Unless required by applicable law or agreed to in writing, software - 
	distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT 
	WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the 
	License for the specific language governing permissions and - limitations 
	under the License. -->
!DOCTYPE mycat:rule SYSTEM "rule.dtd">
mycat:rule xmlns:mycat="http://org.opencloudb/">
	 tableRule name="rule1">
    rule>
      columns>user_id/columns>
      algorithm>func1/algorithm>
    /rule>
  /tableRule>
  function name="func1" class="org.opencloudb.route.function.AutoPartitionByLong">
 	property name="mapFile">autopartition-long.txt/property>
  /function>
/mycat:rule>

為了更好地定位錯誤,修改log4j.xml

雙擊startup_nowrap.bat開始啟動

常見問題
SHOW MASTER STATUS 如果為,則在my.ini文件中添加一行
log-bin=mysql-bin

給賬號分配權限
grant all privileges on . to ‘root'@‘172.27.185.1' identified by ‘root';

更多關于MySQL相關內容感興趣的讀者可查看本站專題:《MySQL查詢技巧大全》、《MySQL常用函數大匯總》、《MySQL日志操作技巧大全》、《MySQL事務操作技巧匯總》、《MySQL存儲過程技巧大全》及《MySQL數據庫鎖相關技巧匯總》

希望本文所述對大家MySQL數據庫計有所幫助。

您可能感興趣的文章:
  • 詳解MySQL實現主從復制過程
  • Mysql主從同步的實現原理
  • Mysql主從復制作用和工作原理詳解
  • MySQL數據庫主從同步實戰過程詳解
  • MySQL數據庫主從復制原理及作用分析

標簽:河北 鞍山 煙臺 黃石 赤峰 來賓 陽江 果洛

巨人網絡通訊聲明:本文標題《MySQL主從復制與讀寫分離原理及用法詳解》,本文關鍵詞  MySQL,主從,復制,與,讀寫,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《MySQL主從復制與讀寫分離原理及用法詳解》相關的同類信息!
  • 本頁收集關于MySQL主從復制與讀寫分離原理及用法詳解的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    蜜臀va亚洲va欧美va天堂| 免费成人你懂的| 亚洲va中文字幕| 捆绑调教一区二区三区| 国产成人免费高清| 欧美日韩成人综合在线一区二区| 欧美一区二区三区四区高清| 久久影院电视剧免费观看| 国产欧美综合色| 亚洲一级电影视频| 国产激情一区二区三区桃花岛亚洲| 99精品偷自拍| 99综合影院在线| 91精品国产综合久久婷婷香蕉| 久久久噜噜噜久久人人看 | 美女精品自拍一二三四| 国产不卡视频一区二区三区| 成人午夜免费av| 4hu四虎永久在线影院成人| 国产精品久久久久影院老司 | 久久嫩草精品久久久久| 亚洲美女视频在线| 国产激情一区二区三区四区| 宅男噜噜噜66一区二区66| 最好看的中文字幕久久| 国产精品一区一区三区| 91亚洲永久精品| 久久久青草青青国产亚洲免观| 午夜精品爽啪视频| 99re这里只有精品首页| 国产日产欧美一区二区视频| 日韩电影免费一区| 欧美在线一区二区| 日韩一区二区精品在线观看| 一区二区三区欧美激情| 91在线观看视频| 精品国产乱码久久久久久免费| 亚洲综合成人网| 黄色成人免费在线| 欧美电影免费观看高清完整版| 久久精品免费在线观看| 麻豆成人在线观看| 91麻豆精品国产自产在线观看一区 | 18欧美亚洲精品| 国产成人免费视| 欧美精彩视频一区二区三区| 婷婷综合五月天| 91麻豆精品国产自产在线观看一区| 亚洲一区二区在线观看视频| 91激情五月电影| 亚洲男人天堂av网| 91久久精品一区二区二区| 亚洲精品v日韩精品| 精品亚洲国产成人av制服丝袜| 337p亚洲精品色噜噜| 美腿丝袜亚洲色图| 精品免费一区二区三区| 精品亚洲成a人| 久久精品欧美一区二区三区不卡| 精品一区二区三区免费视频| 欧美va亚洲va在线观看蝴蝶网| 麻豆精品在线视频| 久久免费美女视频| 国产成人福利片| 亚洲欧美在线视频| 欧美亚洲动漫另类| 亚洲电影激情视频网站| 91网上在线视频| 中文字幕精品一区二区三区精品| 高清视频一区二区| 国产人妖乱国产精品人妖| 国产99精品视频| 亚洲免费观看视频| 国产欧美日韩在线视频| 欧美视频你懂的| 国产麻豆日韩欧美久久| 亚洲国产精品尤物yw在线观看| 欧美变态口味重另类| 成人av中文字幕| 久久99精品国产麻豆婷婷洗澡| 国产精品美女久久久久久久 | 色综合一个色综合亚洲| 亚洲香蕉伊在人在线观| 欧美日韩亚洲综合一区 | 一区二区三区在线影院| 色婷婷综合激情| 粉嫩av一区二区三区粉嫩| 亚洲精品国产成人久久av盗摄| 不卡一卡二卡三乱码免费网站| 蜜臀久久久久久久| 亚洲欧美偷拍卡通变态| 在线播放亚洲一区| av中文字幕亚洲| 成人午夜免费视频| 久久成人免费网站| 亚洲第一电影网| 欧美国产精品中文字幕| 久久久久久久精| 在线成人av网站| 91网址在线看| 色哟哟精品一区| 国产一区二区视频在线| 亚洲国产另类av| 亚洲一区视频在线| 中文文精品字幕一区二区| 欧美mv日韩mv国产| 欧美日韩夫妻久久| 色综合久久66| 91香蕉国产在线观看软件| 成人综合婷婷国产精品久久| 麻豆精品视频在线| 韩国v欧美v日本v亚洲v| 日韩av中文在线观看| 亚洲六月丁香色婷婷综合久久| 日韩毛片精品高清免费| 久久久三级国产网站| 欧美日韩亚洲综合一区| 欧美日本一区二区| 欧美日韩在线观看一区二区 | 国产精品电影一区二区三区| 精品久久人人做人人爰| 欧美色成人综合| 在线免费一区三区| 色系网站成人免费| 欧美日韩高清在线播放| 欧美日韩中文字幕精品| 一本到不卡精品视频在线观看| 99riav一区二区三区| aaa国产一区| a4yy欧美一区二区三区| 波多野结衣中文字幕一区| 丁香婷婷综合网| 欧美色欧美亚洲另类二区| 欧美日本一区二区在线观看| www.亚洲激情.com| 欧美日韩一区二区三区四区| 欧美三级中文字幕| 欧美日韩亚洲国产综合| 久久蜜桃av一区二区天堂| 久久精品一区四区| 国产精品久久久久久久久免费桃花 | 一区二区在线电影| 亚洲狠狠爱一区二区三区| 视频一区视频二区中文| 极品少妇一区二区| 成人黄色小视频在线观看| 91在线看国产| 欧美一区二区成人6969| 久久免费国产精品| 中文字幕一区二区三区四区| 亚洲国产你懂的| 久久99国产乱子伦精品免费| 激情另类小说区图片区视频区| av综合在线播放| 欧美疯狂做受xxxx富婆| 欧美一区二区三区视频在线观看| 中文字幕欧美日本乱码一线二线| 最新日韩av在线| 久久精品亚洲麻豆av一区二区| 一区二区三区不卡在线观看| 图片区小说区区亚洲影院| 日韩精品午夜视频| av激情亚洲男人天堂| 欧美精品一卡两卡| 亚洲精品中文字幕在线观看| 免费在线观看成人| 国产成人亚洲精品青草天美| 欧美精品日韩综合在线| 欧美精品一区二区蜜臀亚洲| 色狠狠色狠狠综合| 国产网站一区二区三区| 亚洲线精品一区二区三区八戒| 成人福利在线看| 日韩欧美不卡一区| 亚洲影院久久精品| 91小视频在线免费看| 日韩免费视频一区| 国产欧美一区二区精品性色超碰| 亚洲日本免费电影| 国产麻豆精品95视频| 欧美三区在线观看| 中文字幕一区二区视频| 精品在线一区二区| 在线视频你懂得一区二区三区| 久久午夜色播影院免费高清| 亚洲va国产va欧美va观看| 高清视频一区二区| 日韩欧美另类在线| 中文字幕一区二区三| 久久se这里有精品| 91精品视频网| 亚洲成av人片一区二区| 91美女片黄在线观看| 亚洲人成伊人成综合网小说| 国产一区二区伦理| 精品国产在天天线2019| 九九九精品视频| 欧美一二三四区在线| 免费在线看成人av| 91精品国产全国免费观看|