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

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

一、实施过程及原理为:

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了。

(0)

相关推荐

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

    为了保障服务器中数据的可恢复性,采用异地备份数据库方案.异地备份数据分为异地备份文件数据与异地备份数据库数据二种.其中异地备份文件数据是为了备份网站中用户上传的文件而设计的.而异地备份数据库数据是将数据库中数据备份文件上传到异地服务器. 一.实施过程及原理为: 1.       需安装WinRAR软件,用于将多个待备份文件压缩成一个压缩文件.2.       书写备份脚步:目录定位到WinRAR软件安装路径下cd c:\program files\winrar执行rar.exe程序rar a -

  • 使用批处理异地备份数据(winrar)

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

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

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

  • SqlServer备份数据库的4种方式介绍

    1.用sqlserver的维护计划 在这里我就不给截图演示了,这个比较简单,无非就是通过sqlserver自己的维护计划拖拽出2个一个'备份数据库'任务和一个'清除维护'任务. 需要注意的点: 1)有备份任务里边选择备份的库尽量选'所有用户数据库'这项,以免选择了特定数据库备份以后某天添加了新数据库却忘了勾选导致丢备份. 2)选项验证备份集完整性和压缩备份尽量都选上. 3)备份的路径尽量别选磁盘根目录. 2.通过脚本+作业的方式备份数据库(非xp_cmdshell).如果是多个库的话自己写个游标

  • SQL Server 2008 备份数据库、还原数据库的方法

    SQL Server 2008 备份数据库: 1.打开SQL , 找到要备份的数据库 , 右键 >> 任务 >>备份 2.弹出 [ 备份数据库对话框 ] ,如图: 3.点击添加 [ 按钮 ] . 如下图: 4.选择要备份的路径 和 备份的文件名 点击 [ 确定 ]. 5.然后就一直点击确定就可以了 . 然后我们来到D:\ 看看 6.这个时候 , 你可以把它压缩打包什么的 , 要用的时候 , 在文件后面加 .bak 后缀 就可以用SQL 来还原了,还原可以来看这里~ SQL Serv

  • 解决SQL2005备份数据库.dat或bak还原时的结构错误的解决方法

    远程服务器主机上安装了sql server 2005,备份的时候使用虚拟主机自带的还原工具备份数据库为data.dat格式的,在本机sql2000想还原数据库的时候,出现提示"已备份数据库的磁盘上结构版本为611. 服务器支持版本539, 无法还原或升级此数据库,RESTORE DATABASE 操作异常终止." 这是由于sql数据库高版本2005向下兼容,但低版本的sql2000不能处理sql2005的数据库格式造成的.客户端必须使用sql2005才能正确还原已经备份的数据库文件.这

  • 使用php自动备份数据库表的实现方法

    1.前言 mysql数据库的备份方式有很多: 例如: 1.使用mysqldump函数 mysqldump -u username -p dbname table1 table2 ... > BackupName.sql dbname参数表示数据库的名称 table1和table2参数表示需要备份的表的名称,为空则整个数据库备份: BackupName.sql参数表设计备份文件的名称,文件名前面可以加上一个绝对路径.通常将数据库被分成一个后缀名为sql的文件: 基本使用: 2.管理工具 备份数据库

  • PHP备份数据库生成SQL文件并下载的函数代码

    复制代码 代码如下: <!?php /****** 备份数据库结构 ******/ /* 函数名称:table2sql() 函数功能:把表的结构转换成为SQL 函数参数:$table: 要进行提取的表名 返 回 值:返回提取后的结果,SQL集合 函数作者:heiyeluren */ function table2sql($table) { global $db; $tabledump = "DROP TABLE IF EXISTS $table;n"; $createtable

  • thinkphp备份数据库的方法分享

    貌似THINKPHP没有备份数据库的方法,所以我自己写了一个,数据库连接和事务处理用的是pdo,如果有需要的可以联系我,写个mysql或者mysqli的 复制代码 代码如下: <?php class SqlAction extends Action{ function outsql(){ header("Content-Type:text/html;charset=utf-8″); /*用C方法读取数据库配置*/ $host=C('DB_HOST'); $db_name=C('DB_NAM

  • php备份数据库类分享

    php备份数据库类分享 <?php /** * * @name php备份数据库 * @param string $DbHost 连接主机 * @param string $DbUser 用户名 * @param string $DbPwd 连接密码 * @param string $DbName 要备份的数据库 * @param string $saveFileName 要保存的文件名, 默认文件保存在当前文件夹中,以日期作区分 * @return Null * @example backup

随机推荐