久久久精品一区ed2k-女人被男人叉到高潮的视频-中文字幕乱码一区久久麻豆樱花-俄罗斯熟妇真实视频

怎么構(gòu)建Mysql高可用集群系統(tǒng)-創(chuàng)新互聯(lián)

本篇內(nèi)容主要講解“怎么構(gòu)建Mysql高可用集群系統(tǒng)”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“怎么構(gòu)建Mysql高可用集群系統(tǒng)”吧!

廣陽ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!

一、 MySQL復(fù)制的實現(xiàn)原理
 MySQL支持單向、雙向復(fù)制、異步復(fù)制,復(fù)制過程中一個服務(wù)器充當(dāng)主服務(wù)器,而一個或多個其它服務(wù)器充 當(dāng)從服務(wù)器。主服務(wù)器將更新寫入一個二進制日志文件中,并創(chuàng)建一個索引文件以跟蹤日志循環(huán)。這些日志可以記錄發(fā)送到從服務(wù)器的更新。當(dāng)一個從服務(wù)器連接主 服務(wù)器時,日志文件會通知主服務(wù)器,從服務(wù)器在日志中讀取的最后一次成功更新的位置。接著,從服務(wù)器在上次成功更新的位置處開始進入更新操作。更新完成后 從服務(wù)器開始進入等待狀態(tài),等待主服務(wù)器后續(xù)的更新。
          需要注意的是:在進行復(fù)制時,所有對復(fù)制中的表的更新必須在主服務(wù)器上進行。否則,可能發(fā)生對主服務(wù)器上的表進行的更新與對從服務(wù)器上的表所進行的更新之間的沖突。
          單向復(fù)制有利于健壯性、速度和系統(tǒng)管理.
          主服務(wù)器/從服務(wù)器設(shè)置增加了健壯性。主服務(wù)器出現(xiàn)問題時,可以切換到從服務(wù)器。
          通過在主服務(wù)器和從服務(wù)器之間切分處理客戶查詢的負荷,可以得到更好的客戶響應(yīng)時間。SELECT查詢可以發(fā)送到從服務(wù)器以降低主服務(wù)器的查詢處理負荷。但修改數(shù)據(jù)的語句仍然應(yīng)發(fā)送到主服務(wù)器,以便主服務(wù)器和從服務(wù)器保持同步。
 MySQL提供了數(shù)據(jù)庫的同步功能,這對實現(xiàn)數(shù)據(jù)庫的冗災(zāi)、備份、恢復(fù)、負載均衡等都是有極大幫助的。
          一般情況下,在Mysql復(fù)制中,主服務(wù)器也稱為master,二從服務(wù)器稱為slave,因此,想要啟用同步機制,在master上就必須啟用二進制日 志。每個slave接受來自master上在二進制日志中記錄的更新操作,而在slave上相當(dāng)于執(zhí)行了這個操作的一個拷貝。
二、 MySQL同步細節(jié)
 
          MySQL同步功能由3個線程(master上1個binlog dump,slave上2個,分別是Sql進程和IO進程)來實現(xiàn)。執(zhí)行“START SLAVE”語句后,slave就創(chuàng)建一個I/O線程。I/O線程連接到master上,并請求master發(fā)送二進制日志中的語句。master創(chuàng)建一 個線程來把日志的內(nèi)容發(fā)送到slave上。
          slave上的I/O線程讀取master的Binlog Dump線程發(fā)送的語句,并且把它們拷貝到其數(shù)據(jù)目錄下的中繼日志(relay logs)中。第三個是SQL線程,salve用它來讀取中繼日志,然后執(zhí)行它們來更新數(shù)據(jù)。
          slave上使用2個線程的優(yōu)點是,把讀日志和執(zhí)行分開成2個獨立的任務(wù)。執(zhí)行任務(wù)如果慢的話,讀日志任務(wù)不會跟著慢下來。例如,如果slave停止了一 段時間,那么I/O線程可以在slave啟動后很快地從master上讀取全部日志,盡管SQL線程可能落后I/O線程好幾的小時。如果slave在 SQL線程沒全部執(zhí)行完就停止了,但I/O線程卻已經(jīng)把所有的更新日志都讀取并且保存在本地的中繼日志中了,因此在slave再次啟動后就會繼續(xù)執(zhí)行它們 了。這就允許在master上清除二進制日志,因為slave已經(jīng)無需去master讀取更新日志了。
         本文講解的環(huán)境為:一個mysql的master主節(jié)點node1,三個Mysql的Slave節(jié)點,三個Slave節(jié)點都從primary節(jié)點進行實時的同步數(shù)據(jù),Mysql高可用集群主機信息如圖1所示:

三、在node1、slave1、slave2、slave3上安裝MYSQL

安裝MySQL有多種方法,這里僅以rpm安裝為列說明。
[root@node1~]#yum -y install mysql-server mysql-devel mysql mysql-bench mysql-test
安裝完成后,使用如下命令啟動mysql服務(wù):
[root@node1 ~]# /etc/init.d/mysqld start
為了保障數(shù)據(jù)安全,建議把數(shù)據(jù)放到專業(yè)的存儲設(shè)備或者磁盤陣列分區(qū),這里假定磁盤陣列的分區(qū)為/data目錄,接著把數(shù)據(jù)文件放到/data目錄下:
[root@node1 ~]# cp -R /var/lib/mysql /data/mysql
[root@node1 ~]# chown –R mysql:mysql /data/mysql
修改/etc/my.cnf文件,在[mysqld]組增加如下配置:
datadir = /data/mysql
最后,重啟MySQL服務(wù)即可。
四、在Mysql主節(jié)點node1上編輯配置文件my.cnf
編輯主服務(wù)器的配置文件/etc/my.cnf,在[mysqld]中添加如下內(nèi)容即可:
server-id = 1   #服務(wù)器ID。服務(wù)器之間不能有重復(fù)ID,一般master是1
log-bin=mysql-bin   #打開mysql的binlog功能,后面的名字可以自己指定,如果不改名字的話,默認是以主機名字命名
binlog-do-db=ixdba #ixdba是需要備份的數(shù)據(jù)庫名,如果備份多個數(shù)據(jù)庫,重復(fù)設(shè)置這個選項即可
binlog-ignore-db=mysql #不需要備份的數(shù)據(jù)庫名稱,如果需要忽略備份多個數(shù)據(jù)庫,重復(fù)設(shè)置這個選項即可。
五、在master節(jié)點node1上建立復(fù)制用戶
mysql>GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'%' IDENTIFIED BY 'repl_password';
這里一定將repl_user用戶設(shè)置為遠程任意節(jié)點可以登錄。
 
六、備份Master數(shù)據(jù)
備份Master上的數(shù)據(jù),首先執(zhí)行如下SQL語句:
mysql>FLUSH TABLES WITH READ LOCK;
Query OK, 0 rows affected (0.00 sec)
mysql> reset master;
Query OK, 0 rows affected (0.00 sec)
 不要退出這個終端,否則這個鎖就失效了;在不退出終端的情況,再開一個終端直接打包壓縮數(shù)據(jù)文件或使用mysqldump工具來導(dǎo)出數(shù)據(jù)。
[root@node1 ~]# cd /var/lib/    #進入mysql的數(shù)據(jù)目錄,根據(jù)自己情況而定。
[root@node1 lib]# tar zcvf mysql.tar.gz mysql
[root@node1 lib]# scp mysql.tar.gz  192.168.12.231/232/233:/var/lib/
用scp命令把打包的數(shù)據(jù)傳到其他幾臺Slave機器上。
數(shù)據(jù)傳輸完成之后,在上面的命令終端上執(zhí)行:
mysql>UNLOCK TABLES;
七、設(shè)置Slave主機
編輯/etc/my.cnf文件,在[mysqld]中添加如下內(nèi)容即可:
server-id = 2
log-bin=mysql-bin
binlog-do-db=ixdba
binlog-ignore-db=mysql
其他的Slave以此類推,保證server-id全局即可。
 
八、 在slave上執(zhí)行如下命令
mysql> CHANGE MASTER TO MASTER_HOST='192.168.12.135',
-> MASTER_USER='repl_user',
-> MASTER_PASSWORD='repl_password',
-> MASTER_LOG_FILE='mysql-bin.000001',
-> MASTER_LOG_POS=98;
執(zhí)行完之后執(zhí)行:
mysql> slave start;
Query OK, 0 rows affected (0.00 sec)
mysql> show slave status\G
從輸出可以看到:Slave_IO_Running和Slave_SQL_Running如果都為Yes時,表示配置成功。
九、需要注意的幾個問題
(1)如果在my.cnf里面定義了log-bin、relay-log參數(shù),那么要保證定義與hostname無關(guān),因為如果這兩類log的文件名與主機名有關(guān),切換過程會導(dǎo)致slave主機不能繼續(xù)同步的問題。例如可以做下設(shè)置:
log-bin = mysql-bin
relay-log = mysql-relay-bin
保證在兩臺主機上兩種文件的名字一樣。
(2)好把my.cnf文件也放入磁盤陣列所在分區(qū)的數(shù)據(jù)目錄。

到此,相信大家對“怎么構(gòu)建Mysql高可用集群系統(tǒng)”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)建站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

名稱欄目:怎么構(gòu)建Mysql高可用集群系統(tǒng)-創(chuàng)新互聯(lián)
轉(zhuǎn)載注明:http://sd-ha.com/article42/dohphc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、靜態(tài)網(wǎng)站、App設(shè)計、網(wǎng)站制作、云服務(wù)器網(wǎng)頁設(shè)計公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

手機網(wǎng)站建設(shè)