- Rongsen.Com.Cn 版权所有 2008-2010 京ICP备08007000号 京公海网安备11010802026356号 朝阳网安编号:110105199号
- 北京黑客防线网安工作室-黑客防线网安服务器维护基地为您提供专业的
服务器维护
,企业网站维护
,网站维护
服务 - (建议采用1024×768分辨率,以达到最佳视觉效果) Powered by 黑客防线网安 ©2009-2010 www.rongsen.com.cn
作者:黑客防线网安网站维护基地 来源:黑客防线网安建站网 浏览次数:0 |
由于系统使用到了MySQL数据库,所以每天的工作,就设计到了MySQL数据库的备份问题.但如果每天手工来做MySQL数据库的定时备份.
要备份到路径为F:\db_mall_beifen\
mall数据库路径为D:\mysql\data\mall
编写脚本如下:↓
net stop mysql
xcopy D:\mysql\data\mall\*.* F:\db_mall_beifen\%date:~0,10%\ /y
D:\WinRAR\WinRAR.exe a -k -r -s F:\db_mall_beifen\%date:~0,10%.rar F:\db_mall_beifen\%date:~0,10%
rd "F:\db_mall_beifen\%date:~0,10%\" /S /Q
net start mysql
/*--------------------------------------------------------解释-----------------------------------------------------------------------*/
net stop mysql 停止Mysql服务
xcopy D:\mysql\data\mall\*.* F:\db_mall_beifen\%date:~0,10%\ /y 把mall数据库拷贝到F:\db_mall_beifen\
以时间命名的文件夹image
D:\WinRAR\WinRAR.exe a -k -r -s F:\db_mall_beifen\%date:~0,10%.rar F:\db_mall_beifen\%date:~0,10% 调用winrar的命令行模式压缩刚刚拷贝出来的文件夹并保存在月份的文件夹下
rd "F:\db_mall_beifen\%date:~0,10%\" /S /Q 删除备份出来以日期命名的文件夹image,最后只保留一个压缩文件
net start mysql 重新启动Mysql服务…
一般情况下,我们手工备份MySQL数据库,会使用下面的命令:
mysqldump --opt --add-locks -u root --password=xxxx db_name> x:/db_backup/db_name.sql
复制代码
这是我们在命令行模式下备份数据库的常用命令.但现在要让系统自动执行,就不能这样了.
1.在windows下定时备份MySQL数据库.
使用editplus建立 db_bak.bat文件,也就是windows下常用的批处理文件.
内容为:
@echo
mysqldump --opt --add-locks -u root --password=xxxx db_name> x:/db_backup/db_name.sql
复制代码
然后保存,接下来在window 的定时任务中,定义windows的定时任务,每天备份多少次都可以.
2.在linux下定时备份MySQL数据库.
命令跟上面的类似,不过这里要使用linux下的定时任务了.
说到这里,可能大伙都感觉数据库的备份工作已经完成了,其实不然,我们备份数据库,不单要应对数据库坏掉或被误删除的问题,同时,还需要应对服务器损坏,硬盘损坏或是服务器遭遇未可预知的灾难的问题.
所以,我们就不能把数据库仅仅备份到本机,我们同时,需要将备份好的数据库,同步传输到其它至少一台服务器上,这样,才可以保证我们数据的绝对安全,在进行数据传输之前,为了减少数据的传输量,提高传输速度,需要对数据库备份文件进行压缩.在linux下,可以使用系统自带的命令进行压缩,但在windows下,我不太喜欢使用window自带的命令进行压缩.在这里,我借助ant对MySQL数据库备份文件进行压缩,ant的build.xml 文件定义如下(文件命名为:db_target.xml)
<?xml version="1.0" encoding="UTF-8"?>
<project name="xxxx" basedir=".">
<property name="db-bak-dir" value="x:/db_backup"/>
<target name="db-bak">
<exec dir="${basedir}" executable="cmd.exe">
<arg line="/c db-bak.bat" />
</exec>
</target>
<target name="bak" depends="db-bak">
<tstamp prefix="source.">
<format property="TimeSign" pattern="yyyy-MM-dd HH.mm.ss" />
</tstamp>
<mkdir dir="${db-bak-dir}/${source.TimeSign}"/>
<zip destfile="${db-bak-dir}/${source.TimeSign}/db-bak.zip">
<zipfileset dir="${db-bak-dir}" includes="*.sql"/>
</zip>
<antcall target="clean"/>
</target>
<target name="clean">
<delete file="${db-bak-dir}/db_name.sql"/>
</target>
</project>
复制代码
上面的ant配置文件的意思,就是说,让ant调用windows的MySQL数据库备份.bat文件并执行.
对数据库进行备份,然后,以当前日期,作为压缩文件名,对MySQL数据库备份文件进行压缩.
那既然我们是让 ant来调用了MySQL数据库备份命令文件,就没有理由再让windows 定时任务调用 MySQL数据库备份命令文件了,所以,我们对window的定时任务做一修改,让window定时执行ant脚本,再写一个.bat文件.
内容如下:
@echo
ant -f x:/db-target.xml bak
文件命名为:db-target.bat.
我要申请本站:N点 | 黑客防线官网 | |
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479 |