亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

簡(jiǎn)單講解MySQL中的多源復(fù)制

 更新時(shí)間:2015年04月22日 09:32:57   投稿:goldensun  
這篇文章主要介紹了簡(jiǎn)單講解MySQL中的多源復(fù)制,多源復(fù)制功能自從5.7.2版本以后被加入MySQL,需要的朋友可以參考下

 近日ORACLE發(fā)布幾個(gè)新的功能在最新的Mysql5.7.2的版本上,由此有了此篇文章。大多數(shù)的改善是在數(shù)據(jù)庫(kù)性能和復(fù)制相關(guān)的功能上,這個(gè)新版本會(huì)帶給我們不可思議的效果。

在這篇文章里,我將要用一些簡(jiǎn)單的步奏來(lái)嘗試了解這新的多源復(fù)制工作原理以及我們?cè)鯓舆M(jìn)行自己的測(cè)試。需要說(shuō)明的是,這還是一個(gè)開(kāi)發(fā)版本,不是給生產(chǎn)環(huán)境準(zhǔn)備的。因此這篇文章是打算給那些想了解此新功能的人,看看它是如何在應(yīng)用中工作的,都是在臨時(shí)環(huán)境中進(jìn)行相關(guān)操作。

什么是多源復(fù)制?

首先,我們需要清楚 multi-master 與multi-source 復(fù)制不是一樣的. Multi-Master 復(fù)制通常是環(huán)形復(fù)制,你可以在任意主機(jī)上將數(shù)據(jù)復(fù)制給其他主機(jī)。

201542292551130.jpg (285×300)

Multi-source 是不同的. MySQL在這個(gè)新版本中修復(fù)了一個(gè)復(fù)制限制 , 這限制是一個(gè)從站只能有一個(gè)主站. 這是一個(gè)在我們?cè)O(shè)計(jì)復(fù)制環(huán)境中的限制因素,也有一些極客使它正常工作了。但是現(xiàn)在有一個(gè)官方的解決辦法了。所以。簡(jiǎn)單的說(shuō), Multi-Source 意味著一個(gè)從站能有一個(gè)以上主站. 現(xiàn)在, 像下圖一樣的復(fù)制環(huán)境是可能的: 

201542292620489.jpg (300×253)

 這將幫助我們創(chuàng)建一些復(fù)制的層次結(jié)構(gòu),這在過(guò)去是不可能的。 舉個(gè)例子,你可以 將一個(gè)從站放在你的辦公室里。在辦公室里從所有主站中復(fù)制數(shù)據(jù)傳播到世界各地。
 
它是怎么工作的呢?

現(xiàn)在我們有了通信渠道的概念,每一個(gè)通信渠道都是一個(gè)從服務(wù)器從主服務(wù)器獲得2進(jìn)制日志的鏈接。這意味著每個(gè)通信渠道都得有一個(gè)IO_THREAD .我們需要運(yùn)行不同的 “CHANGE MASTER” 命令, 對(duì)于每一個(gè)主服務(wù)器。我們需要用到 “FOR CHANNEL”這個(gè)參數(shù)來(lái)提供通信鏈接的名字。
 

CHANGE MASTER MASTER_HOST='something', MASTER_USER=... FOR CHANNEL="name_of_channel";

很容易. 有一個(gè)單一的先決條件。從服務(wù)器需要在mysql5.6上配置安全功能,這意味著信息通常包含在主服務(wù)器上。信息或日志應(yīng)該在一個(gè)表中,讓我們開(kāi)始配置吧

來(lái)個(gè)例子!

首先你需要下載測(cè)試版的mysql。點(diǎn)這個(gè)鏈接:下載.

我們需要有一個(gè)從服務(wù)器和兩個(gè)主服務(wù)器的沙箱環(huán)境. 我不會(huì)細(xì)節(jié)的說(shuō)明怎樣配置server_id, binary logs 和 replication users.我假設(shè)已經(jīng)配置好了。 如果你不知道怎么做。你可以看這個(gè)鏈接

首先,我們?cè)趶姆?wù)器上實(shí)現(xiàn)事故安全功能。

 

master_info_repository=TABLE;
relay_log_info_repository=TABLE;

讓后重啟從服務(wù)器。我們可以開(kāi)始創(chuàng)建通信渠道,用 “master1″ 和 “master2″這兩個(gè)名字:
 

slave > change master to master_host="127.0.0.1", master_port=12047, master_user="msandbox",master_password="msandbox" for channel="master1";
slave > change master to master_host="127.0.0.1", master_port=12048, master_user="msandbox",master_password="msandbox" for channel="master2";

按照所設(shè)定的通信名字啟動(dòng)從服務(wù)器。
 

slave > start slave for channel="master1";
slave > start slave for channel="master2";

現(xiàn)在我們檢查一下從服務(wù)器狀態(tài):
 

slave > show slave status\G
Empty set (0.00 sec)

啊。是空的。我們需要寫(xiě)上通信名字。重新檢查下從服務(wù)器狀態(tài):
 

slave > SHOW SLAVE STATUS FOR CHANNEL="master1"\G
*************************** 1. row ***************************
        Slave_IO_State: Waiting for master to send event
         Master_Host: 127.0.0.1
         Master_User: msandbox
         Master_Port: 12047
        Connect_Retry: 60
       Master_Log_File: mysql-bin.000002
     Read_Master_Log_Pos: 232
        Relay_Log_File: squeeze-relay-bin-master1.000003
        Relay_Log_Pos: 395
    Relay_Master_Log_File: mysql-bin.000002
       Slave_IO_Running: Yes
      Slave_SQL_Running: Yes
[...]

我們也可以檢查正在運(yùn)行的  IO_THREAD 和 SQL_THREADS :
 

slave > SHOW PROCESSLIST;
+----+-------------+-----------------------------------------------------------------------------+
| Id | User    | State                                    |
+----+-------------+-----------------------------------------------------------------------------+
| 2 | system user | Waiting for master to send event                      |
| 3 | system user | Slave has read all relay log; waiting for the slave I/O thread to update it |
| 4 | system user | Waiting for master to send event                      |
| 5 | system user | Slave has read all relay log; waiting for the slave I/O thread to update it |
+----+-------------+-----------------------------------------------------------------------------+

測(cè)試看一下:
 

master1 > create database master1;
master2 > create database master2;
slave > show databases like 'master%';
+--------------------+
| Database (master%) |
+--------------------+
| master1      |
| master2      |
+--------------------+

正常工作了??雌饋?lái)很簡(jiǎn)單!

結(jié)論

這個(gè)新的multi-source功能使在過(guò)去需要一些復(fù)雜操作創(chuàng)建的復(fù)制環(huán)境變得簡(jiǎn)單了。當(dāng)然,你應(yīng)用程序可以考慮這個(gè)新的特性設(shè)計(jì)和開(kāi)發(fā),使用  multi-master, multi-source都需要特別注意,不要把你的數(shù)據(jù)都弄亂了。

在每一個(gè)新的版本中,mysql的復(fù)制功能給我們更多的配置,性能和設(shè)計(jì)的可能性。所有這些新功能都可以結(jié)合起來(lái)。在你新(老)的功能中增加復(fù)制功能,你的復(fù)制環(huán)境會(huì)更加出色。舉個(gè)例子:你可以配置 GTID 可以用 multi-threaded slave per schemaintra-database.

相關(guān)文章

  • 如何實(shí)現(xiàn)MySQL的索引

    如何實(shí)現(xiàn)MySQL的索引

    這篇文章主要介紹了如何實(shí)現(xiàn)MySQL的索引,MySQL中索引分三類(lèi),有B+樹(shù)索引、Hash索引和全文索引,下面我們一起來(lái)看看MySQL索引的具體實(shí)現(xiàn),需要的小伙伴可以參考一下
    2022-01-01
  • mysql 8.0.18 安裝配置方法圖文教程(linux)

    mysql 8.0.18 安裝配置方法圖文教程(linux)

    這篇文章主要介紹了linux下mysql 8.0.18 安裝配置方法圖文教程,文中安裝步驟介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • MySQL優(yōu)化insert性能的方法示例

    MySQL優(yōu)化insert性能的方法示例

    對(duì)于一些數(shù)據(jù)量較大的系統(tǒng),數(shù)據(jù)庫(kù)面臨的問(wèn)題除了查詢(xún)效率低下,還有就是數(shù)據(jù)入庫(kù)時(shí)間長(zhǎng)。下面這篇文章主要給大家介紹了關(guān)于MySQL優(yōu)化insert性能的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2018-06-06
  • Windows10下mysql 5.7.21 Installer版安裝圖文教程

    Windows10下mysql 5.7.21 Installer版安裝圖文教程

    這篇文章主要為大家詳細(xì)介紹了Windows10下mysql 5.7.21 Installer版安裝圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • mysql本地登錄無(wú)法使用端口號(hào)登錄的解決方法

    mysql本地登錄無(wú)法使用端口號(hào)登錄的解決方法

    這篇文章主要介紹了mysql本地登錄無(wú)法使用端口號(hào)登錄的解決方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-06-06
  • mysql limit分頁(yè)優(yōu)化方法分享

    mysql limit分頁(yè)優(yōu)化方法分享

    MySQL的優(yōu)化是非常重要的。其他最常用也最需要優(yōu)化的就是limit。MySQL的limit給分頁(yè)帶來(lái)了極大的方便,但數(shù)據(jù)量一大的時(shí)候,limit的性能就急劇下降。
    2011-04-04
  • sql查詢(xún)語(yǔ)句之平均分、最高最低分及排序語(yǔ)句

    sql查詢(xún)語(yǔ)句之平均分、最高最低分及排序語(yǔ)句

    最近工作中遇到個(gè)需求,需要查詢(xún)每門(mén)課程的平均成績(jī),結(jié)果按平均成績(jī)降序排列,平均成績(jī)相同時(shí),按課程編號(hào)升序排列,這篇文章主要給大家介紹了關(guān)于sql查詢(xún)語(yǔ)句之平均分、最高最低分及排序語(yǔ)句的相關(guān)資料,需要的朋友可以參考下
    2022-05-05
  • SQL中日期與字符串互相轉(zhuǎn)換操作實(shí)例

    SQL中日期與字符串互相轉(zhuǎn)換操作實(shí)例

    我們經(jīng)常出于某種目的需要使用各種各樣的日期格式,當(dāng)然我們可以使用字符串操作來(lái)構(gòu)造各種日期格式,下面這篇文章主要給大家介紹了關(guān)于SQL中日期與字符串互相轉(zhuǎn)換操作的相關(guān)資料,需要的朋友可以參考下
    2022-10-10
  • MySQL中使用group by 是總是出現(xiàn)1055的錯(cuò)誤(推薦)

    MySQL中使用group by 是總是出現(xiàn)1055的錯(cuò)誤(推薦)

    這篇文章主要介紹了MySQL中使用group by 是總是出現(xiàn)1055的錯(cuò)誤,小編通過(guò)查閱相關(guān)資料才把問(wèn)題解決,今天小編記錄下分享到腳本之家平臺(tái),需要的朋友可以參考下
    2020-02-02
  • Mysql 聚合函數(shù)嵌套使用操作

    Mysql 聚合函數(shù)嵌套使用操作

    這篇文章主要介紹了Mysql 聚合函數(shù)嵌套使用操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-10-10

最新評(píng)論