先讲目的:

  (1)在服务器上能按照一个月备份一次数据库,保存为xls格式到指定目录

  (2)备份的数据为当前数据库最新的第1000条之后所有,并删除已经备份的数据,保持数据库备份后只有1000条数据(具体多少条,个亿根据实际情况来定,目前我日常活跃的数据也就差不多7、8百条,所以我只保留1000就差不多了,不会影响网站的正常运行)

步骤:

  1.先写一个.bat文件,代码如下:

mysql删除数据备份 数据库删除备份_定时备份

解释的基本差不多,对于在bat文件里怎么输出日期,可以百度查下看看,很简单。

如果以上代码没写错的话,运行这个bat文件,双击执行,在制定的文件夹下就会生成相对应的备份文件。(提醒,备份的时候一定要看看数据库打开了没有,指定的输出地址是否存在,避免这样的小尴尬,耽误时间)

  2.删除已经备份的数据

  执行上面的bat文件后,会把相对性的表最新的第1001条开始到最后,备份到本地,接下来就是如何删除已经备份的这部分数据。

具体代码如下:

  先写个php文件

  

mysql删除数据备份 数据库删除备份_windwos_02

然后在bat文件中加入执行这段代码的程序

mysql删除数据备份 数据库删除备份_mysql删除数据备份_03

然后执行bat文件的时候就会把相应的已经备份的数据删除,如果你不是php,是java或者python也一样的道理。

  3.最后如何实现让服务器定时执行这个bat文件了,其实就是新建一个定时任务

  控制面板-->管理工具-->任务计划程序-->创建任务。 直接指定之前写好的bat文件地址,设定你喜欢的时间频率就好了。不懂可以百度下就好。

总结:

  方法感觉是有点笨,不过总归是实现了我的需求。目前没有想到更好的优化的方案。请大神指点。。。