Forum > Software > Przeniesienie bazy danych SQL z wersji 2008 na 2012

Strona 1 z 1 1
skocz

nickey

  • nickey
  • wiadomość Użytkownik

  • 8521 wypowiedzi

Wysłane 2014-09-26 08:53

No właśnie jak ugryźć ten temat?

Na komputerze A (stary serwer) jest założona baza sql (microsoft), którą zarządzam przez Microsoft SQL management studio w wersji 2008 (32 bit). I tu pojawia się problem, nowy serwer nie pozwalał na instalacje studia w wersji 2008. Zainstalowałem SQL managment studio 2012 (64 bit).



Jak przenieść bazę sql z starego serwera na nowy?

Czyli migracja z 2008 na 2012. Trochę googlowałem i pojawia się problem. Zwykłe wgranie backupu na nowej świeżej bazie nie pomoże. 
Pojawia się taki błąd:



Restore of database 'XYZ' failed. (Microsoft.SqlServer.Management.RelationalEngineTasks)

------------------------------
ADDITIONAL INFORMATION:

System.Data.SqlClient.SqlError: The backup set holds a backup of a database other than the existing 'XYZ' database. (Microsoft.SqlServer.SmoExtended)

For help, click: [LINK]((SQL11_RTM).120210-1917+)&LinkId=20476


Backup bazy waży koło 70 MB ale sam układ tabel jest dość skomplikowany. Mamy tu jakiegoś bazodanowca obeznanego z tematem?

AMD Ryzen 5800X |MSI MAG X570 TOMAHAWK WIFI | Samsung 970 Evo M.2 500GB + Crucial P1 1 TB M.2 2280 PCI-E x4 Gen3 NVMe| be quiet! Pure Loop 360mm (BW008) | Gigabyte GeForce RTX 3070 EAGLE OC 8GB GDDR6| HyperX 16GB (2x8GB) 3600MHz CL17 Fury RGB|be quiet! Power Zone 750W (BN211)| SilentiumPC Signum SG7V Evo TG ARGB

kowgli

  • kowgli
  • wiadomość Użytkownik

  • 4367 wypowiedzi

Wysłane 2014-09-26 09:02 , Edytowane 2014-09-26 09:03

Backup powinien jak najbardziej zadziałać w tą stronę. Backupujesz na starej bazie i odtwarzasz na nowym serwerze. Problem jest jedynie jeśli chcesz przerzucić z nowszej wersji na starszą. Coś źle ustawiasz w opcjach. W ogóle nie twórz bazy na nowym serwerze tylko ją odtwórz z backupu. Ewentualnie użyj opcji overwrite. Musisz pobawić się opcjami.

Alternatywa - odłączasz starą bazę -> Go Offline i kopiujesz pliki mdf i ldf do katalogu na nowym serwerze. Na nowym serwerze używasz opcji attach

Alternatywa 2 - tworzysz pustą bazę na nowym serwerze i używasz jakiegoś narzędzia do synchronizacji. Np. triala RedGate SqlCompare i SqlDataCompare, albo Visual Studio w wersji bodaj Premium wzwyż.

jaqp

  • jaqp
  • wiadomość Użytkownik

  • 10 wypowiedzi

Wysłane 2014-09-26 09:20 , Edytowane 2014-09-26 09:29

Hej, w instalacji SQL serwera powinieneś mieć coś takiego jak Import and Export Data. Niestety nie przenosi on procedur składowanych ani funkcji:(
W podobnym przypadku mi z backupu się wczytał, niestety coś nie tak było z wydajnością bazy:(

W SQL Mgmt Studio możesz prawym na bazę ->tasks-> copy db. To przenosi też procedury i funkcje, ale nie robiłem nigdy pomiędzy 2 różnymi wersjami SQL serwera, więc nie wiem, czy zadziała.

szarlih

Wysłane 2014-09-26 09:22

@nickey
Jeżeli utworzyłeś wcześniej pustą bazę to musisz pamiętać żeby wybrać opcje override the existing database i preserve the replication settings podczas restore.
Jeżeli nie utworzyłeś to użyj Restore Database i w trakcie procesu wprowadzasz nazwę bazy i pozwól kreatorowi ją utworzyć. 

W obu przypadkach upewnij się, że nazwy są identyczne.

Alternatywa: wygeneruj skrypt bazy a nie backup.

to wyżej to nie prawdy objawione tylko moje prywatne opinie « R7 3700X ⇔ Aorus X570 Elite ⇔ RTX 3070 ⇔ 32GB DDR4 ⇔ 2x EV2450BK ⇔ G815 + G903 HERO »

nickey

  • nickey
  • wiadomość Użytkownik

  • 8521 wypowiedzi

Wysłane 2014-09-26 09:29

Uzylem opcji restore i poszlo. Teraz jeszcze musze podepnac ja pod stronke ale to juz male piwo. Dziekuje za pomoc

AMD Ryzen 5800X |MSI MAG X570 TOMAHAWK WIFI | Samsung 970 Evo M.2 500GB + Crucial P1 1 TB M.2 2280 PCI-E x4 Gen3 NVMe| be quiet! Pure Loop 360mm (BW008) | Gigabyte GeForce RTX 3070 EAGLE OC 8GB GDDR6| HyperX 16GB (2x8GB) 3600MHz CL17 Fury RGB|be quiet! Power Zone 750W (BN211)| SilentiumPC Signum SG7V Evo TG ARGB
Strona 1 z 1 1
skocz

Kto jest online: 0 użytkowników, 236 gości