利用任務(wù)計劃、批處理文件和ORACLE的EXP導(dǎo)出功能,可以根據(jù)日期自動生成ORACLE備份文件,大大方便了ORACLE數(shù)據(jù)備份。
成都創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),滴道企業(yè)網(wǎng)站建設(shè),滴道品牌網(wǎng)站建設(shè),網(wǎng)站定制,滴道網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,滴道網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。
建議一(做周備份并壓縮為RAR)以下為ORACLE 自動備份批處理文件內(nèi)容,請配合任務(wù)計劃實現(xiàn) :
例:
@ECHO OFF
SET BACKPATH=d:\
ECHO 準備備份數(shù)據(jù)庫
REM 7天一個循環(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進行壓縮
這樣可以保存一個星期的歷史數(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)保留一個備份文件,共7個備份文件循環(huán) $date$日期參數(shù)可靈活運用。
本篇文章主要介紹oracle 11g數(shù)據(jù)庫的自動備份問題,通過服務(wù)器自帶的任務(wù)計劃來實現(xiàn)。 工具/原料 服務(wù)器 批處理文件 任務(wù)計劃程序 plsql程序 方法/步驟 1 登陸oracle數(shù)據(jù)庫服務(wù)器,利用plsql程序來登陸數(shù)據(jù)庫。在用戶名、密碼、數(shù)據(jù)庫的地方分別輸入對應(yīng)的用戶名、密碼和數(shù)據(jù)庫實例名稱。 2 登陸完成后,新建sql窗口,并在sql窗口中執(zhí)行以下語句: ----------------------------------------------------------------------------- declare stmt varchar2(200);begin for tb in (select table_name from user_tables where segment_created='NO') loop stmt:='alter table '||tb.table_name||' allocate extent'; begin execute immediate stmt; exception when others then dbms_output.put_line(stmt); end; end loop;end;/ ----------------------------------------------------------------------------- 此語句的作用是導(dǎo)出oracle 11g的空表 3 建立bat批處理文件 ------------------------------------------------------------------------------ cd d:\bea\dbbackdel oa%date:~8,2%.dmpexpdp username/password@orcl directory=DIR_EXP dumpfile=oa%date:~8,2%.dmp ------------------------------------------------------------------------------ 其中d:\bea\dbback是命令所在的目錄 username/password@orcl 分別為登陸數(shù)據(jù)庫的用戶名、密碼、數(shù)據(jù)庫實例 DIR_EXP 是在plsql中建立的directory即目錄,需要根據(jù)自己的需求來創(chuàng)建 4 在電腦附件中找到任務(wù)計劃程序,然后點擊打開,如下圖 5 點擊右側(cè)的逗創(chuàng)建基本任務(wù)地,創(chuàng)建一個任務(wù)計劃,填寫任務(wù)名字和描述,如下圖: 6 設(shè)置任務(wù)的執(zhí)行周期,這里周期選擇每天,點擊下一步 7 再設(shè)置開始時間,一般選擇在夜間備份數(shù)據(jù)庫,點擊下一步 8 設(shè)置執(zhí)行的操作是,這里是批處理,所以選擇程序,點擊下一步 9 選擇前面我們只做的bat批處理文件。即oracle備份語句文件。參數(shù)填寫文件所在的目錄,點擊下一步: 10 點擊完成即可。 11 然后雙擊對應(yīng)的計劃任務(wù)名稱,出現(xiàn)界面如下圖: 12 然后在安全選項中選擇逗不管用戶是否登陸都要運行此程序地 13 然后點擊確定,系統(tǒng)會讓用戶輸入對應(yīng)的系統(tǒng)登陸密碼,如下圖,輸入完密碼點擊確定即可。 注意事項 在計劃任務(wù)中起始參數(shù)一定要填寫文件對應(yīng)的目錄路徑 批處理文件制作完成后,自己先雙擊測試一遍
Oracle自動備份數(shù)據(jù)庫不外乎以下三種方式
WINDOWS下的任務(wù)計劃(At命令)
UNIX下的Crontab
第三方工具如Viritas
在以上三種方式中Viritas屬于第三方工具,很多人可能都沒有接觸,主要說一下windows的任務(wù)計劃與unix的cron
1、生成腳本文件,如backup.rcv 假定文件內(nèi)容如下:
$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; }
2、生成執(zhí)行文件在windows上生成backup_archive.bat,內(nèi)容包括rman cmdfile = backup.rcv 在unix下生成 backup_archive.sh,內(nèi)容包括oracle/ramn/rman cmdfile = backup.rcv
3、加入調(diào)度在windows中用任務(wù)計劃向?qū)Ъ纯?,或使用at命令。在unix中,在目標機器上編寫一個文件,用以啟動Oracle自動備份進程。假定文件名為ORACLE,文件將放在/var/spool/cron/crontabs目錄下
$cat oracle
0 23 * * 0 backup_archive.sh
#表示星期天23點對數(shù)據(jù)庫備份
0 12,18 * * * backup_archive.sh
#表示每天12點,18點備份
Crontab文件的每一行由六個域(minutes,hours,day of month,month,day of week,command)組成,域之間用空格或Tab分隔開來