MySQL數(shù)據(jù)庫優(yōu)化之主從復(fù)制

思想部分

(喜歡實(shí)戰(zhàn)的可以先看實(shí)戰(zhàn))

  1. MySQL復(fù)制能解決什么問題
  • MySQL的負(fù)載均衡(分擔(dān)讀負(fù)載)
  • 為高可用 災(zāi)難恢復(fù) 備份提供更多的選擇
  • 讀寫分離
  1. 主從配置優(yōu)點(diǎn)
  • 解決應(yīng)用系統(tǒng),數(shù)據(jù)庫出現(xiàn)的性能瓶頸势誊,采用數(shù)據(jù)庫集群的方式來實(shí)現(xiàn)查詢負(fù)載调煎;通常情況下一個系統(tǒng)中數(shù)據(jù)庫的查詢操作比更新操作要多得多薯蝎,通過多臺查詢服務(wù)器將 數(shù)據(jù)庫的查詢分擔(dān)到不同的查詢服務(wù)器上從而提高查詢效率踢关。
  • 數(shù)據(jù)備份,高可用性和故障切換,增強(qiáng)了數(shù)據(jù)庫的安全性,利用從庫備份來減少主庫負(fù)載,從庫復(fù)制并不能代替?zhèn)浞?,備份是有必要的
  • 實(shí)現(xiàn)數(shù)據(jù)庫的在線升級
  1. MySQL日志
    MySQL有很多種日志分為兩類
  • MySQL存儲引擎日志

Innodb: 重做日志 , 回滾日志

  • MySQL服務(wù)層日志(默認(rèn)只有error日志,其他的需要在配置文件中手動開啟)

慢查詢?nèi)罩究越啤⒍M(jìn)制日志(習(xí)慣稱bin_log日志)煞赢、通用日志等

  1. 二進(jìn)制日志
  • 記錄了所有對MySQL數(shù)據(jù)庫的修改事件,包括增刪改查事件和對表結(jié)構(gòu)的修改事件
  • 沒有執(zhí)行成功的SQL是不會記錄到二進(jìn)制日志
    還有就是當(dāng)你重啟了mysql之后,會從新生成一個二進(jìn)制文件,舊的會保存一段時間
  1. 復(fù)制如何工作
  • 在主庫上把數(shù)據(jù)更改記錄到二進(jìn)制日志(bin-log)中(這些記錄日志被稱為二進(jìn)制日志事件)
  • 從庫將主庫上的日志復(fù)制到自己中繼日志
  • 從庫讀取自己的中繼日志中的事件,將其重放到自己數(shù)據(jù)上


    流程
  1. 一主多從
    本章實(shí)例僅展示一主一從扼睬, 一主多從是指偷溺,多臺從庫蹋辅;其中從庫不再走主服務(wù)器,而是掛在從服務(wù)器上挫掏。思想架構(gòu)基本一致侦另,大致結(jié)構(gòu)如下:


    一主多從

實(shí)戰(zhàn)開始

筆者按量購買了兩臺阿里云服務(wù)器,1小時4毛錢

Paste_Image.png

兩臺機(jī)器都需要安裝mysql

主庫和從庫分別執(zhí)行以下命令:

apt-get update
apt-get install mysql-server

登陸主庫,創(chuàng)建一個從庫可以訪問的帳號

進(jìn)入mysql褒傅,輸入以下命令創(chuàng)建用戶

grant replication slave on *.* to 'USERNAME'@'IP' identified by 'PASSWORD';

Username(帳號)弃锐、IP(服務(wù)器地址)、Password(密碼)需要自己指定殿托。

mysql庫中user表的數(shù)據(jù)

同源策略霹菊,將主庫的庫文件復(fù)制到從庫

注意,先要停止Mysql服務(wù)支竹,主庫從庫都要停止旋廷。

service mysql stop

庫位置/var/lib/mysql,mysql文件夾就是這個所有的庫礼搁,需要把這個文件夾復(fù)制到從庫×螅現(xiàn)將這個文件進(jìn)行壓縮。

tar -zcvf mysql.tar.gz ./mysql/

然后叹坦,復(fù)制到從庫。下面這條命令是超服務(wù)器傳輸?shù)膹?fù)制命令

scp ./mysql.tar.gz UserName@IP:/tmp

Username 換成主庫的帳號卑雁,IP主庫的IP募书,/tmp是復(fù)制到主庫的/tmp文件夾下,當(dāng)然可以自己指定测蹲。

首先進(jìn)入從庫莹捡,查看從庫是否有了這個壓縮文件,并進(jìn)行移動到從庫的/var/lib/

cd /tmp/
mv mysql.tar.gz /var/lib/

將從庫mysql文件夾進(jìn)行備份扣甲,以防失敗篮赢。

cd /var/lib/
mv mysql mysql.bak

將主庫傳過來的mysql.tar.gz 解壓,這就完成了同源策略

tar -zxvf mysql.tar.gz 

這時琉挖,就可以主從就都可以開啟mysql服務(wù)了启泣。

service mysql start

配置主庫和從庫

主庫配置/etc/mysql/my.cnf

[mysqld] 
server-id               = 1  
log_bin                 = /var/log/mysql/mysql-bin.log
expire_logs_days        = 10
max_binlog_size         = 100M
binlog-ignore-db=mysql   //不進(jìn)行主從復(fù)制的庫
# 將bind-address注釋,為了能夠使用從庫服務(wù)器IP登陸主庫
#bind-address           = 127.0.0.1

從庫配置/etc/mysql/my.cnf

[mysqld] 
server-id               = 2
log_bin                 = /var/log/mysql/mysql-bin.log
expire_logs_days        = 10
max_binlog_size         = 100M
binlog-ignore-db=mysql

注意配置文件可能因為版本不同示辈,而產(chǎn)生配置文件不對應(yīng)寥茫,只需要自己去找一下,配置中包含[mysqld]選項的進(jìn)行修改就可以了矾麻。

配置主從庫登陸信息

在主庫執(zhí)行命令纱耻,查看bin-log日志寫到了什么位置

show master status;
查看bin-log

查看到了File和Position,我們會用到這兩個值险耀。

接下來弄喘,在從庫中執(zhí)行面的命令。配置主庫的信息

CHANGE MASTER TO MASTER_HOST = '120.24.47.140',MASTER_USER = 'test1', MASTER_PASSWORD='123456',MASTER_LOG_FILE = 'mysql-bin.000001',MASTER_LOG_POS=107;

參數(shù)解析

  1. MASTER_HOST:主服務(wù)器IP
  2. MASTER_USER:在主服務(wù)器中創(chuàng)建一個帳號甩牺,筆者是test1
  3. MASTER_PASSWORD:自己定義的密碼蘑志,筆者是123456
  4. MASTER_LOG_FILE:上一步查看的FILE文件,筆者是mysql-bin.000001
  5. MASTER_LOG_POS:上一步查看的Postion位置,筆者是107

最后卖漫,成功的最后一步

啟動復(fù)制

mysql > START SLAVE;

停止復(fù)制

STOP SLAVE;

查看狀態(tài)

SHOW SLAVE STATUS;
主從復(fù)制成功.png

擴(kuò)展:Laravel中讀寫分離的實(shí)現(xiàn)

Paste_Image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末费尽,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子羊始,更是在濱河造成了極大的恐慌旱幼,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,110評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件突委,死亡現(xiàn)場離奇詭異柏卤,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)匀油,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評論 3 395
  • 文/潘曉璐 我一進(jìn)店門缘缚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人敌蚜,你說我怎么就攤上這事桥滨。” “怎么了弛车?”我有些...
    開封第一講書人閱讀 165,474評論 0 356
  • 文/不壞的土叔 我叫張陵齐媒,是天一觀的道長。 經(jīng)常有香客問我纷跛,道長喻括,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,881評論 1 295
  • 正文 為了忘掉前任贫奠,我火速辦了婚禮唬血,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘唤崭。我一直安慰自己拷恨,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,902評論 6 392
  • 文/花漫 我一把揭開白布浩姥。 她就那樣靜靜地躺著挑随,像睡著了一般。 火紅的嫁衣襯著肌膚如雪勒叠。 梳的紋絲不亂的頭發(fā)上兜挨,一...
    開封第一講書人閱讀 51,698評論 1 305
  • 那天,我揣著相機(jī)與錄音眯分,去河邊找鬼拌汇。 笑死,一個胖子當(dāng)著我的面吹牛弊决,可吹牛的內(nèi)容都是我干的噪舀。 我是一名探鬼主播魁淳,決...
    沈念sama閱讀 40,418評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼与倡!你這毒婦竟也來了界逛?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,332評論 0 276
  • 序言:老撾萬榮一對情侶失蹤纺座,失蹤者是張志新(化名)和其女友劉穎息拜,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體净响,經(jīng)...
    沈念sama閱讀 45,796評論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡少欺,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,968評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了馋贤。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片赞别。...
    茶點(diǎn)故事閱讀 40,110評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖配乓,靈堂內(nèi)的尸體忽然破棺而出仿滔,到底是詐尸還是另有隱情,我是刑警寧澤犹芹,帶...
    沈念sama閱讀 35,792評論 5 346
  • 正文 年R本政府宣布堤撵,位于F島的核電站,受9級特大地震影響羽莺,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜洞豁,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,455評論 3 331
  • 文/蒙蒙 一盐固、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧丈挟,春花似錦刁卜、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,003評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至例朱,卻和暖如春孝情,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背洒嗤。 一陣腳步聲響...
    開封第一講書人閱讀 33,130評論 1 272
  • 我被黑心中介騙來泰國打工箫荡, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人渔隶。 一個月前我還...
    沈念sama閱讀 48,348評論 3 373
  • 正文 我出身青樓羔挡,卻偏偏與公主長得像洁奈,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子绞灼,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,047評論 2 355

推薦閱讀更多精彩內(nèi)容