Migracja danych z SQL Server 2005 do 2016


9

Jestem nowy w administrowaniu SQL Server, ale czuję się swobodnie z językiem SQL i tworzeniem pakietów SSIS.

Chcę migrować dane z SQL Server 2005 do 2016.

Moje pytanie brzmi: czy muszę się martwić o systemowe bazy danych i inne obiekty, takie jak indeksy, procedury składowane, widok, bezpieczeństwo i uprawnienia. loguje się, czy mogę po prostu migrować dane.

Co byłoby zalecaną procedurą w tym przypadku.


Czy próbujesz zaktualizować instancję produkcyjną ? tzn. czy potrzebujesz tych samych danych logowania, indeksów, przechowywanych procesów itp.? W tej chwili twoje pytanie jest naprawdę dość szerokie. Zapoznaj się z przewodnikiem i przeczytaj centrum pomocy, w jaki sposób zadawać dobre pytania. Dzięki!
Max Vernon,

Odpowiedzi:


7

Max udzielił przyzwoitej odpowiedzi, którą będę głosować, gdy skończę pisać ten alternatywny widok.

Nie jestem fanem przywracania systemowych baz danych podczas migracji uaktualnień i wolę przeprowadzać migracje zamiast uaktualnień w miejscu, o czym mówiłem w tej długiej odpowiedzi na inne pytanie.

Zasadniczo lubię zaczynać „świeżo” podczas migracji. Uważam, że granie z migracjami systemowych baz danych i aktualizacjami poprzez przywracanie czasami powoduje frustrację przywracaniem i może przenosić potencjalne grzechy.

Pytałeś także o indeksy, procedury składowane, widoki. Wszystkie elementy na poziomie bazy danych powinny znajdować się w bazie danych użytkowników. Kiedy więc przywrócisz bazę danych X na nowy serwer, wszystkie obiekty bazy danych (tabele, użytkownicy, widoki, procesy, funkcje itp.) Również tam będą.

W systemowych bazach danych znajdują się zadania, dane logowania, alerty, połączone serwery, klucze szyfrowania itp. Elementy poziomu instancji.

Lubię je przeglądać i migrować ponad to, czego potrzebuję, używając różnych skryptów - ostatnio są to skrypty DBATools.Io PowerShell. Lubię używać ich skryptu do kopiowania loginów SQL, zwłaszcza, że ​​obsługuje on uwierzytelnionych użytkowników SQL, zachowując ich hasła i identyfikatory bezpieczeństwa tak, aby użytkownicy bazy danych z tych loginów działali. Mają także całe polecenie migracji programu SQL Server, które uruchamia polecenia podrzędne, aby skopiować elementy, które zwykle kopiowałbym.

Nie wierzę, że Max się myli z tą odpowiedzią, stąd opinia. Właśnie odniosłem większy sukces i więcej szczęścia i czuję się bardziej swobodnie migrując do nowego zamiast próbować przywracać systemowe bazy danych między wersjami. Powiedziałbym, że szczerze mówiąc, nie pamiętam, kiedy po raz ostatni przeprowadziłem migrację aktualizacji wersji i nie zrobiłem tego w ten sposób zamiast przywracania systemowych baz danych.


Dzięki za odpowiedź. Nie chcę aktualizować od 2005 do 2016. Chcę przeprowadzić migrację bazy danych z instancji, która nie jest już używana na serwerze SQL 2005 do istniejącej instancji w 2016. Ta migracja nie została jeszcze zatwierdzona, ale chcę się przygotować, kiedy to robi. Zasadniczo dostałem ten projekt, ponieważ jako jedyny mam doświadczenie w SQL, jeśli chodzi o zapytania i tworzenie pakietów SSIS. Miałem również obawy dotyczące problemów ze zgodnością. Jeszcze raz dziękuję.
Robert,

Jasne - ale przechodząc z 2005 na 2016 - robisz aktualizację. Robisz aktualizację i migrację. Ponieważ przenosisz bazę danych z jednej wersji SQL do innej - to z pewnością oznacza aktualizację. Powinieneś uruchomić doradcę aktualizacji w swojej bazie danych.
Mike Walsh,

Co się stanie, jeśli SQL Server 2005 jest obsługiwany przez system Windows Server 2003 R2 x86, a SQL Server 2016 działa na nowszym systemie operacyjnym?
Robert

@MikeWalsh Zgadzam się z prawie wszystkim, co opisałeś w swojej odpowiedzi. Ja również śledzę prawie wszystko podczas aktualizacji / migracji SQL
nam

4

Jeśli chcesz uzyskać dostęp do metadanych przechowywanych w tych bazach danych, warto rozważyć migrację systemowych baz danych (master, msdb i być może model).

Master przechowuje takie elementy, jak dane logowania, certyfikaty bezpieczeństwa itp.

msdb zawiera szczegółowe informacje o kopiach zapasowych i przechowuje konfiguracje zadań SQL Server Agent, między innymi szczegóły.

Model mógł zostać dostosowany przez Ciebie lub Twój zespół, aby pozwolić, aby nowo utworzone puste bazy danych zawierały zestaw predefiniowanych obiektów używanych w każdej bazie danych.

Migracja systemowych baz danych może być wykonana dość łatwo; szczegółowe instrukcje są dostępne w witrynie MSDN na stronie Tworzenie kopii zapasowych i przywracanie systemowych baz danych (SQL Server) .

W zależności od wymagań można wykonać BACKUP DATABASEoperację na bazach danych użytkowników w instancji 2005, a następnie RESTORE DATABASEw instancji 2016, aby przenieść całą bazę danych, w tym wszystkie dane, indeksy i inne obiekty.

Będzie to, przynajmniej początkowo, wymagać takiej samej ilości miejsca zajmowanego przez bazę danych w instancji z 2005 roku. Jednak po przywróceniu bazy danych można skorzystać z kompresji danych, aby znacznie zmniejszyć wymagany rozmiar.

Zobacz Informacje o pracy z kopiami zapasowymi programu SQL Server, aby uzyskać szczegółowe informacje na temat wykonywania kopii zapasowych, i Informacje o scenariuszach przywracania, aby uzyskać szczegółowe informacje na temat przywracania.


2

Czy to do 2012 czy 2016 roku? To robi różnicę, IIRC 2012 to przetestowana ścieżka migracji, podczas gdy 2016 nie. W związku z tym znane problemy są udokumentowane i / lub zostaną wykryte przez Doradcę uaktualnienia w 2012 r. Nie przetestowana ścieżka może nadal działać bez żadnych problemów, jest po prostu nieznana. To powiedziawszy, zdecydowanie polecam udać się do 2016 roku. Podejrzewam, że wysiłek będzie prawie taki sam.

Zobacz Czy aktualizujesz z SQL Server 2005? w dokumentacji opcji aktualizacji 2005 i linki do bardzo szczegółowego procesu aktualizacji. Proces aktualizacji został napisany na 2014 r., Ale nadal obowiązuje w 2016 r.


1
Jest 2016. Przepraszam za to
Robert,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.