Antivírus és SQL Server

Megoszlanak a vélemények azon, hogy kell e egyáltalán bármilyen antivírus program egy SQL szerverre. A két tábort megértem, azokat is, akik a mellette, illetve azokat is, akik ellene vannak. Én valahol a kettő közé sorolnám magam: ha valamilyen okból kell az antivírus program, akkor legyen helyesen beállítva – lásd később, a kivételeknél. Amennyiben nem kell, akkor kiemelten ügyelni kell arra, hogy ne érje el az internetet, ne netezzünk a szerveren, csak a legszükségesebb esetben érje el az internetet (Windows Update, bár ez WSUS esetén nem is kell), illetve csak az arra jogosultak léphessenek be a szerverre.
Egy másik érdekes dolog, ami miatt nem szeretem például a ma reggeli Symantec bug, ami az Internet Explorer használhatatlanságához vezetett. Az antivírus frissítésben található hiba miatt gyakorlatilag használhatatlanná vált a böngésző. Most képzeljük el ugyan ezt a hibát egy SQL Server esetében… belegondolni is rémisztő.

Amennyiben mégis az antivírus telepítése mellett döntünk, legalább állítsuk be azt helyesen. Évekkel ezelőtt volt egy esetem, amikor minden vasárnap hajnali 3-kor „belassult” minden SQL Server. Mire végigjártunk minden SQL-es lehetőséget (ütemezett feladatok, nagy adatáttöltés, SAN hiba, kevés erőforrás) két hét telt el és az egyetlen közös pont egy SAN volt (1000+ lemezzel), ahonnan kapták a LUN-okat. Ez vetette fel azt a kérdést, hogy itt lesz valami baj. Persze a SAN adminok mindent rendben találtak (hahahaha), majd kiderült, hogy minden héten, hajnalban – ugyan akkor, amikor az SQL lassulást tapasztaltuk – van egy full scan a teljesen SAN-on. Bingó! A közelmúltban is volt egy hasonló, amikor is a heti full scan okozott problémát, ami LATCH wait-ként jelentkezett és memória nyomásnak tünt először, majd jött a rémisztő felsimerés, hogy talán megint az antivírus okozza.

Mégis mit lehet tenni? Állítsuk be rendesen: a https://support.microsoft.com/kb/309422 oldalon elég jól össze van foglalva a dolog, de pár kiegészítésre szorul. Az alábbiakban a különböző szolgáltatások használata során futó alkalmazások, mappák, kiterjesztések kerülnek felsorolásra. Megjegyzem, hogy a file kiterjesztések eltérhetnek, amennyiben nem az ajánlott, az SQL Server üzemeltetők körében leggyakrabban elfogadottak vannak használatban.

Database Engine

Az alábbiakban a databse engine által használt kiterjesztések és mappákat soroltam fel (a teljesség igénye nélkül!):

  • *.mdf,
  • *.ndf,
  • *.ldf,
  • *.trn,
  • *.bak,
  • *.tuf,
  • *.trc,
  • %ProgramFiles%\Microsoft SQL Server\<verzió>.<instance>\MSSQL\Log\
  • %ProgramFiles%\Microsoft SQL Server\<verzió>.<instance>\MSSQL\Binn\sqlservr.exe
  • %ProgramFiles%\Microsoft SQL Server\<verzió>.<instance>\MSSQL\Binn\SQLAGENT.exe

Data Collector

Ha be van állítva a Management Data Warehouse által használt data collector, akkor az alábbiakat kell kivételként felvenni:

  • %ProgramFiles%\Microsoft SQL Server\<verzió>.<instance>\MSSQL\Binn\dcexec.exe
  • a data collector temp mappa, amit a setup során megadtunk.

Replikáció

A különböző replikációs topológiák, különböző agent-eket használnak, így fontos, hogy helyesen legyenek beállítva:

  • Distribution Agent: %ProgramFiles%\Microsoft SQL Server\<verzió>\COM\distrib.exe
  • Log Reader Agent: %ProgramFiles%\Microsoft SQL Server\<verzió>\COM\logread.exe
  • Queue Reader Agent: %ProgramFiles%\Microsoft SQL Server\<verzió>\COM\qrdrsvc.exe
  • Merge Agent: %ProgramFiles%\Microsoft SQL Server\<verzió>\COM\replmerg.exe
  • Snapshot Agent: %ProgramFiles%\Microsoft SQL Server\<verzió>\COM\snapshot.exe

 

Ezeken felül van pár egyéb speciális beállítás, de azok már túlmutatnak egy egyszerű blogbejegyzésen :-)

Update 20150226:

Vannak bizonyos gyártók, mely esetben vannak speciális beállítások. Ilyen lehet pl. az,a mikor nem engedélyezzük, hogy az SQL Server memória területében legyen olyan DLL is betöltve,ami nem az SQL Server, azaz a Microsoft által meghatározott, a program működéséhez szükséges kód. Ez hivatalosan nem is támogatott!!! Lásd: http://support.microsoft.com/kb/920925 

Add comment