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.

Eenvoudige migratie van SQL Server

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:

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 op de pagina met releasenotities.

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

SQL Managed Instance automatische back-ups, 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 URL wordt ondersteund.
    • FILE, TAPE en back-upapparaten worden niet ondersteund.
  • De meeste algemene opties WITH worden ondersteund.
    • COPY_ONLY is verplicht.
    • FILE_SNAPSHOT wordt niet ondersteund.
    • Tapeopties: REWIND NOREWIND , , en worden UNLOAD niet NOUNLOAD ondersteund.
    • Logboekspecifieke opties: NORECOVERY STANDBY , en worden niet NO_TRUNCATE ondersteund.

Beperkingen:

  • Met een SQL Managed Instance kunt u een back-up van een exemplaardatabase maken 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 op een database die is versleuteld met BACKUP DATABASE ... WITH COPY_ONLY door 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.

  • De maximale grootte van de back-upstree met behulp van BACKUP de opdracht in SQL Managed Instance is 195 GB, 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 DISK in plaats van een back-up te maken naar URL .
    • Upload de back-upbestanden naar Blob Storage.
    • Herstel naar SQL Managed Instance.

    De opdracht in SQL Managed Instance grotere blobgrootten in de back-upbestanden omdat er een ander blobtype wordt gebruikt voor de opslag van de geüploade Restore back-upbestanden.

Zie BACKUP voor meer informatie over back-ups met T-SQL.

Beveiliging

Controles

De belangrijkste verschillen tussen controle in Microsoft Azure SQL en in SQL Server zijn:

  • Met SQL Managed Instance werkt de controle op serverniveau. De .xel logboekbestanden worden opgeslagen in Azure Blob Storage.
  • Met Azure SQL Database werkt de controle op databaseniveau. De .xel logboekbestanden worden opgeslagen in Azure Blob Storage.
  • Met SQL Server, on-premises of virtuele machines werkt de controle op serverniveau. Gebeurtenissen worden opgeslagen in bestandssysteem- of Windows-gebeurtenislogboeken.

XEvent-controles in SQL Managed Instance ondersteuning voor 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 opgegeven die u kunt gebruiken om de URL op te geven van de TO URL Azure Blob Storage-container waarin .xel de bestanden worden geplaatst.
  • De TO FILE syntaxis wordt niet ondersteund omdat SQL Managed Instance geen toegang heeft tot Windows-bestands shares.

Zie voor meer informatie:

Certificaten

SQL Managed Instance geen toegang tot bestands shares en Windows-mappen, gelden de volgende beperkingen:

  • Het CREATE FROM / BACKUP TO bestand wordt niet ondersteund voor certificaten.
  • Het CREATE / BACKUP certificaat van FILE / ASSEMBLY wordt 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-gebruikers worden niet ondersteund.

Zie CREATE CREDENTIAL en ALTER CREDENTIAL.

Cryptografische providers

SQL Managed Instance hebt geen toegang tot bestanden, zodat er geen cryptografische providers kunnen worden gemaakt:

Aanmeldingen en gebruikers

  • SQL-aanmeldingen die zijn gemaakt met FROM CERTIFICATE behulp van , en worden FROM ASYMMETRIC KEY FROM SID ondersteund. 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 CREATE LOGIN ... FROM WINDOWS de syntaxis worden niet ondersteund. Gebruik Azure Active Directory aanmeldingen en gebruikers.

  • De Azure AD-gebruiker die het exemplaar heeft gemaakt, heeft onbeperkte beheerdersbevoegdheden.

  • Gebruikers op Azure AD-databaseniveau die geen beheerder zijn, kunnen worden gemaakt met behulp van de CREATE USER ... FROM EXTERNAL PROVIDER syntaxis. Zie CREATE USER ... VAN EXTERNE PROVIDER.

  • Azure AD-server-principals (aanmeldingen) ondersteunen SQL-functies binnen één SQL Managed Instance alleen. Functies waarvoor interactie tussen exemplaren is vereist, ongeacht of deze zich binnen dezelfde Azure AD-tenant of verschillende tenants, worden niet ondersteund voor Azure AD-gebruikers. Voorbeelden van dergelijke functies zijn:

    • Transactionele SQL-replicatie.
    • Server koppelen.
  • Het instellen van een Azure AD-aanmelding die als database-eigenaar aan een Azure AD-groep is toegevoegd, wordt niet ondersteund.

  • 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 (aanmeldingen) die deel uitmaken van de rol, kunnen de volgende bewerkingen uitvoeren die zijn gericht op sysadmin Azure 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 wijs. Gebruikers die lid zijn van Azure AD-groepen die zijn ingesteld in Azure AD-server-principals, kunnen niet effectief worden imiteren met de execute AS-instructie, zelfs niet als de aanroeper over de imitatiemachtigingen beschikt voor de opgegeven gebruikersnaam.

  • Database exporteren/importeren met behulp van 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 een bacpac-databasebestand:
      • Een database exporteren/importeren tussen verschillende beheerexeports binnen hetzelfde Azure AD-domein.
      • Exporteer een database vanuit SQL Managed Instance importeren naar SQL Database binnen hetzelfde Azure AD-domein.
      • Exporteer een database vanuit SQL Database importeren naar SQL Managed Instance binnen hetzelfde Azure AD-domein.
      • Exporteer een database SQL Managed Instance importeren 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 SQL en is zichtbaar zoals in SQL_USER sys.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 hun referenties.
  • Alleen de principal-aanmelding op serverniveau, die is gemaakt tijdens het inrichtingsproces van SQL Managed Instance, leden van de serverrollen, zoals of , of andere aanmeldingen met de machtiging ALTER ANY LOGIN op serverniveau, kunnen securityadmin sysadmin Azure 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 sysadmin de 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 directory 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.

  • Overlappende Azure AD-server-principals (aanmeldingen) met een Azure AD-beheerdersaccount zijn toegestaan. Azure AD-server-principals (aanmeldingen) hebben voorrang op de Azure AD-beheerder wanneer u de principal omgaat en machtigingen op de SQL Managed Instance.

  • Tijdens de verificatie wordt de volgende reeks toegepast om de verificatie-principal op te lossen:

    1. Als het Azure AD-account bestaat als rechtstreeks aan de Azure AD-server-principal (aanmelding), die aanwezig is in sys.server_principals als type 'E', verleent u toegang en pas u machtigingen toe van de Azure AD-server-principal (aanmelding).
    2. Als het Azure AD-account lid is van een Azure AD-groep die is toegeschreven aan de Azure AD-server-principal (aanmelding), die in sys.server_principals aanwezig is als het type 'X', verleent u toegang en pas u machtigingen toe voor de aanmelding van de Azure AD-groep.
    3. Als het Azure AD-account een speciale, door de portal geconfigureerde Azure AD-beheerder is voor SQL Managed Instance, die niet bestaat in SQL Managed Instance-systeemweergaven, past u speciale vaste machtigingen van de Azure AD-beheerder toe voor SQL Managed Instance (verouderde modus).
    4. Als het Azure AD-account bestaat als rechtstreeks aan een Azure AD-gebruiker in een database, die aanwezig is in sys.database_principals als type 'E', verleent u toegang en pas u machtigingen van de Azure AD-databasegebruiker toe.
    5. Als het Azure AD-account lid is van een Azure AD-groep die is toegeschreven 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 toe voor de aanmelding van de Azure AD-groep.
    6. Als er een Azure AD-aanmelding is die is toegeschreven aan een Azure AD-gebruikersaccount of een Azure AD-groepsaccount, dat wordt opgelost voor de gebruiker die zich authenticeert, worden alle machtigingen van deze Azure AD-aanmelding toegepast.

Servicesleutel en servicemastersleutel

Configuratie

Buffergroepextensie

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 WITNESS en -opties worden niet ondersteund.
  • CREATE ENDPOINT … FOR DATABASE_MIRRORING wordt niet ondersteund.

Zie ALTER DATABASE SET PARTNER and SET WITNESS and CREATE ENDPOINT ... (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 exemplaar, 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 FILESTREAM bevat.
  • 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 CONTAINMENT optie 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 DATABASE CREATE DATABASE om containment 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. Verwijder 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.

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 back-up van de database 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.
  • Taakplanningstrigger 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.
  • 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 hebt 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_profile aangeroepen.
    • 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 SQL Agent-taken te maken, te wijzigen of 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:

Zie CREATE TABLE en ALTER TABLE voor meer informatie over het maken en wijzigen van tabellen.

Functionaliteiten

Bulksgewijs invoegen/OPENROWSET

SQL Managed Instance hebt geen toegang tot bestands shares en Windows-mappen, dus de bestanden moeten worden geïmporteerd uit Azure Blob Storage:

  • DATASOURCE is vereist in de BULK INSERT opdracht terwijl u bestanden importeert 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 om gegevens uit Azure SQL Database, Azure SQL Managed Instance of SQL Server te lezen. Andere bronnen, zoals Oracle-databases of Excel-bestanden, worden niet ondersteund.

Clr

Een SQL Managed Instance heeft geen toegang tot bestands shares en Windows-mappen, dus de volgende beperkingen gelden:

Database Mail (db_mail)

  • sp_send_dbmail kan 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 @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 globale traceervlaggen ondersteund. Sessieniveau Trace flags wordt 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_USER DATABASE 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 exemplaren die deel uitmaken van de vertrouwensgroep Server.
  • 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_sync doel wordt niet ondersteund. Sla .xel bestanden op in Azure Blob Storage. Zie etw_classic_sync doel.
  • Het event_file doel wordt niet ondersteund. Sla .xel bestanden 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 FILESTREAM bevatten.
  • FILETABLE wordt niet ondersteund.
  • Tabellen kunnen geen typen FILESTREAM hebben.
  • De volgende functies worden niet ondersteund:
    • GetPathLocator()
    • GET_FILESTREAM_TRANSACTION_CONTEXT()
    • PathName()
    • GetFileNamespacePat)
    • FileTableRootPath()

Zie FILESTREAM en FileTables voor meer informatie.

Semantic Search wordt niet ondersteund.

Gekoppelde servers

Gekoppelde servers in SQL Managed Instance een beperkt aantal doelen ondersteunen:

  • 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 voor het laden van bestanden met behulp van een BULK INSERT OPENROWSET serverloze SQL-pool in Azure Synapse Analytics.

Bewerkingen:

  • Schrijftransacties tussen exemplaren worden alleen ondersteund voor beheerde exemplaren.
  • sp_dropserver wordt ondersteund voor het droppen van een gekoppelde server. Zie sp_dropserver.
  • De OPENROWSET functie 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 OPENDATASOURCE functie 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 de SQLNCLI waarden , en worden ondersteund als SQLNCLI11 SQLOLEDB provider. Een voorbeeld is SELECT * FROM OPENDATASOURCE('SQLNCLI', '...').AdventureWorks2012.HumanResources.Employee. Zie OPENDATASOURCE.
  • Gekoppelde servers kunnen niet worden gebruikt om bestanden (Excel, CSV) uit de netwerk shares te lezen. Probeer BULK INSERT , OPENROWSET te gebruiken die CSV-bestanden leest van Azure Blob Storage of een gekoppelde server die verwijst naar een serverloze SQL-pool in Synapse Analytics. Volg deze aanvragen op SQL Managed Instance feedbackitem|

Gekoppelde servers op Azure SQL Managed Instance bieden alleen ondersteuning voor SQL-verificatie. AAD-verificatie wordt nog niet ondersteund.

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 bijwerkbare abonnementen worden niet ondersteund.
  • Transactionele replicatie is beschikbaar voor openbare preview op SQL Managed Instance met enkele beperkingen:
    • Alle typen replicatiedeelnemers (Uitgever, Distributeur, Pull-abonnee en Push-abonnee) 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 kunnen communiceren met de recente versies van SQL Server. Zie de matrix met ondersteunde versies voor meer informatie.
    • Transactionele replicatie heeft een aantal aanvullende netwerkvereisten.

Zie de volgende zelfstudies voor meer informatie over het configureren van transactionele replicatie:

RESTORE-instructie

  • Ondersteunde syntaxis:
    • RESTORE DATABASE
    • RESTORE FILELISTONLY ONLY
    • RESTORE HEADER ONLY
    • RESTORE LABELONLY ONLY
    • RESTORE VERIFYONLY ONLY
  • Niet-ondersteunde syntaxis:
    • RESTORE LOG ONLY
    • RESTORE 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, WITH zoals , DIFFERENTIAL , STATS REPLACE enzovoort, mislukken.
  • ASYNC RESTORE: Het herstellen wordt voortgezet, zelfs als de clientverbinding wordt breekt. Als de verbinding is verwijderd, kunt u de weergave controleren op de status van een herstelbewerking en sys.dm_operation_status op 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_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 heeft.
  • RECOVERY FULL als een database in het BAK-bestand de SIMPLE herstelmodus BULK_LOGGED of heeft.
  • Er wordt een voor geheugen geoptimaliseerde bestandsgroep toegevoegd en XTP aangeroepen als deze zich niet in het bron-BAK-bestand zou kunnen vinden.
  • De naam van een bestaande voor geheugen geoptimaliseerde bestandsgroep wordt gewijzigd in XTP.
  • SINGLE_USER de RESTRICTED_USER opties en worden geconverteerd naar MULTI_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 DBCC CHECKDB bron-SQL Managed Instance en gebruik WITH CHECKSUM back-up om dit probleem te voorkomen.
  • Herstellen van een bestand van een database met een beperking die wordt beschreven in dit document (bijvoorbeeld of objecten) kan niet worden hersteld .BAK FILESTREAM op FILETABLE 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 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 verschillende exemplaren van servicebroker wordt alleen ondersteund Azure SQL beheerde exemplaren:

  • CREATE ROUTE: U kunt niet gebruiken met CREATE ROUTE een andere naam dan of ADDRESS LOCAL DNS-naam van een SQL Managed Instance.
  • ALTER ROUTE: U kunt niet gebruiken met ALTER ROUTE een andere naam dan of ADDRESS LOCAL DNS-naam van een SQL Managed Instance.

Transportbeveiliging wordt ondersteund, dialoogvensterbeveiliging niet:

  • CREATE REMOTE SERVICE BINDINGworden niet ondersteund.

Service Broker is standaard ingeschakeld en kan niet worden uitgeschakeld. De volgende ALTER DATABSE-opties worden niet ondersteund:

  • ENABLE_BROKER
  • DISABLE_BROKER

Opgeslagen procedures, functies en triggers

  • NATIVE_COMPILATION wordt niet ondersteund in de Algemeen laag.
  • De volgende sp_configure worden niet ondersteund:
    • allow polybase export
    • allow updates
    • filestream_access_level
    • remote access
    • remote data archive
    • remote proc trans
    • scan for startup procs
  • sp_execute_external_scripts wordt niet ondersteund. 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. Zie Uitgebreide opgeslagen procedures voor meer informatie.
  • sp_attach_db, sp_attach_single_file_db en worden niet sp_detach_db ondersteund. 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 exemplaar zoals het bestaat voor SQL Server niet van toepassing is op SQL Managed Instance. Zie SERVERPROPERTY('InstanceName').
  • @@SERVERNAME retourneert een volledige 'verbindingsbare' DNS-naam, bijvoorbeeld my-managed-instance.wcus17662feb9ce98.database.windows.net. Zie @SERVERNAME @.
  • SYS.SERVERS retourneert een volledige DNS-naam die 'verbindingsbaar' is, zoals voor de eigenschappen myinstance.domain.database.windows.net 'naam' en 'data_source'. Zie SYS. SERVERS.
  • @@SERVICENAME retourneert NULL omdat het concept service zoals deze bestaat voor SQL Server niet van toepassing is op SQL Managed Instance. Zie @SERVICENAME @.
  • SUSER_ID wordt ondersteund. Deze retourneert NULL als de Azure AD-aanmelding zich niet in de sys.sysaanmeldingen. Zie SUSER_ID.
  • SUSER_SID wordt 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 SQL Managed Instance. 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 Managed Instance is gemaakt, wordt het SQL Managed Instance of VNet naar een andere resourcegroep of een ander abonnement niet ondersteund.
  • Voor SQL Managed Instances 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 van de systeemdatabases, onmogelijk op het secundaire exemplaar, tenzij de objecten handmatig op de secundaire instantie worden gemaakt.

Tempdb

  • De maximale bestandsgrootte tempdb van mag niet groter zijn dan 24 GB per kern op een Algemeen laag. De maximale tempdb grootte voor een Bedrijfskritiek-laag wordt beperkt door de SQL Managed Instance opslaggrootte. Tempdb de grootte van het logboekbestand is beperkt tot 120 GB op Algemeen laag. Sommige query's kunnen een fout retourneren als ze meer dan 24 GB per kern nodig hebben in of als ze meer dan tempdb 120 GB aan logboekgegevens produceren.
  • Tempdb wordt 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 aan tempdb .
  • Voor geheugen geoptimaliseerde tempdb metagegevens,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 initiële objectlijst niet uit de tempdb tempdb modeldatabase wordt gehaald. U moet handmatig objecten maken tempdb na elke herstart of failover.

Msdb

De volgende MSDB-schema's 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. Eventuele wijzigingen in deze wijzigingen worden teruggedraaid naar de vooraf gedefinieerde waarden zodra ze zijn gedetecteerd, of bij de volgende service-update op het laatste moment om de normale werking van de service te garanderen.

Foutenlogboeken

SQL Managed Instance uitgebreide informatie in foutlogboeken. Er zijn veel interne systeemgebeurtenissen die worden vastgelegd in het foutenlogboek. Gebruik een aangepaste procedure om foutenlogboeken te lezen die een aantal irrelevante vermeldingen wegfilteren. Zie voor meer informatie SQL Managed Instance: sp_readmierrorlog- of SQL Managed Instance extensie (preview) voor Azure Data Studio.

Volgende stappen