26.09.2016, Vladimír Klaus, navštíveno 4702x

SQL Server

Pokud máte řadu databází pod nějakým starším SQL Serverem a chcete je přenést pod novější, mělo by to být docela v pohodě. Klasiky to je přes zálohování na starém serveru a obnova ze zálohy na novém. Při tomto procesu můžete narazit asi na dva problémy:

  • stará verze je příliš stará a "upgrade" není možný
  • obnova neprochází z důvodu různých chyb

K prvnímu problému snad jen tolik, že byl měl pomoci postupný přechod, tedy třeba z verze 2000 na 2008 a až pak z 2008 na 2014 apod. Je třeba vyzkoušet, resp. dohledat si nějaké zkušenosti ostatních.

Obnova se provádí přes kontextové menu:

Přesun databáze z SQL Serveru 2014 na verzi 2016

V tomto dialogu se přepneme na "Device" a vybereme odpovídající *.bak soubor

Přesun databáze z SQL Serveru 2014 na verzi 2016, obr. 1

Po potvrzení ale dojde například k této chybě. Ta je naštěstí zřejmá a ukazuje, že nemůžeme na starším SQL Serveru obnovit databázi z novějšího SQL Serveru.

Přesun databáze z SQL Serveru 2014 na verzi 2016, obr. 2

Zkusíme to tedy udělat správně - vybrat starší zálohu a obnovit ji na novějším serveru. A je to opět chyba, i když jiná. Hlásí, že přístup k databázi byl odepřen, což zdánlivě nedává smysl - žádná databáze neexistuje, tu se teprve touto obnovou snažíme vytvořit. Takže co to znamená?

Přesun databáze z SQL Serveru 2014 na verzi 2016, obr. 3

Při pozornějším přečtení zjistíte, že i když se snažíte "vytvořit" databázi na novém serveru, probíhá obnova na starém! Záložní soubor prostě má v sobě uloženo, odkud byla záloha provedena. V dialogu obnovy je proto třeba se přepnout na kartu Files a zapnout volbu Relocate all files to folder. V příslušných kolonkách by se měla objevit cesta k datům na SQL Serveru 2016.

Přesun databáze z SQL Serveru 2014 na verzi 2016, obr. 4

Také zde vidíte, že původní soubory byly umístěny v c:\Program Files (x86)\..., kde mám stále ještě běžící SQL Server 2014, což je důvod, proč došlo k výše uvedené chybě.

Po této úpravě už obnova/vytvoření databáze na novém serveru projde.

Přesun databáze z SQL Serveru 2014 na verzi 2016, obr. 5

Je tu ještě jedna situace, kterou by bylo dobré zmínit. Řekněme, že na novém serveru už databázi máte, ale jen ji potřebujete naplnit daty ze zálohy, která byla vytvořena na jiném (starém) serveru. V takovém případě může dojít zase k chybě nekompatibility databází, což se můžete pokusit vyřešit nastavením správné verze ve vlastnostech databáze.

Přesun databáze z SQL Serveru 2014 na verzi 2016, obr. 6