MySQL Event历史记录
CREATE TABLE `mysql`.`udf_event_history` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`event_gid` varchar(36) NOT NULL,
`db_name` varchar(128) NOT NULL DEFAULT '',
`event_name` varchar(128) NOT NULL DEFAULT '',
`start_time` datetime(3) NOT NULL DEFAULT current_timestamp(),
`end_time` datetime(3) DEFAULT NULL,
`is_success` tinyint(4) DEFAULT 0,
`duration` decimal(15,3) DEFAULT NULL,
`error_msg` varchar(512) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `idx_event_git` (`event_gid`),
KEY `idx_db_event_name` (`db_name`,`event_name`),
KEY `idx_s_e_time` (`start_time`,`end_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
2.根据以下建模板创建event
USE db1; DELIMITER $$ CREATE DEFINER=`root`@`localhost` EVENT `event_test1`
ON SCHEDULE EVERY 1 MINUTE STARTS '2019-01-01 00:00:00'
ON COMPLETION PRESERVE ENABLE DO
BEGIN
DECLARE r_code CHAR(5) DEFAULT '';
DECLARE r_msg TEXT;
DECLARE v_error INT;
DECLARE v_start_time DATETIME(3) DEFAULT NOW(3);
DECLARE v_event_gid VARCHAR(36) DEFAULT UPPER(REPLACE(UUID(),'-','')); /*修改为实际的event名*/
INSERT INTO mysql.udf_event_history (db_name, event_name, start_time, event_gid)
VALUES(DATABASE(), 'event_test1', v_start_time, v_event_gid); BEGIN
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION
BEGIN
SET v_error = 1;
GET DIAGNOSTICS CONDITION 1 r_code = RETURNED_SQLSTATE, r_msg = MESSAGE_TEXT;
END;
/*实际要执行语句或存储过程,等*/
CALL db1.usp_1();
END; UPDATE mysql.udf_event_history
SET end_time = NOW(3), is_success = ISNULL(v_error), duration = TIMESTAMPDIFF(microsecond,start_time, NOW(3)) / 1000000,
error_msg = CONCAT('error = ', r_code,', message = ', r_msg)
WHERE event_gid = v_event_gid; END$$
DELIMITER ;
通过查询mysql.udf_event_history表,可以知道event的开始结束时间、是否成功、执行时长、错误信息,等,为管理日常调度计划提供方便。
root@localhost [db1]select * from mysql.udf_event_history limit 2\G;
*************************** 1. row ***************************
id: 1
db_name: db1
event_name: event_test1
start_time: 2019-12-03 15:44:00.000
end_time: 2019-12-03 15:44:00.001
is_success: 0
duration: 0.001
error_msg: error = 42000, message = PROCEDURE db1.usp_2 does not exist
event_gid: AB305D8C15A011EAB822005056AB041E
*************************** 2. row ***************************
id: 2
db_name: db1
event_name: event_test2
start_time: 2019-12-03 15:46:00.000
end_time: 2019-12-03 15:46:05.405
is_success: 1
duration: 5.405
error_msg: NULL
event_gid: F2B6197C15A011EAB822005056AB041E
参考
MySQL Event历史记录的更多相关文章
- Mysql event学习
我们可能比较熟悉crond,但是mysql也有一个自己的叫event,oracle的叫job. 开启mysql的event有很多种方法,和临时开启.我们在配置文件里面添加参数,随着服务一起开启. 在[ ...
- -- Warning: Skipping the data of table mysql.event. Specify the --events option explicitly.
[root@DB ~]# mysqldump -uroot -p123 --flush-logs --all-databases >fullbackup_sunday_11_PM.sql -- ...
- Mysql event事件用法
公司的数据库需要进行定期删除数据,需要用到mysql event事件,学习和梳理这块知识. 1查看event是否开启 SHOW VARIABLES LIKE 'event_scheduler'; 2开 ...
- MySQL event调度
基本命令 //查看事件调度是否开启 show variables like '%event_scheduler%'; //开启事件调度 SET GLOBAL event_scheduler = ON; ...
- 微信支付 超时 mysql.event
$wtime 使用具体timestamp //rand 防推测 $wev = 'ev_gbuy_create_' . trim($winsert_id) . rand(100, 999); $sql ...
- mysql event
1.定时调用 存储过程 DELIMITER $$ ALTER DEFINER=`root`@`localhost` EVENT `event_stroke_ArchivesReportDataRefr ...
- mysql Event、存储过程、表命令
Mysql事件调度器(Event Scheduler)类似于定时器,可以在某一个时间点执行一个SQL语句或一个语句块(BEGIN ... END):或者每隔固定间隔重复执行.类似于Linux下的cro ...
- 【Mysql】MySQL event 计划任务
一.查看event是否开启 show variables like '%sche%'; set global event_scheduler =1; 二. -- 设置时区并设置计划事件调度器开启,也可 ...
- MySQL Event计划任务刷慢日志
前言 最近在尝试一个日志系统graylog来收集mysql的慢查询日志提,供后续的分析.监控和报警等.测试步骤已经到日志已成功收集到graylog,测试时需要刷一些慢查询日志出来.为了刷比较多的日志和 ...
随机推荐
- [翻译] 使用 Serverless 和 .NET Core 构建飞速发展的架构
原文:Fast growing architectures with serverless and .NET Core 作者:Samuele Resca Serverless 技术为开发人员提供了一种 ...
- 【Java并发系列】----JUC之Lock
显式锁 Lock 在Java 5.0之前,协调共享对象的访问时可以使用的机制只有synchronized和volatile.Java 5.0后增加了一些新的机制,但并不是一种替代内置锁的方法,而是当内 ...
- 获取Zabbix 中资源的使用率
import pymysql as MySQLdb import time import datetime import xlsxwriter # zabbix数据库信息: zdbhost = 'xx ...
- redis centos 6.x 启动关闭脚本
#!/bin/sh #Configurations injected by install_server below.... EXEC=/usr/local/bin/redis-server CLIE ...
- jsp 实现查询功能
要求: 实现查询功能 1.数据库代码 create database mvce; use mvce; create table test2( id int not null identity, tna ...
- 虚拟机中linux操作系统raid5(5块磁盘,3块做raid,2块做备份)配置流程及损坏磁盘的移除
1.打开所要用的虚拟机,点击编辑虚拟机设置,点击硬盘,添加 2.一直点击下一步不做修改,直到最后完成 3.按照以上步骤添加5块磁盘 4.点击开启虚拟机,输入用户名root密码登录进去 5.进入虚拟机后 ...
- list列表操作
li = [1,2,3,4,'4','456'] print(li.index('4')) # print(li.index('45')) l_a = ['1234567','7890'] l_b = ...
- APM环境搭建
权限设置 把用户添加到用户组 “dialout”(如果这步没做,会导致很多用户权限问题): sudo usermod -a -G dialout $USER 然后注销后,重新登录,因为重新登录后所 ...
- css实现input表单验证
有没有办法只通过css来确定input标签是否有输入? 我有这个想法是因为我想完成一个自动补全的input部件,最基本的功能是: 如果input没有内容,这隐藏下拉框 反之,显示下拉框 我找到了一个也 ...
- WebSSH画龙点睛之lrzsz上传下载文件
本篇文章没有太多的源码,主要讲一下实现思路和技术原理 当使用Xshell或者SecureCRT终端工具时,我的所有文件传输工作都是通过lrzsz来完成的,主要是因为其简单方便,不需要额外打开sftp之 ...