Migrowanie baz danych na dużą skalę przy użyciu automatyzacji (wersja zapoznawcza)

Rozszerzenie azure SQL Migration dla usługi Azure Data Studio łączy uproszczone środowisko oceny, rekomendacji i migracji, które zapewnia następujące możliwości:

  • Rozszerzony mechanizm oceny może oceniać wystąpienia programu SQL Server, identyfikując bazy danych gotowe do migracji do różnych celów usługi Azure SQL.
  • Aparat rekomendacji jednostki SKU (wersja zapoznawcza), który zbiera dane wydajności ze źródłowego wystąpienia programu SQL Server w środowisku lokalnym, generując zalecenia dotyczące jednostki SKU o odpowiednim rozmiarze na podstawie celu usługi Azure SQL.
  • Niezawodna usługa platformy Azure obsługiwana przez usługę Azure Database Migration Service, która organizuje działania przenoszenia danych w celu zapewnienia bezproblemowego środowiska migracji.
  • Możliwość uruchamiania w trybie online (w przypadku migracji wymagających minimalnego przestoju) lub offline (w przypadku migracji, w przypadku których przestój utrzymuje się przez migrację) tryby migracji zgodnie z wymaganiami biznesowymi.
  • Elastyczność tworzenia i konfigurowania własnego środowiska Integration Runtime w celu zapewnienia własnych zasobów obliczeniowych na potrzeby uzyskiwania dostępu do źródłowego programu SQL Server i kopii zapasowych w środowisku lokalnym.

Za pomocą narzędzi automatyzacji, takich jak program PowerShell — moduł usługi Azure DataMigration Service lub interfejs wiersza polecenia platformy Azure, można zastosować możliwości rozszerzenia azure SQL Migration wraz z usługą Azure Database Migration Service w celu migracji co najmniej jednej bazy danych na dużą skalę (w tym baz danych w wielu wystąpieniach programu SQL Server).

Następujące przykładowe skrypty można odwołać do scenariusza migracji przy użyciu programu Azure PowerShell lub interfejsu wiersza polecenia platformy Azure:

Scenariusz migracji Język skryptów
Ocena programu SQL Server Interfejs wiersza polecenia platformy Azure programu PowerShell /
Program SQL Server do usługi Azure SQL Managed Instance (przy użyciu udziału plików) Interfejs wiersza polecenia platformy Azure programu PowerShell /
Program SQL Server do usługi Azure SQL Managed Instance (przy użyciu usługi Azure Storage) Interfejs wiersza polecenia platformy Azure programu PowerShell /
Program SQL Server do programu SQL Server na maszynach wirtualnych platformy Azure (przy użyciu udziału plików) Interfejs wiersza polecenia platformy Azure programu PowerShell /
Program SQL Server do programu SQL Server na maszynach wirtualnych platformy Azure (przy użyciu usługi Azure Storage) Interfejs wiersza polecenia platformy Azure programu PowerShell /
Sql Server do usługi Azure SQL Database Interfejs wiersza polecenia platformy Azure programu PowerShell /
Zalecenia dotyczące jednostki SKU (wersja zapoznawcza) Interfejs wiersza polecenia platformy Azure programu PowerShell /
Kompleksowa automatyzacja migracji Interfejs wiersza polecenia platformy Azure programu PowerShell /
Kompleksowa automatyzacja migracji dla wielu baz danych Interfejs wiersza polecenia platformy Azure programu PowerShell /

Wymagania wstępne

Wymagania wstępne wspólne dla wszystkich obsługiwanych scenariuszy migracji przy użyciu programu Azure PowerShell lub interfejsu wiersza polecenia platformy Azure to:

  • Masz konto platformy Azure przypisane do jednej z wbudowanych ról wymienionych poniżej:

    • Współautor docelowego wystąpienia zarządzanego Azure SQL, programu SQL Server na maszynach wirtualnych platformy Azure lub w usłudze Azure SQL Database oraz konta usługi Storage w celu przekazania plików kopii zapasowej bazy danych z udziału sieciowego SMB (nie dotyczy usługi Azure SQL Database).
    • Rola czytelnika dla grup zasobów platformy Azure zawierających docelowe wystąpienie zarządzane Azure SQL, program SQL Server na maszynach wirtualnych platformy Azure lub w usłudze Azure SQL Database.
    • Rola właściciela lub współautora dla subskrypcji platformy Azure.

    Ważne

    Konto platformy Azure jest wymagane tylko w przypadku uruchamiania kroków migracji i nie jest wymagane do przeprowadzenia procesu oceny lub kroków rekomendacji platformy Azure.

  • Tworzenie docelowego wystąpienia zarządzanego Azure SQL, programu SQL Server na maszynie wirtualnej platformy Azure lub usługi Azure SQL Database

    Ważne

    Jeśli elementem docelowym jest usługa Azure SQL Database, musisz przeprowadzić migrację schematu bazy danych ze źródła do miejsca docelowego przy użyciu rozszerzenia dacpac programu SQL Server lub rozszerzenia SQL Database Projects dla usługi Azure Data Studio.

    Jeśli masz istniejącą maszynę wirtualną platformy Azure, powinna zostać zarejestrowana w rozszerzeniu agenta IaaS SQL w trybie pełnego zarządzania.

  • Jeśli twoim celem jest usługa Azure SQL Managed Instance lub program SQL Server na maszynie wirtualnej platformy Azure, upewnij się, że identyfikatory logowania używane do łączenia źródłowego programu SQL Server są członkami roli serwera sysadmin lub mają CONTROL SERVER uprawnienia.

  • Jeśli elementem docelowym jest usługa Azure SQL Database, upewnij się, że identyfikator logowania używany do łączenia źródłowego programu SQL Server należy do elementu członkowskiego, a db_datareader identyfikator logowania docelowego serwera SQL to db_owner.

  • Użyj jednej z następujących opcji magazynowania dla pełnych plików kopii zapasowej bazy danych i dziennika transakcji:

    • Udział sieciowy SMB
    • Udział plików lub kontener obiektów blob konta usługi Azure Storage

    Ważne

    • Jeśli pliki kopii zapasowej bazy danych znajdują się w udziale sieciowym SMB, utwórz konto usługi Azure Storage, które umożliwia usłudze DMS przekazywanie plików kopii zapasowych bazy danych. Pamiętaj, aby utworzyć konto usługi Azure Storage w tym samym regionie co wystąpienie usługi Azure Database Migration Service.
    • Upewnij się, że kontener obiektów blob konta usługi Azure Storage jest używany wyłącznie do przechowywania plików kopii zapasowych. Każdy inny typ plików (txt, png, jpg itp.) zakłóca proces przywracania prowadzący do awarii.
    • Usługa Azure Database Migration Service nie inicjuje żadnych kopii zapasowych, a zamiast tego używa istniejących kopii zapasowych, które mogą już znajdować się w ramach planu odzyskiwania po awarii na potrzeby migracji.
    • Każdą kopię zapasową można zapisać w osobnym pliku kopii zapasowej lub w wielu plikach kopii zapasowej. Jednak dołączanie wielu kopii zapasowych (tj. pełnych kopii zapasowych i kopii zapasowych dzienników transakcji) do jednego nośnika kopii zapasowej nie jest obsługiwane.
    • Użyj skompresowanych kopii zapasowych, aby zmniejszyć prawdopodobieństwo wystąpienia potencjalnych problemów związanych z migracją dużych kopii zapasowych.
  • Upewnij się, że konto usługi z uruchomionym źródłowym wystąpieniem programu SQL Server ma uprawnienia do odczytu i zapisu w udziale sieciowym SMB zawierającym pliki kopii zapasowej bazy danych.

  • Źródłowy certyfikat wystąpienia programu SQL Server z bazy danych chronionej przez funkcję Transparent Data Encryption (TDE) musi zostać zmigrowany do docelowego wystąpienia zarządzanego usługi Azure SQL lub programu SQL Server na maszynie wirtualnej platformy Azure przed migracją danych. Aby uzyskać więcej informacji na temat migrowania baz danych z obsługą funkcji TDE, zobacz Samouczek: migrowanie baz danych z obsługą funkcji TDE (wersja zapoznawcza) do usługi Azure SQL w narzędziu Azure Data Studio.

    Napiwek

    Jeśli baza danych zawiera poufne dane chronione przez funkcję Always Encrypted, proces migracji przy użyciu narzędzia Azure Data Studio z usługą DMS automatycznie zmigruje klucze Always Encrypted do docelowego wystąpienia zarządzanego Azure SQL lub programu SQL Server na maszynie wirtualnej platformy Azure.

  • Jeśli kopie zapasowe bazy danych znajdują się w sieciowym udziale plików, podaj maszynę do zainstalowania własnego środowiska Integration Runtime w celu uzyskania dostępu do kopii zapasowych bazy danych i migracji ich. Moduły programu Azure PowerShell lub interfejsu wiersza polecenia platformy Azure udostępniają klucze uwierzytelniania do rejestrowania własnego środowiska Integration Runtime. W ramach przygotowań do migracji upewnij się, że maszyna, na której planujesz zainstalować własne środowisko Integration Runtime, ma włączone następujące reguły zapory ruchu wychodzącego i nazwy domen:

    Nazwy domen Porty wychodzące opis
    Chmura publiczna: {datafactory}.{region}.datafactory.azure.net
    lub *.frontend.clouddatahub.net
    Azure Government: {datafactory}.{region}.datafactory.azure.us
    Chiny: {datafactory}.{region}.datafactory.azure.cn
    443 Wymagane przez własne środowisko Integration Runtime do nawiązania połączenia z usługą Data Migration Service.
    W przypadku nowo utworzonej fabryki danych w chmurze publicznej znajdź nazwę FQDN z poziomu własnego klucza środowiska Integration Runtime, który ma format {datafactory}.{region}.datafactory.azure.net. Jeśli w przypadku starej fabryki danych nie widzisz nazwy FQDN w kluczu integracji hostowanej samodzielnie, zamiast tego użyj wartości *.frontend.clouddatahub.net.
    download.microsoft.com 443 Wymagane przez własne środowisko Integration Runtime do pobierania aktualizacji. Jeśli wyłączono automatyczną aktualizację, możesz pominąć konfigurowanie tej domeny.
    *.core.windows.net 443 Używany przez własne środowisko Integration Runtime, które nawiązuje połączenie z kontem usługi Azure Storage na potrzeby przekazywania kopii zapasowych bazy danych z udziału sieciowego

    Napiwek

    Jeśli pliki kopii zapasowej bazy danych są już dostępne na koncie usługi Azure Storage, środowisko Integration Runtime (Self-hosted) nie jest wymagane podczas procesu migracji.

  • W przypadku korzystania z własnego środowiska Integration Runtime upewnij się, że maszyna, na której zainstalowano środowisko uruchomieniowe, może połączyć się ze źródłowym wystąpieniem programu SQL Server i udziałem plików sieciowych, na którym znajdują się pliki kopii zapasowej.

  • Port wychodzący 445 powinien być włączony w celu uzyskania dostępu do sieciowego udziału plików.

  • Jeśli używasz usługi Azure Database Migration Service po raz pierwszy, upewnij się, że dostawca zasobów Microsoft.DataMigration jest zarejestrowany w subskrypcji. Możesz wykonać kroki rejestrowania dostawcy zasobów

    Ważne

    Jeśli celem migracji jest usługa Azure SQL Database, nie musisz wykonywać kopii zapasowych w celu przeprowadzenia tej migracji. Migracja do usługi Azure SQL Database jest uważana za logiczną migrację obejmującą wstępne tworzenie i przenoszenie danych bazy danych (wykonywane przez usługę DMS).

Automatyzowanie migracji bazy danych

Za pomocą modułu Az.DataMigration lub interfejsu wiersza polecenia platformy Azure az datamigration można migrować bazy danych, automatyzując tworzenie usługi Azure Database Migration Service, konfigurowanie migracji baz danych na potrzeby migracji online i przeprowadzanie migracji jednorazowej. Istnieje kilka innych poleceń i funkcji, które są udokumentowane w przykładach platformy Azure.

Przykład automatyzacji migracji bazy danych programu SQL Server przy użyciu interfejsu wiersza polecenia platformy Azure: Krok 1: Tworzenie usługi Azure Database Migration Service, która będzie organizować działania migracji bazy danych.

#STEP 1: Create Database Migration Service
az datamigration sql-service create --resource-group "myRG" --sql-migration-service-name "myMigrationService" --location "EastUS2"

Krok 2. Konfigurowanie i uruchamianie migracji bazy danych online z lokalnego programu SQL Server (z kopiami zapasowymi w usłudze Azure Storage) do usługi Azure SQL Managed Instance.

#STEP 2: Start Migration
az datamigration sql-managed-instance create `
--source-location '{\"AzureBlob\":{\"storageAccountResourceId\":\"/subscriptions/mySubscriptionID/resourceGroups/myRG/providers/Microsoft.Storage/storageAccounts/dbbackupssqlbits\",\"accountKey\":\"myAccountKey\",\"blobContainerName\":\"dbbackups\"}}' `
--migration-service "/subscriptions/mySubscriptionID/resourceGroups/myRG/providers/Microsoft.DataMigration/SqlMigrationServices/myMigrationService" `
--scope "/subscriptions/mySubscriptionID/resourceGroups/myRG/providers/Microsoft.Sql/managedInstances/mySQLMI" `
--source-database-name "AdventureWorks2008" `
--source-sql-connection authentication="SqlAuthentication" data-source="mySQLServer" password="myPassword" user-name="sqluser" `
--target-db-name "AdventureWorks2008" `
--resource-group myRG `
--managed-instance-name mySQLMI

Krok 3. Wykonanie migracji jednorazowej po przywróceniu wszystkich kopii zapasowych do usługi Azure SQL Managed Instance.

#STEP 3: Get migration ID and perform Cutover
$migOpId = az datamigration sql-managed-instance show --managed-instance-name "mySQLMI" --resource-group "myRG" --target-db-name "AdventureWorks2008" --expand=MigrationStatusDetails --query "properties.migrationOperationId"
az datamigration sql-managed-instance cutover --managed-instance-name "mySQLMI" --resource-group "myRG" --target-db-name "AdventureWorks2008" --migration-operation-id $migOpId

Jeśli zostanie wyświetlony błąd "Subskrypcja nie jest zarejestrowana do korzystania z przestrzeni nazw "Microsoft.DataMigration". Zobacz https://aka.ms/rps-not-found , jak zarejestrować subskrypcje", uruchom następujące polecenie:

   Register-AzResourceProvider -ProviderNamespace "Microsoft.DataMigration"

Następne kroki

  • Aby uzyskać dokumentację referencyjną programu Azure PowerShell dotyczącą migracji baz danych programu SQL Server, zobacz Az.DataMigration.
  • Aby uzyskać dokumentację referencyjną interfejsu wiersza polecenia platformy Azure dotyczącą migracji baz danych programu SQL Server, zobacz az datamigration.
  • Aby zapoznać się z repozytorium kodu przykładów platformy Azure, zobacz data-migration-sql