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.

Diagram showing the easy migration from SQL Server.

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:

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:

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, TAPEen back-upapparaten worden niet ondersteund.
  • De meeste algemene WITH opties worden ondersteund.
    • COPY_ONLY is verplicht.
    • FILE_SNAPSHOT en CREDENTIAL worden niet ondersteund.
    • Tapeopties: REWIND, NOREWIND, UNLOADen NOUNLOAD worden niet ondersteund.
    • Logboekspecifieke opties: NORECOVERY, STANDBYen NO_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 naar URL.
    • 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.

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 wordt FILE/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:

Aanmeldingen en gebruikers

  • SQL-aanmeldingen die zijn gemaakt met behulp van FROM CERTIFICATE, FROM ASYMMETRIC KEYen FROM 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 opgeeft FROM 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 de master 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 als SQL_USER in sys.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.
  • Alleen de principalaanmelding op serverniveau, die wordt gemaakt door het inrichtingsproces van SQL Managed Instance, leden van de serverfuncties, zoals securityadmin of sysadmin, of andere aanmeldingen met ALTER ANY LOGIN-machtiging op serverniveau kunnen Microsoft Entra-server-principals (aanmeldingen) maken in de master 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:

    1. 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.
    2. 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.
    3. 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.
    4. 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.

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

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 en SET 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 zijn FILESTREAM .
  • 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 DATABASECREATE 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. Verwijderen FILENAME 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:

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 het BULK INSERT importeren van bestanden uit Azure Blob Storage. Zie BULK INSERT.
  • DATASOURCE is vereist in de OPENROWSET 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:

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 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 INSERTOPENROWSET als alternatief voor het importeren van bestanden of laad bestanden met behulp van een serverloze SQL-pool in Azure Synapse Analytics.

Operations:

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_VALUEOPENJSON. 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:

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, DIFFERENTIALSTATS, REPLACEenzovoort, 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-bestand AUTO_CLOSE=ON.
  • RECOVERY FULL als een database in het BAK-bestand een model heeft SIMPLE of BULK_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 en RESTRICTED_USER opties worden geconverteerd naar MULTI_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-up WITH 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 (bijvoorbeeld FILESTREAMFILETABLE 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 gebruiken CREATE ROUTE met ADDRESS een andere naam dan LOCAL of dns-naam van een ander met SQL beheerd exemplaar. Poort is altijd 4022.
  • ALTER ROUTE: U kunt niet gebruiken ALTER ROUTE met ADDRESS een andere naam dan LOCAL of dns-naam van een ander met SQL beheerd exemplaar. Poort is altijd 4022.

Transportbeveiliging wordt ondersteund, dialoogvensterbeveiliging is niet:

  • CREATE REMOTE SERVICE BINDINGwordt 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, anders sp_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 omvat sp_addextendedproc en sp_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_dben sp_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.netbijvoorbeeld. Zie @@SERVERNAME.
  • SYS.SERVERS retourneert een volledige DNS-naam die kan worden verbonden, zoals myinstance.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 binnenkomt sys.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 maximale tempdb 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 kern tempdb nodig hebben of als ze meer dan 120 GB aan logboekgegevens produceren.
  • tempdb wordt altijd gesplitst in 12 gegevensbestanden: 1 primaire, ook wel genoemd master, gegevensbestand en 11 niet-primaire gegevensbestanden. De bestandsstructuur kan niet worden gewijzigd en nieuwe bestanden kunnen niet worden toegevoegd aan tempdb.
  • 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 gemaakt tempdb na opnieuw opstarten of een failover, omdat tempdb de oorspronkelijke objectlijst niet wordt opgehaald uit de model database. U moet na elke herstart of failover handmatig objecten tempdb maken.

msdb

De volgende schema's in de msdb systeemdatabase in SQL Managed Instance moeten eigendom zijn van hun respectieve vooraf gedefinieerde rollen:

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.