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.0.2 安卓版
角色扮演 5.97MB
下载
幻唐志逍遥外传官方版下载v5.2.28 安卓版
其它手游 1560.57MB
下载
怪物联萌官方版下载v10.5 安卓版
休闲益智 331.52MB
下载
手动挡停车场2026最新版本下载v4.8.17.3 安卓版
赛车竞速 921.2MB
下载
放置奇兵猫耳版本下载v1.12.1 安卓版
角色扮演 536.78MB
下载
斗鱼云游戏app下载v8.0.2.0 安卓版
其它手游 117.49MB
下载
时空猎人银汉官方正版下载v5.2.1105 安卓原版
角色扮演 1806.78MB
下载星球重启官方正版下载v1.3.17 安卓最新版
射击枪战 1984.78MB
下载最强nba国际版下载v1.51.621 安卓版
下载
机械迷城手机免费版完整版下载v5.0.1 安卓不付费版
下载
极品飞车集结手游下载v1.7.154.2653789 安卓最新版
下载
某某朝的女子乐坊游戏下载v4.0.0.7 安卓版
下载
梦想协奏曲少女乐团派对手游下载v9.1.0 安卓最新版
下载
椿之歌手游官方版下载v1.1.1 安卓版
下载
模拟地铁游戏官方版下载v1.0.31 安卓免费正版
下载
小小曹操传手游下载v1.0.9 安卓版
下载