最近一個同事修改 表結構的時候不小心刪了幾張表,雖然恢復部分數據,但是有個表的數據已經找不回了,
因爲之前數據庫沒有做備份,所以今天花了半天時間做了個邏輯備份,整體的思路如下:首先寫好exp語句做成bat文件,然後用windows計劃任務去執行
第一步:建立備份腳本oraclebackup.bat
首先建立一個備份bat文件,在D盤下新建備份目錄oraclebackup,將oracle安裝目錄下的EXP.EXE複製到此目錄下,再新建一個文本文件oraclebackup.txt,內容如下:
@echo off
echo 刪除10天前的備分文件和日誌
forfiles /p "D:\oraclebackup" /m *.dmp /d -10 /c "cmd /c del @path"
forfiles /p "D:\oraclebackup" /m *.log /d -10 /c "cmd /c del @path"
echo 正在備份 Oracle 數據庫,請稍等……
expsystem/oracle@orclfile=D:/oraclebackup/mdb%date:~0,4%%date:~5,2%%date:~8,2%.dmp log=D:/oraclebackup/mdb%date:~0,4%%date:~5,2%%date:~8,2%.log full=y buffer=65535
echo 任務完成!
完成後,將該記事本的後綴txt改成bat即可。
雙擊oraclebackup.bat可以測試是否可以正常備份。
第二步:新建
windows計劃任務
進入windows的控制面板,打開計劃與任務,新建任務,點擊瀏覽,選擇剛纔新建的d盤oraclebackup目錄下的oraclebackup.bat文件。接着選擇每天晚上22:00點執行,再輸入本機的administrator密碼即可。
備註:這裏我記錄下,我遇到的問題,主要是因爲我一個用戶裏面有很多表,但是現在我不需要全部備份,只需要備份XXX打頭的表,
OK,修改exp語句exp
system/oracle@orcl tables=(system.XXX%%)file=D:/oraclebackup/mdb%date:~0,4%%date:~5,2%%date:~8,2%.dmp log=D:/oraclebackup/mdb%date:~0,4%%date:~5,2%%date:~8,2%.log
full=y buffer=65535 ,
注意,當時 我是這樣加的tables=(system.XXX%),結果bat文件不能執行,原來bat'文件裏面的%必須要是%%,這個問題我搞了很久才搞清楚~~~~~
轉:http://blog.csdn.net/jimmy609/article/details/40624141