declare @fileName varchar(255) ,--定义备份文件名变量
@dbname varchar(255)--定义备份数据库名变量
declare mycursor cursor fast_forward for select name from master..sysDatabases order by name --定义一个游标对象
open mycursor --打开游标
set @dbname='pysf'
set @fileName = 'D:\bakck\1\'+@dbname+convert(varchar(10),getdate(),112)+'.bak' --定义当前备份文件存放路径
backup database @dbname to disk=@fileName--循环备份当前数据库
fetch next from mycursor into @dbname --再次取值
close mycursor --关闭游标
-------------bat命令
@echo off
osql -U sa -P 123 -d pysf -i .\数据备份脚本.sql >log1.log
pause
------------------
sa--用户名
123--密码
pysf--数据库名
\数据备份脚本.sql---脚本名字(如果使用bat命令俩执行脚本,建议sql脚本和bat文件在同一级目录下)
isql -U sa -P password -d master -Q"BACKUP DATABASE [databasename] to disk='D:\DB\databasename_%date:~0,4%%date:~5,2%%date:~8,2%0400.BAK'"这是sql2000的,你试一下,一般能通用。
注意用户和密码需要管理员权限 修改一下,还有数据库名修改一下
set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%"md "E:\数据备份\%ymd%"
"D:\MySQL\bin\mysqldump.exe" --opt -Q mysql -uroot -p123456789 >
E:\数据备份\%Ymd%\mysql.sql
REM ..... 这里可以添加更多的命令,要看你有多少个数据库,其中 -Q 后面是数据库名称
-p紧跟后面是密码
echo Winrar loading...
"C:\Program Files\WinRAR\WinRAR.exe" a
-ep1 -r -o+ -m5 -df "E:\数据备份\%Ymd%.rar" "E:\数据备份\%Ymd%"
echo OK!
把上面的命令保存为 backup.bat ,双击运行,就开始备份数据了。
第一句是建立一个变量 %Ymd% ,通过
%date% 这个系统变量得到日期,%date:~,4% 表示取日期的前面4个字符就是年份,%%date:~5,2%
表示取日期第5个字符开始的2个字符就是月份,%date:~8,2% 这个就是日期号数,如 2009-06-20 这个日期最后得到的结果是 20090620
第二句就是使用变量 %Ymd% 的值建立一个空的文件夹。
第三句开始就是使用MySQL的命令对数据库mysql进行备份,并存储在
E:\数据备份\%ymd% 这个文件夹下面,这里可以有很多类似的命令,备份多个数据库。
最后就是使用 WinRAR 对备份的数据进行压缩,并存储为以
%Ymd% 变量值建立的RAR文件名,同时删除备份的 %Ymd% 目录。
如果你想让系统自动定期备份,就可以通过系统的任务计划定期执行这个命令。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)