Win服务器下配合计划任务的Mysql定时压缩备份_MySQL数据库_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

Win服务器下配合计划任务的Mysql定时压缩备份

作者:黑客防线网安网站维护基地 来源:黑客防线网安建站网 浏览次数:0

黑客防线网安网讯:由于系统使用到了MySQL数据库,所以每天的工作,就设计到了MySQL数据库的备份问题.但如果每天手工来做MySQL数据库的定时备份.

由于系统使用到了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.

    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-7796-1.html
网站维护教程更新时间:2012-03-13 00:10:00  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer