MySQL雙機(jī)熱備份實(shí)施方案_第1頁(yè)
MySQL雙機(jī)熱備份實(shí)施方案_第2頁(yè)
MySQL雙機(jī)熱備份實(shí)施方案_第3頁(yè)
MySQL雙機(jī)熱備份實(shí)施方案_第4頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

1、mysql 雙機(jī)熱備份實(shí)施方案1、mysql 數(shù)據(jù)庫(kù)沒(méi)有增量備份的機(jī)制,當(dāng)數(shù)據(jù)量太大的時(shí)候備份是一個(gè)很大的問(wèn)題。還好 mysql 數(shù)據(jù)庫(kù)提供了一種主從備份的機(jī)制,其實(shí)就是把主數(shù)據(jù)庫(kù)的所有的數(shù)據(jù)同時(shí)寫(xiě)到備份數(shù)據(jù)庫(kù)中。實(shí)現(xiàn)mysql 數(shù)據(jù)庫(kù)的熱備份。2、要想實(shí)現(xiàn)雙機(jī)的熱備首先要了解主從數(shù)據(jù)庫(kù)服務(wù)器的版本的需求。要實(shí)現(xiàn)熱備 mysql 的版本都要高于 3.2 ,還有一個(gè)基本的原則就是作為從數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)版本可以高于主服務(wù)器數(shù)據(jù)庫(kù)的版本,但是不可以低于主服務(wù)器的數(shù)據(jù)庫(kù)版本。 mysql的雙機(jī)熱備份是基于mysql 內(nèi)部復(fù)制功能,建立在兩臺(tái)或者多臺(tái)以上的服務(wù)器之間, 通過(guò)它們之間的主從關(guān)系, 是插入主數(shù)

2、據(jù)庫(kù)的數(shù)據(jù)同時(shí)也插入到從數(shù)據(jù)庫(kù)上, 這實(shí)現(xiàn)了動(dòng)態(tài)備份當(dāng)前數(shù)據(jù)庫(kù)的功能。下面細(xì)說(shuō)一下主從熱備份的步驟:假設(shè)主服務(wù)器 a(master) 、從服務(wù)器為 b(slave) a:04 b:69 1. 主服務(wù)器授權(quán)授權(quán)副服務(wù)器可以連接主服務(wù)器并可以進(jìn)行更新。這是在主服務(wù)器上進(jìn)行的,創(chuàng)建一個(gè) username和 password 供副服務(wù)器訪問(wèn)時(shí)使用。 在 mysql 命令行下輸入 mysql grant replication slave on *.* to backup 69 identified by 123456;這里創(chuàng)建了一個(gè)帳號(hào)

3、backup 用于 slave 訪問(wèn) master 來(lái)更新 slave 數(shù)據(jù)庫(kù)。2. 數(shù)據(jù)復(fù)制將 master 上已有的數(shù)據(jù)復(fù)制到slave 上, 以便主從數(shù)據(jù)庫(kù)建立的時(shí)候兩個(gè)數(shù)據(jù)庫(kù)的數(shù)據(jù)保持一致。在 master 上導(dǎo)出數(shù)據(jù) mysql flush tables with read lock; d:developmysqlbin mysqldump u root -p cartrader d:cartrader.sql mysql unlock tables 在 slave 上導(dǎo)入數(shù)據(jù) mysqluse cartrader mysqlsource d:cartrader.sql 另外也可以使

4、用 load data from master語(yǔ)句將主服務(wù)器的數(shù)據(jù)傳輸?shù)礁狈?wù)器,但使用上有些限制。注意:在執(zhí)行數(shù)據(jù)復(fù)制的過(guò)程中,要確保不能對(duì)主服務(wù)器執(zhí)行更新操作。不推薦使用!3. 配置主服務(wù)器修改 master 上 mysql 的根目錄下的 my.ini配置文件,在選項(xiàng)配置文件中賦予主服務(wù)器一個(gè) server-id,該 id 必須是 1 到 223-1 范圍內(nèi)的唯一值。主服務(wù)器和副服務(wù)器的 server-id不能相同。另外,還需要配置主服務(wù)器, 使之啟用二進(jìn)制日志,即在選項(xiàng)配置文件中添加log-bin啟動(dòng)選項(xiàng)。 mysqld server-id=1 #唯一值,并不能與副服務(wù)器相同 log-b

5、in = bin_log #日志文件以 binary_log為前綴 , 如果不給 log-bin賦值,日志文件將以 #master-server-hostname為前綴 binlog-ignore-db= mysql,test,information_schema #日志文件跳過(guò)的數(shù)據(jù)庫(kù)(可選屬性 ) binlog-do-db= cartrader #日志文件操作的數(shù)據(jù)庫(kù) ( 可選屬性,默認(rèn)所有數(shù)據(jù)庫(kù)的相關(guān)操作都寫(xiě)入二進(jìn)制日志文件) 注意:如果主服務(wù)器的二進(jìn)制日志已經(jīng)啟用,關(guān)閉并重新啟動(dòng)之前應(yīng)該對(duì)以前的二進(jìn)制日志進(jìn)行備份。重新啟動(dòng)后,應(yīng)使用reset master語(yǔ)句清空以前的日志。原因:ma

6、ster 上對(duì)數(shù)據(jù)庫(kù) cartrader的一切操作都記錄在日志文件中,然后會(huì)把日志發(fā)給 slave , slave 接收到 master 傳來(lái)的日志文件之后就會(huì)執(zhí)行相應(yīng)的操作,使 slave 中的數(shù)據(jù)庫(kù)做和 master 數(shù)據(jù)庫(kù)相同的操作。所以為了保持?jǐn)?shù)據(jù)的一致性,必須保證日志文件沒(méi)有臟數(shù)據(jù)。4. 重啟 master 配置好以上選項(xiàng)后,重啟mysql 服務(wù),新選項(xiàng)將生效。現(xiàn)在,所有對(duì)數(shù)據(jù)庫(kù)中信息的更新操作將被寫(xiě)進(jìn)日志中。5. 配置 slave 在副服務(wù)器上的 mysql 選項(xiàng)配置文件中添加以下參數(shù)。 mysqld server-id=2 #唯一并與主服務(wù)器上的server-id不同。 mast

7、er-host= 04 #主服務(wù)器的主機(jī)名或者ip 地址 master-port=3306 master-user=root master-password=123456 # 復(fù)制操作要針對(duì)的數(shù)據(jù)庫(kù) ( 可選,默認(rèn)為全部 ) replicate-do-db=cartrader # 如果主副服務(wù)器間連接經(jīng)常失敗,需增加master-retry-count和master-connect-retry #master-retry-count #連接重試的次數(shù) #master-connect-retry #連接失敗后等待的秒數(shù) master-retry-count = 999 ma

8、ster-connect-retry = 60 6. 重啟 slave 副服務(wù)器上 mysql 服務(wù)重啟后,還在數(shù)據(jù)目錄中創(chuàng)建一個(gè)文件,其中包含所有有關(guān)復(fù)制過(guò)程的信息( 連接主服務(wù)器的相關(guān)信息及與主服務(wù)器交換數(shù)據(jù)的相關(guān)信息 )。在初次啟動(dòng)以后,副服務(wù)器將檢查這個(gè)文件,以得到相關(guān)信息。如果想修改復(fù)制選項(xiàng), 刪除 并重啟 mysql 服務(wù),在啟動(dòng)過(guò)程中使用選項(xiàng)配置文件中的新選項(xiàng)進(jìn)行重新創(chuàng)建了文件。將主服務(wù)器上備份好的數(shù)據(jù)庫(kù)腳本文件(cartrader.sql)導(dǎo)入到副服務(wù)器數(shù)據(jù)庫(kù)中,以便保證主 - 副服務(wù)器上進(jìn)

9、行復(fù)制操作的起點(diǎn)一樣。7. 查看 master mysqlshow master status #查看 master 的狀態(tài)與設(shè)置的是否一致(在master 上)8查看 slave 一般重啟了 slave 之后,自動(dòng)就會(huì)開(kāi)啟復(fù)制功能, 可以通過(guò)下面的語(yǔ)句查看 mysqlshow slave status #在 slave 上如果顯示 waiting for master to send event 的話就表示已經(jīng)啟動(dòng)了,反之就運(yùn)行 mysqlstart slave #啟動(dòng) slave 在 show slave status的命令輸出后,應(yīng)該包含slave_io_running 對(duì)應(yīng)的值為 ye

10、s ,slave_sql_running對(duì)應(yīng)的值為 yes ,如下圖所示,只有這樣才保證主從機(jī)能正常備份。 mysqlstop slave #暫時(shí)停止主從熱備份注: 以上的配置方式只能實(shí)現(xiàn)a-b, 即數(shù)據(jù)由 a(master) 轉(zhuǎn)移到 b(slave) ,不能由 b轉(zhuǎn)移到 a,這樣的話對(duì) b做的任何操作就不會(huì)被同步到數(shù)據(jù)庫(kù)a中。當(dāng)然也可以通過(guò)把 a設(shè)置成 slave 和 master,把 b設(shè)置成 slave 和 master 從而實(shí)現(xiàn)對(duì) a或者 b的任何改動(dòng)都會(huì)影響到另外一方。配置同上,在此不在論述。= 1. 如果 binlog 已經(jīng)產(chǎn)生,可以通過(guò) sql 命令行清除:/* * 要清理日志,

11、需按照以下步驟: * 1 在每個(gè)從屬服務(wù)器上,使用show slave status來(lái)檢查它正在讀取哪個(gè)日志。 * 2 使用 show master logs獲得主服務(wù)器上的一系列日志。 * 3 在所有的從屬服務(wù)器中判定最早的日志。這個(gè)是目標(biāo)日志。如果所有的從屬服務(wù)器是更新的,這是清單上的最后一個(gè)日志。 * 4 制作您將要?jiǎng)h除的所有日志的備份。 (這個(gè)步驟是自選的, 但是建議采用。) * 5 清理所有的日志,但是不包括目標(biāo)日志。 */ # 必須擁有 reload 權(quán)限, 此 命令將刪除列于索引文件中的所有binlog ,把binlog 索引文件重新設(shè)置為空,并創(chuàng)建一個(gè)新的 binlog (在以前版本中,被稱為 flush master)reset master; #清除指定的 binlog purge master logs to mysql-bin.010; # 清除指定日期之前

溫馨提示

  • 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)論