MySQL重启后,内存表中的数据将一无所有。
要想即要速度,又要保存住内存表中的数据,必须定时将内存表中的数据备份到一般表中,同时,DB重启后,还需要将备份表中的数据还原到内存表中。
貌似是MySQL 5.1.6之后,MySQL开始支持EVENT处理了,可以设定自己的定时器,将内存表中的数据定期备份到一般表中。
[b]1、备份内存表的几个步骤[/b]
1) 打开event_scheduler。
重启后,event_scheduler还会变成off的,需要在my.cnf中增加一句话,重启后自动为on。
2) 创建备份定时器。
这样每天凌晨0:30,MySQL会自动将feed_infos内存表的数据导入到其备份表feed_infos_bak中。
[b]2、实现MySQL重启后,内存表数据的自动还原[/b]
1) 新建一个init-file文件。
加上下面两句SQL。[color=red][b]千万注意:每行一条语句,万不可将一条语句分开多行写。[/b][/color]
2) 在my.ini(Linux:my.cnf)中加入下面几句话。
${path}是放置init-file的路径。
重启MySQL,就会发现feed_infos_bak表中的数据成功还原到feed_infos表里了。
[b]参考文献:[/b]
[url]http://blog.youkuaiyun.com/yueliangdao0608/archive/2008/04/19/2306778.aspx[/url]
[url]http://www.sofee.cn/blog/2007/07/18/91/[/url]
[url]http://dev.mysql.com/doc/refman/5.1/en/create-event.html[/url]
[url]http://www.mysql-china.com/viewthread.php?tid=948&extra=page%3D1[/url]
全文完。
---------广告分隔线--------------
要想即要速度,又要保存住内存表中的数据,必须定时将内存表中的数据备份到一般表中,同时,DB重启后,还需要将备份表中的数据还原到内存表中。
貌似是MySQL 5.1.6之后,MySQL开始支持EVENT处理了,可以设定自己的定时器,将内存表中的数据定期备份到一般表中。
[b]1、备份内存表的几个步骤[/b]
1) 打开event_scheduler。
mysql> set global event_scheduler = on;
重启后,event_scheduler还会变成off的,需要在my.cnf中增加一句话,重启后自动为on。
event_scheduler=ON
2) 创建备份定时器。
delimiter |
CREATE EVENT feed_infos_2_feed_infos_bak_event
ON SCHEDULE EVERY 1 DAY
STARTS TIMESTAMP '2009-09-23 0:30'
ON COMPLETION PRESERVE
COMMENT 'comments'
DO
BEGIN
INSERT INTO feed_infos_bak(
user_id,
user_name,
created_at
)
(
SELECT
user_id,
user_name,
created_at
FROM
feed_infos
WHERE
created_at > (SELECT MAX(created_at) FROM feed_infos_bak)
);
DELETE FROM feed_infos WHERE DATEDIFF(NOW(), created_at) > 31;
END |
delimiter ;
这样每天凌晨0:30,MySQL会自动将feed_infos内存表的数据导入到其备份表feed_infos_bak中。
[b]2、实现MySQL重启后,内存表数据的自动还原[/b]
1) 新建一个init-file文件。
加上下面两句SQL。[color=red][b]千万注意:每行一条语句,万不可将一条语句分开多行写。[/b][/color]
use xxx_development;
INSERT INTO feed_infos (user_id, user_name, created_at) (SELECT user_id, user_name, created_at FROM feed_infos_bak);
2) 在my.ini(Linux:my.cnf)中加入下面几句话。
[server]
init-file=${path}/init.file
${path}是放置init-file的路径。
重启MySQL,就会发现feed_infos_bak表中的数据成功还原到feed_infos表里了。
[b]参考文献:[/b]
[url]http://blog.youkuaiyun.com/yueliangdao0608/archive/2008/04/19/2306778.aspx[/url]
[url]http://www.sofee.cn/blog/2007/07/18/91/[/url]
[url]http://dev.mysql.com/doc/refman/5.1/en/create-event.html[/url]
[url]http://www.mysql-china.com/viewthread.php?tid=948&extra=page%3D1[/url]
全文完。
---------广告分隔线--------------