广告
返回顶部
首页 > 资讯 > 数据库 >数据库自动备份与手动备份功能的实现
  • 297
分享到

数据库自动备份与手动备份功能的实现

2024-04-02 19:04:59 297人浏览 八月长安
摘要

前端代码:function createBackUp(){ var path=$("#path").val(); $.post("dataBack",{ 'path' : path }, fun

前端代码:

function createBackUp(){

var path=$("#path").val();

$.post("dataBack",{

'path' : path

}, function(data) {

if(data==1){

layer.msg("备份成功!",{time: 2000});

}else{

layer.msg("备份失败,该路径不存在!",{time: 2000});

}

}, "text");

}

后端实现:

package com.cloudshield.toolbox4.accountmanage.controller;


import java.io.File;

import java.io.IOException;

import java.io.InputStream;

import java.net.UnknownHostException;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.text.SimpleDateFORMat;

import java.util.Properties;

import java.util.Timer;

import java.util.TimerTask;

import javax.servlet.Http.httpservletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpSession;

import org.springframework.context.annotation.Scope;

import org.springframework.stereotype.Controller;

import org.springframework.WEB.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RequestMethod;

import org.springframework.web.bind.annotation.ResponseBody;

import com.cloudshield.toolbox4.utils.DateUtils;

@Controller

@RequestMapping("/")

@Scope("prototype")

public class DataBackpController {

private static final int BACKUP_SUCCESS=1;

private static final int BACKUP_ERROR=0;

@ResponseBody

@RequestMapping(value="/dataBack",method = RequestMethod.POST)

public Integer dataBack(HttpServletRequest request,HttpSession session,String time){

Connection conn = null;

try{

String path = request.getParameter("path");

InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("conn.properties");   

        Properties p = new Properties();

        try {   

        p.load(inputStream);   

        } catch (IOException e1) {   

        e1.printStackTrace();  

        } 

       

        String driverName = p.getProperty("c3p0.driverClass");

        String userName=p.getProperty("c3p0.user");

        String passWord=p.getProperty("c3p0.password");

        String url = p.getProperty("c3p0.jdbcUrl");

        Class.forName(driverName).newInstance();

           conn= DriverManager.getConnection(url,userName,passWord);

           backData(path,getDbName(), conn,time);

           return BACKUP_SUCCESS;


}catch(Exception e){

e.printStackTrace();

          

}finally{

try{conn.close();}catch(Exception e){}

}

return BACKUP_ERROR;

}

@ResponseBody

@RequestMapping(value="/setAutoBackUp",method = RequestMethod.POST)

public Integer setAutoBackUp(HttpServletRequest request,HttpSession session){

try{

Timer timer = new Timer();

final String setupstime = request.getParameter("time");

final String path = request.getParameter("path");

TimerTask task =new TimerTask(){

public void run(){

Connection conn = null;

InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("conn.properties");   

Properties p = new Properties();

try {   

p.load(inputStream);  

String driverName = p.getProperty("c3p0.driverClass");

String userName=p.getProperty("c3p0.user");

String passWord=p.getProperty("c3p0.password");

String url = p.getProperty("c3p0.jdbcUrl");

Class.forName(driverName).newInstance();

conn= DriverManager.getConnection(url,userName,passWord);

backData(path,getDbName(),conn,setupstime);

} catch (Exception e1) {   

e1.printStackTrace();  

}finally{

try{conn.close();}catch(Exception e){}

}

}

             

};

if(setupstime!=null&&setupstime.equals("oneday")){

timer.scheduleAtFixedRate(task,DateUtils.getOneday(),DateUtils.getOneday());

}

if(setupstime!=null&&setupstime.equals("week")){

timer.scheduleAtFixedRate(task,DateUtils.getWeek(),DateUtils.getWeek());

}

if(setupstime!=null&&setupstime.equals("halfamonth")){

timer.scheduleAtFixedRate(task,DateUtils.getHalfamonth(),DateUtils.getHalfamonth());

}

if(setupstime!=null&&setupstime.equals("onemonth")){

timer.scheduleAtFixedRate(task,DateUtils.getMonth(),DateUtils.getMonth());

}

if(setupstime!=null&&setupstime.equals("halfayear")){

timer.scheduleAtFixedRate(task,DateUtils.getHalfayear(),DateUtils.getHalfayear());

}

if(setupstime!=null&&setupstime.equals("oneyear")){

timer.scheduleAtFixedRate(task,DateUtils.getOneYear(),DateUtils.getOneYear());

}

return BACKUP_SUCCESS; 


}catch(Exception e){

e.printStackTrace();

          

}

return BACKUP_ERROR;

}

public String backData(String path,String db_name,Connection conn,String time) throws Exception{

String bk_name = "";

       

PreparedStatement stmt = null;

        String sql = "";

        try{

        File databasePath = new File(path);

        if(!databasePath.exists()){

        databasePath.mkdir();

        databasePath.setWritable(true);

        }

        String file = new SimpleDateFormat("yyyyMMddHHmmss").format(new java.util.Date())+".bak";

            if(time!=null&&time!=""){

            file="zdbf"+file;

        }

            File newFile=new File(path+File.separator+file);

            newFile.createNewFile();

            newFile.setWritable(true);

            sql = "backup database "+db_name+" to disk=N'"+path+File.separator+file+"' with format,name=N'full backup of "+db_name+"'";

            stmt = conn.prepareStatement(sql);

            stmt.executeUpdate();

            bk_name = file; 

        }catch(Exception e){

            e.printStackTrace();

            throw e;

        }

        finally

        {

        try{stmt.close();} catch(Exception e){}

        }

        return bk_name;

    }

public String getDbName(){

InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("other.properties");   

    Properties p = new Properties();

    try {   

    p.load(inputStream);   

    } catch (IOException e1) {   

    e1.printStackTrace();  

    } 

    String dbname=p.getProperty("dbName");

   

    return dbname;

}

@RequestMapping(value = "/autoBackupPage", produces="text/html;charset=UTF-8")

public String autoBackupPage(HttpServletRequest request, HttpServletResponse response) throws UnknownHostException, IOException{

return "jsp/accountManage/backupWindow";

}

@RequestMapping(value = "/toBackupPage", produces="text/html;charset=UTF-8")

public String toBackupPage(HttpServletRequest request, HttpServletResponse response) throws UnknownHostException, IOException{

return "jsp/accountManage/backUp";

}

}

您可能感兴趣的文档:

--结束END--

本文标题: 数据库自动备份与手动备份功能的实现

本文链接: https://www.lsjlt.com/news/41692.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 数据库自动备份与手动备份功能的实现
    前端代码:function createBackUp(){ var path=$("#path").val(); $.post("dataBack",{ 'path' : path }, fun...
    99+
    2022-10-18
  • mysql如何实现定时自动备份数据库功能
    这篇文章主要介绍mysql如何实现定时自动备份数据库功能,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!第一种,数据跑在服务器上,如果只想定时把数据库备份放在服务器(此处服务器系统为centos7)上,可如下设置:首先...
    99+
    2023-06-20
  • Windows下手动、自动备份Mysql数据库(mysqldump)
    Windows下手动、自动备份Mysql数据库 一、手动备份1.1 命令行备份1.2 通过第三方工具备份(Navicat) 二、自动备份2.1、编写备份脚本2.2 windows 创...
    99+
    2023-09-10
    数据库 mysql 服务器
  • MySQL 数据库自动备份
    MySQL 数据库自动备份 MySQL 数据库自动备份 MySQL 备份命令 mysqldump 介绍 数据备份 数据恢复 gzip 介绍 MySQL 备份脚本 Linux 定时任务-crontab MySQL 备份...
    99+
    2021-04-06
    MySQL 数据库自动备份
  • 手动备份数据库命令
    mysqldump -u root -p myblog > /root/myblogDB5.dumpmyblog是指数据库,myblogDB5.dump是指备份后的文件 ...
    99+
    2022-10-18
  • 8种手动和自动备份MySQL数据库的方法
    作为流行的开源数据库管理系统,MySQL的使用者众多,为了维护数据安全性,数据备份是必不可少的。本文就为大家介绍几种适用于企业的数据备份方法。 使用MySQLDump进行MySQL备份 mysqldump...
    99+
    2022-10-18
  • PHP怎么实现MySQL数据库自动备份
    这篇“PHP怎么实现MySQL数据库自动备份”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“PHP怎么实现MySQL数据库自动...
    99+
    2023-07-06
  • 手动备份MySQL数据库的教程
    本篇内容介绍了“手动备份MySQL数据库的教程”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  1. Ba...
    99+
    2022-10-18
  • PHP实现Memcached数据库自动备份的方法
    Memcached是一款基于内存缓存的键值对存储系统,常用于Web应用程序中的缓存数据。由于Memcached的数据存储在内存中,因此备份或迁移数据时需要特殊的操作方法。本文将介绍一种基于PHP实现Memcached数据库自动备份的方法,希...
    99+
    2023-05-15
    PHP 自动备份 Memcached数据库
  • PHP实现MongoDB数据库自动备份的方法
    随着互联网技术的不断发展,数据库的重要性日益突显。数据库是存储数据的重要载体,若数据库出现故障,数据丢失、数据不一致等问题将会给企业带来巨大的损失。为了保证数据的安全性和完整性,必须采用备份方案。本文将介绍使用PHP实现MongoDB数据库...
    99+
    2023-05-15
    PHP MongoDB 自动备份
  • PHP实现Redis数据库自动备份的方法
    随着Redis数据库在互联网应用中的广泛应用,越来越多的企业和开发者开始重视Redis数据库的备份和保护。而自动备份是保障Redis安全的一种有效手段,本文将介绍如何使用PHP实现Redis数据库自动备份。一、Redis数据库备份Redis...
    99+
    2023-05-15
    PHP redis 自动备份
  • mysql 每日自动备份数据库
    在 MySQL 中,你可以使用定时任务来每日自动备份数据库。通常,最常用的方法是使用操作系统的定时任务工具(如cron)来调度备份操作。以下是一些步骤来设置每日定时备份MySQL数据库: 创建备份脚...
    99+
    2023-09-24
    数据库 mysql
  • 自动备份mysql数据库脚本
    自动备份mysql数据库脚本#!/bin/sh# NCONF database backup# Script by Chen# add (and adapt) the following line to t...
    99+
    2022-10-18
  • SHELL 自动备份MYSQL数据库(备份单个数据库及所有数据库)
    SHELL 自动备份MYSQL数据库备份单个数据库及所有数据库楓城浪子原创,转载请标明出处!更多技术博文请见个人博客:https://fengchenglangzi.000webhostapp.com微信b...
    99+
    2022-10-18
  • Linux下MongoDB数据库如何实现自动备份
    这篇文章主要为大家展示了“Linux下MongoDB数据库如何实现自动备份”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux下MongoDB数据库如何实现...
    99+
    2022-10-18
  • Centos7.6 Mysql数据库自动备份配置
    1、查看磁盘空间情况 执行 df -h 选择剩余空间最大的目录 (以/目录为例)   2、创建备份目录: cd /     mkdir backup cd backup   3、创建备份Shell脚本: vim mo...
    99+
    2017-05-24
    Centos7.6 Mysql数据库自动备份配置
  • Docker容器MySQL数据库的备份与还原,以及每天定时自动备份.
    1.快速启动mysql容器 1:拉取mysql镜像: 根据自己需要,我这个是Debian的5.7版本的镜像。 这个地方一定要注意: 有些版本的docker镜像里面移除了MySQL自带的工具。包括Mys...
    99+
    2023-09-29
    docker 数据库 mysql
  • Python脚本实现自动将数据库备份到 Dropbox
    最近,正好发生了一件大事,就是 GitLab 的运维同学不小心删除了生产的数据,虽然 GitLab 已经骇人听闻的准备了五种备份机制,但是,仍然导致他们丢失了将近 6 个小时的用户数据,尤其对他们声誉的损失...
    99+
    2022-06-04
    脚本 备份 数据库
  • 怎么在UNIX下实现Oracle数据库自动备份
    本篇内容介绍了“怎么在UNIX下实现Oracle数据库自动备份”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!数据备份几乎是每个系统管理员天天...
    99+
    2023-06-17
  • MySQL定时备份数据库(全库备份)的实现
    目录一、MySQL数据备份 1.1、 mysqldump命令备份数据 1.2、 mysqldump常用操作示例 1.3、 还原mysql备份内容 二、 编写脚本维护备份的数据库文件 ...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作