不同場(chǎng)景下 MySQL 的遷移方案_第1頁(yè)
不同場(chǎng)景下 MySQL 的遷移方案_第2頁(yè)
不同場(chǎng)景下 MySQL 的遷移方案_第3頁(yè)
不同場(chǎng)景下 MySQL 的遷移方案_第4頁(yè)
不同場(chǎng)景下 MySQL 的遷移方案_第5頁(yè)
已閱讀5頁(yè),還剩16頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

一、為什么要遷移MySQL遷移是DBA日常維護(hù)中的一個(gè)工作。遷移,究其本義,無(wú)非是把實(shí)際存在的物體挪走,保證該物體的完整性以及延續(xù)性。就像柔軟的沙灘上,兩個(gè)天真無(wú)邪的小孩,把一堆沙子挪向其他地方,鑄就內(nèi)心神往的城堡。生產(chǎn)環(huán)境中,有以下情況需要做遷移工作,如下:磁盤(pán)空間不夠。比如一些老項(xiàng)目,選用的機(jī)型并不一定適用于數(shù)據(jù)庫(kù)。隨著時(shí)間的推移,硬盤(pán)很有可能出現(xiàn)短缺;業(yè)務(wù)出現(xiàn)瓶頸。比如項(xiàng)目中采用單機(jī)承擔(dān)所有的讀寫(xiě)業(yè)務(wù),業(yè)務(wù)壓力增大,不堪重負(fù)。如果IO壓力在可接受的范圍,會(huì)采用讀寫(xiě)分離方案;機(jī)器出現(xiàn)瓶頸。機(jī)器出現(xiàn)瓶頸主要在磁盤(pán)IO能力、內(nèi)存、CPU,此時(shí)除了針對(duì)瓶頸做一些優(yōu)化以外,選擇遷移是不錯(cuò)的方案;項(xiàng)目改造。某些項(xiàng)目的數(shù)據(jù)庫(kù)存在跨機(jī)房的情況,可能會(huì)在不同機(jī)房中增加節(jié)點(diǎn),或者把機(jī)器從一個(gè)機(jī)房遷移到另一個(gè)機(jī)房。再比如,不同業(yè)務(wù)共用同一臺(tái)服務(wù)器,為了緩解服務(wù)器壓力以及方便維護(hù),也會(huì)做遷移。一句話,遷移工作是不得已而為之。實(shí)施遷移工作,目的是讓業(yè)務(wù)平穩(wěn)持續(xù)地運(yùn)行。二、MySQL遷移方案概覽MySQL遷移無(wú)非是圍繞著數(shù)據(jù)做工作,再繼續(xù)延伸,無(wú)非就是在保證業(yè)務(wù)平穩(wěn)持續(xù)地運(yùn)行的前提下做備份恢復(fù)。那問(wèn)題就在怎么快速安全地進(jìn)行備份恢復(fù)。一方面,備份。針對(duì)每個(gè)主節(jié)點(diǎn)的從節(jié)點(diǎn)或者備節(jié)點(diǎn),都有備份。這個(gè)備份可能是全備,可能是增量備份。在線備份的方法,可能是使用mysqldump,可能是xtrabackup,還可能是mydumper。針對(duì)小容量(10GB以下)數(shù)據(jù)庫(kù)的備份,我們可以使用mysqldump。但針對(duì)大容量數(shù)據(jù)庫(kù)(數(shù)百GB或者TB級(jí)別),我們不能使用mysqldump備份,一方面,會(huì)產(chǎn)生鎖;另一方面,耗時(shí)太長(zhǎng)。這種情況,可以選擇xtrabackup或者直接拷貝數(shù)據(jù)目錄。直接拷貝數(shù)據(jù)目錄方法,不同機(jī)器傳輸可以使用rsync,耗時(shí)跟網(wǎng)絡(luò)相關(guān)。使用xtrabackup,耗時(shí)主要在備份和網(wǎng)絡(luò)傳輸。如果有全備或者指定庫(kù)的備份文件,這是獲取備份的最好方法。如果備庫(kù)可以容許停止服務(wù),直接拷貝數(shù)據(jù)目錄是最快的方法。如果備庫(kù)不允許停止服務(wù),我們可以使用xtrabackup(不會(huì)鎖定InnoDB表),這是完成備份的最佳折中辦法。另一方面,恢復(fù)。針對(duì)小容量(10GB以下)數(shù)據(jù)庫(kù)的備份文件,我們可以直接導(dǎo)入。針對(duì)大容量數(shù)據(jù)庫(kù)(數(shù)百GB或者TB級(jí)別)的恢復(fù),拿到備份文件到本機(jī)以后,恢復(fù)不算困難。具體的恢復(fù)方法可以參考第四節(jié)。三、MySQL遷移實(shí)戰(zhàn)我們搞明白為什么要做遷移,以及遷移怎么做以后,接下來(lái)看看生產(chǎn)環(huán)境是怎樣操作的。不同的應(yīng)用場(chǎng)景,有不同的解決方案。閱讀具體的實(shí)戰(zhàn)之前,假設(shè)和讀者有如下約定:為了保護(hù)隱私,本文中的服務(wù)器IP等信息經(jīng)過(guò)處理;如果服務(wù)器在同一機(jī)房,用服務(wù)器IP的D段代替服務(wù)器,具體的IP請(qǐng)參考架構(gòu)圖;如果服務(wù)器在不同機(jī)房,用服務(wù)器IP的C段和D段代替服務(wù)器,具體的IP請(qǐng)參考架構(gòu)圖;每個(gè)場(chǎng)景給出方法,但不會(huì)詳細(xì)地給出每一步執(zhí)行什么命令,因?yàn)橐环矫?,這會(huì)導(dǎo)致文章過(guò)長(zhǎng);另一方面,我認(rèn)為只要知道方法,具體的做法就會(huì)迎面撲來(lái)的,只取決于掌握知識(shí)的程度和獲取信息的能力;實(shí)戰(zhàn)過(guò)程中的注意事項(xiàng)請(qǐng)參考第五節(jié)。3.1場(chǎng)景一一主一從結(jié)構(gòu)遷移從庫(kù)遵循從易到難的思路,我們從簡(jiǎn)單的結(jié)構(gòu)入手。A項(xiàng)目,原本是一主一從結(jié)構(gòu)。101是主節(jié)點(diǎn),102是從節(jié)點(diǎn)。因業(yè)務(wù)需要,把102從節(jié)點(diǎn)遷移至103,架構(gòu)圖如圖一。102從節(jié)點(diǎn)的數(shù)據(jù)容量過(guò)大,不能使用mysqldump的形式備份。和研發(fā)溝通后,形成一致的方案。

圖一一主一從結(jié)構(gòu)遷移從庫(kù)架構(gòu)圖具體做法是這樣:研發(fā)將102的讀業(yè)務(wù)切到主庫(kù);確認(rèn)102MySQL狀態(tài)(主要看PROCESSLIST),觀察機(jī)器流量,確認(rèn)無(wú)誤后,停止102從節(jié)點(diǎn)的服務(wù);103新建MySQL實(shí)例,建成以后,停止MySQL服務(wù),并且將整個(gè)數(shù)據(jù)目錄mv到其他地方做備份;將102的整個(gè)mysql數(shù)據(jù)目錄使用rsync拷貝到103;拷貝的同時(shí),在101授權(quán),使103有拉取binlog的權(quán)限(REPLICATIONSLAVE,REPLICATIONCLIENT);待拷貝完成,修改103配置文件中的server_id,注意不要和102上的一致;在103啟動(dòng)MySQL實(shí)例,注意配置文件中的數(shù)據(jù)文件路徑以及數(shù)據(jù)目錄的權(quán)限;進(jìn)入103MySQL實(shí)例,使用SHOWSLAVESTATUS檢查從庫(kù)狀態(tài),可以看到Seconds_Behind_Master在遞減;Seconds_Behind_Master變?yōu)?后,表示同步完成,此時(shí)可以用pt-table-checksum檢查101和103的數(shù)據(jù)一致,但比較耗時(shí),而且對(duì)主節(jié)點(diǎn)有影響,可以和開(kāi)發(fā)一起進(jìn)行數(shù)據(jù)一致性的驗(yàn)證;和研發(fā)溝通,除了做數(shù)據(jù)一致性驗(yàn)證外,還需要驗(yàn)證賬號(hào)權(quán)限,以防業(yè)務(wù)遷回后訪問(wèn)出錯(cuò);做完上述步驟,可以和研發(fā)協(xié)調(diào),把101的部分讀業(yè)務(wù)切到103,觀察業(yè)務(wù)狀態(tài);如果業(yè)務(wù)沒(méi)有問(wèn)題,證明遷移成功。3.2場(chǎng)景二一主一從結(jié)構(gòu)遷移指定庫(kù)我們知道一主一從只遷移從庫(kù)怎么做之后,接下來(lái)看看怎樣同時(shí)遷移主從節(jié)點(diǎn)。因不同業(yè)務(wù)同時(shí)訪問(wèn)同一服務(wù)器,導(dǎo)致單個(gè)庫(kù)壓力過(guò)大,還不便管理。于是,打算將主節(jié)點(diǎn)101和從節(jié)點(diǎn)102同時(shí)遷移至新的機(jī)器103和104,103充當(dāng)主節(jié)點(diǎn),104充當(dāng)從節(jié)點(diǎn),架構(gòu)圖如圖二。此次遷移只需要遷移指定庫(kù),這些庫(kù)容量不是太大,并且可以保證數(shù)據(jù)不是實(shí)時(shí)的。

圖二一主一從結(jié)構(gòu)遷移指定庫(kù)架構(gòu)圖具體的做法如下:103和104新建實(shí)例,搭建主從關(guān)系,此時(shí)的主節(jié)點(diǎn)和從節(jié)點(diǎn)處于空載;102導(dǎo)出數(shù)據(jù),正確的做法是配置定時(shí)任務(wù),在業(yè)務(wù)低峰做導(dǎo)出操作,此處選擇的是mysqldump;102收集指定庫(kù)需要的賬號(hào)以及權(quán)限;102導(dǎo)出數(shù)據(jù)完畢,使用rsync傳輸?shù)?03,必要時(shí)做壓縮操作;103導(dǎo)入數(shù)據(jù),此時(shí)數(shù)據(jù)會(huì)自動(dòng)同步到104,監(jiān)控服務(wù)器狀態(tài)以及MySQL狀態(tài);103導(dǎo)入完成,104同步完成,103根據(jù)102收集的賬號(hào)授權(quán),完成后,通知研發(fā)檢查數(shù)據(jù)以及賬戶權(quán)限;上述完成后,可研發(fā)協(xié)作,將101和102的業(yè)務(wù)遷移到103和104,觀察業(yè)務(wù)狀態(tài);如果業(yè)務(wù)沒(méi)有問(wèn)題,證明遷移成功。3.3場(chǎng)景三一主一從結(jié)構(gòu)雙邊遷移指定庫(kù)接下來(lái)看看一主一從結(jié)構(gòu)雙邊遷移指定庫(kù)怎么做。同樣是因?yàn)闃I(yè)務(wù)共用,導(dǎo)致服務(wù)器壓力大,管理混亂。于是,打算將主節(jié)點(diǎn)101和從節(jié)點(diǎn)102同時(shí)遷移至新的機(jī)器103、104、105、106,103充當(dāng)104的主節(jié)點(diǎn),104充當(dāng)103的從節(jié)點(diǎn),105充當(dāng)106的主節(jié)點(diǎn),106充當(dāng)105的從節(jié)點(diǎn),架構(gòu)圖如圖三。此次遷移只需要遷移指定庫(kù),這些庫(kù)容量不是太大,并且可以保證數(shù)據(jù)不是實(shí)時(shí)的。我們可以看到,此次遷移和場(chǎng)景二很類(lèi)似,無(wú)非做了兩次遷移。

圖三一主一從結(jié)構(gòu)雙邊遷移指定庫(kù)架構(gòu)圖具體的做法如下:103和104新建實(shí)例,搭建主從關(guān)系,此時(shí)的主節(jié)點(diǎn)和從節(jié)點(diǎn)處于空載;102導(dǎo)出103需要的指定庫(kù)數(shù)據(jù),正確的做法是配置定時(shí)任務(wù),在業(yè)務(wù)低峰做導(dǎo)出操作,此處選擇的是mysqldump;102收集103需要的指定庫(kù)需要的賬號(hào)以及權(quán)限;102導(dǎo)出103需要的指定庫(kù)數(shù)據(jù)完畢,使用rsync傳輸?shù)?03,必要時(shí)做壓縮操作;103導(dǎo)入數(shù)據(jù),此時(shí)數(shù)據(jù)會(huì)自動(dòng)同步到104,監(jiān)控服務(wù)器狀態(tài)以及MySQL狀態(tài);103導(dǎo)入完成,104同步完成,103根據(jù)102收集的賬號(hào)授權(quán),完成后,通知研發(fā)檢查數(shù)據(jù)以及賬戶權(quán)限;上述完成后,和研發(fā)協(xié)作,將101和102的業(yè)務(wù)遷移到103和104,觀察業(yè)務(wù)狀態(tài);105和106新建實(shí)例,搭建主從關(guān)系,此時(shí)的主節(jié)點(diǎn)和從節(jié)點(diǎn)處于空載;102導(dǎo)出105需要的指定庫(kù)數(shù)據(jù),正確的做法是配置定時(shí)任務(wù),在業(yè)務(wù)低峰做導(dǎo)出操作,此處選擇的是mysqldump;102收集105需要的指定庫(kù)需要的賬號(hào)以及權(quán)限;102導(dǎo)出105需要的指定庫(kù)數(shù)據(jù)完畢,使用rsync傳輸?shù)?05,必要時(shí)做壓縮操作;105導(dǎo)入數(shù)據(jù),此時(shí)數(shù)據(jù)會(huì)自動(dòng)同步到106,監(jiān)控服務(wù)器狀態(tài)以及MySQL狀態(tài);105導(dǎo)入完成,106同步完成,105根據(jù)102收集的賬號(hào)授權(quán),完成后,通知研發(fā)檢查數(shù)據(jù)以及賬戶權(quán)限;上述完成后,和研發(fā)協(xié)作,將101和102的業(yè)務(wù)遷移到105和106,觀察業(yè)務(wù)狀態(tài);如果所有業(yè)務(wù)沒(méi)有問(wèn)題,證明遷移成功。3.4場(chǎng)景四一主一從結(jié)構(gòu)完整遷移主從接下來(lái)看看一主一從結(jié)構(gòu)完整遷移主從怎么做。和場(chǎng)景二類(lèi)似,不過(guò)此處是遷移所有庫(kù)。因101主節(jié)點(diǎn)IO出現(xiàn)瓶頸,打算將主節(jié)點(diǎn)101和從節(jié)點(diǎn)102同時(shí)遷移至新的機(jī)器103和104,103充當(dāng)主節(jié)點(diǎn),104充當(dāng)從節(jié)點(diǎn)。遷移完成后,以前的主節(jié)點(diǎn)和從節(jié)點(diǎn)廢棄,架構(gòu)圖如圖四。此次遷移是全庫(kù)遷移,容量大,并且需要保證實(shí)時(shí)。這次的遷移比較特殊,因?yàn)椴扇〉牟呗允窍忍鎿Q新的從庫(kù),再替換新的主庫(kù)。所以做法稍微復(fù)雜些。

圖四一主一從結(jié)構(gòu)完整遷移主從架構(gòu)圖具體的做法是這樣:研發(fā)將102的讀業(yè)務(wù)切到主庫(kù);確認(rèn)102MySQL狀態(tài)(主要看PROCESSLIST,MASTERSTATUS),觀察機(jī)器流量,確認(rèn)無(wú)誤后,停止102從節(jié)點(diǎn)的服務(wù);104新建MySQL實(shí)例,建成以后,停止MySQL服務(wù),并且將整個(gè)數(shù)據(jù)目錄mv到其他地方做備份,注意,此處操作的是104,也就是未來(lái)的從庫(kù);將102的整個(gè)mysql數(shù)據(jù)目錄使用rsync拷貝到104;拷貝的同時(shí),在101授權(quán),使104有拉取binlog的權(quán)限(REPLICATIONSLAVE,REPLICATIONCLIENT);待拷貝完成,修改104配置文件中的server_id,注意不要和102上的一致;在104啟動(dòng)MySQL實(shí)例,注意配置文件中的數(shù)據(jù)文件路徑以及數(shù)據(jù)目錄的權(quán)限;進(jìn)入104MySQL實(shí)例,使用SHOWSLAVESTATUS檢查從庫(kù)狀態(tài),可以看到Seconds_Behind_Master在遞減;Seconds_Behind_Master變?yōu)?后,表示同步完成,此時(shí)可以用pt-table-checksum檢查101和104的數(shù)據(jù)一致,但比較耗時(shí),而且對(duì)主節(jié)點(diǎn)有影響,可以和開(kāi)發(fā)一起進(jìn)行數(shù)據(jù)一致性的驗(yàn)證;除了做數(shù)據(jù)一致性驗(yàn)證外,還需要驗(yàn)證賬號(hào)權(quán)限,以防業(yè)務(wù)遷走后訪問(wèn)出錯(cuò);和研發(fā)協(xié)作,將之前102從節(jié)點(diǎn)的讀業(yè)務(wù)切到104;利用102的數(shù)據(jù),將103變?yōu)?01的從節(jié)點(diǎn),方法同上;接下來(lái)到了關(guān)鍵的地方了,我們需要把104變成103的從庫(kù);104STOPSLAVE;103STOPSLAVEIO_THREAD;103STOPSLAVESQL_THREAD,記住MASTER_LOG_FILE和MASTER_LOG_POS;104STARTSLAVEUNTIL到上述MASTER_LOG_FILE和MASTER_LOG_POS;104再次STOPSLAVE;104RESETSLAVEALL清除從庫(kù)配置信息;103SHOWMASTERSTATUS,記住MASTER_LOG_FILE和MASTER_LOG_POS;103授權(quán)給104訪問(wèn)binlog的權(quán)限;104CHANGEMASTERTO103;104重啟MySQL,因?yàn)镽ESETSLAVEALL后,查看SLAVESTATUS,Master_Server_Id仍然為101,而不是103;104MySQL重啟后,SLAVE回自動(dòng)重啟,此時(shí)查看IO_THREAD和SQL_THREAD是否為YES;103STARTSLAVE;此時(shí)查看103和104的狀態(tài),可以發(fā)現(xiàn),以前104是101的從節(jié)點(diǎn),如今變成103的從節(jié)點(diǎn)了。業(yè)務(wù)遷移之前,斷掉103和101的同步關(guān)系;做完上述步驟,可以和研發(fā)協(xié)調(diào),把101的讀寫(xiě)業(yè)務(wù)切回102,讀業(yè)務(wù)切到104。需要注意的是,此時(shí)101和103均可以寫(xiě),需要保證101在沒(méi)有寫(xiě)入的情況下切到103,可以使用FLUSHTABLESWITHREADLOCK鎖住101,然后業(yè)務(wù)切到103。注意,一定要業(yè)務(wù)低峰執(zhí)行,切記;切換完成后,觀察業(yè)務(wù)狀態(tài);如果業(yè)務(wù)沒(méi)有問(wèn)題,證明遷移成功。3.5場(chǎng)景五雙主結(jié)構(gòu)跨機(jī)房遷移接下來(lái)看看雙主結(jié)構(gòu)跨機(jī)房遷移怎么做。某項(xiàng)目出于容災(zāi)考慮,使用了跨機(jī)房,采用了雙主結(jié)構(gòu),雙邊均可以寫(xiě)。因?yàn)榇疟P(pán)空間問(wèn)題,需要對(duì)A地的機(jī)器進(jìn)行替換。打算將主節(jié)點(diǎn)1.101和從節(jié)點(diǎn)1.102同時(shí)遷移至新的機(jī)器1.103和1.104,1.103充當(dāng)主節(jié)點(diǎn),1.104充當(dāng)從節(jié)點(diǎn)。B地的2.101和2.102保持不變,但遷移完成后,1.103和2.101互為雙主。架構(gòu)圖如圖五。因?yàn)槭请p主結(jié)構(gòu),兩邊同時(shí)寫(xiě),如果要替換主節(jié)點(diǎn),單方必須有節(jié)點(diǎn)停止服務(wù)。

圖五雙主結(jié)構(gòu)跨機(jī)房遷移架構(gòu)圖具體的做法如下:1.103和1.104新建實(shí)例,搭建主從關(guān)系,此時(shí)的主節(jié)點(diǎn)和從節(jié)點(diǎn)處于空載;確認(rèn)1.102MySQL狀態(tài)(主要看PROCESSLIST),注意觀察MASTERSTATUS不再變化。觀察機(jī)器流量,確認(rèn)無(wú)誤后,停止1.102從節(jié)點(diǎn)的服務(wù);1.103新建MySQL實(shí)例,建成以后,停止MySQL服務(wù),并且將整個(gè)數(shù)據(jù)目錄mv到其他地方做備份;將1.102的整個(gè)mysql數(shù)據(jù)目錄使用rsync拷貝到1.103;拷貝的同時(shí),在1.101授權(quán),使1.103有拉取binlog的權(quán)限(REPLICATIONSLAVE,REPLICATIONCLIENT);待拷貝完成,修改1.103配置文件中的server_id,注意不要和1.102上的一致;在1.103啟動(dòng)MySQL實(shí)例,注意配置文件中的數(shù)據(jù)文件路徑以及數(shù)據(jù)目錄的權(quán)限;進(jìn)入1.103MySQL實(shí)例,使用SHOWSLAVESTATUS檢查從庫(kù)狀態(tài),可以看到Seconds_Behind_Master在遞減;Seconds_Behind_Master變?yōu)?后,表示同步完成,此時(shí)可以用pt-table-checksum檢查1.101和1.103的數(shù)據(jù)一致,但比較耗時(shí),而且對(duì)主節(jié)點(diǎn)有影響,可以和開(kāi)發(fā)一起進(jìn)行數(shù)據(jù)一致性的驗(yàn)證;我們使用相同的辦法,使1.104變成1.103的從庫(kù);和研發(fā)溝通,除了做數(shù)據(jù)一致性驗(yàn)證外,還需要驗(yàn)證賬號(hào)權(quán)限,以防業(yè)務(wù)遷走后訪問(wèn)出錯(cuò);此時(shí),我們要做的就是將1.103變成2.101的從庫(kù),具體的做法可以參考場(chǎng)景四;需要注意的是,1.103的單雙號(hào)配置需要和1.101一致;做完上述步驟,可以和研發(fā)協(xié)調(diào),把1.101的讀寫(xiě)業(yè)務(wù)切到1.103,把1.102的讀業(yè)務(wù)切到1.104。觀察業(yè)務(wù)狀態(tài);如果業(yè)務(wù)沒(méi)有問(wèn)題,證明遷移成功。3.6場(chǎng)景六多實(shí)例跨機(jī)房遷移接下來(lái)我們看看多實(shí)例跨機(jī)房遷移證明做。每臺(tái)機(jī)器的實(shí)例關(guān)系,我們可以參考圖六。此次遷移的目的是為了做數(shù)據(jù)修復(fù)。在2.117上建立7938和7939實(shí)例,替換之前數(shù)據(jù)異常的實(shí)例。因?yàn)闃I(yè)務(wù)的原因,某些庫(kù)只在A地寫(xiě),某些庫(kù)只在B地寫(xiě),所以存在同步過(guò)濾的情況。

圖六多實(shí)例跨機(jī)房遷移架構(gòu)圖具體的做法如下:1.113針對(duì)7936實(shí)例使用innobackupex做數(shù)據(jù)備份,注意需要指定數(shù)據(jù)庫(kù),并且加上slave-info參數(shù);備份完成后,將壓縮文件拷貝到2.117;2.117創(chuàng)建數(shù)據(jù)目錄以及配置文件涉及的相關(guān)目錄;2.117使用innobackupex恢復(fù)日志;2.117使用innobackupex拷貝數(shù)據(jù);2.117修改配置文件,注意如下參數(shù):replicate-ignore-db、innodb_file_per_table=1、read_only=1、server_id;2.117更改數(shù)據(jù)目錄權(quán)限;1.112授權(quán),使2.117有拉取binlog的權(quán)限(REPLICATIONSLAVE,REPLICATIONCLIENT);2.117CHANGEMASTETO1.112,LOGFILE和LOGPOS參考xtrabackup_slave_info;2.117STARTSLAVE,查看從庫(kù)狀態(tài);2.117上建立7939的方法類(lèi)似,不過(guò)配置文件需要指定replicate-wild-do-table;和開(kāi)發(fā)一起進(jìn)行數(shù)據(jù)一致性的驗(yàn)證和驗(yàn)證賬號(hào)權(quán)限,以防業(yè)務(wù)遷走后訪問(wèn)出錯(cuò);做完上述步驟,可以和研發(fā)協(xié)調(diào),把相應(yīng)業(yè)務(wù)遷移到2.117的7938實(shí)例和7939實(shí)例。觀察業(yè)務(wù)狀態(tài);如果業(yè)務(wù)沒(méi)有問(wèn)題,證明遷移成功。四注意事項(xiàng)介紹完不同場(chǎng)景的遷移方案,需要注意如下幾點(diǎn):數(shù)據(jù)庫(kù)遷移,如果涉及事件,記住主節(jié)點(diǎn)打開(kāi)event_scheduler參數(shù);不管什么場(chǎng)景下的遷移,都要隨時(shí)關(guān)注服務(wù)器狀態(tài),比如磁盤(pán)空間,網(wǎng)絡(luò)抖動(dòng);另外,對(duì)業(yè)務(wù)的持續(xù)監(jiān)控也是必不可少的;CHANGEMASTERTO的LOGFILE和LOGPOS切記不要找錯(cuò),如果指定錯(cuò)了,帶來(lái)的后果就是數(shù)據(jù)不一致或者搭建主從關(guān)系失?。粓?zhí)行腳本不要在$HOME目錄,記住在數(shù)據(jù)目錄;遷移工作可以使用腳本做到自動(dòng)化,但不要弄巧成拙,任何腳本都要經(jīng)過(guò)測(cè)試;每執(zhí)行一條命令都要三思和后行,每個(gè)命令的參數(shù)含義都要搞明白;多實(shí)例環(huán)境下,關(guān)閉MySQL采用mysqladmin的形式,不要把正在使用的實(shí)例關(guān)閉了;從庫(kù)記得把read_only=1加上,這會(huì)避免很多問(wèn)題;每臺(tái)機(jī)器的server_id必須保證不一致,否則會(huì)出現(xiàn)同步異常的情況;正確配置replicate-ignore-db和replicate-wild-do-table;新建的實(shí)例記得把innodb_file_per_table設(shè)置為1,上述中的部分場(chǎng)景,因?yàn)橹暗膶?shí)例此參數(shù)為0,導(dǎo)致ibdata1過(guò)大,備份和傳輸都消耗了很多時(shí)間;使用gzip壓縮數(shù)據(jù)時(shí),注意壓縮完成后,gzip會(huì)把源文件刪除;所有的操作務(wù)必在從節(jié)點(diǎn)或者備節(jié)點(diǎn)操作,如果在主節(jié)點(diǎn)操作,主節(jié)點(diǎn)很可能會(huì)宕機(jī);xtrabackup備份不會(huì)鎖定InnoDB表,但會(huì)鎖定MyISAM表。所以,操作之前記得檢查下當(dāng)前數(shù)據(jù)庫(kù)的表是否有使用MyISAM存儲(chǔ)引擎的,如果有

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論