三種方法:冷備份、熱備份和Export導(dǎo)出數(shù)據(jù)庫對(duì)象備份
10年積累的成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)制作后付款的網(wǎng)站建設(shè)流程,更有新華免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
Oracle作為目前世界上市場(chǎng)份額占有率最高的大型通用數(shù)據(jù)庫,在世界上各行各業(yè)的信息化建設(shè)中起著核心首腦的作用。它(軟件自身以及它所依賴運(yùn)行的硬件)一旦出現(xiàn)問題,輕則導(dǎo)致業(yè)務(wù)中斷,重則丟失部分?jǐn)?shù)據(jù),嚴(yán)重則全部數(shù)據(jù)不可逆轉(zhuǎn)性損毀。備份方法如下:
1、冷備份
冷備份是Oracle最簡(jiǎn)單的一種備份;執(zhí)行冷備份前必須關(guān)閉數(shù)據(jù)庫;然后使用操作系統(tǒng)實(shí)用工具或者第三方工具備份所有相關(guān)的數(shù)據(jù)庫文件。
2、熱備份
對(duì)于熱備份來說,故名思議就是剛出爐的數(shù)據(jù)還是熱乎的就開始執(zhí)行備份的操作。實(shí)現(xiàn)熱備份的方式目前主要有兩種方式,邏輯方式和物理方式。
3、Export導(dǎo)出數(shù)據(jù)庫對(duì)象備份
導(dǎo)出導(dǎo)入是一種最初級(jí)的備份方式,它采用定時(shí)將全量、增量或者差異數(shù)據(jù)以表、用戶或者全庫為單位導(dǎo)出到某種格式的文件中達(dá)到備份的目的。
優(yōu)點(diǎn):能執(zhí)行對(duì)象或者行恢復(fù)。備份和恢復(fù)速度更快。能夠跨操作系統(tǒng)平臺(tái)遷移數(shù)據(jù)庫。數(shù)據(jù)庫可一直運(yùn)行。
缺點(diǎn):export并不是冷備份和熱備份的替代工具。冷、熱備份可保護(hù)介質(zhì)失效。export備份可保護(hù)用戶或應(yīng)用錯(cuò)誤。
配置批處理文件
1
新建名為"oracleBackup"的文本文檔(名字自己定),然后重命名后綴為"oracleBackup.bat"的批處理文件。
2
在oracleBackup.bat文件上點(diǎn)擊右鍵,選擇編輯,填寫以下相關(guān)內(nèi)容:
rem ---------------------------------------------------------------------------
rem windows環(huán)境下Oracle數(shù)據(jù)庫的自動(dòng)備份腳本。
rem 可以將本批處理設(shè)成windows任務(wù)計(jì)劃下自動(dòng)執(zhí)行。
@echo off
@echo ================================================
@echo windows環(huán)境下Oracle數(shù)據(jù)庫的自動(dòng)備份腳本
@echo 說明:?jiǎn)?dòng)備份時(shí),需要配置以下變量
@echo 1、BACKUP_DIR 指定要備份到哪個(gè)目錄
@echo 2、ORACLE_USERNAME 指定備份所用的Oracle用戶名
@echo 3、ORACLE_PASSWORD 指定備份所用的Oracle密碼
@echo 4、ORACLE_DB 指定備份所用的Oracle連接名
@echo 5、BACK_OPTION 備份選項(xiàng),可以為空,可以為full=y,可以為owner=a用戶,b用戶 等等....
@echo 6、RAR_CMD 指定RAR命令行壓縮工具所在目錄
@echo ================================================
rem 以下變量需要根據(jù)實(shí)際情況配置------ 注意:此腳本必須放在E:\backup目錄下
set BACKUP_DIR=E:\backup
set ORACLE_USERNAME=se
set ORACLE_PASSWORD=xj
set ORACLE_DB=xj_orcl
set BACK_OPTION= OWNER=se
set RAR_CMD="C:\Program Files\WinRAR\Rar.exe"
for /f "tokens=1,2" %%a in ('date/t') do set TODAY=%%a
set BACK_NAME=%ORACLE_DB%_%TODAY%()_
set BACK_FULL_NAME=%BACKUP_DIR%\%BACK_NAME%
rem 開始備份
exp %ORACLE_USERNAME%/%ORACLE_PASSWORD%@%ORACLE_DB% %BACK_OPTION% file="%BACK_FULL_NAME%.dmp" log="%BACK_FULL_NAME%exp.log"
rem 壓縮并刪除原有文件
%RAR_CMD% a -df "%BACK_FULL_NAME%back.rar" "%BACK_FULL_NAME%.dmp" "%BACK_FULL_NAME%exp.log"
rem ---------------------------------------------------------------------------
forfiles /m *.rar -d -7 /c "cmd /c del /f @path"
3
配置相關(guān)參數(shù):
BACKUP_DIR:該參數(shù)為備份數(shù)據(jù)文件的存放位置,可根據(jù)實(shí)際情況進(jìn)行設(shè)置(注:設(shè)置的文件路徑不允許包含漢字、特殊字符等內(nèi)容)。
ORACLE_USERNAME:該參數(shù)為指定備份的Oracle數(shù)據(jù)庫用戶名。
ORACLE_PASSWORD:該參數(shù)為指定備份的Oracle數(shù)據(jù)庫密碼。
ORACLE_DB:該參數(shù)為指定備份的Oracle數(shù)據(jù)庫連接名。
BACK_OPTION:該參數(shù)為備份選項(xiàng),可以為空,也可以為full=y等。
RAR_CMD:指定RAR命令行壓縮工具所在目錄
END
安裝軟件
1
下載WINRAR安裝包。
2
點(diǎn)擊"wrar520sc_setup.exe",進(jìn)行安裝軟件。
3
根據(jù)軟件的安裝路徑,在命名的bat處理文件中配置:RAR_CMD參數(shù)。
END
添加定時(shí)任務(wù)
打開電腦的控制面板,選擇"任務(wù)計(jì)劃",雙擊打開。頁面如圖所示:
雙擊打開添加定時(shí)任務(wù),點(diǎn)擊下一步進(jìn)入相關(guān)設(shè)置頁面。頁面如圖所示:
單擊瀏覽按鈕,找到oracleBackup.bat文件添加,然后進(jìn)行配置:根據(jù)實(shí)際情況選擇要備份的時(shí)間類型,此處以每天執(zhí)行為例,選擇每天,點(diǎn)擊下一步,設(shè)置執(zhí)行時(shí)間。
輸入執(zhí)行定時(shí)任務(wù)機(jī)器的用戶名及密碼,點(diǎn)擊下一步,進(jìn)入完成界面,點(diǎn)擊完成,至此,Oracle數(shù)據(jù)庫定時(shí)任務(wù)備份的設(shè)置。
5
利用修改機(jī)器時(shí)間進(jìn)行定時(shí)任務(wù)的測(cè)試。
先確認(rèn)oracle服務(wù)器上oracle如下截圖中標(biāo)紅的相關(guān)的服務(wù)是否已經(jīng)正常啟動(dòng)。
請(qǐng)點(diǎn)擊輸入圖片描述
要斷開數(shù)據(jù)庫的所有連接,如果數(shù)據(jù)庫中有正在連接客戶端,備份的時(shí)候可能會(huì)出現(xiàn)異常,比如PLSQL的連接先退出一下。
請(qǐng)點(diǎn)擊輸入圖片描述
在開始菜單中輸入“cmd”命令后回車,打開dos命令窗口,如下截圖1和2所示。
請(qǐng)點(diǎn)擊輸入圖片描述
請(qǐng)點(diǎn)擊輸入圖片描述
在cmd窗口中,輸入以下命令:
exp 用戶名/密碼@SID file=d:\xx.dmp owner=用戶名,按下回車鍵,界面如下截圖所示。
請(qǐng)點(diǎn)擊輸入圖片描述
導(dǎo)出的時(shí)間是根據(jù)數(shù)據(jù)庫的大小決定的,如果數(shù)據(jù)庫中表比較多,數(shù)據(jù)量比較大速度就會(huì)比較慢,請(qǐng)耐心等待。當(dāng)數(shù)據(jù)完成導(dǎo)出之后,cmd窗口中會(huì)出現(xiàn)如下圖所示的提示語,這就表示已經(jīng)完成了數(shù)據(jù)庫備份導(dǎo)出的動(dòng)作。
請(qǐng)點(diǎn)擊輸入圖片描述
這時(shí)候在計(jì)算機(jī)中找到第四步中設(shè)定的文件保存路徑,如下截圖,你會(huì)發(fā)現(xiàn)多了一個(gè)dmp的文件,這個(gè)文件就是我們需要的備份文件了。
請(qǐng)點(diǎn)擊輸入圖片描述
可以在控制面板的管理工具中,找到任務(wù)計(jì)劃程序,設(shè)置一個(gè)定時(shí)任務(wù),每天執(zhí)行一遍exp 用戶名/密碼@SID file=d:\xx.dmp owner=用戶名這個(gè)命令,這樣就能實(shí)現(xiàn)數(shù)據(jù)庫數(shù)據(jù)的定時(shí)備份了。
請(qǐng)點(diǎn)擊輸入圖片描述
請(qǐng)點(diǎn)擊輸入圖片描述
可以通過exp方式進(jìn)行備份:
1、編寫備份腳本保存為.bat文件:
exp 用戶名/密碼@數(shù)據(jù)庫 own=用戶名 file="e:\oracleback\data.dmp" BUFFER=64000 log=e:\oracleback\data_%date:~0,10%_PM.log
forfiles /p "E:\oracleback" /s /m *.* /d -4 /c "cmd /c del @path"
rd e:\recycled\ /s/q
2、windows帶的計(jì)劃任務(wù)里添加計(jì)劃執(zhí)行該.bat文件
Oracle自動(dòng)備份的三種方法:\x0d\x0aOracle自動(dòng)備份數(shù)據(jù)庫不外乎以下三種方式:\x0d\x0aWINDOWS下的任務(wù)計(jì)劃(At命令)\x0d\x0aUNIX下的Crontab \x0d\x0a第三方工具如Viritas\x0d\x0a在以上三種方式中Viritas屬于第三方工具,很多人可能都沒有接觸,主要說一下windows的任務(wù)計(jì)劃與unix的cron\x0d\x0a1、生成腳本文件,如backup.rcv 假定文件內(nèi)容如下:\x0d\x0a$cat backup.rcv connect target sys/password rcvcat rman/rman@localname; run{ allocate channel c1 type disk; allocate channel c2 type disk; allocate channel c3 type disk; backup fileaperset 3 format ‘/u01/oradata/backup/arch%u_%s_%p’ archivelog all delete input; release channel c1; release channel c2; release channel c3; }\x0d\x0a\x0d\x0a2、生成執(zhí)行文件在windows上生成backup_archive.bat,內(nèi)容包括rman cmdfile = backup.rcv 在unix下生成 backup_archive.sh,內(nèi)容包括oracle/ramn/rman cmdfile = backup.rcv\x0d\x0a3、加入調(diào)度在windows中用任務(wù)計(jì)劃向?qū)Ъ纯?,或使用at命令。在unix中,在目標(biāo)機(jī)器上編寫一個(gè)文件,用以啟動(dòng)Oracle自動(dòng)備份進(jìn)程。假定文件名為ORACLE,文件將放在/var/spool/cron/crontabs目錄下\x0d\x0a$cat oracle \x0d\x0a0 23 * * 0 backup_archive.sh \x0d\x0a#表示星期天23點(diǎn)對(duì)數(shù)據(jù)庫備份 \x0d\x0a0 12,18 * * * backup_archive.sh \x0d\x0a #表示每天12點(diǎn),18點(diǎn)備份 \x0d\x0aCrontab文件的每一行由六個(gè)域(minutes,hours,day of month,month,day of week,command)組成,域之間用空格或Tab分隔開來。
樓主:供參考
利用任務(wù)計(jì)劃、批處理文件和ORACLE的EXP導(dǎo)出功能,可以根據(jù)日期自動(dòng)生成ORACLE備份文件,大大方便了ORACLE數(shù)據(jù)備份。
建議一(做周備份并壓縮為RAR)以下為ORACLE 自動(dòng)備份批處理文件內(nèi)容,請(qǐng)配合任務(wù)計(jì)劃實(shí)現(xiàn) :
例:
@ECHO OFF
SET BACKPATH=d:\
ECHO 準(zhǔn)備備份數(shù)據(jù)庫
REM 7天一個(gè)循環(huán)
IF EXIST %BACKPATH%\ONE GOTO ONE
IF EXIST %BACKPATH%\TWO GOTO TWO
IF EXIST %BACKPATH%\THREE GOTO THREE
IF EXIST %BACKPATH%\FOUR GOTO FOUR
IF EXIST %BACKPATH%\FIVE GOTO FIVE
IF EXIST %BACKPATH%\SIX GOTO SIX
IF EXIST %BACKPATH%\SEVEN GOTO SEVEN
ECHO E %BACKPATH%\ONE
:ONE
SET BACKPATH_FULL=%BACKPATH%\ONE
REN %BACKPATH%\ONE TWO
GOTO BACK
:TWO
SET BACKPATH_FULL=%BACKPATH%\TWO
REN %BACKPATH%\TWO THREE
GOTO BACK
:THREE
SET BACKPATH_FULL=%BACKPATH%\THREE
REN %BACKPATH%\THREE FOUR
GOTO BACK
:FOUR
SET BACKPATH_FULL=%BACKPATH%\FOUR
REN %BACKPATH%\FOUR FIVE
GOTO BACK
:FIVE
SET BACKPATH_FULL=%BACKPATH%\FIVE
REN %BACKPATH%\FIVE SIX
GOTO BACK
:SIX
SET BACKPATH_FULL=%BACKPATH%\SIX
REN %BACKPATH%\SIX SEVEN
GOTO BACK
:SEVEN
SET BACKPATH_FULL=%BACKPATH%\SEVEN
REN %BACKPATH%\SEVEN ONE
GOTO BACK
:BACK
EXP ccense/ccense FILE=%BACKPATH_FULL%.DMP
RAR a %BACKPATH_FULL%.rar %BACKPATH_FULL%.DMP
DEL %BACKPATH_FULL%.DMP
SET BACKPATH=
SET BACKPATH_FULL=
EXIT
說明:
文件名以星期來命名
備份后調(diào)用rar進(jìn)行壓縮
這樣可以保存一個(gè)星期的歷史數(shù)據(jù)
注意:需要把program files/winrar目錄下的rar.exe拷貝到系統(tǒng)system32目錄下
建議二:
1,批處理文件backup.bat\.
exp system/manager file=d:\backup\oracle\oracle%date:~0,10%.dmp owner=system log=d:\backup\oracle\oracle%date:~0,10%.log
將生成oracle2006-01-09.dmp文件
exp system/manager file=d:\backup\oracle\oracle%date:~11,3%.dmp owner=system log=d:\backup\oracle\oracle%date:~11,3%.log
將生成oracle星期一.dmp文件,則每周循環(huán)保留一個(gè)備份文件,共7個(gè)備份文件循環(huán) $date$日期參數(shù)可靈活運(yùn)用。