Jakie są moje opcje, jeśli muszę przenieść bazę danych z SQL Server 2012 (32-bitowy) do SQL Server 2005 (64-bitowy)?
Wiem, że nie mogę:
- przywrócić kopię zapasową bazy danych na SQL Server 2005
- odłącz i dołącz
Wiem że mogę:
- korzystam z kreatora importu danych i próbowałem go w jednej bazie danych, ale przenosi on tylko dane, a nawet to było kłopotliwe, ponieważ musiałem dużo pracy, tworząc tabele tymczasowe w celu utrzymania kolumn tożsamości, odtwarzając wszystkie FK, indeksy itp.
Czy jest łatwiejsza opcja?
sql-server
migration
downgrade
Greg Balajewicz
źródło
źródło
Odpowiedzi:
Możesz wykonać dowolną z poniższych metod:
Uwaga: jeśli używasz nowych funkcji, takich jak nowe typy danych itp., Musisz przetestować, ponieważ spowoduje to wyrzucenie błędów.
METODA 1: Korzystanie z rodzimych narzędzi
Skryptuj bazę danych SCHEMA_ONLY i odtwórz pustą bazę danych na serwerze docelowym. Poniżej znajdują się zrzuty ekranu:
Użyj BCP OUT i BULK INSERT, aby wstawić dane.
Poniżej znajduje się skrypt, który pomoże ci w części 2.
Metoda 2: Korzystanie z narzędzi innych firm
Utwórz pustą bazę danych na serwerze docelowym. Użyj porównania schematu Redgate i porównania danych, aby utworzyć i załadować dane na serwer docelowy.
Uwaga: Użyłem schematu i porównania danych Redgate i są to najlepsze narzędzia do tego typu zadań, a zatem jeśli używasz narzędzi innych firm, moją rekomendacją byłoby Redgate.
źródło
Oprócz metod już zasugerowanych tutaj, możesz także spróbować utworzyć plik BACPAC i zaimportować go do miejsca docelowego. Jest to podobne do tego, w jaki sposób Microsoft zaleca migrację twoich baz danych z tymczasowych do baz danych w chmurze Azure.
Zaletą tego jest to, że jest to kombinacja eksportu schematu oraz danych i nie zależy od wersji bazy danych, więc teoretycznie można importować bazy danych z dowolnej wersji do dowolnej wersji.
Minusem jest to, że zanim wygeneruje plik BACPAC u źródła, uruchamia pewien ścisły proces sprawdzania poprawności, który może łatwo zakończyć się niepowodzeniem, jeśli masz odniesienia do obiektów spoza bazy danych (bazy danych użytkownika lub systemu), lub jeśli masz zaszyfrowane obiekty. Ale jeśli masz szczęście i nie zawiedzie, może to być dość łatwe rozwiązanie.
Wystarczy jedna z nowszych wersji SSMS (17 lub 18): https://docs.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms
Aby rozpocząć tworzenie pliku BACPAC, kliknij bazę danych prawym przyciskiem myszy i wybierz „Eksportuj aplikację warstwy danych ...” (pamiętaj, aby nie pomylić jej z „Wyodrębnij aplikację warstwy danych ...”, co jest czymś innym):
Zostanie wyświetlony prosty kreator, który przeprowadzi Cię przez kolejne etapy. Kiedy skończysz, możesz użyć „Importuj aplikację warstwy danych ...” na serwerze docelowym, co możesz zobaczyć, klikając prawym przyciskiem myszy węzeł „Bazy danych” (ponownie, nie mylić z „Wdrażanie danych” -Tier Application ... ”):
To również pokaże ci prostego kreatora, który poprowadzi cię przez kolejne kroki.
źródło
Zmniejszenie wersji Sql Server jest bardzo ciężką pracą.
Istnieje kilka opcji, takich jak;
Przede wszystkim utwórz skrypt wszystkich obiektów bazy danych i uruchom go na serwerze docelowym.
Następnie możesz użyć;
Ale w przypadku narzędzia RedGate Data Compare
źródło
Nie można obniżyć poziomu bazy danych do SQL Server. Jednak obejściem tego problemu jest wykonanie skryptu dla wszystkich obiektów DB i zastosowanie skryptu w docelowej bazie danych. SSIS to świetny sposób na wykonanie tego.
źródło