当生产环境有数据需要定期同步,备份,我们一般会如何处理呢?

数据库备份可通过数据库本身的任务调度event来完成,也可以通过linux的定时任务功能crontab来完成。

注意:event是mysql 5.1以上的版本才支持哦

学习本文需要的知识点如下:

1、sql基本语句有了解,实例中有使用导入source命令

2、Linux的基本命令,vi工具,文件权限chmod命令等

首先,我们需要确定mysql是否支持定时任务,在支持后我们再设置定时任务

进入数据库后执行以下命令:show variables like '%event_sche%';

如果没有开启,则运行命令来开启

setglobal event_scheduler = 1;

或者 setglobal event_scheduler = on;

相应的关闭命令为

setglobal event_scheduler = 0;

setglobal event_scheduler = off;

我需要使用的数据库是 test,在表格tbl中插入数据

create event test

#定时任务的名字要简洁明了,方便查看,不会误删

on schedule every 1 hour

#设置运行频率, 可设置为秒分时天等

do insert into tbl values(now());

#do 后面设置确定的sql语句

show events \G #\G使输入结果格式化,显示效果友好,一定要大写

show events #不带\G选项,显示结果为数据表格式

Db: test #数据库名称,默认使用的数据库名

Name: e_5 #任务名称,设定的名称

Definer: ucenter@localhost #数据库账户,默认为登录的账户

Time zone: SYSTEM #时区,默认跟随系统

Type: RECURRING #执行类型,为可反复执行和一次性执行,一次性类型在特定时间点执行的任务

Execute at: NULL #特定时间执行时才有

Interval value: 1 #时间段内触发频率

Interval field: MINUTE #触发频率的单位,可设定为秒分时日月年等

Starts: 2018-09-21 13:43:16 #任务触发的开始时间

Ends: 2018-09-21 13:50:16 #任务触发的结束时间

Status: ENABLED #任务状态,可设定为临时关闭为disabled

Originator: 0——暂时不清楚,有了解的同学可以一起讨论哦