TLS1.2 ano … ALE !!

Chcete-li na Vašem MSSQL používat připojení pomocí TLS1.2, pak můžete v případě, že máte správný update na Vašem MSSQL. Oficiálně MS podporuje TLS1.2 na Microsoft SQL 2008 a novějších, nejlépe na posledním service pack.

Nejprve je potřeba nainstalovat správný update na Microsoft SQL Server a až posléze upravovat registry a zakazovat starší protokoly SSL a TLS. Jestli nejdříve zakážete starší TLS, tak se Vám nepovede spustit SQL server, s tím, že bude generovat chybové zprávy typu

The server was unable to initialize encryption because of a problem with a security library. The security library may be missing. Verify that security.dll exists on the system.

TDSSNIClient initialization failed with error 0x139f, status code 0x80. Reason: Unable to initialize SSL support. The group or resource is not in the correct state to perform the requested operation.

Pokud aplikační team nekomunikuje s databázovým administrátorem a začne upravovat registry bez návaznosti na MSSQL update, pak nebude možné SQL server vůbec spustit.

The SQL Server Agent service terminated unexpectedly. It has done this 37892 time(s).

Counter se nám docela slušně rozběhl, služba SQL Agent se neustále automaticky restartovala, a všechny plánované úlohy přestaly fungovat – jako popis problému od zákazníka je to i poměrně dostatečné množství informací, často pracujeme s mnohem méně informacemi.

Celý problém ležel úplně jinde, jen se trochu hůř hledal. Agent se spustil a vypnul, a tak pořád dokola. V SQL Error logu nebyla žádná chyba, v agent logu taky ne, v Event logu byla pouze informace o službě, která se neočekávaně vypnula. Velkou výhodou v tuto chvíli bylo spuštění SQL agenta přes příkazovou řádku, v tu chvíli se totiž objevil zdroj všech problémů – PowerShell a poslední Windows Update. Jedná se o dva update, které způsobily problém a to KB3163245 a KB3163251. Po jejich instalaci nebylo možné spustit PowerShell, a protože SQL Server Agent obsahuje i PowerShell subsystém, tak pád PowerShell sebou nesl i pád celé služby SQL Agenta.

Reinstalace obou update vyřešila problém a SQL Agent funguje bez problémů.

PowerShell

Služba MSSQL nestartuje – chyba network library a inicializace SSL

Ale kdeže, na SQL nebylo SSL vůbec použité.

Ale schválně, co v tom tedy hledat

TDSSNIClient initialization failed with error 0x80092004, status code 0x1. Reason: Initialization failed with an infrastructure error. Check for previous errors. Cannot find object or property. TDSSNIClient initialization failed with error 0x80092004, status code 0x80. Reason: Unable to initialize SSL support. Cannot find object or property.

Celý problém spočívá v účtu pro běh SQL služby, který byl právě měněn. Účet jako takový byl naprosto v pořádku, jen bohužel přihlášení k tomuto účtu někdy dříve nefungovalo a byl tomuto účtu přiřazen dočasný windows profil. Tento profil už v systému zůstal a pokaždé se tento účet přihlásit do dočasného profilu a v takovém případě služby MS SQL serveru nenastartují. Stačí tedy smazat dočasný profil v nastavení počítače a je hotovo.

profily

 

 

Chyba “Profile Name Is not valid” v plánované úloze

Na SQL Serveru je tolik profilů, že z toho jde jednomu hlava kolem. Když celé ráno řeším, proč nestartuje služba SQL ve spojitosti s dočasným profilem ve Windows, tak už hledám v každé chybové hlášce něco podezřelého.

Najednou se v SQL Agentovi objeví “Executed as user: DOMAIN\ServiceAcct. profile name is not valid [SQLSTATE 42000] (Error 14607). The step failed.” Jenže tady to nemá s profilem pro daný účet nic společného. Jen se úloha snažila odeslat email a v TSQL kódu úlohy bylo špatné jméno email profilu. Není holt profil jako profil.

Mizející databáze MSSQLSystemResource

Každá instance SQL Serveru má svoji vlastní databázi MSSQLSystemResource, která je umístěná přímo ve složce SQL Serveru společně s aplikačními soubory .exe

Tato databáze je nutná pro start a konfiguraci serveru, její obsah si probereme v některém z delších článků, a je tedy velice důležité, aby tato databáze byla v pořádku. Bohužel některé instalace oprav jako jsou Service Pack a Cummulative updates mají schopnost při své instalaci tuto databázi smazat!!

Nemáte-li zálohu této databáze, je možné tyto dva soubory (mdf a log) zkopírovat z jiného SQL serveru. Musíte pouze pohlídat, že se jedná o stejnou verzi / edici a service pack, případně cummulative updates a sql security hotfixes.

Zrádné limity SQL Agenta

Při vytváření plánovaných úloh v SQL Agentovi je nutné zvolit rozumné jméno úlohy a každého kroku. V extrémních případech je bohužel zvoleno jméno příliš dlouhé, proti čemu samotný agent nikterak neprotestuje … dokud se nechcete podívat na jednotlivé úlohy nebo na activity monitor. Nepomůže ani nejnovější verze SQL Management Studia, která má se zobrazením plánované úlohy, jejíž jméno je delší než 128 znaků, problém.

Jednoduché řešení
Pomocí UPDATE příkazu manuálně upravit jméno úlohy a případně jednotlivých kroků a vše opět funguje.