`

用java做的一个还原与备份

    博客分类:
  • java
阅读更多

ackage org.yu.dbback;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

public class DbBackMain extends Thread{
  
private InputStream insp = null;
private String type;

public DbBackMain(InputStream is, String type) {
   insp = is;
   this.type = type;
}

/**
   * 备份数据库
   *
   */
public static void runback() {
   Runtime cmd = Runtime.getRuntime();
   List<String> backup = new ArrayList<String>();
   backup.add("mysqldump");
   backup.add("--opt");
   backup.add("--user=root");
   backup.add("--lock-all-tables=true");
   backup.add("--result-file=c:\\back_test.sql");
   backup.add("test");  
   try {
    Process p = cmd.exec((String[])backup.toArray(new String[0]),null);
   
   } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }

}

/**
   * 还原数据库
   *
   */
public static void reback() {
   Runtime cmd = Runtime.getRuntime();
   List<String> sources = new ArrayList<String>();
   sources.add("cmd.exe");
   sources.add("/C");
   sources.add("mysql < c:\\back_test.sql");     
   sources.add("--user=root");  
   sources.add("--database=test");
   try {
    Process p = cmd.exec((String[])sources.toArray(new String[0]),null);
   
    DbBackMain dberror = new DbBackMain(p.getInputStream(),"ERROR");
    DbBackMain dboutput = new DbBackMain(p.getInputStream(),"OUTPUT");
   
    dberror.start();
    dboutput.start();
   
    System.out.println(p.waitFor());   
   
   } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
  
}

public void run() {
   try {
    InputStreamReader isr = new InputStreamReader(insp);
    BufferedReader br = new BufferedReader(isr);
    String line = null;
    while((line = br.readLine()) != null) {
     System.out.println(type + ">" + line);
    }
   
   }
   catch (IOException ioe) {
    ioe.printStackTrace();
   }
}

public static void main(String[] args) {  
  
   runback();
//   reback();
}

}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics