SQL Server Developer Edition – nově zdarma

Microsoft uvolnil MS SQL Server 2014 Developer Edition zdarma ve svém programu Visual Studio Dev Essentials. Po zaregistrování máte možnost stahovat tuto edici SQL Serveru zcela zdarma pro vývojové účely. Svými funkcemi je verze Developer totožná s verzí Enterprise, je tedy třeba dávat si pozor při finálním nasazení aplikace na produkční prostředí, které běží na edici Standard.

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.

SQL MVP Award

Dear Marek Chmel,
Congratulations! We are pleased to present you with the 2015 Microsoft® MVP Award! This award is given to exceptional technical community leaders who actively share their high quality, real world expertise with others. We appreciate your outstanding contributions in SQL Server technical communities during the past year.

Novinky v SQL 2014 – III. díl

V předchozích dílech našeho seriálu jsme si představili novinky SQL serveru 2014 v oblasti indexů, záloh, zabezpečení a vysoké dostupnosti. Dnes se zaměříme na zvýšení výkonu pomocí In-Memory optimalizace.

In-Memory je zcela nová funkce SQL serveru 2014, dostupná pouze v Enterprise edici, která umožňuje několikanásobné zrychlení zpracování dotazů. Za předpokladu, že máme na našem databázovém serveru dostatek (opravdu dostatek) paměti a procesorového výkonu, můžeme modifikovat databázové schéma tak, aby tabulky obsahující naše data, která chceme zpracovat, nebyly uloženy na disku, ale byly primárně uloženy v paměti našeho serveru.

Continue reading

Novinky v SQL 2014 – II. díl

V minulém díle seriálu o novinkách SQL Serveru 2014 jsme si představili několik zásadních vylepšení, které přináší SQL Server 2014 v nové verzi. V tomto díle budeme pokračovat představením nových a vylepšených funkcí pro rychlejší práci s daty.

První z nich je columnstore index. Samotný columnstore index byl uveden již ve verzi SQL Server 2012, a to jako nonclustered index. Novinkou ve verzi 2014 je clustered columnstore index. V čem představuje clustered index tak zásadní rozdíl proti nonclustered indexu? Samotný index je stuktrura na disku, asociovaná s tabulkou nebo pohledem, která má za cíl zrychlit získání dat z databáze. Každý index obsahuje klíče složené z jednoho nebo vice sloupců, které jsou uloženy ve stromové struktuře (B-Tree), která umožnuje serveru vyhledat data podle daného klíče. V případě clustered indexu jsou data tabulky přímo uložena v datových stránkách indexu a podle klíče jsou i seřazena. Proto může být v tabulce vytvořen pouzen jeden clustered index. V případě, že v tabulce clustered index vytvořen není, jsou data uložena na disku nesetříděně ve struktuře nazvané heap. Naproti tomu nonclustered indexy maji svou strukturu oddělenou od dat, obsahují tedy pouze klíče a ukazatele na datové stránky existujícího clustered indexu, nebo heap alokační mapy.

Continue reading