Skillnader i T-SQL mellan SQL Server och Azure SQL Managed Instance
Gäller för:Azure SQL Managed Instance
Den här artikeln sammanfattar och förklarar skillnaderna i syntax och beteende mellan Azure SQL Managed Instance och SQL Server.
SQL Managed Instance ger hög kompatibilitet med SQL Server-databasmotorn och de flesta funktioner stöds i en SQL Managed Instance.
Det finns vissa PaaS-begränsningar som introduceras i SQL Managed Instance och vissa beteendeändringar jämfört med SQL Server. Skillnaderna är indelade i följande kategorier:
- Tillgängligheten omfattar skillnaderna i AlwaysOn-tillgänglighetsgrupper och säkerhetskopior.
- Säkerhet omfattar skillnader i granskning, certifikat, autentiseringsuppgifter, kryptografiska leverantörer, inloggningar och användare samt tjänstnyckeln och huvudnyckeln för tjänsten.
- Konfigurationen omfattar skillnaderna i buffertpoolstillägg, sortering, kompatibilitetsnivåer, databasspegling, databasalternativ, SQL Server Agent och tabellalternativ.
- Funktionerna inkluderar BULK INSERT/OPENROWSET, CLR, DBCC, distribuerade transaktioner, utökade händelser, externa bibliotek, FILESTREAM och FileTable, semantisk sökning i fulltext, länkade servrar, PolyBase, Replikering, RESTORE, Service Broker, lagrade procedurer, funktioner och utlösare.
- Miljöinställningar som virtuella nätverk och undernätskonfigurationer.
De flesta av dessa funktioner är arkitekturbegränsningar och representerar tjänstfunktioner.
Tillfälliga kända problem som identifieras i SQL Managed Instance och som kommer att lösas i framtiden beskrivs i Vad är nytt?.
Kommentar
Microsoft Entra-ID är det nya namnet för Azure Active Directory (Azure AD). Vi uppdaterar dokumentationen just nu.
Tillgänglighet
AlwaysOn-tillgänglighetsgrupper
Hög tillgänglighet är inbyggd i SQL Managed Instance och kan inte styras av användare. Följande instruktioner stöds inte:
- SKAPA SLUTPUNKT ... FÖR DATABASE_MIRRORING
- SKAPA TILLGÄNGLIGHETSGRUPP
- ÄNDRA TILLGÄNGLIGHETSGRUPP
- SLÄPP TILLGÄNGLIGHETSGRUPP
- SET HADR-satsen i ALTER DATABASE-instruktionen
Backup
Azure SQL Managed Instance har automatiska säkerhetskopior, så att användarna kan skapa fullständiga databassäkerhetskopior COPY_ONLY
. Differentiella säkerhetskopieringar, logg- och filsäkerhetskopior och ögonblicksbilder stöds inte.
- Med en SQL Managed Instance kan du endast säkerhetskopiera en instansdatabas till ett Azure Blob Storage-konto:
- Endast
BACKUP TO URL
stöds. FILE
,TAPE
och säkerhetskopieringsenheter stöds inte.
- Endast
- De flesta av de allmänna
WITH
alternativen stöds.COPY_ONLY
är obligatoriskt.FILE_SNAPSHOT
ochCREDENTIAL
stöds inte.- Bandalternativ:
REWIND
,NOREWIND
,UNLOAD
ochNOUNLOAD
stöds inte. - Loggspecifika alternativ:
NORECOVERY
,STANDBY
ochNO_TRUNCATE
stöds inte.
Begränsningar:
Med en SQL Managed Instance kan du säkerhetskopiera en instansdatabas till en säkerhetskopia med upp till 32 ränder, vilket räcker för databaser upp till 4 TB om säkerhetskopieringskomprimering används.
Du kan inte köra
BACKUP DATABASE ... WITH COPY_ONLY
på en databas som är krypterad med tjänsthanterad transparent datakryptering (TDE). Tjänsthanterad TDE tvingar säkerhetskopieringar att krypteras med en intern TDE-nyckel. Det går inte att exportera nyckeln, så du kan inte återställa säkerhetskopian. Använd automatiska säkerhetskopior och återställning till tidpunkt, eller använd kundhanterad TDE (BYOK) i stället. Du kan också inaktivera kryptering i databasen.Inbyggda säkerhetskopior som görs på en SQL Managed Instance kan endast återställas till en SQL Server 2022-instans. Det beror på att SQL Managed Instance har högre intern databasversion jämfört med andra versioner av SQL Server. Mer information finns i Återställa en SQL Managed Instance-databassäkerhetskopia till SQL Server 2022.
Om du vill säkerhetskopiera eller återställa en databas till/från en Azure-lagring kan du autentisera med antingen hanterad identitet eller signatur för delad åtkomst (SAS) som är en URI som ger dig begränsad åtkomstbehörighet till Azure Storage-resurser Läs mer om detta. Åtkomstnycklar för dessa scenarier stöds inte.
Den maximala randstorleken
BACKUP
för säkerhetskopiering med kommandot i SQL Managed Instance är 195 GB, vilket är den maximala blobstorleken. Öka antalet ränder i säkerhetskopieringskommandot för att minska den enskilda randstorleken och hålla dig inom den här gränsen.Dricks
Om du vill kringgå den här begränsningen kan du göra följande när du säkerhetskopierar en databas från antingen SQL Server i en lokal miljö eller på en virtuell dator:
- Säkerhetskopiera till i stället för att
DISK
säkerhetskopiera tillURL
. - Ladda upp säkerhetskopieringsfilerna till Blob Storage.
- Återställ till SQL Managed Instance.
Kommandot
Restore
i SQL Managed Instance stöder större blobstorlekar i säkerhetskopieringsfilerna eftersom en annan blobtyp används för lagring av de uppladdade säkerhetskopierade filerna.- Säkerhetskopiera till i stället för att
Information om säkerhetskopieringar med T-SQL finns i SÄKERHETSKOPIERing.
Säkerhet
Granskning
De viktigaste skillnaderna mellan granskning i Microsoft Azure SQL och SQL Server är:
- Med SQL Managed Instance fungerar granskning på servernivå. Loggfilerna
.xel
lagras i Azure Blob Storage. - Med Azure SQL Database fungerar granskning på databasnivå. Loggfilerna
.xel
lagras i Azure Blob Storage. - Med SQL Server, lokalt eller på virtuella datorer fungerar granskning på servernivå. Händelser lagras i filsystem eller Windows-händelseloggar.
XEvent-granskning i SQL Managed Instance stöder Azure Blob Storage-mål. Fil- och Windows-loggar stöds inte.
De viktigaste skillnaderna i syntaxen CREATE AUDIT
för granskning av Azure Blob Storage är:
- En ny syntax
TO URL
tillhandahålls för att ange URL:en för Azure Blob Storage-containern där.xel
filerna placeras. - Syntaxen
TO FILE
stöds inte eftersom SQL Managed Instance inte kan komma åt Windows-filresurser.
Mer information finns i:
Certifikat
SQL Managed Instance kan inte komma åt filresurser och Windows-mappar, så följande begränsningar gäller:
- Filen
CREATE FROM
/BACKUP TO
stöds inte för certifikat. - Certifikatet
CREATE
/BACKUP
frånFILE
/ASSEMBLY
stöds inte. Privata nyckelfiler kan inte användas.
Se SKAPA CERTIFIKAT OCH SÄKERHETSKOPIERINGSCERTIFIKAT.
Lösning: I stället för att skapa en säkerhetskopia av certifikatet och återställa säkerhetskopian hämtar du det binära certifikatinnehållet och den privata nyckeln, lagrar det som .sql-fil och skapar från binärt:
CREATE CERTIFICATE
FROM BINARY = asn_encoded_certificate
WITH PRIVATE KEY (<private_key_options>);
Autentiseringsuppgift
Hanterad identitet, Azure Key Vault och SHARED ACCESS SIGNATURE
identiteter stöds. Windows-användare stöds inte.
Se SKAPA AUTENTISERINGSUPPGIFTER OCH ÄNDRA AUTENTISERINGSUPPGIFTER.
Kryptografiska providrar
SQL Managed Instance kan inte komma åt filer, så kryptografiska providers kan inte skapas:
CREATE CRYPTOGRAPHIC PROVIDER
stöds inte. Se SKAPA KRYPTOGRAFIPROVIDER.ALTER CRYPTOGRAPHIC PROVIDER
stöds inte. Se ÄNDRA KRYPTOGRAFIPROVIDER.
Inloggningar och användare
SQL-inloggningar som skapas med hjälp
FROM CERTIFICATE
av ,FROM ASYMMETRIC KEY
ochFROM SID
stöds. Se SKAPA INLOGGNING. Serverhuvudnamn (inloggningar) skapas på servernivå och användare (databashuvudnamn) skapas på databasnivå. Microsoft Entra-inloggningar som skapats med syntaxen CREATE LOGIN och Microsoft Entra-användare som skapats med syntaxen CREATE USER FROM LOGIN stöds. När du skapar en användare och angerFROM LOGIN
är den användaren associerad med inloggningen och ärver de serverroller och behörigheter som tilldelats den.SQL Managed Instance har stöd för att skapa oberoende databasanvändare baserat på Microsoft Entra-identiteter med syntaxen
CREATE USER [AADUser/AAD group] FROM EXTERNAL PROVIDER
. Användare som skapats på det här sättet är inte associerade med serverhuvudnamn, även om det finns ett serverhuvudnamn med samma namn imaster
databasen.Windows-inloggningar som skapats med syntaxen
CREATE LOGIN ... FROM WINDOWS
stöds inte. Använd Microsoft Entra-inloggningar och -användare.Microsoft Entra-administratören för instansen har obegränsade administratörsbehörigheter.
Vissa funktioner stöder inte användning av Microsoft Entra-inloggningar i interaktioner mellan instanser, utan endast inom en enda SQL Managed Instance, till exempel SQL Server-replikering. Funktionen länkad server stöder dock autentisering mellan instanser med hjälp av Microsoft Entra-serverhuvudnamn (inloggningar).
Det går inte att ange en Microsoft Entra-inloggning mappad till en Microsoft Entra-grupp som databasägare. En medlem i Microsoft Entra-gruppen kan vara databasägare, även om inloggningen inte har skapats i databasen.
Personifiering av Microsoft Entra-huvudkonton på servernivå med hjälp av andra Microsoft Entra-huvudnamn stöds, till exempel EXECUTE AS-satsen . Kör som-begränsningar är:
EXECUTE AS USER stöds inte för Microsoft Entra-användare när namnet skiljer sig från inloggningsnamnet. Ett exempel är när användaren skapas via syntaxen
CREATE USER [myAadUser] FROM LOGIN [john@contoso.com]
och personifiering görs viaEXEC AS USER = myAadUser
. När du skapar en ANVÄNDARE från en Microsoft Entra-inloggning anger du user_name som samma login_name från LOGIN.Endast inloggningar på SQL Server-nivå som ingår i
sysadmin
rollen kan utföra följande åtgärder som riktar sig mot Microsoft Entra-huvudnamn:- KÖRA SOM ANVÄNDARE
- KÖRA SOM INLOGGNING
För att personifiera en användare med EXECUTE AS-instruktionen måste användaren mappas direkt till Microsoft Entra-inloggning. Användare som är medlemmar i Microsoft Entra-grupper som är mappade till Microsoft Entra-serverhuvudnamn kan inte i praktiken personifieras med EXECUTE AS-instruktionen, även om anroparen har personifierarbehörigheter för det angivna användarnamnet.
Databasexport/import med bacpac-filer stöds för Microsoft Entra-användare i SQL Managed Instance med SSMS V18.4 eller senare eller SqlPackage.
- Följande konfigurationer stöds med hjälp av databasens bacpac-fil:
- Exportera/importera en databas mellan olika hantera instanser inom samma Microsoft Entra-domän.
- Exportera en databas från SQL Managed Instance och importera till SQL Database inom samma Microsoft Entra-domän.
- Exportera en databas från SQL Database och importera till SQL Managed Instance inom samma Microsoft Entra-domän.
- Exportera en databas från SQL Managed Instance och importera till SQL Server (version 2012 eller senare).
- I den här konfigurationen skapas alla Microsoft Entra-användare som SQL Server-databashuvudnamn (användare) utan inloggningar. Typen av användare är
SQL
och visas somSQL_USER
isys.database_principals
. Deras behörigheter och roller finns kvar i SQL Server-databasmetadata och kan användas för personifiering. De kan dock inte användas för att komma åt och logga in på SQL Server med sina autentiseringsuppgifter.
- I den här konfigurationen skapas alla Microsoft Entra-användare som SQL Server-databashuvudnamn (användare) utan inloggningar. Typen av användare är
- Följande konfigurationer stöds med hjälp av databasens bacpac-fil:
Endast huvudinloggningen på servernivå, som skapas av SQL Managed Instance-etableringsprocessen, medlemmar av serverrollerna, till exempel
securityadmin
ellersysadmin
, eller andra inloggningar med ALTER ANY LOGIN-behörighet på servernivå, kan skapa Microsoft Entra-serverhuvudkonton (inloggningar) imaster
databasen för SQL Managed Instance.SQL-autentiseringsbaserade inloggningar måste tilldelas
sysadmin
rollen för att skapa inloggningar för Microsoft Entra-identiteter.Inloggningen måste vara medlem i samma Microsoft Entra-klientorganisation som Azure SQL Managed Instance finns i.
Microsoft Entra-serverhuvudkonton (inloggningar) visas i Object Explorer från och med SQL Server Management Studio 18.0 preview 5.
Ett serverhuvudnamn med sysadmin-åtkomstnivå skapas automatiskt för Microsoft Entra-administratören när det har aktiverats på en instans.
Under autentiseringen tillämpas följande sekvens för att lösa autentiseringsobjektet:
- Om Microsoft Entra-kontot är direkt mappat till en Microsoft Entra-inloggning, som finns i
sys.server_principals
som typ "E", beviljar du åtkomst och tillämpar behörigheter för inloggningen. - Om Microsoft Entra-kontot är medlem i en grupp som är mappad till en Microsoft Entra-inloggning, som finns i
sys.server_principals
som typ "X", beviljar du åtkomst och tillämpar behörigheter för inloggningen. - Om Microsoft Entra-kontot finns som direkt mappat till en Microsoft Entra-användare i en databas, som finns i
sys.database_principals
som typ "E", beviljar du åtkomst och tillämpar behörigheter för Microsoft Entra-databasanvändaren. - Om Microsoft Entra-kontot är medlem i en Microsoft Entra-grupp som mappas till en Microsoft Entra-användare i en databas, som finns i
sys.database_principals
som typ "X", beviljar du åtkomst och tillämpar behörigheter för Microsoft Entra-gruppanvändaren.
- Om Microsoft Entra-kontot är direkt mappat till en Microsoft Entra-inloggning, som finns i
Tjänstnyckel och tjänsthuvudnyckel
- Säkerhetskopiering av huvudnyckel stöds inte (hanteras av SQL Database-tjänsten).
- Huvudnyckelåterställning stöds inte (hanteras av SQL Database-tjänsten).
- Säkerhetskopiering av tjänsthuvudnyckel stöds inte (hanteras av SQL Database-tjänsten).
- Återställning av tjänstens huvudnyckel stöds inte (hanteras av SQL Database-tjänsten).
Konfiguration
Tillägg för buffertpool
- Tillägg för buffertpool stöds inte.
ALTER SERVER CONFIGURATION SET BUFFER POOL EXTENSION
stöds inte. Se ÄNDRA SERVERKONFIGURATION.
Sortering
Standardsortering av instanser är SQL_Latin1_General_CP1_CI_AS
och kan anges som en skapandeparameter. Se Sorteringar.
Efterlevnadsnivåer
- Kompatibilitetsnivåer som stöds är 100, 110, 120, 130, 140, 150 och 160.
- Kompatibilitetsnivåer under 100 stöds inte.
- Standardkompatibilitetsnivån för nya databaser är 150. För återställda databaser förblir kompatibilitetsnivån oförändrad om den var 100 och högre.
Se ALTER DATABASE Compatibility Level (ÄNDRA DATABASkompatibilitetsnivå).
Databasspegling
Databasspegling stöds inte.
ALTER DATABASE SET PARTNER
ochSET WITNESS
alternativ stöds inte.CREATE ENDPOINT … FOR DATABASE_MIRRORING
stöds inte.
Mer information finns i ALTER DATABASE SET PARTNER and SET WITNESS and CREATE ENDPOINT ... FÖR DATABASE_MIRRORING.
Databasalternativ
- Flera loggfiler stöds inte.
- Minnesinterna objekt stöds inte på tjänstnivån Generell användning.
- Det finns en gräns på 280 filer per instans av generell användning, vilket innebär högst 280 filer per databas. Både data och loggfiler på nivån Generell användning räknas mot den här gränsen. Nivån Affärskritisk stöder 32 767 filer per databas.
- Databasen får inte innehålla filgrupper som innehåller FILESTREAM-data. Återställningen misslyckas om
.bak
den innehållerFILESTREAM
data. - Varje fil placeras i Azure Blob Storage. I/O och dataflöde per fil beror på storleken på varje enskild fil.
CREATE DATABASE-instruktion
Följande begränsningar gäller för CREATE DATABASE
:
Filer och filgrupper kan inte definieras.
En minnesoptimerad filgrupp och fil läggs automatiskt till och kallas XTP.
Alternativet
CONTAINMENT
stöds inte.WITH
alternativ stöds inte.Dricks
Som en lösning kan du använda
ALTER DATABASE
efterCREATE DATABASE
för att ange databasalternativ för att lägga till filer eller ange inneslutning.Alternativet
FOR ATTACH
stöds inte.Alternativet
AS SNAPSHOT OF
stöds inte.
Mer information finns i SKAPA DATABAS.
ALTER DATABASE-instruktion
Vissa filegenskaper kan inte anges eller ändras:
- Det går inte att ange en filsökväg i T-SQL-instruktionen
ALTER DATABASE ADD FILE (FILENAME='path')
. Ta bortFILENAME
från skriptet eftersom SQL Managed Instance automatiskt placerar filerna. - Det går inte att ändra ett filnamn med hjälp av -instruktionen
ALTER DATABASE
. - Det är inte tillåtet att ändra XTP-fil eller filgrupp.
Följande alternativ anges som standard och kan inte ändras:
MULTI_USER
ENABLE_BROKER
AUTO_CLOSE OFF
Följande alternativ kan inte ändras:
AUTO_CLOSE
AUTOMATIC_TUNING(CREATE_INDEX=ON|OFF)
AUTOMATIC_TUNING(DROP_INDEX=ON|OFF)
DISABLE_BROKER
EMERGENCY
ENABLE_BROKER
FILESTREAM
HADR
NEW_BROKER
OFFLINE
PAGE_VERIFY
PARTNER
READ_ONLY
RECOVERY BULK_LOGGED
RECOVERY_SIMPLE
REMOTE_DATA_ARCHIVE
RESTRICTED_USER
SINGLE_USER
WITNESS
Vissa ALTER DATABASE
instruktioner (till exempel SET CONTAINMENT) kan misslyckas tillfälligt, till exempel under den automatiserade databassäkerhetskopian eller direkt efter att en databas har skapats. I det här fallet ALTER DATABASE
bör instruktionen göras om. Mer information om relaterade felmeddelanden finns i avsnittet Kommentarer.
Mer information finns i ALTER DATABASE.
SQL Server Agent
- Aktivering och inaktivering av SQL Server Agent stöds för närvarande inte i SQL Managed Instance. SQL Agent körs alltid.
- Jobbschemautlösare som baseras på en inaktiv CPU stöds inte.
- SQL Server Agent-inställningarna är skrivskyddade. Proceduren
sp_set_agent_properties
stöds inte i SQL Managed Instance. - Jobb
- T-SQL-jobbsteg stöds.
- Följande replikeringsjobb stöds:
- Transaktionsloggläsare
- Ögonblicksbild
- Distributör
- SSIS-jobbsteg stöds.
- Andra typer av jobbsteg stöds för närvarande inte:
- Jobbsteget för sammanslagningsreplikering stöds inte.
- Köläsare stöds inte.
- Kommandogränssnittet stöds ännu inte.
- SQL Managed Instance kan inte komma åt externa resurser, till exempel nätverksresurser via robocopy.
- SQL Server Analysis Services stöds inte.
- Meddelanden stöds delvis.
- E-postavisering stöds, även om det kräver att du konfigurerar en Database Mail-profil. SQL Server-agenten kan bara använda en Database Mail-profil och den måste anropas
AzureManagedInstance_dbmail_profile
.- Pager stöds inte.
- NetSend stöds inte.
- Aviseringar stöds inte ännu.
- Proxyservrar stöds inte.
- EventLog stöds inte.
- Användaren måste mappas direkt till Microsoft Entra-serverinloggningen för att skapa, ändra eller köra SQL Agent-jobb. Användare som inte är direkt mappade, till exempel användare som tillhör en Microsoft Entra-grupp som har behörighet att skapa, ändra eller köra SQL Agent-jobb, kommer inte att kunna utföra dessa åtgärder på ett effektivt sätt. Detta beror på SQL Managed Instance-personifiering och KÖR SOM-begränsningar.
- Funktionen Multi Server Administration för huvud-/måljobb (MSX/TSX) stöds inte.
Information om SQL Server Agent finns i SQL Server Agent.
Tabeller
Följande tabelltyper stöds inte:
- FILESTREAM
- FILTABELL
- EXTERN TABELL (utom PolyBase)
- MEMORY_OPTIMIZED (stöds inte bara på nivån Generell användning)
Information om hur du skapar och ändrar tabeller finns i SKAPA TABELL och ALTER TABLE.
Funktioner
BULK INSERT/OPENROWSET
SQL Managed Instance kan inte komma åt filresurser och Windows-mappar, så filerna måste importeras från Azure Blob Storage:
DATASOURCE
krävs iBULK INSERT
kommandot när du importerar filer från Azure Blob Storage. Se MASSINFOGNING.DATASOURCE
krävs i funktionen när du läser innehållet iOPENROWSET
en fil från Azure Blob Storage. Se OPENROWSET.OPENROWSET
kan användas för att läsa data från Azure SQL Database, Azure SQL Managed Instance eller SQL Server-instanser. Andra källor som Oracle-databaser eller Excel-filer stöds inte.
CLR
En SQL Managed Instance kan inte komma åt filresurser och Windows-mappar, så följande begränsningar gäller:
- Endast
CREATE ASSEMBLY FROM BINARY
stöds. Se SKAPA SAMMANSÄTTNING FRÅN BINÄR. CREATE ASSEMBLY FROM FILE
stöds inte. Se SKAPA SAMMANSÄTTNING FRÅN FIL.ALTER ASSEMBLY
kan inte referera till filer. Se ÄNDRA SAMMANSÄTTNING.
Database Mail (db_mail)
sp_send_dbmail
kan inte skicka bifogade filer med hjälp av @file_attachments parametern . Lokala filsystem och externa resurser eller Azure Blob Storage är inte tillgängliga från den här proceduren.- Se kända problem som rör
@query
parameter och autentisering.
DBCC
Odokumenterade DBCC-instruktioner som är aktiverade i SQL Server stöds inte i SQL Managed Instance.
- Endast ett begränsat antal globala spårningsflaggor stöds. Sessionsnivå
Trace flags
stöds inte. Se Spårningsflaggor. - DBCC TRACEOFF och DBCC TRACEON fungerar med det begränsade antalet globala spårningsflaggor.
- DBCC CHECKDB med alternativ REPAIR_ALLOW_DATA_LOSS, REPAIR_FAST och REPAIR_REBUILD kan inte användas eftersom databasen inte kan anges i
SINGLE_USER
läge – se ALTER DATABASE-skillnader. Potentiell databasskada hanteras av Azure-supportteamet. Kontakta Azure-supporten om det finns några tecken på att databasen är skadad.
Distribuerade transaktioner
T-SQL- och .NET-baserade distribuerade transaktioner över hanterade instanser är allmänt tillgängliga. Andra scenarier, till exempel XA-transaktioner, distribuerade transaktioner mellan hanterade instanser och andra deltagare med mera, stöds med DTC för Azure SQL Managed Instance, som är tillgängligt i offentlig förhandsversion.
Extended Events
Vissa Windows-specifika mål för Extended Events (XEvents) stöds inte:
- Målet
etw_classic_sync
stöds inte. Lagra.xel
-filer i Azure Blob Storage. Läs mer i Målet etw_classic_sync. - Målet
event_file
stöds inte. Lagra.xel
-filer i Azure Blob Storage. Läs mer i Målet event_file.
Externa bibliotek
Externa bibliotek i databasen R och Python stöds i begränsad offentlig förhandsversion. Se Machine Learning Services i Azure SQL Managed Instance (förhandsversion).
FILESTREAM och FileTable
- FILESTREAM-data stöds inte.
- Databasen får inte innehålla filgrupper med
FILESTREAM
data. FILETABLE
stöds inte.- Tabeller kan inte ha
FILESTREAM
typer. - Följande funktioner stöds inte:
GetPathLocator()
GET_FILESTREAM_TRANSACTION_CONTEXT()
PathName()
GetFileNamespacePat)
FileTableRootPath()
Mer information finns i FILESTREAM och FileTables.
Semantisk fulltextsökning
Semantisk sökning stöds inte.
Länkade servrar
Länkade servrar i SQL Managed Instance stöder ett begränsat antal mål:
- Mål som stöds är SQL Managed Instance, SQL Database, Azure Synapse SQL serverlösa och dedikerade pooler samt SQL Server-instanser.
- Mål som inte stöds är filer, Analysis Services och andra RDBMS. Försök att använda inbyggd CSV-import från Azure Blob Storage med eller
BULK INSERT
OPENROWSET
som ett alternativ för filimport eller läsa in filer med hjälp av en serverlös SQL-pool i Azure Synapse Analytics.
Åtgärder:
sp_dropserver
stöds för att ta bort en länkad server. Se sp_dropserver.- Funktionen
OPENROWSET
kan endast användas för att köra frågor på SQL Server-instanser. De kan antingen hanteras, lokalt eller på virtuella datorer. Se OPENROWSET. - Funktionen OPENDATASOURCE kan endast användas för att köra frågor på SQL Server-instanser. De kan antingen hanteras, lokalt eller på virtuella datorer. Ett exempel är
SELECT * FROM OPENDATASOURCE('SQLNCLI', '...').AdventureWorks2022.HumanResources.Employee
.SQLNCLI
Endast värdena ,SQLNCLI11
,SQLOLEDB
ochMSOLEDBSQL
stöds som en provider. Sql Server Native Client (ofta förkortad SNAC) har tagits bort från SQL Server 2022 och SQL Server Management Studio 19 (SSMS). Sql Server Native Client (SQLNCLI eller SQLNCLI11) och den äldre Microsoft OLE DB-providern för SQL Server (SQLOLEDB) rekommenderas inte för ny utveckling. Växla till den nya Microsoft OLE DB-drivrutinen (MSOLEDBSQL) för SQL Server eller den senaste Microsoft ODBC-drivrutinen för SQL Server framöver. - Länkade servrar kan inte användas för att läsa filer (Excel, CSV) från nätverksresurserna. Försök att använda BULK INSERT, OPENROWSET som läser CSV-filer från Azure Blob Storage eller en länkad server som refererar till en serverlös SQL-pool i Synapse Analytics. Spåra dessa begäranden på SQL Managed Instance Feedback-objekt
Länkade servrar på Azure SQL Managed Instance stöder SQL-autentisering och Microsoft Entra-autentisering.
PolyBase
Med datavirtualisering med Azure SQL Managed Instance kan du köra Transact-SQL-frågor (T-SQL) mot data från filer som lagras i Azure Data Lake Storage Gen2 eller Azure Blob Storage och kombinera dem med lokalt lagrade relationsdata med hjälp av kopplingar. Filformat för parquet och avgränsad text (CSV) stöds direkt. JSON-filformatet stöds indirekt genom att ange CSV-filformatet där frågor returnerar varje dokument som en separat rad. Det går att parsa rader ytterligare med hjälp av JSON_VALUE
och OPENJSON
. Allmän information om PolyBase finns i PolyBase.
Med SKAPA EXTERN TABELL SOM SELECT (CETAS) kan du dessutom exportera data från din SQL-hanterade instans till ett externt lagringskonto. Du kan använda CETAS för att skapa en extern tabell ovanpå Parquet- eller CSV-filerna Azure Blob Storage eller Azure Data Lake Storage (ADLS) Gen2. CETAS kan också parallellt exportera resultatet av en T-SQL SELECT-instruktion till den skapade externa tabellen.
Replikering
- Ögonblicksbilder och dubbelriktade replikeringstyper stöds. Sammanslagningsreplikering, peer-to-peer-replikering och uppdaterbara prenumerationer stöds inte.
- Transaktionsreplikering är tillgängligt för SQL Managed Instance med vissa begränsningar:
- Alla typer av replikeringsdeltagare (utgivare, distributör, pull-prenumerant och push-prenumerant) kan placeras på SQL Managed Instance, men utgivaren och distributören måste antingen vara både i molnet eller lokalt.
- SQL Managed Instance kan kommunicera med de senaste versionerna av SQL Server. Mer information finns i matrisen för versioner som stöds.
- Transaktionsreplikering har ytterligare nätverkskrav.
Mer information om hur du konfigurerar transaktionsreplikering finns i följande självstudier:
- Replikering mellan en SQL MI-utgivare och SQL MI-prenumerant
- Replikering mellan en SQL MI-utgivare, SQL MI-distributör och SQL Server-prenumerant
RESTORE-instruktion
- Syntax som stöds:
RESTORE DATABASE
RESTORE FILELISTONLY
RESTORE HEADERONLY
RESTORE LABELONLY
RESTORE VERIFYONLY
- Syntax som inte stöds:
RESTORE LOGONLY
RESTORE REWINDONLY
- Källa:
FROM URL
(Azure Blob Storage) är det enda alternativ som stöds.FROM DISK
/TAPE
/backup-enhet stöds inte.- Säkerhetskopieringsuppsättningar stöds inte.
WITH
alternativ stöds inte. Återställningsförsök somWITH
DIFFERENTIAL
,STATS
,REPLACE
och så vidare misslyckas.
En databasåterställningsåtgärd är asynkron och kan försöka igen i Azure SQL Managed Instance. Du kan få ett fel i SSMS om anslutningen misslyckas eller om tidsgränsen upphör att gälla. Azure SQL Managed Instance försöker återställa databasen i bakgrunden och du kan spåra återställningsprocessens förlopp med hjälp av sys.dm_exec_requests och sys.dm_operation_status dynamiska hanteringsvyer.
Följande databasalternativ anges eller åsidosättas och kan inte ändras senare:
NEW_BROKER
om asynkron meddelandekö inte är aktiverad i .bak-filen.ENABLE_BROKER
om asynkron meddelandekö inte är aktiverad i .bak-filen.AUTO_CLOSE=OFF
om en databas i .bak-filen harAUTO_CLOSE=ON
.RECOVERY FULL
om en databas i .bak-filen harSIMPLE
ellerBULK_LOGGED
återställningsmodellen.- En minnesoptimerad filgrupp läggs till och kallas XTP om den inte fanns i .bak-källfilen.
- Alla befintliga minnesoptimerade filgrupper har bytt namn till XTP.
SINGLE_USER
ochRESTRICTED_USER
alternativ konverteras tillMULTI_USER
.
Begränsningar:
- Säkerhetskopior av de skadade databaserna kan återställas beroende på typen av skada, men automatiserade säkerhetskopieringar tas inte förrän skadan har åtgärdats. Se till att du kör
DBCC CHECKDB
på sql-källhanterad instans och använd säkerhetskopieringWITH CHECKSUM
för att förhindra det här problemet. .BAK
Det går inte att återställa filen för en databas som innehåller någon begränsning som beskrivs i det här dokumentet (till exempelFILESTREAM
ellerFILETABLE
objekt) på SQL Managed Instance..BAK
filer som innehåller flera säkerhetskopieringsuppsättningar kan inte återställas..BAK
filer som innehåller flera loggfiler kan inte återställas.- Säkerhetskopior som innehåller databaser som är större än 8 TB, aktiva minnesinterna OLTP-objekt eller antalet filer som överskrider 280 filer per instans kan inte återställas på en generell instans.
- Säkerhetskopior som innehåller databaser som är större än 4 TB eller minnesinterna OLTP-objekt med den totala storleken som är större än den storlek som beskrivs i resursgränser kan inte återställas på Affärskritisk instans. Information om återställningsuttryck finns i RESTORE-instruktioner.
Viktigt!
Samma begränsningar gäller för den inbyggda återställningsåtgärden för tidpunkt. Det går till exempel inte att återställa databasen Generell användning som är större än 4 TB på Affärskritisk instans. Affärskritisk databas med minnesinterna OLTP-filer eller fler än 280 filer kan inte återställas på generell användningsinstans.
Tjänstkoordinator
Meddelandeutbyte mellan instanstjänster stöds endast mellan Azure SQL Managed Instances:
CREATE ROUTE
: Du kan inte användaCREATE ROUTE
medADDRESS
annat änLOCAL
eller DNS-namn för en annan SQL Managed Instance. Porten är alltid 4022.ALTER ROUTE
: Du kan inte användaALTER ROUTE
medADDRESS
annat änLOCAL
eller DNS-namn för en annan SQL Managed Instance. Porten är alltid 4022.
Transportsäkerhet stöds, dialogsäkerhet är inte:
CREATE REMOTE SERVICE BINDING
stöds inte.
Service broker är aktiverat som standard och kan inte inaktiveras. Följande ALTER DATABASE-alternativ stöds inte:
ENABLE_BROKER
DISABLE_BROKER
Lagrade procedurer, funktioner och utlösare
NATIVE_COMPILATION
stöds inte på nivån Generell användning.- Följande sp_configure alternativ stöds inte:
allow polybase export
allow updates
filestream_access_level
remote access
remote data archive
remote proc trans
scan for startup procs
- Följande sp_configure alternativ ignoreras och har ingen effekt:
Ole Automation Procedures
sp_execute_external_scripts
stöds endast för Machine Learning Services för SQL MI, annarssp_execute_external_scripts
stöds inte för SQL Managed Instance. Se sp_execute_external_scripts.xp_cmdshell
stöds inte. Se xp_cmdshell.Extended stored procedures
stöds inte, och detta inkluderarsp_addextendedproc
ochsp_dropextendedproc
. Den här funktionen stöds inte eftersom den är på en utfasningssökväg för SQL Server. Mer information finns i Utökade lagrade procedurer.sp_attach_db
,sp_attach_single_file_db
ochsp_detach_db
stöds inte. Se sp_attach_db, sp_attach_single_file_db och sp_detach_db.
Systemfunktioner och variabler
Följande variabler, funktioner och vyer returnerar olika resultat:
SERVERPROPERTY('EngineEdition')
returnerar värdet 8. Den här egenskapen identifierar unikt en SQL Managed Instance. Se SERVERPROPERTY.SERVERPROPERTY('InstanceName')
returnerar NULL eftersom begreppet instans som det finns för SQL Server inte gäller för SQL Managed Instance. Se SERVERPROPERTY('InstanceName').@@SERVERNAME
returnerar ett fullständigt DNS-namn som kan anslutas,my-managed-instance.wcus17662feb9ce98.database.windows.net
till exempel . Se @@SERVERNAME.SYS.SERVERS
returnerar ett fullständigt DNS-namn som kan anslutas, till exempelmyinstance.domain.database.windows.net
för egenskaperna "name" och "data_source". Se SYS. SERVRAR.@@SERVICENAME
returnerar NULL eftersom begreppet tjänst som det finns för SQL Server inte gäller för SQL Managed Instance. Se @@SERVICENAME.SUSER_ID
stöds. Den returnerar NULL om Microsoft Entra-inloggningen inte finns isys.syslogins
. Se SUSER_ID.SUSER_SID
stöds inte. Fel data returneras, vilket är ett tillfälligt känt problem. Se SUSER_SID.
Miljöbegränsningar
Undernät
- Du kan inte placera några andra resurser (till exempel virtuella datorer) i undernätet där du har distribuerat din SQL Managed Instance. Distribuera dessa resurser med ett annat undernät.
- Undernätet måste ha tillräckligt många tillgängliga IP-adresser. Minimum är att ha minst 32 IP-adresser i undernätet.
- Antalet virtuella kärnor och typer av instanser som du kan distribuera i en region har vissa begränsningar och begränsningar.
- Det finns en nätverkskonfiguration som måste tillämpas på undernätet.
Virtuellt nätverk
- Virtuella nätverk kan distribueras med hjälp av resursmodell. Den klassiska modellen stöder inte distribution av virtuella nätverk (VNet).
- När en SQL-hanterad instans har skapats stöds inte flytt av sql-hanterad instans eller VNet till en annan resursgrupp eller prenumeration.
- För SQL-hanterade instanser som finns i virtuella kluster som skapas före den 22 september 2020 stöds inte global VNet-peering . Du kan ansluta till dessa resurser via ExpressRoute eller VNet-till-VNet via VNet-gatewayer.
Redundansgrupper
Systemdatabaser replikeras inte till den sekundära instansen i en redundansgrupp. Därför är scenarier som är beroende av objekt från systemdatabaserna omöjliga för den sekundära instansen om inte objekten skapas manuellt på den sekundära.
tempdb
- Den maximala filstorleken för systemdatabasen
tempdb
får inte vara större än 24 GB per kärna på nivån Generell användning. Den maximalatempdb
storleken på en Affärskritisk nivå begränsas av lagringsstorleken för SQL Managed Instance.tempdb
loggfilens storlek är begränsad till 120 GB på nivån Generell användning. Vissa frågor kan returnera ett fel om de behöver mer än 24 GB per kärna itempdb
eller om de producerar mer än 120 GB loggdata. tempdb
är alltid uppdelat i 12 datafiler: 1 primär, även kalladmaster
, datafil och 11 icke-primära datafiler. Det går inte att ändra filstrukturen och det går inte att lägga till nya filer itempdb
.- Minnesoptimerade TempDB-metadata, en ny minnesintern databasfunktion för SQL Server 2019, stöds inte.
- Objekt som skapats i
model
databasen kan inte skapastempdb
automatiskt efter en omstart eller en redundans eftersomtempdb
den ursprungliga objektlistan inte hämtas frånmodel
databasen. Du måste skapa objekttempdb
manuellt efter varje omstart eller en redundansväxling.
msdb
Följande scheman i systemdatabasen msdb
i SQL Managed Instance måste ägas av respektive fördefinierade roller:
- Allmänna roller
- TargetServersRole
- Fasta databasroller
- SQLAgentUserRole
- SQLAgentReaderRole
- SQLAgentOperatorRole
- DatabaseMail-roller:
- DatabaseMailUserRole
- Roller för integreringstjänster:
- db_ssisadmin
- db_ssisltduser
- db_ssisoperator
Viktigt!
Om du ändrar fördefinierade rollnamn, schemanamn och schemaägare av kunder påverkas tjänstens normala drift. Ändringar som görs i dessa återställs till de fördefinierade värdena så snart som det har identifierats, eller senast vid nästa tjänstuppdatering för att säkerställa normal tjänståtgärd.
Felloggar
SQL Managed Instance placerar utförlig information i felloggar. Det finns många interna systemhändelser som loggas i felloggen. Använd en anpassad procedur för att läsa felloggar som filtrerar bort några irrelevanta poster. Mer information finns i SQL Managed Instance – sp_readmierrorlog eller SQL Managed Instance-tillägg (förhandsversion) för Azure Data Studio.
Det går inte att ändra antalet kvarhållna felloggar.