T-SQL verschillen tussen SQL Server & 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.
SQL Managed Instance biedt hoge compatibiliteit met de SQL Server-database-engine en de meeste functies worden ondersteund in een SQL Managed Instance.

Er zijn enkele PaaS-beperkingen die zijn geïntroduceerd in SQL Managed Instance en enkele gedragswijzigingen in vergelijking met SQL Server. De verschillen zijn onderverdeeld in de volgende categorieën:
- Beschikbaarheid omvat de verschillen in Always On-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, collatie,compatibiliteitsniveaus, databasespiegeling, databaseopties, SQL Server Agenten tabelopties.
- Functies omvatten BULK INSERT/OPENROWSET, CLR, DBCC,gedistribueerde transacties ,uitgebreide gebeurtenissen ,externe bibliotheken ,filestream en FileTable,volledige tekst Semantic Search, gekoppelde servers, PolyBase, Replicatie, RESTORE, Service Broker, opgeslagen procedures, functies en triggers.
- Omgevingsinstellingen, zoals VNets en subnetconfiguraties.
De meeste van deze functies zijn architectuurbeperkingen en vertegenwoordigen servicefuncties.
Tijdelijke bekende problemen die worden ontdekt in SQL Managed Instance en in de toekomst worden opgelost, worden beschreven in Wat is er nieuw?.
Beschikbaarheid
Always On-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 NEERZETTEN
- De SET HADR-component van de ALTER DATABASE-instructie
Backup
SQL Managed Instance automatische back-ups heeft, zodat gebruikers volledige databaseback-ups COPY_ONLY kunnen maken. Differentiële back-ups, logboek- en bestandsmomentopnamen worden niet ondersteund.
- Met een SQL Managed Instance kunt u alleen een back-up maken van een exemplaardatabase naar een Azure Blob Storage-account:
- Alleen
BACKUP TO URLwordt ondersteund. FILE,TAPEen back-upapparaten worden niet ondersteund.
- Alleen
- De meeste algemene
WITHopties worden ondersteund.COPY_ONLYis verplicht.FILE_SNAPSHOTwordt niet ondersteund.- Tapeopties:
REWINDNOREWIND, , en wordenUNLOADnietNOUNLOADondersteund. - Logboekspecifieke opties:
NORECOVERYSTANDBY, en worden nietNO_TRUNCATEondersteund.
Beperkingen:
Met een SQL Managed Instance kunt u een back-up van een exemplaardatabase maken naar een back-up met maximaal 32 streepjes, wat voldoende is voor databases tot 4 TB als er back-upcompressie wordt gebruikt.
U kunt niet uitvoeren op een database die is versleuteld met
BACKUP DATABASE ... WITH COPY_ONLYdoor de service beheerde Transparent Data Encryption (TDE). Door de service beheerde TDE dwingt u 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 automatische back-ups en herstel naar een bepaald tijdstip of gebruik in plaats daarvan door de klant beheerde TDE (BYOK). U kunt versleuteling ook uitschakelen voor de database.Systeemeigen back-ups die worden gemaakt op een beheerd exemplaar, kunnen niet worden hersteld naar SQL Server. Dit komt doordat Managed Instance een hogere interne databaseversie heeft vergeleken met een versie van SQL Server.
Als ueen back-up wilt maken van een database naar of van een Azure-opslag, moet u een SAS (Shared Access Signature) maken, een URI die u beperkte toegangsrechten verleent tot Azure Storage-resources. Meer informatie over deze informatie. Het gebruik van toegangssleutels voor deze scenario's wordt niet ondersteund.
De maximale grootte van de back-upstree met behulp van de opdracht
BACKUPin SQL Managed Instance is 195 GB. Dit is de maximale blobgrootte. Verhoog het aantal striping in de back-upopdracht om de grootte van de afzonderlijke stripe te verminderen en binnen deze limiet te blijven.Tip
Als u een back-up van een database wilt maken vanuit een SQL Server in een on-premises omgeving of op een virtuele machine, kunt u het volgende doen:
- Back-up naar
DISKin plaats van een back-up te maken naarURL. - Upload back-upbestanden naar Blob Storage.
- Herstellen naar SQL beheerd exemplaar.
De opdracht in SQL Managed Instance ondersteunt grotere blobgrootten in de back-upbestanden, omdat er een ander blobtype wordt gebruikt voor de opslag van de geüploade
Restoreback-upbestanden.- Back-up naar
Zie BACKUP voor meer informatie over back-ups SQL T-SQL back-up.
Beveiliging
Controleren
De belangrijkste verschillen tussen controles in Microsoft Azure SQL en in SQL Server zijn:
- Met SQL Managed Instance werkt de controle op serverniveau. De
.xellogboekbestanden worden opgeslagen in Azure Blob Storage. - Met Azure SQL Database werkt de controle op databaseniveau. De
.xellogboekbestanden worden opgeslagen in Azure Blob Storage. - Met SQL Server, on-premises of virtuele machines werkt de controle op serverniveau. Gebeurtenissen worden opgeslagen in het bestandssysteem of Windows gebeurtenislogboeken.
XEvent-controle in SQL Managed Instance ondersteunt Azure Blob Storage-doelen. Bestands- 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 opgegeven die u kunt gebruiken om de URL op te geven van de
TO URLAzure Blob Storage-container waarin.xelde bestanden worden geplaatst. - De
TO FILEsyntaxis wordt niet ondersteund omdat SQL managed instance geen toegang heeft tot Windows-bestands shares.
Zie voor meer informatie:
Certificaten
SQL Managed Instance geen toegang heeft tot bestands shares en Windows mappen, gelden de volgende beperkingen:
- Het
CREATE FROM/BACKUP TObestand wordt niet ondersteund voor certificaten. - Het
CREATE/BACKUPcertificaat vanFILE/ASSEMBLYwordt niet ondersteund. Persoonlijke sleutelbestanden kunnen niet worden gebruikt.
Zie CERTIFICAAT MAKEN en BACK-UPCERTIFICAAT.
Tijdelijke oplossing: in plaats van een back-up van het certificaat te maken en de back-up te herstellen, moet u de binaire inhoud van het certificaat en de persoonlijke sleutel op te halen, opslaan als SQL-bestand en maken op basis van binair:
CREATE CERTIFICATE
FROM BINARY = asn_encoded_certificate
WITH PRIVATE KEY (<private_key_options>)
Referentie
Alleen Azure Key Vault en SHARED ACCESS SIGNATURE identiteiten worden ondersteund. Windows worden niet ondersteund.
Zie CREATE CREDENTIAL en ALTER CREDENTIAL.
Cryptografische providers
SQL Managed Instance geen toegang heeft tot bestanden, zodat er geen cryptografische providers kunnen worden gemaakt:
CREATE CRYPTOGRAPHIC PROVIDERwordt niet ondersteund. Zie CREATE CRYPTOGRAPHIC PROVIDER (CRYPTOGRAFISCHE PROVIDER MAKEN).ALTER CRYPTOGRAPHIC PROVIDERwordt niet ondersteund. Zie ALTER CRYPTOGRAPHIC PROVIDER (CRYPTOGRAFISCHE PROVIDER WIJZIGEN).
Aanmeldingen en gebruikers
SQL aanmeldingen die zijn gemaakt met
FROM CERTIFICATEbehulp van , en wordenFROM ASYMMETRIC KEYFROM SIDondersteund. Zie CREATE LOGIN.Azure Active Directory (Azure AD) server-principals (aanmeldingen) die zijn gemaakt met de syntaxis CREATE LOGIN of de syntaxis CREATE USER FROM LOGIN [Azure AD Login] worden ondersteund. Deze aanmeldingen worden gemaakt op serverniveau.
SQL Managed Instance ondersteunt Azure AD-database-principals met de syntaxis
CREATE USER [AADUser/AAD group] FROM EXTERNAL PROVIDER. Deze functie wordt ook wel azure AD-ingesloten databasegebruikers genoemd.Windows aanmeldingen die zijn gemaakt met de
CREATE LOGIN ... FROM WINDOWSsyntaxis, worden niet ondersteund. Gebruik Azure Active Directory aanmeldingen en gebruikers.De Azure AD-beheerder voor het exemplaar heeft onbeperkte beheerdersbevoegdheden.
Gebruikers op Azure AD-databaseniveau die geen beheerder zijn, kunnen worden gemaakt met behulp van de
CREATE USER ... FROM EXTERNAL PROVIDERsyntaxis. Zie CREATE USER ... VAN EXTERNE PROVIDER.Azure AD-server-principals (aanmeldingen) ondersteunen SQL functies binnen één SQL beheerd exemplaar. Functies waarvoor interactie tussen exemplaren is vereist, ongeacht of ze zich binnen dezelfde Azure AD-tenant of verschillende tenants, worden niet ondersteund voor Azure AD-gebruikers. Voorbeelden van dergelijke functies zijn:
- SQL transactionele replicatie.
- Server koppelen.
Het instellen van een Azure AD-aanmelding die als database-eigenaar aan een Azure AD-groep is toegevoegd, wordt niet ondersteund. Een lid van de Azure AD-groep kan een database-eigenaar zijn, zelfs als de aanmelding niet in de database is gemaakt.
Imitatie van Principals op Azure AD-serverniveau met behulp van andere Azure AD-principals wordt ondersteund, zoals de EXECUTE AS-component. EXECUTE AS-beperkingen zijn:
EXECUTE AS USER wordt niet ondersteund voor Azure AD-gebruikers wanneer de naam verschilt van de aanmeldingsnaam. Een voorbeeld hiervan is wanneer de gebruiker wordt gemaakt via de syntaxis CREATE USER [myAadUser] FROM LOGIN [] en imitatie wordt geprobeerd via john@contoso.com EXEC AS USER = myAadUser. Wanneer u een GEBRUIKER maakt op basis van een Azure AD-server-principal (aanmelding), geeft u de user_name op als dezelfde login_name van LOGIN.
Alleen de SQL Server -principals (aanmeldingen) die deel uitmaken van de rol, kunnen de volgende bewerkingen uitvoeren die zijn gericht op
sysadminAzure AD-principals:- EXECUTE AS USER
- EXECUTE AS LOGIN
Als u een gebruiker wilt imiteren met de EXECUTE AS-instructie, moet de gebruiker rechtstreeks aan de Azure AD-server-principal (aanmelding) worden toe te staan. Gebruikers die lid zijn van Azure AD-groepen die zijn ingesteld op Azure AD-server-principals, kunnen niet effectief worden imiteerd met de EXECUTE AS-instructie, zelfs niet als de aanroeper over de imitatiemachtigingen beschikt voor de opgegeven gebruikersnaam.
Database exporteren/importeren met bacpac-bestanden wordt ondersteund voor Azure AD-gebruikers in SQL Managed Instance met behulp van SSMS V18.4of hoger of SQLPackage.exe.
- De volgende configuraties worden ondersteund met behulp van het BACPAC-bestand van de database:
- Een database exporteren/importeren tussen verschillende beheerexeports binnen hetzelfde Azure AD-domein.
- Exporteer een database vanuit SQL managed instance en importeer deze SQL Database binnen hetzelfde Azure AD-domein.
- Exporteer een database van SQL Database en importeer deze naar SQL Managed Instance binnen hetzelfde Azure AD-domein.
- Exporteer een database vanuit SQL Managed Instance en importeer naar SQL Server (versie 2012 of hoger).
- In deze configuratie worden alle Azure AD-gebruikers gemaakt als SQL Server database-principals (gebruikers) zonder aanmeldingen. Het type gebruikers wordt vermeld als
SQLen is zichtbaar zoals inSQL_USERsys.database_principals). Hun machtigingen en rollen blijven in de SQL Server metagegevens van de database en kunnen worden gebruikt voor imitatie. Ze kunnen echter niet worden gebruikt voor toegang tot en aanmelding bij de SQL Server met hun referenties.
- In deze configuratie worden alle Azure AD-gebruikers gemaakt als SQL Server database-principals (gebruikers) zonder aanmeldingen. Het type gebruikers wordt vermeld als
- De volgende configuraties worden ondersteund met behulp van het BACPAC-bestand van de database:
Alleen de principal-aanmelding op serverniveau, die is gemaakt door het inrichtingsproces van SQL Managed Instance, leden van de serverrollen, zoals of , of andere aanmeldingen met alter any login-machtiging op serverniveau, kunnen
securityadminsysadminAzure AD-server-principals (aanmeldingen) maken in de hoofddatabase voor SQL Managed Instance.Als de aanmelding een SQL-principal is, kunnen alleen aanmeldingen die deel uitmaken van de rol
sysadminde opdracht create gebruiken om aanmeldingen te maken voor een Azure AD-account.De Azure AD-aanmelding moet lid zijn van een Azure AD binnen dezelfde map die wordt gebruikt voor Azure SQL Managed Instance.
Azure AD-server-principals (aanmeldingen) zijn zichtbaar in Objectverkenner vanaf SQL Server Management Studio 18.0 preview 5.
Een server-principal met sysadmin-toegangsniveau wordt automatisch gemaakt voor het Azure AD-beheerdersaccount zodra dit is ingeschakeld op een exemplaar.
Tijdens de verificatie wordt de volgende reeks toegepast om de verificatie-principal op te lossen:
- Als het Azure AD-account bestaat als rechtstreeks is toegekend aan de Azure AD-server-principal (aanmelding), die aanwezig is in sys.server_principals als het type 'E', verleent u toegang en pas u machtigingen van de Azure AD-server-principal toe (aanmelding).
- Als het Azure AD-account lid is van een Azure AD-groep die is toegekend aan de Azure AD-server-principal (aanmelding), die aanwezig is in sys.server_principals als het type 'X', verleent u toegang en pas u machtigingen toe voor de aanmelding van de Azure AD-groep.
- Als het Azure AD-account bestaat als rechtstreeks aan een Azure AD-gebruiker in een database, die in sys.database_principals aanwezig is als het type 'E', verleent u toegang en pas u machtigingen van de Azure AD-databasegebruiker toe.
- Als het Azure AD-account lid is van een Azure AD-groep die is toegekend aan een Azure AD-gebruiker in een database, die in sys.database_principals aanwezig is als het type 'X', verleent u toegang en pas u machtigingen van de Azure AD-groepsgebruiker toe.
Servicesleutel en servicemastersleutel
- Back-up van hoofdsleutels wordt niet ondersteund (beheerd door SQL Database service).
- Herstellen van de hoofdsleutel wordt niet ondersteund (beheerd door SQL Database service).
- Back-up van de servicemastersleutel wordt niet ondersteund (beheerd door SQL Database service).
- Herstellen van de servicemastersleutel wordt niet ondersteund (beheerd door SQL Database service).
Configuratie
Buffergroepextensie
- Buffergroepextensie wordt niet ondersteund.
ALTER SERVER CONFIGURATION SET BUFFER POOL EXTENSIONwordt niet ondersteund. Zie ALTER SERVER CONFIGURATION (SERVERCONFIGURATIE WIJZIGEN).
Sortering
De standaardseratie van exemplaren is SQL_Latin1_General_CP1_CI_AS en kan worden opgegeven als een parameter voor het maken. Zie Collations (Collations).
Compatibiliteitsniveaus
- Ondersteunde compatibiliteitsniveaus zijn 100, 110, 120, 130, 140 en 150.
- Compatibiliteitsniveaus lager dan 100 worden niet ondersteund.
- Het standaardcompatibiliteitsniveau voor nieuwe databases is 140. Voor herstelde databases blijft het compatibiliteitsniveau ongewijzigd als het 100 en hoger is.
Zie ALTER DATABASE Compatibility Level (COMPATIBILITEITsniveau ALTER DATABASE).
Databasespiegeling
Databasespiegeling wordt niet ondersteund.
ALTER DATABASE SET PARTNER-SET WITNESSen -opties worden niet ondersteund.CREATE ENDPOINT … FOR DATABASE_MIRRORINGwordt niet ondersteund.
Zie ALTER DATABASE SET PARTNER en SET WITNESS en CREATE ENDPOINT ... voor meer informatie. VOOR DATABASE_MIRRORING.
Databaseopties
- Meerdere logboekbestanden worden niet ondersteund.
- Objecten in het geheugen worden niet ondersteund in de Algemeen servicelaag.
- Er is een limiet van 280 bestanden per Algemeen-instantie, wat een maximum van 280 bestanden per database impliceert. Zowel gegevens als logboekbestanden in Algemeen laag worden meegetelde voor deze limiet. De Bedrijfskritiek ondersteunt 32.767 bestanden per database.
- De database mag geen bestandsgroepen bevatten die filestream-gegevens bevatten. Herstellen mislukt als .bak gegevens
FILESTREAMbevat. - Elk bestand wordt in Azure Blob Storage geplaatst. I/O 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.
De
CONTAINMENToptie wordt niet ondersteund.WITH-opties worden niet ondersteund.Tip
Als tijdelijke oplossing gebruikt u na om databaseopties in te stellen om bestanden toe te voegen of
ALTER DATABASECREATE DATABASEom containment in te stellen.De
FOR ATTACHoptie wordt niet ondersteund.De
AS SNAPSHOT OFoptie 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. VerwijderFILENAMEuit het script omdat SQL managed instance de bestanden automatisch plaatst. - Een bestandsnaam kan niet worden gewijzigd met behulp van de
ALTER DATABASEinstructie .
De volgende opties zijn standaard ingesteld en kunnen niet worden gewijzigd:
MULTI_USERENABLE_BROKERAUTO_CLOSE OFF
De volgende opties kunnen niet worden gewijzigd:
AUTO_CLOSEAUTOMATIC_TUNING(CREATE_INDEX=ON|OFF)AUTOMATIC_TUNING(DROP_INDEX=ON|OFF)DISABLE_BROKEREMERGENCYENABLE_BROKERFILESTREAMHADRNEW_BROKEROFFLINEPAGE_VERIFYPARTNERREAD_ONLYRECOVERY BULK_LOGGEDRECOVERY_SIMPLEREMOTE_DATA_ARCHIVERESTRICTED_USERSINGLE_USERWITNESS
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 gedaan. Zie de sectie Opmerkingen voor meer informatie over gerelateerde foutberichten.
Zie ALTER DATABASE voor meer informatie.
SQL Server Agent
- Het in- en uitschakelen 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 agentinstellingen zijn alleen-lezen. De procedure
sp_set_agent_propertieswordt niet ondersteund in SQL Managed Instance. - Taken
- T-SQL taakstappen worden ondersteund.
- De volgende replicatietaken worden ondersteund:
- Lezer van transactielogboek
- Momentopname
- Distributeur
- SSIS-taakstappen worden ondersteund.
- Andere typen taakstappen worden momenteel niet ondersteund:
- De stap replicatie-taak samenvoegen wordt niet ondersteund.
- Wachtrijlezer wordt niet ondersteund.
- Opdrachtshell wordt nog niet ondersteund.
- SQL Managed Instance heeft geen toegang tot externe resources, bijvoorbeeld netwerk shares via Robocopy.
- SQL Server Analysis Services wordt niet ondersteund.
- Meldingen worden gedeeltelijk ondersteund.
- E-mailmeldingen worden ondersteund, maar hiervoor moet u wel een Database Mail configureren. SQL Server-agent kan slechts één Database Mail gebruiken en moet worden
AzureManagedInstance_dbmail_profileaangeroepen.- Pager wordt niet ondersteund.
- NetSend wordt niet ondersteund.
- Waarschuwingen worden nog niet ondersteund.
- Proxies worden niet ondersteund.
- EventLog wordt niet ondersteund.
- De gebruiker moet rechtstreeks worden ingesteld op de Azure AD-server-principal (aanmelding) om taken voor de agent te maken, te wijzigen SQL uit te voeren. Gebruikers die niet rechtstreeks zijn verbonden, bijvoorbeeld gebruikers die deel uitmaken van een Azure AD-groep die de rechten heeft om SQL Agent-taken te maken, te wijzigen of uit te voeren, kunnen deze acties niet effectief uitvoeren. Dit komt door de beperkingen van Managed Instance-imitatie en EXECUTE AS.
- De functie Beheer van meerdere servers voor master-/doeltaken (MSX/TSX) wordt niet ondersteund.
Zie SQL Server Agent voor meer informatie over SQL Server Agent.
Tables
De volgende tabeltypen worden niet ondersteund:
- FILESTREAM
- BESTANDSTABEL
- EXTERNAL TABLE (Polybase)
- MEMORY_OPTIMIZED (niet alleen ondersteund in Algemeen laag)
Zie CREATE TABLE en ALTER TABLE voor meer informatie over het maken en wijzigen van tabellen.
Functionaliteiten
Bulksgewijs invoegen/OPENROWSET
SQL Managed Instance heeft geen toegang tot bestands shares en Windows mappen, dus de bestanden moeten worden geïmporteerd uit Azure Blob Storage:
DATASOURCEis vereist in deBULK INSERTopdracht terwijl u bestanden importeert uit Azure Blob Storage. Zie BULK INSERT.DATASOURCEis vereist in deOPENROWSETfunctie wanneer u de inhoud van een bestand uit Azure Blob Storage leest. Zie OPENROWSET.OPENROWSETkan worden gebruikt om gegevens te lezen uit Azure SQL Database, Azure SQL Managed Instance of SQL Server exemplaren. Andere bronnen, zoals Oracle-databases of Excel,worden niet ondersteund.
CLR
Een SQL Managed Instance heeft geen toegang tot bestands shares en Windows mappen. Daarom gelden de volgende beperkingen:
- Alleen
CREATE ASSEMBLY FROM BINARYwordt ondersteund. Zie ASSEMBLY MAKEN VAN BINAIRE . CREATE ASSEMBLY FROM FILEwordt niet ondersteund. Zie ASSEMBLY MAKEN VAN BESTAND.ALTER ASSEMBLYkan niet verwijzen naar bestanden. Zie ASSEMBLY WIJZIGEN.
Database Mail (db_mail)
sp_send_dbmailkan geen bijlagen verzenden met @file_attachments de parameter . Lokale bestandssysteem en externe shares of Azure Blob Storage zijn niet toegankelijk via deze procedure.- Zie de bekende problemen met betrekking tot
@queryparameters 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 globale traceervlaggen ondersteund. Sessieniveau
Trace flagswordt niet ondersteund. Zie Trace flags (Traceervlaggen). - DBCC TRACEOFF en DBCC TRACEON werken met het beperkte aantal globale traceervlaggen.
- DBCC CHECKDB met opties REPAIR_ALLOW_DATA_LOSS, REPAIR_FAST en REPAIR_REBUILD kan niet worden gebruikt omdat de database niet kan worden ingesteld in de modus - zie ALTER DATABASE differences (VERSCHILLEN in
SINGLE_USERDATABASE WIJZIGEN). Potentiële beschadiging van de database wordt afgehandeld door het ondersteuning voor Azure team. Neem contact ondersteuning voor Azure als er een indicatie is dat de database is beschadiging.
Gedistribueerde transacties
Gedeeltelijke ondersteuning voor gedistribueerde transacties is momenteel beschikbaar als openbare preview. Gedistribueerde transacties worden ondersteund onder de volgende voorwaarden (aan alle transacties moet worden voldaan):
- alle transactiedeelnemers zijn Azure SQL Managed Instances die deel uitmaken van de serververtrouwensgroep.
- transacties worden gestart vanuit .NET (klasse TransactionScope) of Transact-SQL.
Azure SQL Managed Instance biedt momenteel geen ondersteuning voor andere scenario's die regelmatig worden ondersteund door MSDTC on-premises of in Azure Virtual Machines.
Uitgebreide gebeurtenissen
Sommige Windows-specifieke doelen voor uitgebreide evenementen (XEvents) worden niet ondersteund:
- Het
etw_classic_syncdoel wordt niet ondersteund. Sla.xelbestanden op in Azure Blob Storage. Zie etw_classic_sync doel. - Het
event_filedoel wordt niet ondersteund. Sla.xelbestanden op in Azure Blob Storage. 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 mag geen bestandsgroepen met gegevens
FILESTREAMbevatten. FILETABLEwordt niet ondersteund.- Tabellen kunnen geen typen
FILESTREAMhebben. - De volgende functies worden niet ondersteund:
GetPathLocator()GET_FILESTREAM_TRANSACTION_CONTEXT()PathName()GetFileNamespacePat)FileTableRootPath()
Zie FILESTREAM en FileTables voor meer informatie.
Semantische zoekopdracht in volledige tekst
Semantic Search 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 instanties.
- Gedistribueerde beschrijfbare transacties zijn alleen mogelijk tussen beheerde exemplaren. Zie Gedistribueerde transacties voor meer informatie. De MS DTC wordt echter niet ondersteund.
- Doelen die niet worden ondersteund, zijn bestanden, Analysis Services en andere RDBMS. Probeer een native CSV-import uit Azure Blob Storage te gebruiken met of als alternatief voor het importeren van bestanden, of om bestanden te laden met behulp van een
BULK INSERTOPENROWSETserverloze SQL-pool in Azure Synapse Analytics.
Bewerkingen:
- Schrijftransacties tussen exemplaren worden alleen ondersteund voor beheerde exemplaren.
sp_dropserverwordt ondersteund voor het wegvallen van een gekoppelde server. Zie sp_dropserver.- De
OPENROWSETfunctie kan worden gebruikt om query's alleen uit te voeren op SQL Server instanties. Ze kunnen worden beheerd, on-premises of in virtuele machines. Zie OPENROWSET. - De
OPENDATASOURCEfunctie kan worden gebruikt om query's alleen uit te voeren op SQL Server instanties. Ze kunnen worden beheerd, on-premises of in virtuele machines. Alleen deSQLNCLIwaarden , en worden ondersteund alsSQLNCLI11SQLOLEDBprovider. Een voorbeeld isSELECT * FROM OPENDATASOURCE('SQLNCLI', '...').AdventureWorks2012.HumanResources.Employee. Zie OPENDATASOURCE. - Gekoppelde servers kunnen niet worden gebruikt voor het lezen van bestanden (Excel, CSV) van de netwerk shares. 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. Volg deze aanvragen op SQL feedbackitem voor beheerde exemplaren|
Gekoppelde servers in Azure SQL Managed Instance ondersteunen SQL verificatie en AAD verificatie.
PolyBase
Werk aan het inschakelen van Polybase-ondersteuning in SQL Managed Instance wordt uitgevoerd. In de tussentijd kunt u als tijdelijke oplossing gekoppelde servers gebruiken voor een serverloze SQL-pool in Synapse Analytics of SQL Server om gegevens op te vragen uit bestanden die zijn opgeslagen in Azure Data Lake of Azure Storage.
Zie PolyBase voor algemene informatie over PolyBase.
Replicatie
- Momentopnamen en replicatietypen in twee richtingen worden ondersteund. Samenvoegreplicatie, peer-to-peerreplicatie en updateerbare abonnementen worden niet ondersteund.
- Transactionele replicatie is beschikbaar voor openbare preview op 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 zich zowel in de cloud als on-premises hebben.
- SQL Managed Instance kan communiceren met de recente versies van SQL Server. Zie de matrix met ondersteunde versies 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 Distributor en SQL Server abonnee
RESTORE-instructie
- Ondersteunde syntaxis:
RESTORE DATABASERESTORE FILELISTONLY ONLYRESTORE HEADER ONLYRESTORE LABELONLY ONLYRESTORE VERIFYONLY ONLY
- Niet-ondersteunde syntaxis:
RESTORE LOG ONLYRESTORE REWINDONLY ONLY
- 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,WITHzoals ,DIFFERENTIAL,STATSREPLACEenzovoort, mislukken.ASYNC RESTORE: Het herstellen wordt voortgezet, zelfs als de clientverbinding wordt breekt. Als uw verbinding wordt verwijderd, kunt u de weergave controleren op de status van een herstelbewerking ensys.dm_operation_statusop een CREATE- en DROP-database. Zie sys.dm_operation_status.
De volgende databaseopties worden ingesteld of overschrijven en kunnen later niet meer worden gewijzigd:
NEW_BROKERals de broker niet is ingeschakeld in het .bak-bestand.ENABLE_BROKERals de broker niet is ingeschakeld in het .bak-bestand.AUTO_CLOSE=OFFals een database in het BAK-bestandAUTO_CLOSE=ONheeft.RECOVERY FULLals een database in het BAK-bestand deSIMPLEherstelmodusBULK_LOGGEDof heeft.- Er wordt een voor het geheugen geoptimaliseerde bestandsgroep toegevoegd en XTP aangeroepen als deze niet in het bronbestand van .bak staat.
- De naam van een bestaande voor geheugen geoptimaliseerde bestandsgroep wordt gewijzigd in XTP.
SINGLE_USERdeRESTRICTED_USERopties en worden geconverteerd naarMULTI_USER.
Beperkingen:
- Back-ups van de beschadigde databases kunnen worden hersteld, afhankelijk van het type beschadiging, maar geautomatiseerde back-ups worden pas gemaakt als de beschadiging is opgelost. Zorg ervoor dat u op de bron-SQL Managed Instance en gebruik
DBCC CHECKDBback-up om dit probleem teWITH CHECKSUMvoorkomen. - Het herstellen van een bestand van een database met een beperking die wordt beschreven in dit document (bijvoorbeeld of objecten) kan niet worden hersteld
.BAKFILESTREAMop SQL beheerdFILETABLEexemplaar. .BAKbestanden die meerdere back-upsets bevatten, kunnen niet worden hersteld..BAKbestanden die meerdere logboekbestanden bevatten, kunnen niet worden hersteld.- Back-ups die databases bevatten die groter zijn dan 8 TB, actieve in-memory OLTP-objecten of het aantal bestanden dat groter is dan 280 bestanden per exemplaar, kunnen niet worden hersteld op een Algemeen-exemplaar.
- Back-ups die databases bevatten die groter zijn dan 4 TB of in-memory OLTP-objecten met de totale grootte groter dan de grootte die wordt beschreven in resourcelimieten, kunnen niet worden hersteld op Bedrijfskritiek exemplaar. Zie RESTORE-instructies voor meer informatie over herstel-instructies.
Belangrijk
Dezelfde beperkingen gelden voor ingebouwde herstelbewerkingen naar een bepaald tijdstip. Een voorbeeld: Algemeen database groter dan 4 TB kan niet worden hersteld op Bedrijfskritiek exemplaar. Bedrijfskritiek database met IN-memory OLTP-bestanden of meer dan 280 bestanden kan niet worden hersteld op Algemeen exemplaar.
Service broker
Berichtuitwisseling tussen exemplaren van servicebroker wordt alleen ondersteund tussen Azure SQL Managed Instances:
CREATE ROUTE: U kunt niet gebruiken metCREATE ROUTEeen andere naam dan ofADDRESSLOCALdns-naam van een ander SQL managed instance. Poort is altijd 4022.ALTER ROUTE: U kunt niet gebruiken metALTER ROUTEeen andere naam dan ofADDRESSLOCALdns-naam van een ander SQL managed instance. Poort is altijd 4022.
Transportbeveiliging wordt ondersteund, dialoogvensterbeveiliging is niet:
CREATE REMOTE SERVICE BINDINGworden niet ondersteund.
Service Broker is standaard ingeschakeld en kan niet worden uitgeschakeld. De volgende ALTER DATABASE-opties worden niet ondersteund:
ENABLE_BROKERDISABLE_BROKER
Opgeslagen procedures, functies en triggers
NATIVE_COMPILATIONwordt niet ondersteund in de Algemeen laag.- De volgende sp_configure worden niet ondersteund:
allow polybase exportallow updatesfilestream_access_levelremote accessremote data archiveremote proc transscan for startup procs
- De volgende sp_configure worden genegeerd en hebben geen effect:
Ole Automation Procedures
sp_execute_external_scriptswordt niet ondersteund. Zie sp_execute_external_scripts.xp_cmdshellwordt niet ondersteund. Zie xp_cmdshell.Extended stored proceduresworden niet ondersteund, en dit omvatsp_addextendedprocensp_dropextendedproc. Deze functionaliteit wordt niet ondersteund omdat deze zich op een afschaffingspad voor SQL Server. Zie Uitgebreide opgeslagen procedures voor meer informatie.sp_attach_db,sp_attach_single_file_dben worden nietsp_detach_dbondersteund. Zie sp_attach_db, sp_attach_single_file_dben sp_detach_db.
Systeemfuncties en variabelen
De volgende variabelen, functies en weergaven retourneren verschillende resultaten:
SERVERPROPERTY('EngineEdition')retourneert de waarde 8. Deze eigenschap identificeert een unieke SQL Managed Instance. Zie SERVERPROPERTY.SERVERPROPERTY('InstanceName')retourneert NULL omdat het concept van het exemplaar zoals SQL Server niet van toepassing is op SQL beheerd exemplaar. Zie SERVERPROPERTY('InstanceName').@@SERVERNAMEretourneert een volledige 'verbindingsbare' DNS-naam, bijvoorbeeld my-managed-instance.wcus17662feb9ce98.database.windows.net. Zie @SERVERNAME @.SYS.SERVERSretourneert een volledige 'verbindingsbare' DNS-naam, zoals voor de eigenschappenmyinstance.domain.database.windows.net'naam' en 'data_source.' Zie SYS. SERVERS.@@SERVICENAMEretourneert NULL omdat het concept van de service zoals SQL Server niet van toepassing is op SQL beheerd exemplaar. Zie @SERVICENAME @.SUSER_IDwordt ondersteund. Deze retourneert NULL als de Azure AD-aanmelding zich niet in sys.syslogins voordeed. Zie SUSER_ID.SUSER_SIDwordt niet ondersteund. De verkeerde gegevens worden geretourneerd. Dit is een tijdelijk bekend probleem. Zie SUSER_SID.
Beperkingen van de omgeving
Subnet
- U kunt geen andere resources (bijvoorbeeld virtuele machines) in het subnet plaatsen waar u uw beheerde SQL geïmplementeerd. Implementeer deze resources met behulp van een ander subnet.
- Subnet moet voldoende beschikbare IP-adressen hebben. Minimaal moet ten minste 32 IP-adressen in het subnet zijn.
- Het aantal vCores en typen exemplaren dat u in een regio kunt implementeren, kent enkele beperkingen en beperkingen.
- Er is een netwerkconfiguratie die moet worden toegepast op het subnet.
VNET
- VNet kan worden geïmplementeerd met resourcemodel: klassiek model voor VNet wordt niet ondersteund.
- Nadat een SQL beheerd exemplaar is gemaakt, wordt het verplaatsen van het SQL Managed Instance of VNet naar een andere resourcegroep of een ander abonnement niet ondersteund.
- Voor SQL beheerde exemplaren die worden gehost in virtuele clusters die zijn gemaakt vóór 22-9-2020, wordt globale 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 uit de systeemdatabases onmogelijk op het secundaire exemplaar, tenzij de objecten handmatig op de secundaire worden gemaakt.
TEMPDB
- De maximale bestandsgrootte
tempdbvan mag niet groter zijn dan 24 GB per kern op een Algemeen laag. De maximaletempdbgrootte van een Bedrijfskritiek-laag wordt beperkt door de opslaggrootte SQL managed instance.Tempdbgrootte van logboekbestand is beperkt tot 120 GB op Algemeen laag. Sommige query's kunnen een fout retourneren als ze meer dan 24 GB per kern in nodig hebben of als ze meer dantempdb120 GB aan logboekgegevens produceren. Tempdbwordt altijd gesplitst in 12 gegevensbestanden: 1 primaire, ook wel hoofdbestanden genoemd, gegevensbestand en 11 niet-primaire gegevensbestanden. De bestandsstructuur kan niet worden gewijzigd en nieuwe bestanden kunnen niet worden toegevoegd aantempdb.- Voor geheugen geoptimaliseerde
tempdbmetagegevens,een nieuwe SQL Server 2019 in-memory database functie, wordt niet ondersteund. - Objecten die in de modeldatabase zijn gemaakt, kunnen niet automatisch worden gemaakt in na een herstart of een failover, omdat de oorspronkelijke objectlijst niet uit de
tempdbtempdbmodeldatabase wordt gehaald. U moet handmatig objecten makentempdbna elke herstart of een failover.
MSDB
De volgende MSDB-schema's in SQL Managed Instance moeten eigendom zijn van hun respectieve vooraf gedefinieerde rollen:
- Algemene rollen
- TargetServersRole
- Databaserollen opgelost
- 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. Eventuele wijzigingen die in deze wijzigingen worden aangebracht, worden terug naar de vooraf gedefinieerde waarden terugverdiend zodra ze zijn gedetecteerd, of bij de volgende service-update op zijn laatst om de normale werking van de service te garanderen.
Foutenlogboeken
SQL Managed Instance plaatst uitgebreide informatie in foutlogboeken. Er zijn veel interne systeemgebeurtenissen die worden vastgelegd in het foutenlogboek. Gebruik een aangepaste procedure om foutenlogboeken te lezen die irrelevante vermeldingen wegfilteren. Zie Managed Instance SQL - sp_readmierrorlog of SQL Managed Instance extension (preview) voor meer informatie Azure Data Studio.
Volgende stappen
- Zie Wat is SQL Managed Instance? voor meer informatie over SQL Managed Instance.
- Zie Vergelijking van functies van Azure SQL Managed Instance voor een lijst met functies en vergelijkingen.
- Zie Wat is er nieuw? voor release-updates.
- Zie Bekende problemen voor problemen, tijdelijke oplossingen en oplossingen.
- Zie Create a SQL Managed Instance (Een beheerd exemplaar maken) voor een quickstart over het maken van een SQL beheerd exemplaar.