社区
Linux/Unix社区
帖子详情
我们的产品是基于linux的,设备非正常掉电后,修改的数据不会被保存,请问怎么办?
犇犇犇程序猿
2011-02-11 09:58:29
我是买的开发板做的产品,用yaffs文件系统,ramdisk是内存文件系统,可能是运行过程中内存中修改的数据没有直接存储起来,直接掉电后,内存中修改的数据丢失了。而reboot这样的重启指令是可以保存数据的,请问有什么办法能够直接每次修改数据都保存起来。而不会照成数据丢失。
...全文
573
16
打赏
收藏
我们的产品是基于linux的,设备非正常掉电后,修改的数据不会被保存,请问怎么办?
我是买的开发板做的产品,用yaffs文件系统,ramdisk是内存文件系统,可能是运行过程中内存中修改的数据没有直接存储起来,直接掉电后,内存中修改的数据丢失了。而reboot这样的重启指令是可以保存数据的,请问有什么办法能够直接每次修改数据都保存起来。而不会照成数据丢失。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yong_f
2011-02-21
打赏
举报
回复
我用的就是Sqlite3没有发现你的这样问题,文件系统和你提供也相同。
犇犇犇程序猿
2011-02-21
打赏
举报
回复
不好意思最近比较忙没有看回帖:
TO 10楼:事实是我每次写数据都关闭了sqlite3,但是依然不行,
TO 12楼:我们做的是无线网络优化监控设备,一次就上几百上千套,当然是无人值守的。但是掉电情况是很有可能发生的,例如小区停电什么的。linux当掉,除非自己程序弄的(例如无限fork),否则我做这么久都没有见过。
TO 13楼:我现在的想法是在服务器做同步,这样会比较好。
犇犇犇程序猿
2011-02-21
打赏
举报
回复
TO 15: 哪可能是采购的核心板的问题了,呵呵!
chenbin200818
2011-02-18
打赏
举报
回复
首先 存储应选用yaffs系统
其次,修改数据后应立即写回硬盘,sync 或者 flush
幽饮烛
2011-02-13
打赏
举报
回复
要赚钱,没有 UPS 怎么行呢?
直接断电?谁那么清闲去拔电源。。。。
非人为断电?重要的机器都会用 UPS
fzc115100
2011-02-12
打赏
举报
回复
[Quote=引用 9 楼 leeyiqun 的回复:]
应该掉电是随机性的,系统不知道一下子就当掉了,而运行reboot命令是已经告知了系统要重启,让系统可以先进行一些必要的工作。比如保存ramdisk的数据到flash上。
对于掉电,可以
1. 程序上可以每隔一段时间把需要备份的数据保存到flash上,这种方案好处是不用增加成本,缺点是最后一次成功备份后,后面更新的数据会丢失。
2. 还可以在硬件上加一个小电池,当开发板断电后,可以利用小电池短……
[/Quote]
貌似可行~~
犇犇犇程序猿
2011-02-11
打赏
举报
回复
sqlite3 数据库。
linsen_519
2011-02-11
打赏
举报
回复
数据存在哪里啊?数据库?文件?
犇犇犇程序猿
2011-02-11
打赏
举报
回复
yaffs基于flash的文件系统,按道理应该是直接操作在flash上的,应该是及时修改的。
犇犇犇程序猿
2011-02-11
打赏
举报
回复
查了很多资料没有遇到过类似的问题。很奇怪。用的是yaffs文件系统,不是ramdisk.
linsen_519
2011-02-11
打赏
举报
回复
sqlite3 数据库我不了解,可就你这问题来看,一定是事务没有处理好。
数据库事务的开始是第一个DML语句的执行
数据库事务的结束是遇到以下事务之一
1.执行commit或rollback
2.执行一条DEL或DDL语句(自动commit)
3.正常退出数据库
4.数据库系统关闭
每次正常关机前,数据库肯定要现正常退出。所以事务肯定处理完毕,数据保存了。
而断电会导致期间的数据全部丢失,肯定是由于始终没有结束事务导致的(也期间的动作始终没有commit)
leeyiqun
2011-02-11
打赏
举报
回复
应该掉电是随机性的,系统不知道一下子就当掉了,而运行reboot命令是已经告知了系统要重启,让系统可以先进行一些必要的工作。比如保存ramdisk的数据到flash上。
对于掉电,可以
1. 程序上可以每隔一段时间把需要备份的数据保存到flash上,这种方案好处是不用增加成本,缺点是最后一次成功备份后,后面更新的数据会丢失。
2. 还可以在硬件上加一个小电池,当开发板断电后,可以利用小电池短暂的电源供应维持系统运行到数据备份成功。这种会增加成本。
l2y3n2
2011-02-11
打赏
举报
回复
sync,强制同步文件系统
bluesky12312388
2011-02-11
打赏
举报
回复
不清楚!
犇犇犇程序猿
2011-02-11
打赏
举报
回复
坐等有同样经历的呵呵。不行就换核心板了。
linux
var目录
掉电
,
linux
修改
的文件在
掉电
时会损坏的分析与处理
我们开发的嵌入式
产品
进入测试阶段,发现多次开关机之后,有两个文件会损坏。我们发现在app的关机处理函数里面,会对两个文件进行写入操作,然后就切断电源。这种情况下很有可能文件还没写入完成,就已经断电了。现在
修改
成以下的做法:1、对文件进行写入操作2、system("sync");3、sleep(2);4、system("poweroff");5、需要在内核驱动中实现切断电源的操作:SYSCALL_D...
linux
内存加速硬盘缓存,
linux
块
设备
加速缓存之bcache
linux
块
设备
加速缓存之bcache什么是bcache转载请注明出处:http://blog.csdn.net/liumangxiongbcache是
linux
内核块层cache。它使用类似SSD来作为HDD硬盘的cache,从而起到加速作用。HDD硬盘便宜并且空间更大,SSD速度快但更贵。如果能两者兼得,岂不快哉?bcache能做到。bcache使用SSD作为其他块
设备
cache。类似ZFS的...
如何防止嵌入式系统
数据
丢失与损坏?
前面也提到了,
掉电
过程是
数据
丢失和损坏比较高发的状态,一方面离不开硬件上
掉电
备电电源的相对稳定性和持久性,另一方面也需要软件部分最好
掉电
过程系统完整的收尾工作,最常见的问题就是正在
掉电
,你还在使劲的写文件或者其他改变存储介质的操作,运气好可能只是文件写少了;常见的闪存
产品
如NAND和NOR闪存都有固定的P/E周期数量,一般在几千到几十万次之间,所以如果频繁擦写就会导致损坏,最终也会使得
数据
丢失,另外,闪存的寿命还受到温度、电压以及擦除/写入操作的影响。减少写入放大可以减少对闪存的写入操作,从而延长其寿命。
适合嵌入式
设备
的
数据
库
一、FlashDB简介FlashDB 是一款超轻量级的嵌入式
数据
库,专注于提供嵌入式
产品
的
数据
存储方案。与传统的基于文件系统的
数据
库不同,FlashDB 结合了 Flash 的特性,具有较强的性能及可靠性。并在保证极低的资源占用前提下,尽可能延长 Flash 使用寿命。FlashDB 提供两种
数据
库模式:键值
数据
库 :是一种非关系
数据
库,它将
数据
存储为键值(Key-Value)对集合,其中键作为唯...
linux
内存给hdd当缓存,
linux
块
设备
加速缓存之bcache [转]
转载请注明出处:http://blog.csdn.net/liumangxiongbcache是
linux
内核块层cache。它使用类似SSD来作为HDD硬盘的cache,从而起到加速作用。HDD硬盘便宜并且空间更大,SSD速度快但更贵。如果能两者兼得,岂不快哉?bcache能做到。bcache使用SSD作为其他块
设备
cache。类似ZFS的L2Arc,但bcache还增加了写回策略,并且是与文件...
Linux/Unix社区
23,223
社区成员
74,536
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章