标题: 批处理自动备份数据库
[打印本页]
作者: sugarjh
时间: 2007-6-17 14:05
标题: 批处理自动备份数据库
d:\data为数据库的地址 e:\baksql\为备份的地址 要用的同学自己改一下
每次备份完后自动以备份的时间命名,并写入到记录文件中!
@echo 开始备份:
@echo 备份开始时间: %date% %time%
@net stop mssqlserver
@net stop w3svc
@net stop iisadmin /y
@xcopy d:\data e:\baksql\ /E /h
@ren e:\baksql\Computer.mdf "%date%".mdf
@ren e:\baksql\Computer_log.LDF "%date%".LDF
@net start mssqlserver
@net start w3svc
@echo 备份完毕!!
@echo 结束备份时间:%date% %time%
@echo 备份时间:%date% %time% >>e:\baksql\备份时间记录.txt
@cls
@exit
要是重要数据还可以传到另台FTP机子上
@echo 开始备份:
@echo 备份开始时间: %date% %time%
@net stop mssqlserver
@net stop w3svc
@net stop iisadmin /y
@xcopy d:\data e:\baksql\ /E /h
@ren e:\baksql\Computer.mdf "%date%".mdf
@ren e:\baksql\Computer_log.LDF "%date%".LDF
@net start mssqlserver
@net start w3svc
@echo 备份完毕!!
@echo 结束备份时间:%date% %time%
@echo 备份时间:%date% %time% >>e:\baksql\备份时间记录.txt
@echo 正在将数据上传到X空间...
@echo ftp.exe -s:C:\jh520.mmp
@cls
@exit
在C根下建jh520.mmp 并且写入以下代码 有些东西自己改下!
open FTPSEVER
USER
PASSWORD
#bin
cd 备份文档地址
lcd e:\baksql\
put "%date%".mdf
put "%date%".LDF
bye
各位师兄看看 那里还可以优化一下 提点建议也好!
作者: joshualaw
时间: 2007-6-17 15:26
在此有几个问题想问问,
1》 mdf文件有无大小空间限止呢?假设D:\data下的数据有几 G 的话,是否也能写进MDF文件里。
2》能否用相同一个文件作为一个备份文件呢?每次只把有变动,增加的写进去,不要产生太多的文件。
3》在放到FTP上时,是否每次要手工输入用户名和密码呢?如是的话,能否搞成自动的方式因想用“任务管理嚣“自动完成。
作者: HAT
时间: 2007-6-17 16:22
//在放到FTP上时,是否每次要手工输入用户名和密码呢?
不需要,用户名和密码是放在jh520.mmp文件里的。
作者: sugarjh
时间: 2007-6-17 21:09
谢谢 !师兄的建议 由于我要备份这个mdf只有30M 而且有是服务器上 我用任务计划每月才运行一次 比较稳当! 我又修改了以下 实现了一个批处理 解决 所有问题了!
@echo 开始备份:
@echo 备份开始时间: %date% %time%
@net stop mssqlserver
@net stop w3svc
@net stop iisadmin /y
@xcopy d:\data e:\baksql\ /E /h
@ren e:\baksql\Computer.mdf "%date%".mdf
@ren e:\baksql\Computer_log.LDF "%date%".LDF
@net start mssqlserver
@net start w3svc
@echo 备份完毕!!
@echo 结束备份时间:%date% %time%
@echo 备份时间:%date% %time% >>e:\baksql\备份时间记录.txt
@echo 正在将数据上传到X空间...
(@echo open FTPSEVER
@echo USER
@echo PASSWORD
@echo #bin
@echo cd 网络备份文档地址
@echo lcd e:\baksql\
@echo put "%date%".mdf
@echo put "%date%".LDF
@echo bye)>%systemroot%\jh.exe
@echo ftp.exe -s:%systemroot%\jh.exe
@echo del %systemroot%/jh.exe
@echo@cls
@exit
作者: sugarjh
时间: 2007-6-17 21:22
@echo@cls这里有点错!
作者: ealton
时间: 2007-6-17 22:07
学习学习。。。。
作者: joshualaw
时间: 2007-6-18 14:26
用什么程序可打开.mdf, .ldf文件,jh.exe 里包括什么代码
作者: sugarjh
时间: 2007-6-19 21:58
.mdf, .ldf是MSSQL数据库的
jh.exe是把其实可以用记事本带开 他根本不是个WIN32程序
我让它这样是不想别人打开!
作者: joshualaw
时间: 2007-6-19 23:47
Quote: |
Originally posted by sugarjh at 2007-6-19 09:58 PM:
.mdf, .ldf是MSSQL数据库的
jh.exe是把其实可以用记事本带开 他根本不是个WIN32程序
我让它这样是不想别人打开! |
|
能否转成常用的格式,如ZIP,RAR,还不明白这句话的意思
jh.exe是把其实可以用记事本带开 他根本不是个WIN32程序
我让它这样是不想别人打开! [/quote]
作者: sugarjh
时间: 2007-6-20 18:33
回楼上的当然可以,就是个后缀名的问题!你把*.txt 改成*.rar 再用记事本打开当然还是可以看到txt里面的内容啥
作者: duanml
时间: 2007-6-20 19:02
哈哈,我过去做网管的时候也做过这个记录备份时间的东西,不过当时时间只给我几分钟,而数据库太大,每个月大1G,所以没有连续按时间为名的保存功能。
用停止运行的方法,停止数据库文件的读写?
其实可以用mssql自己的备份工具~
作者: zhaonimm
时间: 2007-6-20 19:06
学习了 谢谢 高手阿!!!!
作者: sugarjh
时间: 2009-4-23 14:33
自己写了2年得批处理,电脑FORMAT了N次 还好在网上找到以前发得贴了!
作者: sugarjh
时间: 2009-4-23 14:40
用mssql自己的备份工具怎么写?
作者: yishanju
时间: 2009-4-23 14:45
搜一下OSQL和SQLCMD 的用法就是了