Dela via


Kända problem med Azure SQL Managed Instance

gäller för:Azure SQL Managed Instance

Den här artikeln innehåller en lista över kända problem med Azure SQL Managed Instanceoch deras lösningsdatum eller möjliga lösning. Mer information om Azure SQL Managed Instance finns i Vad är Azure SQL Managed Instance?och Vad är nytt i Azure SQL Managed Instance?

Obs

Microsoft Entra ID tidigare kallades Azure Active Directory (Azure AD).

Kända problem

Utfärda Identifierat datum Status Datum åtgärdat
Fel 8992 vid körning av DBCC CHECKDB på en SQL Server-databas som kommer från SQL Managed Instance mars 2025 Har lösning
Differentiella säkerhetskopior görs inte när en instans är länkad till SQL Server- Sept 2024 Avsiktligt
Lista över långsiktiga säkerhetskopior i Azure-portalen visar säkerhetskopieringsfiler för aktiva och borttagna databaser med samma namn mars 2024 Har lösning
Tillfällig otillgänglighet för instansen med hjälp av failovergruppslyssnaren under en skalningsåtgärd jan 2024 Ingen lösning
Målet för event_file i händelsesessionen system_health är inte tillgängligt december 2023 Har lösning
Procedure sp_send_dbmail might fail when @query parameter is used on Nov22FW enabled managed instances December 2023 Har lösning
Ökat antal systeminloggningar som används för transaktionsreplikering December 2022 Ingen lösning
msdb-tabell för manuella säkerhetskopieringar bevarar inte användarnamnet nov 2022 Löst aug 2023
Interimsvägledning om tidszonsuppdateringar för Chile 2022 aug 2022 Har lösning
Det går inte att köra frågor mot den externa tabellen med felmeddelandet "stöds inte" Januari 2022 Löst Sept 2022
När du använder SQL Server-autentisering stöds inte användarnamn med @ Okt 2021 Löst Februari 2022
Vilseledande felmeddelande på Azure-portalen som tyder på att tjänsthuvudprincipen ska återskapas Sep 2021 Okt 2021
Ändring av anslutningstyp påverkar inte anslutningar via slutpunkten för redundansgrupper jan 2021 Har lösning
Procedure sp_send_dbmail might transiently fail when @query parameter is used Januari 2021 Löst Mars 2022
distribuerade transaktioner kan köras när hanterade instanser har tagits bort från serverförtroendegruppen Okt 2020 Har lösning
Distribuerade transaktioner kan inte utföras efter skalning av den hanterade instansen Okt 2020 Löst Maj 2021
Det går inte att skapa SQL Managed Instance med samma namn som den logiska server som tidigare tagits bort aug 2020 Har lösning
Tjänstehuvudnamn kan inte komma åt Microsoft Entra ID och AKV aug 2020 Har lösning
Återställning av manuell säkerhetskopiering utan CHECKSUM kan misslyckas Maj 2020 Löst Juni 2020
Agenten svarar inte när du ändrar, inaktiverar eller aktiverar befintliga jobb Maj 2020 Löst Juni 2020
Behörigheter på resursgruppen tillämpas inte på SQL Managed Instance Februari 2020 Löst Nov 2020
Begränsning av manuell redundans via portalen för redundansgrupper Januari 2020 Har lösning
SQL Agent-roller behöver explicita EXECUTE-behörigheter för icke-sysadmin-användare Dec 2019 Löst Sep 2022
SQL Agent-jobb kan avbrytas av omstart av agentprocess Dec 2019 Löst mars 2020
Microsoft Entra-inloggningar och användare stöds inte i SSDT- Nov 2019 Ingen lösning
minnesinterna OLTP-minnesgränser tillämpas inte Okt 2019 Har lösning
Felfel returnerades vid försök att ta bort en fil som inte är tom Okt 2019 Löst Augusti 2020
Ändring av tjänstnivå och skapande av instans blockeras av pågående databasåterställning Sep 2019 Har lösning
Resource Governor på den affärskritiska tjänstenivån kan behöva konfigureras om efter felöverföring Sep 2019 Har lösning
Service Broker-dialoger mellan databaser måste initieras om efter uppgradering av tjänstlager Aug 2019 Har lösning
Personifiering av Microsoft Entra-inloggningstyper stöds inte juli 2019 Ingen lösning
@query parameter stöds inte i sp_send_db_mail Apr 2019 Löst Jan 2021
Transaktionsreplikering måste konfigureras om efter geografisk failover mars 2019 Ingen lösning
tempdb-struktur och innehåll återskapas Ingen lösning
Överskridande av lagringskapacitet på grund av små databasfiler Har lösning
GUID-värden som visas i stället för databasnamn Har lösning
Felloggar sparas inte Ingen lösning
Transaktionsomfång för två databaser i samma instans stöds inte Har lösning mars 2020
CLR-moduler och länkade servrar kan ibland inte referera till en lokal IP-adress Har lösning
Databaskonsistensen har inte verifierats med DBCC CHECKDB efter återställning av databasen från Azure Blob Storage. Löst Nov 2019
Återställning av databas vid specifik tidpunkt från nivån Affärskritisk till nivån Allmänt ändamål kommer inte att lyckas om källdatabasen innehåller minnesinterna OLTP-objekt. Löst Okt 2019
Databasmeddelandefunktion med externa (icke-Azure) e-postservrar med säker anslutning Löst Okt 2019
Inneslutna databaser stöds inte i SQL Managed Instance Löst Aug 2019

Har lösning

Fel 8992 vid körning av DBCC CHECKDB på en SQL Server-databas som kommer från SQL Managed Instance

Du kan se följande fel när du kör DBCC CHECKDB-kommandot på en SQL Server 2022-databas när du har tagit bort ett index eller en tabell med ett index, och databasen kommer från Azure SQL Managed Instance, till exempel efter att du har återställt en säkerhetskopia eller från länkfunktionen Hanterad instans:

_Msg 8992, Level 16, State 1, Line <Line_Number>an
Check Catalog Msg 3853, State 1: Attribute (%ls) of row (%ls) in sys.sysrowsetrefs does not have a matching row (%ls) in sys.indexes._

Du kan undvika problemet genom att först släppa indexet eller tabellen med indexet från källdatabasen i Azure SQL Managed Instance och sedan återställa eller länka databasen till SQL Server 2022 igen. Om det inte går att återskapa databasen från azure SQL Managed Instance-källan kontaktar du Microsofts support för att lösa problemet.

Lista över långsiktiga säkerhetskopieringar i Azure-portalen visar säkerhetskopieringsfiler för aktiva och borttagna databaser med samma namn

Långsiktiga säkerhetskopior kan visas och hanteras på azure-portalsidan för en Hanterad Azure SQL-instans på fliken Säkerhetskopieringar. Sidan visar aktiva eller borttagna databaser, grundläggande information om deras långsiktiga säkerhetskopior och länk för att hantera säkerhetskopior. När du väljer länken Hantera öppnas ett nytt sidofönster med en lista över säkerhetskopior. På grund av ett problem med filtreringslogik visar listan säkerhetskopior för både aktiva databaser och borttagna databaser med samma namn. Detta kräver särskild uppmärksamhet när du väljer säkerhetskopior för borttagning, för att undvika att ta bort säkerhetskopior för en felaktig databas.

Lösning: Använd säkerhetskopieringstid (UTC) information i listan för att särskilja säkerhetskopior som tillhör databaser med samma namn som fanns på instansen under olika perioder. Du kan också använda PowerShell-kommandon Get-AzSqlInstanceDatabaseLongTermRetentionBackup och Remove-AzSqlInstanceDatabaseLongTermRetentionBackupeller CLI-kommandon az sql midb ltr-backup list och az sql midb ltr-backup delete för att hantera långsiktiga säkerhetskopior med hjälp av parametern DatabaseState och DatabaseDeletionTime returnera värde för att filtrera säkerhetskopior för en databas.

Målet för event_file i system_health-händelsesessionen är inte tillgängligt

När du försöker läsa innehållet i event_file mål för system_health händelsesessionen får du fel 40538: "En giltig URL som börjar med "https://" krävs som värde för alla angivna filsökvägar." Detta inträffar i SQL Server Management Studio eller när du läser sessionsdata med hjälp av funktionen sys.fn_xe_file_target_read_file.

Den här ändringen i beteendet är en oavsiktlig konsekvens av en säkerhetskorrigering som nyligen krävdes. Vi undersöker möjligheten till ytterligare en ändring som gör det möjligt för kunder att fortsätta använda den system_health sessionen i Azure SQL Managed Instance på ett säkert sätt. Under tiden kan kunderna kringgå det här problemet genom att skapa en egen motsvarighet till system_health-sessionen med ett event_file mål i Azure Blob Storage. Mer information, inklusive ett T-SQL-skript för att skapa den system_health session som kan ändras för att skapa en egen motsvarighet till system_health, finns i Använd system_health-sessionen.

Proceduren sp_send_dbmail kan misslyckas när parametern @query

Proceduren sp_send_dbmail kan misslyckas när @query parameter används. Fel inträffar när den lagrade proceduren körs under sysadmin-kontot.

Det här problemet orsakas av en känd bugg som rör hur sp_send_dbmail använder personifiering.

Lösning: Kontrollera att du anropar sp_send_dbmail under lämpligt anpassat konto som du har skapat och inte under sysadmin-konto.

Här är ett exempel på hur du kan skapa ett dedikerat konto och ändra befintliga objekt som skickar e-post via 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

Interimsvägledning om tidszonsuppdateringar för Chile 2022

Den 8 augusti 2022 gjorde den chilenska regeringen ett officiellt tillkännagivande om en Daylight-Saving Time (DST) tidszonsändring. Från och med 12:00 lördag 10 september 2022, till 12:00 lördag 1 april 2023, kommer den officiella tiden att avancera 60 minuter. Ändringen påverkar följande tre tidszoner: Pacific SA Standard Time, Easter Island Standard Time och Magallanes Standard Time. Azure SQL Managed Instances som använder berörda tidszoner återspeglar inte de ändringar som förrän Microsoft släpper en OS-uppdatering för att stödja detta, och Azure SQL Managed Instance-tjänsten absorberar uppdateringen på OS-nivå.

Lösning: Om du behöver ändra berörda tidszoner för dina hanterade instanser bör du vara medveten om begränsningar och följa vägledningen i dokumentationen.

Ändra anslutningstyp påverkar inte anslutningar via slutpunkten för redundansgruppen

Om en instans deltar i en failover-grupp, börjar inte instansens anslutningstyp gälla för de anslutningar som upprättas via lyssnarslutpunkten för failover-gruppen.

Lösning: Släpp och återskapa failover-gruppen efter att du har ändrat anslutningstypen.

Proceduren sp_send_dbmail kan misslyckas tillfälligt när @query parameter används

Proceduren sp_send_dbmail kan misslyckas tillfälligt när @query parameter används. När det här problemet uppstår misslyckas körning av proceduren sp_send_dbmail varannan gång, med fel Msg 22050, Level 16, State 1 och meddelande Failed to initialize sqlcmd library with error number -2147467259. För att kunna se det här felet korrekt bör proceduren anropas med standardvärdet 0 för parametern @exclude_query_output, annars sprids inte felet.

Det här problemet orsakas av en känd bugg som rör hur sp_send_dbmail använder personifiering och anslutningspooler.

För att kringgå det här problemet omsluter du kod för att skicka e-post till en logik för återförsök som förlitar sig på utdataparametern @mailitem_id. Om körningen misslyckas är parametervärdet NULL, vilket anger att sp_send_dbmail ska anropas en gång till för att lyckas skicka ett e-postmeddelande. Här är ett exempel på den här logiken för återförsök:

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

Distribuerade transaktioner kan köras när hanterad instans har tagits bort från serverförtroendegruppen

Serverförtroendegrupper används för att upprätta förtroende mellan hanterade instanser, vilket är nödvändigt för att köra distribuerade transaktioner. När du har tagit bort den hanterade instansen från serverförtroendegruppen eller tagit bort gruppen kanske du fortfarande kan köra distribuerade transaktioner. Det finns en lösning som du kan använda för att vara säker på att distribuerade transaktioner är inaktiverade och det är användarinitierad manuell redundansväxling på den hanterade instansen.

Distribuerade transaktioner kan inte köras efter en skalningsoperation av hanterade instanser

SQL Managed Instance-skalningsåtgärder som omfattar ändring av tjänstnivå eller antal virtuella kärnor återställer inställningar för serverförtroendegrupp på serverdelen och inaktiverar körning av distribuerade transaktioner . Som en lösning kan du ta bort och skapa nya Server Trust Group på Azure-portalen.

Det går inte att skapa SQL Managed Instance med samma namn som den logiska servern som tidigare tagits bort

En DNS-record med <name>.database.windows.com skapas när du skapar en logisk server i Azure för Azure SQL Database, och även när du skapar en SQL-hanterad instans. DNS-posten måste vara unik. Om du skapar en logisk server för SQL Database och sedan tar bort den finns det därför en tröskelperiod på sju dagar innan namnet släpps från posterna. Under den perioden kan en SQL Managed Instance inte skapas med samma namn som den borttagna logiska servern. Som en lösning kan du använda ett annat namn för SQL Managed Instance eller skapa ett supportärende för att frigöra det logiska servernamnet.

Tjänstens huvudnamn kan inte komma åt Microsoft Entra-ID och AKV

I vissa fall kan det finnas ett problem med tjänstens huvudnamn som används för att komma åt Microsoft Entra-ID (tidigare Azure Active Directory-) och Azure Key Vault-tjänster (AKV). Det här problemet påverkar därför användningen av Microsoft Entra-autentisering och transparent datakryptering (TDE) med SQL Managed Instance. Detta kan uppstå som ett tillfälligt anslutningsproblem eller att inte kunna köra instruktioner som CREATE LOGIN/USER FROM EXTERNAL PROVIDER eller EXECUTE AS LOGIN/USER. Att konfigurera TDE med kundhanterad nyckel på en ny Azure SQL Managed Instance kanske inte heller fungerar under vissa omständigheter.

Lösning: Om du vill förhindra att det här problemet uppstår på din SQL Managed Instance, innan du kör några uppdateringskommandon, eller om du redan har upplevt det här problemet efter uppdateringskommandon, går du till sidan Översikt för din SQL-hanterade instans i Azure-portalen. Under Inställningarväljer du Microsoft Entra-ID för att komma åt administratörssidan för SQL Managed Instance Microsoft Entra ID. Kontrollera om du kan se felmeddelandet "Hanterad instans behöver ett tjänsthuvudnamn för att få åtkomst till Microsoft Entra-ID. Klicka här om du vill skapa ett huvudnamn för tjänsten". Om du har stött på det här felmeddelandet väljer du det och följer de stegvisa instruktionerna tills det här felet har lösts.

Begränsning av manuell redundans via portalen för redundansgrupper

Om en redundansgrupp sträcker sig över instanser i olika Azure-prenumerationer eller resursgrupper kan manuell redundans inte initieras från den primära instansen i redundansgruppen.

Arbetssätt: Initiera övergång via portalen från den geo-sekundära instansen.

SQL Agent-roller behöver explicita EXECUTE-behörigheter för användare som inte är sysadmin

Om icke-sysadmin-inloggningar läggs till i någon fasta databasroller för SQL Agentfinns det ett problem där explicita EXECUTE-behörigheter måste beviljas till tre lagrade procedurer i master-databasen för att inloggningarna ska fungera. Om det här problemet uppstår visas felmeddelandet The EXECUTE permission was denied on the object <object_name> (Microsoft SQL Server, Error: 229).

Lösning: När du har lagt till inloggningar i en fast DATABASroll för SQL Agent (SQLAgentUserRole, SQLAgentReaderRole eller SQLAgentOperatorRole) kör du följande T-SQL-skript för att uttryckligen bevilja EXECUTE-behörigheter till de lagrade procedurerna i listan.

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];

Minnesinterna OLTP-minnesgränser tillämpas inte

Tjänstnivån Affärskritisk tillämpar inte korrekt maximala minnesgränser för minnesoptimerade objekt i vissa fall. SQL Managed Instance kan göra det möjligt för arbetsbelastningen att använda mer minne för minnesinterna OLTP-åtgärder, vilket kan påverka tillgängligheten och stabiliteten för instansen. Minnesinterna OLTP-frågor som når gränserna kanske inte misslyckas omedelbart. De frågor som använder mer minnesinternt OLTP-minne misslyckas tidigare om de når gränserna.

Lösning: Övervaka minnesintern OLTP-lagringsanvändning med hjälp av SQL Server Management Studio för att säkerställa att arbetsbelastningen inte använder mer än det tillgängliga minnet. Öka minnesgränserna som är beroende av antalet virtuella kärnor eller optimera arbetsbelastningen för att använda mindre minne.

Fel fel returnerades vid försök att ta bort en fil som inte är tom

SQL Server och SQL Managed Instance tillåter inte att en användare släpper en fil som inte är tom. Om du försöker ta bort en icke tom datafil med hjälp av en ALTER DATABASE REMOVE FILE-instruktion, returneras felet Msg 5042 – The file '<file_name>' cannot be removed because it is not empty inte omedelbart. SQL Managed Instance fortsätter att försöka släppa filen och åtgärden misslyckas efter 30 minuter med Internal server error.

Förändringar i tjänstnivån och operationer för att skapa instans stoppas av pågående databasåterställning.

En pågående RESTORE-instruktion, en migreringsprocess för datamigreringstjänsten och inbyggd återställning vid en given tidpunkt blockerar både uppdateringen av tjänstnivån och ändringen av instansens storlek samt skapandet av nya instanser tills återställningsprocessen är avslutad.

Återställningsprocessen blockerar dessa åtgärder på de hanterade instanserna och instanspoolerna i samma undernät där återställningsprocessen körs. Instanserna i instanspooler påverkas inte. Åtgärder för att skapa eller ändra tjänstnivå misslyckas inte eller överskrider tidsgränsen. De fortsätter när återställningsprocessen har slutförts eller avbrutits.

Lösning: Vänta tills återställningsprocessen är klar eller avbryt återställningsprocessen om åtgärden för att skapa eller uppdatera tjänstnivå har högre prioritet.

Resource Governor på tjänstnivån Affärskritisk kan behöva rekonfigureras efter ett failover

Funktionen Resource Governor som gör att du kan begränsa de resurser som tilldelats användararbetsbelastningen kan felaktigt klassificera viss användararbetsbelastning efter redundansväxling eller en användarinitierad ändring av tjänstnivån (till exempel ändringen av maximal virtuell kärna eller maximal lagringsstorlek för instanser).

Lösning: Kör ALTER RESOURCE GOVERNOR RECONFIGURE regelbundet eller som en del av ett SQL Agent-jobb som kör SQL-uppgiften när instansen startar om du använder Resource Governor.

Service Broker-dialogrutor mellan databaser måste initieras på nytt efter uppgraderingen på tjänstnivå

Service Broker-dialoger mellan databaser upphör med att leverera meddelanden till tjänsterna i andra databaser efter att tjänstenivån har ändrats. Meddelandena går inte förloradeoch de finns i avsändarkön. Alla ändringar av virtuella kärnor eller instanslagringsstorlek i SQL Managed Instance gör att ett service_broke_guid värde i sys.databases vy ändras för alla databaser. Alla DIALOG som skapats med hjälp av en BEGIN DIALOG-instruktion som refererar till Service Brokers i andra separata databaser upphör att leverera meddelanden till måltjänsten.

Lösning: Stoppa alla aktiviteter som använder samtal mellan databaser i Service Broker innan du uppdaterar en tjänstnivå och initiera om dem efteråt. Om det finns återstående meddelanden som inte har levererats efter en ändring på tjänstnivå läser du meddelandena från källkön och skickar dem till målkön igen.

Överskrider lagringsgränsen på grund av små databasfiler

CREATE DATABASE, ALTER DATABASE ADD FILEoch RESTORE DATABASE-instruktioner kan misslyckas eftersom instansen kan nå Gränsen för Azure Storage.

Varje generell instans av SQL Managed Instance har upp till 35 TB lagringsutrymme reserverat för Azure Premium-diskutrymme. Varje databasfil placeras på en separat fysisk disk. Diskstorlekarna kan vara 128 GB, 256 GB, 512 GB, 1 TB eller 4 TB. Outnyttjat utrymme på disken debiteras inte, men den totala summan av Azure Premium Disk-storlekar får inte överstiga 35 TB. I vissa fall kan en hanterad instans som inte behöver totalt 8 TB överskrida azure-gränsen på 35 TB på grund av intern fragmentering.

En generell instans av SQL Managed Instance kan till exempel ha en stor fil som är 1,2 TB stor på en 4 TB-disk. Det kan också ha 248 filer som är 1 GB vardera och som placeras på separata diskar på 128 GB. I det här exemplet:

  • Den totala allokerade disklagringsstorleken är 1 x 4 TB + 248 x 128 GB = 35 TB.
  • Det totala reserverade utrymmet för databaser på instansen är 1 x 1,2 TB + 248 x 1 GB = 1,4 TB.

Det här exemplet visar att en instans av SQL Managed Instance under vissa omständigheter, på grund av en specifik distribution av filer, kan nå gränsen på 35 TB som är reserverad för en ansluten Azure Premium-disk när du kanske inte förväntar dig det.

I det här exemplet fortsätter befintliga databaser att fungera och kan växa utan problem så länge nya filer inte läggs till. Det går inte att skapa eller återställa nya databaser eftersom det inte finns tillräckligt med utrymme för nya diskenheter, även om den totala storleken på alla databaser inte når instansstorleksgränsen. Felet som returneras i det fallet är inte tydligt.

Du kan identifiera antalet återstående filer med hjälp av systemvyer. Om du når den här gränsen kan du försöka tom och ta bort några av de mindre filerna med hjälp av DBCC SHRINKFILE-instruktionen eller växla till nivån Affärskritisk, som inte har den här gränsen.

GUID-värden som visas i stället för databasnamn

Flera systemvyer, prestandaräknare, felmeddelanden, XEvents och felloggposter visar GUID-databasidentifierare i stället för de faktiska databasnamnen. Förlita dig inte på dessa GUID-identifierare eftersom de kan ersättas med faktiska databasnamn i framtiden.

Tillfällig lösning: Använd sys.databases vy för att fastställa det faktiska databasnamnet från det fysiska databasnamnet, som är specificerad i form av GUID-databasidentifierare:

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

CLR-moduler och länkade servrar kan ibland inte referera till en lokal IP-adress

CLR-moduler i SQL Managed Instance och länkade servrar eller distribuerade frågor som refererar till en aktuell instans kan ibland inte matcha IP-adressen för en lokal instans. Det här felet är ett tillfälligt problem.

Transaktionsomfång för två databaser i samma instans stöds inte

(löst i mars 2020) klassen TransactionScope i .NET fungerar inte om två frågor skickas till två databaser inom samma instans under samma transaktionsomfång:

using (var scope = new TransactionScope())
{
    using (var conn1 = new SqlConnection("Server=quickstartbmi.neu15011648751ff.database.windows.net;Database=b;User ID=myuser;Password=<password>;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=<password>;Encrypt=true"))
    {
        conn2.Open();
        var cmd2 = conn2.CreateCommand();
        cmd2.CommandText = string.Format("insert into b.dbo.T2 values(2)");        cmd2.ExecuteNonQuery();
    }

    scope.Complete();
}

Lösning (behövs inte sedan mars 2020): Använd SqlConnection.ChangeDatabase(String) om du vill använda en annan databas i en anslutningskontext i stället för att använda två anslutningar.

Ingen lösning

Differentiella säkerhetskopior görs inte när en instans är länkad till SQL Server

När du konfigurerar en länk mellan SQL Server och Azure SQL Managed Instance görs automatiska säkerhetskopior av fullständig data och transaktionsloggar på den hanterade instansen, oavsett om den är i primär roll eller inte. Differentiella säkerhetskopior tas dock inte för närvarande, när kan leda till längre återställningstider än förväntat.

Ökat antal systeminloggningar som används för transaktionsreplikering

Azure SQL Managed Instance-tjänsten skapar systeminloggning för transaktionsreplikering. Den här inloggningen finns i SSMS (i Object Explorer, under Security, Logins) eller i systemvyn sys.syslogins. Inloggningsnamnformatet ser ut som 'DBxCy\WF-abcde01234QWERT'och inloggningen har en offentlig serverroll. Under vissa förhållanden återskapas den här inloggningen och på grund av ett fel i systemet tas inte tidigare inloggning bort. Detta kan leda till ett ökat antal inloggningar. Dessa inloggningar utgör inte ett säkerhetshot. De kan ignoreras på ett säkert sätt. Dessa inloggningar bör inte tas bort eftersom minst en av dem används för transaktionsreplikering.

Microsoft Entra-inloggningar och användare stöds inte i SSDT

SQL Server Data Tools har inte fullständigt stöd för Microsoft Entra-inloggningar och -användare.

Personifiering av Microsoft Entra-inloggningstyper stöds inte

Personifiering med EXECUTE AS USER eller EXECUTE AS LOGIN av följande Microsoft Entra-huvudnamn stöds inte:

  • Aliaserade Microsoft Entra-användare. Följande fel returneras i det här fallet: 15517.
  • Microsoft Entra-inloggningar och användare baserat på Microsoft Entra-program eller tjänstens huvudnamn. Följande fel returneras i det här fallet: 15517 och 15406.

Transaktionsreplikering måste ställas in på nytt efter geografisk felövergång.

Om transaktionsreplikering är aktiverad på en databas i en redundansgrupp måste SQL Managed Instance-administratören rensa alla publikationer på den gamla primära databasen och konfigurera om dem på den nya primära när en redundansväxling till en annan region inträffar. Mer information finns i Replikering.

tempdb struktur och innehåll återskapas

Den tempdb databasen är alltid uppdelad i 12 datafiler och filstrukturen kan inte ändras. Det går inte att ändra den maximala storleken per fil och nya filer kan inte läggas till i tempdb. Den tempdb databasen återskapas alltid som en tom databas när instansen startar eller växlar över till beredskapsläge, och eventuella ändringar som görs i tempdb bevaras inte.

Felloggar sparas inte

Felloggar som är tillgängliga i SQL Managed Instance sparas inte och deras storlek ingår inte i den maximala lagringsgränsen. Felloggar kan automatiskt raderas om failover sker. Det kan finnas luckor i fellogghistoriken eftersom SQL Managed Instance har flyttats flera gånger på flera virtuella datorer.

Tillfällig otillgänglighet av instanser med hjälp av lyssnaren för failover-gruppen under skalningsoperationen

Skalning av hanterad instans kräver ibland att instansen flyttas till ett annat virtuellt kluster, tillsammans med de associerade tjänstunderhållna DNS-posterna. Om den hanterade instansen deltar i en redundansgrupp flyttas DNS-posten som motsvarar dess associerade lyssnare för redundansgrupper (läs-skriv-lyssnare, om instansen är den aktuella geo-primära skrivskyddade lyssnaren, om instansen är den aktuella geo-sekundära) till det nya virtuella klustret.

I den aktuella skalningsåtgärdsdesignen tas lyssnarens DNS-poster bort från det ursprungliga virtuella klustret innan själva den hanterade instansen migreras helt till det nya virtuella klustret, vilket i vissa fall kan leda till en längre tid under vilken instansens IP-adress inte kan lösas med lyssnaren. Under den här tiden, kan en SQL-klient som försöker komma åt instansen medan den skalas via lyssnarens slutpunkt förvänta sig inloggningsfel med följande felmeddelande: "Fel 40532: Det går inte att öppna servern "xxx.xxx.xxx.xxx" som begärdes av inloggningsprocessen. Inloggningen misslyckades. (Microsoft SQL Server, Fel: 40532)".

Problemet åtgärdas genom omdesign av skalningsåtgärden.

Löst

Tabellen för manuella säkerhetskopieringar i msdb bevarar inte användarnamnet

(löst i augusti 2023) Vi har nyligen infört stöd för automatiska säkerhetskopieringar i msdb, men tabellen innehåller för närvarande inte användarnamnsinformation.

Fråga på extern tabell misslyckas med felmeddelandet att det inte stöds

Frågan mot den externa tabellen kan misslyckas med det allmänna felmeddelandet "Frågor över externa tabeller stöds inte med den aktuella tjänstnivån eller prestandanivån för den här databasen. Överväg att uppgradera tjänstnivån eller prestandanivån för databasen". Den enda typen av extern tabell som stöds i Azure SQL Managed Instance är externa PolyBase-tabeller (i förhandsversion). Om du vill tillåta frågor på externa PolyBase-tabeller måste du aktivera PolyBase på en hanterad instans genom att köra kommandot sp_configure.

Externa tabeller som rör Elastic Query- funktion i Azure SQL Database stöds inte i SQL Managed Instance, men att skapa och fråga dem blockerades inte uttryckligen. Med stöd för externa PolyBase-tabeller har nya kontroller införts, vilket blockerar frågeställning av någon typ av extern tabell i en hanterad instans om inte PolyBase är aktiverat.

Om du använder externa tabeller med Elastisk fråga som inte stöds för att fråga efter data i Azure SQL Database eller Azure Synapse från din hanterade instans bör du använda funktionen Länkad server i stället. Om du vill upprätta en länkad serveranslutning från SQL Managed Instance till SQL Database följer du anvisningarna från den här artikeln. Följ stegvisa instruktioner för att upprätta en länkad serveranslutning från SQL Managed Instance till SQL Synapse. Eftersom det tar lite tid att konfigurera och testa en länkad serveranslutning kan du använda en tillfällig lösning för att aktivera frågor mot externa tabeller relaterade till funktionen Elastic Query:

Lösning: Kör följande kommandon (en gång per instans) som aktiverar frågor i externa tabeller:

sp_configure 'polybase enabled', 1;
GO

RECONFIGURE;
GO

När du använder SQL Server-autentisering stöds inte användarnamn med @

Användarnamn som innehåller @-symbolen i mitten (till exempel 'abc@xy') kan inte logga in med SQL Server-autentisering.

Återställning av manuell säkerhetskopiering utan CHECKSUM kan misslyckas

(löst i juni 2020) I vissa fall kan manuell säkerhetskopiering av databaser som har gjorts på en hanterad instans utan CHECKSUM misslyckas med att återställas. I sådana fall försöker du återställa säkerhetskopian igen tills du lyckas.

Lösning: Gör manuella säkerhetskopieringar av databaser på hanterade instanser med CHECKSUM aktiverat.

Agenten svarar inte vid ändring, inaktivering eller aktivering av befintliga jobb

Under vissa omständigheter kan det leda till att agenten inte svarar om du ändrar, inaktiverar eller aktiverar ett befintligt jobb. Problemet åtgärdas automatiskt vid identifiering, vilket resulterar i en omstart av agentprocessen.

Behörigheter för resursgrupp som inte tillämpas på SQL Managed Instance

När rollen SQL Managed Instance Contributor i Azure tillämpas på en resursgrupp (RG), tillämpas den inte på SQL Managed Instance och har ingen effekt.

Lösning: Konfigurera en SQL Managed Instance-deltagarroll för användare på prenumerationsnivå.

SQL Agent-jobb kan avbrytas av omstart av agentprocessen

(löst i mars 2020) SQL Agent skapar en ny session varje gång ett jobb startas, vilket gradvis ökar minnesförbrukningen. För att undvika att nå den interna minnesgränsen, vilket skulle blockera körning av schemalagda jobb, startas Agent-processen om när dess minnesanvändning når tröskelvärdet. Det kan leda till att jobb som körs vid omstarten avbryts.

@query parameter stöds inte i sp_send_db_mail

Parametern @query i sp_send_db_mail-proceduren fungerar inte.

Vilseledande felmeddelande på Azure-portalen som tyder på att tjänstens huvudnamn ska återskapas

Sidan för Active Directory-administratör i Azure-portalen för Azure SQL Managed Instance kan visa följande felmeddelande, även om tjänsthuvudkontot redan finns:

"Managed Instance behöver ett tjänsthuvudnamn för att få åtkomst till Microsoft Entra-ID (tidigare Azure Active Directory). Klicka här om du vill skapa ett huvudnamn för tjänsten"

Du kan försumma det här felmeddelandet om tjänstens huvudnamn för den hanterade instansen redan finns och/eller Microsoft Entra-autentisering på den hanterade instansen fungerar.

Om du vill kontrollera om tjänstehuvudnamnet finns på Azure-portalen går du till sidan Enterprise-program, väljer Hanterade identiteter från rullgardinsmenyn Programtyp, klickar på Användoch skriver namnet på den hanterade instansen i sökrutan. Om instansnamnet visas i resultatlistan finns tjänstens huvudnamn redan och inga ytterligare åtgärder krävs.

Om du redan har följt anvisningarna från felmeddelandet och valt länken från felmeddelandet har tjänstens huvudnamn för den hanterade instansen återskapats. I så fall tilldelar du läsbehörigheter för Microsoft Entra-ID till det nyligen skapade tjänsthuvudkontot för att Microsoft Entra-autentisering ska fungera korrekt. Detta kan göras via Azure PowerShell genom att följa instruktioner.

Bidra till innehåll

Information om hur du bidrar till Azure SQL-dokumentationen finns i deltagarguiden för Docs.