日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
MySQL主從復制基本要義和總結(jié)

本文主要給大家介紹MySQL主從復制基本要義和總結(jié),希望可以給大家補充和更新些知識,如有其它問題需要了解的可以持續(xù)在創(chuàng)新互聯(lián)行業(yè)資訊里面關注我的更新文章的。

10年積累的網(wǎng)站建設、做網(wǎng)站經(jīng)驗,可以快速應對客戶對網(wǎng)站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡服務。我雖然不認識你,你也不認識我。但先網(wǎng)站制作后付款的網(wǎng)站建設流程,更有三臺免費網(wǎng)站建設讓你可以放心的選擇與我們合作。

1.1 MySQL主從復制介紹

MySQL數(shù)據(jù)庫的主從復制方案,和使用scp/rsync等命令進行的文件級別復制類似,都是數(shù)據(jù)的遠程傳輸,只不過MySQL的主從復制是其自帶的功能,無需借助第三方工具,而且,MySQL的主從復制并不是數(shù)據(jù)庫磁盤上的文件直接拷貝,而是通過邏輯的binlog日志復制到要同步的云服務器本地,然后由本地的線程讀取日志里面的SQL語句重新應用到MySQL數(shù)據(jù)庫中。

 

MySQL數(shù)據(jù)庫支持單向、雙向、鏈式級聯(lián)、環(huán)狀等不同業(yè)務場景的復制。在復制過程中,一臺服務器充當主服務器(Master),接收來自用戶的內(nèi)容更新,而一個或多個其他的服務器充當從服務器(Slave),接收來自主服務器binlog文件的日志內(nèi)容,解析出SQL重新更新到從服務器,使得主從服務器達到一致。

 MySQL主從復制基本要義和總結(jié)

如果設置了鏈式級復制,那么,從(slave)服務器本身除了充當從服務器外,也會同時充當其下面從服務器的主服務器。鏈式級聯(lián)復制類似A-->B-->C的復制形式。

                            MySQL主從復制基本要義和總結(jié)

1.2 MySQL主從復制的企業(yè)應用場景

MySQL主從復制集群功能使得MySQL數(shù)據(jù)庫支持大規(guī)模高并發(fā)讀寫成為可能,同時有效地保護了物理服務器宕機場景的數(shù)據(jù)備份。

 

應用場景一:從服務器作為主服務器的實時數(shù)據(jù)備份

主從服務器架構的設置,可以大大加強MySQL數(shù)據(jù)庫架構的強壯性。例如:當主服務器出現(xiàn)問題時,我們可以人工或設置自動切換到從服務器繼續(xù)提供服務,此時從服務器的數(shù)據(jù)和宕機時的主數(shù)據(jù)庫幾乎是一致的。

這類似NFS存儲數(shù)據(jù)通過inotify+rsync同步到備份的NFS服務器,只不過MySQL的復制方案是其自帶的工具

利用MySQL的復制功能做數(shù)據(jù)備份時,在硬件故障、軟件故障的場景下,該數(shù)據(jù)備份是有效的,但對于人為地執(zhí)行drop、delete等語句刪除數(shù)據(jù)的情況,從庫的備份功能就沒用了,因為從服務器也會執(zhí)行刪除的語句。

 

應用場景二:主從服務器實現(xiàn)讀寫分離,從服務器實現(xiàn)負載均衡

主從服務器架構可通過程序(PHP、java等)或代理軟件(mysql-proxy、Amoeba)實現(xiàn)對用戶(客戶端)的請求讀寫分離,即讓從服務器僅僅處理用戶的select查詢請求,降低用戶查詢響應時間及讀寫同時在主服務器上帶來的訪問壓力。對于更新的數(shù)據(jù)(例如uodate、insert、delete語句)仍然交給主服務器處理,確保主服務器和從服務器保持實時同步。

MySQL主從復制基本要義和總結(jié)

 

應用場景三:把多個從服務器根據(jù)業(yè)務重要性進行拆分訪問

可以把幾個不同的從服務器,根據(jù)公司的業(yè)務進行拆分。例如:有為外部用戶提供查詢服務的從服務器,有內(nèi)部DBA用來數(shù)據(jù)備份的從服務器,還有為公司內(nèi)部人員提供訪問的后臺、腳本、日志分析及供開發(fā)人員查詢使用的從服務器。這樣的拆分除了減輕主服務器的壓力外,還可以使數(shù)據(jù)庫對外部用戶瀏覽、內(nèi)部用戶業(yè)務處理及DBA人員的備份等互不影響。

MySQL主從復制基本要義和總結(jié)

 

1.3 MySQL主從復制原理介紹

MySQL的主從復制是一個異步的復制過程(雖然一般情況下感覺是實時的),數(shù)據(jù)將從一個MySQL數(shù)據(jù)庫(我們稱之為Master)復制到另一個MySQL數(shù)據(jù)庫(我們稱之為Slave),在Master與Slave之間實現(xiàn)整個主從復制的過程是由三個線程參與完成的。其中有兩個線程(SQL線程和IO線程)在Slave端,另外一個線程(I/O線程)在Master端。

 

要實現(xiàn)MySQL的主從復制,首先必須要打開Master端的Binlog記錄功能,否則就無法實現(xiàn)。因為整個復制過程實際上就是Slave從Master端獲取Binlog日志,然后在Slave上以相同順序執(zhí)行獲取的Binlog日志中所記錄的各種SQL操作。

MySQL主從復制基本要義和總結(jié)

 

下面針對MySQL主從復制原理的重點進行小結(jié)。

◆   主從復制是異步的邏輯的SQL語句級的復制。

◆   復制時,主庫有一個I/O線程,從庫有兩個線程,I/O和SQL線程。

◆   實現(xiàn)主從復制的必要條件是主庫要開啟記錄binlog功能。

◆   作為復制的所有MySQL節(jié)點的server-id都不能相同。

◆   binlog文件只記錄對數(shù)據(jù)有更改的SQL語句(來自主數(shù)據(jù)庫內(nèi)容的變更),不記錄任何查詢(select,show)語句。

 

忘了數(shù)據(jù)庫密碼

mysqld_safe--defaults-file=/data/3306/my.cnf --skip-grant-table --user=mysql &

然后不用輸入密碼進行登錄

mysql-uroot -p -S /data/3306/mysql.sock

進入數(shù)據(jù)庫后設置密碼

updatemysql.user set password=password('oldboy123') where user='root' andhost='localhost';

刷新權限

flushprivileges; 

1.4 MySQL主從復制操作步驟

架構實踐:

3306---->3307

主--->從

 

1.開啟主庫binlog,配置server-id

[root@db02~]# egrep -i "server-id|log-bin" /data/3306/my.cnf

log-bin= /data/3306/mysql-bin

server-id= 6

重啟服務

/data/3306/mysqlrestart

從庫

[root@db02~]# egrep -i "server-id|log-bin" /data/3307/my.cnf

#log-bin= /data/3307/mysql-bin

server-id= 7

 

2.主庫創(chuàng)建用戶

grantreplication slave on *.* to 'rep'@'172.16.1.%' identified by 'oldboy123';

mysql>grant replication slave on *.* to 'rep'@'172.16.1.%' identified by 'oldboy123';

Query OK, 0rows affected (0.04 sec)

 

mysql>select user,host from mysql.user;

+------+------------+

| user |host       |

+------+------------+

| root |127.0.0.1  |

| rep  | 172.16.1.% |

 

3.從主庫導出數(shù)據(jù)

按照我們講過的內(nèi)容,直接取今天00點的備份就可以.

先鎖表flush table with read lock;

mysql>flush table with read lock;

Query OK, 0rows affected (0.00 sec)

 

mysql> showmaster status;

+------------------+----------+--------------+------------------+-------------------+

| File             | Position | Binlog_Do_DB |Binlog_Ignore_DB | Executed_Gtid_Set |

+------------------+----------+--------------+------------------+-------------------+

|mysql-bin.000001 |      120 |              |                  |                   |

+------------------+----------+--------------+------------------+-------------------+

1 row in set(0.00 sec)

mysqldump

cp/tar

xtrabackup

拿到位置點是關鍵[A1]  sed -n '22p'all_2017-06-28.sql

 

主庫全備

[root@db02 ~]# mysqldump -B --master-data=2 --single-transaction-S /data/3306/mysql.sock  -A|gzip>/data/backup/all_$(date+%F).sql.gz

[root@db02 ~]#ls -l /data/backup/

總用量 228

-rw-r--r-- 1root  root  178468 6月  28 11:11 all_2017-06-28.sql.gz

 

主庫解鎖:

mysql> unlock table;

Query OK, 0rows affected (0.00 sec)

 

 

4.從庫導入全備的數(shù)據(jù)

[root@db02scripts]# cd /data/backup/

[root@db02backup]# gzip -d all_2017-06-28.sql.gz

[root@db02backup]# mysql -S /data/3307/mysql.sock

 

5.找位置點,然后change master從庫

[root@db02backup]# sed -n '22p' all_2017-06-28.sql

-- CHANGEMASTER TO MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=120;

 

change master從庫

 

CHANGE MASTER TO 

MASTER_HOST='172.16.1.52',

MASTER_PORT=3306,

MASTER_USER='rep',

MASTER_PASSWORD='oldboy123',

MASTER_LOG_FILE='mysql-bin.000001',

MASTER_LOG_POS=120;

打開slave

mysql> start slave;

Query OK, 0rows affected (0.03 sec)

 

mysql> show slave status\G

顯示如下就說明成功

[root@db02backup]# mysql -S /data/3307/mysql.sock -e"show slave status\G"|egrep "_Running|Behind_Master"|head-3

             Slave_IO_Running:Yes

             Slave_SQL_Running:Yes

             Seconds_Behind_Master:0

 

 

3306查看管理的主機

mysql> show slave hosts;

+-----------+------+------+-----------+--------------------------------------+

| Server_id |Host | Port | Master_id | Slave_UUID                           |

+-----------+------+------+-----------+--------------------------------------+

|         7 |      | 3307 |         6 |295750c8-54c1-11e7-80dd-000c29fc02ee |

|         8 |      | 3308 |         6 |328e8c80-54c1-11e7-80dd-000c29fc02ee |

+-----------+------+------+-----------+--------------------------------------+

2 rows in set(0.00 sec)

 

 

 

 


看了以上關于MySQL主從復制基本要義和總結(jié),希望能給大家在實際運用中帶來一定的幫助。本文由于篇幅有限,難免會有不足和需要補充的地方,如有需要更加專業(yè)的解答,可在官網(wǎng)聯(lián)系我們的24小時售前售后,隨時幫您解答問題的。

 


網(wǎng)頁標題:MySQL主從復制基本要義和總結(jié)
網(wǎng)頁URL:http://www.dlmjj.cn/article/jdddsh.html