windows 计划任务备份oracle数据库

在网上搜了一下。网上已经有了比较全面的一种方案了,所以自己又可以懒了!呵呵! 

它的脚本包括三个文件

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实现数据库的定义的话请看下面一段代码:

package  com.sclh.common;

import  org.apache.commons.logging.Log;
import  org.apache.commons.logging.LogFactory;

import  com.sclh.hibernate.dao.DepartmentDAO;

public   class  BakOracleDB  {

    
private static final Log log = LogFactory.getLog(DepartmentDAO.class);
    
      
public BakOracleDB() {
      }

      
public static void execommand(String command) {
        
try {
          
if (command != null && !"".equals(command)) {
            Runtime.getRuntime().exec(command);
          }

        }

        
catch (Exception ex) {
            log.error(
"Exception : com.sclh.common.BakOracleDB/execommand() " +
              ex.getMessage());
        }

      }

     
public static boolean getBakOracleDB(String url){
         
boolean returnValue = false;
         String urlLog 
= "";
         String urlDmp 
= "";
         
         
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{
             String command 
= "exp ZCDP/ZCDP@ORCL_192.168.0.250 file="+urlDmp+" log=" + urlLog + " owner=ZCDP";
             BakOracleDB.execommand(command);
             returnValue 
= true;
         }
catch(Exception ex){
                log.error(
"Exception : com.sclh.common.BakOracleDB/getBakOracleDB() " +
                        ex.getMessage());
         }

         
return returnValue;
     }

     
     
public static void main(String[] args){
         
         BakOracleDB bdb 
= new BakOracleDB();
         bdb.getBakOracleDB(
"C:/fas_2007-01-02.dmp");
         bdb.getBakOracleDB(
"C:/fas_");
     }


}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值