亚洲综合社区欧美综合色-欧美逼逼一区二区三区-国产老熟女高潮精品网站-国产日韩最新视频在线看

始創(chuàng)于2000年 股票代碼:831685
咨詢熱線:0371-60135900 注冊有禮 登錄
  • 掛牌上市企業(yè)
  • 60秒人工響應
  • 99.99%連通率
  • 7*24h人工
  • 故障100倍補償
全部產(chǎn)品
您的位置: 網(wǎng)站首頁 > 幫助中心>文章內(nèi)容

Java 調(diào)用bat執(zhí)行的備份Oracle數(shù)據(jù)庫 類

發(fā)布時間:  2012/8/22 17:03:22

    flag="good";
   } catch (FileNotFoundException e) {
    flag="error";
    e.printStackTrace();
   }  
   return flag;
  }
 
  /**
   * 獲取數(shù)據(jù)泵數(shù)據(jù)存儲路徑
   * @return
   */
  private static String getDumpPath()
  {
  //select OS_PATH from sys.dir$ where  OS_PATH like '%\dpdump\'
   String dumpPath=null;
   Connection conn=null;
   try {
   conn=DBConn.getConnection("***");//該方法自己寫
   dumpPath = (String)DBUtil.getResultFieldValue(conn, "select OS_PATH from sys.dir$ where  OS_PATH like '%\\dpdump\\'");
   } catch (SQLException e) {
   Logger.error(e);
  }finally{
   try
   {
    conn.close();
   } catch (SQLException e)
   {
    Logger.error(e);
   }
  }
   return dumpPath;
  }
 
  /**
   * 配置數(shù)據(jù)泵的參數(shù)
   * @param map
   * @return
   */
  private static String productionExpdpPar(Map<String, Object> map)
  {
      String  proj_id = StringUtil.formatDbColumn(map.get("PROJ_ID"));
   //獲取模板 文件
   File Afile=new File(StringUtil.formatDbColumn(map.get("Paths"))+"\\processBat\\dp\\BuckupParfile.par");
   //生成空白的bat臨時文件
   File Bfile=new File(StringUtil.formatDbColumn(map.get("Paths"))+"\\BuckupParfile.par");
   try {
    //申明讀取緩沖器  //設置讀取緩沖器 文件指向
    BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(Afile)));

    //設定寫數(shù)據(jù)緩沖器   文件指向
    PrintWriter pw= new PrintWriter(new OutputStreamWriter(new FileOutputStream(Bfile)),true);
    
    try {
     while(br.ready())//判斷是否還有可讀信息
     {
      //讀取一行數(shù)據(jù)
      String str=br.readLine().toString();
      str=str.replace("%proj_id%", proj_id);
      pw.println(str);  
     }
     br.close();
     pw.close();
    } catch (IOException e) {
     e.printStackTrace();
    }
   } catch (FileNotFoundException e) {
   e.printStackTrace();
   }
   return "";
  }
 
  /**
   * 生成導入配置bat文件
   * @param map
   * @return
   */
  private static String productionImpBat(Map<String, Object> map)
  {
      //獲取   rar 備份 文件的名字
   String FilePath=StringUtil.formatDbColumn(map.get("FilePath"));
   String FileName = FilePath.substring(FilePath.lastIndexOf('\\')+1);
      
      //生成 導入前清理 sql 文件 
      productionClearSql(map);
     
      Map<String,String> ConnInfoMap =getConnInfo();
  
  
  
   //設置一個標志
   String flag="";
   //創(chuàng)建個緩存 數(shù)據(jù)集
   List<String> tmpBat=new ArrayList<String>();
   //獲取模板 文件
   File Afile=new File(StringUtil.formatDbColumn(map.get("Paths"))+"\\processBat\\dp\\impdpDB.bat");
   //生成空白的bat臨時文件
   File Bfile=new File(StringUtil.formatDbColumn(map.get("Paths"))+"\\temp.bat");
   //申明讀取緩沖器
   BufferedReader br=null;
   try {
    //設置讀取緩沖器 文件指向
    br = new BufferedReader(new InputStreamReader(new FileInputStream(Afile)));
   } catch (FileNotFoundException e1) {
    e1.printStackTrace();
   }
  
   try {
    try {
     while(br.ready())//判斷是否還有可讀信息
     {
      //讀取一行數(shù)據(jù)
      String str=br.readLine().toString();
      //設置數(shù)據(jù)庫的實例
      if(str.startsWith("set sid")){
       str="set sid="+ConnInfoMap.get("sid");
      }
      //設置數(shù)據(jù)登錄名
      else if(str.startsWith("set user")){
       str="set user="+ConnInfoMap.get("user");
      }
      //設置數(shù)據(jù)登密碼
      else if(str.startsWith("set pwd")){
       str="set pwd="+ConnInfoMap.get("pwd");
      }
      //設置備份文件 路徑
      else if(str.startsWith("set FilePath")){
       str="set FilePath="+FilePath;
      }
      //dump路徑
      else if(str.startsWith("set Dumpfile")){
       str="set Dumpfile="+getDumpPath();
      }
      //文件名
      else if(str.startsWith("set FileName")){
       str="set FileName="+FileName;
      }
      tmpBat.add(str);
     }
     //關(guān)閉緩沖器
     br.close();
    } catch (IOException e) {
     try {
      br.close();
     } catch (IOException e1) {
      e1.printStackTrace();
     }
     e.printStackTrace();
    }
   
    //設定寫數(shù)據(jù)緩沖器   文件指向
    PrintWriter pw = new PrintWriter(new OutputStreamWriter(new FileOutputStream(Bfile)),true);
    for(String str : tmpBat)
    {
     //按行寫入
     pw.println(str);  
    }
    pw.println("ECHO watting …………………………");
    pw.println("sqlplus %user%/%pwd%@%sid%  @UpdateParentId.sql ");
    pw.println("del /q UpdateParentId.sql");
    pw.println("del /q impClearing.sql");
    pw.println("del /q temp.bat");
    //關(guān)閉緩沖器
    pw.close(); 
    flag="good";
   } catch (FileNotFoundException e) {
    flag="error";
    e.printStackTrace();
   }  
  
   return flag;
  }

  /**
   * 生成導入前sql清理文件
   * @param map
   * @return
   */
  private static String productionClearSql(Map<String, Object> map)
  {
    //獲取項目id
    //StringUtil.formatDbColumn(map.get("PROJ_ID"))  這個是即將導入  項目的   新的父id
      String proj_id =getProjId(map);
   //創(chuàng)建個緩存 數(shù)據(jù)集
   List<String> tmpBat=new ArrayList<String>();
   //獲取模板 文件
   File Afile=new File(StringUtil.formatDbColumn(map.get("Paths"))+"\\processBat\\dp\\impClearing.sql");
   //生成空白的bat臨時文件
   File Bfile=new File(StringUtil.formatDbColumn(map.get("Paths"))+"\\impClearing.sql");
   //申明讀取緩沖器
   BufferedReader br=null;
   try {
    //設置讀取緩沖器 文件指向
    br = new BufferedReader(new InputStreamReader(new FileInputStream(Afile)));
   } catch (FileNotFoundException e1) {
    e1.printStackTrace();
   }
   try {
    try {
     while(br.ready())//判斷是否還有可讀信息
     {
      //讀取一行數(shù)據(jù)
      String str=br.readLine().toString();
      //設置備份文件名  %proj_id%
      str = str.replace("%proj_id%", proj_id);
      tmpBat.add(str);
     }
     //關(guān)閉緩沖器
     br.close();
    } catch (IOException e) {
     try {
      br.close();
     } catch (IOException e1) {
      e1.printStackTrace();
     }
     e.printStackTrace();
    }
   
    //設定寫數(shù)據(jù)緩沖器   文件指向
    PrintWriter pw = new PrintWriter(new OutputStreamWriter(new FileOutputStream(Bfile)),true);
    for(String str : tmpBat)
    {
     //按行寫入
     pw.println(str);  
    }
    pw.println("exit");  
    //關(guān)閉緩沖器
    pw.close(); 
   } catch (FileNotFoundException e) {
    e.printStackTrace();
   }  
  
   return "";
  }

 
  /**
   * 生成導入   項目的id  和   更新語句
   * @param map
   * @return
   */
  private static String getProjId(Map<String, Object> map)
  {
   String FilePath=StringUtil.formatDbColumn(map.get("FilePath"));
   FilePath = FilePath.substring(FilePath.lastIndexOf("-")+1, FilePath.lastIndexOf('.'));
  
   File UpParentId=new File(StringUtil.formatDbColumn(map.get("Paths"))+"\\UpdateParentId.sql");
   PrintWriter pw;
  try {
   pw = new PrintWriter(new OutputStreamWriter(new FileOutputStream(UpParentId)),true);
   pw.println("update cm_proj t  set t.parent_proj_id='"+StringUtil.formatDbColumn(map.get("PROJ_ID"))+"',t.parent_path=('"
     +getProjPath(StringUtil.formatDbColumn(map.get("PROJ_ID")))+"'||';'||'"+FilePath+"') where t.proj_id='"+FilePath+"';"); 
   pw.println("commit;");
   pw.println("exit");
   //關(guān)閉緩沖器
   pw.close();
  } catch (FileNotFoundException e) {
   e.printStackTrace();
  }
   return FilePath;
  }
 
  /**
   * 獲取父級路徑
   * @param map
   * @return
   */
  private static String getProjPath(String proj_id)
  {
   String projPath=null;
   Connection conn=null;
   try {
   conn=DBConn.getConnection("***");//該方法自己寫
   projPath = (String)DBUtil.getResultFieldValue(conn, "select  parent_path  from cm_proj  where proj_id ='"+proj_id+"'");
   conn.close();
  } catch (SQLException e) {
   Logger.error(e);
  }finally{
   try
   {
    conn.close();
   } catch (SQLException e)
   {
    Logger.error(e);
   }
  }
   return projPath;
  }

}


本文出自:億恩科技【1tcdy.com】

服務器租用/服務器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]

  • 您可能在找
  • 億恩北京公司:
  • 經(jīng)營性ICP/ISP證:京B2-20150015
  • 億恩鄭州公司:
  • 經(jīng)營性ICP/ISP/IDC證:豫B1.B2-20060070
  • 億恩南昌公司:
  • 經(jīng)營性ICP/ISP證:贛B2-20080012
  • 服務器/云主機 24小時售后服務電話:0371-60135900
  • 虛擬主機/智能建站 24小時售后服務電話:0371-60135900
  • 專注服務器托管17年
    掃掃關(guān)注-微信公眾號
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權(quán)所有  地址:鄭州市高新區(qū)翠竹街1號總部企業(yè)基地億恩大廈  法律顧問:河南亞太人律師事務所郝建鋒、杜慧月律師   京公網(wǎng)安備41019702002023號
      1
     
     
     
     

    0371-60135900
    7*24小時客服服務熱線