版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、數(shù)據(jù)庫的備份與恢復(fù)概論這是一遍綜合性描述數(shù)據(jù)庫備份的文章,要把所有的數(shù)據(jù)庫的備份與恢復(fù)全部描述清楚,不是我這遍文章的初衷。我只想給那些想做備份。卻不怎么了解備份的人一個(gè)整體認(rèn)識(shí)。本人的水平是有限的。我只能拋磚引玉。很多經(jīng)驗(yàn)總結(jié)也是個(gè)人一家之言。有錯(cuò)誤請(qǐng)斧正。一:數(shù)據(jù)庫備份的重要性硬件總會(huì)壞,系統(tǒng)總會(huì)崩潰的,數(shù)據(jù)文件總是會(huì)損壞的,人也不可能永遠(yuǎn)不犯錯(cuò)誤的。數(shù)據(jù)庫備份就是在你硬盤壞了。系統(tǒng)崩潰壞了。數(shù)據(jù)文件損壞了,工作人員誤刪除數(shù)據(jù)的時(shí)候讓你不傷心,不害怕。數(shù)據(jù)庫的備份不同與一般的文件備份。一個(gè)備份方案總是跟客戶的需求有關(guān)系的,一個(gè)從來沒有新數(shù)據(jù)增加的查詢數(shù)據(jù)庫。一次冷備份就足夠了。而對(duì)一個(gè)7X2
2、4小時(shí)數(shù)據(jù)庫。數(shù)據(jù)不能丟失的系統(tǒng)。備份的方案就復(fù)雜多了。怎么樣才能保證數(shù)據(jù)庫不丟失數(shù)據(jù)呢?這將受到兩個(gè)條件的制約。一:數(shù)據(jù)庫種類。二:備份的方法。二:數(shù)據(jù)庫備份與恢復(fù)種類2.1邏輯備份與恢復(fù)邏輯備份是使用軟件技術(shù)從數(shù)據(jù)庫中提取數(shù)據(jù)并將結(jié)果寫入一個(gè)輸出文件,邏輯備份因?yàn)殪`活性受到開發(fā)人員的青睞。但是對(duì)一個(gè)數(shù)據(jù)庫管理員來說。就對(duì)它不放心了。一:他是點(diǎn)的邏輯。他只能描述數(shù)據(jù)庫在一點(diǎn)上邏輯結(jié)構(gòu)。然后抽取這些邏輯對(duì)象寫入到一個(gè)或者多個(gè)輸出文件。一般一個(gè)完整的備份是一個(gè)點(diǎn)另一個(gè)點(diǎn)(終止點(diǎn))的連續(xù)發(fā)生。邏輯備份是不可能記錄連續(xù)發(fā)生的事情的過程的。2.2冷備份與恢復(fù)冷備份。又叫脫機(jī)備份。就是停掉數(shù)據(jù)庫服務(wù)???/p>
3、貝數(shù)據(jù)庫數(shù)據(jù)目錄。一般是 data 目錄。Oracle 一般是oradata目錄。Mysql ,postgres 都是data目錄。而且這些默認(rèn)舉例說明。在實(shí)質(zhì)的生產(chǎn)中這些目錄文件是變化的。不過不用擔(dān)心。數(shù)據(jù)庫管理員肯定知道在那里。具體他怎么知道。不同數(shù)據(jù)庫有不同方法。不是本文的重點(diǎn)。為什么要把數(shù)據(jù)庫停掉。才能做數(shù)據(jù)拷貝?我直接在數(shù)據(jù)庫運(yùn)行的時(shí)候拷貝不一樣嗎?如果你運(yùn)氣好的好。那樣確實(shí)也可以。不過不要因?yàn)檫\(yùn)氣。就證明你可以那樣做。其實(shí)一件事物不但要有證據(jù)去證明他。就是還需要一個(gè)明確的理論去支持他。不然是容易犯經(jīng)驗(yàn)主義錯(cuò)誤的。一個(gè)數(shù)據(jù)塊正被復(fù)制。然后他或許前半部分是修該前。后半部分是修改后的。這
4、就是split data .但數(shù)據(jù)庫啟動(dòng)時(shí)候,數(shù)據(jù)庫讀到這樣的數(shù)據(jù)庫塊就迷糊了。數(shù)據(jù)庫不一致的錯(cuò)誤就出來。數(shù)據(jù)庫肯定提示要你恢復(fù)。數(shù)據(jù)庫備份一定要遵循數(shù)據(jù)庫的一致性。2.3熱備份與恢復(fù)熱備份也叫在線備份。什么在線備份,就是數(shù)據(jù)庫在運(yùn)行的時(shí)候一種物理備份。(如果是邏輯的不能叫在線備份。)。不同數(shù)據(jù)庫在線備份都不同。數(shù)據(jù)庫要能熱備份。都需要開啟數(shù)據(jù)庫歸檔模式。并設(shè)置歸檔路徑。但是有數(shù)據(jù)庫。特別開源數(shù)據(jù)庫對(duì)這方面做的非常不好。Postgres 7.3后才有 在線備份。Mysql更是亂的。一個(gè)引擎一個(gè)種方式。而且有的還不是免費(fèi)的。怪的很。商用性軟件oracle,db2 ,Informix ,就做的好的
5、多。歸檔究竟有什么意義?如果說邏輯備份是一張照片或者素描,他記錄的是點(diǎn)的真實(shí)反映或者邏輯印象,那么歸檔就是錄象帶。他記錄的是一個(gè)連續(xù)發(fā)生的事物的過程。一個(gè)開始點(diǎn)的全備份+這個(gè)點(diǎn)后的歸檔+完好的在線redo。那么在這個(gè)全備份后所有時(shí)間都是可以回放的。三:各數(shù)據(jù)庫的備份恢復(fù)對(duì)比(以下每種數(shù)據(jù)庫每種備份都可以寫一本書,在這里不詳細(xì)敘述,只概括其作用,在數(shù)據(jù)庫備份與恢復(fù)中詳細(xì)闡述)。(由于第三方備份軟件比較,在這個(gè)不討論第三方的問題)。數(shù)據(jù)庫名備份Oracle邏輯備份9i以前 exp/imp i后: 一:exp/imp具體使用也不是本問的初衷邏輯備份??梢詡浞輪蝹€(gè)表。邏輯查詢語句記錄,模式,整個(gè)數(shù)據(jù)庫
6、,創(chuàng)建對(duì)象語句不包括數(shù)據(jù)等?;臃倍?。不一一列舉。 二:expdp/impdp(具體怎么使用也不是本問的初衷)oracle Database 10g引入了最新的數(shù)據(jù)泵(Data Dump)技術(shù),使DBA或開發(fā)人員可以將數(shù)據(jù)庫元數(shù)據(jù)(對(duì)象定義)和數(shù)據(jù)快速移動(dòng)到另一個(gè)oracle數(shù)據(jù)庫中.數(shù)據(jù)泵導(dǎo)出導(dǎo)入(EXPDP和IMPDP)的作用1,實(shí)現(xiàn)邏輯備份和邏輯恢復(fù).2,在數(shù)據(jù)庫用戶之間移動(dòng)對(duì)象.3,在數(shù)據(jù)庫之間移動(dòng)對(duì)象4,實(shí)現(xiàn)表空間搬移.與exp/imp的區(qū)別:expdp/impdp與傳統(tǒng)expimp的速度相比:要快的次方以上。EXP和IMP是客戶端工具程序,它們既可以在可以客戶端使用,也可以在服務(wù)段
7、使用.EXPDP和IMPDP是服務(wù)端的工具程序,他們只能在ORACLE服務(wù)端使用,不能在客戶端使用IMP只適用于EXP導(dǎo)出文件,不適用于EXPDP導(dǎo)出文件;IMPDP只適用于EXPDP導(dǎo)出文件,而不適用于EXP導(dǎo)出文件.數(shù)據(jù)泵導(dǎo)出包括導(dǎo)出表,導(dǎo)出方案,導(dǎo)出表空間,導(dǎo)出數(shù)據(jù)庫4種方式.邏輯備份優(yōu)點(diǎn)與缺點(diǎn):優(yōu)點(diǎn):方便,靈活,不受操作系統(tǒng),數(shù)據(jù)庫版本等限制。適合處理小數(shù)據(jù)量,特別適合開發(fā)人員遷移數(shù)據(jù)庫。缺點(diǎn):有數(shù)據(jù)庫丟失。不能實(shí)時(shí)。速度慢。冷備份冷備份又叫脫機(jī)備份。就是停數(shù)據(jù)庫服務(wù)。然后Copydatafile,controlfile,spfile,passwdfile。恢復(fù)過程也很簡單。把相關(guān)文件
8、拷貝到相關(guān)目錄。建立實(shí)例。啟動(dòng)數(shù)據(jù)庫既可。熱備份Oracle 熱備份條件:.必須起用數(shù)據(jù)庫歸檔模式。熱備份可以備份一個(gè)數(shù)據(jù)文件,一個(gè)表空間,一個(gè)數(shù)據(jù)庫等。熱備份備份方式:一:Oracle 備份工具:之rman恢復(fù)管理器(Recovery Manager,RMAN)是一個(gè)與操作系統(tǒng)無關(guān)的數(shù)據(jù)庫備份工具,可以跨越不同的操作系統(tǒng)進(jìn)行數(shù)據(jù)庫備份。RMAN必須運(yùn)行在一個(gè)數(shù)據(jù)庫上。與常用的數(shù)據(jù)庫備份、邏輯數(shù)據(jù)庫備份不同,RMAN使用數(shù)據(jù)庫對(duì)數(shù)據(jù)庫進(jìn)行備份的原理。在RMAN中,可以使用COPY命令將數(shù)據(jù)庫文件復(fù)制到磁盤或磁帶上,也可以用BACKUP命令對(duì)整個(gè)數(shù)據(jù)庫、一個(gè)指定的表空間、控制文件、日志文件進(jìn)行備
9、份備份方式:1:full 全備份,:級(jí)增量全備份,他與full備份的區(qū)別是可以在這個(gè)全備份上做增量備份。而full全備份不可以。:級(jí)增量備份。:級(jí)增量備份:三級(jí)增量備份。詳細(xì)過程不多說。見詳細(xì)文檔)。二:普通的熱備份:alter database begin backup;(9i無),只有alter tablespace begin backup;然后拷貝文件。重點(diǎn)注意:一旦把數(shù)據(jù)庫,或者表空間,數(shù)據(jù)文件處于備份狀態(tài)。用copy命令拷貝完成后。一定要alter database end backup; alter tablespace end backup;把數(shù)據(jù)庫或者表空間處于正常狀態(tài)。Db
10、2邏輯備份Db2loook 導(dǎo)出創(chuàng)建對(duì)象的ddl語句。db2move 導(dǎo)入導(dǎo)出對(duì)象的數(shù)據(jù)。如:db2look -d YOURDB -a -e -x -o creatab.sql 導(dǎo)出建庫表的SQL db2move YOURDB export vi creatab.sql 如要導(dǎo)入的數(shù)據(jù)庫名與原數(shù)據(jù)庫不同,要修改creatab.sql中CONNECT 項(xiàng) 如相同則不用更改 執(zhí)行腳本:db2 -tvf creatab.sql db2move NEWDB load (在該目錄執(zhí)行db2move 命令)注:由于某些表數(shù)據(jù)違反了唯一約束。外鍵約束可能會(huì)有錯(cuò)誤出現(xiàn)。不過出錯(cuò)沒有關(guān)系??梢园殉鲥e(cuò)的表單獨(dú)處理
11、。冷備份 1)、首先確保沒有用戶使用DB2:$db2 list applications for db sample 2)、停掉數(shù)據(jù)庫并重新啟動(dòng),以便斷掉所有連接:1.db2stop 2.force db2start 3)、執(zhí)行備份命令:(使用TSM作為備份的介質(zhì))db2 backup db sample use tsm 備份成功,將會(huì)返回 一個(gè)時(shí)間戳。 4)、檢查備份成功:Db2 list history backup all for sample ,可以看到多了這個(gè)備份的紀(jì)錄 Db2adutl query命令也可以看到返回值。 5)、備注:離線備份最重要的就是要數(shù)據(jù)庫在offline 做.
12、就是數(shù)據(jù)庫在離線的狀態(tài).熱備份1)、首先打開一下支持在線備份的數(shù)據(jù)庫配置參數(shù):8.2以前備份:db2 update db cfg for sample using userexit on 啟用用戶出口db2 update db cfg for sample using logretain on 啟用歸檔日志db2 update db cfg for sample using trackmod on 啟用增量備份功能8.2以后db2 update db cfg for sample using LOGARCHMETH1=./db2/backup/(常用辦法)(需要各個(gè)Node都分別做設(shè)置)開啟這
13、些參數(shù)后,數(shù)據(jù)庫處于backup pending狀態(tài),要求做數(shù)據(jù)庫的離線全備份。做一下離線全備份,參考上面的命令。2)、在線備份命令如下:db2 backup db sample online use tsm備份成功,返回一個(gè)時(shí)間戳。3)、同樣可以用db2adutl 和db2 list history察看備份紀(jì)錄。4)、備注:同樣,對(duì)每個(gè)節(jié)點(diǎn)都做這個(gè)操作。3、 在線增量備份1)、在開啟了必須的三個(gè)參數(shù)的情況下,做增量備份:db2 backup db sample online incremental use tsm備份成功,返回一個(gè)時(shí)間戳。2)、同樣可以用db2adutl 和db2 list
14、history察看備份紀(jì)錄。3)、還有一種delta的備份:db2 backup db sample online incremental delta use tsm這兩種備份的區(qū)別,類似Oracle Exports的Incremental和Cumulative方式,db2的incremental對(duì)應(yīng).oracle的cumulative方式,而db2的delta方式則對(duì)應(yīng)oracle的incremental方式。4)、備注:同樣,對(duì)每個(gè)節(jié)點(diǎn)都做這個(gè)操作。postgresql邏輯備份邏輯備份1Pg_dump 如:pg_dump dbname > outfile(導(dǎo)出單個(gè)數(shù)據(jù)庫)2pg_du
15、mpall 如: pg_dumpall > outfile(導(dǎo)出所有數(shù)據(jù)庫)3處理大數(shù)據(jù)庫: 3.1:pg_dump dbname | split -b 1m dbname (備份分片)3.2:pg_dump dbname | gzip > filename.gz(備份壓縮)邏輯恢復(fù)1pg_dump -h host1 dbname | psql -h host2 dbname(從一個(gè)數(shù)據(jù)庫備份恢復(fù)到另一個(gè)數(shù)據(jù)庫)2psql dbname < infile(直接恢復(fù))3. cat filename.gz | gunzip | psql dbname(壓縮恢
16、復(fù))冷備份另一個(gè)備份的策略是直接拷貝PostgreSQL用于存放數(shù)據(jù)庫數(shù)據(jù)的文件。 也叫冷備份。是數(shù)據(jù)塊的備份。tar -cf backup.tar /usr/local/pgsql/data 為了進(jìn)行有效的備份,數(shù)據(jù)庫服務(wù)器必須被關(guān)閉。象拒絕所有聯(lián)接這樣的折衷的方法是不行的,因?yàn)榭偸怯幸恍┚彌_區(qū)數(shù)據(jù)存在。 (主要因?yàn)?tar 和類似的工具在做備份的時(shí)候并不對(duì)文件系統(tǒng)的狀態(tài)做原子快照)。 如果你曾經(jīng)深入了解了數(shù)據(jù)庫在文件系統(tǒng)布局的細(xì)節(jié),你可能試圖從對(duì)應(yīng)的文件或目錄里備份幾個(gè)表或者數(shù)據(jù)庫。 這樣做是沒用的,因?yàn)榘谶@些文件里的信息只是部分信息。還有一半信息在提交日志文件 pg_clog/*里面
17、,它包含所有事務(wù)的提交狀態(tài)。 只有擁有這些信息,表文件的信息才是可用的。當(dāng)然,試圖只恢復(fù)表和相關(guān)的 pg_clog 數(shù)據(jù)也是徒勞的,因?yàn)檫@樣會(huì)把數(shù)據(jù)庫集群里的所有其他沒有用的表的信息都拿出來。 所以文件系統(tǒng)的備份只適用于一個(gè)數(shù)據(jù)庫集群的完整恢復(fù)。 熱備份PITR 的全稱是 Point In Time Recovery, 它結(jié)合文件系統(tǒng)級(jí)備份 WAL 日志文件, 達(dá)到在線增量備份 PostgreSQL 數(shù)據(jù)庫系統(tǒng). WAL 的全稱是 Write Ahead Log, 它記錄著數(shù)據(jù)庫修改數(shù)據(jù)文件的每一個(gè)動(dòng)作. 如果系統(tǒng)掛了, 讀入這些日志文件可以很方便快捷安全的恢復(fù)數(shù)據(jù). 他是數(shù)據(jù)塊的備份。非邏輯
18、備份。在這里我寫一個(gè)例子來說明:(postgres 故意寫的詳細(xì)點(diǎn)了,自己本來也對(duì)postgres也不熟悉,就當(dāng)練習(xí)了)。備份1建立備份目錄. 備份分基線 (baseline) 和日志備份, 所以我們要建立兩個(gè)目錄: mkdir -p /opt/backupbasemkdir -p /opt/archive接著我們?cè)O(shè)定一些環(huán)境變量及備份所在目錄: export PGDATA=/home/postgres/pgdataexport BACKBASE= /opt/backupbase export ARCHIVE= /opt/archive2設(shè)置完上面那些變量后, 編輯 $PGDATA/postg
19、resql.conf 文件, 設(shè)置如下: archive_mode = onarchive_command = 'cp %p /opt/archive/%f'所有設(shè)置都完成了, 啟動(dòng)或重啟 PostgreSQL 服務(wù). 3做一個(gè)全庫備份。(增量備份的基準(zhǔn)點(diǎn))。psql -d dbname -c "select PG_START_BACKUP('backup baseline')"cp -R $PGDATA/* $BACKBSEpsql -d template1 -c "select PG_STOP_BACKUP()"4.基
20、線備份好后, 就可以時(shí)不時(shí)的備份日志了, 命令如下: cp -R $PGDATA/pg_xlog/* $ARCHIVE(crontab 定時(shí)執(zhí)行,目的為了減少數(shù)據(jù)丟失。(linux unix下))或者把wal在線日志處于冗于磁盤上。)日志備份盡可能的頻繁一些. 因?yàn)楫?dāng)線上提供服務(wù)的所在磁盤壞掉, 而你又沒有備份 WAL 日志, 你會(huì)丟數(shù)據(jù). 恢復(fù) 1把 baseline 的備份拷貝到新建的數(shù)據(jù)庫一樣的/home/postgres/pgdata 目錄下. 接著呢, 為了避免恢復(fù)還響應(yīng)連接請(qǐng)求什么的, 我們把服務(wù)只開啟本地連接, 2修改 $PGDATA/postgresql.conf 文件: listen_addresses = 'localhost'3再下來, 在 $PGDATA 目錄下創(chuàng)建一個(gè) recovery.conf 文件. PostgreSQL 啟動(dòng)的時(shí)候如果發(fā)現(xiàn) $PGDATA 目錄里面有這個(gè)文件就會(huì)進(jìn)入恢復(fù)模式, 恢復(fù)完后會(huì)把這個(gè)文件重命名為 recovery.done. 文件內(nèi)容只有一行, 如下: restore_command='cp /opt/archive/%f %p'注意這里是單引號(hào), 別用雙引號(hào), 不然會(huì)提示錯(cuò)誤. 啟動(dòng)數(shù)據(jù)庫: 4.pg_ctl start -D $PGDATA -l /tmp/pg.log這個(gè)時(shí)候
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 足浴轉(zhuǎn)讓合同
- 土方回填工程承包合同范本
- 環(huán)保材料樓梯踏步施工合同
- 2025年煤業(yè)安全質(zhì)量標(biāo)準(zhǔn)化管理考核辦法(2篇)
- 中學(xué)宿舍管理員工作職責(zé)(4篇)
- 村莊環(huán)境整治實(shí)施方案模版(2篇)
- 公司現(xiàn)金管理制度樣本(三篇)
- 2025年銷售內(nèi)勤年終工作總結(jié)經(jīng)典版(3篇)
- 回轉(zhuǎn)窯專項(xiàng)檢查管理制度(2篇)
- 機(jī)動(dòng)車輛安全管理規(guī)定范文(2篇)
- 詢價(jià)單模板范本
- 圍手術(shù)期胃腸營養(yǎng)
- 基坑支護(hù)工程質(zhì)量控制要點(diǎn)
- 2024年有色金屬分選機(jī)行業(yè)特點(diǎn)分析
- 小學(xué)師德師風(fēng)培訓(xùn)的課件
- 吸粉活動(dòng)推廣方案
- 系統(tǒng)集成實(shí)施方案
- 2024年大學(xué)試題(管理類)-行政管理學(xué)筆試歷年真題薈萃含答案
- 高尿酸血癥的預(yù)防與控制策略研究
- 2023-2024學(xué)年湖南省常德市武陵區(qū)湘少版(三起)六年級(jí)上冊(cè)期末質(zhì)量檢測英語試卷(無答案)
- 醫(yī)療機(jī)構(gòu)規(guī)章制度目錄
評(píng)論
0/150
提交評(píng)論