mysql數(shù)據(jù)庫備份和還原方法集錦推薦_第1頁
mysql數(shù)據(jù)庫備份和還原方法集錦推薦_第2頁
mysql數(shù)據(jù)庫備份和還原方法集錦推薦_第3頁
mysql數(shù)據(jù)庫備份和還原方法集錦推薦_第4頁
mysql數(shù)據(jù)庫備份和還原方法集錦推薦_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、mysql數(shù)據(jù)庫備份和還原方法集錦推薦日期:、006/10/01本文討論y的備份和恢復(fù)機(jī)制,以及如何維護(hù)數(shù)據(jù)表,包括最主要的兩種表類型:y和,文中設(shè)計(jì)的MyS版本為.、目前y支持的免費(fèi)備份工具有:mysqldump、mysqlhc還可以用語法進(jìn)行備份:或者又或者備份二進(jìn)制日志()o還可以是直接拷貝數(shù)據(jù)文件和相關(guān)的配置文件。y表是保存成文件的形式,因此相對比較容易備份,上面提到的幾種方法都可以使用。所有的表都保存在同一個(gè)數(shù)據(jù)文件d中(也可能是多個(gè)文件,或者是獨(dú)立的表空間文件),相對來說比較不好備份,免費(fèi)的方案可以是拷貝數(shù)據(jù)文件、備份,1或者用mysqldump1、mysqldump1.1備份my

2、sqldump是釆用級別的備份機(jī)制,它將數(shù)據(jù)表導(dǎo)成腳本文件,在不同的y版本之間升級時(shí)相對比較合適,這也是最常用的備份方法?,F(xiàn)在來講一下mysqldump的些主要參數(shù):* mplm它告訴mysqldump導(dǎo)出的數(shù)據(jù)將和哪種數(shù)據(jù)庫或哪個(gè)舊版本的y服務(wù)器相兼容。值可以為smysql、mysql、ps、sql、mssq、d、mdy、Psls_psld等,p要s使用幾個(gè)值,用逗號將它們隔開。當(dāng)然了,它并不保證能完全兼容,而是盡量兼容。* mplts導(dǎo)出的數(shù)據(jù)釆用包含字段名的完整方式,也就是把所有的值都寫在一行。這么做能提高插入效率,但是可能會受到mlld參數(shù)的影響而導(dǎo)致插入失敗。因此,需要謹(jǐn)慎使用該參數(shù)

3、,至少我不推薦。* dulss指定導(dǎo)出數(shù)據(jù)時(shí)釆用何種字符集,如果數(shù)據(jù)表不是釆用默認(rèn)的l字符集的話,那么導(dǎo)出時(shí)必須指定該選項(xiàng),否則再次導(dǎo)入數(shù)據(jù)后將產(chǎn)生亂碼問題。dsleys告訴mysqldump在語句的開頭和結(jié)尾增加l和引的。該選項(xiàng)只適合ly表。語句,這能大大提高插入語句的速度,因?yàn)樗窃诓迦胪晁袛?shù)據(jù)后才重建索-extended-suls默認(rèn)情況下,mysqldump開啟mpl模式,因此不想用它的的話,就使用本選項(xiàng),設(shè)定它的值為l即可。使用十六進(jìn)制格式導(dǎo)出二進(jìn)制字符串字段。如果有二進(jìn)制數(shù)據(jù)就必須使用本選項(xiàng)。影響到的字段類型有、。l,llls在開始導(dǎo)出之前,提交請求鎖定所有數(shù)據(jù)庫中的所有表,以保

4、證數(shù)據(jù)的一致性。這是一個(gè)全局讀鎖,并且自動關(guān)閉single-t-lock-和sl選項(xiàng)。lsls它和l表,如果是類似,不過是鎖定當(dāng)前導(dǎo)出的數(shù)據(jù)表,而不是一下子鎖定全部庫下的表。本選項(xiàng)只適用于y表可以用sl選項(xiàng)。s只導(dǎo)出數(shù)據(jù),而不添加語句。不導(dǎo)出任何數(shù)據(jù),只導(dǎo)出數(shù)據(jù)庫表結(jié)構(gòu)。這只是一個(gè)快捷選項(xiàng),等同于同時(shí)添加選項(xiàng)。本選項(xiàng)能讓默認(rèn)開啟,但可以用禁用。注意,如果運(yùn)行在內(nèi)存中。如果導(dǎo)出大數(shù)據(jù)庫的話可能會出現(xiàn)問題。很快的導(dǎo)出數(shù)據(jù),并且導(dǎo)出的數(shù)據(jù)能很快導(dǎo)回。該選項(xiàng)沒有指定或選項(xiàng),則會將整個(gè)結(jié)果集放該選項(xiàng)在導(dǎo)出大表時(shí)很有用,它強(qiáng)制從服務(wù)器查詢?nèi)〉糜涗浿苯虞敵龆皇侨〉盟杏涗浐髮⑺鼈兙彺娴絻?nèi)存中。導(dǎo)出存儲過程

5、以及自定義函數(shù)。該選項(xiàng)在導(dǎo)出數(shù)據(jù)之前提交一個(gè)語句,不會阻塞任何應(yīng)用程序且能保證導(dǎo)出時(shí)數(shù)據(jù)庫的一致性狀態(tài)。它只適用于事務(wù)表,例如和B本選項(xiàng)和選項(xiàng)是互斥的,因?yàn)闀谷魏螔炱鸬氖聞?wù)隱含提交。要想導(dǎo)出大表的話,應(yīng)結(jié)合使用選項(xiàng)。同時(shí)導(dǎo)出觸發(fā)器。該選項(xiàng)默認(rèn)啟用,用禁用它。其他參數(shù)詳情請參考手冊,我通常使用以下來備份表:使用以下來備份表:另外,如果想要實(shí)現(xiàn)在線備份,還可以使用參數(shù)來實(shí)現(xiàn),如下:-:efault-character-set=utf8-opt-master-:ata=1它只是在一開始的瞬間請求鎖表,然后就刷新了,而后在導(dǎo)出的文件中加入語句來指定當(dāng)前備份的位置,如果要把這個(gè)文件恢復(fù)到里去,就可以釆

6、用這種方法來做。1.還原用備份出來的文件是一個(gè)可以直接倒入的腳本,有兩種方法可以將數(shù)據(jù)導(dǎo)入。*直接用客戶端例如:*用語法其實(shí)這不是標(biāo)準(zhǔn)的語法,而是客戶端提供的功能,例如:這里需要指定文件的絕對路徑,并且必須是mysql運(yùn)行用戶例如oo有又限讀取的文件。2、mysqlhotcopy2.1備份mysqlhotcop是一個(gè)程序,最初由m編寫。它使用LLS_SI和ECp或scp來快速備份數(shù)據(jù)庫。它是備份數(shù)據(jù)庫或單個(gè)表的最快的途徑,但它只能運(yùn)行在數(shù)據(jù)庫文件(包括數(shù)據(jù)表定義文件、數(shù)據(jù)文件、索引文件)所在的機(jī)器上。mysqlhotcop只能用于備份yS,并且只能運(yùn)行在類和t系統(tǒng)上。mysqlhotcop應(yīng)持

7、一次性拷貝多個(gè)數(shù)據(jù)庫,同時(shí)還支持正則表達(dá)。以下是幾個(gè)例子:oot#/usr/locam把數(shù)據(jù)庫/mysql/b目錄db_nin/mysqlhotcopy-拷貝到tm下h=localhost-uu=yejr-p=yoot#/usr/loca/mysql/bmysqlhotcopyh=localhost-u=yejr-p=ym1.b_nametmpoot#/usr/loca/mysql/bmysqlhotcopyh=localhost-u=yejr-p=ym.tmp更詳細(xì)的使用方法請查看手冊,或者調(diào)用下面的命令來查看mysqlhotcop的幫助:plocsloclmysqlmysqlhotcopy

8、注意,想要使用mysqlhotcopy必須要有SLL要執(zhí)行LSLES)并且還必須要能夠有讀取t自錄的權(quán)限。2.2還原mysqlhotcop備份出來的是整個(gè)數(shù)據(jù)庫目錄,使用時(shí)可以直接拷貝到mysql指定的t在這里是sloclmysql目錄下即可,同時(shí)要注意權(quán)限的問題,如下例:ootcpmsloclmysqltootchoooyooys將loclm目錄的屬主改成mysql運(yùn)行用戶3、SQL語法備份3.1備份語法其實(shí)和mysqlhotcop的工作原理差不多,都是鎖表,然后拷貝數(shù)據(jù)文件。它能實(shí)現(xiàn)在線備份,但是效果不理想,因此不推薦使用。它只拷貝表結(jié)構(gòu)文件和數(shù)據(jù)文件,不同時(shí)拷貝索引文件,因此恢復(fù)時(shí)比較慢

9、。例子:BACKTABLEtbl_nameTO/tmp/db_name/;注意,必須要有L又限才能執(zhí)行本SQL,并且目錄tmp必須能被mysql用戶可寫,導(dǎo)出的文件不能覆蓋已經(jīng)存在的文件,以避免安全問題。SL則是把數(shù)據(jù)導(dǎo)出來成為普通的文本文件,可以自定義字段間隔的方式,方便處理這些數(shù)據(jù)。例子:SLLtmpmtlm.tttlm注意,必須要有L權(quán)限才能執(zhí)行本SQL,并且文件tmpmt必須能被mysql用戶可寫,導(dǎo)出的文件不能覆蓋已經(jīng)存在的文件,以避免安全問題。3.2恢復(fù)用方法備份出來的文件,可以運(yùn)行S語句來恢復(fù)數(shù)據(jù)表。例子:SLtmpm權(quán)限要求類似上面所述。用SL例子:方法備份出來的文件,可以運(yùn)行

10、L語句來恢復(fù)數(shù)據(jù)表。bl_n關(guān)鍵字來權(quán)限要求類似上面所述。倒入數(shù)據(jù)之前,數(shù)據(jù)表要已經(jīng)存在才行。如果擔(dān)心數(shù)據(jù)會發(fā)生重復(fù),可以增加替換已有記錄或者用關(guān)鍵字來忽略他們。4、啟用二進(jìn)制日志(binlog)釆用binlog的方法相對來說更靈活,省心省力,而且還可以支持增量備份。啟用binlog時(shí)必須要重啟。l首先,關(guān)閉,l打開,加入以下幾行:server-id=1log-bin=binloglog-bin-index=binlog.index然后啟動就可以了。運(yùn)行過程中會產(chǎn)生binlog以及binlogin,前面的文件是記錄所有對數(shù)據(jù)的更新操作,后面的文件則是所有binlog的索引,都不能輕易刪除。關(guān)于

11、binlog的信息請查看手冊。終止對當(dāng)前binlog的寫入,就可以把文件直接備份,這樣的話就能達(dá)到需要備份時(shí),可以先執(zhí)行一下語句,讓增量備份的目的了:如果是備份復(fù)制系統(tǒng)中的從服務(wù)器,還應(yīng)該備份ma備份出來的binlog文件可以用提供的工具/usr/local/mys,l/bin/mys,lbinlog/tmp該工具允許你顯示指定的數(shù)據(jù)庫下的所有語句,恢復(fù)時(shí),可以釆用類似以下語句來做到:/usr/local/mys,l/bin/mys,lbinlog/tmp和inlolc文件nolbin來查看,如:binlog.000001并且還可以限定時(shí)間范圍,相當(dāng)?shù)姆奖悖敿?xì)的請查看手冊binlog.000

12、001|mys,l-uyejr-pyejrdb_n把lbin輸出的語句直接作為輸入來執(zhí)行它。如果你有空閑的機(jī)器,不妨釆用這種方式來備份。由于作為l的機(jī)器性能要求相對不是那么高,因此成本低,用低成本就能實(shí)現(xiàn)增量備份而且還能分擔(dān)一部分?jǐn)?shù)據(jù)查詢壓力,何樂而不為呢?5、直接備份數(shù)據(jù)文件相較前幾種方法,備份數(shù)據(jù)文件最為直接、快速、方便,缺點(diǎn)是基本上不能實(shí)現(xiàn)增量備份。為了保證數(shù)據(jù)的一致性,需要在靠背文件前,執(zhí)行以下語句:也就是把內(nèi)存中的數(shù)據(jù)都刷新到磁盤中,同時(shí)鎖定數(shù)據(jù)表,以保證拷貝過程中不會有新的數(shù)據(jù)寫入。這種方法備份出來的數(shù)據(jù)恢復(fù)也很簡單,直接拷貝回原來的數(shù)據(jù)庫目錄下即可。注意,對于nno類型表來說,還

13、需要備份其日志文件,即iblogi文件。因?yàn)楫?dāng)nno表損壞時(shí),就可以依靠這些日志文件來恢復(fù)。6、備份策略對于中等級別業(yè)務(wù)量的系統(tǒng)來說,備份策略可以這么定:第一次全量備份,每天一次增量備份,每周再做一次全量備份,如此一直重復(fù)。而對于重要的且繁忙的系統(tǒng)來說,則可能需要每天一次全量備份,每小時(shí)一次增量備份,甚至更頻繁。為了不影響線上業(yè)務(wù),實(shí)現(xiàn)在線備份,并且能增量備份,最好的辦法就是釆用主從復(fù)制機(jī)制:lia在on)機(jī)器上做備份。7、數(shù)據(jù)維護(hù)和災(zāi)難恢復(fù)作為一名我目前還不是,呵呵),最重要的工作內(nèi)容之一是保證數(shù)據(jù)表能安全、穩(wěn)定、高速使用。因此,需要定期維護(hù)你的數(shù)據(jù)表。以下語句就很有用:,表或,檢查或維護(hù),優(yōu)化表,分析表表則可以通過執(zhí)行以下語句來整理碎片,提高索引速度:這其實(shí)是一個(gè)操作,表面上看什么也不做,實(shí)際上重新整理碎片了

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論