连接服务器
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的脚本、每天数据库要查询资料,日期条件为上周一至上周日等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)