2015-05-30
单位8亿多条的日志表,经过自动分表之后,需要自动删除30天前创建的日志表。
但是只是在Master下线这些日志表,而Slave还需要保持在线,以备查询。
由于Master-Slave结构,在Drop表之前,设置@@session.sql_log_bin=0,那么Drop的行为就没有记录到binlog,所以Slave的日志表就会被保留。
模拟环境如下,
mysql> show tables;
+---------------------------------+
| Tables_in_edmond |
+---------------------------------+
| sod_song_log_2014_1_22_13_18_20 |
| sod_song_log_2014_2_22_13_18_20 |
| sod_song_log_2014_3_22_13_18_20 |
| sod_song_log_2014_4_22_13_18_20 |
+---------------------------------+
4 rows in set (0.00 sec)
过程如下:
delimiter $$
CREATE procedure drop_table()
BEGIN
declare t_name varchar(64);
declare isFinished int default false;
declare log_table_list cursor for (select table_name from information_schema.tables where table_schema ='EDMOND' and table_name like'sod_song_log_%');
declare continue handler for not found set isFinished=true;
open log_table_list;
repeat
fetch log_table_list into t_name;
if isFinished = false then
if datediff(now(),replace(t_name,'sod_song_log_',''))>30 then
set @@session.sql_log_bin=0;
set @sqltext=concat('drop table ',t_name,';');
PREPARE c_tab_stat from @sqltext;
execute c_tab_stat;
set @@session.sql_log_bin=1;
end if;
end if;
until isFinished
end repeat;
close log_table_list;
END $$
delimiter ;
执行过程,结果如下
mysql> call drop_table();
Query OK, 0 rows affected (0.28 sec)
mysql> show tables;
+---------------------------------+
| Tables_in_edmond |
+---------------------------------+
| sod_song_log_2014_4_22_13_18_20 |
+---------------------------------+
1 row in set (0.00 sec)
mysql> select now() from dual;
+---------------------+
| now() |
+---------------------+
| 2014-04-22 17:58:24 |
+---------------------+
1 row in set (0.00 sec)
并且binlog中没有记录这个Drop的行为。
配合Linux crontab即可实现定期自动删除表的功能。
一定不要把sql_log_bin设置为global级别,不能犯迷糊
美美小店微信登录版下载v1.8.3420 安卓版
休闲益智 1.48G
下载宝宝巴士百变职业游戏(改名奇妙的职业)下载v9.87.58.00 安卓最新版
其它手游 113.3M
下载奇妙美食总动员官方版下载v9.86.00.00 安卓版
其它手游 164.4M
下载宝宝果汁商店宝宝巴士下载v9.86.00.00 安卓官方版
其它手游 140.3M
下载奇妙的节日手工宝宝巴士下载v9.87.00.00 安卓手机版
其它手游 117.4M
下载2025使命召唤手游官方正版下载v1.9.51 安卓手机版
射击枪战 1.99G
下载阳阳魔法学院免费版下载v2.8.2.370 安卓最新版
其它手游 104.3M
下载节奏大师腾讯游戏下载v2.9.13.29145 安卓最新版
其它手游 700.5M
下载宝宝修车店宝宝巴士游戏下载v9.87.00.00 官方安卓版
下载
宝宝营养料理游戏下载v9.86.00.00 安卓版
下载
黎明觉醒生机手游下载v1.115.1 安卓最新版本
下载
依露希尔星晓官方版下载v3.10.0.0 安卓版
下载
光与夜之恋官方正版手游下载v1.8.0805 安卓最新版本
下载
宝宝天气认知宝宝巴士最新版下载v9.87.00.00 安卓版
下载
最强美职篮最新版本下载v1.54.651 安卓版
下载
实况王者集结手游下载v4.9.0 安卓最新版
下载