`
netfork
  • 浏览: 488096 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

MySQL内存表自动备份和还原

    博客分类:
  • DB
阅读更多
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


全文完。


---------广告分隔线--------------
分享到:
评论
1 楼 hjb510 2011-03-10  
很不错的东西啊!收下来在说啊!

相关推荐

    基于thinkphp的mysql数据库的备份与还原类(好用)

    备份过程可能包括优化表、锁定表以防止并发写入,以及分块读取和写入以避免内存溢出。 2. **还原**:导入.sql文件,将数据恢复到数据库中。这个过程可能涉及解析SQL脚本,按顺序执行INSERT、UPDATE、DELETE等操作。...

    MySQL数据库备份与还原脚本说明

    MySQL提供了多种备份策略和工具,本说明主要介绍的是使用MySQLhotcopy和mysqladmin进行完整备份和日志备份的方法。 1. **完整备份** 完整备份是指备份整个数据库,包括所有表结构和数据。在MySQL中,`...

    MySQL数据库备份与还原脚本说明.pdf

    本文档主要介绍了MySQL数据库的备份与还原脚本说明,包括完整备份和日志备份两部分。 完整备份 完整备份采用免费工具MySQLhotcopy,直接拷贝数据库文件(*.FRM、*.MYD、*.MYI)。在进行拷贝文件时,会锁定需要进行...

    Mysql数据库管理备份与恢复工具Navicat Premium 12.rar

    Navicat Premium 12提供了全面的备份解决方案,用户可以设置定时任务自动备份数据库,以防止意外数据丢失。备份过程可以是完全备份,也可以是增量或差异备份,以节省存储空间。恢复方面,Navicat支持从备份文件还原...

    freezer:适用于文件系统,MongoDB,MySQL的OpenStack Swift增量备份和还原自动化工具。 LVM快照和加密支持。 在opendev.org上维护的代码镜像

    Freezer是备份还原DR即服务平台,可帮助您自动执行数据备份和还原过程。 提供以下功能: 使用时间点快照备份文件系统 支持强加密:AES-256-CFB 直接备份文件系统树(无卷快照) 使用lvm快照将日记的MongoDB目录...

    mysql8.0官方文档离线版

    3. **存储引擎**:MySQL支持多种存储引擎,如InnoDB(默认,支持事务处理和行级锁定)、MyISAM(快速读取但不支持事务)和MEMORY(数据存储在内存中)。InnoDB在MySQL 8.0中得到了进一步增强,提供了更好的性能和更...

    mysql基础知识培训

    MySQL 的运行状态则可以使用各种工具,比如内置的性能 schema 表,或者第三方工具如 MySQL Enterprise Monitor,这些工具能够提供关于查询性能、内存使用、磁盘 I/O 等关键指标的实时信息,帮助管理员及时发现和解决...

    云数据库 RDS 版

    在使用RDS for MySQL进行数据库备份和还原时,阿里云提供了一套完整的解决方案。用户可以通过RDS管理控制台或使用API和SDK来管理数据库。备份和还原有逻辑备份和物理备份两种方式,其中物理备份仅限通过RDS管理...

    mysql从零掘金底层逻辑.rar

    2. 灾难恢复:了解在数据丢失情况下如何快速恢复,以及如何设置定期自动备份。 九、安全性 1. 用户管理:创建、删除和管理用户,设置复杂的密码策略。 2. 权限控制:理解GRANT和REVOKE的使用,实现细粒度的权限控制...

    mysql51.zip

    - 如果是数据备份,先停止MySQL服务,然后将数据文件导入到新的MySQL实例中,或者使用恢复工具进行还原。 - 配置好防火墙规则,允许必要的网络访问。 - 定期进行数据备份,以防数据丢失。 总的来说,"mysql51.zip...

    MYSQL学习手册

    创建数据库和表使用CREATE DATABASE和CREATE TABLE语句,可以定义字段(列)、数据类型、主键等属性。 4. SQL语言:SQL(Structured Query Language)是用于操作数据库的语言,包括DQL(查询数据)、DML(增删改...

    Aurora-MySQL操作指南V2.0.pdf

    1.1 **简介**:这一章节为初学者介绍了Aurora-MySQL的基本概念,阐述了其与传统MySQL数据库的区别,以及在AWS云环境中的优势,如自动备份、故障切换和扩展性。 1.2 **创建Amazon Aurora数据库集群**:创建Aurora...

    mysql安装包(32位)

    2. **硬件需求**:虽然32位系统通常对内存(RAM)支持有限,MySQL 5.5.27版本对硬件的要求相对较低,但建议至少有1GB RAM以保证良好的性能。 3. **下载与安装**:文件名"mysql-5.5.27-win32.msi"表明这是MySQL ...

    MYSQL使用手册MYSQL使用手册

    - 数据恢复:从备份文件还原数据,确保数据安全。 12. MySQL扩展功能 - 触发器:自动执行特定操作,如在数据更改时触发其他操作。 - 存储过程:预编译的SQL语句集合,可复用,提高效率。 - 事件调度器:定期...

    mysql面试-高质量mysql面试题汇总-常见mysql面试题

    - Memory:数据存储在内存中,适合临时表和快速查询。 - Archive:适合存储大量历史数据,只支持INSERT和SELECT操作。 7. **性能优化** - 使用合适的索引策略。 - 减少JOIN操作,优化查询语句。 - 使用EXPLAIN...

    linux版 mysql

    使用工具如`pt-query-digest`和`mysqladmin`监控MySQL的运行状态,包括查询性能、内存使用和错误日志。遇到问题时,根据错误信息定位并解决。 10. **InnoDB存储引擎** MySQL的InnoDB存储引擎支持事务处理和行级...

    mysql 中文教程

    此外,还有CREATE DATABASE和CREATE TABLE用于创建数据库和表,以及ALTER TABLE用于修改表结构。 四、索引与查询优化 索引是提高查询速度的关键。可以为一个或多个字段创建索引,常见的索引类型有主键索引、唯一...

    这是一本 MySQL 学习笔记.zip

    2. 安装与配置:学习笔记会介绍如何在不同的操作系统上安装MySQL,包括Windows、Linux和Mac OS,并讲解配置文件my.cnf的设置,如调整内存使用、设置端口和用户权限。 3. 数据类型:MySQL支持多种数据类型,如数值...

Global site tag (gtag.js) - Google Analytics