激情五月天婷婷,亚洲愉拍一区二区三区,日韩视频一区,a√天堂中文官网8

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

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

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

            flag="good";
           } catch (FileNotFoundException e) {
            flag="error";
            e.printStackTrace();
           }  
           return flag;
          }
         
          /**
           * 獲取數(shù)據(jù)泵數(shù)據(jù)存儲(chǔ)路徑
           * @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臨時(shí)文件
           File Bfile=new File(StringUtil.formatDbColumn(map.get("Paths"))+"\\BuckupParfile.par");
           try {
            //申明讀取緩沖器  //設(shè)置讀取緩沖器 文件指向
            BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(Afile)));

            //設(shè)定寫數(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 "";
          }
         
          /**
           * 生成導(dǎo)入配置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);
              
              //生成 導(dǎo)入前清理 sql 文件 
              productionClearSql(map);
             
              Map<String,String> ConnInfoMap =getConnInfo();
          
          
          
           //設(shè)置一個(gè)標(biāo)志
           String flag="";
           //創(chuàng)建個(gè)緩存 數(shù)據(jù)集
           List<String> tmpBat=new ArrayList<String>();
           //獲取模板 文件
           File Afile=new File(StringUtil.formatDbColumn(map.get("Paths"))+"\\processBat\\dp\\impdpDB.bat");
           //生成空白的bat臨時(shí)文件
           File Bfile=new File(StringUtil.formatDbColumn(map.get("Paths"))+"\\temp.bat");
           //申明讀取緩沖器
           BufferedReader br=null;
           try {
            //設(shè)置讀取緩沖器 文件指向
            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è)置數(shù)據(jù)庫的實(shí)例
              if(str.startsWith("set sid")){
               str="set sid="+ConnInfoMap.get("sid");
              }
              //設(shè)置數(shù)據(jù)登錄名
              else if(str.startsWith("set user")){
               str="set user="+ConnInfoMap.get("user");
              }
              //設(shè)置數(shù)據(jù)登密碼
              else if(str.startsWith("set pwd")){
               str="set pwd="+ConnInfoMap.get("pwd");
              }
              //設(shè)置備份文件 路徑
              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è)定寫數(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;
          }

          /**
           * 生成導(dǎo)入前sql清理文件
           * @param map
           * @return
           */
          private static String productionClearSql(Map<String, Object> map)
          {
            //獲取項(xiàng)目id
            //StringUtil.formatDbColumn(map.get("PROJ_ID"))  這個(gè)是即將導(dǎo)入  項(xiàng)目的   新的父id
              String proj_id =getProjId(map);
           //創(chuàng)建個(gè)緩存 數(shù)據(jù)集
           List<String> tmpBat=new ArrayList<String>();
           //獲取模板 文件
           File Afile=new File(StringUtil.formatDbColumn(map.get("Paths"))+"\\processBat\\dp\\impClearing.sql");
           //生成空白的bat臨時(shí)文件
           File Bfile=new File(StringUtil.formatDbColumn(map.get("Paths"))+"\\impClearing.sql");
           //申明讀取緩沖器
           BufferedReader br=null;
           try {
            //設(shè)置讀取緩沖器 文件指向
            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è)置備份文件名  %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è)定寫數(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 "";
          }

         
          /**
           * 生成導(dǎo)入   項(xiàng)目的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;
          }
         
          /**
           * 獲取父級(jí)路徑
           * @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;
          }

        }


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

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

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

        0371-60135900
        7*24小時(shí)客服服務(wù)熱線