我正在使用raspberry PI进行我的项目之一,它从micro SD卡启动。应用程序将事务记录在c ++数据结构中,然后存储到microsd卡内的sql数据库中。我不能放弃这些数据,因为它是金融交易。
这里的问题是备用电源仅可用30秒。我可以检测到电源故障事件并启动关机。但我不确定在将数据安全地写入sql db之后是否会在30秒内关闭。
我也有兴趣最小化微SD卡的写周期。
我见过互联网路由器使用linux但可以随时安全地拔掉插头。我认为他们使用Overlays。
如果这是重要的信息,是不是可以给它一个互联网连接备份它?如果无法上网,那么您不应该在同一张SD卡上安装操作系统和重要数据。您不知道哪种类型的崩溃可能会破坏数据。
解:
有两个SD卡或两个数据存储单元。让操作系统运行一个,当启动一个事务时,让操作系统访问另一个SD卡来执行事务。只有当操作系统完成第二张SD卡时才会说明事务成功。如果检测到电源丢失,操作系统不应启动事务。我假设没有任何交易需要接近30秒(它应该永远不会花那么长时间)。如果在断电期间发生交易,它应该完成交易,然后说明它成功,但拒绝接受更多的条目。如果确实需要1个SD卡,则将它们保存在单独的分区中,但具有如上所述的交互性。
当然,这并不直接解决关机问题。现在,Idk你的覆盆子PI实现发生了什么,但关闭它并写入SD卡不应该花费近30秒。如果是这样,那么就会发生另一个问题。电脑非常快。当我们不知道写什么时,“最小化SD卡写入”是一个非常模糊的问题。