`
xiangqian0505
  • 浏览: 321671 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java实现oracle数据库备份

阅读更多
oracle数据库备份与恢复程序实现
在我们开发过程中总是时不时的要对数据库进行备份,以防出现万一情况数据丢失 ,一般都是在开始--->运行---->cmd;再输入导出数据库语句,恢复数据备份也相似的操作。如:

导出备份:exp redtourjgs/redtourjgs@oracle_192.168.2.89 file=d:\databasebuss\tourbuss\tourbuss.dmp log=d:\databasebuss\tourbuss\exp31.log owner=redtourjgs

导入备份:imp redtourjgs/redtourjgs@oracle_192.168.2.89 file=d:\databasebuss\tourbuss\tourbuss.dmp log=d:\databasebuss\tourbuss\imp30.log fromuser=redtourjgs

.对于我们程序员开发人员来说这也不是一件难事,对于客户来说操作起来就难了些,其实也可以做成用户比较方便的操作,其实原理是一样的,执行的语句也是一样的,只是显示的方式不一样而以;只要输入要备份的数据库名和密码等点击按钮就可以操作。今天研究了一下这种操作,主要的思路为:

1,建立一个JSP

要备份的数据库名:

数据库密码:

网络名:数据库的网络名,如(oracle_192.168.2.32)

备份名称:不用输入文件名后缀(默认为“.dmp”)。如有同名文件,将覆盖.默认备份在工程部署目录下DataBackUp文件夹。具体的代码如下:

<DIV id=contentborder cellpadding="0">

   <html:form action="/ipproot/databackup/databackup">
    <br>
    <center>
     <table border="0" width="95%" bordercolor="#FFFFFF" cellspacing="0" cellpadding="0">
     
      <tr>
       <td width="100%">
        <table border="1" cellspacing="0" width="100%" bordercolordark="#FFFFFF" bordercolorlight="#000000" bordercolor="#333300" cellpadding="2">
         <tr>
          <td width="30%" align="right" class="titleTD" height="25">
           要备份的数据库名:
          </td>
          <td width="70%">
           <html:text property="databasename" />
          </td>
         </tr>
         <tr>
          <td width="30%" align="right" class="titleTD" height="25">
           数据库密码:
          </td>
          <td width="70%">
           <html:text property="databasepw" />
          </td>
         </tr>
         <tr>
          <td width="30%" align="right" class="titleTD" height="25">
           网络名:
          </td>
          <td width="70%">
           <html:text property="netname" />
           数据库的网络名,如(oracle_192.168.2.32)
          </td>
         </tr>
         <tr>
          <td width="30%" align="right" class="titleTD" height="25">
           备份名称:
          </td>
          <td width="70%">
           <html:text property="backupname" />
           不用输入文件名后缀(默认为“.dmp”)。如有同名文件,将覆盖.默认备份在工程部署目录下DataBackUp文件夹。
          </td>
         </tr>
        </table>
       </td>
      </tr>
      <tr>
       <td width="100%" align="center">
        <div style="position:absolute;width:322;height:14;border:0 #707888 solid;overflow:hidden">
         <div style="position:absolute;top:-1;left:0" id="pimg">
         </div>
        </div>
       </td>
      </tr>
     </table>

    </center>

   </html:form>
  </DIV>

2,备份恢复数据库业务:

// 备份数据库

public void dataBackup(String databasename, String databasepw,
   String netname, String filepath, String filename)
   throws IOException {
  Runtime rt = Runtime.getRuntime();
  Process processexp = null;
  checkCreatDir(filepath);
  String exp = "exp " + databasename + "/" + databasepw + "@" + netname
    + " file=" + filepath + "/" + filename + ".dmp";
  int success = 0;
  try {
   processexp = rt.exec(exp);
  } catch (IOException e) {
   success = -1;
   e.printStackTrace();
  }

}

// 恢复数据库
public void dataResume(String databasename,String databasepw,String netname,String fromuser,String filename)
   throws IOException {

  Runtime rt = Runtime.getRuntime();
  Process processimp = null;
  // if(checkDir("f:/"+filename)){
  String imp = "imp " + databasename + "/" + databasepw + "@" + netname
    +" fromuser="+fromuser
    +" touser="+fromuser
    +" file="
       + filename + ".dmp";
  int success = 0;
  try {
   processimp = rt.exec(imp);
  } catch (IOException e) {
   success = -1;

   e.printStackTrace();
  }
  // }
}
// 创建文件夹

public void checkCreatDir(String dirPath) { // 目录是否存在
  File file = new File(dirPath);
  if (!file.exists()) {
   file.mkdirs();
  }
}
3,写备份数据库Action调用:
public ActionForward onSubmit(ActionMapping mapping, Object bean,
   HttpServletRequest request, HttpServletResponse response)
   throws Exception {
  DataBackupForm backupForm = (DataBackupForm) getForm();
  //获得工程部署文件路径
  //String path =request.getRealPath("/")+"DataBackUp";
  String path=getServletContext().getRealPath("/");
  String databasename=backupForm.getDatabasename();
  String databasepw =backupForm.getDatabasepw();
  String netname = backupForm.getNetname();
  String filename = backupForm.getBackupname();
 
  String filepath = path+"\\"+filename;
 
  TippInfoRestore TippInfoRestore = (TippInfoRestore) bean;
  TippInfoRestore.setFilename(filepath);
  //设置日期
  TippInfoRestore.setBackupdate(new Date());
  //调用备份数据库帮助类实现对数据库的备份??????
  DataBackupHelp dbh = new DataBackupHelp();
  try{
   dbh.dataBackup(databasename,databasepw,netname,path,filename);
  }catch(Exception e){
   e.printStackTrace();
   return mapping.findForward("failure");
  }
  //将信息保存在request中
  request.setAttribute("path",filepath);
  //在数据库中添加纪录
  dataBackupService.addBackup(TippInfoRestore);
  return mapping.findForward("success");
以上说的是主要一种思路,具体的没有完善。
分享到:
评论

相关推荐

    java实现oracle数据库备份.pdf

    #### 二、Java实现Oracle数据库备份的技术方案 1. **技术选型**: - **前端**:使用JSP(Java Server Pages)作为用户界面。 - **后端**:利用Java调用Oracle的导出工具`exp`完成数据备份。 2. **备份流程设计**...

    Java代码备份(windows和Linux)服务器oracle数据库

    总结来说,通过Java实现Oracle数据库备份,主要涉及到JDBC的使用、操作系统命令的调用、文件操作、错误处理、定时任务以及安全性的考量。在实际应用中,根据具体的业务需求和环境,可能还需要进一步优化和扩展备份...

    学习java实现oracle数据库备份.pdf

    Oracle数据库备份通常通过命令行工具完成,如`expdp`(导出)和`impdp`(导入)。然而,为了使非技术人员也能轻松操作,我们可以创建一个用户友好的界面,比如一个基于JSP的Web应用程序来自动化这个过程。 首先,...

    ORACLE数据库备份用bat脚本

    首先,让我们理解"Oracle数据库备份用bat脚本"的概念。批处理脚本是Windows操作系统中的一种命令文件,可以包含一系列的DOS命令,用于自动化执行特定的任务。在Oracle数据库环境中,我们可以利用Oracle的数据泵工具...

    Java导出Oracle数据库数据

    Java 导出 Oracle 数据库数据 Java 是一种流行的编程语言,广泛应用于各种领域。Oracle 是一种关系数据库管理系统,广泛应用于企业级应用中。在实际项目中,数据备份和恢复是非常重要的工作。本文将介绍如何使用 ...

    java备份还原oracle数据库知识.pdf

    Java备份和还原Oracle数据库知识 Java备份Oracle数据库是指使用Java语言编写的程序来备份Oracle数据库,备份的过程中需要使用Oracle的EXP工具来将数据库导出到一个文件中。下面是Java备份Oracle数据库的主要知识点...

    通过JAVA还原、备份Oracle数据库简单例子

    一、Oracle数据库备份 1. 使用JAVA连接Oracle数据库:通过JDBC(Java Database Connectivity)驱动,我们可以创建数据库连接,执行SQL语句。首先,确保已将Oracle JDBC驱动(如ojdbc.jar)添加到项目的类路径中。 ...

    java程序调用bat文件,执行oracel数据库备份

    总结一下,通过Java程序调用bat文件执行Oracle数据库备份是一种常见的实践。这种方式允许我们利用Java的跨平台特性结合批处理文件的灵活性,实现自动化的数据库管理任务。在实际应用中,我们还需要考虑错误处理、...

    oracle数据库备份

    #### 二、Java实现Oracle数据库备份 根据提供的代码片段,可以了解到这部分代码主要是通过Java程序调用Oracle的`exp`命令来实现Oracle数据库表级别的备份操作。这种方式虽然较为传统,但在某些场景下仍然非常实用。...

    本地java实现远程oracle备份还原

    首先,我们需要理解Oracle数据库备份的基本概念。备份是为了防止数据丢失,通常分为物理备份和逻辑备份。物理备份涉及复制实际的数据文件和控制文件,而逻辑备份则通过SQL语句(如`EXPDP`和`IMPDP`)导出和导入数据...

    java导出oracle数据(单表)

    在本资源中,我们使用了 StringBuffer 对象来拼装 DOS 命令,以便进行数据库备份。该命令使用 exp 工具来导出 Oracle 数据库中的数据。我们可以根据需要添加不同的参数,例如用户名、密码、数据库名、表名、导出地址...

Global site tag (gtag.js) - Google Analytics