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.

Příliš nízká hodnota maxservermemory

Nešťastnou náhodou se povedlo nastavit maximální pamět SQL serveru na hodnotu 240. Je třeba si uvědomit, že parametr pro uloženou proceduru sp_configure je třeba zadávat v MB a ne v GB. Jednalo se o server, který měl paměti opravdu dostatečně – 256GB. Bohužel s takovýmto nastavením služba SQL Server nenaběhne, vždyt se podařilo nastavit, že může používat maximálně 240MB. Není podstatné, jak se změnil memory manager mezi verzemi, tato hodnota je natolik nízká, že službu není možné pustit.

Nezbývá než v takovém případě je potřeba použít jeden ze startup parametrů -f, který umožnuje start služby s naprosto minimální konfigurací. I v tomto případě je možné se připojit přes Management Studio, pokud se Vám nechce pracovat přes příkazovou řádku, a nastavit správnou hodnotu pro max server memory. Po odstranění parametru a restartu služby už funguje vše v pořádku.

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.

Replikace a recovery model

Transakční replikace pro svoji správnou funkci nepotřebuje full recovery režim u jednotlivých databází. Může se to zdát divné, protože simple recovery režim využívá jednodušší správu transakčního logu, kdy dokončené transakce nejsou zachovávány v logu a jsou vymazány. Při zapnutí transakční replikace jsou tyto transakce z logu vymazány až poté, co jsou překopírovány do distribuční databáze a označeny jako replikované.

Proces, který se stará o kopírování transakcí do distribuční databáze se jmenuje log reader a společně se zapnutím transakční replikace zajišťuje, že log nebude čištěn, dokud nejsou transakce replikovány.

Novinky v SQL 2014

Microsoft vydal novou verzi databázového serveru SQL Server 2014. V seriálu si povíme, jak mnohé z nových funkcí využít pro zvýšení výkonu, spolehlivosti a bezpečnosti SQL Serveru.

Prvního dubna Microsoft oficiálně vydal novou verzi databázového serveru SQL Server 2014. Připadá mi, že to není tak dlouho, co jsme popisovali novinky verze 2012, a už je zde verze nová. Dokonce necelý měsíc po oficiálním vydání už je dostupná i první kumulativní aktualizace pro tuto verzi.

Jak je zvykem, každá nová verze přináší několik zásadních novinek, které posouvají možnosti SQL Serveru dále. V některých oblastech se jedná o zcela nové koncepty, jako je InMemory OLTP nebo buffer pool extension. V jiných jsou to spíše příjemná a užitečná rozšíření již existujících součástí, například větší možnosti služby Resource Governor. Dnes si ukážeme, jak mnohé z těchto funkcí využít pro zvýšení výkonu, spolehlivosti a bezpečnosti SQL Serveru.

Continue reading