У нас есть ПК с SQL Server (2008 SP4 и 2016 SP1), которые регулярно теряют энергию. Очевидно, что это иногда приводит к (индексации) повреждению базы данных SQL Server, которую мы должны восстановить после этого.
Мне известно, что SQL Server не предназначен для таких сценариев, и правильное решение состоит в том, чтобы устранить причину потери питания (подробнее об этом ниже, если вам интересно). Тем не менее, есть ли какие-либо параметры настройки в SQL Server, которые я могу установить, чтобы снизить риск повреждения базы данных при потере питания ?
Справочная информация: «ПК» - это планшет Windows, установленный на погрузчике. Когда пользователь выключает вилочный погрузчик, планшет теряет питание. Мы пытались научить пользователей правильно выключать Windows перед выключением вилочного погрузчика, но не смогли (вероятно, потому, что простое отключение «работает» большую часть времени). В настоящее время мы также изучаем другие варианты, такие как добавление ИБП, который сигнализирует планшету о необходимости отключения питания.
источник
Если у планшета работающий аккумулятор , вы можете настроить Windows на отключение при низком заряде аккумулятора .
Если у планшета не работает батарея , подумайте о замене батареи. (У меня были такие ноутбуки - вы удивитесь, насколько недорогие сменные батареи могут быть на eBay. Они не работают так же хорошо, как OEM, но в этой ситуации все лучше, чем ничего.)
Если у планшета вообще нет возможностей батареи , рассмотрите возможность добавления небольшого источника бесперебойного питания (ИБП) с выходами USB, который может связываться с Windows, чтобы сообщить ему, когда он работает от батареи. (Например, у меня есть собственный рабочий стол, настроенный на отключение при низком заряде батареи ИБП - таким образом, он отключается при отключении питания, даже если меня нет дома.)
Если ни один из этих вариантов не подходит, вам не повезло. Это старый технический документ, но основы ввода-вывода SQL Server 2000 от Microsoft в основном объясняют, что вам нужна подсистема ввода-вывода, которая может корректно обрабатывать перебои с питанием.
Существуют варианты, которые можно использовать для увеличения риска, например таблицы с отложенной долговечностью или только для памяти (недолговечные), но по умолчанию SQL Server уже делает все возможное, чтобы максимизировать надежность при каждой записи в журнал транзакций. Если даже записи в журнале транзакций не могут быть гарантированы из-за случайных отключений питания, потратьте 100 долларов на батарею ИБП.
источник
Предполагая, что у вас локальная БД на вилочном погрузчике, а не на сервере из-за нестабильных беспроводных соединений? Очевидно, что получение SQL от вилочного погрузчика было бы предпочтительным решением.
В любом случае, как предположил Брент, выключите планшет самостоятельно после x минут работы от батареи или каких-либо аналогичных критериев.
В противном случае небольшой ИБП, который может инициировать нормальное отключение, вероятно, будет лучшим выбором в этом случае. Полагаться на пользователей в таких вещах - значит просить неудачу.
источник
Базовая ОС должна гарантировать либо успешную запись, либо возвращается ошибка. ОС, в свою очередь, полагается на драйверы, которые, в свою очередь, полагаются на встроенное ПО, которое зависит от аппаратного обеспечения. Если либо драйверы, либо встроенное ПО или аппаратное обеспечение лежат, Windows или сервер sql ничего не могут с этим поделать.
Вот почему вам нужно проверить с производителем драйвера / прошивки / оборудования.
Кроме того, порядок записи должен быть гарантирован для всех слоев, поэтому его также необходимо проверить.
Даже кэш-память с батарейным питанием может выйти из строя, например, во время нью-йоркских штормов некоторые центры обработки данных были недоступны в течение нескольких дней, и батареи могли бы разрядиться, что может привести к потере записи
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
источник
Чтобы расширить другие ответы:
Во-первых, попробуйте получить SQL от погрузчика, если это вообще возможно. Думайте, что восстановление после потери питания - это плохо, попробуйте сделать это после того, как ноутбук перевалил на 7000 фунтов. С часами складской активности на этом, не поддержанном ...
Во-вторых, в любом случае должен быть предусмотрен механизм, позволяющий ноутбуку автоматически отключаться через x раз при питании от батареи.
В-третьих, будет ли вариант подключения ноутбука к непереключенному источнику питания на погрузчике? Обязательно соблюдайте правила техники безопасности (для окружающей среды может потребоваться отключение всего с помощью ключа для вилочного погрузчика) и как долго вилочный погрузчик находится между использованиями (особенно в выходные и праздничные дни), чтобы избежать разрядки аккумулятора машины.
источник