Mam bazę danych instancji SQL Sever 2012, którą chciałbym skopiować na serwer 2008. Serwer 2008 nie może przywrócić kopii zapasowych utworzonych przez serwer 2012 (próbowałem).
W 2012 roku nie mogę znaleźć opcji utworzenia kopii zapasowej zgodnej z rokiem 2008. Czy coś brakuje?
Czy istnieje prosty sposób na wyeksportowanie schematu i danych do formatu niezależnego od wersji, który mogę następnie zaimportować do 2008 roku?
Baza danych nie korzysta z żadnych funkcji specyficznych dla 2012 roku. Zawiera tabele, dane i procedury przechowywane.
Oto, co próbowałem do tej pory
Próbowałem Zadania → Generuj skrypty na serwerze 2012 i byłem w stanie wygenerować schemat (w tym procedury składowane) jako skrypt SQL. Nie zawierało to jednak żadnych danych.
Po utworzeniu tego schematu na moim komputerze w 2008 r. Mogłem otworzyć kreatora „Eksportuj dane” na komputerze w 2012 r., A po skonfigurowaniu 2012 jako maszyny źródłowej i 2008 jako maszyny docelowej przedstawiono mi listę tabel, które ja można skopiować. Wybrałem wszystkie moje tabele (300+) i kliknąłem kreatora. Niestety generuje skrypty przez całe wieki, a następnie kończy się niepowodzeniem z błędami typu „Błąd wstawiania do kolumny„ FOO_ID ”tylko do odczytu.
Próbowałem także „Copy Database Wizard”, który twierdził, że jest w stanie skopiować „z 2000 roku lub później do roku 2005 lub później”. Ma dwa tryby:
„Odłącz i dołącz”, który nie powiódł się z błędem:
Message: Index was outside the bounds of the array. StackTrace: at Microsoft.SqlServer.Management.Smo.PropertyBag.SetValue(Int32 index, Object value) ... at Microsoft.SqlServer.Management.Smo.DataFile.get_FileName()
Metoda obiektu zarządzania SQL, która zakończyła się błędem
Nie można odczytać właściwości IsFileStream. Ta właściwość nie jest dostępna w SQL Server 7.0. ”
Odpowiedzi:
Kliknij prawym przyciskiem myszy bazę danych w SQL Management Studio 2012 i wybierz „Zadania -> Generuj skrypty”. Kliknij obok ekranu powitalnego, wybierz „skryptuj całą bazę danych i wszystkie obiekty bazy danych”. Na stronie „określ sposób zapisywania skryptów” kliknij „zaawansowane”. W sekcji „Ogólne” na wyskakującej stronie właściwości zmień „Typy danych na skrypt” z „Tylko schemat” na „Schemat i dane” i zmień „Skrypt dla wersji serwera” z „2012” na „2008”.
Następnie musiałem znaleźć sposób na edytowanie początku tego ogromnego pliku SQL, aby dostosować sposób tworzenia bazy danych - patrz ten q: /programming/102829/best-free-text-editor -obsługujące więcej niż 4 GB plików
I w końcu musiałem znaleźć sposób na uruchomienie skryptu SQL, który był zbyt duży, aby go otworzyć w SQL Management Studio - patrz to q: /programming/431913/how-do-you-run- a-300mb-ms-sql-sql-file
źródło
W przypadku migracji SQL użyj bezpłatnego i otwartego Kreatora migracji bazy danych SQL.
Miałem bazę danych o pojemności 5 GB z kilkoma ~ 10 milionami rekordów i wypróbowałem trasę za pomocą Generate Script, a następnie uruchomiłem ją z sqlcmd.exe. Przede wszystkim wygenerowany skrypt nie zawsze działał poprawnie. Po drugie, sqlcmd.exe może również zawieść w przypadku dużych plików, narzekając na dostępną pamięć. osql.exe działa, ale po prostu trwa wieki (i ma te same argumenty wiersza poleceń).
Potem natknąłem się na wspaniałe narzędzie do migracji programu SQL Server do baz danych SQL Azure. Działa to również w przypadku SQL Server na SQL Server, na przykład jeśli chcesz przeprowadzić migrację bazy danych SQL 2012 do 2008 R2. Używa programu bcp.exe, który używa kopii zbiorczej. Dostępna jest wersja GUI i wiersza poleceń (Batch) i jest to oprogramowanie typu open source. Zobacz http://sqlazuremw.codeplex.com/ . W moim przypadku operacja zajęła 16 minut.
Na ekranie zaawansowanym możesz wybrać, że celem jest SQL Server, a nie SQL Azure.
źródło
Jestem nowy w SQL, ale udało mi się przeprowadzić migrację z 2012 do 2008. W tym celu skorzystałem z narzędzia SQL do importowania i eksportowania. Wybrałem serwer SQL 2012 i bazę danych, którą chcę migrować, a na koniec serwer 2008 i utworzyłem nową bazę danych jako moją bazę docelową. Zadziałało.
źródło
Wypróbuj narzędzia APEXSQL . Posiadają narzędzie, które będzie skryptować bazę danych i również dane.
źródło
Problem polega na tym, że nie można wstawić kolumn identyfikatora, więc:
źródło
Postępowałem zgodnie z rozwiązaniem Richa /superuser//a/469597/312310 powyżej i zadziałało świetnie! Dzięki - nie mogę jeszcze głosować tutaj!
Dodatkowe kroki, które musiałem zrobić, aby to zadziałać, to:
Zmień nazwy plików logicznych i upewnij się, że ścieżka jest poprawna. Musiałem także zmienić wygenerowaną nazwę dziennika, w przeciwnym razie próbował on zastąpić plik mdf dziennikiem, a następnie zgłosił ten błąd /programming/7534664/sql-server-script-error-database-is- już w użyciu
Musiałem skomentować wygenerowaną sekcję i później ręcznie dodać uprawnienia użytkownika
Uruchomiłem go i oto mogę teraz przywrócić moją nową bazę danych Umbraco 7.1.2 na moim serwerze internetowym, który ma tylko SQL Server 2008 R2!
źródło
Zobacz porównanie schematów xSQL i porównanie danych xSQL . Możesz najpierw zsynchronizować schemat z porównaniem schematu, a następnie skopiować dane.
Oświadczenie: Jestem związany z xSQL.
źródło