ORACLE最簡單有效的備份恢復(fù)方案_第1頁
ORACLE最簡單有效的備份恢復(fù)方案_第2頁
ORACLE最簡單有效的備份恢復(fù)方案_第3頁
ORACLE最簡單有效的備份恢復(fù)方案_第4頁
ORACLE最簡單有效的備份恢復(fù)方案_第5頁
免費預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

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

文檔簡介

1、ORACLE 最簡單有效的備份恢復(fù)方案 傳統(tǒng)的 exp 備份; 10g 開始支持的 expdp 數(shù)據(jù)泵備份; RMAN 備份; 這些邏輯或物理備份和數(shù)據(jù)庫文件必須放在不同的硬盤上;否者一損俱損;備份就沒多大意義 ORACLE備份分兩種,1.邏輯備份;2.物理備份; 邏輯備份又分兩種: 物理備份主要就是 最基本的原則是: 了; 如果數(shù)據(jù)庫不是很大,比如在 50G 以下,那么我們就考慮一些傻話化的全備方案 我現(xiàn)在的備份方案是:兩個邏輯備份和 RMAN 備份全部用上; 1. 傳統(tǒng) dmp 邏輯備份和恢復(fù) 1.1 傳統(tǒng) dmp 邏輯備份,這個是最簡單的備份方法; 現(xiàn)在我提供一個簡單的腳本: 1.1.1

2、 首先建立一個 bat 文件,名字叫: exp_backup.bat 內(nèi)容是: set oracle_username=%1 set oracle_password=%2 set local_tnsname=%3 set url=%oracle_username%/%oracle_password% if not %local_tnsname% = set url=%url%local_tnsname% if exist %oracle_username%_old.dmp del %oracle_username%_old.dmp if exist %oracle_username%_old.

3、log del %oracle_username%_old.log if exist %oracle_username%.dmp ren %oracle_username%.dmp %oracle_username%_old.dmp if exist %oracle_username%.log ren %oracle_username%.log %oracle_username%_old.log exp %url% file=%oracle_username%.DMP log=%oracle_username%.LOG 該腳本是一個通用的最簡單的 exp 腳本; 意思就是:備份之間,把以前的備

4、份文件修改名字,后面加上 _old ,如果本來就有 old 文件,就刪除之; 之后, 就開始備份;備份的文件目錄和該腳本一致(這樣做最簡單 ); 所以總是會出現(xiàn)一新一舊兩個文件;當(dāng)然只要最新的就行了,所以理論上只要一份文件; 但是考慮有可能備份的時候突然報錯,這樣 old 文件還在,將就著使用 ,否者新的是壞的,舊的也沒了; 有的人做一周 7 天邏輯循環(huán)備份,我覺得沒有必要,要那么多舊的備份文件何用,浪費空間; 1.1.2 然后再做一個 bat 文件,比如是 my_exp.bat 內(nèi)容是 : call exp_backup.bat USER PASSWORD 如果是在服務(wù)器自身上備份,就不需要

5、寫入數(shù)據(jù)庫服務(wù)名; 如果有多個用戶數(shù)據(jù)需要備份;那么就在 my_exp.bat 繼續(xù)添加: call exp_backup.bat USER1 PASSWORD1 My_EXPBAT可以做成windows的執(zhí)行計劃,每天不忙的時候執(zhí)行一次; 1.2 exp備份的恢復(fù) 下面就是恢復(fù)的最簡單方法: 1 . 2 . 1 把電腦上當(dāng)前用戶徹底刪除,用命令,這樣就可以把對象徹底清除; DROP USER XXX CASCADE 1.2.2再創(chuàng)建該用戶 CREATE USER xxxx IDENTIFIED BY xxxx DEFAULT TABLESPACE xxxx TEMPORARY TABLESP

6、ACE TEMP 并賦予權(quán)限: GRANT DBA TO xxxx WITH ADMIN OPTION 1.2.3用IMP恢復(fù) C: imp xxxx/xxxx FILE=xxxx.DMP LOG=xxxx.LOG FULL=Y 2. 10G后的數(shù)據(jù)泵expdp備份和恢復(fù) 不過我測試下來, 如果數(shù)據(jù)量小 expdp expdp 更好些; 刪除用戶后,可以不用再創(chuàng)建用 2.1 expdp 備份 據(jù)說這個比 exp 有很多優(yōu)點, 這個我就不說了, 大家可以自己參考資料; 還是不如exp的;但是還是建議是使用 expdp,因為數(shù)據(jù)會慢慢變大的,用 我最看重的是: expdp 備份的文件涵蓋的東西更多

7、;所以恢復(fù)的時候方便; 戶恢復(fù); 實現(xiàn)方法和 exp 類似: 不過,它的目錄不像 EXP那么直接,需要使用 oracle的目錄對象; 所以 2.1.1 第一步先創(chuàng)建一個目錄對象,比如: SQLcreate or replace directory LOGIC_BUCKUP 邏輯備份 ; 2.1.2 建立一個通用腳本,比如叫 內(nèi)容是: EXPDP_BACKU.PBAT set oracle_username=%1 set oracle_password=%2 set local_tnsname=%3 set url=%oracle_username%/%oracle_password% if n

8、ot %local_tnsname% = set url=%url%local_tnsname% if exist %oracle_username%_old_dump.dmp del %oracle_username%_old_dump.dmp if exist %oracle_username%_old_dump.log del %oracle_username%_old_dump.log %oracle_username%_old_dump.dmp %oracle_username%_old_dump.log DUMPFILE=%oracle_username%_DUMP.DMP if

9、exist %oracle_user name%_du mp.dmp ren %oracle_user name%_du mp.dmp if exist %oracle_username%_dump.log ren %oracle_username%_dump.log EXPDP%url%DIRECTORY=LOGIC_BACKUP LOGFILE=%oracle_username%_DUMP.LOG PARALLEL=2 該方法與上面的 dmp 備份類似; 2.1.3 然后再做一個 bat 文件,比如是 my_expdp.bat 內(nèi)容是 : call expdp_backup.bat USE

10、R PASSWORD 如果是在服務(wù)器自身上備份,就不需要寫入數(shù)據(jù)庫服務(wù)名; 如果有多個用戶數(shù)據(jù)需要備份;那么就在 my_exp.bat 繼續(xù)添加: call expdp_backup.bat USER1 PASSWORD1 同dmp備份一樣,My_EXPdp.BAT也可以做成windows的執(zhí)行計劃,每天不忙的時候執(zhí)行一次; 2.2 expdp 備份的恢復(fù) 下面就是恢復(fù)的最簡單方法: 2.2.1把電腦上當(dāng)前用戶徹底刪除,用命令,這樣就可以把對象徹底清除; DROP USER XXXX CASCADE 222.用另外一個權(quán)限較高的用戶 (最好不是sys比如是YYYY)導(dǎo)入: C:IMPDP yy

11、yy/yyyy DUMPFILE=xxxx_DUMP.DMP LOGFILE=xxxx_DUM.PLOG DIRECTORY=LOGIC_BUCKUP PARALLEL=2 (這里的LOGIC_BUCKU是oracle的對象目錄,要和 xxxx_dump.dup存放的目錄一致) 這樣就OK了,也即是說用戶不需要創(chuàng)建,數(shù)據(jù)泵文件含有了用戶以及它原來的權(quán)限; 從這點來講,是不是比IMP導(dǎo)入更為方便; 好了,兩種邏輯備份講完了,下面重點說一下RMAN備份; 因為在生產(chǎn)系統(tǒng)中,邏輯備份作用不大的,因為它不能實時的備份數(shù)據(jù),所以邏輯備份更多的時候是給開發(fā)人員 互相導(dǎo)入數(shù)據(jù)和存儲過程之類用的; RMAN備

12、份的原理還是有點復(fù)雜的,很多細節(jié)的我也不是很清楚,不過沒關(guān)系,我們可以整理出一套最簡單的備 份方案: 3. RMAN備份和恢復(fù) 3.1. RMAN 備份 3.1.1首先把數(shù)據(jù)庫參數(shù)關(guān)注一下, 關(guān)注下面兩個參數(shù) 亙 青云oracle工良2,7齊7甌- 豊只撐 國M音迴 哇卓 工具 鈾曲空迦 吏撫救據(jù)逹按 劑助辿 朋f關(guān)iflG ITPE dj_regoverj_file_dOACLE_DACKUP FALSE FALSEF 血 SI Value SQL剪拒暉坐數(shù) yiic-Qsefr VuincbvtS lA 224ait)11.2.0.1.0 第一個參數(shù): db_recovery_file_d

13、est_size,上圖中的大小是默認的 4G,也就是歸檔模式下,archivelog的所有歸檔日志文件大小總 和,如果超過這個數(shù),就會導(dǎo)致數(shù)據(jù)庫出問題;所以要非常小心,因而建議修改大一些,比如修改成20G;當(dāng)然最 本質(zhì)的方法,是要按時清理無用的歸檔日志; 第二個參數(shù): db_recovery_file_dest ,這個參數(shù)非常重要,是 11G里,存放 rman備份集和歸檔日志的地方;默認是放在 flash_recovery_area目錄下的,因為我的系統(tǒng)的flash_recovery_area和數(shù)據(jù)庫文件在同一個硬盤,所以修改了; 3.1.2. 關(guān)注redo日志文件,每組里要有兩個成員,1個在

14、數(shù)據(jù)庫文件的硬盤下,1個在備份文件的硬盤下,因為日 志文件寫入最頻繁,RMAN無法對它備份,或者說任何備份工具都無法對redo日志備份;不過redo它自己可以做 冗余,兩個文件只要有一個在,即可; 比如: L 1_| =圖叫:inACLHPIWniIl:TrEB0j0GKi0O2. LM B ::)RAGLZDBFSDQREiOO:.IjOG li O 3 凰 D; ?iy,EAJCLaDDfAFDiREL003, DX 51, 200 El, 200.0 Eh 2K.O LTfUSED nnjjE? uimsE? 蟲F5盹直21鞏呂曲昌21亍 園邸 Object Browser -曲吉詒豆-

15、FsDO 2131 j Q 14 訥劉it舊 鋌何 S示M hSA: Mil) 釧tf膺1降期岡 密副晦iiQ也皿上0O la寺皤 珮N圓砒a駐 啓芒昌旬三I回國h*三fl圃ill同a亙|商3/百畫O O 翩血退岀的數(shù)境薛fELq 213*1 .砂 1存儲1初給化童刨記示玄件版本情總 K 小(KE) THREAD 5CO LO 丸I;態(tài) scnfliia. i:丄、jix丄 :ju 丄 組/型名 匸口1 國 D: kJM:丄丄UG 3.1.3.2 內(nèi)容是: 然后就在 winddows下做一個執(zhí)行計劃,每天或沒隔幾天,自動執(zhí)行一下這個 autorma n. bat 3.1.3做一個最簡單的rma

16、n備份腳本; 3.1.3.1 首先做一個 txt,比如是:autorman.txt 內(nèi)容是: sql alter system archive log curre nt: back up database; delete noprompt obsolete; 這三句話的作用分別是:1.對當(dāng)前redo日志進行歸檔;2.備份數(shù)據(jù)庫3.刪除無效的archive日志和rman備份集 做一個 bat調(diào)用上面的 autorman.txt,比如是:autorman.bat rma n target / autorma n.txt 當(dāng)然備份之前,要用rmanshow all看一下參數(shù)設(shè)置,有沒有自動備份控制文

17、件,如果沒有,要加上; 3.2 rman 恢復(fù) Rman 恢復(fù)非常簡單; 下面說一下步驟: 3.2.1 假如最新一次全備是 3 天前的,先隨便建立一個新表,比如是test_rman ,隨便插幾條數(shù)據(jù); 用來測試還 原后,這個最新的對象是否也給恢復(fù)了; 現(xiàn)在 用 sqlplus 登陸, shutdown 數(shù)據(jù)庫,然后把 oracle 的數(shù)據(jù)庫文件全部刪除 (控制文件, redo 日志文件,數(shù)據(jù)庫 文件 ); 3.2.2 用 sql startup nomount 啟動數(shù)據(jù)庫的參數(shù)文件,參數(shù)文件和數(shù)據(jù)庫文件不在同一個硬盤,所以沒丟; 這時候如果執(zhí)行 sqlalter database mount 會報錯,因為 mount 會加載控制文件,而控制文件已經(jīng)丟了; 3.3.3. 把以前控制文件所在的目錄建立好,否者 rman 找不到控制文件恢復(fù)路徑; 然后執(zhí)行 RMAN restore controlfile from autobackup; 這樣控制文件就回復(fù)了,有了控制文件就好辦了; 3.2.5 據(jù)庫了: rman 還原數(shù) 3.2.4. 以為有了控制文件,所以在 sqlplus 里,可以裝載數(shù)據(jù)庫 Sqlalter databa

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論