Znane problemy, ograniczenia i rozwiązywanie problemów

Ten artykuł zawiera listę znanych problemów i kroków rozwiązywania problemów skojarzonych z rozszerzeniem Azure SQL Migration dla usługi Azure Data Studio.

Ważne

Najnowsza wersja środowiska Integration Runtime (5.28.8488) uniemożliwia dostęp do sieciowego udziału plików na hoście lokalnym. Ta miara zabezpieczeń doprowadzi do niepowodzeń podczas przeprowadzania migracji do usługi Azure SQL przy użyciu usługi DMS. Upewnij się, że uruchamiasz środowisko Integration Runtime na innej maszynie niż hostowanie udziału sieciowego.

Kod błędu: 2007 — CutoverFailedOrCancelled

  • Komunikat: Cutover failed or cancelled for database <DatabaseName>. Error details: The restore plan is broken because firstLsn <First LSN> of log backup <URL of backup in Azure Storage container>' is not <= lastLsn <last LSN> of Full backup <URL of backup in Azure Storage container>'. Restore to point in time.

  • Przyczyna: Błąd może wystąpić z powodu niepoprawnego umieszczania kopii zapasowych w kontenerze usługi Azure Storage. Jeśli kopie zapasowe są umieszczane w sieciowym udziale plików, ten błąd może również wystąpić z powodu problemów z łącznością sieciową.

  • Zalecenie: Upewnij się, że kopie zapasowe bazy danych w kontenerze usługi Azure Storage są poprawne. Jeśli używasz sieciowego udziału plików, mogą występować problemy i opóźnienia związane z siecią, które powodują ten błąd. Poczekaj, aż proces zostanie ukończony.

  • Komunikat: Cutover failed or cancelled for database '{databaseName}'. Error details: 'errorCode: Ext_RestoreSettingsError, message: RestoreId: {RestoreId}, OperationId: {operationId}, Detail: Failed to complete restore., RestoreJobState: Restoring, CompleteRestoreErrorMessage: The database contains incompatible physical layout. Too many full text catalog files.

  • Przyczyna: Przywracanie maszyny wirtualnej SQL obecnie nie obsługuje przywracania baz danych z plikami wykazu pełnotekstowego, ponieważ maszyna wirtualna usługi Azure SQL nie obsługuje ich w tej chwili.

  • Zalecenie: Usuwanie plików wykazu pełnotekstowego z bazy danych podczas tworzenia przywracania

  • Komunikat: Cutover failed or cancelled for database '{databaseName}'. Error details: 'Migration cannot be completed because provided backup file name '{providedFileName}' should be the last restore backup file '{lastRestoredFileName}'.'

  • Przyczyna: Ten błąd występuje z powodu znanego ograniczenia w usłudze SqlMi. Oznacza to, że element "{providedFileName}" różni się od {lastRestoredFileName}. Usługa SqlMi automatycznie przywróci wszystkie prawidłowe pliki kopii zapasowej w kontenerze na podstawie sekwencji LSN. Typowy przypadek niepowodzenia może być następujący: "{providedFileName}" to "log1", ale pliki w kontenerze mają inne pliki, takie jak "log2", które mają największą liczbę LSN niż "log1". W takim przypadku usługa SqlMi automatycznie przywróci wszystkie pliki w kontenerze. Po zakończeniu migracji usługa SqlMi zgłosi ten komunikat o błędzie.

  • Zalecenie: W przypadku trybu migracji w trybie offline podaj wartość "lastBackupName" z największą siecią LSN. W przypadku scenariusza migracji online to ostrzeżenie/błąd można zignorować, jeśli stan migracji zakończył się pomyślnie.

Kod błędu: 2009 — MigrationRestoreFailed

  • Komunikat: Migration for Database 'DatabaseName' failed with error cannot find server certificate with thumbprint.

  • Przyczyna: Przed migracją danych należy przeprowadzić migrację certyfikatu źródłowego wystąpienia programu SQL Server z bazy danych chronionej przez funkcję Transparent Data Encryption (TDE) do docelowego wystąpienia zarządzanego usługi Azure SQL lub programu SQL Server na maszynie wirtualnej platformy Azure.

  • Zalecenie: Przeprowadź migrację certyfikatu TDE do wystąpienia docelowego i ponów próbę wykonania procesu. 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.

  • Komunikat: Migration for Database <DatabaseName> failed with error 'Non retriable error occurred while restoring backup with index 1 - 3169 The database was backed up on a server running version %ls. That version is incompatible with this server, which is running version %ls. Either restore the database on a server that supports the backup, or use a backup that is compatible with this server.

  • Przyczyna: Nie można przywrócić kopii zapasowej programu SQL Server do starszej wersji programu SQL Server niż wersja, w której utworzono kopię zapasową.

  • Zalecenie: Zobacz Problemy wpływające na przywracanie bazy danych między różnymi wersjami programu SQL Server, aby uzyskać instrukcje rozwiązywania problemów.

  • Komunikat: Migration for Database <DatabaseName> failed with error 'The managed instance has reached its storage limit. The storage usage for the managed instance can't exceed 32768 MBs.

  • Przyczyna: Usługa Azure SQL Managed Instance osiągnęła limity zasobów.

  • Zalecenie: Aby uzyskać więcej informacji na temat limitów magazynu, zobacz Omówienie limitów zasobów usługi Azure SQL Managed Instance.

  • Komunikat: Migration for Database <DatabaseName> failed with error 'Non retriable error occurred while restoring backup with index 1 - 3634 The operating system returned the error '1450(Insufficient system resources exist to complete the requested service.)

  • Przyczyna: Jeden z objawów wymienionych w błędach systemu operacyjnego 1450 i 665 są zgłaszane dla plików bazy danych podczas tworzenia bazy danych DBCC CHECKDB lub tworzenia migawki bazy danych może być przyczyną.

  • Zalecenie: Zobacz Błędy systemu operacyjnego 1450 i 665 są zgłaszane dla plików bazy danych podczas tworzenia bazy danych DBCC CHECKDB lub tworzenia migawki bazy danych, aby uzyskać instrukcje rozwiązywania problemów.

  • Komunikat: The restore plan is broken because firstLsn <First LSN> of log backup <URL of backup in Azure Storage container>' isn't <= lastLsn <last LSN> of Full backup <URL of backup in Azure Storage container>'. Restore to point in time.

  • Przyczyna: Błąd może wystąpić z powodu niepoprawnego umieszczania kopii zapasowych w kontenerze usługi Azure Storage. Jeśli kopie zapasowe są umieszczane w sieciowym udziale plików, ten błąd może również wystąpić z powodu problemów z łącznością sieciową.

  • Zalecenie: Upewnij się, że kopie zapasowe bazy danych w kontenerze usługi Azure Storage są poprawne. Jeśli używasz sieciowego udziału plików, mogą występować problemy i opóźnienia związane z siecią, które powodują ten błąd. Poczekaj na zakończenie procesu.

  • Komunikat: Migration for Database <Database Name> failed with error 'Non retriable error occurred while restoring backup with index 1 - 3234 Logical file <Name> isn't part of database <Database GUID>. Use RESTORE FILELISTONLY to list the logical file names. RESTORE DATABASE is terminating abnormally.'.

  • Przyczyna: Określono nazwę pliku logicznego, która nie znajduje się w kopii zapasowej bazy danych. Inną potencjalną przyczyną tego błędu jest nieprawidłowa nazwa kontenera konta magazynu.

  • Zalecenie: Uruchom polecenie RESTORE FILELISTONLY, aby sprawdzić nazwy plików logicznych w kopii zapasowej. Aby uzyskać więcej informacji na temat RESTORE FILELISTONLY, zobacz RESTORE Statements - FILELISTONLY (Transact-SQL).

  • Komunikat: Migration for Database <Database Name> failed with error 'Azure SQL target resource failed to connect to storage account. Make sure the target SQL VNet is allowed under the Azure Storage firewall rules.'

  • Przyczyna: Zapora usługi Azure Storage nie jest skonfigurowana do zezwalania na dostęp do obiektu docelowego usługi Azure SQL.

  • Zalecenie: Aby uzyskać więcej informacji na temat konfigurowania zapory usługi Azure Storage, zobacz Konfigurowanie zapór i sieci wirtualnych usługi Azure Storage.

  • Komunikat: Migration for Database <Database Name> failed with error 'There are backups from multiple databases in the container folder. Please make sure the container folder has backups from a single database.

  • Przyczyna: Kopie zapasowe wielu baz danych znajdują się w tym samym folderze kontenera.

  • Zalecenie: W przypadku migrowania wielu baz danych do usługi Azure SQL Managed Instance przy użyciu tego samego kontenera usługi Azure Blob Storage należy umieścić pliki kopii zapasowej dla różnych baz danych w oddzielnych folderach wewnątrz kontenera. Aby uzyskać więcej informacji na temat magazynu LRS, zobacz Migrowanie baz danych z programu SQL Server do usługi SQL Managed Instance przy użyciu usługi replay dziennika (wersja zapoznawcza).

  • Komunikat: Migration for Database <Database Name> failed with error 'Non retriable error occurred while restoring backup with index 1 - 12824 The sp_configure value 'contained database authentication' must be set to 1 in order to restore a contained database. You may need to use RECONFIGURE to set the value_in_use. RESTORE DATABASE is terminating abnormally.

  • Przyczyna: Źródłowa baza danych jest zawartą bazą danych. Do przywrócenia zawartej bazy danych potrzebna jest określona konfiguracja. Aby uzyskać więcej informacji na temat zawartych baz danych, zobacz Użytkownicy zawartej bazy danych.

  • Zalecenie: Przed rozpoczęciem migracji uruchom następujące zapytanie połączone ze źródłowym programem SQL Server w kontekście określonej bazy danych. Następnie spróbuj ponownie przeprowadzić migrację zawartej bazy danych.

    -- Enable "contained database authentication"
    EXEC sp_configure 'contained', 1;
    RECONFIGURE;
    

    Uwaga

    Aby uzyskać więcej informacji na temat ogólnych kroków rozwiązywania problemów z błędami usługi Azure SQL Managed Instance, zobacz Znane problemy z usługą Azure SQL Managed Instance

Kod błędu: 2012 — Test Połączenie ionFailed

  • Komunikat: Failed to test connections using provided Integration Runtime. Error details: 'Remote name could not be resolved.'

  • Przyczyna: Ustawienia sieciowe w zaporze powodują, że własne środowisko Integration Runtime nie może nawiązać połączenia z zapleczem usługi.

  • Zalecenie: Występuje problem z systemem nazw domen (DNS). Skontaktuj się z zespołem ds. sieci, aby rozwiązać ten problem. Aby uzyskać więcej informacji, zobacz Rozwiązywanie problemów z własnym środowiskiem Integration Runtime.

  • Komunikat: Failed to test connections using provided Integration Runtime. 'Cannot connect to <File share>. Detail Message: The system could not find the environment option that was entered

  • Przyczyna: Własne środowisko Integration Runtime nie może nawiązać połączenia z sieciowym udziałem plików, w którym są umieszczane kopie zapasowe bazy danych.

  • Zalecenie: upewnij się, że nazwa sieciowego udziału plików została wprowadzona poprawnie.

  • Komunikat: Failed to test connections using provided Integration Runtime. The file name does not conform to the naming rules by the data store. Illegal characters in path.

  • Przyczyna: Własne środowisko Integration Runtime nie może nawiązać połączenia z sieciowym udziałem plików, w którym są umieszczane kopie zapasowe bazy danych.

  • Zalecenie: upewnij się, że nazwa sieciowego udziału plików została wprowadzona poprawnie.

  • Komunikat: Failed to test connections using provided Integration Runtime.

  • Przyczyna: Połączenie ion do własnego środowiska Integration Runtime nie powiodło się.

  • Zalecenie: Zobacz Rozwiązywanie problemów z własnym środowiskiem Integration Runtime , aby uzyskać ogólne kroki rozwiązywania problemów z błędami łączności środowiska Integration Runtime.

Kod błędu: 2014 — IntegrationRuntimeIsNotOnline

  • Komunikat: Integration Runtime <IR Name> in resource group <Resource Group Name> Subscription <SubscriptionID> isn't online.

  • Przyczyna: Własne środowisko Integration Runtime nie jest w trybie online.

  • Zalecenie: upewnij się, że własne środowisko Integration Runtime jest zarejestrowane i w trybie online. Aby przeprowadzić rejestrację, możesz użyć skryptów z automatyzowania instalacji własnego środowiska Integration Runtime przy użyciu lokalnych skryptów programu PowerShell. Zobacz również Rozwiązywanie problemów z własnym środowiskiem Integration Runtime, aby uzyskać ogólne kroki rozwiązywania problemów z błędami łączności środowiska Integration Runtime.

Kod błędu: 2030 — AzureSQLManagedInstanceNotReady

  • Komunikat: Azure SQL Managed Instance <Instance Name> isn't ready.

  • Przyczyna: Usługa Azure SQL Managed Instance nie jest w stanie gotowości.

  • Zalecenie: Poczekaj, aż usługa Azure SQL Managed Instance zakończy wdrażanie i będzie gotowa, a następnie ponów próbę wykonania procesu.

Kod błędu: 2033 — SqlDataCopyFailed

  • Komunikat: Migration for Database <Database> failed in state <state>.

  • Przyczyna: potok usługi ADF na potrzeby przenoszenia danych nie powiódł się.

  • Zalecenie: Sprawdź stronę MigrationStatusDetails, aby uzyskać bardziej szczegółowe informacje o błędzie.

Kod błędu: 2038 — MigrationCompletedDuringCancel

  • Komunikat: Migration cannot be canceled as Migration was completed during the cancel process. Target server: <Target server> Target database: <Target database>.

  • Przyczyna: Odebrano żądanie anulowania, ale migracja została ukończona pomyślnie przed zakończeniem anulowania.

  • Zalecenie: Brak wymaganej akcji. Migracja powiodła się.

Kod błędu: 2039 — MigrationRetryNotAllowed

  • Komunikat: Migration isn't in a retriable state. Migration must be in state WaitForRetry. Current state: <State>, Target server: <Target Server>, Target database: <Target database>.

  • Przyczyna: Żądanie ponawiania prób zostało odebrane, gdy migracja nie była w stanie zezwalającym na ponowienie próby.

  • Zalecenie: Brak wymaganej akcji. Migracja trwa lub kończy.

Kod błędu: 2040 — MigrationTimeoutWaitingForRetry

  • Komunikat: Migration retry timeout limit of 8 hours reached. Target server: <Target Server>, Target database: <Target Database>.

  • Przyczyna: Migracja nie powiodła się, ale można było pobrać stan przez 8 godzin i została automatycznie anulowana.

  • Zalecenie: nie jest wymagana żadna akcja; migracja została anulowana.

Kod błędu: 2041 — DataCopyCompletedDuringCancel

  • Komunikat: Data copy finished successfully before canceling completed. Target schema is in bad state. Target server: <Target Server>, Target database: <Target Database>.

  • Przyczyna: Żądanie anulowania zostało odebrane, a kopia danych została ukończona pomyślnie, ale docelowy schemat bazy danych nie został zwrócony do pierwotnego stanu.

  • Zalecenie: W razie potrzeby docelowa baza danych może zostać zwrócona do pierwotnego stanu, uruchamiając pierwsze zapytanie i wszystkie zwrócone zapytania, a następnie uruchamiając drugie zapytanie i wykonując to samo.

    SELECT [ROLLBACK] FROM [dbo].[__migration_status]
    WHERE STEP in (3,4,6);
    
    SELECT [ROLLBACK] FROM [dbo].[__migration_status]
    WHERE STEP in (5,7,8) ORDER BY STEP DESC;
    

Kod błędu: 2042 — PreCopyStepsCompletedDuringCancel

  • Komunikat: Pre Copy steps finished successfully before canceling completed. Target database Foreign keys and temporal tables have been altered. Schema migration may be required again for future migrations. Target server: <Target Server>, Target database: <Target Database>.

  • Przyczyna: Żądanie anulowania zostało odebrane, a kroki przygotowania docelowej bazy danych do kopiowania zostały ukończone pomyślnie. Docelowy schemat bazy danych nie został zwrócony do pierwotnego stanu.

  • Zalecenie: W razie potrzeby docelowa baza danych może zostać zwrócona do pierwotnego stanu, uruchamiając następujące zapytanie i wszystkie zwrócone zapytania.

    SELECT [ROLLBACK] FROM [dbo].[__migration_status]
    WHERE STEP in (3,4,6);
    

Kod błędu: 2043 — CreateContainerFailed

  • Komunikat: Create container <ContainerName> failed with error Error calling the endpoint '<URL>'. Response status code: 'NA - Unknown'. More details: Exception message: 'NA - Unknown [ClientSideException] Invalid Url:<URL>.

  • Przyczyna: Żądanie nie powiodło się z powodu podstawowego problemu, takiego jak łączność sieciowa, błąd DNS, weryfikacja certyfikatu serwera lub przekroczenie limitu czasu.

  • Zalecenie: Aby uzyskać więcej kroków rozwiązywania problemów, zobacz Rozwiązywanie problemów z potokami usługi Azure Data Factory i Synapse.

Kod błędu: 2049 — FileShareTest Połączenie ionFailed

  • Komunikat: The value of the property '' is invalid: 'Access to <share path> is denied, resolved IP address is <IP address>, network type is OnPremise'.

  • Przyczyna: udział sieciowy, w którym są przechowywane kopie zapasowe bazy danych, znajduje się na tej samej maszynie co własne środowisko Integration Runtime (SHIR).

  • Zalecenie: najnowsza wersja środowiska Integration Runtime (5.28.8488) uniemożliwia dostęp do sieciowego udziału plików na hoście lokalnym. Upewnij się, że uruchomiono środowisko Integration Runtime na innej maszynie niż hostowanie udziału sieciowego. Jeśli hostowanie własnego środowiska Integration Runtime i udziału sieciowego na różnych maszynach nie jest możliwe w przypadku bieżącej konfiguracji migracji, możesz użyć opcji rezygnacji z korzystania z programu DisableLocalFolderPathValidation.

    Uwaga

    Aby uzyskać więcej informacji, zobacz Konfigurowanie istniejącego własnego środowiska IR za pomocą lokalnego programu PowerShell. Użyj opcji wyłączania z uznaniem, ponieważ jest to mniej bezpieczne.

Kod błędu: 2056 — SqlInfoValidationFailed

  • Komunikat: CollationMismatch: Source database collation <CollationOptionSource> is not the same as the target database <CollationOptionTarget>. Source database: <SourceDatabaseName> Target database: <TargetDatabaseName>.

  • Przyczyna: Sortowanie źródłowej bazy danych nie jest takie samo jak sortowanie docelowej bazy danych.

  • Zalecenie: pamiętaj, aby zmienić docelowe sortowanie usługi Azure SQL Database na takie samo jak źródłowa baza danych programu SQL Server. Usługa Azure SQL Database domyślnie używa SQL_Latin1_General_CP1_CI_AS sortowania, jeśli źródłowa baza danych programu SQL Server używa innego sortowania, może być konieczne ponowne utworzenie lub wybranie innej docelowej bazy danych, której sortowanie jest zgodne. Aby uzyskać więcej informacji, zobacz Obsługa sortowania i unicode

  • Komunikat: TableColumnCollationMismatch: Table <Tablename> with column <columnname> has collation <collationoptionsource> on source but has collation <collationoptiontarget> on target table.

  • Przyczyna: Sortowanie kolumny tabeli źródłowej bazy danych nie jest takie samo jak sortowanie docelowej kolumny tabeli bazy danych.

  • Zalecenie:

    1. Upewnij się, że przeprowadzono migrację schematu do docelowej bazy danych Azure SQL Database przy użyciu usługi Database Migration Service. Zapoznaj się z blogami.
    2. Postępuj zgodnie z tym artykułem , aby ręcznie zmienić sortowanie. Aby uzyskać więcej informacji, zobacz Obsługa sortowania i unicode
  • Komunikat: DatabaseSizeMoreThanMax: No tables were found in the target Azure SQL Database. Check if schema migration was completed beforehand.

  • Przyczyna: Wybrane tabele migracji nie istnieją w docelowej usłudze Azure SQL Database.

  • Zalecenie: przed rozpoczęciem migracji upewnij się, że docelowy schemat bazy danych został utworzony. Aby uzyskać więcej informacji na temat wdrażania docelowego schematu bazy danych, zobacz rozszerzenie SQL Database Projects

  • Komunikat: DatabaseSizeMoreThanMax: The source database size <Source Database Size> exceeds the maximum allowed size of the target database <Target Database Size>. Check if the target database has enough space.

  • Przyczyna: docelowa baza danych nie ma wystarczającej ilości miejsca.

  • Zalecenie: przed rozpoczęciem migracji upewnij się, że docelowy schemat bazy danych został utworzony. Aby uzyskać więcej informacji na temat sposobu wdrażania docelowego schematu bazy danych, zobacz Rozszerzenie projektów usługi SQL Database.

  • Komunikat: NoTablesFound: Some of the source tables don't exist in the target database. Missing tables: <TableList>.

  • Przyczyna: Wybrane tabele migracji nie istnieją w docelowej usłudze Azure SQL Database.

  • Zalecenie: Sprawdź, czy wybrane tabele istnieją w docelowej bazie danych Azure SQL Database. Jeśli ta migracja jest wywoływana ze skryptu programu PowerShell, sprawdź, czy parametr listy tabel zawiera poprawne nazwy tabel i jest przekazywany do migracji.

  • Komunikat: SqlVersionOutOfRange: Source instance version is lower than 2008, which is not supported to migrate. Source instance: <InstanceName>.

  • Przyczyna: Usługa Azure Database Migration Service nie obsługuje migracji z wystąpień programu SQL Server niższych niż 2008.

  • Zalecenie: uaktualnij źródłowe wystąpienie programu SQL Server do nowszej wersji programu SQL Server. Aby uzyskać więcej informacji, zobacz Uaktualnianie programu SQL Server.

  • Komunikat: TableMappingMismatch: Some of the source tables don't exist in the target database. Missing tables: <TableList>.

  • Przyczyna: Wybrane tabele migracji nie istnieją w docelowej usłudze Azure SQL Database.

  • Zalecenie: Sprawdź, czy wybrane tabele istnieją w docelowej bazie danych Azure SQL Database. Jeśli ta migracja jest wywoływana ze skryptu programu PowerShell, sprawdź, czy parametr listy tabel zawiera poprawne nazwy tabel i jest przekazywany do migracji.

Kod błędu: 2060 — SqlSchemaCopyFailed

  • Komunikat: The SELECT permission was denied on the object 'sql_logins', database 'master', schema 'sys'.

  • Przyczyna: konto używane przez klientów do nawiązywania połączenia z usługą Azure SQL Database nie ma uprawnień dostępu sys.sql_logins do tabeli.

  • Zalecenie: Istnieją dwa sposoby rozwiązania problemu:

    1. Dodaj rolę "sysadmin" do konta, która przyznaje uprawnienia administratora.

    2. Jeśli klienci nie mogą używać konta administratora systemu lub nie mogą udzielić uprawnień administratora systemu do konta, minimalną wymaganą w źródłowym programie SQL Server jest "db_owner" i w docelowej usłudze Azure SQL DB utwórz użytkownika w bazie danych master i przyznaj użytkownikowi ##MS_DatabaseManager##,#MS_Database Połączenie or#, ##MS_DefinitionReader## i #MS_LoginManager## stałe role serwera. Przykład:

      -- Run the script in the master
      -- Please run the script on Master database
      CREATE LOGIN testuser with 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 from login testuser;
      EXEC sp_addRoleMember 'dbmanager', 'testuser';
      EXEC sp_addRoleMember 'loginmanager', 'testuser';
      
  • Komunikat: Failed to get service token from ADF service.

  • Przyczyna: Usługa SHIR klienta nie może połączyć fabryki danych.

  • Zalecenie: Oto przykładowy dokument dotyczący rozwiązywania tego problemu: Środowisko Integration Runtime Nie można nawiązać połączenia z usługą Data Factory

  • Komunikat: IR Nodes are offline.

  • Przyczyna: Przyczyną może być przerwanie sieci podczas migracji, a w związku z tym węzeł IR stanie się w trybie offline. Upewnij się, że maszyna, na której zainstalowano środowisko SHIR, jest włączona.

  • Zalecenie: upewnij się, że maszyna, na której zainstalowano środowisko SHIR, jest włączona.

  • Komunikat: Deployed failure: {0}. Object element: {1}.

  • Przyczyna: Jest to najczęstszy błąd, który mogą napotkać klienci. Oznacza to, że nie można wdrożyć obiektu docelowego, ponieważ nie jest on obsługiwany w obiekcie docelowym.

  • Zalecenie: klienci muszą sprawdzić wyniki oceny (reguły oceny). Jest to lista problemów z oceną, które mogą zakończyć się niepowodzeniem migracji schematu:

    Instrukcja BULK INSERT

    Klauzula COMPUTE

    Dostawca kryptograficzny

    Odwołania między bazami danych

    Alias podmiotu zabezpieczeń bazy danych

    opcja DISABLE_DEF_CNST_CHK

    WSKAZÓWKA FASTFIRSTROW

    FILESTREAM

    Narzędzie MS DTC

    OPENROWSET (zbiorczo)

    OPENROWSET (dostawca)

    Uwaga

    Aby wyświetlić szczegóły błędu, otwórz menedżera konfiguracji środowiska Microsoft Integration Runtime i przejdź do dzienników widoku rejestrowania > diagnostyki>. W podglądzie zdarzeń przejdź do pozycji Dzienniki > aplikacji i usługi Połączenie or — Integration Runtime i filtruj pod kątem błędów.

  • Komunikat: Deployed failure: Index cannot be created on computed column '{0}' of table '{1}' because the underlying object '{2}' has a different owner. Object element: {3}.

    Przykładowy wygenerowany skrypt: IF NOT EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[Sales].[Customer]') AND name = N'AK_Customer_AccountNumber') CREATE UNIQUE NONCLUSTERED INDEX [AK_Customer_AccountNumber] ON [Sales].[Customer] ( [AccountNumber] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)

  • Przyczyna: Wszystkie odwołania do funkcji w obliczonej kolumnie muszą mieć tego samego właściciela co tabela.

  • Zalecenie: zobacz Wymagania dotyczące własności.

Kod błędu: Ext_Restore Ustawienia Error

  • Komunikat: Unable to read blobs in storage container, exception: The remote server returned an error: (403) Forbidden.; The remote server returned an error: (403) Forbidden

  • Przyczyna: Obiekt docelowy usługi Azure SQL nie może nawiązać połączenia z magazynem obiektów blob.

  • Zalecenie: Upewnij się, że ustawienia sieci docelowej zezwalają na dostęp do magazynu obiektów blob. Jeśli na przykład przeprowadzasz migrację do programu SQL Server na maszynie docelowej maszyny wirtualnej platformy Azure, upewnij się, że połączenia wychodzące na maszynie wirtualnej nie są blokowane.

  • Komunikat: Failed to create restore job. Unable to read blobs in storage container, exception: The remote name could not be resolved.

  • Przyczyna: Obiekt docelowy usługi Azure SQL nie może nawiązać połączenia z magazynem obiektów blob.

  • Zalecenie: Upewnij się, że ustawienia sieci docelowej zezwalają na dostęp do magazynu obiektów blob. Na przykład w przypadku migracji do maszyny wirtualnej SQL upewnij się, że połączenia wychodzące na maszynie wirtualnej nie są blokowane.

  • Komunikat: Migration for Database <Database Name> failed with error 'Migration cannot be completed because provided backup file name <Backup File Name> should be the last restore backup file <Last Restore Backup File Name>'.

  • Przyczyna: Najnowsza kopia zapasowa nie została określona w ustawieniach kopii zapasowej.

  • Zalecenie: określ najnowszą nazwę pliku kopii zapasowej w ustawieniach kopii zapasowej i spróbuj ponownie wykonać operację.

  • Komunikat: Operation failed: errorCode: Ext_RestoreSettingsError, message: RestoreId: 1111111-aaaa-bbbb-cccc-dddddddd, OperationId: 2222222-aaaa-bbbb-cccc-dddddddd, Detail: Unable to read blobs in storage container, exception: Unable to connect to the remote server;Unable to connect to the remote server;A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond 11.111.11.111:443.

  • Przyczyna: Błąd jest możliwy dla obu kont magazynu z konfiguracją sieci publicznej i prywatnego punktu końcowego. Istnieje również możliwość, że masz lokalny serwer DNS, który kontroluje routing sieci hybrydowej i protokół DHCP. Jeśli nie zezwolisz na używanie adresów IP platformy Azure skonfigurowanych na serwerze DNS, docelowy obiekt docelowy maszyny wirtualnej platformy Azure nie ma szans na rozwiązanie zdalnego punktu końcowego obiektu blob magazynu.

  • Zalecenie: Aby debugować ten problem, możesz spróbować wysłać polecenie ping do adresu URL usługi Azure Blob Storage z programu SQL Server na docelowej maszynie wirtualnej platformy Azure i sprawdzić, czy masz problem z łącznością. Aby rozwiązać ten problem, musisz zezwolić na używanie adresów IP platformy Azure skonfigurowanych na serwerze DNS. Aby uzyskać więcej informacji, zobacz Rozwiązywanie problemów z łącznością z prywatnym punktem końcowym platformy Azure

Reguły nazewnictwa usługi Azure Database Migration Service

Jeśli usługa DMS nie powiodła się z komunikatem "Błąd: nazwa usługi "x_y_z" jest nieprawidłowa, należy postępować zgodnie z regułami nazewnictwa usługi Azure Database Migration Service. Ponieważ usługa Azure Database Migration Service używa usługi Azure Data Factory na potrzeby obliczeń, jest zgodna z dokładnie tymi samymi regułami nazewnictwa, jak wspomniano tutaj.

Ograniczenia usługi Azure SQL Database

Migracja do usługi Azure SQL Database przy użyciu rozszerzenia Azure SQL dla programu Azure Data Studio ma następujące 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 CPU i pamięci kopii danych. Aby dowiedzieć się więcej, zapoznaj się z zaleceniami dotyczącymi środowiska SHIR.
  • 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 jest źle skalowana z liczbami tabel ze względu na obciążenie związane z usługą ADF podczas uruchamiania 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.

Ograniczenia dotyczące usługi Azure SQL Managed Instance

Migrowanie do usługi Azure SQL Managed Instance przy użyciu rozszerzenia usługi Azure SQL dla usługi Azure Data Studio ma następujące ograniczenia:

  • W przypadku migrowania pojedynczej bazy danych kopie zapasowe bazy danych muszą zostać umieszczone w płaskiej strukturze plików w folderze bazy danych (w tym folderze głównym kontenera) i foldery nie mogą być zagnieżdżone, ponieważ nie jest to obsługiwane.
  • W przypadku migrowania wielu baz danych przy użyciu tego samego kontenera usługi Azure Blob Storage należy umieścić pliki kopii zapasowej dla różnych baz danych w oddzielnych folderach wewnątrz kontenera.
  • Zastępowanie istniejących baz danych przy użyciu usługi DMS w docelowej usłudze Azure SQL Managed Instance nie jest obsługiwane.
  • Usługa DMS nie obsługuje konfigurowania wysokiej dostępności i odzyskiwania po awarii w celu dopasowania do topologii źródłowej.
  • Następujące obiekty serwera nie są obsługiwane:
    • Zadania agenta programu SQL Server
    • Poświadczenia
    • Pakiety usług SSIS
    • Inspekcja serwera
  • Nie można użyć istniejącego własnego środowiska Integration Runtime utworzonego na podstawie usługi Azure Data Factory na potrzeby migracji bazy danych z usługą DMS. Na początku własne środowisko Integration Runtime powinno zostać utworzone przy użyciu rozszerzenia migracji usługi Azure SQL w usłudze Azure Data Studio i można go ponownie używać do kolejnych migracji bazy danych.
  • Pojedyncze zadanie LRS (utworzone przez usługę DMS) może być uruchamiane przez maksymalnie 30 dni. Po wygaśnięciu tego okresu zadanie zostanie automatycznie anulowane, dzięki czemu docelowa baza danych zostanie automatycznie usunięta.
  • Jeśli został wyświetlony następujący błąd: Memory-optimized filegroup must be empty in order to be restored on General Purpose tier of SQL Database Managed Instance. Ten problem jest zgodnie z projektem, Hekaton (znany również jako OLTP w pamięci programu SQL Server) nie jest obsługiwany w warstwie Ogólnego przeznaczenia usługi Azure SQL Managed Instance. Aby kontynuować migrację, jednym ze sposobów jest uaktualnienie do warstwy Krytyczne dla działania firmy, która obsługuje platformę Hekaton. Innym sposobem jest upewnienie się, że źródłowa baza danych nie używa jej, gdy wystąpienie zarządzane Azure SQL to ogólnego przeznaczenia.

Ograniczenia programu SQL Server na maszynach wirtualnych platformy Azure

Migracja do programu SQL Server na maszynach wirtualnych platformy Azure przy użyciu rozszerzenia Azure SQL dla programu Azure Data Studio ma następujące ograniczenia:

  • W przypadku migracji pojedynczej bazy danych kopie zapasowe bazy danych muszą być umieszczane w strukturze plików prostych wewnątrz folderu bazy danych (w tym folderu głównego kontenera), a foldery nie mogą być zagnieżdżone, ponieważ nie są obsługiwane.
  • W przypadku migrowania wielu baz danych przy użyciu tego samego kontenera usługi Azure Blob Storage należy umieścić pliki kopii zapasowej dla różnych baz danych w oddzielnych folderach wewnątrz kontenera.
  • Zastępowanie istniejących baz danych przy użyciu usługi DMS w docelowym programie SQL Server na maszynie wirtualnej platformy Azure nie jest obsługiwane.
  • Konfigurowanie wysokiej dostępności i odzyskiwania po awarii w miejscu docelowym w celu dopasowania do topologii źródłowej nie jest obsługiwane przez usługę DMS.
  • Następujące obiekty serwera nie są obsługiwane:
    • Zadania agenta programu SQL Server
    • Poświadczenia
    • Pakiety usług SSIS
    • Inspekcja serwera
  • Nie można użyć istniejącego własnego środowiska Integration Runtime utworzonego na podstawie usługi Azure Data Factory na potrzeby migracji bazy danych z usługą DMS. Na początku własne środowisko Integration Runtime powinno zostać utworzone przy użyciu rozszerzenia migracji usługi Azure SQL w usłudze Azure Data Studio i można go ponownie używać do kolejnych migracji bazy danych.
  • Maszyna wirtualna z programem SQL Server 2008 lub nowszym, ponieważ wersje docelowe nie są obsługiwane podczas migracji do programu SQL Server na maszynach wirtualnych platformy Azure.
  • Jeśli używasz maszyny wirtualnej z programem SQL Server 2012 lub SQL Server 2014, musisz przechowywać źródłowe pliki kopii zapasowej bazy danych w kontenerze obiektów blob usługi Azure Storage zamiast korzystać z opcji udziału sieciowego. Przechowuj pliki kopii zapasowej jako stronicowe obiekty blob, ponieważ blokowe obiekty blob są obsługiwane tylko w programie SQL 2016 i po.
  • Należy upewnić się, że rozszerzenie agenta IaaS sql w docelowej maszynie wirtualnej platformy Azure jest w trybie pełnym, a nie w trybie uproszczonym.
  • Rozszerzenie agenta IaaS sql obsługuje tylko zarządzanie domyślnym wystąpieniem serwera lub pojedynczym wystąpieniem nazwanym.
  • Liczba baz danych, które można migrować do maszyny wirtualnej platformy Azure z programem SQL Server, zależy od specyfikacji sprzętu i obciążenia, ale nie ma wymuszonego limitu. Jednak każda operacja migracji (rozpoczęcie migracji, migracja jednorazowa) dla każdej bazy danych będzie trwać kilka minut sekwencyjnie. Na przykład migracja 100 baz danych może potrwać około 200 (2 x 100) minut, aby utworzyć kolejkę migracji/s i około 100 (1 x 100) minut, aby przeciąć wszystkie 100 baz danych (z wyłączeniem chronometrażu tworzenia kopii zapasowych i przywracania). W związku z tym migracja stanie się wolniejsza w miarę wzrostu liczby baz danych. Firma Microsoft zaleca wcześniejsze zaplanowanie dłuższego okna migracji na podstawie rygorystycznego testowania migracji lub partycjonowania dużej liczby baz danych do partii podczas migrowania ich do maszyny wirtualnej platformy Azure serwera SQL.
  • Oprócz konfigurowania sieci/zapory konta usługi Azure Storage, aby umożliwić maszynie wirtualnej dostęp do plików kopii zapasowych. Należy również skonfigurować sieć/zaporę programu SQL Server na maszynie wirtualnej platformy Azure, aby zezwolić na połączenie wychodzące z kontem magazynu.
  • Należy zachować docelowy program SQL Server na maszynie wirtualnej platformy Azure włączony , gdy trwa migracja SQL. Ponadto podczas tworzenia nowej migracji, trybu failover lub anulowania migracji.
  • Błąd: Login failed for user 'NT Service\SQLIaaSExtensionQuery. Przyczyna: wystąpienie programu SQL Server jest w trybie pojedynczego użytkownika. Jedną z możliwych przyczyn jest docelowy program SQL Server na maszynie wirtualnej platformy Azure w trybie uaktualniania. Rozwiązanie: Poczekaj na zamknięcie docelowego programu SQL Server na maszynie wirtualnej platformy Azure i ponowne rozpoczęcie migracji.
  • Błąd: Ext_RestoreSettingsError, message: Failed to create restore job.;Cannot create file 'F:\data\XXX.mdf' because it already exists. Rozwiązanie: Połączenie do docelowego programu SQL Server na maszynie wirtualnej platformy Azure i usuń plik XXX.mdf. Następnie ponownie rozpocznij migrację.

Ograniczenia usługi Azure Data Studio

Nie można uruchomić usługi Sql Migration Service: Błąd: Błąd żądania:

  • Komunikat: Error at ClientRequest.<anonymous> (c:\Users\MyUser\.azuredatastudio\extensions\microsoft.sql-migration-1.4.2\dist\main.js:2:7448) at ClientRequest.emit (node:events:538:35) at TLSSocket.socketOnEnd (node:_http_client:466:9) at TLSSocket.emit (node:events:538:35) at endReadableNT (node:internal/streams/readable:1345:12) at process.processTicksAndRejections (node:internal/process/task_queues:83:21)

  • Przyczyna: Ten problem występuje, gdy program Azure Data Studio nie może pobrać pakietu MigrationService z usługi https://github.com/microsoft/sqltoolsservice/releases. Błąd pobierania może być spowodowany rozłączonym działaniem sieciowym lub nierozwiązanym ustawieniami serwera proxy.

  • Zalecenie: Na pewno wyzwolony sposób rozwiązania tego problemu polega na ręcznym pobraniu pakietu. Wykonaj kroki zaradcze opisane w tym linku: https://github.com/microsoft/azuredatastudio/issues/22558#issuecomment-1496307891