26.09.2016, Vladimír Klaus, navštíveno 4779x
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:
V tomto dialogu se přepneme na "Device" a vybereme odpovídající *.bak soubor
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.
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ř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.
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.
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.