在网上搜了一下。网上已经有了比较全面的一种方案了,所以自己又可以懒了!呵呵!
它的脚本包括三个文件
1.exp.txt(数据库参数设置文件)
userid=ZCDP/ZCDP@ORCL_192.168.0.250
owner=ZCDP
INDEXES=y
grants=y
rows=y
constraints=y
compress=N
相信了解exp语法的朋友不会感到为难吧!
2.Oracle_bakup.bat(处理文件)
del /q ../old_backup/*.*
copy ../backup/*.* ../old_backup
del /q ../backup/*.*
Oracle_bakup.vbs
3.Oracle_bakup.vbs()
Option Explicit
On Error Resume Next
Dim fname, cmd
Dim WshShell
Set WshShell = CreateObject("WScript.Shell")
fname = Date
cmd = "exp log=../backup/" & "fas_" & fname & ".log file=../backup/" & "fas_" & fname & ".dmp parfile=exp.txt" WshShell.run cmd
Set WshShell = Nothing
'WScript.Echo cmd
对于VBScript了解的人也不会看不懂吧!呵呵!其实我也不熟悉,大概就是在这个文件里面定义cmd语法,里面有个文件名称路径的定义。我们可以不必关心里面的log文件,但是为了数据的准确性,最好还是加上,可以通过log我们就掌握数据是否有问题了。 运行oracle_bakup.bat备份数据库。可以将该文件加入到windows的任务中实现自动备份的功能。OK? 如果java实现数据库的定义的话请看下面一段代码:
mon;
mons.logging.Log;
mons.logging.LogFactory;
importcom.sclh.hibernate.dao.DepartmentDAO;
publicclassBakOracleDB...{
privatestaticfinalLoglog=LogFactory.getLog(DepartmentDAO.class);
publicBakOracleDB()...{
}
publicstaticvoidexecommand(Stringcommand)...{
try...{
if(command!=null&&!"".equals(command))...{
Runtime.getRuntime().exec(command);
}
}
catch(Exceptionex)...{
log.error("Exception:mon.BakOracleDB/execommand()"+
ex.getMessage());
}
}
publicstaticbooleangetBakOracleDB(Stringurl)...{
booleanreturnValue=false;
StringurlLog="";
StringurlDmp="";
if(url.indexOf(".")==-1)...{
urlDmp=url+GetTime.getSystemTime().toString()+".dmp";
urlLog=url+GetTime.getSystemTime().toString()+".log";
}else...{
urlDmp=url;
urlLog=urlDmp.substring(0,urlDmp.indexOf("."))+".log";
}
try...{
Stringcommand="expZCDP/ZCDP@ORCL_192.168.0.250file="+urlDmp+"log="+urlLog+"owner=ZCDP";
BakOracleDB.execommand(command);
returnValue=true;
}catch(Exceptionex)...{
log.error("Exception:mon.BakOracleDB/getBakOracleDB()"+
ex.getMessage());
}
returnreturnValue;
}
publicstaticvoidmain(String[]args)...{
BakOracleDBbdb=newBakOracleDB();
bdb.getBakOracleDB("C:/fas_-01-02.dmp");
bdb.getBakOracleDB("C:/fas_");
}
}