自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

MySQL 事件調(diào)度器的操作流程

數(shù)據(jù)庫 MySQL
我們今天主要向大家描述的是MySQL 事件調(diào)度器(Event Scheduler)的實(shí)際應(yīng)用與相關(guān)的實(shí)際操作流程,下面就是文章的詳細(xì)內(nèi)容介紹。

下面的文章主要介紹的是MySQL 事件調(diào)度器(Event Scheduler),我們這次試驗(yàn)的事件調(diào)度器是在 MySQL 5.1 的環(huán)境中進(jìn)行的,其新增另一個相關(guān)功能,可以用來作為一個新的定時任務(wù)調(diào)度器。

取代部分原先只能用操作系統(tǒng)任務(wù)調(diào)度器才能完成的定時功能。
一、概述

事件調(diào)度器是在 MySQL 5.1 中新增的另一個特色功能,可以作為定時任務(wù)調(diào)度器,取代部分原先只能用操作系統(tǒng)任務(wù)調(diào)度器才能完成的定時功>能。例如,Linux 中的 crontabe 只能精確到每分鐘執(zhí)行一次,而 MySQL事件調(diào)度器則可以實(shí)現(xiàn)每秒鐘執(zhí)行一個任務(wù),這在一些對實(shí)時性要>求較高的環(huán)境下就非常實(shí)用了。

事件調(diào)度器是定時觸發(fā)執(zhí)行的,在這個角度上也可以稱作是"臨時的觸發(fā)器"。觸發(fā)器只是針對某個表產(chǎn)生的事件執(zhí)行一些語句,而事件調(diào)度器則是在某一個(間隔)時間執(zhí)行一些語句。

事件是由一個特定的線程來管理的,也就是所謂的"事件調(diào)度器"。啟用MySQL 事件調(diào)度器后,擁有 SUPER 權(quán)限的賬戶執(zhí)行 SHOW PROCESSLIST 就可以看到這個線程了。通過設(shè)定全局變量event_scheduler 的值即可動態(tài)的控制事件調(diào)度器是否啟用。

  1. (root:localhost:)test> SET GLOBAL event_scheduler = ON;  
  2. (root:localhost:)test> show processlist\G 

4. row

  1. Id: 46147  
  2. User: event_scheduler  
  3. Host: localhost  
  4. db: NULL  
  5. Command: Daemon  
  6. Time: 1  
  7. State: Waiting on empty queue  
  8. Info: NULL  

 


如上,該線程的所有者是 event_scheduler。

二、應(yīng)用案例

實(shí)現(xiàn)MySQL 事件調(diào)度器本,案例是利用 event scheduler 的特性,每秒鐘調(diào)用一次存儲過程,用于判斷 SLAVE 是否正常運(yùn)行,如果發(fā)現(xiàn) SLAVE 關(guān)閉了,忽略 0 次錯誤,然后重新啟動 SLAVE。

首先創(chuàng)建存儲過程

 

  1. delimiter //  
  2. create procedure `Slave_Monitor`()  
  3. begin  
  4. SELECT VARIABLE_VALUE INTO @SLAVE_STATUS   
  5. FROM information_schema.GLOBAL_STATUS   
  6. WHERE VARIABLE_NAME='SLAVE_RUNNING';  
  7. IF ('ON' != @SLAVE_STATUS) THEN  
  8. SET GLOBAL SQL_SLAVE_SKIP_COUNTER=0;  
  9. SLAVE START;  
  10. END IF;  
  11. end; //  
  12. delimiter ;  

 

由于存儲過程中無法調(diào)用類似 SHOW SLAVE STATUS 這樣的語句,因此無法得到確切的復(fù)制錯誤信息和錯誤代碼,不能進(jìn)一步的處理 SLAVE 停止的各種情況。

接著,創(chuàng)建任務(wù)

 

  1. CREATE EVENT IF NOT EXISTS `Slave_Monitor`  
  2. ON SCHEDULE EVERY 5 SECOND  
  3. ON COMPLETION PRESERVE  
  4. DO  
  5. CALL Slave_Monitor();  

創(chuàng)建了一個任務(wù),每 5秒鐘 執(zhí)行一次,任務(wù)結(jié)束后依舊保留該任務(wù),而不是刪除。當(dāng)然了,在本例中的任務(wù)不會結(jié)束,除非將它手動禁止了。

如果在運(yùn)行中想要臨時關(guān)閉一下某個任務(wù),執(zhí)行 ALTER EVENT 語句即可:

  1. (root:localhost:)test> alter event `Slave_Monitor` ON   
  2. COMPLETION PRESERVE DISABLE;  
  3. (root:localhost:)test> alter event `Slave_Monitor` ON   
  4. COMPLETION PRESERVE ENABLE; 

以上的相關(guān)內(nèi)容就是對MySQL 事件調(diào)度器的介紹,望你能有所收獲。

【編輯推薦】

  1. MySQL存儲引擎中InnoDB與MyISAM的不同之處
  2. MySQL存儲引擎InnoDB與MyISAM的差別
  3. MySQL SHOW INDEX語法的實(shí)際應(yīng)用
  4. MySQL字符串值的實(shí)際應(yīng)用
  5. MySQL left join, right join的區(qū)別
責(zé)任編輯:佚名 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2010-06-04 09:42:23

MySQL 事件調(diào)度器

2010-05-26 09:21:13

MySQL命令

2010-05-12 09:57:17

MySQL

2010-06-04 19:15:42

MySQL安裝

2010-05-11 19:27:56

MySQL內(nèi)核

2010-05-17 11:26:49

MySQL 多級同步

2010-05-27 09:15:24

綠色版MySQL

2010-05-25 16:31:23

MySQL配置

2010-05-18 10:07:01

MySQL命令

2010-05-25 18:29:30

MySQL遠(yuǎn)程訪問

2010-05-12 11:27:01

MySQL SQL

2010-05-24 17:12:23

連接MYSQL

2010-05-26 14:55:43

MySQL存儲過程

2010-05-18 09:40:01

MySQL修改表字段

2010-05-28 18:44:45

2010-05-19 10:37:06

MySQL expla

2023-06-09 08:06:14

操作系統(tǒng)調(diào)度器LLM

2010-06-10 13:04:31

2010-06-04 15:47:46

MySQL初始化roo

2010-06-07 17:30:16

MySQL配置SSL
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號