Wir haben PCs mit SQL Server (2008 SP4 und 2016 SP1), die regelmäßig an Leistung verlieren. Offensichtlich führt dies manchmal zu (Index-) Beschädigungen der SQL Server-Datenbank, die wir anschließend wiederherstellen müssen.
Mir ist bewusst, dass SQL Server nicht für solche Szenarien entwickelt wurde und die richtige Lösung darin besteht, die Ursache des Stromausfalls zu beheben (mehr dazu weiter unten, wenn Sie neugierig sind). Gibt es dennoch Optimierungsoptionen in SQL Server, die ich festlegen kann, um das Risiko einer Datenbankbeschädigung bei Stromausfall zu verringern ?
Hintergrund: Der "PC" ist ein Windows-Tablet, das auf einem Gabelstapler montiert ist. Wenn der Benutzer den Gabelstapler ausschaltet, verliert das Tablet an Strom. Wir haben versucht, den Benutzern beizubringen, Windows vor dem Ausschalten des Gabelstaplers ordnungsgemäß herunterzufahren, sind jedoch gescheitert (wahrscheinlich, weil das Ausschalten die meiste Zeit funktioniert). Wir untersuchen derzeit auch andere Optionen, wie das Hinzufügen einer USV, die dem Tablet signalisiert, dass es bei Stromausfall heruntergefahren werden soll.
quelle
Wenn das Tablet über einen funktionierenden Akku verfügt , können Sie Windows so konfigurieren, dass es herunterfährt, wenn der Akku fast leer ist .
Wenn das Tablet über einen nicht funktionierenden Akku verfügt, sollten Sie den Akku austauschen. (Ich hatte solche Laptops - Sie wären überrascht, wie günstig Ersatzbatterien bei eBay sein können. Sie funktionieren nicht so gut wie OEMs, aber hey, in dieser Situation ist alles besser als nichts.)
Wenn das Tablet überhaupt nicht über Akkufunktionen verfügt , sollten Sie eine kleine unterbrechungsfreie Stromversorgung (USV) mit USB-Ausgängen hinzufügen, die mit Windows kommunizieren kann, um festzustellen, ob es mit Akkustrom betrieben wird. (Zum Beispiel habe ich meinen eigenen Desktop so konfiguriert, dass er herunterfährt, wenn die USV fast leer ist. Auf diese Weise wird die USV bei einem Stromausfall heruntergefahren, auch wenn ich nicht zu Hause bin.)
Wenn keine davon in Frage kommt, hat man ein bisschen Pech. Es ist ein altes Whitepaper, aber in den SQL Server 2000-E / A-Grundlagen von Microsoft wird im Grunde erklärt, dass Sie ein E / A-Subsystem benötigen, das ordnungsgemäß mit Stromausfällen umgehen kann.
Es gibt Optionen, mit denen Sie das Risiko erhöhen können - z. B. verzögerte Haltbarkeit oder Tabellen, die nur aus Arbeitsspeicher (nicht dauerhaft) bestehen -. Standardmäßig versucht SQL Server jedoch bereits, die Zuverlässigkeit bei jedem Schreiben in das Transaktionsprotokoll zu maximieren. Wenn auch das Schreiben von Transaktionsprotokollen aufgrund zufälliger Stromausfälle nicht garantiert werden kann, geben Sie die 100 USD für eine UPS-Batterie aus.
quelle
Angenommen, Sie haben eine lokale Datenbank auf dem Gabelstapler und keinen Server, weil die drahtlosen Verbindungen fleckig sind? Offensichtlich wäre es die bevorzugte Lösung, SQL aus dem Stapler zu holen.
Wie auch immer, Brent schlug vor, das Tablet so einzustellen, dass es sich nach x Minuten im Akkubetrieb oder nach ähnlichen Kriterien von selbst ausschaltet.
Andernfalls ist eine kleine USV, die ein normales Herunterfahren auslösen kann, in diesem Fall wahrscheinlich die beste Wahl. Sich bei solchen Dingen auf Benutzer verlassen zu können, ist eine Frage des Scheiterns.
quelle
Das zugrunde liegende Betriebssystem muss entweder einen erfolgreichen Schreibvorgang garantieren, oder es wird ein Fehler zurückgegeben. Das Betriebssystem ist wiederum auf Treiber angewiesen, die wiederum auf Firmware angewiesen sind, die auf Hardware angewiesen ist. Wenn entweder die Treiber oder die Firmware oder die Hardware vorhanden sind, kann Windows oder SQL Server nichts dagegen tun.
Aus diesem Grund müssen Sie sich beim Hersteller des Treibers / der Firmware / der Hardware erkundigen.
Auch die Schreibreihenfolge muss über alle Ebenen hinweg gewährleistet sein, damit auch diese überprüft werden müssen.
Selbst batteriegepufferte Caches können ausfallen, z. B. während der Stürme in New York. Einige Rechenzentren waren tagelang nicht erreichbar, und die Batterien wären aufgebraucht
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
quelle
So erweitern Sie die anderen Antworten:
Versuchen Sie zunächst, den SQL-Code vom Gabelstapler zu entfernen, wenn dies möglich ist. Denken Sie, dass die Wiederherstellung nach einem Stromausfall schlecht ist. Versuchen Sie es, nachdem der Laptop mehr als 7.000 Pfund überlastet hat. Mit stundenlanger Lageraktivität, nicht gesichert ...
Zweitens sollte ein Mechanismus vorhanden sein, mit dem der Laptop nach x-maligem Laden des Akkus automatisch herunterfährt.
Drittens, wäre es eine Option, den Laptop an eine nicht geschaltete Stromversorgung des Gabelstaplers anzuschließen? Beachten Sie unbedingt die Sicherheitsbestimmungen (die Umgebung erfordert möglicherweise, dass der Gabelstapler ausgeschaltet ist) und wie lange der Gabelstapler zwischen den Einsätzen steht (insbesondere an Wochenenden und Feiertagen), um ein Entladen der Maschinenbatterie zu vermeiden.
quelle