SQL Server的崩溃恢复能力可以提高吗?


20

我们有运行SQL Server(2008 SP4和2016 SP1)的PC,这些PC经常断电。显然,这有时会导致SQL Server数据库的(索引)损坏,此后我们需要恢复该损坏。

我知道SQL Server不是为这种情况而设计的,正确的解决方案是解决掉电的原因(如果您感到好奇,请在下面进一步介绍)。但是,SQL Server中是否可以设置任何调优选项以减少断电时数据库损坏的风险


背景:“ PC”是安装在叉车上的Windows平板电脑。当用户关闭叉车时,平板电脑会断电。我们试图教会用户在关闭叉车之前正确关闭Windows,但是失败了(可能是因为大多数情况下仅将其关闭即可)。我们目前还在研究其他选择,例如添加UPS,以通知平板电脑关闭电源。

Answers:


28

我知道SQL Server不是为这种情况而设计的,正确的解决方案是解决掉电的原因[…]

实际上,它旨在处理功率损耗,这就是为什么存在诸如预写日志记录(WAL)和启动时崩溃恢复(或任何您想调用的东西)之类的原因。完成此操作的方法之一是选择不缓存平板电脑正在执行的写操作,因此会损坏。

但是,SQL Server中是否可以设置任何调优选项以减少断电时数据库损坏的风险?

不,SQL Server正在做应做的事情。您应该在SQL Server外部(驱动器缓存的Windows设置[SQL想要关闭但我们不能强迫您执行此操作],硬件/固件更新等),或者像Eric所说的那样,购买外部电源以相对地便宜,可以解决这些症状(实际问题可能是某种类型的缓存或电池备份的写入,而实际上并没有备份)。



1
我非常猜测,如果这是操作系统问题,哪个设置是罪魁祸首。(尽管我猜想这可能是旧的嵌入式OS之一,但从未检查过它们是否也具有该设置)。然后,至少出于“性能优化的原因”,至少大多数消费者级硬盘无耻地谎称已完成写入操作,因此,这些基本上没有希望。
Voo

26

如果平板电脑有可用的电池,则可以将Windows配置为在电池电量不足时关闭

如果平板电脑的电池无法正常工作,请考虑更换电池。(我曾经有过这样的笔记本电脑-您会惊讶地发现,在eBay上可以买到便宜的备用电池。它们的性能不如OEM,但在这种情况下,有总比没有好。)

如果平板电脑根本没有电池功能,请考虑添加一个带有USB输出的小型不间断电源(UPS),该电源可以与Windows通信,以告诉它使用电池供电的时间。(例如,我将自己的台式机配置为在UPS电池电量不足时关闭-这样,即使我不在家里,它也会因断电而关闭。)

如果这些都不是可选项,那么您有点不走运。这是一本旧的白皮书,但是Microsoft 的SQL Server 2000 I / O基础知识基本上解释了您需要一个可以优雅地处理断电的I / O子系统。

您可以使用一些选项来增加风险,例如“ 延迟的持久性”或“仅内存(非持久性)表”,但是默认情况下,SQL Server已经尽最大努力在每次写入事务日志时最大化可靠性。如果甚至由于随机断电而无法保证写入交易日志,请在UPS电池上花费100美元。


6

假设由于杂乱的无线连接,您在叉车上有一个本地数据库,而不是服务器?显然,使SQL脱离叉车将是更可取的解决方案。

无论如何,就像布伦特(Brent)所建议的那样,将平板电脑设置为在电池电量或某些类似条件下x分钟后自行关闭电源。

如果不这样做,那么可以启动正常关机的小型UPS可能是您的最佳选择。依靠用户执行此类操作要求失败。


1
“假设由于无线连接混乱,您在叉车上有一个本地数据库,而不是服务器?” 是的,确实如此。该应用程序使本地DB和服务器DB保持同步,这允许叉车离开WLAN覆盖的区域并仍然使用该应用程序。
Heinzi

2

底层的操作系统必须保证写入成功或返回错误。操作系统依次依赖于驱动程序,而驱动程序又依赖于固件,而固件又依赖于硬件。如果驱动程序,固件或硬件位于其中,则Windows或sql server无法执行任何操作。

这就是为什么需要与驱动程序/固件/硬件制造商联系的原因。

同样,必须确保所有层的写入顺序,因此也需要检查。

甚至电池支持的缓存也可能发生故障,例如在纽约暴风雨期间,某些数据中心几天都无法访问,并且电池将用完,可能会丢失通勤写入

https://www.postgresql.org/docs/devel/static/wal-reliability.html

https://brad.livejournal.com/2116715.html

http://rhaas.blogspot.com/2010/10/wal-reliability.html?m=1


1

扩展其他答案:

首先,尽可能尝试从叉车中删除SQL。认为从断电中恢复很不好,请在笔记本电脑超出7,000磅以上时尝试这样做。仓库活动数小时,不备份...

其次,无论如何,笔记本电脑在用完x次电池后可以自动关机的机制应该到位。

第三,是否可以将便携式计算机连接到叉车上的非开关电源?确保考虑安全法规(环境可能要求用叉车钥匙将所有物品都关闭),以及叉车在两次使用之间的停留时间(尤其是周末和节假日),以免耗尽机器电池。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.