1.提前写好备份.bat,放在某个文件夹里,将路径设置在.properties里的
@echo off
set txt=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%
echo %txt%
echo --------------------------------------------------
echo -------------正在执行oracle数据库备份--------------
echo --------------------------------------------
echo ...
echo ...
echo 导出Database...
if exist %txt%.dmp del %txt%.dmp
exp userid=user/user@ORCL file=d:/%txt%.dmp
echo ...
echo ...
echo 备份完成!
exit
2.在XML文件里添加监听
com.dbbackup.DbBackUpListener
3.主程序
import java.io.FileNotFoundException;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class DbBackUpListener implements ServletContextListener {
// 设置备份间隔时间
int intTime = 60;//这里设置1分钟执行一次
public void contextDestroyed(ServletContextEvent sce) {
}
public void contextInitialized(ServletContextEvent sce) {
ServletContext ctx = sce.getServletContext();
// 取得.bat文件的路径。路径设置到了.properties里
String filePath = PropertyUtil
.getProperty("WEB-INF/test.bat");
PickTask picktask = new PickTask(ctx.getRealPath(filePath));
// 多久执行一次
picktask.start(1, intTime);
}
}
class PickTask {
private Timer timer;
private String fileName = null;
public PickTask(String fileName1) {
this.timer = new Timer();
this.fileName = fileName1;