Mysql服務(wù)器同步(replication)設(shè)置_第1頁
Mysql服務(wù)器同步(replication)設(shè)置_第2頁
Mysql服務(wù)器同步(replication)設(shè)置_第3頁
Mysql服務(wù)器同步(replication)設(shè)置_第4頁
Mysql服務(wù)器同步(replication)設(shè)置_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、mysql 服務(wù)器同步( replication)設(shè)置mysql 支持單向、異步復(fù)制,復(fù)制過程中一個服務(wù)器充當(dāng)主服務(wù)器,而一個或多個其它服務(wù)器充當(dāng)從服務(wù)器。主服務(wù)器將更新寫入二進(jìn)制日志文件,并維護(hù)文件的一個索引以跟蹤日志循環(huán)。這些日志可以記錄發(fā)送到從服務(wù)器的更新。當(dāng)一個從服務(wù)器連接主服務(wù)器時,它通知主服務(wù)器從服務(wù)器在日志中讀取的最后一次成功更新的位置。從服務(wù)器接收從那時起發(fā)生的任何更新,然后封鎖并等待主服務(wù)器通知新的更新。環(huán)境介紹:本測試系統(tǒng)平臺為window7. 各個機(jī)器的mysql 版本均為5.1.38,其他版本沒有測試。一般只要是5.1.x 版本,且每臺機(jī)器版本一致的情況下都適用。一、

2、主從備份顧名思義,就是一臺機(jī)器作為主服務(wù)器,另外一臺或多臺作為從服務(wù)器。配置過程如下:1.在主服務(wù)器找到mysql安裝目錄下(如:c:program filesmysqlmysql server 5.1) my.ini文件,在文件末尾添加如下代碼:server-id=1 log-bin=c:mysqlback binlog-do-db=test log-bin=c:mysqlback #這里的mysqlback 是日志文件名,是路徑,在正常運行時,會在c 盤下產(chǎn)生mysqlback.000001、mysqlback.000002 等日志文件。如果直接設(shè)置為log-bin=mysqlback,則

3、會在 mysql 的 data 目錄下產(chǎn)生這些mysqlback.000001、mysqlback.000002 等日志文件。# binlog-do-db=test1 #test 為需要同步的數(shù)據(jù)庫名。如果需要同步多個數(shù)據(jù)庫,多次使用這條語句即可2.從服務(wù)器找到my.ini 文件,在文件末尾添加如下代碼:server-id=2 master-host=04 master-user=user1 master-password=user1 master-port=3306 master-connect-retry=60 master-host=04 #主

4、復(fù)制服務(wù)器的主機(jī)名或ip地址。如果沒有給出該選項,從服務(wù)器線程不啟動。master-port=3306 #如果 mysql 服務(wù)使用的默認(rèn)端口3306,就可以省略此項master-connect-retry=60 #在主服務(wù)器宕機(jī)或連接丟失的情況下,從服務(wù)器線程重新嘗試連接主服務(wù)器之前睡眠的秒數(shù)。如果未設(shè)置,默認(rèn)值為60。replicate-do-db=test #告訴從服務(wù)器限制默認(rèn)數(shù)據(jù)庫(由 use所選擇 )為 test的語句的復(fù)制。 要指定多個數(shù)據(jù)庫,應(yīng)多次使用該選項,每個數(shù)據(jù)庫使用一次。slave-skip-errors=all #忽略錯誤繼續(xù)同步3.在主服務(wù)器上為從服務(wù)器打開權(quán)限:g

5、rant replication slave on *.* to user1 1 identified by user1;4.重啟主從服務(wù)器的mysql 服務(wù)5.使主從服務(wù)器的數(shù)據(jù)庫保持一致根據(jù)數(shù)據(jù)庫使用的引擎不同有些區(qū)別:myisam(本次測試采用的引擎):1) 在鎖定主服務(wù)器數(shù)據(jù)庫的情況下,可以直接將data 下面的數(shù)據(jù)庫文件復(fù)制到從服務(wù)器data 下面,并重啟從服務(wù)器(如果是直接添加新的數(shù)據(jù)庫不需要重啟)2) 在從服務(wù)器的mysql 命令行內(nèi)輸入如下命令:load data from master 需要說明的是:你需要授予該賬戶其它權(quán)限:授予賬戶super 和 re

6、load全局權(quán)限。為所有想要裝載的表授予select 權(quán)限。任何該賬戶不能select 的主服務(wù)器上的表被load data from master 忽略掉。innodb:1) myisam 的第二種辦法可以2) 獲得全局讀鎖定,然后開始innodb 表的文件系統(tǒng)快照。創(chuàng)建快照最簡單的途徑是使用歸檔程序?qū)χ鞣?wù)器上的數(shù)據(jù)目錄中的數(shù)據(jù)庫進(jìn)行二進(jìn)制備份。(這部分沒有具體測試,就不說了,摘自mysql 參考手冊第6 章 mysql 中的負(fù)責(zé)6.4 如何設(shè)置復(fù)制)6.查看結(jié)果主服務(wù)器:一般情況下第一次使用命令show master status 查看主服務(wù)器狀態(tài)file 是 mysqlback.000

7、001,position 是 106. 從服務(wù)器:說明:在第一次設(shè)置完成master,slave 之后,如果要修改slave 的 my.ini 里 master 的設(shè)置必須先刪除data 下面的 文件,重啟服務(wù)才能生效。否則服務(wù)器會以中的信息為準(zhǔn)?;蛘吡硗庖粋€辦法就是直接在mysql 命令行中使用chang master to 命令。二、主主同步主主同步是指ab 同時互為master 和 slave,其操作就是在主從同步的基礎(chǔ)上在反過來再設(shè)置一次,將從服務(wù)器作為主服務(wù)器,主服務(wù)器作為從服務(wù)器。添加代碼如下:a(04 )serv

8、er-id=1 log-bin=mysqlback binlog-do-db=test master-host=1 master-user=user1 master-password=user1 master-port=3306 master-connect-retry=60 replicate-do-db=test slave-skip-errors=all b(1)server-id=2 log-bin=mysqlback binlog-do-db=test master-host=04 master-user=user2

9、master-password=user2 master-port=3306 master-connect-retry=60 replicate-do-db=test slave-skip-errors=all 注:如果有第三臺mysql 服務(wù)器 c 同步 ab其中任意一臺服務(wù)器(設(shè)為a) ,只要在ab的配置中加上log-slave-updates,一旦 a 服務(wù)器宕機(jī), b 會接管 a 作為 c 的 master 的角色。但是在接下來要講的環(huán)形同步中,一旦其中一臺服務(wù)器d 宕機(jī),該服務(wù)器d 的 master 并不會接管 d 的 slave。為什么?還沒查清楚,要是有哪位大蝦知道指點下哈。三、

10、三個或多個服務(wù)器同步三臺服務(wù)器a(04 ) 、b( 1) 、c(17 ) ,可以設(shè)置為一個環(huán)形 a-b-c-a 。 即三個服務(wù)器都同時作為master 和 slave, a 為 b的 master, b為 c的 master,c再為 a 的 master。三個服務(wù)器的配置分別為:a(04 ) :server-id=1 log-bin=c:mysqlback binlog-do-db=test master-host=17 master-user=user1 master-passwor

11、d=user1 master-port=3306 master-connect-retry=60 replicate-do-db=test log-slave-updates slave-skip-errors=all sync_binlog=1 b(1) :server-id=1 log-bin=c:mysqlback binlog-do-db=test master-host=04 master-user=user2 master-password=user2 master-port=3306 master-connect-retry=60 re

12、plicate-do-db=test log-slave-updates slave-skip-errors=all sync_binlog=1 c(17 ) :server-id=1 log-bin=c:mysqlback binlog-do-db=test master-host=1 master-user=user3 master-password=user3 master-port=5306 master-connect-retry=60 replicate-do-db=test log-slave-updates slave-skip-er

13、rors=all sync_binlog=1 其中 user1, user2,user3 等需要在不同的服務(wù)器上為不同的服務(wù)器打開相應(yīng)的權(quán)限:a:mysql grant replication slave on *.* to user1 192.168.1. 117identified by user1 ;b:mysql grant replication slave on *.* to user2 192.168.1. 104identified by user2 ;c:mysql grant replication slave on *.* to user3 192.168.1. 11id

14、entified by user3;log-slave-updates #通常情況,從服務(wù)器從主服務(wù)器接收到的更新不記入它的二進(jìn)制日志。該選項告訴從服務(wù)器將其sql 線程執(zhí)行的更新記入到從服務(wù)器自己的二進(jìn)制日志。為了使該選項生效,還必須用 -logs-bin 選項啟動從服務(wù)器以啟用二進(jìn)制日志。#在這里此項必須設(shè)置,要不然從上一臺服務(wù)器更新過來的信息不能傳遞到下一臺服務(wù)器。sync_binlog=1 #如果為正, 當(dāng)每個 sync_binlogth 寫入該二進(jìn)制日志后,mysql服務(wù)器將它的二進(jìn)制日志同步到硬盤上 (fdatasync()。請注意如果在autocommit 模式,每執(zhí)行一個語句向

15、二進(jìn)制日志寫入一次,否則每個事務(wù)寫入一次。默認(rèn)值是0,不與硬盤同步。值為1 是最安全的選擇,因為崩潰時,你最多丟掉二進(jìn)制日志中的一個語句/事務(wù);但是,這是最慢的選擇(除非硬盤有電池備份緩存,從而使同步工作較快)。多個服務(wù)器的同步就只是在環(huán)中多添加幾個節(jié)點。在環(huán)形的同步中,有一個很大的缺陷,就是如果其中一臺服務(wù)器e宕機(jī), 那么其他的服務(wù)器就只能單項同步了。 我查了很久沒有找到如何配置能是其他的服務(wù)器自動接管宕機(jī)的服務(wù)器的 master 功能。知道的大蝦還請指點哈。但是我找到了手動同步所有服務(wù)器的辦法。1) 如果能盡快的將宕機(jī)的服務(wù)器e再啟動起來,不需要做任何操作,一切都會正常的運行起來。2) 如

16、果不能做到1) ,那么就在e的 slave 服務(wù)器上面進(jìn)行如下操作:打開 mysql 命令行amysql slave stop;#關(guān)閉同步操作bmysql change master to mysql master_host=host-name, mysql master_user=user4, mysql master_password=user4, mysql master_log_file=mysqlback.000027, mysql master_log_pos=2531;# 修改 master 信息#其中 host-name 為 e的 master 。mysqlback.000027、2531 為 e宕機(jī)時其data 下面 文件中保存的當(dāng)前更新到的日志文件以及讀取到日志文件中的位置。cslave start;#打開同步操作其原理是: e的 master 一直處于運行中,其日志

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論