数据库还原

原创 2007年09月11日 16:59:00

地址 :http://dl2.csdn.net/down4/20070911/11165453513.bat
  * 恢复数据(mysql中cnids_manager数据库中的数据)
  * 根据用户上传的文件恢复数据库
  *  主要步骤:
  *      1.通过上传的FormFile获得文件输入流
  *      2.创建一个输出流,没有路径的,系统会默认保存到tomcat/bin目录里面
  *      3.获得保存文件的绝对路径
  *      4.从配置文件中获取数据库信息(帐户,密码,IP地址)
  *      5.执行批处理文件恢复数据(将3,4的信息作为参数传入批处理文件)
  */
 public void resume(FormFile file) throws Exception {
  String fileName = null;
  if (file != null && file.getFileName().length() > 0) {            //判断上传文件是否为空
   fileName = file.getFileName();                                //获取文件名
   InputStream streamIn = file.getInputStream();                 //获得上传文件的输入流
   OutputStream streamOut = new FileOutputStream(fileName);      //构建一个输出流,生成的文件将会保存在tomcat/bin目录下
   int bytesRead = 0;
   byte[] buffer = new byte[1024];
   
   //循环的将上传的文件写入到fileName里面
   while((bytesRead = streamIn.read(buffer, 0, 1024)) != -1) {
    streamOut.write(buffer, 0, bytesRead);
   }
   //关闭输出流
   streamOut.close();  
   
   streamIn.close();                                             //关闭输入流
   file.destroy();                                               //销毁file
   
   File tempFile = null;
   
   tempFile = new File(fileName);                              
   String absolutePath = tempFile.getAbsolutePath();            //获得绝对路径,在tomcat/bin目录下
   log.info("absolutePath: " + absolutePath);
   
   String commondStr = "";
   String mysqlUserName = Util.getProperty("mysql_username");   //数据库帐户
   String mysqlPassword = Util.getProperty("mysql_password");   //数据库密码
   String host = Util.getProperty("mysql_host");                //数据库IP地址
   
   String dateHandleDir = Util.getProperty("dateHandleDir");   //批处理文件路径
   String resumeDir = dateHandleDir+"resume.bat";
    //resumeDir是恢复数据库的批处理文件地址,后面的是需要传入的参数
    commondStr = "/""+resumeDir + "/"" + " " + mysqlUserName + " " + mysqlPassword + " " + host + " " + "/""+absolutePath + "/"";
                                       //mysqlUserName数据用户名 ,mysqlPassword为密码,host为主机名,absolutepath为上传的文件的绝对路径
   log.debug("commondStr: " + commondStr);
   Runtime cmd = Runtime.getRuntime();
   boolean haveError = false;
   Process p = cmd.exec(commondStr);        //执行这个还原的批处理文件      
   String line;
   p.getOutputStream().close();
   BufferedReader br = new BufferedReader(new InputStreamReader(p.getErrorStream()));    //读取错误信息
   
   while ((line = br.readLine()) != null) {     //如果错误信息不为null说明出错了
    //发生错误
    log.info("<<<<<<<" + line);
    haveError = true;    
   }
   
   if (haveError) {
    //恢复数据库时发生错误
    throw new CnidsException(Constants.FAIL_RESUME_SQL);
   }
//}

      tempFile.delete();                  //操作完成,删除tempFile文件
   }
 } 

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Mysql备份还原数据库之mysqldump实例及参数详细说明

我们在运营项目的过程中肯定会遇到备份数据库,还原数据库的情况,我们一般用一下两种方式来处理:1.使用into outfile 和 load data infile导入导出备份数据这种方法的好处是,导出...

sql server2005数据库还原故障集

前两天试了试sql server 2005里面的数据库备份与还原,出了不少错,典型的非典型的都有,集中列在这边,希望后来者不用像我那时候一样找的那么辛苦。。。 1. .mdf文件的分离.mdf的还原...

还原Android彩信数据库

几周前在做Android彩信数据库还原时遇到了一个很棘手的问题,就是Android的彩信数据库不向短信数据库那样可以方便的用一条insert语句创建一条记录,而我没有得到许可去修改Android平台的...

数据库还原不成功问题汇总

我们在工作中常常会因为要解决现场问题,而对现场数据库进行数据库备份和还原,下面就针对在实际工作我遇到的备份和还原问题,做以一个小结: 问题一: 1.无法获得对数据库独立访问权 如下图:造成此原因主要是...

Java备份还原Mysql数据库

环境要求:Mysql 5.0以上数据库,配置Mysql的环境变量 ///实体类 package com.ews.util; /**  * 系统备份展示对象  *  *...

plsqldev怎么备份和还原数据库

一、 导出/导入(Export/Import) 利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回到Oracle数据库中去。 1、 简单导出数据(E...

Sae环境下使用mysqlreback备份还原mysql数据库

https://dothinking.github.io/blog/2015/06/16/SAE%E7%8E%AF%E5%A2%83%E4%B8%8B%E4%BD%BF%E7%94%A8MySQLRe...

C#备份还原MySql数据库(使用cmd命令)

调用MySql的工具mysqldump来实现。       类Cmd来实现调用cmd命令, 要启动的进程所在的目录是说mysql自动的备份还原数据库工具mysqldump和mysql所在目录,当然...

Oracle数据库备份与还原命令

Oracle数据库备份与还原命令   数据导出:     1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中   ...

SQL Server 2005 系统数据库--及其还原的方法

理解SQL Server的最佳方法是研究系统数据库的工作原理。我们通常不建议大家直接在SQL Server里查询系统表格,但是通过研究这些系统数据库里的表格,可以学到很多有关SQL Server工作原...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)