Najlepsze praktyki migracji baz danych
Proszę użyć usługi Azure Database Migration Service do zmigrowania bazy danych SQL Server do Azure SQL przy minimalnym przestoju oraz rozwiązać typowe problemy ze schematem i zgodnością.
Najlepsze praktyki migracji baz danych to bezpłatna lekcja Cloud & IT Cert Prep na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Cloud & IT Cert Prep, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Cloud & IT Cert Prep zawiera 4 lekcji w sumie.
Dlaczego migracja baz danych wygląda inaczej
Migracja bazy danych jest bardziej złożona niż przeniesienie maszyny wirtualnej, ponieważ bazy danych są stanowe i często mają aktywne połączenia przez całą dobę. Naiwne podejście polegające na skopiowaniu i odtworzeniu bazy wymagałoby wielogodzinnego przestoju, co jest niedopuszczalne w systemach produkcyjnych. Najlepsze praktyki migracji baz danych obejmują ciągłą replikację danych, która utrzymuje synchronizację źródła i celu podczas weryfikacji celu, a następnie krótkie, zaplanowane przełączenie, podczas którego ruch zostaje przekierowany do nowej bazy danych na platformie Azure.
Azure Database Migration Service
Azure Database Migration Service (DMS) to w pełni zarządzana usługa, która koordynuje migracje online (z niemal zerowym przestojem) i offline (oparte na przestoju) z popularnych lokalnych silników baz danych do zarządzanych usług baz danych platformy Azure. DMS obsługuje źródła takie jak SQL Server, MySQL, PostgreSQL, MongoDB, Oracle oraz cele takie jak Azure SQL Database, Azure SQL Managed Instance, Azure Database for MySQL i Azure Cosmos DB. Usługa integruje się z narzędziem Data Migration Assistant (DMA) w celu przeprowadzania kontroli zgodności przed migracją.
# Create a DMS instance
az dms create \
--service-name myDMS \
--resource-group myRG \
--location eastus \
--sku-name Premium_4vCores \
--vnet myVnet \
--subnet mySubnetOcena przed migracją za pomocą DMA
Przed migracją programu SQL Server uruchom narzędzie Data Migration Assistant (DMA) dla źródłowej bazy danych. DMA identyfikuje: problemy ze zgodnością (funkcje używane w bazie danych, które nie są obsługiwane przez docelowy produkt Azure SQL), zmiany powodujące niezgodność, przestarzałe funkcje oraz rekomendacje dotyczące wydajności. Generuje szczegółowy raport HTML, w którym problemy są uporządkowane według ważności, aby zespół mógł je rozwiązać przed rozpoczęciem okna migracji.
# Run DMA assessment from CLI (Windows only)
# DmaCmd.exe /AssessmentName='SQL2022toAzureSQL' \
# /AssessmentSourcePlatform='SqlOnPrem' \
# /AssessmentTargetPlatform='AzureSqlDatabase' \
# /AssessmentDatabases='Server=myServer;Initial Catalog=AdventureWorks;Integrated Security=true'Migracja online a offline
Migracja offline wyłącza źródłową bazę danych na czas migracji — jest to akceptowalne w przypadku małych baz danych lub systemów niekrytycznych, dla których można zaplanować okno konserwacji. Migracja online wykorzystuje przechwytywanie zmienionych danych (CDC) lub wysyłanie dziennika transakcji, aby nieprzerwanie replikować zmiany podczas ładowania nowej bazy danych, ograniczając przestój do samego końcowego etapu przełączenia. Migracja online jest zalecana w przypadku baz danych większych niż 1 GB lub objętych umowami SLA wymagającymi przestoju krótszego niż 1 godzina.
Konfigurowanie projektu migracji DMS
Projekt migracji DMS określa połączenie źródłowe (nazwę serwera, uwierzytelnianie i nazwy baz danych), połączenie docelowe (parametry połączenia z Azure SQL) oraz tryb migracji (online lub offline). Należy również wybrać bazy danych i tabele do migracji. DMS sprawdza łączność przed rozpoczęciem migracji. Projekt migracji jest zachowywany w portalu Azure, dzięki czemu można monitorować postęp, ponawiać migrację tabel, których nie udało się przenieść, i wyświetlać szczegółowe dzienniki aktywności.
# Create a DMS project for SQL Server to Azure SQL Database
az dms project create \
--service-name myDMS \
--resource-group myRG \
--name SQL2AzureSQL \
--source-platform SQL \
--target-platform SQLDB \
--location eastusNajpierw migracja schematu
Zawsze należy przeprowadzić migrację schematu przed danymi. Narzędzia DMA lub SQL Server Management Studio (SSMS) należy użyć do utworzenia skryptów i wdrożenia tabel, widoków, procedur składowanych, funkcji i indeksów w docelowej bazie danych Azure SQL Database. Przed zezwoleniem usłudze DMS na rozpoczęcie transferu danych należy sprawdzić, czy wszystkie obiekty schematu istnieją i kompilują się bez błędów. Błędy schematu wykryte w trakcie migracji mogą uszkodzić proces migracji i zmusić do jego ponownego rozpoczęcia od zera.
# Generate schema scripts using sqlpackage
sqlpackage /Action:Script \
/SourceServerName:myOnPremServer \
/SourceDatabaseName:AdventureWorks \
/TargetServerName:mysqlserver.database.windows.net \
/TargetDatabaseName:AdventureWorksAzure \
/OutputPath:/tmp/schema.sqlPoczątkowe ładowanie danych
DMS wykonuje pełne ładowanie danych, odczytując źródłową bazę danych tabela po tabeli i zapisując wiersze w miejscu docelowym Azure SQL za pomocą operacji bulk insert. Podczas pełnego ładowania usługa obsługuje duże tabele, dzieląc je na partie. Indeksy w miejscu docelowym są wyłączane na czas ładowania w celu maksymalizacji przepustowości, a następnie odbudowywane. W przypadku bardzo dużych baz danych (w skali TB) warto rozważyć użycie Azure Data Factory lub eksportów bacpac do wstępnego załadowania danych i skrócenia czasu działania DMS.
Przechwytywanie zmian danych na potrzeby synchronizacji online
W przypadku migracji online DMS włącza funkcję SQL Server Change Data Capture (CDC) w źródłowej bazie danych, aby przechwytywać operacje INSERT, UPDATE i DELETE wykonywane podczas pełnego ładowania. Po zakończeniu pełnego ładowania DMS odtwarza przechwycone zmiany w miejscu docelowym, stopniowo zmniejszając różnicę. Gdy opóźnienie spadnie niemal do zera, baza danych jest gotowa do przełączenia. Funkcja CDC wymaga uruchomienia SQL Server Agent oraz ustawienia źródłowej bazy danych w trybie full recovery.
-- Enable CDC on source database
EXEC sys.sp_cdc_enable_db;
-- Enable CDC on specific table
EXEC sys.sp_cdc_enable_table
@source_schema = N'dbo',
@source_name = N'Orders',
@role_name = NULL;Przełączenie i weryfikacja
Gdy opóźnienie CDC jest minimalne, zainicjuj przełączenie w portalu DMS. DMS przestaje przyjmować nowe zdarzenia CDC, stosuje pozostałe zmiany i oznacza migrację jako ukończoną. Następnie należy przekierować parametry połączeń aplikacji do punktu końcowego Azure SQL. Uruchom zapytania weryfikujące dane, porównując liczbę wierszy i agregaty sum kontrolnych między źródłem a miejscem docelowym dla tabel krytycznych. Pozostaw źródłową bazę danych w trybie tylko do odczytu przez 24–48 godzin po przełączeniu, na wypadek konieczności wycofania zmian.
-- Validate row counts post-cutover
SELECT TABLE_NAME, TABLE_ROWS
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'dbo'
ORDER BY TABLE_NAME;Dostrajanie wydajności po migracji
Po migracji Azure SQL Database może działać inaczej niż lokalny SQL Server ze względu na różnice w pamięciach podręcznych planów zapytań, statystykach i sprzęcie. Uruchom Database Experimentation Assistant (DEA), aby odtworzyć ślady obciążenia w miejscu docelowym Azure i porównać plany wykonania. Włącz funkcję Automatic Tuning w Azure SQL, aby usługa automatycznie tworzyła lub usuwała indeksy oraz wymuszała plany zapytań, które nie powodują regresji, poprawiając wydajność z czasem bez ręcznej ingerencji.
-- Enable Automatic Tuning on Azure SQL Database
ALTER DATABASE CURRENT SET AUTOMATIC_TUNING (
FORCE_LAST_GOOD_PLAN = ON,
CREATE_INDEX = ON,
DROP_INDEX = OFF
);Migracja innych aparatów baz danych
DMS obsługuje również migrację aparatów open source: MySQL do Azure Database for MySQL przy użyciu wzorca mysqldump + binlog replication oraz PostgreSQL do Azure Database for PostgreSQL z użyciem slotów replikacji logicznej. W przypadku migracji MongoDB do Cosmos DB użyj interfejsu API Cosmos DB for MongoDB oraz natywnego potoku mongodump / mongorestore albo konektora MongoDB usługi Azure Data Factory na potrzeby przyrostowego CDC. Zawsze testuj migrację na kopii nieprodukcyjnej przed uruchomieniem jej dla danych działającego systemu.
# Offline MySQL migration using mysqldump
mysqldump -h source-server -u admin -p \
--single-transaction --routines --triggers \
myDatabase > /tmp/myDatabase.sql
# Restore to Azure Database for MySQL
mysql -h myserver.mysql.database.azure.com \
-u adminUser@myserver -p myDatabase < /tmp/myDatabase.sqlSzybkie sprawdzenie
Sprawdź swoją wiedzę na temat zagadnień Microsoft Azure Fundamentals (AZ-900) omówionych w tej lekcji.
Podsumowanie lekcji
W tej lekcji poznali Państwo następujące zagadnienia: Azure Database Migration Service koordynuje migracje baz danych online i offline, ocena przed migracją za pomocą DMA pozwala wykryć problemy ze zgodnością przed rozpoczęciem okna migracji, a przechwytywanie zmian danych umożliwia przełączenie produkcyjnych baz danych z niemal zerowym przestojem. W następnej części skupimy się na optymalizacji kosztów Azure.
Ucz się Cloud & IT Cert Prep dzięki korepetycjom AI — za darmo
Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.
- Kursy
- 150
- Lekcje
- 600
Często zadawane pytania
Czy lekcja „Najlepsze praktyki migracji baz danych” jest bezpłatna?
Tak — pełny tekst „Najlepsze praktyki migracji baz danych” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Cloud & IT Cert Prep, przejdź na CoddyKit PRO. Kurs Cloud & IT Cert Prep zawiera 4 lekcji w sumie.
Co nauczysz się w „Najlepsze praktyki migracji baz danych”?
Proszę użyć usługi Azure Database Migration Service do zmigrowania bazy danych SQL Server do Azure SQL przy minimalnym przestoju oraz rozwiązać typowe problemy ze schematem i zgodnością. Ćwiczysz Cloud & IT Cert Prep z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Cloud & IT Cert Prep?
Nie wymagamy żadnego doświadczenia. Cloud & IT Cert Prep w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.
Ile czasu zajmuje lekcja „Najlepsze praktyki migracji baz danych”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Cloud & IT Cert Prep?
Tak. Każda lekcja Cloud & IT Cert Prep zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Struktura migracji 6-R
- Azure Migrate: wykrywanie i ocena
- Rehosting za pomocą Azure Migrate (lift and shift)
- Najlepsze praktyki migracji baz danych