Migracja MSSQL między serwerami może być trudna bez odpowiednich wytycznych, które pozwolą Ci być na dobrej drodze. W tym artykule przedstawię różne sposoby migracji baz danych Microsoft SQL Server między serwerami lub instancjami. Niezależnie od tego, czy chcesz przenieść pojedynczą bazę danych, wiele baz danych, loginy lub procedury składowane i widoki, które mamy dla Ciebie!
Istnieje wiele okoliczności, w których trzeba będzie przenieść bazę danych lub przywrócić bazy danych. Najczęstsze powody to:
- Przejście na zupełnie nowy serwer.
- Przechodzenie do innej instancji SQL.
- Tworzenie serwera programistycznego lub przejście na żywo na serwer produkcyjny.
- Przywracanie baz danych z kopii zapasowej.
Istnieją dwa główne sposoby przenoszenia baz danych SQL.Ręcznie za pomocą Microsoft SQL Server Management Studio (SSMS) lub za pomocą wiersza poleceń. Wybrana metoda zależy od tego, co musisz osiągnąć. Jeśli przenosisz pojedynczą bazę danych lub tylko kilka, ręczne tworzenie kopii zapasowych i przywracanie baz danych za pomocą programu SSMS będzie najłatwiejszym podejściem. Jeśli przenosisz wiele baz danych (myśl więcej niż 10), użycie metody wiersza poleceń przyspieszy ten proces. Metoda wiersza poleceń wymaga wcześniejszego przygotowania, ale jeśli przenosisz dziesiątki baz danych, warto poświęcić czas na konfigurację skryptu zamiast na migrację każdej bazy danych z osobna. Jeśli nie masz pewności, której metody użyć, najpierw wypróbuj podejście ręczne, gdy poczujesz się komfortowo z procesem. Polecam przeczytanie wszystkiego, aby lepiej zrozumieć metodologię.
Przydatne odniesienia do terminologii
SSMS – Akronim dla Microsoft S QL S serwer M zarządzanie S dźwięk.
Serwer źródłowy – Serwer lub instancja, z której przenosisz bazy danych lub wył .
Serwer docelowy – Serwer lub instancja, do której przenosisz bazy danych .
Metoda ręczna
Przenoszenie baz danych SQL metodą ręczną może być bardzo łatwe. Jest to preferowany proces przenoszenia kilku lub mniejszych baz danych. Aby skorzystać z tej części przewodnika, musisz mieć zainstalowany MSSQL i Microsoft SQL Server Management Studio (SSMS).
Tworzenie kopii zapasowych baz danych na serwerze źródłowym
1. Rozpocznij od zalogowania się do serwera źródłowego (serwera, z którego przenosisz bazy danych lub z niego). Aby otworzyć Microsoft SQL Server Management Studio, wybierz Start> Microsoft SQL Server> Microsoft SQL Server Management Studio .
2. Zaloguj się do serwera SQL przy użyciu uwierzytelniania Windows lub uwierzytelniania SQL.
3. Rozwiń serwer (w naszym przypadku SQL01 ), rozwiń Bazy danych , wybierz pierwszą bazę danych, którą chcesz przenieść (na zdjęciu poniżej).
4. Kliknij prawym przyciskiem myszy swoją bazę danych i wybierz Zadania następnie kliknij Utwórz kopię zapasową .
5. Stąd jesteś teraz w Kopia zapasowa bazy danych ekran. Możesz wybrać typ kopii zapasowej, taki jak Pełna lub Różnicowy , upewnij się, że wybrana jest właściwa baza danych, i ustaw miejsce docelowe kopii zapasowej SQL. W naszym przykładzie możemy zostawić Kopię zapasową Wpisz jako Pełny .
6. W sekcji Kopia zapasowa Wpisz , zaznacz pole „Tylko kopia zapasowa ”. Jeśli korzystasz z programu DPM lub innej formy kopii zapasowej serwera, tworzenie kopii zapasowej bez opcji Tylko do kopiowania flaga spowoduje przerwę w łańcuchu dzienników kopii zapasowych.
7. Zobaczysz lokalizację pod Miejsce docelowe dla ścieżki nowej kopii zapasowej. Zazwyczaj usuwasz ten wpis, a następnie Dodaj nowy, aby wybrać folder, do którego SQL ma dostęp do odczytu/zapisu. Dodawanie nowego Miejsca docelowego kopii zapasowej pokazuje ścieżkę podobną do następującej:
C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Backup\
Ta ścieżka C:\ to miejsce, w którym znajduje się przechowywana kopia zapasowa bazy danych. Zanotuj tę lokalizację do późniejszego wykorzystania, ponieważ jest to domyślna ścieżka do przechowywanych kopii zapasowych i będzie musiała mieć odpowiedni dostęp do odczytu/zapisu dla usług SQL.
Uwaga:zaawansowani użytkownicy mogą swobodnie pozostawić miejsce docelowe bez zmian, pod warunkiem, że uprawnienia do folderu wyjściowego są prawidłowe.8. Następnie dodaj nazwę pliku na końcu tej ścieżki, np. AdventureWorks2012-081418 .bak – Pamiętaj, aby zakończyć nazwę pliku rozszerzeniem .bak i wybrać OK
10. Po naciśnięciu OK w Wybierz miejsce docelowe kopii zapasowej monit, jesteś gotowy do wykonania kopii zapasowej bazy danych! Wszystko, co musisz teraz zrobić, to nacisnąć OK , a baza danych rozpocznie tworzenie kopii zapasowej. Zobaczysz pasek postępu w lewym dolnym rogu, a po zakończeniu tworzenia kopii zapasowej pojawi się okno z napisem „Utworzenie kopii zapasowej bazy danych „AdventureWorks2012” zakończyło się pomyślnie. '
Przejdź do ścieżki docelowej, odnotowanej wcześniej (w tym przypadku C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Backup\ ) zobaczysz swój nowo utworzony plik (w tym przypadku AdventureWorks2012-081418.bak ) – Gratulacje! Ten plik jest pełnym eksportem Twojej bazy danych i jest gotowy do zaimportowania na nowy serwer. Jeśli masz więcej baz danych, powtórz powyższe kroki dla każdej przenoszonej bazy danych. Po skopiowaniu całego procesu bazy danych do następnego kroku przywracania baz danych na serwer docelowy.
Przywracanie baz danych na serwerze docelowym
Powinieneś teraz mieć plik .bak wszystkich swoich baz danych na serwerze źródłowym. Te pliki bazy danych należy przesłać na serwer docelowy. Istnieje wiele sposobów przenoszenia danych na serwer docelowy; możesz użyć USB, Robocopy lub FTP. Po skopiowaniu bazy danych możesz przechowywać ją na serwerze docelowym, na przykład zapisaliśmy ją na dysku C w folderze o nazwie C:\dbbackups .
1. Otwórz Microsoft SQL Server Management Studio.
2. Zaloguj się do serwera SQL przy użyciu uwierzytelniania Windows lub uwierzytelniania SQL.
3. Rozwiń serwer i kliknij prawym przyciskiem myszy Bazy danych i wybierz Przywróć bazę danych.
4. Przywróć bazę danych ekran wygląda bardzo podobnie do ekranu Utwórz kopię zapasową bazy danych screen.W obszarze Źródło wybierz Urządzenie zamiast Baza danych . Wybór Urządzenia umożliwia przywracanie bezpośrednio z pliku. Po wybraniu Urządzenia , kliknij ikonę przeglądania […]
5. Wybierz Dodaj , a następnie przejdź do folderu, w którym znajdują się Twoje pliki .bak. (W tym przypadku C:\dbbackups ).
6. Wybierz pierwszą bazę danych .bak, którą chcesz przywrócić i kliknij OK.
7. Kliknij OK i teraz jesteś gotowy do importu bazy danych. Przed importem rzućmy okiem na sekcję Opcje po lewej stronie. W sekcji Opcje zobaczysz inne konfiguracje przywracania baz danych, takie jak Zastąp istniejącą bazę danych , Zachowaj ustawienia replikacji i Ogranicz dostęp do przywróconej bazy danych . W tym przypadku nie zastępujemy istniejącej bazy danych, więc wszystkie te opcje zostawię niezaznaczone. Jeśli chcesz zastąpić istniejącą bazę danych (na przykład baza danych w kopii zapasowej zawiera nowsze dane niż na serwerze docelowym lub chcesz zastąpić bazę deweloperską lub produkcyjną), po prostu wybierz Zastąp istniejącą bazę danych .
Uwaga:zaawansowani użytkownicy mogą swobodnie pozostawić miejsce docelowe bez zmian, pod warunkiem, że uprawnienia do folderu wyjściowego są prawidłowe.8. Klikając OK rozpoczyna proces przywracania, jak wskazano w wyskakującym okienku z komunikatem „Baza danych „AdventureWorks2012” została pomyślnie przywrócona”. Przeprowadziłeś migrację bazy danych ze źródła do serwera docelowego.
Powtórz ten proces dla każdej migrowanej bazy danych. Następnie możesz zaktualizować odniesienia do ścieżek w swoich skryptach/aplikacji, aby wskazywały na nowy serwer i sprawdzić, czy migracja się powiodła.
Migracja danych logowania Microsoft SQL Server
Po zaimportowaniu baz danych, jeśli nie możesz połączyć się przy użyciu loginu SQL, może pojawić się błąd „Logowanie nie powiodło się dla użytkownika „przykład”. (Microsoft SQL Server, błąd:18456). ' Ponieważ baza danych jest w tradycyjnym modelu logowania i użytkownika , loginy są przechowywane oddzielnie na serwerze źródłowym, a poświadczenia nie są zawarte w samej bazie danych. Od tego momentu serwer docelowy może być skonfigurowany do korzystania z Contained Database User Model który utrzymuje loginy w Twojej bazie danych i poza serwerem źródłowym. Do tego czasu będziemy musieli poruszać się i wchodzić w interakcje z użytkownikami w ramach modelu tradycyjnego. Kontynuuj poniżej, aby kontynuować migrację użytkowników SQL.
Tworzenie kopii zapasowych i przywracanie baz danych przeniosło twoje loginy SQL do baz danych (twoje loginy są nadal powiązane z poprawnymi bazami danych z poprawnymi uprawnieniami), ale same loginy nie zostały przeniesione na nowy serwer. Możesz to sprawdzić, otwierając SSMS (SQL Server Management Studio) na serwerze docelowym i przechodząc do Serwer> Bezpieczeństwo> Logowanie s. Zauważysz, że żadne niestandardowe loginy SQL utworzone na poprzednim serwerze nie zostały przeniesione tutaj, ale jeśli przejdziesz do Serwer> Bazy danych> Twoja baza danych (w tym przypadku AdventureWorks2012)> Bezpieczeństwo> Użytkownicy zobaczysz poprawny login powiązany z bazą danych.
Jeśli masz jednego lub dwóch użytkowników SQL, możesz po prostu usunąć powiązanie użytkownika z bazą danych w menu Serwery> Bazy danych> AdventureWorks2012> Zabezpieczenia> Użytkownicy , ponownie utwórz użytkownika w Serwer> Bezpieczeństwo> Logowanie i zmapuj go do odpowiedniej bazy danych.
Jeśli masz wiele loginów, będziesz musiał wykonać dodatkowy proces opisany poniżej. Aby przeprowadzić migrację wszystkich użytkowników SQL, otwórz Nowe zapytanie na serwerze źródłowym i uruchom następujący skrypt:
Skrypt logowania SQL
+
Ten skrypt tworzy dwie procedury składowane w źródłowej bazie danych, które pomagają w migracji tych loginów. Otwórz okno Nowe zapytanie i uruchom następujące polecenie:EXEC sp_help_revlogin
To zapytanie generuje skrypt, który tworzy nowe loginy dla serwera docelowego. Skopiuj dane wyjściowe tego zapytania i zapisz je na później. Musisz to uruchomić na serwerze docelowym.
Po skopiowaniu danych wyjściowych tego zapytania zaloguj się do programu SSMS na serwerze docelowym i otwórz okno Nowa kwerenda. Wklej zawartość poprzedniego skryptu (powinna mieć serię wierszy, które wyglądają podobnie do -- Login:BUILTIN\Administrators
UTWÓRZ LOGIN [BUILTIN\Administrators] Z WINDOWS WITH DEFAULT_DATABASE =[master]) i naciśnij Execute.
Pomyślnie zaimportowałeś wszystkie loginy SQL i możesz teraz zweryfikować, czy bazy danych zostały przeniesione na serwer docelowy, używając twoich poprzednich poświadczeń.
Migracja widoków i zapisanych procedur
Widoki i procedury składowane będą migrowane wraz z bazą danych, jeśli używasz typowych kopii zapasowych na taśmie SQL. Postępuj zgodnie z poniższymi instrukcjami, jeśli chcesz przeprowadzić niezależną migrację widoków i procedur składowanych.
- Otwórz Microsoft SQL Management Studio na serwerze źródłowym.
- Zaloguj się do swojego serwera SQL.
- Rozbuduj serwer i bazy danych .
- Kliknij prawym przyciskiem myszy nazwę swojej bazy danych i przejdź do Zadania> Generuj skrypty .
- Kliknij Dalej .
- Zmienimy Skrypt całej bazy danych i wszystkich obiektów bazy danych aby wybrać określone obiekty bazy danych i sprawdź tylko Widoki oraz procedury przechowywane.
- Kliknij Dalej, zwróć uwagę na opcję Zapisz do pliku. Zanotuj podaną ścieżkę pliku. W moim przypadku jest to C:\Users\Administrator\Documents\script.sql - Ścieżka zapisanych widoków i procedur składowanych.
- Kliknij Dalej>> Dalej>>Zakończ, i wybierz C:\Użytkownicy\Administrator\Dokumenty\script.sql i skopiuj go na serwer docelowy.
- Przejdź do serwera docelowego, otwórz SSMS i zaloguj się do serwera SQL.
- Przejdź do Plik> Otwórz> Plik lub użyj skrótu klawiaturowego CTRL+O, aby otworzyć skrypt SQL. Wybierz plik C:\Użytkownicy\Administrator\Dokumenty\script.sql by go otworzyć.
- Zobaczysz skrypt wygenerowany z serwera źródłowego zawierający wszystkie widoki i procedury składowane. Kliknij Wykonaj lub użyj skrótu klawiszowego F5 i uruchom skrypt.
Przeprowadziłeś teraz migrację widoków i procedur składowanych na serwer docelowy! Powtórz ten proces dla każdej migrowanej bazy danych. Trochę wskazówek pomaga w administrowaniu bazami danych. Każdy serwer SQL będzie miał własne konfiguracje i przeszkody, z którymi trzeba się zmierzyć, ale mamy nadzieję, że ten artykuł zapewni Ci solidne podstawy do migracji do Microsoft SQL Server.
Szukasz usługi SQL o wysokiej dostępności, niezależnej od platformy, która jest łatwo skalowalna i może rozwijać się wraz z Twoją firmą? Sprawdź nasz produkt SQL as a Service oferowany w Liquid Web. Porozmawiaj z jednym z naszych niesamowitych doradców hostingowych, aby znaleźć idealne rozwiązanie dla Ciebie!