使用批处理文件异地备份数据库(最近几天的数据)_vbs

为了保障服务器中数据的可恢复性,采用异地备份数据库方案。异地备份数据分为异地备份文件数据与异地备份数据库数据二种。其中异地备份文件数据是为了备份网站中用户上传的文件而设计的。而异地备份数据库数据是将数据库中数据备份文件上传到异地服务器。

一、实施过程及原理为:

1.       需安装WinRAR软件,用于将多个待备份文件压缩成一个压缩文件。
2.       书写备份脚步:
目录定位到WinRAR软件安装路径下
cd c:\program files\winrar
执行rar.exe程序
rar a -r -y c:\c.rar c:\c\a c:\c\b
连接远程ftp服务器,其中要书写ftp://ftp.txt/文件
ftp -s:c:\ftp.txt 192.168.0.1
可删除本地备份文件
del /f /q c:\c.rar
目录重新定位
cd\
完整代码如下(back.bat):

复制代码 代码如下:

cd c:\program files\winrar
rar a -r -y c:\c.rar c:\c\a c:\c\b
ftp -s:c:\ftp.txt 192.168.0.1
del /f /q c:\c.rar
cd\

3. 书写远程ftp连接配置文件

用户名
密码
cd 路径
Put 本地文件路径及文件名 远程文件路径及文件名
Bye为退出
完整代码如下(ftp.txt):
admin
Heroic
put c:\c.rar c.rar
bye
4.       通过windows自带的“任务计划”功能定时运行bat文件。(通过“开始”->“附近”->“系统工具”->“任务计划”
5.       备份oracle数据库命令为:
exp userid/pwd@servicename file = "backupfilepath" owner = user
注意userid为系统管理员,backupfilepath为文件保存路径(文件后缀为dmp) ,user是针对那个用户进行备份,如果不写该参数,则默认针对userid用户进行备份
例如:
exp user/pwd@servername file=d:"backup"oracle"oracle%date:~0,10%.dmp owner=system log=d:"backup"oracle"oracle%date:~0,10%.log
(其中%date:~0,10% 为取当前系统时间。0为开始位置,10为结束位置)

复制代码 代码如下:

set files=c:\backup\%date:~0,10%.rar
set dbfilesdmp=c:\backup\%date:~0,10%db.dmp
set userdb="jbpmdemo"
set pwddb="jbpmdemo"
set domain="master.jhserver"
set filespath=c:\c\a c:\c\b
set ftpfile="c:\backup\ftp.txt"
set ftpname=admin
set ftppwd=Heroic
set ftpfiles="%date:~0,10%.rar"
set ftpdbfiles="%date:~0,10%db.rar"
set ftpdomain="192.168.0.1"
set rarpath="c:\program files\winrar"

@echo 开始备份数据库
exp %userdb%/%pwddb%@%domain% file="%dbfilesdmp%"

@echo 开始压缩文件
c:
cd c:\program files\winrar
rar a -r -y %files% %filespath% %dbfilesdmp%

@echo 写入文件ftp
@echo %ftpname%>%ftpfile%
@echo %ftppwd%>>%ftpfile%
@echo put %files% %ftpfiles%>>%ftpfile%
@echo bye>>%ftpfile%
@echo 上传%files%.rar文件
ftp -s:%ftpfile% 192.168.0.1
del /f /q %files%

数据库异地备份对一个网站来说是非常必要的,这里谈一下使用批处理文件对数据库异地本份的过程,首先需要准备两个文件,一个是ftp.txt(存储ftp命令),一个是movefile.bat(存储dos命令).

==========ftp.txt
open 服务器的ip地址
ftp用户名
ftp密码
bin
get 数据库名.mdb
bye
quit
上面是简单的例子,具体的要看你的数据库存放的路径、一次性获得多个文件。可以加上cd,mget等ftp命令
==========movefile.bat
@echo off
ftp -i -s:ftp.txt
rem date format is "YYYY-MM-DD"
set dt=%date:~0,10%
set td=%date:~0,10%

rem set /P dt="Input Date: "
rem set /P td="Input Date: "

set i=1

:forok
if %i%==1 goto i01
if %i%==2 goto i02
if %i%==3 goto i03
if %i%==4 goto i04
if %i%==5 goto i05
:i01
set i=2
goto nextok
:i02
set i=3
goto nextok
:i03
set i=4
goto nextok
:i04
set i=5
goto nextok
:i05
set i=6
goto nextok
:nextok

set dy=%dt:~0,4%
set dm=%dt:~5,2%
set dd=%dt:~8,2%

if %dm%%dd%==0101 goto L01
if %dm%%dd%==0201 goto L02
if %dm%%dd%==0301 goto L07
if %dm%%dd%==0401 goto L02
if %dm%%dd%==0501 goto L04
if %dm%%dd%==0601 goto L02
if %dm%%dd%==0701 goto L04
if %dm%%dd%==0801 goto L02
if %dm%%dd%==0901 goto L02
if %dm%%dd%==1001 goto L05
if %dm%%dd%==1101 goto L03
if %dm%%dd%==1201 goto L06

if %dd%==02 goto L10
if %dd%==03 goto L10
if %dd%==04 goto L10
if %dd%==05 goto L10
if %dd%==06 goto L10
if %dd%==07 goto L10
if %dd%==08 goto L10
if %dd%==09 goto L10
if %dd%==10 goto L11
set /A dd=dd-1
set dt=%dy%-%dm%-%dd%
goto END
:L10
set /A dd=%dd:~1,1%-1
set dt=%dy%-%dm%-0%dd%
goto END
:L11
set dt=%dy%-%dm%-09
goto END

:L02
set /A dm=%dm:~1,1%-1
set dt=%dy%-0%dm%-31
goto END
:L04
set /A dm=dm-1
set dt=%dy%-0%dm%-30
goto END

:L05
set dt=%dy%-09-30
goto END
:L03
set dt=%dy%-10-31
goto END
:L06
set dt=%dy%-11-30
goto END
:L01
set /A dy=dy-1
set dt=%dy%-12-31
goto END

:L07
set /A "dd=dy%%4"
if not %dd%==0 goto L08
set /A "dd=dy%%100"
if not %dd%==0 goto L09
set /A "dd=dy%%400"
if %dd%==0 goto L09
:L08
set dt=%dy%-02-28
goto END
:L09
set dt=%dy%-02-29
goto END

:END
if %i%==2 goto forok
if %i%==3 goto forok
if %i%==4 goto forok
if %i%==5 goto forok
if %i%==6 goto mdb

:mdb
echo copy %td%
echo del %dt%
copy 数据库名.mdb "%td%".mdb
del "%dt%".mdb
上面是备份最近5天的数据,每天一个。你可以修改上面的代码到最近6、7。。。。n天

如:修改成6天
if %i%==5 goto i05 下增加
if %i%==6 goto i06
:i05
set i=6
goto nextok 下增加
:i06
set i=7
goto nextok 
if %i%==6 goto mdb 改为
if %i%==6 goto forok
if %i%==7 goto mdb

依次类推。。。。到n天 :-)

以上两个文件准备好了,我们可以使用windows自带的任务计划来计划程序每天自动去备份数据了

具体步骤:控制面板--》任务计划--》添加任务计划。。。。选择每天。。。选择movefile.bat
就ok了。 

时间: 2024-09-28 02:43:50

使用批处理文件异地备份数据库(最近几天的数据)_vbs的相关文章

使用批处理异地备份数据(winrar)_win服务器

为了保障服务器中数据的可恢复性,采用异地备份数据库方案.异地备份数据分为异地备份文件数据与异地备份数据库数据二种.其中异地备份文件数据是为了备份网站中用户上传的文件而设计的.而异地备份数据库数据是将数据库中数据备份文件上传到异地服务器. 如果省事可以使用一些软件例如 绿环FTP数据备份.rsync都可以. 一.实施过程及原理为: 1.       需安装WinRAR软件,用于将多个待备份文件压缩成一个压缩文件.2.       书写备份脚步:目录定位到WinRAR软件安装路径下cd c:\pro

Linux服务器数据库(MySQL、ORACLE)简单的异地备份方案

Linux服务器MySQL数据库简单的异地备份方案 首先简单说下: 1.执行脚本导出数据库. mysqldump -h127.0.0.1 -P3306 -uroot -ppassword dbname > /bak/db/backup.sql 2.使用scp将导出的数据库文件传输到其他服务器上,一般进行异地备份,容灾. scp -P 195 /bak/db/backup.sql root@xxx.xxx.xxx.xxx:/bak 其中195为ssh端口号,如果是默认的22,可以省略 -P 22.

Navicat For MySQL 异地自动备份数据库方法

启动navicat软件,使用"链接" ,连接mysql数据库,使用前请保证防火墙可以通过 随后弹出,随意起一个"连接名";输入"主机名/ip"这里填写mysql数据库所在服务器的ip地址,用户名密码为mysql数据库的root和密码,一般情况下为xinwei. 这样左边就可以列出数据库"连接名"的快捷方式,双击以后可以列出这个mysql里面所有的数据库,等同于"show databases"命令.如图172

浅谈县级数据集中存储与异地备份

在信息化飞速发展的今天,无论是政府还是企业,对信息化的依赖性都越来越强,而现代的信息化基 础架构建设是围绕着数据进行的,如何确保国土资源信息系统基础应用数据的安全性.业务的连续可靠性,已成考量信息系统建设最重要的技术参数之一.因此从应用层.数据层以及链路层多个方面考虑数 据中心的设,并采用两台高性能服务器做热备,保证应用层不会宕机,使系统可以持续被访问和读写.数据层考虑到数据库的稳定性和对读写性能的要求,可采用两台小机做热备,以确保数据库的高可用性.从数据存储的稳定性和安全性考虑,还应将数据库中

Linux(Centos)全自动异地备份数据(WEB+Mysql)

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 文章开始之前,先问下各位站长一个问题:什么东西对于站长是十分重要的?其实对于站长而言,很多东西都是很重要的.但我们现在排除外在因素,把范围缩小到网站系统本身,哪些是非常重要的呢?网站数据就是其中之一了. 网站数据包括程序文件本身.网站运行过程中不断产生的附件数据(图片.文档.视频等)以及数据库文件,三大块总括为网站数据. 以自己为例,在这两年

Windows计划任务+批处理文件实现oracle数据库的定时备份与恢复

1.  备份: PS:2014-1-15 如果导出的dmp数据文件不大的话,就直接每天导出好了,不要只保存七天的数据.然后顶起通过winrar对文件进行打包,我发现dmp文件的压缩包还是很高的. 那么就需要考虑在导出的dmp文件末尾加上日期了.bat脚本里面有date和time的函数,通过以下函数我们就可以得到想要的日期了.如果要求日期是以"-"结束,需要设定日期的格式为YYYY-M-D,而不是YYYY/M/D才可以. C:\Users\User>echo %date:~0,10

SQL Server2005 异地备份的多种方法_mssql2005

第一种方法: 这是一个很常见的需求,网上也有相关的解决方法,主要是通过映射网络盘和执行cmdshell命令来实现,他们的不好处在于数据重复传递 今天所说的实现方法利用SQL Server服务帐号模式和安全机制来访问网络途径,方法如下: 1:要实现异地备份,必须使用域用户帐号来启动SQL Server服务以及SQL Server Agent服务,因为本地系统帐户无法访问网络.在计算机管理服务里找到这两个服务,将登录账号改为域用户,注意密码也要录入,如果以后这个域用户的密码更改了,记得这里也要改,否

windows下mysql每天定时备份数据库几种方法

第一种:新建批处理文件 backup.dat,里面输入以下代码:  代码如下 复制代码 net stop mysql xcopy "C:/Program Files/MySQL/MySQL Server 5.0/data/piaoyi/*.*" D:/db_backup/%date:~0,10%/ /y net start mysql 注意:批处理命令中路径里有空格的话,必须在路径上加上双引号! 然后使用Windows的"计划任务"定时执行该批处理脚本即可.(例如:

PHP备份数据库为SQL文件 并可下载源码

这是一个将指定数据库里的所有表备份为一个SQL文件,可下载.这个源码来自dedecms程序,功能挺多,也很实用,但是代码的质量还有待提高 <!?php          /******   备份数据库结构 ******/                  /*          函数名称:table2sql()          函数功能:把表的结构转换成为SQL          函数参数:$table: 要进行提取的表名          返 回 值:返回提取后的结果,SQL集合