




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、mysql 服務(wù)器同步( replication)設(shè)置mysql 支持單向、異步復(fù)制,復(fù)制過(guò)程中一個(gè)服務(wù)器充當(dāng)主服務(wù)器,而一個(gè)或多個(gè)其它服務(wù)器充當(dāng)從服務(wù)器。主服務(wù)器將更新寫入二進(jìn)制日志文件,并維護(hù)文件的一個(gè)索引以跟蹤日志循環(huán)。這些日志可以記錄發(fā)送到從服務(wù)器的更新。當(dāng)一個(gè)從服務(wù)器連接主服務(wù)器時(shí),它通知主服務(wù)器從服務(wù)器在日志中讀取的最后一次成功更新的位置。從服務(wù)器接收從那時(shí)起發(fā)生的任何更新,然后封鎖并等待主服務(wù)器通知新的更新。環(huán)境介紹:本測(cè)試系統(tǒng)平臺(tái)為window7. 各個(gè)機(jī)器的mysql 版本均為5.1.38,其他版本沒(méi)有測(cè)試。一般只要是5.1.x 版本,且每臺(tái)機(jī)器版本一致的情況下都適用。一、
2、主從備份顧名思義,就是一臺(tái)機(jī)器作為主服務(wù)器,另外一臺(tái)或多臺(tái)作為從服務(wù)器。配置過(guò)程如下: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 是日志文件名,是路徑,在正常運(yùn)行時(shí),會(huì)在c 盤下產(chǎn)生mysqlback.000001、mysqlback.000002 等日志文件。如果直接設(shè)置為log-bin=mysqlback,則
3、會(huì)在 mysql 的 data 目錄下產(chǎn)生這些mysqlback.000001、mysqlback.000002 等日志文件。# binlog-do-db=test1 #test 為需要同步的數(shù)據(jù)庫(kù)名。如果需要同步多個(gè)數(shù)據(jù)庫(kù),多次使用這條語(yǔ)句即可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地址。如果沒(méi)有給出該選項(xiàng),從服務(wù)器線程不啟動(dòng)。master-port=3306 #如果 mysql 服務(wù)使用的默認(rèn)端口3306,就可以省略此項(xiàng)master-connect-retry=60 #在主服務(wù)器宕機(jī)或連接丟失的情況下,從服務(wù)器線程重新嘗試連接主服務(wù)器之前睡眠的秒數(shù)。如果未設(shè)置,默認(rèn)值為60。replicate-do-db=test #告訴從服務(wù)器限制默認(rèn)數(shù)據(jù)庫(kù)(由 use所選擇 )為 test的語(yǔ)句的復(fù)制。 要指定多個(gè)數(shù)據(jù)庫(kù),應(yīng)多次使用該選項(xiàng),每個(gè)數(shù)據(jù)庫(kù)使用一次。slave-skip-errors=all #忽略錯(cuò)誤繼續(xù)同步3.在主服務(wù)器上為從服務(wù)器打開(kāi)權(quán)限:g
5、rant replication slave on *.* to user1 1 identified by user1;4.重啟主從服務(wù)器的mysql 服務(wù)5.使主從服務(wù)器的數(shù)據(jù)庫(kù)保持一致根據(jù)數(shù)據(jù)庫(kù)使用的引擎不同有些區(qū)別:myisam(本次測(cè)試采用的引擎):1) 在鎖定主服務(wù)器數(shù)據(jù)庫(kù)的情況下,可以直接將data 下面的數(shù)據(jù)庫(kù)文件復(fù)制到從服務(wù)器data 下面,并重啟從服務(wù)器(如果是直接添加新的數(shù)據(jù)庫(kù)不需要重啟)2) 在從服務(wù)器的mysql 命令行內(nèi)輸入如下命令:load data from master 需要說(shuō)明的是:你需要授予該賬戶其它權(quán)限:授予賬戶super 和 re
6、load全局權(quán)限。為所有想要裝載的表授予select 權(quán)限。任何該賬戶不能select 的主服務(wù)器上的表被load data from master 忽略掉。innodb:1) myisam 的第二種辦法可以2) 獲得全局讀鎖定,然后開(kāi)始innodb 表的文件系統(tǒng)快照。創(chuàng)建快照最簡(jiǎn)單的途徑是使用歸檔程序?qū)χ鞣?wù)器上的數(shù)據(jù)目錄中的數(shù)據(jù)庫(kù)進(jìn)行二進(jìn)制備份。(這部分沒(méi)有具體測(cè)試,就不說(shuō)了,摘自mysql 參考手冊(cè)第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ù)器:說(shuō)明:在第一次設(shè)置完成master,slave 之后,如果要修改slave 的 my.ini 里 master 的設(shè)置必須先刪除data 下面的 文件,重啟服務(wù)才能生效。否則服務(wù)器會(huì)以中的信息為準(zhǔn)?;蛘吡硗庖粋€(gè)辦法就是直接在mysql 命令行中使用chang master to 命令。二、主主同步主主同步是指ab 同時(shí)互為master 和 slave,其操作就是在主從同步的基礎(chǔ)上在反過(guò)來(lái)再設(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 注:如果有第三臺(tái)mysql 服務(wù)器 c 同步 ab其中任意一臺(tái)服務(wù)器(設(shè)為a) ,只要在ab的配置中加上log-slave-updates,一旦 a 服務(wù)器宕機(jī), b 會(huì)接管 a 作為 c 的 master 的角色。但是在接下來(lái)要講的環(huán)形同步中,一旦其中一臺(tái)服務(wù)器d 宕機(jī),該服務(wù)器d 的 master 并不會(huì)接管 d 的 slave。為什么?還沒(méi)查清楚,要是有哪位大蝦知道指點(diǎn)下哈。三、
10、三個(gè)或多個(gè)服務(wù)器同步三臺(tái)服務(wù)器a(04 ) 、b( 1) 、c(17 ) ,可以設(shè)置為一個(gè)環(huán)形 a-b-c-a 。 即三個(gè)服務(wù)器都同時(shí)作為master 和 slave, a 為 b的 master, b為 c的 master,c再為 a 的 master。三個(gè)服務(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ù)器打開(kāi)相應(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)制日志。該選項(xiàng)告訴從服務(wù)器將其sql 線程執(zhí)行的更新記入到從服務(wù)器自己的二進(jìn)制日志。為了使該選項(xiàng)生效,還必須用 -logs-bin 選項(xiàng)啟動(dòng)從服務(wù)器以啟用二進(jìn)制日志。#在這里此項(xiàng)必須設(shè)置,要不然從上一臺(tái)服務(wù)器更新過(guò)來(lái)的信息不能傳遞到下一臺(tái)服務(wù)器。sync_binlog=1 #如果為正, 當(dāng)每個(gè) sync_binlogth 寫入該二進(jìn)制日志后,mysql服務(wù)器將它的二進(jìn)制日志同步到硬盤上 (fdatasync()。請(qǐng)注意如果在autocommit 模式,每執(zhí)行一個(gè)語(yǔ)句向
15、二進(jìn)制日志寫入一次,否則每個(gè)事務(wù)寫入一次。默認(rèn)值是0,不與硬盤同步。值為1 是最安全的選擇,因?yàn)楸罎r(shí),你最多丟掉二進(jìn)制日志中的一個(gè)語(yǔ)句/事務(wù);但是,這是最慢的選擇(除非硬盤有電池備份緩存,從而使同步工作較快)。多個(gè)服務(wù)器的同步就只是在環(huán)中多添加幾個(gè)節(jié)點(diǎn)。在環(huán)形的同步中,有一個(gè)很大的缺陷,就是如果其中一臺(tái)服務(wù)器e宕機(jī), 那么其他的服務(wù)器就只能單項(xiàng)同步了。 我查了很久沒(méi)有找到如何配置能是其他的服務(wù)器自動(dòng)接管宕機(jī)的服務(wù)器的 master 功能。知道的大蝦還請(qǐng)指點(diǎn)哈。但是我找到了手動(dòng)同步所有服務(wù)器的辦法。1) 如果能盡快的將宕機(jī)的服務(wù)器e再啟動(dòng)起來(lái),不需要做任何操作,一切都會(huì)正常的運(yùn)行起來(lái)。2) 如
16、果不能做到1) ,那么就在e的 slave 服務(wù)器上面進(jìn)行如下操作:打開(kāi) 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ī)時(shí)其data 下面 文件中保存的當(dāng)前更新到的日志文件以及讀取到日志文件中的位置。cslave start;#打開(kāi)同步操作其原理是: e的 master 一直處于運(yùn)行中,其日志
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年網(wǎng)絡(luò)直播產(chǎn)業(yè)行業(yè)市場(chǎng)現(xiàn)狀供需分析及投資評(píng)估規(guī)劃分析研究報(bào)告
- 2025-2030年消防機(jī)械行業(yè)市場(chǎng)現(xiàn)狀供需分析及投資評(píng)估規(guī)劃分析研究報(bào)告
- 公共關(guān)系學(xué)事件效應(yīng)試題及答案
- 2025-2030年智慧物流行業(yè)市場(chǎng)深度分析及競(jìng)爭(zhēng)格局與投資戰(zhàn)略研究報(bào)告
- 2025年經(jīng)濟(jì)法概論考試注意事項(xiàng)匯整與試題及答案
- 2025-2030年新生兒護(hù)手套產(chǎn)業(yè)市場(chǎng)發(fā)展分析及發(fā)展趨勢(shì)與投資研究報(bào)告
- 2025-2030年整體櫥柜行業(yè)市場(chǎng)現(xiàn)狀供需分析及投資評(píng)估規(guī)劃分析研究報(bào)告
- 行政管理公共關(guān)系學(xué)客戶滿意度試題及答案
- 2025-2030年成品油行業(yè)市場(chǎng)深度調(diào)研及發(fā)展趨勢(shì)與投資前景預(yù)測(cè)研究報(bào)告
- 2025-2030年應(yīng)急裝備行業(yè)市場(chǎng)發(fā)展現(xiàn)狀及競(jìng)爭(zhēng)格局與投資發(fā)展研究報(bào)告
- 江西新定額2017土建定額說(shuō)明及解釋
- 國(guó)家電網(wǎng)有限公司十八項(xiàng)電網(wǎng)重大反事故措施(修訂版)-2018版(word文檔良心出品)
- 2019年重慶江津小升初數(shù)學(xué)真題及答案
- 《菱形的判定》教學(xué)設(shè)計(jì)(共3頁(yè))
- 部編版三下語(yǔ)文《宇宙的另一邊》教學(xué)課件PPT
- 電纜井工程量計(jì)算
- 《工程勘察設(shè)計(jì)收費(fèi)管理規(guī)定》計(jì)價(jià)格200210號(hào)文
- 育種學(xué) 第6章雜交育種
- 附件一∶ 教育部專家實(shí)地評(píng)估案頭必備材料
- 火災(zāi)撲救記錄表
- 鋼芯鋁絞線參數(shù)
評(píng)論
0/150
提交評(píng)論