教學(xué)課件-09 .mysql復(fù)制_第1頁
教學(xué)課件-09 .mysql復(fù)制_第2頁
教學(xué)課件-09 .mysql復(fù)制_第3頁
教學(xué)課件-09 .mysql復(fù)制_第4頁
教學(xué)課件-09 .mysql復(fù)制_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

Oracle數(shù)據(jù)庫培訓(xùn)侯圣文MySQL復(fù)制恩墨學(xué)院

傳DBA成功之路,授IT人立身業(yè)MySQL復(fù)制復(fù)制是MySQL的一項(xiàng)功能,允許服務(wù)器將更改從一個(gè)實(shí)例復(fù)制到另一個(gè)實(shí)例。主服務(wù)器將所有數(shù)據(jù)和結(jié)構(gòu)更改記錄到二進(jìn)制日志中。從屬服務(wù)器從主服務(wù)器請求該二進(jìn)制日志并在本地應(yīng)用其內(nèi)容。2復(fù)制主服務(wù)器和從屬服務(wù)器

主/從屬服務(wù)器關(guān)系是一對多關(guān)系:每個(gè)從屬服務(wù)器從一個(gè)主服務(wù)器讀取日志一個(gè)主服務(wù)器可以將日志傳送給許多從屬服務(wù)器一個(gè)從屬服務(wù)器可以用作另一個(gè)從屬服務(wù)器的主服務(wù)器3復(fù)制用例復(fù)制的常見用法:水平向外擴(kuò)展:在多個(gè)從屬服務(wù)器中分布查詢工作負(fù)荷。業(yè)務(wù)智能和分析:在從屬服務(wù)器上運(yùn)行開銷昂貴的報(bào)表

和分析,使主服務(wù)器集中處理生產(chǎn)應(yīng)用程序。地理數(shù)據(jù)分布:使用本地應(yīng)用程序?yàn)楸镜赜脩籼峁┓?wù),并將業(yè)務(wù)智能數(shù)據(jù)復(fù)制到公司服務(wù)器。4高可用性復(fù)制復(fù)制允許各種高可用性用例:受控切換:在硬件或系統(tǒng)升級期間使用副本來代替生產(chǎn)

服務(wù)器。服務(wù)器冗余:在系統(tǒng)故障時(shí)執(zhí)行故障轉(zhuǎn)移到副本服務(wù)器。軟件升級:在環(huán)境升級過程中在不同版本的MySQL之間進(jìn)行復(fù)制。從屬服務(wù)器運(yùn)行的版本必須比主服務(wù)器新。在升級過程中發(fā)出的查詢必須受升級過程中使用的所有版本的支持。5配置復(fù)制為每個(gè)服務(wù)器配置唯一server-id。配置每個(gè)主服務(wù)器:啟用二進(jìn)制日志并啟用TCP/IP網(wǎng)絡(luò)。創(chuàng)建具有REPLICATIONSLAVE

特權(quán)的新用戶。備份主數(shù)據(jù)庫,并且記錄日志坐標(biāo)。配置每個(gè)從屬服務(wù)器恢復(fù)主庫備份。在每個(gè)從屬服務(wù)器上發(fā)出CHANGEMASTERTO

語句,包含:主服務(wù)器的網(wǎng)絡(luò)位置復(fù)制帳戶用戶名和口令開始復(fù)制操作的日志坐標(biāo)使用STARTSLAVE開始復(fù)制。6CHANGEMASTERTO在從屬服務(wù)器上發(fā)出CHANGEMASTERTO…

語句來

配置復(fù)制主服務(wù)器連接詳細(xì)信息:CHANGEMASTERTO

的后續(xù)調(diào)用保留每個(gè)未指定選項(xiàng)的值。更改主服務(wù)器的主機(jī)或端口還會(huì)重置日志坐標(biāo)。以下語句更改口令,但是保留所有其他設(shè)置:7mysql>CHANGEMASTERTO

->MASTER_HOST='host_name',->MASTER_PORT=port_num,->MASTER_USER='user_name',->MASTER_PASSWORD='password',->MASTER_LOG_FILE='master_log_name',->MASTER_LOG_POS=master_log_pos;mysql>CHANGEMASTERTOMASTER_PASSWORD='newpass';使用日志坐標(biāo)進(jìn)行故障遷移一主多從故障遷移查找應(yīng)用于每個(gè)從屬服務(wù)器的最近事件選擇最新從屬服務(wù)器作為新的主服務(wù)器確定新主服務(wù)器上的日志坐標(biāo)來匹配每個(gè)其他從屬服務(wù)器上最新應(yīng)用的事件在每個(gè)從屬服務(wù)器上發(fā)出正確的CHANGEMASTERTO…在循環(huán)拓?fù)渲?,查找每個(gè)二進(jìn)制日志中的事件源變得非常困難GTIDs8使用日志坐標(biāo)進(jìn)行故障轉(zhuǎn)移(cont.)9全局事務(wù)標(biāo)識(shí)符

(GlobalTransactionIdentifier,GTID)全局事務(wù)標(biāo)識(shí)符

(GlobalTransactionIdentifier,GTID)唯一地標(biāo)識(shí)復(fù)制的網(wǎng)絡(luò)中的每個(gè)事務(wù)。每個(gè)

GTID的形式為

<source-uuid>:<transaction-id>GTID集包含一系列

GTID:使用以下選項(xiàng)啟用

GTID模式:gtid-mode=ON:與每個(gè)事務(wù)一起記錄唯一的

GTIDenforce-gtid-consistency:禁止無法以事務(wù)安全方式記錄的事件log-slave-updates:將復(fù)制的事件記錄到從屬服務(wù)器的二進(jìn)制日志Log-bin:

開啟二進(jìn)制日志100ed18583-47fd-11e2-92f3-0019b944b7f7:3380ed18583-47fd-11e2-92f3-0019b944b7f7:1-338使用GTID進(jìn)行復(fù)制使用CHANGEMASTERTO...

啟用GTID復(fù)制:告知從屬服務(wù)器通過GTID標(biāo)識(shí)事務(wù):不需要提供日志坐標(biāo)MASTER_LOG_FILEMASTER_LOG_POS不能在同一CHANGEMASTERTO...

語句中提供MASTER_AUTO_POSITION

和日志坐標(biāo)。11CHANGEMASTERTOMASTER_AUTO_POSITION=1;使用GTID進(jìn)行故障遷移使用GTID時(shí),循環(huán)拓?fù)渲械墓收线w移很簡單。在發(fā)生故障的主服務(wù)器的從屬服務(wù)器上,通過發(fā)出單個(gè)CHANGEMASTERTO

語句繞過該主服務(wù)器。每個(gè)服務(wù)器忽略或應(yīng)用從拓?fù)渲械钠渌?wù)器復(fù)制的事務(wù),具體取決于是否看到了該事務(wù)的GTID。非循環(huán)拓?fù)渲械墓收线w移同樣簡單。臨時(shí)將新主服務(wù)器配置為最新從屬服務(wù)器的從屬服務(wù)器,直到該新主服務(wù)器變?yōu)樽钚隆?2復(fù)制過濾規(guī)則過濾器是應(yīng)用于主服務(wù)器或從屬服務(wù)器的服務(wù)器選項(xiàng):主服務(wù)器寫入二進(jìn)制日志時(shí)應(yīng)用binlog-*

過濾器。從屬服務(wù)器讀取中繼日志時(shí)應(yīng)用replicate-*

過濾器?;谝韵赂黜?xiàng)選擇要復(fù)制的事件:數(shù)據(jù)庫:replicate-do-db,binlog-do-dbreplicate-ignore-db,binlog-ignore-db表:replicate-do-table,replicate-wild-do-tablereplicate-ignore-table,

replicate-wild-ignore-table13MySQL工具集MySQL實(shí)用程序是提供許多有用功能的命令行工具。它們:隨MySQLWorkbench提供用于維護(hù)和管理MySQL服務(wù)器以Python編寫,Python編程人員很容易使用提供的庫對其進(jìn)行擴(kuò)展對于配置復(fù)制拓?fù)浜蛨?zhí)行故障遷移非常有用14用于復(fù)制的MySQL實(shí)用程序許多實(shí)用程序?qū)τ趶?fù)制特別有用:mysqldbcopy:將數(shù)據(jù)庫以及復(fù)制配置從源服務(wù)器復(fù)制到目標(biāo)服務(wù)器pare:比較兩個(gè)數(shù)據(jù)庫來查找區(qū)別并創(chuàng)建腳本來同步這兩個(gè)數(shù)據(jù)庫mysqlrpladmin:管理復(fù)制拓?fù)湓谥鞣?wù)器故障后故障轉(zhuǎn)移到最佳從屬服務(wù)器切換以升級指定的從屬服務(wù)器啟動(dòng)、重置或停止所有從屬服務(wù)器mysqlfailover:持續(xù)監(jiān)視主服務(wù)器,并執(zhí)行故障轉(zhuǎn)移到最佳可用從屬服務(wù)器15用于復(fù)制的MySQL實(shí)用程序(cont.)mysqlrplcheck:檢查主服務(wù)器和從屬服務(wù)器之間進(jìn)行復(fù)制的先決條件,包括:二進(jìn)制日志記錄具有適當(dāng)特權(quán)的復(fù)制用戶server_id

沖突可能導(dǎo)致復(fù)制沖突的各種設(shè)置mysqlreplicate:在兩個(gè)服務(wù)器之間啟動(dòng)復(fù)制,報(bào)告不匹配警告消息mysqlrplshow:顯示主服務(wù)器與從屬服務(wù)器之間的復(fù)制拓?fù)浠蛘哌f歸顯示整個(gè)拓?fù)?6異步復(fù)制從屬服務(wù)器請求二進(jìn)制日志并應(yīng)用其內(nèi)容。從屬服務(wù)器通常滯后于主服務(wù)器。主服務(wù)器不關(guān)注從屬服務(wù)器何時(shí)應(yīng)用日志。主服務(wù)器繼續(xù)運(yùn)行而不等待從屬服務(wù)器。17異步同步客戶機(jī)請求

是同步的。復(fù)制是

異步的。半同步復(fù)制半同步復(fù)制:在主服務(wù)器和至少一個(gè)從屬服務(wù)器上需要插件阻止每個(gè)主服務(wù)器事件,直到至少一個(gè)從屬服務(wù)器接收該事件如果發(fā)生超時(shí)則切換到異步復(fù)制18異步同步主服務(wù)器在提交每個(gè)事務(wù)后執(zhí)行阻止直到至少一個(gè)從屬服務(wù)器提交該事務(wù)。僅當(dāng)主服務(wù)器和至少一個(gè)從屬服務(wù)器提交事務(wù)時(shí)

客戶機(jī)才收到“成功”。查看二進(jìn)制日志記錄二進(jìn)制日志:包含數(shù)據(jù)和模式更改及其時(shí)間戳基于語句或基于行的日志記錄用于從備份的時(shí)間點(diǎn)恢復(fù)、從備份的完全恢復(fù)以及復(fù)制在下列情況下輪轉(zhuǎn):MySQL重新啟動(dòng)其達(dá)到max_binlog_size

設(shè)置的最大大小您發(fā)出FLUSHLOGS

語句可以各種方式進(jìn)行檢查:元數(shù)據(jù):SHOWBINARYLOGS、SHOWMASTERSTATUS內(nèi)容:mysqlbinlog19復(fù)制日志從屬服務(wù)器維護(hù)有關(guān)復(fù)制事件的信息。中繼日志集:包括中繼日志和中繼日志索引文件包含主服務(wù)器的二進(jìn)制日志事件的副本從屬服務(wù)器狀態(tài)日志:包含執(zhí)行復(fù)制所需的信息主服務(wù)器連接詳細(xì)信息和日志坐標(biāo)中繼日志坐標(biāo)存儲(chǔ)在文件或表中

文件(默認(rèn)情況下)mysql

數(shù)據(jù)庫中的slave_master_info

和slave_relay_log_info

表20故障安全(Crash-Safe)復(fù)制二進(jìn)制日志記錄:MySQL僅記錄完成事件或事務(wù)。使用sync-binlog提高安全性。默認(rèn)情況下是0,表示操作系統(tǒng)根據(jù)其內(nèi)部規(guī)則向文件寫入將sync-binlog設(shè)置為1,強(qiáng)制操作系統(tǒng)在每個(gè)事務(wù)commit后寫入文件,或者將其設(shè)置為任何較大數(shù)值以在該數(shù)量的事務(wù)之后寫入。將從屬服務(wù)器狀態(tài)日志存儲(chǔ)在表中以進(jìn)行故障安全復(fù)制:選項(xiàng):master-info-repository和relay-log-info-repository可能值為FILE(默認(rèn)值)和TABLE。TABLE是故障安全的。21Crash-safeReplication復(fù)制線程從屬服務(wù)器連接到主服務(wù)器時(shí):主服務(wù)器創(chuàng)建Binlogdump線程從二進(jìn)制日志讀取事件并將其發(fā)送到從屬服務(wù)器I/O線程從屬服務(wù)器至少創(chuàng)建兩個(gè)線程:從屬服務(wù)器I/O線程從主服務(wù)器的Binlogdump線程讀取事件并將其寫入從屬服務(wù)器的中繼日志從屬服務(wù)器SQL線程在單線程從屬服務(wù)器上應(yīng)用中繼日志事件在多線程從屬服務(wù)器上的工作線程之間分配中繼日志事件從屬服務(wù)器工作線程在多線程從屬服務(wù)器上應(yīng)用中繼日志事件23控制從屬服務(wù)器線程控制從屬服務(wù)器線程:單獨(dú)控制線程:啟動(dòng)線程直到指定的條件:24STARTSLAVE;STOPSLAVE;STARTSLAVEIO_THREAD;STOPSLAVESQL_THREAD;STARTSLAVEUNTILSQL_AFTER_MTS_GAPS;STARTSLAVEIO_THREAD

UNTILSQL_AFTER_GTIDS=

0ed18583-47fd-11e2-92f3-0019b944b7f7:338;復(fù)制從屬服務(wù)器I/O線程狀態(tài)最常見的I/O線程狀態(tài)是:ConnectingtomasterWaitingformastertosendeventQueueingmastereventtotherelaylogWaitingtoreconnectafterafailedbinlogdumprequestReconnectingafterafailedbinlogdumprequestWaitingtoreconnectafterafailedmastereventreadReconnectingafterafailedmastereventreadWaitingfortheslaveSQLthreadtofreeenoughrelaylogspace25復(fù)制從屬服務(wù)器SQL線程狀態(tài)最常見的SQL線程狀態(tài)是:WaitingforthenexteventinrelaylogReadingeventfromtherelaylogMakingtempfileSlavehasreadallrelaylog;waitingfortheslaveI/OthreadtoupdateitWaitinguntilMASTER_DELAYsecondsaftermasterexecutedevent以下狀態(tài)出現(xiàn)在工作線程中:WaitingforaneventfromCoordinator26排除MySQL復(fù)制故障查看錯(cuò)誤日志。錯(cuò)誤日志可以為您提供足夠信息來確定和更正復(fù)制中的問題。在主服務(wù)器上發(fā)出SHOWMASTERSTATUS語句。如果位置值非零則啟用日志記錄

溫馨提示

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

評論

0/150

提交評論