Znane problemy z usługą Azure SQL Managed Instance

Dotyczy:Azure SQL Managed Instance

W tym artykule wymieniono obecnie znane problemy z usługą Azure SQL Managed Instance oraz datą rozwiązania lub możliwym obejściem. Aby dowiedzieć się więcej o usłudze Azure SQL Managed Instance, zobacz Co to jest usługa Azure SQL Managed Instance? i Co nowego w usłudze Azure SQL Managed Instance?

Uwaga

Microsoft Entra ID był wcześniej znany jako Azure Active Directory (Azure AD).

Znane problemy

Problem Data odnalezienia Stan Data rozwiązania
Lista długoterminowych kopii zapasowych w witrynie Azure Portal zawiera pliki kopii zapasowej dla aktywnych i usuniętych baz danych o tej samej nazwie Mar 2024 Ma obejście
Tymczasowa niedostępność wystąpienia przy użyciu odbiornika grupy trybu failover podczas operacji skalowania Styczeń 2024 r. Brak rozwiązania
Obiekt docelowy event_file sesji zdarzeń system_health jest niedostępny Grudzień 2023 r. Ma obejście
Procedure sp_send_dbmail might fail when @query parameter is used on Nov22FW enabled managed instances Grudzień 2023 r. Ma obejście
Zwiększona liczba logowań systemowych używanych do replikacji transakcyjnej Grudzień 2022 r. Brak rozwiązania
Tabela msdb dla ręcznych kopii zapasowych nie zachowuje nazwy użytkownika Listopad 2022 r. Brak rozwiązania
Tymczasowe wskazówki dotyczące aktualizacji strefy czasowej 2022 dla Chile Sierpień 2022 r. Ma obejście
Wykonywanie zapytań względem tabeli zewnętrznej kończy się niepowodzeniem z komunikatem o błędzie "nieobsługiwany" Styczeń 2022 r. Resolved Wrzesień 2022 r.
W przypadku korzystania z uwierzytelniania programu SQL Server nazwy użytkowników z adresem "@" nie są obsługiwane Październik 2021 r. Resolved Luty 2022 r.
Mylący komunikat o błędzie w witrynie Azure Portal sugerujący odtworzenie jednostki usługi Wrzesień 2021 r. Październik 2021 r.
Zmiana typu połączenia nie ma wpływu na połączenia za pośrednictwem punktu końcowego grupy trybu failover styczeń 2021 r. Ma obejście
Procedure sp_send_dbmail might transiently fail when @query parameter is used styczeń 2021 r. Resolved Marzec 2022 r.
Transakcje rozproszone można wykonywać po usunięciu wystąpienia zarządzanego z grupy zaufania serwera Październik 2020 r. Ma obejście
Transakcje rozproszone nie mogą być wykonywane po operacji skalowania wystąpienia zarządzanego Październik 2020 r. Resolved Maj 2021
Nie można utworzyć wystąpienia zarządzanego SQL o takiej samej nazwie jak wcześniej usunięty serwer logiczny Sierpień 2020 r. Ma obejście
Jednostka usługi nie może uzyskać dostępu do identyfikatora Entra firmy Microsoft i usługi AKV Sierpień 2020 r. Ma obejście
Przywracanie ręcznej kopii zapasowej bez sumy KONTROLNEj może zakończyć się niepowodzeniem Maj 2020 Resolved Czerwiec 2020
Agent przestaje odpowiadać podczas modyfikowania, wyłączania lub włączania istniejących zadań Maj 2020 Resolved Czerwiec 2020
Uprawnienia do grupy zasobów nie są stosowane do usługi SQL Managed Instance Lut 2020 Resolved Listopad 2020 r.
Ograniczenie ręcznego przechodzenia w tryb failover za pośrednictwem portalu dla grup trybu failover Sty 2020 r. Ma obejście
Role agenta SQL wymagają jawnych uprawnień DO WYKONYWANIA dla identyfikatorów logowania innych niż administrator Dec 2019 Resolved Wrzesień 2022 r.
Zadania agenta SQL mogą zostać przerwane przez ponowne uruchomienie procesu agenta Dec 2019 Resolved Mar 2020
Identyfikatory logowania i użytkownicy usługi Microsoft Entra nie są obsługiwane w programie SSDT Lis 2019 Brak obejścia
Limity pamięci OLTP w pamięci nie są stosowane Paź 2019 Ma obejście
Wystąpił nieprawidłowy błąd podczas próby usunięcia pliku, który nie jest pusty Paź 2019 Resolved Sierpień 2020
Zmiana warstwy usługi i operacje tworzenia wystąpienia są blokowane przez trwające przywracanie bazy danych Sep 2019 Ma obejście
Zarządca zasobów w warstwie usługi Krytyczne dla działania firmy może być konieczne ponowne skonfigurowanie po przejściu w tryb failover Sep 2019 Ma obejście
Okna dialogowe brokera usług między bazami danych muszą zostać ponownie zainicjowane po uaktualnieniu warstwy usługi Sie 2019 Ma obejście
Personifikacja typów logowania entra firmy Microsoft nie jest obsługiwana Lip 2019 Brak obejścia
parametr @query nie jest obsługiwany w sp_send_db_mail Apr 2019 Resolved styczeń 2021 r.
Replikacja transakcyjna musi zostać ponownie skonfigurowana po przejściu w tryb failover geograficznie Mar 2019 Brak obejścia
Struktura bazy danych tempdb i zawartość są tworzone ponownie Brak obejścia
Przekraczanie rozmiaru przestrzeni dyskowej w przypadku małych plików bazy danych Ma obejście
Wartości identyfikatora GUID wyświetlane zamiast nazw baz danych Ma obejście
Dzienniki błędów nie są utrwalane Brak obejścia
Zakres transakcji w dwóch bazach danych w tym samym wystąpieniu nie jest obsługiwany Ma obejście Mar 2020
Moduły CLR i połączone serwery czasami nie mogą odwoływać się do lokalnego adresu IP Ma obejście
Spójność bazy danych nie została zweryfikowana po DBCC CHECKDB przywróceniu bazy danych z usługi Azure Blob Storage. Resolved Lis 2019
Przywracanie bazy danych do punktu w czasie z warstwy Krytyczne dla działania firmy do warstwy Ogólnego przeznaczenia nie powiedzie się, jeśli źródłowa baza danych zawiera obiekty OLTP w pamięci. Resolved Paź 2019
Funkcja poczty bazy danych z zewnętrznymi serwerami poczty (spoza platformy Azure) przy użyciu bezpiecznego połączenia Resolved Paź 2019
Zawarte bazy danych nie są obsługiwane w usłudze SQL Managed Instance Resolved Sie 2019

Ma obejście

Lista długoterminowych kopii zapasowych w witrynie Azure Portal zawiera pliki kopii zapasowej dla aktywnych i usuniętych baz danych o tej samej nazwie

Długoterminowe kopie zapasowe można wyświetlać na stronie witryny Azure Portal i zarządzać nimi dla usługi Azure SQL Managed Instance na karcie Kopie zapasowe. Strona zawiera listę aktywnych lub usuniętych baz danych, podstawowe informacje o ich długoterminowych kopiach zapasowych i link do zarządzania kopiami zapasowymi. Kliknięcie linku Zarządzaj powoduje otwarcie nowego bloku bocznego z listą kopii zapasowych. Ze względu na problem z logiką filtrowania lista zawiera kopie zapasowe zarówno dla aktywnej bazy danych, jak i usuniętych baz danych o tej samej nazwie. Wymaga to szczególnej uwagi podczas wybierania kopii zapasowych do usunięcia, aby uniknąć usuwania kopii zapasowych dla nieprawidłowej bazy danych.

Obejście: Użyj wyświetlanych informacji o czasie tworzenia kopii zapasowej (UTC) na liście, aby odróżnić kopie zapasowe należące do baz danych o tej samej nazwie, która istniała w wystąpieniu w różnych okresach. Alternatywnie użyj poleceń programu PowerShell Get-AzSqlInstanceDatabaseLongTermRetentionBackup i Remove-AzSqlInstanceDatabaseLongTermRetentionBackup lub poleceń interfejsu wiersza polecenia az sql midb ltr-backup list i az sql midb ltr-backup delete, aby zarządzać długoterminowymi kopiami zapasowymi przy użyciu parametru DatabaseState i wartości zwracanej DatabaseDeletionTime w celu filtrowania kopii zapasowych dla bazy danych.

Obiekt docelowy event_file sesji zdarzeń system_health jest niedostępny

Podczas próby odczytania zawartości event_file docelowej system_health sesji zdarzeń zostanie wyświetlony błąd 40538 " Prawidłowy adres URL rozpoczynający się od "https://" jest wymagany jako wartość dla każdej określonej ścieżki plików. Dzieje się tak w programie SQL Server Management Studio lub podczas odczytywania danych sesji przy użyciu funkcji sys.fn_xe_file_target_read_file .

Ta zmiana zachowania jest niezamierzoną konsekwencją niedawnej wymaganej poprawki zabezpieczeń. Badamy wykonalność dodatkowej zmiany, która umożliwiłaby klientom bezpieczne korzystanie z system_health sesji w usłudze Azure SQL Managed Instance. W międzyczasie klienci mogą obejść ten problem, tworząc własny odpowiednik system_health sesji z obiektem event_file docelowym w usłudze Azure Blob Storage. Aby uzyskać więcej informacji, w tym skrypt języka T-SQL w celu utworzenia sesji, którą można zmodyfikować w celu utworzenia system_health własnego odpowiednika system_healthprogramu , zobacz Use the system_health session (Używanie sesji system_health).

Procedura sp_send_dbmail może zakończyć się niepowodzeniem, gdy @query parametr jest używany w wystąpieniach zarządzanych z włączoną obsługą nov22FW

Procedura sp_send_dbmail może zakończyć się niepowodzeniem w przypadku @query użycia parametru i ma to wpływ na wystąpienia z włączoną falą funkcji z listopada 2022 r. Błędy występują, gdy procedura składowana jest wykonywana na koncie sysadmin.

Ten problem jest spowodowany przez znaną usterkę związaną z używaniem sp_send_dbmail personifikacji.

Obejście: Upewnij się, że wywołasz konto sp_send_dbmail niestandardowe w ramach utworzonego konta niestandardowego, a nie w obszarze konta sysadmin.

Oto przykład tworzenia dedykowanego konta i modyfikowania istniejących obiektów wysyłających wiadomości e-mail za pośrednictwem usługi sp_send_dbmail.

USE [msdb]
GO

-- Step 1: Create a user mapped to a login to specify as a runtime user.
CREATE USER [user_name] FOR LOGIN [login_name]
GO
EXEC msdb.dbo.sp_update_jobstep @job_name=N'db_mail_sending_job', @step_id=db_mail_sending_job_id , @database_user_name=N'user_name'
GO

-- Step 2: Grant DB Mail permissions to the user who created it.
ALTER ROLE [DatabaseMailUserRole] ADD MEMBER [user_name]
GO

-- Step 3: If the database of the job step is not msdb, the permission error cannot be avoided even if it is a member of the role, so set it to msdb.
EXEC msdb.dbo.sp_update_jobstep @job_name=N'db_mail_sending_job', @step_id=db_mail_sending_job_id , @database_name=N'msdb'
GO 

-- Step 4: Set a principal in the email profile
EXEC msdb.dbo.sysmail_add_principalprofile_sp @principal_name=N'user_name', @profile_name=N'profile_name', @is_default=0
GO

Tymczasowe wskazówki dotyczące aktualizacji strefy czasowej 2022 dla Chile

8 sierpnia 2022 r. chilijski rząd ogłosił oficjalne ogłoszenie o zmianie strefy czasowej czasu letniego (DST). Począwszy od 12:00 w sobotę, 10 września 2022 r., do 12:00 w sobotę, 1 kwietnia 2023 r., oficjalny czas przejdzie 60 minut. Zmiana dotyczy następujących trzech stref czasowych: Pacyfik SA (czas standardowy), Easter Island (Czas standardowy) i Magallanes (czas standardowy). Usługi Azure SQL Managed Instances korzystające ze stref czasowych, których dotyczy problem, nie odzwierciedlają zmian , dopóki firma Microsoft nie wyda aktualizacji systemu operacyjnego w celu jej obsługi, a usługa Azure SQL Managed Instance pochłania aktualizację na poziomie systemu operacyjnego.

Obejście: Jeśli musisz zmienić strefy czasowe dla wystąpień zarządzanych, pamiętaj o ograniczeniach i postępuj zgodnie ze wskazówkami z dokumentacji.

Zmiana typu połączenia nie ma wpływu na połączenia za pośrednictwem punktu końcowego grupy trybu failover

Jeśli wystąpienie uczestniczy w grupie trybu failover, zmiana typu połączenia wystąpienia nie będzie obowiązywać dla połączeń ustanowionych za pośrednictwem punktu końcowego odbiornika grupy trybu failover.

Obejście: Upuść i utwórz ponownie grupę trybu failover po zmianie typu połączenia.

Procedura sp_send_dbmail może zakończyć się przejściowym niepowodzeniem w przypadku @query użycia parametru

Procedura sp_send_dbmail może ulec przejściowej awarii, gdy @query jest używany parametr. W przypadku wystąpienia tego problemu co drugie wykonanie procedury sp_send_dbmail kończy się niepowodzeniem z błędem Msg 22050, Level 16, State 1 i komunikatem Failed to initialize sqlcmd library with error number -2147467259. Aby można było prawidłowo zobaczyć ten błąd, należy wywołać procedurę z wartością domyślną 0 dla parametru @exclude_query_output. W przeciwnym razie błąd nie zostanie rozpropagowany.

Ten problem jest spowodowany przez znaną usterkę związaną z używaniem sp_send_dbmail personifikacji i buforowania połączeń.

Aby obejść ten problem, zawijaj kod wysyłania wiadomości e-mail do logiki ponawiania, która opiera się na parametrze @mailitem_idwyjściowym . Jeśli wykonanie zakończy się niepowodzeniem, wartość parametru ma wartość NULL, co wskazuje sp_send_dbmail , że powinna zostać wywołana jeszcze raz, aby pomyślnie wysłać wiadomość e-mail. Oto przykład logiki ponawiania prób:

CREATE PROCEDURE send_dbmail_with_retry AS
BEGIN
    DECLARE @miid INT
    EXEC msdb.dbo.sp_send_dbmail
        @recipients = 'name@mail.com', @subject = 'Subject', @query = 'select * from dbo.test_table',
        @profile_name ='AzureManagedInstance_dbmail_profile', @execute_query_database = 'testdb',
        @mailitem_id = @miid OUTPUT

    -- If sp_send_dbmail returned NULL @mailidem_id then retry sending email.
    --
    IF (@miid is NULL)
    EXEC msdb.dbo.sp_send_dbmail
        @recipients = 'name@mail.com', @subject = 'Subject', @query = 'select * from dbo.test_table',
        @profile_name ='AzureManagedInstance_dbmail_profile', @execute_query_database = 'testdb',
END

Transakcje rozproszone można wykonywać po usunięciu wystąpienia zarządzanego z grupy zaufania serwera

Grupy zaufania serwera służą do ustanawiania zaufania między wystąpieniami zarządzanymi, które są wymaganiami wstępnymi dotyczącymi wykonywania transakcji rozproszonych. Po usunięciu wystąpienia zarządzanego z grupy zaufania serwera lub usunięciu grupy nadal może być możliwe wykonanie transakcji rozproszonych. Istnieje obejście problemu, które można zastosować, aby upewnić się, że transakcje rozproszone są wyłączone i że ręczne przełączanie w tryb failover inicjowane przez użytkownika w wystąpieniu zarządzanym.

Transakcje rozproszone nie mogą być wykonywane po operacji skalowania wystąpienia zarządzanego

Operacje skalowania usługi SQL Managed Instance, które obejmują zmianę warstwy usługi lub liczby rdzeni wirtualnych, zresetują ustawienia grupy zaufania serwera na zapleczu i wyłączą uruchamianie transakcji rozproszonych. Aby obejść ten problem, usuń i utwórz nową grupę zaufania serwera w witrynie Azure Portal.

Nie można utworzyć wystąpienia zarządzanego SQL o takiej samej nazwie jak wcześniej usunięty serwer logiczny

Rekord DNS jest <name>.database.windows.com tworzony podczas tworzenia serwera logicznego na platformie Azure dla usługi Azure SQL Database oraz podczas tworzenia wystąpienia zarządzanego SQL. Rekord DNS musi być unikatowy. W związku z tym, jeśli utworzysz serwer logiczny dla usługi SQL Database, a następnie usuniesz go, istnieje okres progowy z siedmiu dni przed zwolnieniem nazwy z rekordów. W tym okresie nie można utworzyć wystąpienia zarządzanego SQL o tej samej nazwie co usunięty serwer logiczny. Aby obejść ten problem, użyj innej nazwy wystąpienia zarządzanego SQL lub utwórz bilet pomocy technicznej, aby zwolnić nazwę serwera logicznego.

Jednostka usługi nie może uzyskać dostępu do identyfikatora Entra firmy Microsoft i usługi AKV

W niektórych okolicznościach może wystąpić problem z jednostką usługi używaną do uzyskiwania dostępu do usługi Microsoft Entra ID (dawniej Azure Active Directory) i usług Azure Key Vault (AKV). W rezultacie ten problem ma wpływ na użycie uwierzytelniania w usłudze Microsoft Entra i przezroczystego szyfrowania danych (TDE) za pomocą usługi SQL Managed Instance. Może to wystąpić jako sporadyczne problemy z łącznością lub nie można uruchomić instrukcji, takich jak CREATE LOGIN/USER FROM EXTERNAL PROVIDER lub EXECUTE AS LOGIN/USER. Skonfigurowanie funkcji TDE przy użyciu klucza zarządzanego przez klienta w nowym wystąpieniu zarządzanym azure SQL może również nie działać w pewnych okolicznościach.

Obejście: Aby zapobiec wystąpieniu tego problemu w wystąpieniu zarządzanym SQL przed wykonaniem jakichkolwiek poleceń aktualizacji lub w przypadku, gdy ten problem wystąpił już po zaktualizowaniu poleceń, przejdź do witryny Azure Portal, uzyskaj dostęp do strony administratora usługi Active Directory usługi SQL Managed Instance. Sprawdź, czy widzisz komunikat o błędzie "Wystąpienie zarządzane wymaga jednostki usługi, aby uzyskać dostęp do identyfikatora Entra firmy Microsoft. Kliknij tutaj, aby utworzyć jednostkę usługi". W przypadku napotkania tego komunikatu o błędzie wybierz go i postępuj zgodnie z instrukcjami krok po kroku podanymi do momentu rozwiązania tego błędu.

Ograniczenie ręcznego przechodzenia w tryb failover za pośrednictwem portalu dla grup trybu failover

Jeśli grupa trybu failover obejmuje wiele wystąpień w różnych subskrypcjach platformy Azure lub grupach zasobów, ręczne przejście w tryb failover nie może być inicjowane z wystąpienia podstawowego w grupie trybu failover.

Obejście: Zainicjuj tryb failover za pośrednictwem portalu z wystąpienia pomocniczego obszaru geograficznego.

Role agenta SQL wymagają jawnych uprawnień do wykonywania w przypadku identyfikatorów logowania innych niż sysadmin

Jeśli do jakichkolwiek stałych ról bazy danych agenta SQL dodano identyfikatory logowania inne niż administrator systemu, istnieje problem polegający na tym, że jawne uprawnienia EXECUTE muszą zostać przyznane trzem procedurom składowanymi w master bazie danych, aby te identyfikatory logowania działały. Jeśli ten problem zostanie napotkany, zostanie wyświetlony komunikat The EXECUTE permission was denied on the object <object_name> (Microsoft SQL Server, Error: 229) o błędzie.

Obejście: Po dodaniu identyfikatorów logowania do stałej roli bazy danych agenta SQL (SQLAgentUserRole, SQLAgentReaderRole lub SQLAgentOperatorRole) dla każdego z identyfikatorów logowania dodanych do tych ról wykonaj następujący skrypt języka T-SQL, aby jawnie udzielić uprawnień EXECUTE do wymienionych procedur składowanych.

USE [master];
GO

CREATE USER [login_name] FOR LOGIN [login_name];
GO

GRANT EXECUTE ON master.dbo.xp_sqlagent_enum_jobs TO [login_name];
GRANT EXECUTE ON master.dbo.xp_sqlagent_is_starting TO [login_name];
GRANT EXECUTE ON master.dbo.xp_sqlagent_notify TO [login_name];

Limity pamięci OLTP w pamięci nie są stosowane

Warstwa usługi Krytyczne dla działania firmy nie stosuje poprawnie maksymalnych limitów pamięci dla obiektów zoptymalizowanych pod kątem pamięci w niektórych przypadkach. Wystąpienie zarządzane SQL może umożliwić obciążeniu użycie większej ilości pamięci dla operacji OLTP w pamięci, co może mieć wpływ na dostępność i stabilność wystąpienia. Zapytania OLTP w pamięci, które osiągają limity, mogą nie zakończyć się natychmiast niepowodzeniem. Zapytania korzystające z większej ilości pamięci OLTP w pamięci kończą się niepowodzeniem wcześniej, jeśli osiągną limity.

Obejście: Monitoruj użycie magazynu OLTP w pamięci przy użyciu programu SQL Server Management Studio, aby upewnić się, że obciążenie nie korzysta z więcej niż dostępnej pamięci. Zwiększ limity pamięci, które zależą od liczby rdzeni wirtualnych, lub zoptymalizuj obciążenie, aby używać mniejszej ilości pamięci.

Wystąpił nieprawidłowy błąd podczas próby usunięcia pliku, który nie jest pusty

Programy SQL Server i SQL Managed Instance nie zezwalają użytkownikowi na usunięcie pliku, który nie jest pusty. Jeśli spróbujesz usunąć nieistniejący plik danych przy użyciu ALTER DATABASE REMOVE FILE instrukcji , błąd Msg 5042 – The file '<file_name>' cannot be removed because it is not empty nie zostanie natychmiast zwrócony. Wystąpienie zarządzane SQL będzie nadal próbowało usunąć plik, a operacja zakończy się niepowodzeniem po 30 minutach.Internal server error

Zmiana warstwy usługi i operacje tworzenia wystąpienia są blokowane przez trwające przywracanie bazy danych

Bieżąca RESTORE instrukcja, proces migracji usługi Data Migration Service i wbudowane przywracanie do punktu w czasie, zablokuje aktualizowanie warstwy usługi lub zmianę rozmiaru istniejącego wystąpienia i tworzenie nowych wystąpień do momentu zakończenia procesu przywracania.

Proces przywracania blokuje te operacje w wystąpieniach zarządzanych i pulach wystąpień w tej samej podsieci, w której jest uruchomiony proces przywracania. Nie ma to wpływu na wystąpienia w pulach wystąpień. Tworzenie lub zmienianie operacji warstwy usługi nie kończy się niepowodzeniem ani przekroczeniem limitu czasu. Są one kontynuowane po zakończeniu lub anulowaniu procesu przywracania.

Obejście: Zaczekaj na zakończenie procesu przywracania lub anuluj proces przywracania, jeśli operacja tworzenia lub aktualizacji warstwy usługi ma wyższy priorytet.

Zarządca zasobów w warstwie usługi Krytyczne dla działania firmy może być konieczne ponowne skonfigurowanie po przejściu w tryb failover

Funkcja Zarządca zasobów, która umożliwia ograniczenie zasobów przypisanych do obciążenia użytkownika, może niepoprawnie sklasyfikować obciążenie użytkownika po przejściu w tryb failover lub zmianie warstwy usługi zainicjowanej przez użytkownika (na przykład zmiana maksymalnego rozmiaru rdzeni wirtualnych lub maksymalnego rozmiaru magazynu wystąpień).

Obejście: Uruchamiaj ALTER RESOURCE GOVERNOR RECONFIGURE okresowo lub w ramach zadania agenta SQL, które wykonuje zadanie SQL, gdy wystąpienie jest uruchamiane, jeśli używasz zarządcy zasobów.

Okna dialogowe brokera usług między bazami danych muszą zostać ponownie zainicjowane po uaktualnieniu warstwy usługi

Okna dialogowe usługi Service Broker między bazami danych przestaną dostarczać komunikaty do usług w innych bazach danych po zmianie operacji warstwy usług. Komunikaty nie zostaną utracone i można je znaleźć w kolejce nadawcy. Każda zmiana rozmiaru rdzeni wirtualnych lub magazynu wystąpień w usłudze SQL Managed Instance powoduje zmianę service_broke_guid wartości w widoku sys.databases dla wszystkich baz danych. Każda DIALOG utworzona przy użyciu instrukcji BEGIN DIALOG odwołującej się do usługi Service Brokers w innej bazie danych przestaje dostarczać komunikaty do usługi docelowej.

Obejście: Zatrzymaj wszelkie działania korzystające z konwersacji dialogowych między bazami danych usługi Service Broker przed zaktualizowaniem warstwy usługi i zainicjuj je później. Jeśli po zmianie warstwy usługi istnieją pozostałe komunikaty, które nie zostały spełnione, odczytaj komunikaty z kolejki źródłowej i wyślij je ponownie do kolejki docelowej.

Przekraczanie rozmiaru przestrzeni dyskowej w przypadku małych plików bazy danych

CREATE DATABASEinstrukcje , ALTER DATABASE ADD FILEi RESTORE DATABASE mogą zakończyć się niepowodzeniem, ponieważ wystąpienie może osiągnąć limit usługi Azure Storage.

Każde wystąpienie ogólnego przeznaczenia usługi SQL Managed Instance ma do 35 TB miejsca na dysku w warstwie Premium platformy Azure. Każdy plik bazy danych jest umieszczany na osobnym dysku fizycznym. Rozmiary dysków mogą wynosić 128 GB, 256 GB, 512 GB, 1 TB lub 4 TB. Nieużywane miejsce na dysku nie jest obciążane opłatą, ale łączna suma rozmiarów dysków platformy Azure w warstwie Premium nie może przekroczyć 35 TB. Z powodu fragmentacji wewnętrznej wystąpienie zarządzane, które nie wymaga łącznie 8 TB, może w niektórych przypadkach przekroczyć limit przestrzeni dyskowej platformy Azure wynoszący 35 TB.

Na przykład wystąpienie ogólnego przeznaczenia usługi SQL Managed Instance może mieć jeden duży plik o rozmiarze 1,2 TB umieszczonym na dysku o pojemności 4 TB. Może również zawierać 248 plików o rozmiarze 1 GB i umieszczanych na oddzielnych dyskach 128 GB. W tym przykładzie:

  • Łączny przydzielony rozmiar magazynu dysku wynosi 1 x 4 TB + 248 x 128 GB = 35 TB.
  • Łączna ilość zarezerwowanego miejsca dla baz danych w wystąpieniu wynosi 1 x 1,2 TB + 248 x 1 GB = 1,4 TB.

W tym przykładzie pokazano, że w pewnych okolicznościach ze względu na określoną dystrybucję plików wystąpienie usługi SQL Managed Instance może osiągnąć limit 35 TB zarezerwowany dla dołączonego dysku Azure Premium Disk, gdy może się tego nie spodziewać.

W tym przykładzie istniejące bazy danych nadal działają i mogą rosnąć bez żadnego problemu, o ile nowe pliki nie są dodawane. Nie można utworzyć ani przywrócić nowych baz danych, ponieważ nie ma wystarczającej ilości miejsca na nowe dyski, nawet jeśli całkowity rozmiar wszystkich baz danych nie osiągnie limitu rozmiaru wystąpienia. Zwrócony w tym przypadku błąd nie jest jasny.

Możesz zidentyfikować liczbę pozostałych plików przy użyciu widoków systemowych. Jeśli osiągniesz ten limit, spróbuj opróżnić i usunąć niektóre mniejsze pliki przy użyciu instrukcji DBCC SHRINKFILE lub przejść na warstwę Krytyczne dla działania firmy, która nie ma tego limitu.

Wartości identyfikatora GUID wyświetlane zamiast nazw baz danych

Kilka widoków systemu, liczników wydajności, komunikatów o błędach, elementów XEvents i wpisów dziennika błędów wyświetla identyfikatory bazy danych identyfikatorów GUID zamiast rzeczywistych nazw baz danych. Nie należy polegać na tych identyfikatorach GUID, ponieważ mogą zostać zastąpione rzeczywistymi nazwami baz danych w przyszłości.

Obejście: Użyj sys.databases widoku, aby rozpoznać rzeczywistą nazwę bazy danych z nazwy fizycznej bazy danych określonej w postaci identyfikatorów bazy danych GUID:

SELECT name AS ActualDatabaseName,
    physical_database_name AS GUIDDatabaseIdentifier
FROM sys.databases
WHERE database_id > 4;

Moduły CLR i połączone serwery czasami nie mogą odwoływać się do lokalnego adresu IP

Moduły CLR w usłudze SQL Managed Instance i połączone serwery lub zapytania rozproszone odwołujące się do bieżącego wystąpienia czasami nie mogą rozpoznać adresu IP wystąpienia lokalnego. Ten błąd jest przejściowym problemem.

Zakres transakcji w dwóch bazach danych w tym samym wystąpieniu nie jest obsługiwany

(Rozwiązano w marcu 2020 r.) Klasa TransactionScope na platformie .NET nie działa, jeśli dwa zapytania są wysyłane do dwóch baz danych w tym samym wystąpieniu w tym samym zakresie transakcji:

using (var scope = new TransactionScope())
{
    using (var conn1 = new SqlConnection("Server=quickstartbmi.neu15011648751ff.database.windows.net;Database=b;User ID=myuser;Password=mypassword;Encrypt=true"))
    {
        conn1.Open();
        SqlCommand cmd1 = conn1.CreateCommand();
        cmd1.CommandText = string.Format("insert into T1 values(1)");
        cmd1.ExecuteNonQuery();
    }

    using (var conn2 = new SqlConnection("Server=quickstartbmi.neu15011648751ff.database.windows.net;Database=b;User ID=myuser;Password=mypassword;Encrypt=true"))
    {
        conn2.Open();
        var cmd2 = conn2.CreateCommand();
        cmd2.CommandText = string.Format("insert into b.dbo.T2 values(2)");        cmd2.ExecuteNonQuery();
    }

    scope.Complete();
}

Obejście problemu (nie jest wymagane od marca 2020 r.): Użyj polecenia Sql Połączenie ion. ChangeDatabase(String) w celu używania innej bazy danych w kontekście połączenia zamiast używania dwóch połączeń.

Brak rozwiązania

Zwiększona liczba logowań systemowych używanych do replikacji transakcyjnej

Usługa Azure SQL Managed Instance tworzy identyfikator logowania systemu do celów replikacji transakcyjnej. Ten identyfikator logowania można znaleźć w programie SSMS (w Eksploratorze obiektów w obszarze Zabezpieczenia, Identyfikatory logowania) lub w widoku sys.sysloginssystemowym . Format nazwy logowania wygląda następująco: 'DBxCy\WF-abcde01234QWERT', a nazwa logowania ma rolę serwera publicznego. W pewnych warunkach ta nazwa logowania zostanie ponownie utworzona i z powodu błędu w poprzednim logowaniu systemu nie zostanie usunięty. Może to prowadzić do zwiększenia liczby logowań. Te identyfikatory logowania nie reprezentują zagrożenia bezpieczeństwa. Można je bezpiecznie zignorować. Te identyfikatory logowania nie powinny być usuwane, ponieważ co najmniej jeden z nich jest używany do replikacji transakcyjnej.

Tabela ręcznego tworzenia kopii zapasowych w witrynie msdb nie zachowuje nazwy użytkownika

Niedawno wprowadziliśmy obsługę automatycznych kopii zapasowych w programie msdb, ale tabela nie zawiera obecnie informacji o nazwie użytkownika.

Identyfikatory logowania i użytkownicy usługi Microsoft Entra nie są obsługiwane w programie SSDT

Narzędzia SQL Server Data Tools nie obsługują w pełni identyfikatorów logowania i użytkowników firmy Microsoft.

Personifikacja typów logowania entra firmy Microsoft nie jest obsługiwana

Personifikacja przy użyciu lub EXECUTE AS USEREXECUTE AS LOGIN następujących podmiotów zabezpieczeń firmy Microsoft Entra nie jest obsługiwana:

  • Aliasowani użytkownicy firmy Microsoft Entra. W tym przypadku zwracany jest następujący błąd: 15517.
  • Identyfikatory logowania i użytkownicy firmy Microsoft Entra są oparte na aplikacjach firmy Microsoft lub jednostkach usługi. W tym przypadku zwracane są następujące błędy: 15517 i 15406.

Replikacja transakcyjna musi zostać ponownie skonfigurowana po przejściu w tryb failover geograficznie

Jeśli replikacja transakcyjna jest włączona w bazie danych w grupie trybu failover, administrator usługi SQL Managed Instance musi wyczyścić wszystkie publikacje w starym podstawowym i ponownie skonfigurować je w nowym podstawowym po przejściu w tryb failover do innego regionu. Aby uzyskać więcej informacji, zobacz Replikacja.

tempdb struktura i zawartość jest tworzona ponownie

Baza tempdb danych jest zawsze podzielona na 12 plików danych, a nie można zmienić struktury plików. Nie można zmienić maksymalnego rozmiaru pliku i nie można dodać nowych plików do tempdbprogramu . Baza tempdb danych jest zawsze tworzona ponownie jako pusta baza danych po uruchomieniu wystąpienia lub przejściu w tryb failover, a wszelkie zmiany wprowadzone w tempdb programie nie zostaną zachowane.

Dzienniki błędów nie są utrwalane

Dzienniki błędów, które są dostępne w usłudze SQL Managed Instance, nie są utrwalane, a ich rozmiar nie jest uwzględniany w maksymalnym limicie magazynu. Dzienniki błędów mogą zostać automatycznie wymazane w przypadku przejścia w tryb failover. W historii dziennika błędów mogą występować luki, ponieważ wystąpienie zarządzane SQL zostało przeniesione kilka razy na kilku maszynach wirtualnych.

Tymczasowa niedostępność wystąpienia przy użyciu odbiornika grupy trybu failover podczas operacji skalowania

Skalowanie wystąpienia zarządzanego czasami wymaga przeniesienia wystąpienia do innego klastra wirtualnego wraz ze skojarzonymi rekordami DNS obsługiwanymi przez usługę. Jeśli wystąpienie zarządzane uczestniczy w grupie trybu failover, rekord DNS odpowiadający skojarzonemu odbiornikowi grupy trybu failover (odbiornikowi odczytu i zapisu, jeśli wystąpienie jest bieżącym odbiornikiem tylko do odczytu geograficznego, jeśli wystąpienie jest bieżącym pomocniczym obszarem geograficznym) zostanie przeniesione do nowego klastra wirtualnego.

W bieżącym projekcie operacji skalowania rekordy DNS odbiornika są usuwane z klastra wirtualnego źródłowego, zanim wystąpienie zarządzane zostanie w pełni zmigrowane do nowego klastra wirtualnego, co w niektórych sytuacjach może prowadzić do dłuższego czasu, w którym adres IP wystąpienia nie może zostać rozwiązany przy użyciu odbiornika. W tym czasie klient SQL próbujący uzyskać dostęp do skalowanego wystąpienia przy użyciu punktu końcowego odbiornika może oczekiwać niepowodzeń logowania z następującym komunikatem o błędzie: "Błąd 40532: Nie można otworzyć serwera "xxx.xxx.xxx.xxx" żądanego podczas logowania. Logowanie nie powiodło się. (Microsoft SQL Server, błąd: 40532)".

Problem zostanie rozwiązany przez przeprojektowanie operacji skalowania.

Resolved

Zapytanie w tabeli zewnętrznej kończy się niepowodzeniem z komunikatem o błędzie nieobsługiwanymi

Wykonywanie zapytań względem tabeli zewnętrznej może zakończyć się niepowodzeniem z ogólnym komunikatem o błędzie "Zapytania dotyczące tabel zewnętrznych nie są obsługiwane z bieżącą warstwą usługi lub poziomem wydajności tej bazy danych. Rozważ wybór wyższej warstwy usługi lub poziomu wydajności bazy danych”. Jedynym typem tabeli zewnętrznej obsługiwanym w usłudze Azure SQL Managed Instance są tabele zewnętrzne polyBase (w wersji zapoznawczej). Aby zezwolić na zapytania w tabelach zewnętrznych programu PolyBase, należy włączyć program PolyBase w wystąpieniu zarządzanym, uruchamiając sp_configure polecenie .

Tabele zewnętrzne powiązane z funkcją Elastic Query usługi Azure SQL Database nie są obsługiwane w usłudze SQL Managed Instance, ale tworzenie i wykonywanie zapytań nie zostało jawnie zablokowane. Dzięki obsłudze tabel zewnętrznych polyBase wprowadzono nowe kontrole, blokując wykonywanie zapytań dowolnego typu tabeli zewnętrznej w wystąpieniu zarządzanym, chyba że technologia PolyBase jest włączona.

Jeśli używasz nieobsługiwanych tabel zewnętrznych Elastic Query do wykonywania zapytań dotyczących danych w usłudze Azure SQL Database lub Azure Synapse z wystąpienia zarządzanego, zamiast tego należy użyć funkcji serwera połączonego. Aby nawiązać połączenie serwera połączonego z wystąpienia zarządzanego SQL do usługi SQL Database, postępuj zgodnie z instrukcjami z tego artykułu. Aby ustanowić połączenie serwera połączonego z usługi SQL Managed Instance do usługi SQL Synapse, sprawdź instrukcje krok po kroku. Ponieważ konfigurowanie i testowanie połączenia serwera połączonego zajmuje trochę czasu, możesz użyć obejścia jako tymczasowego rozwiązania umożliwiającego wykonywanie zapytań dotyczących tabel zewnętrznych związanych z funkcją Elastic Query:

Obejście: Wykonaj następujące polecenia (raz na wystąpienie), które umożliwiają wykonywanie zapytań w tabelach zewnętrznych:

sp_configure 'polybase enabled', 1;
GO

RECONFIGURE;
GO

W przypadku korzystania z uwierzytelniania programu SQL Server nazwy użytkowników z adresem "@" nie są obsługiwane

Nazwy użytkowników zawierające symbol "@" w środku (na przykład 'abc@xy') nie mogą się zalogować przy użyciu uwierzytelniania programu SQL Server.

Przywracanie ręcznej kopii zapasowej bez sumy KONTROLNEj może zakończyć się niepowodzeniem

W pewnych okolicznościach ręczne tworzenie kopii zapasowych baz danych w wystąpieniu zarządzanym bez sumy KONTROLNEj może zakończyć się niepowodzeniem. W takich przypadkach ponów próbę przywrócenia kopii zapasowej do momentu pomyślnego zakończenia.

Obejście: Ręczne tworzenie kopii zapasowych baz danych w wystąpieniach zarządzanych z włączoną funkcją CHECKSUM.

Agent przestaje odpowiadać podczas modyfikowania, wyłączania lub włączania istniejących zadań

W pewnych okolicznościach modyfikowanie, wyłączanie lub włączanie istniejącego zadania może spowodować, że agent przestanie odpowiadać. Problem jest automatycznie ograniczany po wykryciu, co powoduje ponowne uruchomienie procesu agenta.

Uprawnienia do grupy zasobów nie są stosowane do usługi SQL Managed Instance

Gdy rola współautora wystąpienia zarządzanego SQL jest stosowana do grupy zasobów (RG), nie jest stosowana do usługi SQL Managed Instance i nie ma żadnego wpływu.

Obejście: Skonfiguruj rolę współautora wystąpienia zarządzanego SQL dla użytkowników na poziomie subskrypcji.

Zadania agenta SQL mogą zostać przerwane przez ponowne uruchomienie procesu agenta

(Rozwiązano w marcu 2020 r.) Agent SQL tworzy nową sesję za każdym razem, gdy zadanie jest uruchamiane, stopniowo zwiększając zużycie pamięci. Aby uniknąć osiągnięcia limitu pamięci wewnętrznej, co spowoduje zablokowanie wykonywania zaplanowanych zadań, proces agenta zostanie uruchomiony ponownie po osiągnięciu progu użycia pamięci. Może to spowodować przerwanie wykonywania zadań uruchomionych w momencie ponownego uruchomienia.

@query parametr nie jest obsługiwany w sp_send_db_mail

Parametr @query w procedurze sp_send_db_mail nie działa.

Mylący komunikat o błędzie w witrynie Azure Portal sugerujący odtworzenie jednostki usługi

Strona administratora usługi Active Directory w witrynie Azure Portal dla usługi Azure SQL Managed Instance może wyświetlić następujący komunikat o błędzie, mimo że jednostka usługi już istnieje:

"Wystąpienie zarządzane wymaga jednostki usługi, aby uzyskać dostęp do identyfikatora entra firmy Microsoft (dawniej Azure Active Directory). Kliknij tutaj, aby utworzyć jednostkę usługi"

Ten komunikat o błędzie można pominąć, jeśli jednostka usługi dla wystąpienia zarządzanego już istnieje i/lub uwierzytelnianie firmy Microsoft Entra w wystąpieniu zarządzanym działa.

Aby sprawdzić, czy jednostka usługi istnieje, przejdź do strony Aplikacje dla przedsiębiorstw w witrynie Azure Portal, wybierz pozycję Tożsamości zarządzane z listy rozwijanej Typ aplikacji, wybierz pozycję Zastosuj i wpisz nazwę wystąpienia zarządzanego w polu wyszukiwania. Jeśli nazwa wystąpienia jest wyświetlana na liście wyników, jednostka usługi już istnieje i nie są potrzebne żadne dalsze działania.

Jeśli już wykonano instrukcje z komunikatu o błędzie i wybrano link z komunikatu o błędzie, jednostka usługi wystąpienia zarządzanego została ponownie utworzona. W takim przypadku przypisz uprawnienia do odczytu identyfikatora Entra firmy Microsoft do nowo utworzonej jednostki usługi, aby uwierzytelnianie firmy Microsoft Entra działało prawidłowo. Można to zrobić za pomocą programu Azure PowerShell, postępując zgodnie z instrukcjami.

Współtworzenie zawartości

Aby współtworzyć dokumentację usługi Azure SQL, zobacz Przewodnik współautora witryny Docs.

  • Aby uzyskać listę aktualizacji i ulepszeń usługi SQL Managed Instance, zobacz Aktualizacje usługi SQL Managed Instance.

  • Aby uzyskać informacje o aktualizacjach i ulepszeniach wszystkich usług platformy Azure, zobacz Aktualizacje usługi.