T-SQL-verschillen tussen SQL Server en Azure SQL Managed Instance
Van toepassing op: Azure SQL Managed Instance
In dit artikel worden de verschillen in syntaxis en gedrag tussen Azure SQL Managed Instance en SQL Server samengevat en uitgelegd.
SQL Managed Instance biedt hoge compatibiliteit met de SQL Server-database-engine en de meeste functies worden ondersteund in een met SQL beheerd exemplaar.
Er zijn enkele PaaS-beperkingen die worden geïntroduceerd in SQL Managed Instance en enkele gedragswijzigingen ten opzichte van SQL Server. De verschillen zijn onderverdeeld in de volgende categorieën:
- Beschikbaarheid omvat de verschillen in AlwaysOn-beschikbaarheidsgroepen en back-ups.
- Beveiliging omvat de verschillen in controle, certificaten, referenties, cryptografische providers, aanmeldingen en gebruikers, en de servicesleutel en de hoofdsleutel van de service.
- Configuratie omvat de verschillen in buffergroepextensie, sortering, compatibiliteitsniveaus, databasespiegeling, databaseopties, SQL Server Agent en tabelopties.
- Functies zijn BULK INSERT/OPENROWSET, CLR, DBCC, gedistribueerde transacties, uitgebreide gebeurtenissen, externe bibliotheken, FILESTREAM en FileTable, Semantic Search in volledige tekst, gekoppelde servers, PolyBase, Replicatie, RESTORE, Service Broker, opgeslagen procedures, functies en triggers.
- Omgevingsinstellingen zoals VNets en subnetconfiguraties.
De meeste van deze functies zijn architecturale beperkingen en vertegenwoordigen servicefuncties.
Tijdelijke bekende problemen die worden gedetecteerd in SQL Managed Instance en die in de toekomst worden opgelost, worden beschreven in Wat is er nieuw?
Notitie
Microsoft Entra-id is de nieuwe naam voor Azure Active Directory (Azure AD). Op dit moment wordt de documentatie bijgewerkt.
Beschikbaarheid
AlwaysOn-beschikbaarheidsgroepen
Hoge beschikbaarheid is ingebouwd in SQL Managed Instance en kan niet worden beheerd door gebruikers. De volgende instructies worden niet ondersteund:
- EINDPUNT MAKEN... VOOR DATABASE_MIRRORING
- BESCHIKBAARHEIDSGROEP MAKEN
- BESCHIKBAARHEIDSGROEP WIJZIGEN
- BESCHIKBAARHEIDSGROEP VERWIJDEREN
- De SET HADR-component van de ALTER DATABASE-instructie
Backup
Azure SQL Managed Instance heeft automatische back-ups, zodat gebruikers volledige databaseback-ups COPY_ONLY
kunnen maken. Back-ups van differentiële, logboek- en bestandsmomentopnamen worden niet ondersteund.
- Met een met SQL beheerd exemplaar kunt u alleen een back-up maken van een exemplaardatabase naar een Azure Blob Storage-account:
- Alleen
BACKUP TO URL
wordt ondersteund. FILE
,TAPE
en back-upapparaten worden niet ondersteund.
- Alleen
- De meeste algemene
WITH
opties worden ondersteund.COPY_ONLY
is verplicht.FILE_SNAPSHOT
enCREDENTIAL
worden niet ondersteund.- Tapeopties:
REWIND
,NOREWIND
,UNLOAD
enNOUNLOAD
worden niet ondersteund. - Logboekspecifieke opties:
NORECOVERY
,STANDBY
enNO_TRUNCATE
worden niet ondersteund.
Beperkingen:
Met een met SQL beheerd exemplaar kunt u een back-up maken van een exemplaardatabase naar een back-up met maximaal 32 strepen, wat voldoende is voor databases tot 4 TB als back-upcompressie wordt gebruikt.
U kunt niet uitvoeren
BACKUP DATABASE ... WITH COPY_ONLY
op een database die is versleuteld met door de service beheerde Transparent Data Encryption (TDE). Door de service beheerde TDE dwingt af dat back-ups worden versleuteld met een interne TDE-sleutel. De sleutel kan niet worden geëxporteerd, dus u kunt de back-up niet herstellen. Gebruik in plaats daarvan automatische back-ups en herstel naar een bepaald tijdstip of gebruik in plaats daarvan door de klant beheerde (BYOK) TDE . U kunt versleuteling ook uitschakelen voor de database.Systeemeigen back-ups die zijn gemaakt op een SQL Managed Instance, kunnen alleen worden hersteld naar een SQL Server 2022-exemplaar. Dit komt doordat SQL Managed Instance een hogere interne databaseversie heeft dan andere versies van SQL Server. Zie Een back-up van een SQL Managed Instance-database herstellen naar SQL Server 2022 voor meer informatie.
Als u een back-up wilt maken van een database naar/van een Azure-opslag, kunt u zich verifiëren met behulp van beheerde identiteit of Shared Access Signature (SAS). Dit is een URI waarmee u beperkte toegangsrechten voor Azure Storage-resources verleent. Meer informatie hierover. Het gebruik van toegangssleutels voor deze scenario's wordt niet ondersteund.
De maximale grootte van de back-upstrook met behulp van de
BACKUP
opdracht in SQL Managed Instance is 195 GB. Dit is de maximale blobgrootte. Verhoog het aantal strepen in de back-upopdracht om de grootte van afzonderlijke strepen te verkleinen en binnen deze limiet te blijven.Tip
Als u deze beperking wilt omzeilen, kunt u het volgende doen wanneer u een back-up maakt van een database vanuit SQL Server in een on-premises omgeving of op een virtuele machine:
- Maak een back-up naar
DISK
in plaats van een back-up te maken naarURL
. - Upload de back-upbestanden naar Blob Storage.
- Herstel naar SQL Managed Instance.
De
Restore
opdracht in SQL Managed Instance ondersteunt grotere blobgrootten in de back-upbestanden omdat een ander blobtype wordt gebruikt voor de opslag van de geüploade back-upbestanden.- Maak een back-up naar
Zie BACKUP voor meer informatie over back-ups met behulp van T-SQL.
Beveiliging
Controle
De belangrijkste verschillen tussen controle in Microsoft Azure SQL en in SQL Server zijn:
- Met SQL Managed Instance werkt controle op serverniveau. De
.xel
logboekbestanden worden opgeslagen in Azure Blob Storage. - Met Azure SQL Database werkt controle op databaseniveau. De
.xel
logboekbestanden worden opgeslagen in Azure Blob Storage. - Met SQL Server, on-premises of in virtuele machines werkt controle op serverniveau. Gebeurtenissen worden opgeslagen in bestandssysteem- of Windows-gebeurtenislogboeken.
XEvent-controle in SQL Managed Instance ondersteunt Azure Blob Storage-doelen. Bestands- en Windows-logboeken worden niet ondersteund.
De belangrijkste verschillen in de CREATE AUDIT
syntaxis voor controle naar Azure Blob Storage zijn:
- Er wordt een nieuwe syntaxis
TO URL
opgegeven voor het opgeven van de URL van de Azure Blob Storage-container waarin de.xel
bestanden worden geplaatst. - De syntaxis
TO FILE
wordt niet ondersteund omdat SQL Managed Instance geen toegang heeft tot Windows-bestandsshares.
Zie voor meer informatie:
Certificaten
SQL Managed Instance heeft geen toegang tot bestandsshares en Windows-mappen, dus de volgende beperkingen zijn van toepassing:
- Het
CREATE FROM
/BACKUP TO
bestand wordt niet ondersteund voor certificaten. - Het
CREATE
/BACKUP
certificaat wordtFILE
/ASSEMBLY
niet ondersteund. Persoonlijke-sleutelbestanden kunnen niet worden gebruikt.
Zie CREATE CERTIFICATE en BACKUP CERTIFICATE.
Tijdelijke oplossing: In plaats van een back-up van het certificaat te maken en de back-up te herstellen, haalt u de binaire inhoud van het certificaat en de persoonlijke sleutel op, slaat u deze op als SQL-bestand en maakt u deze op basis van binair bestand:
CREATE CERTIFICATE
FROM BINARY = asn_encoded_certificate
WITH PRIVATE KEY (<private_key_options>);
Referentie
Beheerde identiteit, Azure Key Vault en SHARED ACCESS SIGNATURE
identiteiten worden ondersteund. Windows-gebruikers worden niet ondersteund.
Zie CREATE CREDENTIAL en ALTER CREDENTIAL.
Cryptografische providers
SQL Managed Instance heeft geen toegang tot bestanden, zodat cryptografische providers niet kunnen worden gemaakt:
CREATE CRYPTOGRAPHIC PROVIDER
wordt niet ondersteund. Zie CREATE CRYPTOGRAPHIC PROVIDER.ALTER CRYPTOGRAPHIC PROVIDER
wordt niet ondersteund. Zie ALTER CRYPTOGRAPHIC PROVIDER.
Aanmeldingen en gebruikers
SQL-aanmeldingen die zijn gemaakt met behulp van
FROM CERTIFICATE
,FROM ASYMMETRIC KEY
enFROM SID
worden ondersteund. Zie CREATE LOGIN. Server-principals (aanmeldingen) worden gemaakt op serverniveau en gebruikers (database-principals) worden gemaakt op databaseniveau. Microsoft Entra-aanmeldingen die zijn gemaakt met de syntaxis CREATE LOGIN en Microsoft Entra-gebruikers die zijn gemaakt met de syntaxis CREATE USER FROM LOGIN , worden ondersteund. Wanneer u een gebruiker maakt en opgeeftFROM LOGIN
, wordt die gebruiker gekoppeld aan de aanmelding en worden de serverfuncties en machtigingen overgenomen die eraan zijn toegewezen.SQL Managed Instance biedt ondersteuning voor het maken van ingesloten databasegebruikers op basis van Microsoft Entra-identiteiten met de syntaxis
CREATE USER [AADUser/AAD group] FROM EXTERNAL PROVIDER
. Gebruikers die op deze manier zijn gemaakt, zijn niet gekoppeld aan server-principals, zelfs niet als er een server-principal met dezelfde naam in demaster
database bestaat.Windows-aanmeldingen die zijn gemaakt met de
CREATE LOGIN ... FROM WINDOWS
syntaxis, worden niet ondersteund. Gebruik Microsoft Entra-aanmeldingen en -gebruikers.De Microsoft Entra-beheerder voor het exemplaar heeft onbeperkte beheerdersbevoegdheden.
Sommige functies bieden geen ondersteuning voor het gebruik van Microsoft Entra-aanmeldingen in interacties tussen exemplaren, maar alleen binnen één met SQL beheerd exemplaar, zoals bijvoorbeeld SQL Server-replicatie. De functie voor gekoppelde servers biedt echter ondersteuning voor verificatie tussen exemplaren met behulp van Microsoft Entra-server-principals (aanmeldingen).
Het instellen van een Microsoft Entra-aanmelding die is toegewezen aan een Microsoft Entra-groep omdat de eigenaar van de database niet wordt ondersteund. Een lid van de Microsoft Entra-groep kan een database-eigenaar zijn, zelfs als de aanmelding niet is gemaakt in de database.
Imitatie van Microsoft Entra-principals op serverniveau met behulp van andere Microsoft Entra-principals wordt ondersteund, zoals de EXECUTE AS-component . EXECUTE AS-beperkingen zijn:
EXECUTE AS USER wordt niet ondersteund voor Microsoft Entra-gebruikers wanneer de naam verschilt van de aanmeldingsnaam. Een voorbeeld is wanneer de gebruiker wordt gemaakt via de syntaxis
CREATE USER [myAadUser] FROM LOGIN [john@contoso.com]
en imitatie wordt geprobeerd.EXEC AS USER = myAadUser
Wanneer u een GEBRUIKER maakt op basis van een Microsoft Entra-aanmelding, geeft u de user_name op als dezelfde login_name van LOGIN.Alleen aanmeldingen op SQL Server-niveau die deel uitmaken van de
sysadmin
rol kunnen de volgende bewerkingen uitvoeren die gericht zijn op Microsoft Entra-principals:- EXECUTE AS USER
- EXECUTE AS LOGIN
Als u een gebruiker wilt imiteren met de EXECUTE AS-instructie, moet de gebruiker rechtstreeks worden toegewezen aan microsoft Entra-aanmelding. Gebruikers die lid zijn van Microsoft Entra-groepen die zijn toegewezen aan Microsoft Entra-server-principals, kunnen niet effectief worden geïmiteerd met de EXECUTE AS-instructie, ook al heeft de aanroeper de machtigingen voor het imiteren van de opgegeven gebruikersnaam.
Databaseexport/-import met bacpac-bestanden wordt ondersteund voor Microsoft Entra-gebruikers in SQL Managed Instance met behulp van SSMS V18.4 of hoger, of SqlPackage.
- De volgende configuraties worden ondersteund met behulp van het bacpac-bestand van de database:
- Exporteer/importeer een database tussen verschillende beheerexemplaren binnen hetzelfde Microsoft Entra-domein.
- Exporteer een database uit SQL Managed Instance en importeer deze in SQL Database binnen hetzelfde Microsoft Entra-domein.
- Exporteer een database uit SQL Database en importeer deze in sql Managed Instance binnen hetzelfde Microsoft Entra-domein.
- Exporteer een database uit SQL Managed Instance en importeer deze naar SQL Server (versie 2012 of hoger).
- In deze configuratie worden alle Microsoft Entra-gebruikers gemaakt als SQL Server-database-principals (gebruikers) zonder aanmeldingen. Het type gebruikers is
SQL
en is zichtbaar alsSQL_USER
insys.database_principals
. Hun machtigingen en rollen blijven aanwezig in de metagegevens van de SQL Server-database en kunnen worden gebruikt voor imitatie. Ze kunnen echter niet worden gebruikt voor toegang tot en aanmelding bij de SQL Server met behulp van hun referenties.
- In deze configuratie worden alle Microsoft Entra-gebruikers gemaakt als SQL Server-database-principals (gebruikers) zonder aanmeldingen. Het type gebruikers is
- De volgende configuraties worden ondersteund met behulp van het bacpac-bestand van de database:
Alleen de principalaanmelding op serverniveau, die wordt gemaakt door het inrichtingsproces van SQL Managed Instance, leden van de serverfuncties, zoals
securityadmin
ofsysadmin
, of andere aanmeldingen met ALTER ANY LOGIN-machtiging op serverniveau kunnen Microsoft Entra-server-principals (aanmeldingen) maken in demaster
database voor SQL Managed Instance.Aanmeldingen op basis van SQL-verificatie moeten de rol krijgen om
sysadmin
aanmeldingen voor Microsoft Entra-identiteiten te maken.De aanmelding moet lid zijn van dezelfde Microsoft Entra-tenant waarin azure SQL Managed Instance wordt gehost.
Microsoft Entra-server-principals (aanmeldingen) zijn zichtbaar in Objectverkenner te beginnen met SQL Server Management Studio 18.0 preview 5.
Een server-principal met sysadmin-toegangsniveau wordt automatisch gemaakt voor de Microsoft Entra-beheerder zodra deze is ingeschakeld op een exemplaar.
Tijdens de verificatie wordt de volgende reeks toegepast om de verificatie-principal op te lossen:
- Als het Microsoft Entra-account rechtstreeks is toegewezen aan een Microsoft Entra-aanmelding, die aanwezig
sys.server_principals
is als type 'E', verleent u toegang en past u machtigingen voor die aanmelding toe. - Als het Microsoft Entra-account lid is van een groep die is toegewezen aan een Microsoft Entra-aanmelding, die aanwezig
sys.server_principals
is als type X, verleent u toegang en past u machtigingen voor die aanmelding toe. - Als het Microsoft Entra-account bestaat zoals rechtstreeks is toegewezen aan een Microsoft Entra-gebruiker in een database, die aanwezig
sys.database_principals
is als het type E, verleent u toegang en past u machtigingen toe van de Microsoft Entra-databasegebruiker. - Als het Microsoft Entra-account lid is van een Microsoft Entra-groep die is toegewezen aan een Microsoft Entra-gebruiker in een database, die aanwezig
sys.database_principals
is als het type X, verleent u toegang en past u machtigingen toe van de Microsoft Entra-groepgebruiker.
- Als het Microsoft Entra-account rechtstreeks is toegewezen aan een Microsoft Entra-aanmelding, die aanwezig
Servicesleutel en servicehoofdsleutel
- Back-up van hoofdsleutels wordt niet ondersteund (beheerd door de SQL Database-service).
- Hoofdsleutelherstel wordt niet ondersteund (beheerd door de SQL Database-service).
- Back-up van de hoofdsleutel van de service wordt niet ondersteund (beheerd door de SQL Database-service).
- Herstellen van de hoofdsleutel van de service wordt niet ondersteund (beheerd door de SQL Database-service).
Configuratie
Buffergroepextensie
- De buffergroepextensie wordt niet ondersteund.
ALTER SERVER CONFIGURATION SET BUFFER POOL EXTENSION
wordt niet ondersteund. Zie ALTER SERVER CONFIGURATION.
Sortering
De standaardsortering van exemplaren is SQL_Latin1_General_CP1_CI_AS
en kan worden opgegeven als een aanmaakparameter. Zie Sorteringen.
Compatibiliteitsniveaus
- Ondersteunde compatibiliteitsniveaus zijn 100, 110, 120, 130, 140, 150 en 160.
- Compatibiliteitsniveaus onder de 100 worden niet ondersteund.
- Het standaardcompatibiliteitsniveau voor nieuwe databases is 150. Voor herstelde databases blijft het compatibiliteitsniveau ongewijzigd als dit 100 en hoger is.
Zie HET compatibiliteitsniveau ALTER DATABASE.
Databasespiegeling
Databasespiegeling wordt niet ondersteund.
ALTER DATABASE SET PARTNER
enSET WITNESS
opties worden niet ondersteund.CREATE ENDPOINT … FOR DATABASE_MIRRORING
wordt niet ondersteund.
Zie ALTER DATABASE SET PARTNER, SET WITNESS and CREATE ENDPOINT ... VOOR DATABASE_MIRRORING.
Databaseopties
- Meerdere logboekbestanden worden niet ondersteund.
- In-memory objecten worden niet ondersteund in de servicelaag Algemeen gebruik.
- Er geldt een limiet van 280 bestanden per exemplaar voor algemeen gebruik, wat een maximum van 280 bestanden per database impliceert. Zowel gegevens als logboekbestanden in de Algemeen-laag worden meegeteld voor deze limiet. De Bedrijfskritiek-laag ondersteunt 32.767 bestanden per database.
- De database kan geen bestandsgroepen bevatten die FILESTREAM-gegevens bevatten. Herstellen mislukt als
.bak
er gegevens zijnFILESTREAM
. - Elk bestand wordt in Azure Blob Storage geplaatst. IO en doorvoer per bestand zijn afhankelijk van de grootte van elk afzonderlijk bestand.
CREATE DATABASE-instructie
De volgende beperkingen gelden voor CREATE DATABASE
:
Bestanden en bestandsgroepen kunnen niet worden gedefinieerd.
Een voor geheugen geoptimaliseerde bestandsgroep en bestand worden automatisch toegevoegd en worden XTP genoemd.
De
CONTAINMENT
optie wordt niet ondersteund.WITH
opties worden niet ondersteund.Tip
Gebruik dit als tijdelijke oplossing
ALTER DATABASE
CREATE DATABASE
om databaseopties in te stellen om bestanden toe te voegen of om insluiting in te stellen.De
FOR ATTACH
optie wordt niet ondersteund.De
AS SNAPSHOT OF
optie wordt niet ondersteund.
Zie CREATE DATABASE voor meer informatie.
ALTER DATABASE-instructie
Sommige bestandseigenschappen kunnen niet worden ingesteld of gewijzigd:
- Een bestandspad kan niet worden opgegeven in de
ALTER DATABASE ADD FILE (FILENAME='path')
T-SQL-instructie. VerwijderenFILENAME
uit het script omdat sql Managed Instance de bestanden automatisch plaatst. - Een bestandsnaam kan niet worden gewijzigd met behulp van de
ALTER DATABASE
instructie. - Het wijzigen van het XTP-bestand of de bestandsgroep is niet toegestaan.
De volgende opties zijn standaard ingesteld en kunnen niet worden gewijzigd:
MULTI_USER
ENABLE_BROKER
AUTO_CLOSE OFF
De volgende opties kunnen niet worden gewijzigd:
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
Sommige ALTER DATABASE
instructies (bijvoorbeeld SET CONTAINMENT) kunnen tijdelijk mislukken, bijvoorbeeld tijdens de automatische databaseback-up of direct nadat een database is gemaakt. In dit geval ALTER DATABASE
moet de instructie opnieuw worden geprobeerd. Zie de sectie Opmerkingen voor meer informatie over gerelateerde foutberichten.
Zie ALTER DATABASE voor meer informatie.
SQL Server Agent
- Het in- en uitschakelen van SQL Server Agent wordt momenteel niet ondersteund in SQL Managed Instance. SQL Agent wordt altijd uitgevoerd.
- Taakplanningtrigger op basis van een niet-actieve CPU wordt niet ondersteund.
- Sql Server Agent-instellingen zijn alleen-lezen. De procedure
sp_set_agent_properties
wordt niet ondersteund in SQL Managed Instance. - Banen
- T-SQL-taakstappen worden ondersteund.
- De volgende replicatietaken worden ondersteund:
- Transactielogboeklezer
- Momentopname
- Distributor
- SSIS-taakstappen worden ondersteund.
- Andere typen taakstappen worden momenteel niet ondersteund:
- De stap voor de samenvoegreplicatietaak wordt niet ondersteund.
- Wachtrijlezer wordt niet ondersteund.
- Opdrachtshell wordt nog niet ondersteund.
- SQL Managed Instance heeft bijvoorbeeld geen toegang tot externe resources, bijvoorbeeld netwerkshares via Robocopy.
- SQL Server Analysis Services wordt niet ondersteund.
- Meldingen worden gedeeltelijk ondersteund.
- E-mailmeldingen worden ondersteund, hoewel u hiervoor een Database Mail-profiel moet configureren. SQL Server Agent kan slechts één Database Mail-profiel gebruiken en moet worden aangeroepen
AzureManagedInstance_dbmail_profile
.- Pager wordt niet ondersteund.
- NetSend wordt niet ondersteund.
- Waarschuwingen worden nog niet ondersteund.
- Proxy's worden niet ondersteund.
- EventLog wordt niet ondersteund.
- De gebruiker moet rechtstreeks worden toegewezen aan de microsoft Entra-serveraanmelding om SQL Agent-taken te maken, te wijzigen of uit te voeren. Gebruikers die niet rechtstreeks zijn toegewezen, bijvoorbeeld gebruikers die deel uitmaken van een Microsoft Entra-groep met de rechten voor het maken, wijzigen of uitvoeren van SQL Agent-taken, kunnen deze acties niet effectief uitvoeren. Dit komt door imitatie van SQL Managed Instance en EXECUTE AS-beperkingen.
- De functie Multi Server Beheer istration voor MSX-/TSX-taken (Master/Target) worden niet ondersteund.
Zie SQL Server Agent voor meer informatie over SQL Server Agent.
Tabellen
De volgende tabeltypen worden niet ondersteund:
- FILESTREAM
- FILETABLE
- EXTERNAL TABLE (behalve PolyBase)
- MEMORY_OPTIMIZED (niet alleen ondersteund in de laag Algemeen gebruik)
Zie CREATE TABLE en ALTER TABLE voor meer informatie over het maken en wijzigen van tabellen.
Functies
BULK INSERT / OPENROWSET
SQL Managed Instance heeft geen toegang tot bestandsshares en Windows-mappen, dus de bestanden moeten worden geïmporteerd uit Azure Blob Storage:
DATASOURCE
is vereist in de opdracht tijdens hetBULK INSERT
importeren van bestanden uit Azure Blob Storage. Zie BULK INSERT.DATASOURCE
is vereist in deOPENROWSET
functie wanneer u de inhoud van een bestand uit Azure Blob Storage leest. Zie OPENROWSET.OPENROWSET
kan worden gebruikt voor het lezen van gegevens uit Azure SQL Database, Azure SQL Managed Instance of SQL Server-exemplaren. Andere bronnen, zoals Oracle-databases of Excel-bestanden, worden niet ondersteund.
CLR
Een met SQL beheerd exemplaar heeft geen toegang tot bestandsshares en Windows-mappen, dus de volgende beperkingen zijn van toepassing:
- Alleen
CREATE ASSEMBLY FROM BINARY
wordt ondersteund. Zie CREATE ASSEMBLY FROM BINARY. CREATE ASSEMBLY FROM FILE
wordt niet ondersteund. Zie CREATE ASSEMBLY FROM FILE.ALTER ASSEMBLY
kan niet verwijzen naar bestanden. Zie ALTER ASSEMBLY.
Database Mail (db_mail)
sp_send_dbmail
kan geen bijlagen verzenden met behulp van @file_attachments de parameter. Lokaal bestandssysteem en externe shares of Azure Blob Storage zijn niet toegankelijk vanuit deze procedure.- Bekijk de bekende problemen met betrekking tot
@query
parameters en verificatie.
DBCC
Niet-gedocumenteerde DBCC-instructies die zijn ingeschakeld in SQL Server, worden niet ondersteund in SQL Managed Instance.
- Er wordt slechts een beperkt aantal Global Trace-vlaggen ondersteund. Sessieniveau
Trace flags
wordt niet ondersteund. Zie traceringsvlagmen. - DBCC TRACEOFF en DBCC TRACEON werken met het beperkte aantal globale traceringsvlagken.
- DBCC CHECKDB met opties REPAIR_ALLOW_DATA_LOSS, REPAIR_FAST en REPAIR_REBUILD niet kunnen worden gebruikt omdat de database niet kan worden ingesteld in
SINGLE_USER
de modus. Zie ALTER DATABASE-verschillen. Mogelijke databasebeschadiging wordt verwerkt door het ondersteuning voor Azure team. Neem contact op met ondersteuning voor Azure als er sprake is van beschadiging van de database.
Gedistribueerde transacties
Gedistribueerde transacties op basis van T-SQL en .NET in beheerde exemplaren zijn algemeen beschikbaar. Andere scenario's, zoals XA-transacties, gedistribueerde transacties tussen beheerde exemplaren en andere deelnemers, worden ondersteund met DTC voor Azure SQL Managed Instance, dat beschikbaar is in openbare preview.
Uitgebreide gebeurtenissen
Sommige Windows-specifieke doelen voor uitgebreide evenementen (XEvents) worden niet ondersteund:
- Het
etw_classic_sync
-doel wordt niet ondersteund..xel
-bestanden opslaan in Azure-blobopslag. Zie etw_classic_sync doel. - Het
event_file
-doel wordt niet ondersteund..xel
-bestanden opslaan in Azure-blobopslag. Zie Doel van de event_file.
Externe bibliotheken
Externe bibliotheken in de database R en Python worden ondersteund in beperkte openbare preview. Zie Machine Learning Services in Azure SQL Managed Instance (preview).
FILESTREAM en FileTable
- FILESTREAM-gegevens worden niet ondersteund.
- De database kan geen bestandsgroepen met
FILESTREAM
gegevens bevatten. FILETABLE
wordt niet ondersteund.- Tabellen kunnen geen typen hebben
FILESTREAM
. - De volgende functies worden niet ondersteund:
GetPathLocator()
GET_FILESTREAM_TRANSACTION_CONTEXT()
PathName()
GetFileNamespacePat)
FileTableRootPath()
Zie FILESTREAM en FileTables voor meer informatie.
Semantisch zoeken in volledige tekst
Semantisch zoeken wordt niet ondersteund.
Gekoppelde servers
Gekoppelde servers in SQL Managed Instance ondersteunen een beperkt aantal doelen:
- Ondersteunde doelen zijn SQL Managed Instance, SQL Database, Azure Synapse SQL serverloze en toegewezen pools en SQL Server-exemplaren.
- Doelen die niet worden ondersteund, zijn bestanden, Analysis Services en andere RDBMS. Probeer systeemeigen CSV-import uit Azure Blob Storage te gebruiken met of
BULK INSERT
OPENROWSET
als alternatief voor het importeren van bestanden of laad bestanden met behulp van een serverloze SQL-pool in Azure Synapse Analytics.
Operations:
sp_dropserver
wordt ondersteund voor het verwijderen van een gekoppelde server. Zie sp_dropserver.- De
OPENROWSET
functie kan alleen worden gebruikt om query's uit te voeren op SQL Server-exemplaren. Ze kunnen worden beheerd, on-premises of in virtuele machines. Zie OPENROWSET. - De functie OPENDATASOURCE kan worden gebruikt om alleen query's uit te voeren op SQL Server-exemplaren. Ze kunnen worden beheerd, on-premises of in virtuele machines. Een voorbeeld is
SELECT * FROM OPENDATASOURCE('SQLNCLI', '...').AdventureWorks2022.HumanResources.Employee
. Alleen deSQLNCLI
,SQLNCLI11
enSQLOLEDB
MSOLEDBSQL
waarden worden ondersteund als provider. De SQL Server Native Client (vaak afgekort SNAC) is verwijderd uit SQL Server 2022 en SQL Server Management Studio 19 (SSMS). De SQL Server Native Client (SQLNCLI of SQLNCLI11) en de verouderde Microsoft OLE DB-provider voor SQL Server (SQLOLEDB) worden niet aanbevolen voor nieuwe ontwikkeling. Schakel over naar het nieuwe Microsoft OLE DB-stuurprogramma (MSOLEDBSQL) voor SQL Server of het nieuwste Microsoft ODBC-stuurprogramma voor SQL Server . - Gekoppelde servers kunnen niet worden gebruikt om bestanden (Excel, CSV) van de netwerkshares te lezen. Probeer BULK INSERT, OPENROWSET te gebruiken die CSV-bestanden leest uit Azure Blob Storage of een gekoppelde server die verwijst naar een serverloze SQL-pool in Synapse Analytics. Deze aanvragen bijhouden in feedback-item van SQL Managed Instance
Gekoppelde servers in Azure SQL Managed Instance ondersteunen SQL-verificatie en Microsoft Entra-verificatie.
PolyBase
Met gegevensvirtualisatie met Azure SQL Managed Instance kunt u Transact-SQL-query's (T-SQL) uitvoeren op gegevens uit bestanden die zijn opgeslagen in Azure Data Lake Storage Gen2 of Azure Blob Storage, en deze combineren met lokaal opgeslagen relationele gegevens met behulp van joins. Parquet- en CSV-bestandsindelingen (scheidingstekens) voor tekst worden rechtstreeks ondersteund. De JSON-bestandsindeling wordt indirect ondersteund door de CSV-bestandsindeling op te geven waarbij query's elk document als een afzonderlijke rij retourneren. Het is mogelijk om rijen verder te parseren en JSON_VALUE
OPENJSON
. Zie PolyBase voor algemene informatie over PolyBase.
Bovendien kunt u MET CREATE EXTERNAL TABLE AS SELECT (CETAS) gegevens uit uw met SQL beheerde exemplaar exporteren naar een extern opslagaccount. U kunt CETAS gebruiken om een externe tabel te maken boven op Parquet- of CSV-bestanden van Azure Blob Storage of Azure Data Lake Storage (ADLS) Gen2. CETAS kan ook de resultaten van een T-SQL SELECT-instructie parallel exporteren naar de gemaakte externe tabel.
Replicatie
- Momentopnamen en bidirectionele replicatietypen worden ondersteund. Replicatie samenvoegen, peer-to-peer-replicatie en updatable abonnementen worden niet ondersteund.
- Transactionele replicatie is beschikbaar voor SQL Managed Instance met enkele beperkingen:
- Alle typen replicatiedeelnemers (Publisher, Distributor, Pull Subscriber en Push Subscriber) kunnen worden geplaatst op SQL Managed Instance, maar de uitgever en de distributeur moeten zowel in de cloud als on-premises zijn.
- SQL Managed Instance kan communiceren met de recente versies van SQL Server. Zie de ondersteunde versiesmatrix voor meer informatie.
- Transactionele replicatie heeft enkele aanvullende netwerkvereisten.
Zie de volgende zelfstudies voor meer informatie over het configureren van transactionele replicatie:
- Replicatie tussen een SQL MI-uitgever en SQL MI-abonnee
- Replicatie tussen een SQL MI-uitgever, SQL MI-distributeur en SQL Server-abonnee
RESTORE-instructie
- Ondersteunde syntaxis:
RESTORE DATABASE
RESTORE FILELISTONLY
RESTORE HEADERONLY
RESTORE LABELONLY
RESTORE VERIFYONLY
- Niet-ondersteunde syntaxis:
RESTORE LOGONLY
RESTORE REWINDONLY
- Bron:
FROM URL
(Azure Blob Storage) is de enige ondersteunde optie.FROM DISK
/TAPE
/backup-apparaat wordt niet ondersteund.- Back-upsets worden niet ondersteund.
WITH
opties worden niet ondersteund. Herstelpogingen, waaronderWITH
,DIFFERENTIAL
STATS
,REPLACE
enzovoort, mislukken.
Een databaseherstelbewerking is asynchroon en kan opnieuw worden geprobeerd in Azure SQL Managed Instance. Mogelijk krijgt u een foutmelding in SSMS als de verbinding mislukt of een time-out verloopt. Azure SQL Managed Instance probeert de database op de achtergrond te herstellen en u kunt de voortgang van het herstelproces bijhouden met behulp van de sys.dm_exec_requests - en sys.dm_operation_status dynamische beheerweergaven.
De volgende databaseopties worden ingesteld of overschreven en kunnen later niet meer worden gewijzigd:
NEW_BROKER
als de broker niet is ingeschakeld in het BAK-bestand.ENABLE_BROKER
als de broker niet is ingeschakeld in het BAK-bestand.AUTO_CLOSE=OFF
als een database in het BAK-bestandAUTO_CLOSE=ON
.RECOVERY FULL
als een database in het BAK-bestand een model heeftSIMPLE
ofBULK_LOGGED
herstelt.- Er wordt een voor geheugen geoptimaliseerde bestandsgroep toegevoegd en XTP genoemd als deze zich niet in het .bak-bronbestand bevindt.
- De naam van een bestaande voor geheugen geoptimaliseerde bestandsgroep wordt gewijzigd in XTP.
SINGLE_USER
enRESTRICTED_USER
opties worden geconverteerd naarMULTI_USER
.
Beperkingen:
- Back-ups van de beschadigde databases kunnen worden hersteld, afhankelijk van het type beschadiging, maar automatische back-ups worden pas gemaakt als de beschadiging is opgelost. Zorg ervoor dat u het beheerde bronexemplaren van SQL uitvoert
DBCC CHECKDB
en back-upWITH CHECKSUM
gebruikt om dit probleem te voorkomen. - Het herstellen van
.BAK
een bestand van een database die een beperking bevat die in dit document wordt beschreven (bijvoorbeeldFILESTREAM
FILETABLE
objecten) kan niet worden hersteld in SQL Managed Instance. .BAK
bestanden die meerdere back-upsets bevatten, kunnen niet worden hersteld..BAK
bestanden die meerdere logboekbestanden bevatten, kunnen niet worden hersteld.- Back-ups die databases bevatten die groter zijn dan 8 TB, actieve OLTP-objecten in het geheugen of het aantal bestanden dat groter is dan 280 bestanden per exemplaar, kunnen niet worden hersteld op een exemplaar voor algemeen gebruik.
- Back-ups die databases bevatten die groter zijn dan 4 TB of IN-memory OLTP-objecten met de totale grootte die groter is dan de grootte die wordt beschreven in resourcelimieten, kunnen niet worden hersteld op Bedrijfskritiek exemplaar. Zie RESTORE-instructies voor informatie over herstelinstructies.
Belangrijk
Dezelfde beperkingen gelden voor de ingebouwde herstelbewerking naar een bepaald tijdstip. Als voorbeeld kan de database algemeen gebruik die groter is dan 4 TB niet worden hersteld op Bedrijfskritiek exemplaar. Bedrijfskritiek database met OLTP-bestanden in het geheugen of meer dan 280 bestanden kan niet worden hersteld op een exemplaar van algemeen gebruik.
Servicebroker
Berichtenuitwisseling tussen meerdere exemplaren van servicebroker wordt alleen ondersteund tussen Azure SQL Managed Instances:
CREATE ROUTE
: U kunt niet gebruikenCREATE ROUTE
metADDRESS
een andere naam danLOCAL
of dns-naam van een ander met SQL beheerd exemplaar. Poort is altijd 4022.ALTER ROUTE
: U kunt niet gebruikenALTER ROUTE
metADDRESS
een andere naam danLOCAL
of dns-naam van een ander met SQL beheerd exemplaar. Poort is altijd 4022.
Transportbeveiliging wordt ondersteund, dialoogvensterbeveiliging is niet:
CREATE REMOTE SERVICE BINDING
wordt niet ondersteund.
Service Broker is standaard ingeschakeld en kan niet worden uitgeschakeld. De volgende ALTER DATABASE-opties worden niet ondersteund:
ENABLE_BROKER
DISABLE_BROKER
Opgeslagen procedures, functies en triggers
NATIVE_COMPILATION
wordt niet ondersteund in de laag Algemeen gebruik.- De volgende sp_configure opties worden niet ondersteund:
allow polybase export
allow updates
filestream_access_level
remote access
remote data archive
remote proc trans
scan for startup procs
- De volgende sp_configure opties worden genegeerd en hebben geen effect:
Ole Automation Procedures
sp_execute_external_scripts
wordt alleen ondersteund voor Machine Learning Services voor SQL MI, anderssp_execute_external_scripts
wordt dit niet ondersteund voor SQL Managed Instance. Zie sp_execute_external_scripts.xp_cmdshell
wordt niet ondersteund. Zie xp_cmdshell.Extended stored procedures
worden niet ondersteund en dit omvatsp_addextendedproc
ensp_dropextendedproc
. Deze functionaliteit wordt niet ondersteund omdat deze zich op een afschaffingspad voor SQL Server bevindt. Zie Uitgebreide opgeslagen procedures voor meer informatie.sp_attach_db
,sp_attach_single_file_db
ensp_detach_db
worden niet ondersteund. Zie sp_attach_db, sp_attach_single_file_db en sp_detach_db.
Systeemfuncties en -variabelen
De volgende variabelen, functies en weergaven retourneren verschillende resultaten:
SERVERPROPERTY('EngineEdition')
retourneert de waarde 8. Met deze eigenschap wordt een met SQL beheerd exemplaar uniek geïdentificeerd. Zie SERVERPROPERTY.SERVERPROPERTY('InstanceName')
retourneert NULL omdat het concept van het exemplaar dat bestaat voor SQL Server niet van toepassing is op SQL Managed Instance. Zie SERVERPROPERTY('InstanceName').@@SERVERNAME
retourneert een volledige DNS-naam die kan worden verbonden,my-managed-instance.wcus17662feb9ce98.database.windows.net
bijvoorbeeld. Zie @@SERVERNAME.SYS.SERVERS
retourneert een volledige DNS-naam die kan worden verbonden, zoalsmyinstance.domain.database.windows.net
voor de eigenschappen 'naam' en 'data_source'. Zie SYS. SERVERS.@@SERVICENAME
retourneert NULL omdat het concept van de service zoals deze bestaat voor SQL Server niet van toepassing is op SQL Managed Instance. Zie @@SERVICENAME.SUSER_ID
wordt ondersteund. Het retourneert NULL als de Microsoft Entra-aanmelding niet binnenkomtsys.syslogins
. Zie SUSER_ID.SUSER_SID
wordt niet ondersteund. De verkeerde gegevens worden geretourneerd. Dit is een tijdelijk bekend probleem. Zie SUSER_SID.
Omgevingsbeperkingen
Subnet
- U kunt geen andere resources (bijvoorbeeld virtuele machines) plaatsen in het subnet waarin u uw SQL Managed Instance hebt geïmplementeerd. Implementeer deze resources met behulp van een ander subnet.
- Het subnet moet voldoende aantal beschikbare IP-adressen hebben. Het minimum is dat er ten minste 32 IP-adressen in het subnet zijn.
- Het aantal vCores en typen exemplaren dat u in een regio kunt implementeren, hebben enkele beperkingen en limieten.
- Er is een netwerkconfiguratie die moet worden toegepast op het subnet.
Virtueel netwerk
- Virtueel netwerk kan worden geïmplementeerd met resourcemodel. Klassiek model biedt geen ondersteuning voor de implementatie van een virtueel netwerk (VNet).
- Nadat een met SQL beheerd exemplaar is gemaakt, wordt het verplaatsen van het beheerde SQL-exemplaar of VNet naar een andere resourcegroep of een ander abonnement niet ondersteund.
- Voor sql beheerde exemplaren die worden gehost in virtuele clusters die vóór 22 september 2020 worden gemaakt, wordt globale VNet-peering niet ondersteund. U kunt verbinding maken met deze resources via ExpressRoute of VNet-naar-VNet via VNet-gateways.
Failovergroepen
Systeemdatabases worden niet gerepliceerd naar het secundaire exemplaar in een failovergroep. Daarom zijn scenario's die afhankelijk zijn van objecten van de systeemdatabases onmogelijk op het secundaire exemplaar, tenzij de objecten handmatig op de secundaire instantie worden gemaakt.
tempdb
- De maximale bestandsgrootte van de
tempdb
systeemdatabase mag niet groter zijn dan 24 GB per kern op een laag Algemeen gebruik. De maximaletempdb
grootte op een Bedrijfskritiek-laag wordt beperkt door de opslaggrootte van SQL Managed Instance.tempdb
de grootte van het logboekbestand is beperkt tot 120 GB op de laag Algemeen gebruik. Sommige query's kunnen een fout retourneren als ze meer dan 24 GB per kerntempdb
nodig hebben of als ze meer dan 120 GB aan logboekgegevens produceren. tempdb
wordt altijd gesplitst in 12 gegevensbestanden: 1 primaire, ook wel genoemdmaster
, gegevensbestand en 11 niet-primaire gegevensbestanden. De bestandsstructuur kan niet worden gewijzigd en nieuwe bestanden kunnen niet worden toegevoegd aantempdb
.- Voor geheugen geoptimaliseerde TempDB-metagegevens, een nieuwe sql Server 2019-functie in-memory database, wordt niet ondersteund.
- Objecten die in de
model
database zijn gemaakt, kunnen niet automatisch worden gemaakttempdb
na opnieuw opstarten of een failover, omdattempdb
de oorspronkelijke objectlijst niet wordt opgehaald uit demodel
database. U moet na elke herstart of failover handmatig objectentempdb
maken.
msdb
De volgende schema's in de msdb
systeemdatabase in SQL Managed Instance moeten eigendom zijn van hun respectieve vooraf gedefinieerde rollen:
- Algemene rollen
- TargetServersRole
- Vaste databaserollen
- SQLAgentUserRole
- SQLAgentReaderRole
- SQLAgentOperatorRole
- DatabaseMail-rollen:
- DatabaseMailUserRole
- Integratieservicesrollen:
- db_ssisadmin
- db_ssisltduser
- db_ssisoperator
Belangrijk
Het wijzigen van de vooraf gedefinieerde rolnamen, schemanamen en schema-eigenaren door klanten heeft invloed op de normale werking van de service. Wijzigingen die in deze worden aangebracht, worden teruggezet naar de vooraf gedefinieerde waarden zodra deze zijn gedetecteerd, of op de volgende service-update op het laatst om de normale servicebewerking te garanderen.
Foutlogboeken
SQL Managed Instance plaatst uitgebreide informatie in foutenlogboeken. Er zijn veel interne systeemgebeurtenissen die zijn vastgelegd in het foutenlogboek. Gebruik een aangepaste procedure om foutenlogboeken te lezen waarmee enkele irrelevante vermeldingen worden gefilterd. Zie SQL Managed Instance: sp_readmierrorlog of sql Managed Instance-extensie (preview) voor Azure Data Studio voor meer informatie.
Het wijzigen van het aantal bewaarde foutenlogboeken wordt niet ondersteund.