最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Mysql中復(fù)制詳細(xì)解析

 更新時(shí)間:2017年10月31日 10:46:41   作者:瀟瀟、寒  
這篇文章主要介紹了Mysql中復(fù)制詳細(xì)解析,從基本概念、用途、實(shí)現(xiàn)方法以及集中模式進(jìn)行了介紹,然后分享了具體實(shí)現(xiàn)代碼,具有一定參考價(jià)值,需要的朋友可以了解下。

1.mysql復(fù)制概念

  指將主數(shù)據(jù)庫(kù)的DDL和DML操作通過(guò)二進(jìn)制日志傳到復(fù)制服務(wù)器上,然后在復(fù)制服務(wù)器上將這些日志文件重新執(zhí)行,從而使復(fù)制服務(wù)器和主服務(wù)器的數(shù)據(jù)保持同步。復(fù)制過(guò)程中一個(gè)服務(wù)器充當(dāng)主服務(wù)器(master),而一個(gè)或多個(gè)其它服務(wù)器充當(dāng)從服務(wù)器(slaves)。主服務(wù)器將更新重新寫(xiě)入二進(jìn)制日志文件,并維護(hù)文件的一個(gè)索引以跟蹤日志循環(huán)。這些日志可以記錄發(fā)送到從服務(wù)器的更新。當(dāng)一個(gè)從服務(wù)器連接主服務(wù)器時(shí),它通知主服務(wù)器、從服務(wù)器在日志中讀取的最后一次成功更新的位置。從服務(wù)器接受從那時(shí)起發(fā)生的任何更新,然后封鎖并等待主服務(wù)器通知新的更新。

2.復(fù)制的用途

  通過(guò)主從復(fù)制(master-slave)的方式來(lái)同步數(shù)據(jù),再通過(guò)讀寫(xiě)分離(mysql-proxy)來(lái)提升數(shù)據(jù)庫(kù)的并發(fā)負(fù)載能力,或者用來(lái)作為主備機(jī)的設(shè)計(jì),保證在主機(jī)停止響應(yīng)之后在很短的時(shí)間內(nèi)就可以將應(yīng)用切換到備機(jī)上繼續(xù)運(yùn)行。

優(yōu)勢(shì):

(1)數(shù)據(jù)庫(kù)集群系統(tǒng)具有多個(gè)數(shù)據(jù)庫(kù)節(jié)點(diǎn),在單個(gè)節(jié)點(diǎn)出現(xiàn)故障的情況下,其他正常節(jié)點(diǎn)可以繼續(xù)提供服務(wù)。
(2)如果主服務(wù)器上出現(xiàn)了問(wèn)題可以切換到從服務(wù)器上
(3)通過(guò)復(fù)制可以在從服務(wù)器上執(zhí)行查詢操作,降低了主服務(wù)器的訪問(wèn)壓力,實(shí)現(xiàn)數(shù)據(jù)分布和負(fù)載均衡
(4)可以在從服務(wù)器上進(jìn)行備份,以避免備份期間影響主服務(wù)器的服務(wù)。

3.復(fù)制的實(shí)現(xiàn)(3種方法)

(1)DRBD是一種用軟件實(shí)現(xiàn)的、無(wú)共享的、服務(wù)器之間鏡像塊設(shè)備內(nèi)容的存儲(chǔ)復(fù)制解決方案。
(2)Mysql cluster(又稱(chēng)mysql簇)。Mysql replicaion(復(fù)制)本身是一個(gè)比較簡(jiǎn)單的結(jié)構(gòu),即一臺(tái)從服務(wù)器(slave)從一臺(tái)主服務(wù)器(master)讀取二進(jìn)制日志然后再解析并應(yīng)用到自身。
(3)一個(gè)簡(jiǎn)單復(fù)制環(huán)境只需要兩臺(tái)運(yùn)行mysql的主機(jī)即可,甚至可以在一臺(tái)物理服務(wù)器主機(jī)上啟動(dòng)兩個(gè)mysqld實(shí)例。一個(gè)作為master而另一個(gè)作為slave來(lái)完成復(fù)制環(huán)境的搭配。但是在實(shí)際應(yīng)用環(huán)境中,可以根據(jù)實(shí)際的業(yè)務(wù)需求利用mysql復(fù)制的功能自己搭建出其他多種更利于擴(kuò)展的復(fù)制架構(gòu),如最常用的主從架構(gòu)。
  主從架構(gòu)指的是使用一臺(tái)mysql服務(wù)器作為master,一臺(tái)或多臺(tái)mysql服務(wù)器作為slave,將master的數(shù)據(jù)復(fù)制到slave上。在實(shí)際應(yīng)用場(chǎng)合,主從架構(gòu)模式是mysql復(fù)制最常用的。一般在這種架構(gòu)下,系統(tǒng)的寫(xiě)操作都是在master中進(jìn)行,而讀操作則分散到各個(gè)slave中進(jìn)行,因此這種架構(gòu)特別適合現(xiàn)在互聯(lián)網(wǎng)高讀寫(xiě)的問(wèn)題。

Mysql數(shù)據(jù)庫(kù)復(fù)制操作大概分為以下幾個(gè)步驟:

(1)master啟用二進(jìn)制日志。啟用二進(jìn)制日志的操作在日志管理中有詳細(xì)的介紹。
(2)slave上面的I/O進(jìn)程連接上master,并請(qǐng)求從指定日志文件的指定位置(或者從最開(kāi)始的日志)之后的日志內(nèi)容。
(3)master接受到來(lái)自slave的I/O進(jìn)程請(qǐng)求后,通過(guò)負(fù)責(zé)復(fù)制的I/O進(jìn)程根據(jù)請(qǐng)求信息讀取指定日志指定位置之后的日志信息,返回給slave的I/O。返回信息中除了日志所包含的信息之外,還包括本次返回的信息已經(jīng)到master端的bin-log文件的名稱(chēng)以及bin-log的位置。
(4)Slave的I/O進(jìn)程接收到信息后,將接收到的日志內(nèi)容依次添加到slave端的relay-log文件的最末端,并將讀取到的master端的bin-log的文件名和位置記錄到master-info文件中。
(5)Slave的sql進(jìn)程檢測(cè)到relay-log中新增的內(nèi)容后,會(huì)馬上解析relay-log的內(nèi)容,并在自身執(zhí)行。

4.mysql復(fù)制的集中模式

  mysql5.1之后的版本中,在復(fù)制方面的改進(jìn)就是引進(jìn)了新的復(fù)制技術(shù)——基于行的復(fù)制。這種技術(shù)就是關(guān)注表中發(fā)生變化的記錄,而非以前的照抄binlog模式。從mysql5.1.12開(kāi)始,可以用以下3種模式來(lái)實(shí)現(xiàn)。

(1)基于sql語(yǔ)句的復(fù)制(statement-base replication,sbr)
(2)基于行的復(fù)制(rbr)
(3)混合模式復(fù)制(mbr)

相應(yīng)的,binlog的格式也有3種:statement、row、mixed。Mbr模式中,sbr模式是默認(rèn)的。在運(yùn)行時(shí)可以動(dòng)態(tài)地改變binlog的格式。設(shè)定主從復(fù)制模式的方法非常簡(jiǎn)單,只要在以前設(shè)定復(fù)制配置的基礎(chǔ)上,再添加一個(gè)參數(shù),如下:

binlog_format=”statement”
#binlog_format=”row”
#binlog_format=”mixed”

當(dāng)然了,也可以在運(yùn)行時(shí)動(dòng)態(tài)修改binlog的格式

Mysql> set session binlog_format=”statement”

5.控制主服務(wù)器操作

Master:192.168.11.139
Slave:192.168.11.130

(1)主服務(wù)器:

mysql> show variables like '%datadir%';
+---------------+--------------------------+
| Variable_name | Value          |
+---------------+--------------------------+
| datadir    | /application/mysql/data/ |
+---------------+--------------------------+

在主服務(wù)器上開(kāi)啟二進(jìn)制日志:

mysql> show variables like 'log_bin';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin    | OFF  |
+---------------+-------+
row in set (0.00 sec)

OFF表示二進(jìn)制日志是關(guān)閉的

開(kāi)啟日志3步驟:

①開(kāi)啟mysql安裝目錄/my.cnf
②找到[mysqld]這個(gè)標(biāo)簽,在此標(biāo)簽下面一行,添加語(yǔ)句如下:

log_bin[filename]

在該語(yǔ)句中,log-bin說(shuō)明要開(kāi)啟二進(jìn)制文件;filename是二進(jìn)制日志的名字。如果沒(méi)有指定,默認(rèn)為主機(jī)名后面跟-bin作為文件名,默認(rèn)存放在datadir目錄中。在這里指定binary_log如果只對(duì)指定數(shù)據(jù)庫(kù)生成二進(jìn)制文件,則需要添加如下語(yǔ)句

Binlog-do-db=db_name(數(shù)據(jù)庫(kù)名稱(chēng))

如果不對(duì)指定數(shù)據(jù)庫(kù)生成二進(jìn)制文件日志,則需要添加如下語(yǔ)句

Binlog-ignore-db-db_name(數(shù)據(jù)庫(kù)名稱(chēng))

③重啟mysql服務(wù)??梢栽趍ysql安裝目錄/data文件夾下看到“binary_log.數(shù)字編號(hào)”文件,如binary_log.00001.以后每重啟一次mysql服務(wù),都會(huì)重新生成二進(jìn)制文件,文件名中的數(shù)字編號(hào)一次增加。

開(kāi)機(jī)成功后,修改mysql的配置文件my.cnf,設(shè)置server-id,代碼如下

Server-id=1
Binlog-do-db=xscj
Binlog-ignore-db=mysql
Server-id=1:每一個(gè)數(shù)據(jù)庫(kù)服務(wù)器都要指定一個(gè)唯一的server-id,通常主服務(wù)器為1,master和slave的server-id不能相同。
Binlog-do-db:表示需要復(fù)制的數(shù)據(jù)庫(kù),這里以xscj為例
Binlog-ignore-db:表示不需要復(fù)制的數(shù)據(jù)庫(kù)

在master上創(chuàng)建復(fù)制所需要的用戶

mysql> grant replication slave on *.* to rep_user@'%';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec

mysql> show master status\G
*************************** 1. row ***************************
      File: binary_log.000001
    Position: 303
  Binlog_Do_DB: 
Binlog_Ignore_DB: 
row in set (0.00 sec)

將master主機(jī)的數(shù)據(jù)備份出來(lái),保存在/data/binary_dump.txt文件中,然后導(dǎo)入到slave從機(jī)中去,具體執(zhí)行語(yǔ)句如下

[root@localhost bin]# mysqldump -h localhost>/data/binary_dump.txt

(2)控制從服務(wù)器操作

修改從服務(wù)器的數(shù)據(jù)庫(kù)配置文件,配置如下:

Server-id=2 ##設(shè)置從服務(wù)器id
Master-host=192.168.11.129
Master-user=rep_user
Master-password=  ##設(shè)置連接主服務(wù)器的密碼
Replicate-do-db ##設(shè)置你要同步的數(shù)據(jù)庫(kù),可以設(shè)置多個(gè)
Master-port=<port> ##配置端口號(hào)

重啟slave,在slave主機(jī)的mysql重新執(zhí)行如下命令,關(guān)閉slave服務(wù)
Mysql>stop slave;
設(shè)置slave實(shí)現(xiàn)復(fù)制相關(guān)的信息,執(zhí)行如下命令
Mysql>change master to
>master_host='',
>master_user='',
>master_password='',
>master_log_file='binary_log.000007',
>master_log_pos=120;

輸入:show slave status\G用于提供有關(guān)從服務(wù)器線程的關(guān)鍵參數(shù)信息。

常用命令如下

選項(xiàng)

功能

Slave start

啟動(dòng)復(fù)制線程

Slave stop

停止復(fù)制線程

Reset slave

重置復(fù)制線程

Show slave status

顯示復(fù)制線程狀態(tài)

Show slave status\g

顯示復(fù)制線程狀態(tài)(分行顯示)

Show master status\G

顯示主數(shù)據(jù)庫(kù)的狀態(tài)(分行顯示)

Show master logs

顯示主數(shù)據(jù)庫(kù)日志

Change master to

動(dòng)態(tài)改變到主數(shù)據(jù)庫(kù)的配置

Show processlistv

顯示有哪些線程正在運(yùn)行

以上就是本文關(guān)于Mysql中復(fù)制詳細(xì)解析的全部?jī)?nèi)容,希望對(duì)大家有所幫助。歡迎參閱:mysql中使用instr進(jìn)行模糊查詢方法介紹、mysql查詢語(yǔ)句中用戶變量的使用代碼解析、MySQL操作之JSON數(shù)據(jù)類(lèi)型操作詳解等,如有不足之處,歡迎留言指出。有問(wèn)題咱就改,事物不是一成不變的。

相關(guān)文章

  • MySQL-group-replication 配置步驟(推薦)

    MySQL-group-replication 配置步驟(推薦)

    下面小編就為大家?guī)?lái)一篇MySQL-group-replication 配置步驟(推薦)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-03-03
  • Mysql5.7.11綠色版安裝教程圖文詳解

    Mysql5.7.11綠色版安裝教程圖文詳解

    本文通過(guò)圖文并茂的形式給大家展示Mysql5.7.11綠色版安裝教程,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下
    2017-01-01
  • navicat 8 for mysql建庫(kù)的方法

    navicat 8 for mysql建庫(kù)的方法

    在本篇文章里小編給大家分享的是關(guān)于navicat 8 for mysql建庫(kù)的方法以及相關(guān)知識(shí)點(diǎn),需要的朋友們參考學(xué)習(xí)下。
    2019-08-08
  • 關(guān)于Win10下MySQL5.7.17免安裝版基本配置教程(圖文詳解)

    關(guān)于Win10下MySQL5.7.17免安裝版基本配置教程(圖文詳解)

    這數(shù)據(jù)庫(kù)應(yīng)用是一個(gè)應(yīng)用系統(tǒng)不可或缺的部分,關(guān)系型數(shù)據(jù)庫(kù)應(yīng)用大同小異,這里選擇MySQL作為數(shù)據(jù)庫(kù)平臺(tái)。下面通過(guò)本文給大家介紹關(guān)于Win10下MySQL5.7.17免安裝版基本配置教程(圖文詳解),需要的朋友可以參考下
    2017-06-06
  • MySQL實(shí)現(xiàn)查詢處理JSON數(shù)據(jù)的示例詳解

    MySQL實(shí)現(xiàn)查詢處理JSON數(shù)據(jù)的示例詳解

    這篇文章主要為大家詳細(xì)介紹了MySQL如何實(shí)現(xiàn)查詢處理JSON數(shù)據(jù),文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的小伙伴可以了解一下
    2023-06-06
  • 解決seata不能使用mysql8版本的問(wèn)題方法

    解決seata不能使用mysql8版本的問(wèn)題方法

    這篇文章主要介紹了解決seata不能使用mysql8版本的問(wèn)題方法,文中通過(guò)示例和圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • mysql主從服務(wù)器配置特殊問(wèn)題

    mysql主從服務(wù)器配置特殊問(wèn)題

    如果修改了主服務(wù)器的配置,記得刪除從服務(wù)器上的master.info文件。否則從服務(wù)器使用的還是老配置,可能會(huì)導(dǎo)致錯(cuò)誤。
    2010-12-12
  • centos 6.9安裝mysql的詳細(xì)教程

    centos 6.9安裝mysql的詳細(xì)教程

    這篇文章主要介紹了centos 6.9安裝mysql的詳細(xì)教程,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-07-07
  • MySQL的mysqldump工具用法詳解

    MySQL的mysqldump工具用法詳解

    這篇文章主要介紹了MySQL的mysqldump工具用法詳解,同時(shí)附帶了相關(guān)Source命令的用法,詳解需要的朋友可以參考下
    2015-07-07
  • MySQL導(dǎo)致索引失效的幾種情況

    MySQL導(dǎo)致索引失效的幾種情況

    本文主要介紹了MySQL導(dǎo)致索引失效的幾種情況,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06

最新評(píng)論

建平县| 枣庄市| 南城县| 句容市| 全南县| 新泰市| 荔波县| 陇南市| 吐鲁番市| 大荔县| 麦盖提县| 尚志市| 夏津县| 鄢陵县| 韶山市| 南城县| 保亭| 余姚市| 本溪市| 沂源县| 富源县| 郑州市| 石家庄市| 九龙坡区| 凤阳县| 吴桥县| 全南县| 名山县| 台南县| 聊城市| 金堂县| 措美县| 枣庄市| 五莲县| 广元市| 府谷县| 清涧县| 芦山县| 专栏| 滦南县| 曲靖市|