MySQL重启后,内存表中的数据将一无所有。
要想即要速度,又要保存住内存表中的数据,必须定时将内存表中的数据备份到一般表中,同时,DB重启后,还需要将备份表中的数据还原到内存表中。
貌似是MySQL 5.1.6之后,MySQL开始支持EVENT处理了,可以设定自己的定时器,将内存表中的数据定期备份到一般表中。
1、备份内存表的几个步骤
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中。
2、实现MySQL重启后,内存表数据的自动还原
1) 新建一个init-file文件。
加上下面两句SQL。
千万注意:每行一条语句,万不可将一条语句分开多行写。
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表里了。
参考文献:
http://blog.csdn.net/yueliangdao0608/archive/2008/04/19/2306778.aspx
http://www.sofee.cn/blog/2007/07/18/91/
http://dev.mysql.com/doc/refman/5.1/en/create-event.html
http://www.mysql-china.com/viewthread.php?tid=948&extra=page%3D1
全文完。
---------广告分隔线--------------
分享到:
相关推荐
备份过程可能包括优化表、锁定表以防止并发写入,以及分块读取和写入以避免内存溢出。 2. **还原**:导入.sql文件,将数据恢复到数据库中。这个过程可能涉及解析SQL脚本,按顺序执行INSERT、UPDATE、DELETE等操作。...
MySQL提供了多种备份策略和工具,本说明主要介绍的是使用MySQLhotcopy和mysqladmin进行完整备份和日志备份的方法。 1. **完整备份** 完整备份是指备份整个数据库,包括所有表结构和数据。在MySQL中,`...
本文档主要介绍了MySQL数据库的备份与还原脚本说明,包括完整备份和日志备份两部分。 完整备份 完整备份采用免费工具MySQLhotcopy,直接拷贝数据库文件(*.FRM、*.MYD、*.MYI)。在进行拷贝文件时,会锁定需要进行...
Navicat Premium 12提供了全面的备份解决方案,用户可以设置定时任务自动备份数据库,以防止意外数据丢失。备份过程可以是完全备份,也可以是增量或差异备份,以节省存储空间。恢复方面,Navicat支持从备份文件还原...
Freezer是备份还原DR即服务平台,可帮助您自动执行数据备份和还原过程。 提供以下功能: 使用时间点快照备份文件系统 支持强加密:AES-256-CFB 直接备份文件系统树(无卷快照) 使用lvm快照将日记的MongoDB目录...
3. **存储引擎**:MySQL支持多种存储引擎,如InnoDB(默认,支持事务处理和行级锁定)、MyISAM(快速读取但不支持事务)和MEMORY(数据存储在内存中)。InnoDB在MySQL 8.0中得到了进一步增强,提供了更好的性能和更...
MySQL 的运行状态则可以使用各种工具,比如内置的性能 schema 表,或者第三方工具如 MySQL Enterprise Monitor,这些工具能够提供关于查询性能、内存使用、磁盘 I/O 等关键指标的实时信息,帮助管理员及时发现和解决...
在使用RDS for MySQL进行数据库备份和还原时,阿里云提供了一套完整的解决方案。用户可以通过RDS管理控制台或使用API和SDK来管理数据库。备份和还原有逻辑备份和物理备份两种方式,其中物理备份仅限通过RDS管理...
2. 灾难恢复:了解在数据丢失情况下如何快速恢复,以及如何设置定期自动备份。 九、安全性 1. 用户管理:创建、删除和管理用户,设置复杂的密码策略。 2. 权限控制:理解GRANT和REVOKE的使用,实现细粒度的权限控制...
- 如果是数据备份,先停止MySQL服务,然后将数据文件导入到新的MySQL实例中,或者使用恢复工具进行还原。 - 配置好防火墙规则,允许必要的网络访问。 - 定期进行数据备份,以防数据丢失。 总的来说,"mysql51.zip...
创建数据库和表使用CREATE DATABASE和CREATE TABLE语句,可以定义字段(列)、数据类型、主键等属性。 4. SQL语言:SQL(Structured Query Language)是用于操作数据库的语言,包括DQL(查询数据)、DML(增删改...
1.1 **简介**:这一章节为初学者介绍了Aurora-MySQL的基本概念,阐述了其与传统MySQL数据库的区别,以及在AWS云环境中的优势,如自动备份、故障切换和扩展性。 1.2 **创建Amazon Aurora数据库集群**:创建Aurora...
2. **硬件需求**:虽然32位系统通常对内存(RAM)支持有限,MySQL 5.5.27版本对硬件的要求相对较低,但建议至少有1GB RAM以保证良好的性能。 3. **下载与安装**:文件名"mysql-5.5.27-win32.msi"表明这是MySQL ...
- 数据恢复:从备份文件还原数据,确保数据安全。 12. MySQL扩展功能 - 触发器:自动执行特定操作,如在数据更改时触发其他操作。 - 存储过程:预编译的SQL语句集合,可复用,提高效率。 - 事件调度器:定期...
- Memory:数据存储在内存中,适合临时表和快速查询。 - Archive:适合存储大量历史数据,只支持INSERT和SELECT操作。 7. **性能优化** - 使用合适的索引策略。 - 减少JOIN操作,优化查询语句。 - 使用EXPLAIN...
使用工具如`pt-query-digest`和`mysqladmin`监控MySQL的运行状态,包括查询性能、内存使用和错误日志。遇到问题时,根据错误信息定位并解决。 10. **InnoDB存储引擎** MySQL的InnoDB存储引擎支持事务处理和行级...
此外,还有CREATE DATABASE和CREATE TABLE用于创建数据库和表,以及ALTER TABLE用于修改表结构。 四、索引与查询优化 索引是提高查询速度的关键。可以为一个或多个字段创建索引,常见的索引类型有主键索引、唯一...
2. 安装与配置:学习笔记会介绍如何在不同的操作系统上安装MySQL,包括Windows、Linux和Mac OS,并讲解配置文件my.cnf的设置,如调整内存使用、设置端口和用户权限。 3. 数据类型:MySQL支持多种数据类型,如数值...