Jak przywrócić plik kopii zapasowej bazy danych SQL Server w wyższej wersji na SQL Server w niższej wersji?
Za pomocą programu SQL Server 2008 R2 (10.50.1600) utworzyłem plik kopii zapasowej i teraz chcę go przywrócić na serwerze SQL Server 2008 na żywo (10.00.1600) .
Kiedy próbowałem przywrócić kopię zapasową do SQL Server 2008, pojawia się błąd, Restore Failed
ponieważ:
Kopia zapasowa bazy danych została wykonana na serwerze z wersją 10.50.1600. Ta wersja jest niezgodna z tym serwerem, na którym działa wersja 10.00.1600.
Jak przywrócić plik kopii zapasowej na tym serwerze?
sql-server
Oreo
źródło
źródło
Odpowiedzi:
Nie, obniżenie poziomu bazy danych nie jest możliwe. 10.50.1600 to wersja SQL Server 2008 R2 . Nie ma absolutnie żadnego sposobu, aby przywrócić lub dołączyć tę bazę danych do instancji SQL Server 2008, którą próbujesz przywrócić (10.00.1600 to SQL Server 2008). Twoje jedyne opcje to:
źródło
Możesz użyć funkcji o nazwie Eksportuj warstwę danych, która generuje
.bacpac
plik zawierający schemat bazy danych i dane.Na serwerze docelowym możesz użyć opcji Importuj warstwę danych, która tworzy i zapełnia nową bazę danych z wcześniej utworzonego
.bacpac
plikuJeśli chcesz tylko przenieść schemat bazy danych, możesz użyć aplikacji Wyodrębnij warstwę danych do utworzenia pliku i Wdróż aplikację warstwy danych do wdrożenia utworzonego schematu bazy danych.
Próbowałem tego procesu na różnych wersjach SQL Server od SQL 2014 do SQL 2012 oraz od SQL 2014 do SQL 2008R2 i działałem dobrze.
źródło
sqlpackage.exe
wiersza poleceń. Google na więcej.Niekoniecznie zadziała
Backup / Restore - nie będzie działać, gdy celem jest wcześniejsza wersja MS SQL.
Kopiuj bazę danych - nie będzie działać, gdy celem jest SQL Server Express: „Serwerem docelowym nie może być instancja SQL Server 2005 lub nowsza wersja Express”.
Import danych - nie kopiuje schematu.
Będzie działać
Generowanie skryptu - Zadania -> Generuj skrypty . Upewnij się, że ustawiłeś żądaną docelową wersję programu SQL Server na stronie Ustaw opcje skryptów -> Zaawansowane . Możesz także wybrać, czy chcesz skopiować schemat, dane, czy jedno i drugie. Zauważ, że w wygenerowanym skrypcie może zaistnieć potrzeba zmiany folderu DATA dla plików mdf / ldf, jeśli przejdziesz z trybu innego niż ekspresowy na ekspresowy lub odwrotnie.
Microsoft SQL Server Database Publishing Services - wydaje mi się, że zawiera SQL Server 2005 i nowsze wersje. Pobierz najnowszą wersję stąd . Wymagania wstępne:
sqlncli.msi
/sqlncli_x64.msi
/sqlncli_ia64.msi
,SQLServer2005_XMO.msi
/SQLServer2005_XMO_x64.msi
/SQLServer2005_XMO_ia64.msi
(pobierz tutaj ).źródło
Oto moje 2 centy za różne opcje wykonania tego:
Narzędzia innych firm : Prawdopodobnie najłatwiejszym sposobem na wykonanie zadania jest utworzenie pustej bazy danych w niższej wersji, a następnie użycie narzędzi innych firm do odczytania kopii zapasowej i zsynchronizowania nowo utworzonej bazy danych z kopią zapasową.
Czerwona brama jest jedną z najpopularniejszych, ale istnieje wiele innych, takich jak ApexSQL Diff , ApexSQL Data Diff , Adept SQL , Idera …. Wszystkie są narzędziami premium, ale możesz wykonać zadanie w trybie próbnym;)
Generowanie skryptów : jak wspomniano już wcześniej, zawsze możesz tworzyć struktury skryptów i danych za pomocą SSMS, ale musisz wziąć pod uwagę kolejność wykonywania. Domyślnie skrypty obiektowe nie są porządkowane poprawnie i będziesz musiał zająć się zależnościami. Może to stanowić problem, jeśli baza danych jest duża i zawiera wiele obiektów.
Kreator importu i eksportu : To nie jest idealne rozwiązanie, ponieważ nie przywróci on wszystkich obiektów, a jedynie tabele danych, ale można rozważyć szybkie i brudne poprawki, gdy jest to potrzebne.
źródło
Nie można przywrócić bazy danych (lub dołączyć) utworzonej w wyższej wersji do niższej wersji. Jedynym sposobem jest utworzenie skryptu dla wszystkich obiektów i użycie go do wygenerowania bazy danych.
Tak, teraz skończyłeś z Utwórz skrypt ze schematem i danymi bazy danych.
źródło
Innym sposobem jest skorzystanie z funkcji „Kopiuj bazę danych”:
Znajdź, klikając prawym przyciskiem myszy źródłową bazę danych> „Zadania”> „Kopiuj bazę danych”.
Możesz skopiować bazę danych do niższej wersji SQL Server Instance. Działa to dla mnie z SQL Server 2008 R2 (SP1) - 10.50.2789.0 do Microsoft SQL Server 2008 (SP2) - 10.0.3798.0
źródło
Możesz tego spróbować.
źródło
Przejdź do Zadanie-> Generuj skrypty ...
W sekcji Zaawansowane w „Typach danych dla skryptu” wybierz
"Schema and data"
i spróbuj uruchomić ten skrypt w niższej wersji.źródło
To nie jest ładne, ale tak to zrobiłem, pod warunkiem, że masz tę opcję zainstalowaną w instalacji SQL 2008 R2.
1) Kliknij prawym przyciskiem myszy bazę danych w SQL Server 2008 R2 „Zadania” .. „Generuj skrypty” w kreatorze, wybierz całą bazę danych i obiekty w pierwszym kroku. W kroku „Ustaw opcje skryptów” powinieneś zobaczyć przycisk „Zaawansowane”, wybierz to i upewnij się, że wybierasz „Skrypt dla wersji serwera” = SQL Server 2008 ”, a nie R2. Jest to kluczowy krok, ponieważ„ importuj dane ” sam w sobie nie przynosi wszystkich kluczy podstawowych, stałych i innych obiektów, takich jak procedury składowane. ”
2) Uruchom skrypt SQL wygenerowany na nowej instancji instalacji lub bazy danych SQL Express lub SQL Server 2008 za pomocą okna zapytania lub otwórz zapisany skrypt .sql i uruchom go, a powinieneś zobaczyć nową bazę danych.
3) Teraz kliknij prawym przyciskiem myszy nową bazę danych i wybierz „Zadania” .. „Importuj dane ..” wybierz źródło jako bazę danych R2 i miejsce docelowe jako nową bazę danych. „Skopiuj dane z jednej lub więcej tabel lub widoków”, zaznacz górne pole wyboru, aby zaznaczyć wszystkie tabele, a następnie w następnym kroku uruchom pakiet i powinieneś mieć wszystko w starszej wersji. To powinno działać również w przypadku powrotu do wersji 2005. Mam nadzieję, że to komuś pomoże.
źródło
możesz używać BCP in i out dla małych stolików.
Polecenie BCP OUT: -
Polecenie BCP IN: - Utwórz strukturę tabeli dla Invoicescopy1.
źródło
Rozumiem, że to stary post, ale może być przydatne dla osób, które wiedzą, że Kreator migracji platformy Azure (dostępny w Codeplex - nie można połączyć się z tym, co Codeplex jest w chwili pisania tego tekstu) zrobi to łatwo.
źródło
Aby migrować wszystko, musisz użyć kreatorów importu / eksportu w SSMS
Nie jest możliwe „obniżenie wersji” przy użyciu kopii zapasowej / przywracania lub odłączania / dołączania. Dlatego musisz:
źródło
Możesz wygenerować skrypt z menu Zadanie
Szczegółowe informacje
Jak przeprowadzić migrację bazy danych SQL Server do niższej wersji
źródło