• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >oracle > java 备份(转存)数据库到云服务器或本地磁盘

java 备份(转存)数据库到云服务器或本地磁盘

作者:u011396080的博客 字体:[增加 减小] 来源:互联网 时间:2017-08-07

u011396080的博客通过本文主要向大家介绍了java备份mysql数据库,java备份数据库,java实现数据库备份,java备份oracle数据库,java备份mysql等相关知识,希望本文的分享对您有所帮助

一、存储在七牛云

 

1、在七牛云的 ”对象存储“-->新建存储空间(没有认证的情况下,对象存储应该有1G)

 

2、导入 七牛云包

okhttp-3.3.1.jar

okio-1.8.0.jar

qiniu-java-sdk-7.2.7.jar

 

<dependencies>
		<dependency>
		  <groupId>com.qiniu</groupId>
		  <artifactId>qiniu-java-sdk</artifactId>
		  <version>[7.2.0, 7.2.99]</version>
		</dependency>
	<dependency>
      <groupId>com.squareup.okhttp3</groupId>
      <artifactId>okhttp</artifactId>
      <version>3.3.1</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>com.qiniu</groupId>
      <artifactId>happy-dns-java</artifactId>
      <version>0.1.4</version>
      <scope>compile</scope>
    </dependency>
	</dependencies>

 

 

 

 

 

3、编写代码

 

private void backupDb() {
			
			
			String pghomeString = "D:\\Software86\\MySQL\\MySQLServer5.1\\bin\\";  
			
		    
		    
			StringBuilder command = new StringBuilder();  
			//存储test里的user_bill表
		    command.append(pghomeString).append("mysqldump -h localhost -uroot -proot --opt --set-charset=UTF8 test user_bill");
	        
	
			try {
				Runtime cmd = Runtime.getRuntime();
				Process p = cmd.exec(command.toString());
				
				this.uploadToQiNiuYun(p.getInputStream());
		        
				if (p.waitFor() == 0) {  
					System.out.println("Backup created successfully!");  
				} else {  
				    System.out.println("Could not create the backup");  
				}  
			} catch (IOException e) {
				e.printStackTrace();
			} catch (InterruptedException exception){  
	            		System.out.println("InterruptedException");  
	        	} 
		}
private void uploadToQiNiuYun(InputStream inputStream) throws IOException { 
 //构造一个带指定Zone对象的配置类 
     Configuration cfg = new Configuration(Zone.zone2()); 
     //...其他参数参考类注释 
//   华东 Zone.zone0() 
//   华北 Zone.zone1() 
//   华南 Zone.zone2() 
//    北美 Zone.zoneNa0() 
  
     UploadManager uploadManager = new UploadManager(cfg); 
     //...生成上传凭证,然后准备上传 
     String accessKey = "eSXcw3Lq_aAZDztVGuTB379i";//这里请替换成自己的AK 
     String secretKey = "xOJaACrwCPRGhrcJ8GbmXz4f";//这里请替换成自己的SK 
     String bucket = "sqlbackup";//--空间名 
  
     //默认不指定key的情况下,以文件内容的hash值作为文件名 
     String key = "user_bill.sql"; 
  
      
      
        ByteArrayOutputStream swapStream = new ByteArrayOutputStream(); 
        byte[] buff = new byte[600]; //buff用于存放循环读取的临时数据 
        int rc = 0; 
        while ((rc = inputStream.read(buff, 0, 100)) > 0) { 
        swapStream.write(buff, 0, rc); 
        } 
        byte[] uploadBytes = swapStream.toByteArray(); //uploadBytes 为转换之后的结果
        //上传凭证
        Auth auth = Auth.create(accessKey, secretKey); 
       String upToken = auth.uploadToken(bucket); 
       try { 
         Response response = uploadManager.put(uploadBytes, key, upToken);
         //解析上传成功的结果 
         DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class); 
         System.out.println(putRet.key); 
         System.out.println(putRet.hash);
       } catch (QiniuException ex) { 
         Response r = ex.response; 
         System.err.println(r.toString()); 
         try { 
           System.err.println(r.bodyString()); 
         } catch (QiniuException ex2) { 
           //ignore 
         } 
       } 
      //} 
      
   } 

 

 

 

一、存储到本地磁盘

 

private void backupDb() {
			
			
			String pghomeString = "D:\\Software86\\MySQL\\MySQLServer5.1\\bin\\";  
			
		    
		    
			StringBuilder command = new StringBuilder();  
			
		    command.append(pghomeString).append("mysqldump -h localhost -uroot -proot --opt --set-charset=UTF8 test user_bill");
	        
		    PrintWriter printWriter = null;
		    FileOutputStream fileOutput = null;
		    InputStreamReader inputStreamReader = null;
		    BufferedReader bufferedReader = null;
		    
			try {
				Runtime cmd = Runtime.getRuntime();
				Process p = cmd.exec(command.toString());
				
				fileOutput = new FileOutputStream("G:\\user_bill.sql");
				printWriter = new PrintWriter(new OutputStreamWriter(fileOutput,"utf8")); 
				inputStreamReader = new InputStreamReader(p.getInputStream(), "utf8");
				bufferedReader = new BufferedReader(inputStreamReader); 
				
				String line;  
				while((line = bufferedReader.readLine())!= null){  
				    printWriter.println(line);  
				}  
	            		printWriter.flush();
				
		        
				if (p.waitFor() == 0) {  
					System.out.println("Backup created successfully!");  
				} else {  
				    System.out.println("Could not create the backup");  
				}  
			} catch (IOException e) {
				e.printStackTrace();
			} catch (InterruptedException exception){  
	            System.out.println("InterruptedException");  
	        }  finally{
	        	try {
	        		if(null != bufferedReader) {	        			
	        			bufferedReader.close();
	        		}
	        		if(null != printWriter) {
	        			printWriter.close();	        			
	        		}
				} catch (IOException e) {
					e.printStackTrace();
				}
	       		}
		}

 

三、直接转存整个database

 

 


 

 


 
command.append(pghomeString).append("mysqldump.exe").append(" --default-character-set=utf8").append(" -u")  
            .append("用户名").append(" -p").append("密码").append(" ").append("数据库名")
            .append(" -B -r ").append("备份路径");

 


 

以上代码已经过测试

 

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • java 备份(转存)数据库到云服务器或本地磁盘

相关文章

  • 2017-05-11ORACLE 超长字符串问题的解决办法
  • 2017-05-11Oracle中Union与Union All的区别(适用多个数据库)
  • 2017-05-11Oracle中的Connect/session和process的区别及关系介绍
  • 2017-05-11oracle删除主键查看主键约束及创建联合主键
  • 2017-05-11ORA-28002 Oracle 11g存在密码过期问题解决方案
  • 2017-05-11oracle使用sql脚本生成csv文件案例学习
  • 2017-05-11Oracle数据库索引的维护
  • 2017-05-11ORACLE查看并修改最大连接数的具体步骤
  • 2017-05-11解析一个通过添加本地分区索引提高SQL性能的案例
  • 2017-05-11ORACLE常见错误代码的分析与解决(二)

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • Oracle CBO几种基本的查询转换详解
    • 深入Oracle字符集的查看与修改详解
    • Oracle 如何创建和使用全文索引
    • Oracle数据创建虚拟列和复合触发器的方法
    • 基于oracle小数点前零丢失的问题分析
    • oracle 声明游标(不具备字段)规则应用
    • Oracle数据库中 call 和 exec的区别
    • Oracle SQL中实现indexOf和lastIndexOf功能的思路及代码
    • 教你设计大型Oracle数据库
    • 利用函数返回oracle对象表的三种方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有