• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > MySQL事件调度器Event Scheduler详解

MySQL事件调度器Event Scheduler详解

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了Even, Scheduler等相关知识,希望本文的分享对您有所帮助
事件调度器是在 MySQL 5.1 中新增的另一个特色功能,可以作为定时任务调度器,取代部分原先只能用操作系统任务调度器才能完成的定时功>能。例如,linux 中的 crontabe 只能精确到每分钟执行一次,而 MySQL 的事件调度器则可以实现每秒钟执行一个任务,这在一些对实时性要>求较高的环境下就非常实用了。


事件调度器是定时触发执行的,在这个角度上也可以称作是"临时的触发器"。触发器只是针对某个表产生的事件执行一些语句,而事件调度器则是在某一个(间隔)时间执行一些语句。事件是由一个特定的线程来管理的,也就是所谓的"事件调度器"。启用事件调度器后,拥有 SUPER 权限的账户执行 SHOW PROCESSLIST 就可以看到这个线程了。通过设定全局变量event_scheduler 的值即可动态的控制事件调度器是否启用。


(root:localhost:)test> SET GLOBAL event_scheduler = ON;(root:localhost:)test> show processlist\G*************************** 4. row ***************************Id: 46147User: event_schedulerHost: localhostdb: NULLCommand: DaemonTime: 1State: Waiting on empty queueInfo: NULL


如上,该线程的所有者是 event_scheduler。


应用案例


本案例是利用 event scheduler 的特性,每秒钟调用一次存储过程,用于判断 SLAVE 是否正常运行,如果发现 SLAVE 关闭了,忽略 0 次错误,然后重新启动 SLAVE。


首先创建存储过程


delimiter //create procedure `Slave_Monitor`()beginSELECT VARIABLE_VALUE INTO @SLAVE_STATUS FROM information_schema.GLOBAL_STATUS WHERE VARIABLE_NAME='SLAVE_RUNNING';IF ('ON' != @SLAVE_STATUS) THENSET GLOBAL SQL_SLAVE_SKip_COUNTER=0;SLAVE START;END IF;end; //delimiter ;

由于存储过程中无法调用类似 SHOW SLAVE STATUS 这样的语句,因此无法得到确切的复制错误信息和错误代码,不能进一步的处理 SLAVE 停止的各种情况。


接着,创建任务


CREATE EVENT IF NOT EXISTS `Slave_Monitor`

ON SCHEDULE EVERY 5 SECOND

ON COMPLETION PRESERVE

DO

CALL Slave_Monitor();


创建了一个任务,每 5秒钟 执行一次,任务结束后依旧保留该任务,而不是删除。当然了,在本例中的任务不会结束,除非将它手动禁止了。


如果在运行中想要临时关闭一下某个任务,执行 ALTER EVENT 语句即可:


(root:localhost:)test> alter event `Slave_Monitor` ON

COMPLETION PRESERVE DISABLE;

(root:localhost:)test> alter event `Slave_Monitor` ON

COMPLETION PRESERVE ENABLE;

以上就是MySQL事件调度器Event Scheduler详解的内容,更多相关文章请关注微课江湖()!

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • mysql中event的用法详解
  • 解决bash: mysql: command not found 的方法
  • MySQL Event Scheduler(事件调度器)
  • MySQL event 计划任务浅析
  • 简单介绍MySQL中event的计划任务
  • mysql event事件调度器的图文代码详解
  • MySQL事件调度器Event Scheduler详解
  • SQLServer EVENTDATA()函数来获取DDL 触发器信息
  • ERROR: Error in Log_event::read_log_event()
  • MySQL定时器EVENT学习笔记

相关文章

  • 2018-12-05sql Set IDENTITY_INSERT的用法
  • 2017-05-11SQL语句中SUM与COUNT的区别深入分析
  • 2018-12-05mysql数据库在Centos7下无法远程连接的原因以及解决详解
  • 2018-12-05mysql 联合索引有什么好处? 联合索引的意义
  • 2018-12-05MSSQL 将截断字符串或二进制数据问题的解决方法
  • 2017-05-11Can't connect to MySQL server的解决办法
  • 2018-12-05mysql允许远程访问
  • 2018-12-05Oracle收购TimesTen 提高数据库软件性能
  • 2018-12-05mysql常用基础操作语法(四)--对数据的简单无条件查询及库和表查询【命令行模式】
  • 2017-05-11浅谈sql数据库去重

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • Oracle性能究极优化
    • MySQL WorkBench管理操作MySQL教程
    • MYSQL代码 定期备份Mysql数据库
    • 如何理解MySQL中的IN,OUT,INOUT类型
    • MySQL-Python安装问题小记
    • Mysql之SQL Mode用法详解
    • php 读取mysql数据库三种方法
    • 如何有效实现应用mysql的增删改查功能
    • 详解MySQL中的NULL值
    • 查看修改mysql编码方式让它支持中文(gbk或者utf8)

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有