最近一個同事修改 表結構的時候不當心刪了幾張表,雖然恢復部分數據,可是有個表的數據已經找不回了,數據庫
由於以前數據庫沒有作備份,因此今天花了半天時間作了個邏輯備份,總體的思路以下:首先寫好exp語句作成bat文件,而後用windows計劃任務去執行windows
第一步:創建備份腳本oraclebackup.batoracle
首先創建一個備份bat文件,在D盤下新建備份目錄oraclebackup,將oracle安裝目錄下的EXP.EXE複製到此目錄下,再新建一個文本文件oraclebackup.txt,內容以下:測試
@echo off
echo 刪除10天前的備分文件和日誌spa
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".net
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便可。orm
雙擊oraclebackup.bat能夠測試是否能夠正常備份。get
第二步:新建windows計劃任務cmd
進入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'文件裏面的%必需要是%%,這個問題我搞了好久才搞清楚~~~~~