event_scheduler及集群定期清理表(DROP TEMPTABLE)的定时任务说明
warning:
这篇文章距离上次修改已过1649天,其中的内容可能已经有所变动。
在集群中,每个gcluster都存在一个user为event_scheduler的连接,如下:
Id User Host db Command Time State Info 1 event_scheduler localhost NULL Daemon 60428 Waiting for next activation NULL
event_scheduler用户用于进行数据库执行计划的执行。
gbase集群的执行计划存储在gbase.event系统表中,查询该表可以看当前数据库定义的计划任务,默认如下:
gbase> select * from gbase.event \G
*************************** 1. row ***************************
db: gbase
name: drop_temp_table
body: DROP TEMPTABLE
definer: root@localhost
execute_at: NULL
interval_value: 1
interval_field: DAY
created: 2015-01-30 10:07:34
modified: 2015-01-30 10:07:34
last_executed: 2015-03-23 02:07:34
starts: 2015-01-30 02:07:34
ends: NULL
status: ENABLED
on_completion: DROP
sql_mode: ANSI_QUOTES,IGNORE_SPACE
comment:
originator: 0
time_zone: +08:00
character_set_client: utf8
collation_connection: utf8_general_ci
db_collation: utf8_general_ci
body_utf8: DROP TEMPTABLE
1 row in set (Elapsed: 00:00:00.00)
使用show create event event_name的方式可以查看计划任务的创建语句如下:
gbase> show create event drop_temp_table;
+-----------------+--------------------------+-----------+-----------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+--------------------+
| Event | sql_mode | time_zone | Create Event | character_set_client | collation_connection | Database Collation |
+-----------------+--------------------------+-----------+-----------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+--------------------+
| drop_temp_table | ANSI_QUOTES,IGNORE_SPACE | +08:00 | CREATE EVENT "drop_temp_table" ON SCHEDULE EVERY 1 DAY STARTS '2015-01-30 10:07:34' ON COMPLETION NOT PRESERVE ENABLE DO DROP TEMPTABLE | utf8 | utf8_general_ci | utf8_general_ci |
+-----------------+--------------------------+-----------+-----------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+--------------------+
1 row in set (Elapsed: 00:00:00.01)
关于临时表清理(DROP TEMPTABLE)任务描述:
每天定期执行一次临时表清理任务(如本例中每天02:07:34执行),执行的具体sql为:DROP TEMPTABLE;
可以手工执行sql的方式进行临时表的清理:
gbase> DROP TEMPTABLE;
Query OK, 0 rows affected (Elapsed: 00:00:19.48)