




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