当前位置:  技术问答>linux和unix

我们的产品是基于linux的,设备非正常掉电后,修改的数据不会被保存,请问怎么办?

    来源: 互联网  发布时间:2016-11-08

    本文导语:  我是买的开发板做的产品,用yaffs文件系统,ramdisk是内存文件系统,可能是运行过程中内存中修改的数据没有直接存储起来,直接掉电后,内存中修改的数据丢失了。而reboot这样的重启指令是可以保存数据的,请问有...

我是买的开发板做的产品,用yaffs文件系统,ramdisk是内存文件系统,可能是运行过程中内存中修改的数据没有直接存储起来,直接掉电后,内存中修改的数据丢失了。而reboot这样的重启指令是可以保存数据的,请问有什么办法能够直接每次修改数据都保存起来。而不会照成数据丢失。

|
应该掉电是随机性的,系统不知道一下子就当掉了,而运行reboot命令是已经告知了系统要重启,让系统可以先进行一些必要的工作。比如保存ramdisk的数据到flash上。
对于掉电,可以
1. 程序上可以每隔一段时间把需要备份的数据保存到flash上,这种方案好处是不用增加成本,缺点是最后一次成功备份后,后面更新的数据会丢失。
2. 还可以在硬件上加一个小电池,当开发板断电后,可以利用小电池短暂的电源供应维持系统运行到数据备份成功。这种会增加成本。

|
sqlite3 数据库我不了解,可就你这问题来看,一定是事务没有处理好。
数据库事务的开始是第一个DML语句的执行
数据库事务的结束是遇到以下事务之一
1.执行commit或rollback
2.执行一条DEL或DDL语句(自动commit)
3.正常退出数据库
4.数据库系统关闭
每次正常关机前,数据库肯定要现正常退出。所以事务肯定处理完毕,数据保存了。
而断电会导致期间的数据全部丢失,肯定是由于始终没有结束事务导致的(也期间的动作始终没有commit)

|
sync,强制同步文件系统

|


貌似可行~~

|
首先 存储应选用yaffs系统

其次,修改数据后应立即写回硬盘,sync 或者 flush

|
我用的就是Sqlite3没有发现你的这样问题,文件系统和你提供也相同。

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • jQuery产品展示控件 jqueryBook
  • 企业不用开源产品的原因??
  • 含大段文字(如产品介绍)的版面和存储的问题
  • 跪求国内外反垃圾邮件产品排名!邮件服务器是:(UNIX+sendmail)
  • IBM的产品好次,不知道大家是否有同感
  • 产品原型制作工具 FluidIA
  • 我有好多好的软件产品,但是不知道怎么去销售,请帮忙!
  • 目前流行的LDAP服务器产品有哪些?请赐教。
  • 关注!关注qtopia2.2.0的产品使用上的费用问题!
  • Symbian^3产品开发工具包
  • 怎样在不使用offices产品开启WORD下实现将WORD内容转化为图片的格式
  • 调查:从各个方面综合来看,哪种Linux产品最好。
  • 山东华为郑州办事处诚招业务与软件产品线技术支持人员
  • jQuery产品间断向下滚动效果核心代码
  • SimpleDB 的替代产品 M/DB
  • 请问用linux的朋友,你们都开发的些什么产品?
  • 使用2.4内核开发linux产品的人还多么?
  • 想学习LINUX系统,公司新产品使用的系统,到那里下载 谢谢
  • Oracle商务智能套件产品简介
  • 把java产品移植到mips体系下的的Linux上,请教高手指教。


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3