如何使用crontab每天自动备份Mysql数据库

如何使用crontab每天自动备份Mysql数据库,第1张

连接服务器

1

运行ssh工具putty,输入服务器地址,帐号和密码连接上服务器:

2

切换到mysql安装目录下,然后使用VI创建一个文件(backup_mydbsh):

PS:vi *** 作方法:按“i”可写,写好保存先按“ESC”,然后按“:(shift + ;)”,写入“wq”,写入退出即可。

3

以下为具体脚本:

#!/bin/sh

# File: /路径/mysql/backup_mydbsh

# Database info

DB_NAME="mydb"

DB_USER="root"

DB_PASS="passwd"

# Others vars

BIN_DIR="/路径/mysql/bin"

BCK_DIR="/home/backup"

DATE=`date +%F`

# TODO

$BIN_DIR/mysqldump --opt -u$DB_USER -p$DB_PASS $DB_NAME | gzip >$BCK_DIR/db_$DATEgz

以上为脚本,注意好路径,确认正确后保存退出。

4

ls -l backup_mydbsh 查看该脚本文件是否有执行权限,例如执行chmod 777 backup_mydbsh,具体多大权限自己处理!

END

添加crontab任务

1

对于crontab任务有两种方式,一种为root用户可以直接添加;一种为非root用户需要crontab -e方式来添加;本篇着重以root用户来讲解,执行:

vi /etc/crontab

2

在最下面添加一条:

0 3 root /路径/backup_mydbsh

意思就是在每天的3点0分执行这个文件;

写好后保存退出crontab。

3

重启crontab服务

/etc/initd/crond restart

END

验证是否成功执行

可以把任务执行的时间调整到服务器时间后两分钟,然后重启crontab,看看是否成功备份指定的数据库

2

如果不成功的话,可以手动执行脚本查看是否成功备份,如果备份成功则说明定时任务有问题;如果不成功,还需要再次检查脚本!

1、每日自动备份

打开企业管理器,进入“管理”-“数据库维护计划”,在右侧窗口点击右键,选择“新建维护计划”,启动“数据库维护计划向导”;点击“下一步”选择需要维护的数据库,维护特性数据库时,选择最后一个单选框并勾选需要维护的数据库名称;“下一步”选择更新数据优化信息、“下一步”检查数据库完整性、“下一步”指定数据库备份计划、“下一步”指定备份存放位置、“下一步”指定事务日志备份计划、“下一步”指定报表,“下一步”指定历史纪录维护,最后设定维护作业名称;通常来说,如果只需要备份数据库文件,则只需要指定备份计划以及存放位置即可,其他项目不做改动。

在指定备份计划时候,由于需要每日备份,因此要更改调度。点击“更改”编辑调度。发生频率选择每天;每日频率选择作业开始时间,最好选择数据库访问量小时进行,多为半夜时间,可根据流量图确定具体时间;持续时间通常不用做改动,开始日期为编辑日期,无结束日期。

编辑好上述维护计划后,还要注意下

sql

server代理服务是否启动了,因为每日调度维护计划是要启动这个服务才能执行的。如果该服务没有启动,需要手动启动一下,这是可以在其子项“作业”中看到刚刚添加过的数据库维护计划。

2、定期自动清理数据库日志文件

数据库日志文件是随着时间增长而增长的,如果长时间不清理,文件会变得特别大,因此需要定期清空,但是日至文件是恢复数据库的重要依据,不用日志文件也是不明智的。手工清除单个数据库的还好说,但数据库多了,或者临时没有来得及清理,可能硬盘空间就会占满了,影响访问。因此设置自动清理数据库日志文件还是比较实用的。

手动清理方法:右键单击需要清理的数据库,选择“属性”,在“选项”卡上,把故障还原模型设定为简单,确定后关闭;再右键单击该数据库,“所有任务”-“收缩数据库”,确认后即可清除日志文件,最后记得重新选择“属性”,将故障还原模型设置为完全。

自动清理方法:同样是利用sql

server代理服务,执行自动作业。

打开企业管理器,进入“管理”-“sql

server代理服务”-“作业”,在右侧窗口点击右键,选择“新建作业”。“常规”选项卡中,填写作业名称,具体描述,注意所有者最好还是用sa或者默认的管理帐号。

转到“步骤”选项卡,新建作业步骤,填写步骤名称,类型为脚本,数据库为需要清理日志的数据库,在下边命令中填写以下命令:

DUMP

TRANSACTION

数据库名称

WITH

NO_LOG

DBCC

SHRINKFILE(数据库日志文件名,1)

上边的数据库名称填写需要维护的数据库名称,数据库日志文件名填写其对应的日志文件名,注意,不是资源管理器里看到的带后缀名的那个名字,而是企业管理器里,数据库属性里日志选项卡中日志的名字(通常也只是差一个后缀名……),确定后添加一个作业步骤。

如果需要维护多个数据库,用上述方法重复添加作业步骤,注意每个步骤成功或失败后的动作即可,最后选择一下开始的步骤。

在“调度”选项卡中,类似备份的维护计划,填写调度周期,即定期清理的周期,不再细述。如果需要,可以在最后的“通知”选项卡上设置作业完成后的通知项,需要设置 *** 作员,以及设置相应的服务,这里也不具体说明了,通常不用……

select dateadd(day,-Datepart(weekday, getdate()+@@DateFirst -1)-6,getdate())--不管今天星期几,返回上周一

select dateadd(day,-Datepart(weekday, getdate()+@@DateFirst -1), getdate())--不管今天星期几,返回上周末

不过你要查询的话。。。时间范围的结尾不能用周末,要是周末的23:59:59,或这周一,SQL语句是select dateadd(day,-Datepart(weekday, getdate()+@@DateFirst -1)+1, getdate())

以上就是关于如何使用crontab每天自动备份Mysql数据库全部的内容,包括:如何使用crontab每天自动备份Mysql数据库、MSsql每天自动备份数据库并每天自动清除log的脚本、每天数据库要查询资料,日期条件为上周一至上周日等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9466432.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存