用JSP對DB2資料庫實行線上備份的思考!

來源:互聯網
上載者:User

      首先,需要說一點,DB2的SQL語句和命令列語句是分開的,不象SQL SERVER 2000可以通過SQL語句進行備份,所以按照SQL SERVER的備份思路不是行的,試過多次,都提示後面發現意外標記,無奈,只有去網上查,看有沒有相關問題的解決方案,看到一個網友發的思路,深受啟發,他說,可以用JAVA調用外部程式,其實就是DB2的命令列工具DB2CMD.EXE然後對他傳入命令就可以了.下面是我寫的一段程式,可以參考下,也給我自己備忘.

 

//備份資料庫<br /> public void backupData(String url) throws SQLException, NamingException,<br /> IOException {<br /> /** URL是系統的根目錄,可以通過以下語句獲得,傳進來,HttpSession hs = request.getSession();<br /> String url = hs.getServletContext().getRealPath("/"); */<br /> url = url + "dbbak//";<br /> sql = "backup database anhang to '" + url + "'";<br /> Process pro = Runtime.getRuntime().exec("db2cmd /c /w /i db2 -v");//此處當然要配置db2cmd.exe的環境變數<br /> BufferedReader br = new BufferedReader(new InputStreamReader(pro.<br /> getInputStream()));<br /> PrintWriter pw = new PrintWriter(pro.getOutputStream());</p><p> //把所有的應用全停掉!否則會提示有應用程式正在使用此資料庫<br /> pw.println("force application all");<br />//備份資料庫<br /> pw.println("connect to anhang user " + username + " using " + password);<br /> pw.println(sql);<br /> pw.println("quit");<br /> pw.println("exit");<br /> pw.flush();<br /> String line = null;<br /> while ( (line = br.readLine()) != null) {<br /> System.out.println(line);<br /> }<br /> System.out.println("備份資料庫成功!");<br /> }

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.