日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

简单的oracle备份恢复批处理文件 -- 转

發(fā)布時(shí)間:2023/12/9 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 简单的oracle备份恢复批处理文件 -- 转 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

建議一:

利用任務(wù)計(jì)劃、批處理文件和ORACLE的EXP導(dǎo)出功能,可以根據(jù)日期自動(dòng)生成ORACLE備份文件,大大方便了ORACLE數(shù)據(jù)備份。:
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)
2、添加一個(gè)任務(wù)計(jì)劃
利用任務(wù)計(jì)劃向?qū)?#xff0c;根據(jù)備份策略設(shè)置自動(dòng)執(zhí)行任務(wù)的時(shí)間頻率(例如每天零時(shí)),執(zhí)行d:\oracle\backup.bat
3、以后每天將在目錄中生成形如“oracle2005-08-31.dmp和oracle2005-08-31.log”的備份和日志文件。
說明:
1、%date%的值在不同的系統(tǒng)、語言版本下可能是不一樣的,控制面板里面區(qū)域選項(xiàng)的設(shè)定也會(huì)改變%date%的值。請(qǐng)先在命令行中測(cè)試 echo %date% 的返回值。%date:~4,10% 是返回日期函數(shù),~后的第一個(gè)參數(shù)是要截取的起始位置(從0開始),第二個(gè)參數(shù)是要截取的長(zhǎng)度,如沒有則是截取到最后,參數(shù)可酌情修改。
2、如需要準(zhǔn)確的時(shí)間做為文件名,請(qǐng)用%time%函數(shù),參數(shù)同上。

建議二:

@echo off
set filename=e:\data_bak\%date:~8,2%日
exp userid=user/pass@esdata file=%filename%.dmp owner=user INDEXES=y grants=y constraints=y compress=y log=%filename%.log
rar a %filename%.rar %filename%.*
del %filename%.dmp
del %filename%.log
放計(jì)劃任務(wù)里面定時(shí)執(zhí)行,
文件名以日期的day部分來命名
備份后調(diào)用rar進(jìn)行壓縮
這樣可以保存一個(gè)月的歷史數(shù)據(jù)
注意:需要把program files/winrar目錄下的rar.exe拷貝到系統(tǒng)system32目錄下
如果是以星期命名,則需要將set filename=e:\data_bak\%date:~8,2%日修改為
set filename=e:\data_bak\%date:~0,3%

建議三:

以下為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 TESTUSER/TEST FILE=%BACKPATH_FULL%.DMP
SET BACKPATH=
SET BACKPATH_FULL=
EXIT

建議四:

RMAN TARGET=RMAN/RMAN@ORCL < C:\RMAN.TXT

建議五:

在文本里編輯cmd命令。然后保存成bat文件。在windows中定義任務(wù)計(jì)劃,就
可以自動(dòng)執(zhí)行了。
例:

?? 編輯文本文件
?? del c:\exp\*.dmp
?? exp userid=cw/cw@db file='c:\exp\*.dmp' tables=(student)
保存成bat文件

建議六:

寫個(gè)簡(jiǎn)單的批處理文件備份恢復(fù):
備份:
@echo off           ???????????? 不顯示命令行

echo 開始備份表.....      ???????????????? 打印信息               
D:????????????????????????????????????????????????????????????????????? DOS切換到D: 盤
cd oracle\ora92\bin      ??????????????????? 切換到cd oracle\ora92\bin目錄
exp 用戶名/密碼@數(shù)據(jù)庫 file=d:\config_bak.dmp tables=(table1,table2)????? 備份表一表二到d:\config_bak.dmp
echo 備份完畢!

恢復(fù):
@echo off           

echo 開始恢復(fù)表.....                     
D:
cd oracle\ora92\bin
imp 用戶名/密碼@數(shù)據(jù)庫 file=d:\config_bak.dmp tables=(table1,table2) ignore=y??
sqlplus /nolog @oraStartup.sql>>oraStartup.log 調(diào)用sql文件
pause???????????????????????????????????????????????????????????????? 執(zhí)行完sql文件以后暫停,看信息
echo 恢復(fù)完畢!

編寫oraStartup.sql
conn 用戶名/密碼@數(shù)據(jù)庫 as sysdba
select * from table1;
quit;

      


執(zhí)行環(huán)境:可以在SQLPLUS.EXE或者DOS(命令行)中執(zhí)行,
DOS中可以執(zhí)行時(shí)由于 在oracle 8i 中 安裝目錄\ora81\BIN被設(shè)置為全局路徑,
該目錄下有EXP.EXE與IMP.EXE文件被用來執(zhí)行導(dǎo)入導(dǎo)出。
oracle用java編寫,我想SQLPLUS.EXE、EXP.EXE、IMP.EXE這倆個(gè)文件是被包裝后的類文件。
SQLPLUS.EXE調(diào)用EXP.EXE、IMP.EXE他們所包裹的類,完成導(dǎo)入導(dǎo)出功能。

  下面介紹的是導(dǎo)入導(dǎo)出的實(shí)例,向?qū)雽?dǎo)出看實(shí)例基本上就可以完成,因?yàn)閷?dǎo)入導(dǎo)出很簡(jiǎn)單。
數(shù)據(jù)導(dǎo)出:
1 將數(shù)據(jù)庫TEST完全導(dǎo)出,用戶名system 密碼manager 導(dǎo)出到D:\daochu.dmp中
exp system/manager@TEST file=d:\daochu.dmp full=y
2 將數(shù)據(jù)庫中system用戶與sys用戶的表導(dǎo)出
exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys)
3 將數(shù)據(jù)庫中的表table1 、table2導(dǎo)出
exp system/manager@TEST file=d:\daochu.dmp tables=(table1,table2)
4 將數(shù)據(jù)庫中的表table1中的字段filed1以"00"打頭的數(shù)據(jù)導(dǎo)出
exp system/manager@TEST file=d:\daochu.dmp tables=(table1) query=\" where filed1 like '00%'\"

上面是常用的導(dǎo)出,對(duì)于壓縮我不太在意,用winzip把dmp文件可以很好的壓縮。
不過在上面命令后面 加上 compress=y 就可以了

  數(shù)據(jù)的導(dǎo)入
1 將D:\daochu.dmp 中的數(shù)據(jù)導(dǎo)入 TEST數(shù)據(jù)庫中。
imp system/manager@TEST file=d:\daochu.dmp
上面可能有點(diǎn)問題,因?yàn)橛械谋硪呀?jīng)存在,然后它就報(bào)錯(cuò),對(duì)該表就不進(jìn)行導(dǎo)入。
在后面加上 ignore=y 就可以了。
2 將d:\daochu.dmp中的表table1 導(dǎo)入
imp system/manager@TEST file=d:\daochu.dmp tables=(table1)

??????? 導(dǎo)入
基本上上面的導(dǎo)入導(dǎo)出夠用了。不少情況我是將表徹底刪除,然后導(dǎo)入。

轉(zhuǎn)載于:https://www.cnblogs.com/huhu456/archive/2009/05/09/1453443.html

總結(jié)

以上是生活随笔為你收集整理的简单的oracle备份恢复批处理文件 -- 转的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。