Udostępnij za pośrednictwem


Samouczek: migrowanie programu SQL Server do usługi Azure SQL Database (offline)

Usługi Azure Database Migration Service można używać za pośrednictwem witryny Azure Portal, aby migrować bazy danych z lokalnego wystąpienia programu SQL Server do usługi Azure SQL Database (offline).

Z tego samouczka dowiesz się, jak przeprowadzić migrację przykładowej AdventureWorks2022 bazy danych z lokalnego wystąpienia programu SQL Server do usługi Azure SQL Database przy użyciu usługi Database Migration Service. W tym samouczku używany jest tryb migracji offline, który uwzględnia akceptowalny czas przestoju podczas procesu migracji.

W tym poradniku nauczysz się, jak:

  • Tworzenie wystąpienia usługi Azure Database Migration Service
  • Rozpoczynanie migracji i monitorowanie postępu do ukończenia

Ważne

Obecnie migracje online dla celów usługi Azure SQL Database nie są dostępne w usłudze Azure Database Migration Service. Podczas migracji w trybie offline przestój aplikacji rozpoczyna się po rozpoczęciu migracji. Zaleca się przetestowanie migracji w trybie offline w celu ustalenia, czy przestój jest akceptowalny.

Opcje migracji

W poniższej sekcji opisano sposób używania usługi Azure Database Migration Service z witryną Azure Portal.

Wymagania wstępne

Przed rozpoczęciem samouczka:

  • Upewnij się, że masz dostęp do witryny Azure Portal.

  • Upewnij się, że dostawca zasobów Microsoft.DataMigration jest zarejestrowany w twojej subskrypcji.

  • Mieć konto platformy Azure przypisane do jednej z następujących wbudowanych ról:

    • Współautor docelowej bazy danych Azure SQL Database
    • Rola Odczytującego dla grupy zasobów Azure, która zawiera docelową Bazę Danych Azure SQL
    • Rola właściciela lub współautora dla subskrypcji platformy Azure (wymagana w przypadku utworzenia nowego wystąpienia usługi Azure Database Migration Service)

    Alternatywą dla używania jednej z tych wbudowanych ról jest przypisanie roli niestandardowej.

  • Utwórz docelową bazę danych Azure SQL Database .

  • Upewnij się, że identyfikator logowania SQL Server, który nawiązuje połączenie ze źródłowym wystąpieniem SQL Server, jest członkiem roli db_datareader, a identyfikator logowania docelowego wystąpienia SQL Server jest członkiem roli db_owner.

  • Aby przeprowadzić migrację schematu bazy danych ze źródła do docelowej bazy danych Azure SQL Database przy użyciu usługi Database Migration Service, wymagana minimalna obsługiwana wersja standardu SHIR to 5,37 lub nowsza.

  • W przypadku migracji schematu minimalnym uprawnieniem na źródłowym serwerze SQL jest rola db_owner w celu uzyskania dostępu do bazy danych, a na docelowej bazie danych Azure SQL Database użytkownik powinien być członkiem wszystkich ról na poziomie serwera wymienionych w poniższej tabeli.

Role Opis
##MS_DatabaseManager## Członkowie stałej roli serwera ##MS_DatabaseManager## mogą tworzyć i usuwać bazy danych. Członek roli ##MS_DatabaseManager### tworzącej bazę danych staje się właścicielem tej bazy danych, co pozwala temu użytkownikowi na łączenie się z bazą danych jako użytkownik dbo. Użytkownik dbo ma wszystkie uprawnienia bazy danych w tej bazie. Członkowie roli ##MS_DatabaseManager## nie muszą mieć uprawnień dostępu do baz danych, których nie posiadają. Zaleca się użycie tej roli serwera zamiast roli na poziomie bazy danych dbmanager, która istnieje w master bazie danych.
##MS_DatabaseConnector## Członkowie stałej roli serwera ##MS_DatabaseConnector## mogą łączyć się z dowolną bazą danych bez konieczności nawiązywania połączenia z kontem użytkownika w bazie danych.
##MS_DefinitionReader## Członkowie stałej roli serwera ##MS_DefinitionReader## mogą odczytywać wszystkie widoki wykazu objęte VIEW ANY DEFINITION dowolną bazą danych, w której członek tej roli ma konto użytkownika.
##MS_LoginManager## Członkowie stałej roli serwera ##MS_LoginManager## mogą tworzyć i usuwać loginy. Zaleca się używanie tej roli serwera zamiast roli na poziomie bazy danych loginmanager, który istnieje w master bazie danych.

Przygotowywanie docelowej bazy danych Azure SQL Database

Aby utworzyć login i użytkownika w docelowej usłudze Azure SQL Database, wykonaj następujący skrypt w bazie danych master.

CREATE LOGIN testuser WITH PASSWORD = '<password>';

ALTER SERVER ROLE ##MS_DefinitionReader## ADD MEMBER [testuser];
GO

ALTER SERVER ROLE ##MS_DatabaseConnector## ADD MEMBER [testuser];
GO

ALTER SERVER ROLE ##MS_DatabaseManager## ADD MEMBER [testuser];
GO

ALTER SERVER ROLE ##MS_LoginManager## ADD MEMBER [testuser];
GO

CREATE USER testuser FOR LOGIN testuser;
EXECUTE sp_addRoleMember 'dbmanager', 'testuser';
EXECUTE sp_addRoleMember 'loginmanager', 'testuser';

Teraz możesz migrować zarówno schemat bazy danych, jak i dane przy użyciu usługi Database Migration Service. Możesz również użyć innych narzędzi, takich jak rozszerzenie SQL Database Projects w programie Visual Studio Code, aby przeprowadzić migrację schematu przed wybraniem listy tabel do migracji.

Uwaga / Notatka

Jeśli żadne tabele nie istnieją w obiekcie docelowym usługi Azure SQL Database lub nie są zaznaczone żadne tabele przed rozpoczęciem migracji, przycisk Dalej nie jest dostępny do zainicjowania migracji. Jeśli tabela nie istnieje w obiekcie docelowym, musisz wybrać opcję migracji schematu, aby przejść do przodu.

Utwórz wystąpienie usługi migracji baz danych

Krok 1: W witrynie Azure Portal przejdź do strony usługi Azure Database Migration Service . Utwórz nowe wystąpienie usługi Azure Database Migration Service lub ponownie użyj istniejącego utworzonego wcześniej wystąpienia.

Używanie istniejącego wystąpienia usługi Database Migration Service

Aby użyć istniejącej instancji usługi migracji baz danych:

  • W witrynie Azure Portal w obszarze Azure Database Migration Services wybierz istniejące wystąpienie usługi Database Migration Service, którego chcesz użyć, upewniając się, że znajduje się on we właściwej grupie zasobów i regionie.

    Zrzut ekranu przedstawiający przegląd usługi Database Migration Service.

Utwórz nowe wystąpienie usługi Migracji Baz Danych

Aby utworzyć nowe wystąpienie usługi migracji baz danych:

  1. W witrynie Azure Portal w obszarze Azure Database Migration Service wybierz pozycję Utwórz.

    Zrzut ekranu przedstawiający opcję tworzenia usługi Database Migration Service.

  2. W obszarze Wybieranie scenariusza migracji i usługi Database Migration Service wybierz żądane dane wejściowe, takie jak Typ serwera źródłowego i docelowego, wybierz pozycję Database Migration Service i wybierz pozycję Wybierz.

    Zrzut ekranu przedstawiający scenariusze migracji usługi Database Migration Service.

  3. Na następnym ekranie Utwórz usługę Data Migration Service wybierz swoją subskrypcję i grupę zasobów, a następnie wybierz pozycję Lokalizacja i wprowadź nazwę usługi Database Migration Service. Wybierz Przejrzyj + Utwórz. Spowoduje to utworzenie usługi Azure Database Migration Service.

    Zrzut ekranu przedstawiający wymagane szczegóły danych wejściowych usługi Database Migration Service.

  4. Jeśli jest wymagane własne środowisko Integration Runtime (SHIR), na stronie przeglądu usługi Database Migration Service i w obszarze Ustawienia wybierz pozycję Integration Runtime i wykonaj następujące kroki:

    1. Wybierz pozycję Konfiguruj środowisko Integration Runtime i wybierz link Pobierz i zainstaluj środowisko Integration Runtime , aby otworzyć link pobierania w przeglądarce internetowej. Pobierz Integration Runtime, a następnie zainstaluj go na komputerze, który spełnia wymagania wstępne dotyczące połączenia ze źródłowym wystąpieniem SQL Server. Aby uzyskać więcej informacji, zobacz Self-hosted integration runtime for database migrations (Własne środowisko Integration Runtime na potrzeby migracji baz danych).

      Zrzut ekranu przedstawiający link Pobierz i zainstaluj środowisko Integration Runtime.

      Po zakończeniu instalacji program Microsoft Integration Runtime Configuration Manager zostanie automatycznie otwarty, aby rozpocząć proces rejestracji.

    2. W tabeli Klucz uwierzytelniania skopiuj jeden z kluczy uwierzytelniania podanych w kreatorze i wklej go w programie Microsoft Integration Runtime Configuration Manager.

      Zrzut ekranu uwydatniający tabelę kluczy uwierzytelniania w kreatorze.

      Jeśli klucz uwierzytelniania jest prawidłowy, w programie Integration Runtime Configuration Manager zostanie wyświetlona zielona ikona sprawdzania. Zielony znacznik wyboru wskazuje, że możesz kontynuować Zarejestruj.

      Po zarejestrowaniu własnego środowiska Integration Runtime zamknij program Microsoft Integration Runtime Configuration Manager. Może upłynąć kilka minut, zanim szczegóły węzła zostaną odzwierciedlone w portalu Azure dla usługi Database Migration Service, w obszarze Ustawienia > Wdrożenie środowiska do integracji.

      Zrzut ekranu przedstawiający stan funkcji SHIR w witrynie Azure Portal.

      Uwaga / Notatka

      Aby uzyskać więcej informacji na temat własnego środowiska Integration Runtime, zobacz Tworzenie i konfigurowanie własnego środowiska Integration Runtime.

Rozpoczynanie nowej migracji

  1. Aby rozpocząć nową migrację, przejdź do usługi Azure Database Migration Service w witrynie Azure Portal i użyj polecenia +Utwórz , aby utworzyć nowe wystąpienie usługi Database Migration Service lub wybierz istniejące wystąpienie, a następnie przejdź do wystąpienia usługi Azure Database Migration Service.

  2. W okienku Przegląd wystąpienia usługi Azure Database Migration Service wybierz pozycję Nowa migracja:

    Zrzut ekranu przedstawiający pulpit nawigacyjny migracji usługi Azure Database.

  3. W obszarze Wybierz nowy scenariusz migracji wybierz źródło, typ serwera docelowego, tryb migracji i wybierz pozycję Wybierz.

    Zrzut ekranu przedstawiający wybieranie nowego scenariusza migracji.

  4. W Kreatorze migracji w trybie offline usługi Azure SQL Database wykonaj następujące kroki:

    1. Na karcie Szczegóły źródła wprowadź szczegóły źródłowego wystąpienia programu SQL Server, a następnie wybierz pozycję Dalej: Połącz ze źródłowym programem SQL Server:

      Zrzut ekranu przedstawiający śledzenie źródła.

    2. Na karcie Połącz ze źródłowym programem SQL Server podaj szczegóły połączenia, a następnie wybierz pozycję Dalej: Wybierz bazy danych do migracji:

      Zrzut ekranu przedstawiający łączenie ze źródłem.

    3. Na karcie Wybieranie baz danych do migracji zaznacz pole wyboru obok baz danych, które chcesz przeprowadzić migrację. Wypełnianie listy baz danych może zająć trochę czasu. Wybierz pozycję Dalej: Połącz się z docelową usługą Azure SQL Database.

      Zrzut ekranu przedstawiający wybieranie bazy danych.

    4. Na karcie Połącz z docelową usługą Azure SQL Database podaj szczegóły połączenia, a następnie wybierz pozycję Dalej: Mapuj źródłowe i docelowe bazy danych:

      Zrzut ekranu przedstawiający obiekt docelowy połączenia.

    5. Na karcie Mapuj źródłowe i docelowe bazy danych zamapuj bazy danych między źródłem i obiektem docelowym.

      Zrzut ekranu przedstawiający bazy danych mapy.

    6. (Opcjonalnie) Zaznacz pole wyboru obok pozycji Migrowanie brakującego schematu , aby wdrożyć brakujące obiekty schematu ze źródła do obiektu docelowego usługi Azure SQL Database, aby przeprowadzić migrację następujących obiektów schematu z jednym polem wyboru:

      • Schemat
      • Tabele (wybrane)
      • Indeksy
      • Widoki
      • Procedury składowane (StoredProcedures)
      • Synonimy
      • Wyzwalacze DDL (DdlTriggers)
      • Ustawienia domyślne
      • Wykazy pełnotekstowe (FullTextCatalogs)
      • Przewodniki planowania (PlanGuides)
      • Role
      • Reguły
      • Role aplikacji (ApplicationRoles)
      • Agregacje zdefiniowane przez użytkownika (UserDefinedAggregates)
      • Typy danych zdefiniowanych przez użytkownika (UserDefinedDataTypes)
      • Funkcje zdefiniowane przez użytkownika (UserDefinedFunctions)
      • Typy tabel zdefiniowanych przez użytkownika (UserDefinedTableTypes)
      • Typy zdefiniowane przez użytkownika (UserDefinedTypes)
      • Użytkownicy* (nie każdy typ użytkownika)
      • XmlSchemaCollections

      Uwaga / Notatka

      • Jeśli wybierzesz Migruj brakujący schemat, usługa migrowania bazy danych przeprowadzi migrację schematu przed migracją danych.
      • Usługa DMS kontynuuje fazę migracji danych, nawet jeśli migracja schematu napotka błędy, chyba że występują problemy z obiektami tabeli.

      Następnie użyj polecenia Wybierz wszystkie tabele , aby przeprowadzić migrację wszystkich tabel, lub użyj pola wprowadzania tekstu, aby przefiltrować listę tabel i wybrać poszczególne tabele do migracji. Następnie wybierz pozycję Dalej: Podsumowanie migracji bazy danych.

      Zrzut ekranu przedstawiający wybieranie schematu i tabel.

    7. Na karcie Podsumowanie migracji bazy danych przejrzyj szczegóły, a następnie wybierz pozycję Rozpocznij migrację, która rozpoczyna migrację bazy danych i automatycznie przenosi Cię z powrotem do pulpitu nawigacyjnego usługi Database Migration Service.

      Zrzut ekranu przedstawiający podsumowanie.

      Uwaga / Notatka

      W przypadku migracji w trybie offline przestój aplikacji rozpoczyna się po rozpoczęciu migracji.

Monitorowanie migracji bazy danych

  1. Aby monitorować migrację bazy danych, w okienku Przegląd wystąpienia usługi Database Migration Service wybierz pozycję Monitoruj migracje.

    Zrzut ekranu przedstawiający omówienie usługi Azure Database Migration Service w witrynie Azure Portal.

  2. Na karcie Migracje możesz śledzić migracje , które są w toku, zakończone i zakończone niepowodzeniem (jeśli istnieją) lub wyświetlić wszystkie migracje bazy danych. Na pasku menu wybierz pozycję Odśwież , aby zaktualizować stan migracji.

    Zrzut ekranu przedstawiający monitorowanie pulpitu nawigacyjnego usługi DMS.

    Usługa Database Migration Service zwraca najnowszy znany stan migracji przy każdym odświeżeniu stanu migracji. W poniższej tabeli opisano możliwe stany:

    Stan Opis
    Tworzenie Usługa uruchamia migrację.
    Przygotowywanie do kopiowania Usługa wyłącza automatyczne statystyki, wyzwalacze oraz indeksy w tabeli docelowej.
    kopiowanie Dane są kopiowane ze źródłowej bazy danych do docelowej bazy danych.
    Kopiowanie zostało zakończone Kopiowanie danych zostało zakończone. Usługa czeka na zakończenie kopiowania innych tabel, aby rozpocząć ostatnie kroki powrotu tabel do ich oryginalnego schematu.
    Ponowne kompilowanie indeksów Usługa ponownie kompiluje indeksy w tabelach docelowych.
    Powodzenie Wszystkie dane są kopiowane, a indeksy zostaną ponownie skompilowane.
  3. W obszarze Nazwa źródła wybierz nazwę bazy danych, aby otworzyć widok tabeli. W tym szczegółowym widoku zobaczysz bieżący stan migracji, liczbę tabel, które są obecnie w tym stanie, oraz szczegółowy stan każdej tabeli:

    Zrzut ekranu przedstawiający szczegółowe monitorowanie migracji.

  4. Gdy wszystkie dane tabeli są migrowane do miejsca docelowego usługi Azure SQL Database, usługa Database Migration Service aktualizuje stan migracji z W toku na Powodzenie.

    Zrzut ekranu przedstawiający szczegółowy sukces migracji.

Uwaga / Notatka

Usługa Database Migration Service optymalizuje migrację, pomijając tabele bez danych (0 wierszy). Tabele, które nie zawierają danych, nie są wyświetlane na liście, nawet jeśli zostały wybrane tabele podczas tworzenia migracji.

Migracja do usługi Azure SQL Database została ukończona. Zapoznaj się z serią zadań wykonywanych po migracji, aby upewnić się, że wszystko działa bezproblemowo i wydajnie.


Ograniczenia

Migracja w trybie offline usługi Azure SQL Database korzysta z potoków usługi Azure Data Factory (ADF) na potrzeby przenoszenia danych, a tym samym przestrzega ograniczeń usługi ADF. Odpowiednia usługa ADF jest tworzona podczas tworzenia usługi migracji bazy danych. W związku z tym limity fabryk mają zastosowanie do poszczególnych usług.

  • Maszyna, na której zainstalowano środowisko SHIR, działa jako środowisko obliczeniowe migracji. Upewnij się, że ta maszyna może obsłużyć obciążenie procesora i pamięci kopii danych. Aby dowiedzieć się więcej, zobacz Tworzenie i konfigurowanie własnego środowiska Integration Runtime.
  • 100 000 tabel na limit bazy danych.
  • 10 000 współbieżnych migracji baz danych na usługę.
  • Szybkość migracji w dużym stopniu zależy od docelowej jednostki SKU usługi Azure SQL Database i hosta własnego środowiska Integration Runtime.
  • ** Migracja usługi Azure SQL Database słabo skalowuje się wraz ze wzrostem liczby tabel ze względu na narzut związany z usługą ADF przy uruchamianiu działań. Jeśli baza danych zawiera tysiące tabel, proces uruchamiania każdej tabeli może potrwać kilka sekund, nawet jeśli składają się one z jednego wiersza z 1 bitem danych.
  • Nazwy tabel usługi Azure SQL Database z znakami dwubajtowymi nie są obecnie obsługiwane w przypadku migracji. Środki zaradcze polegają na zmianie nazw tabel przed migracją; można je zmienić z powrotem na oryginalne nazwy po pomyślnej migracji.
  • Migracja tabel z dużymi kolumnami obiektów blob może zakończyć się niepowodzeniem z powodu przekroczenia limitu czasu.
  • Nazwy baz danych z zarezerwowaną usługą SQL Server nie są obecnie obsługiwane.
  • Nazwy baz danych, które zawierają średniki, nie są obecnie obsługiwane.
  • Obliczone kolumny nie są migrowane.
  • Kolumny w źródłowej bazie danych, które mają ograniczenia domyślne i zawierają wartości NULL, są migrowane ze zdefiniowanymi wartościami domyślnymi w docelowej bazie danych Azure SQL Database, zamiast zachowywania wartości NULL.