有什么数据库扛断电能力最强吗?

317 天前
 bthulu

服务器在客户厂里, 客户没有机房, 就放在厂子机器旁边.

每天下班后, 客户员工从来不会去关闭电脑, 都是直接拉闸整厂断电.

系统稳定运行了大半年后, 从最近开始, 每隔几个月, mysql 就报 redo 日志异常无法启动, 需手动删除日志后才能启动, 这有点恶心了.

有没有在同样场景下, 试过 oracle, sqlserver, postgresql, sqlite 这些的同学, 这些数据库存不存在这个问题?

17184 次点击
所在节点    程序员
164 条回复
leegoo
317 天前
如果你的数据不是特别重要,并且在软件层面有处理这个机制(你可以理解为重试)
那么可以把 mysql 的事务保存的开关关闭。
之前简单测试过,关掉这个之后 最起码在断电情况下,数据库是可以启动的。而不是数据库直接损坏等..
然后 mysql 有一个 redo 日志的保留个数把,可以搞短一点。

这个前提是你的数据不是特别重要,并且在软件层面有处理这个机制(你可以理解为重试)

这是最简单的做法
funky
317 天前
PostgreSQL 带有 checkpoint recovery 的推荐用这个
auhah
317 天前
先把锅甩出去再说。。服务跑得起来,硬件天天这么搞也受不了
hwb
317 天前
考虑到你的场景,难道不是买出去之后,在某个时间段人为出点 bug ,然后排查两天后反馈给用户,然后顺便卖个 UPS ?
cxdLand
317 天前
开机删除 redo
Ghostisbored
317 天前
开机脚本删除
ming159
317 天前
同样的场景, 我现在换成 PostgreSQL 了. 暴力断电的情况下,数据库起不来的情况比 MySQL 好那么一丢丢丢.
另外既然只需要删除 redo log 就行的话,其实你可以这么干
1. 软件上增加检测机制,启动时,检测 MySQL 是否正常启动,
2. 当 MySQL 未正常启动时,给个提示框,让人选择是否删除指定的 redo 日志. 然后重启 MySQL 服务
只要你有弹框提示,他们点几次就会操作了
glcolof
317 天前
一台 UPS 才几百块钱,性价比很高呀。
jimrok
317 天前
你这个场景就是 sqlite ,你知道 sqllite 是怎么发明的吗?写这个数据库的人就是军舰上的炮手,他们原来用的是 informix 数据库,经常演习的时候出故障。如果开一炮,硬盘就坏了的话,那军舰就直接等着被嘎了。所以这个哥们想能不能把数据都加载到内存里,硬盘嘎了至少军舰还能开火。你可以试试把生产数据直接落入文件里,每次启动时候载入,运行的时候,直接用 sqlite ,只要文件还能读取,系统起来就没事。
lrh3321
317 天前
启动 MySQL 前,先去检查 Redo Log ,不完整就删掉一部分。ExecStartPre
cnbatch
317 天前
既然是在这种工厂使用数据库,那么性能要求应该不高,笔记本电脑大概够用

不如告诉你的老板,买些笔记本电脑回来,替换掉现有的机器,然后把换下来的机器卖掉换钱,这样“以一换一”只要控制好价格就不会亏损,价格敏感的话还可以从二手商家买二手笔记本电脑

记得设置好通电自启、合盖不待机不休眠
Lynntox
317 天前
现在看来是数据有点问题,但是长远来看,硬件会不会坏啊,以后坏了怎么说啊,他们掏钱还是你们掏钱,比较好的解决就是要么服务器放在一个别的地方,业务去访问数据就可以,要么就是单独拉一路电和生产隔离(哪家工厂没电工啊,他们闲的要死)
felixcode
317 天前
不是正常关机的话,再启动软件就需要问你要授权码
M7w2kh5a58AhKlcT
317 天前
@iv8d #2 以前项目上用过两个节点 oracle rac 集群,关机后一个节点起不来了。
syubo2810
317 天前
最优解:ups ,大概 300-500 成本
贴膏药:每次系统其他执行一个触发式脚本,删了 redo 日志
ntedshen
317 天前
不担心数据完整性的话。。。
感觉开个 myisam 然后每次开机都先执行一次全表检查和修复,理论上就能解决大部分问题。。。
没有事务那自然也就避免了靠日志保证数据完整然后日志又崩了这种事。。。

话说如果规模不大的话甚至可以自己整个像数据库的库吧,随便序列化一下往个文件一存不就完了。。。
zhujinliang
317 天前
弄一个带电池的小主机,把数据库装这个机器上面
zhangeric
317 天前
上个 ups 的事.
roundgis
317 天前
@jimrok

https://en.m.wikipedia.org/wiki/D._Richard_Hipp

人家是正兒八經的 cs phd

當年是海軍的外包商之一 哪裡是什麼炮手
esile
317 天前
关闭缓存可能会好点吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1090399

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX