最近,我们正在努力将我们的软件从普通PC服务器迁移到一种使用Disk on module (DOM)而不是硬盘驱动器的嵌入式系统。
我的同事坚持认为,由于DOM只能支持大约100万次写入操作,我们应该完全在RAM磁盘上运行我们的数据库并将数据库备份到DOM。
有3种触发备份的方法:
用户触发器
每30分钟
每次在数据库中有一些添加/更新/删除操作
我们预计用户只会在安装系统时修改数据库,我想也许postgresql不会经常写这个。
但我对postgresql了解不多,我无法判断它是否值得所有这些麻烦以及哪种方法更好。
你怎么看?
答案 0 :(得分:1)
假设关于DOM写周期的声明是真的,我无法评论,那么这将无法正常工作。 PostgreSQL假定它可以随时编写任何想要的东西(即使没有发生逻辑更新),并且你没有真正的机会让它与你提到的3个触发器一致。
你可以做的是让整个东西在RAM磁盘上运行并让一些操作系统进程将原子备份到永久存储器。这需要仔细的文件系统和内核支持。如果您的设备在大多数情况下处于开启状态,这可能会有效,但如果您像电视一样打开和关闭这种设备可能不太好,因为恢复时间可能很烦人。
替代方案是使用更像嵌入式的RDBMS(例如SQLite),或者使用可以处理PostgreSQL的存储系统,例如最近的固态驱动器,尽管有些SSD具有伪造的缓存设置,可能使它们不适合PostgreSQL。 / p>
答案 1 :(得分:1)