Differenze di T-SQL tra SQL Server e Istanza gestita di SQL di Azure

Si applica a:Azure SQL Managed Instance

Questo articolo riepiloga e illustra le differenze nella sintassi e nel comportamento tra Istanza gestita di SQL di Azure e SQL Server.

Istanza gestita di SQL offre una compatibilità elevata con il motore di database di SQL Server e la maggior parte delle funzionalità è supportata in un Istanza gestita di SQL.

Diagram showing the easy migration from SQL Server.

Esistono alcune limitazioni di PaaS introdotte nell'istanza gestita di SQL e alcune modifiche funzionali rispetto a SQL Server. Le differenze sono suddivise nelle categorie seguenti:

La maggior parte di queste funzionalità sono vincoli di architettura e rappresentano le funzionalità del servizio.

I problemi noti temporanei individuati in Istanza gestita di SQL e verranno risolti in futuro sono descritti in Novità.

Nota

Microsoft Entra ID era precedentemente noto come Azure Active Directory (Azure AD).

Disponibilità

Gruppi di disponibilità AlwaysOn

La disponibilità elevata è incorporata in Istanza gestita di SQL e non può essere controllata dagli utenti. Le istruzioni seguenti non sono supportate:

Backup

Istanza gestita di SQL di Azure dispone di backup automatici, in modo che gli utenti possano creare backup completi del databaseCOPY_ONLY. I backup differenziali, del log e di snapshot di file non sono supportati.

  • Con un Istanza gestita di SQL è possibile eseguire il backup di un database di istanza solo in un account di archiviazione BLOB di Azure:
    • È supportato solo BACKUP TO URL.
    • FILE, TAPE e i dispositivi di backup non sono supportati.
  • La maggior parte delle opzioni WITH generali è supportata.
    • COPY_ONLY è obbligatorio.
    • FILE_SNAPSHOT e CREDENTIAL non sono supportati.
    • Le opzioni nastro REWIND, NOREWIND, UNLOAD e NOUNLOAD non sono supportate.
    • Le opzioni specifiche dei log NORECOVERY, STANDBY e NO_TRUNCATE non sono supportate.

Limitazioni :

  • Con un Istanza gestita di SQL, è possibile eseguire il backup di un database di istanza in un backup con un massimo di 32 striping, sufficienti per i database fino a 4 TB se viene usata la compressione dei backup.

  • Non è possibile eseguire BACKUP DATABASE ... WITH COPY_ONLY in un database crittografato con TDE (Transparent Data Encryption) gestita dal servizio. La crittografia TDE gestita dal servizio impone la crittografia dei backup con una chiave TDE interna. La chiave non può essere esportata, quindi non sarà possibile ripristinare il backup. Usare i backup automatici e il ripristino temporizzato oppure usare TDE gestita dal cliente (BYOK). È anche possibile disabilitare la crittografia nel database.

  • I backup nativi eseguiti in un Istanza gestita di SQL possono essere ripristinati solo in un'istanza di SQL Server 2022. Ciò è dovuto al fatto che Istanza gestita di SQL ha una versione del database interna superiore rispetto ad altre versioni di SQL Server. Per altre informazioni, vedere Ripristinare un backup del database Istanza gestita di SQL in SQL Server 2022.

  • Per eseguire il backup o il ripristino di un database da e verso un'archiviazione di Azure, è possibile eseguire l'autenticazione usando l'identità gestita o la firma di accesso condiviso (SAS) che è un URI che concede diritti di accesso limitati alle risorse Archiviazione di Azure altre informazioni. L'uso delle chiavi di accesso per questi scenari non è supportato.

  • La dimensione massima dello striping di backup usando il BACKUP comando in Istanza gestita di SQL è 195 GB, ovvero la dimensione massima del BLOB. Aumentare il numero di strisce nel comando di backup per ridurre la dimensione delle singole strisce e rimanere entro questo limite.

    Suggerimento

    Per ovviare a questa limitazione, quando si esegue il backup di un database da SQL Server in un ambiente locale o in una macchina virtuale, è possibile:

    • Eseguire il backup in DISK anziché in URL.
    • Caricare i file di backup nell'archiviazione BLOB.
    • Eseguire il ripristino in Istanza gestita di SQL.

    Il Restore comando in Istanza gestita di SQL supporta dimensioni di BLOB maggiori nei file di backup perché viene usato un tipo di BLOB diverso per l'archiviazione dei file di backup caricati.

Per informazioni sui backup con T-SQL, vedere BACKUP.

Sicurezza

Controllo

Le differenze principali tra il controllo in Microsoft Azure SQL e in SQL Server sono le seguenti:

  • Con Istanza gestita di SQL, il controllo funziona a livello di server. I file di log .xel vengono archiviati nell'archiviazione Blob di Azure.
  • Con database SQL di Azure, il controllo funziona a livello di database. I file di log .xel vengono archiviati nell'archiviazione Blob di Azure.
  • Con SQL Server, in locale o in macchine virtuali, il controllo funziona a livello di server. Gli eventi vengono archiviati nel file system o nei registri eventi di Windows.

Il controllo XEvent in Istanza gestita di SQL supporta le destinazioni di archiviazione BLOB di Azure. I log di file e di Windows non sono supportati.

Le principali differenze nella sintassi CREATE AUDIT per il controllo in Archivio BLOB di Azure sono le seguenti:

  • Viene fornita una nuova sintassi TO URL per specificare l'URL del contenitore di archiviazione BLOB di Azure in cui vengono inseriti i .xel file.
  • La sintassi TO FILE non è supportata perché Istanza gestita di SQL non è in grado di accedere alle condivisioni file di Windows.

Per altre informazioni, vedi:

Certificati

Istanza gestita di SQL non è possibile accedere alle condivisioni file e alle cartelle di Windows, quindi si applicano i vincoli seguenti:

  • La sintassi CREATE FROM/BACKUP TO relativa ai file non è supportata per i certificati.
  • La sintassi CREATE/BACKUP da FILE/ASSEMBLY per i certificati non è supportata. I file di chiavi private non possono essere usati.

Vedere CREATE CERTIFICATE e BACKUP CERTIFICATE.

Soluzione alternativa: invece di creare il backup del certificato e ripristinare il backup, ottenere il contenuto binario del certificato e la chiave privata, archiviarlo come file .sql e crearlo dal file binario:

CREATE CERTIFICATE
   FROM BINARY = asn_encoded_certificate
WITH PRIVATE KEY (<private_key_options>);

Credenziali

Sono supportate identità gestite, Azure Key Vault e SHARED ACCESS SIGNATURE identità. Gli utenti di Windows non sono supportati.

Vedere CREATE CREDENTIAL e ALTER CREDENTIAL.

Provider del servizio di crittografia

Istanza gestita di SQL non è possibile accedere ai file, quindi non è possibile creare provider di crittografia:

Account di accesso e utenti

  • Gli account di accesso SQL creati con FROM CERTIFICATE, FROM ASYMMETRIC KEY e FROM SID sono supportati. Vedere CREATE LOGIN. Le entità server (account di accesso) vengono create a livello di server e gli utenti (entità di database) vengono creati a livello di database. Sono supportati gli account di accesso Microsoft Entra creati con la sintassi CREATE LOGIN e gli utenti di Microsoft Entra creati con la sintassi CREATE U edizione Standard R FROM LOGIN. Quando si crea un utente e si specifica FROM LOGIN, l'utente è associato all'account di accesso e eredita i ruoli del server e le autorizzazioni assegnati.

    Istanza gestita di SQL supporta la creazione di utenti di database indipendenti basati sulle identità di Microsoft Entra con la sintassi CREATE USER [AADUser/AAD group] FROM EXTERNAL PROVIDER. Gli utenti creati in questo modo non sono associati alle entità server, anche se nel database esiste un'entità master server con lo stesso nome.

  • Gli account di accesso di Windows creati con la sintassi CREATE LOGIN ... FROM WINDOWS non sono supportati. Usare account di accesso e utenti di Microsoft Entra.

  • L'amministratore di Microsoft Entra per l'istanza dispone di privilegi di amministratore senza restrizioni.

  • Alcune funzionalità non supportano l'uso degli account di accesso di Microsoft Entra nelle interazioni tra istanze, ma solo all'interno di un singolo Istanza gestita di SQL, ad esempio la replica di SQL Server. La funzionalità server collegato supporta l'autenticazione tra istanze usando le entità server (account di accesso) di Microsoft Entra.

  • L'impostazione di un account di accesso di Microsoft Entra mappato a un gruppo Microsoft Entra come proprietario del database non è supportata. Un membro del gruppo Microsoft Entra può essere un proprietario del database, anche se l'account di accesso non è stato creato nel database.

  • È supportata la rappresentazione delle entità a livello di server Microsoft Entra usando altre entità Microsoft Entra, ad esempio la clausola EXECUTE AS . Le limitazioni di EXECUTE AS sono:

    • EXECUTE AS U edizione Standard R non è supportato per gli utenti di Microsoft Entra quando il nome è diverso dal nome di accesso. Un esempio è quando l'utente viene creato tramite la sintassi CREATE USER [myAadUser] FROM LOGIN [john@contoso.com] e la rappresentazione viene tentata tramite EXEC AS USER = myAadUser. Quando si crea un U edizione Standard R da un account di accesso di Microsoft Entra, specificare il user_name come lo stesso login_name da LOGIN.

    • Solo gli account di accesso a livello di SQL Server che fanno parte del sysadmin ruolo possono eseguire le operazioni seguenti destinate alle entità microsoft Entra:

      • EXECUTE AS USER
      • EXECUTE AS LOGIN
    • Per rappresentare un utente con l'istruzione EXECUTE AS, l'utente deve essere mappato direttamente all'account di accesso di Microsoft Entra. Gli utenti membri dei gruppi di Microsoft Entra mappati alle entità server di Microsoft Entra non possono essere rappresentati in modo efficace con l'istruzione EXECUTE AS, anche se il chiamante dispone delle autorizzazioni di rappresentazione per il nome utente specificato.

  • L'esportazione/importazione di database tramite file bacpac è supportata per gli utenti di Microsoft Entra in Istanza gestita di SQL usando SSMS V18.4 o versioni successive o SqlPackage.

    • Le configurazioni seguenti sono supportate usando il file bacpac del database:
      • Esportare/importare un database tra diverse istanze di gestione all'interno dello stesso dominio Microsoft Entra.
      • Esportare un database da Istanza gestita di SQL e importarlo in database SQL all'interno dello stesso dominio Microsoft Entra.
      • Esportare un database da database SQL e importarlo in Istanza gestita di SQL all'interno dello stesso dominio Microsoft Entra.
      • Esportare un database da Istanza gestita di SQL e importare in SQL Server (versione 2012 o successiva).
        • In questa configurazione, tutti gli utenti di Microsoft Entra vengono creati come entità di database di SQL Server (utenti) senza account di accesso. Il tipo di utenti è SQL e è visibile come SQL_USER in sys.database_principals. Le autorizzazioni e i ruoli rimangono nei metadati del database SQL Server e possono essere usati per la rappresentazione. Tuttavia, non possono essere usati per accedere e accedere a SQL Server usando le credenziali.
  • Solo l'account di accesso dell'entità a livello di server, creato dal processo di provisioning Istanza gestita di SQL, i membri dei ruoli del server, ad esempio securityadmin o sysadmino altri account di accesso con autorizzazione ALTER ANY LOGIN a livello di server, possono creare entità server (account di accesso) di Microsoft Entra nel master database per Istanza gestita di SQL.

  • Agli account di accesso basati sull'autenticazione SQL deve essere assegnato il sysadmin ruolo per creare account di accesso per le identità di Microsoft Entra.

  • L'account di accesso deve essere membro dello stesso tenant di Microsoft Entra in cui è ospitato il Istanza gestita di SQL di Azure.

  • Le entità server (account di accesso) di Microsoft Entra sono visibili in Esplora oggetti a partire da SQL Server Management Studio 18.0 preview 5.

  • Un'entità server con livello di accesso sysadmin viene creata automaticamente per l'amministratore di Microsoft Entra dopo l'abilitazione in un'istanza di .

  • Durante l'autenticazione, per risolvere l'entità che esegue l'autenticazione viene applicata la sequenza seguente:

    1. Se l'account Microsoft Entra viene mappato direttamente a un account di accesso di Microsoft Entra, presente in sys.server_principals come tipo "E", concedere l'accesso e applicare le autorizzazioni di tale account di accesso.
    2. Se l'account Microsoft Entra è membro di un gruppo di cui è stato eseguito il mapping a un account di accesso di Microsoft Entra, presente in sys.server_principals come tipo "X", concedere l'accesso e applicare le autorizzazioni di tale account di accesso.
    3. Se l'account Microsoft Entra esiste come mappato direttamente a un utente di Microsoft Entra in un database, presente in sys.database_principals come tipo "E", concedere l'accesso e applicare le autorizzazioni dell'utente del database Microsoft Entra.
    4. Se l'account Microsoft Entra è membro di un gruppo Microsoft Entra mappato a un utente di Microsoft Entra in un database, presente come sys.database_principals tipo "X", concedere l'accesso e applicare le autorizzazioni dell'utente del gruppo Microsoft Entra.

Chiave del servizio e chiave master del servizio

Impostazione

Estensione del pool di buffer

Regole di confronto

Le regole di confronto di istanza predefinita sono SQL_Latin1_General_CP1_CI_AS e possono essere specificate come un parametro di creazione. Vedere Regole di confronto.

Livelli di compatibilità

  • I livelli di compatibilità supportati sono 100, 110, 120, 130, 140, 150 e 160.
  • I livelli di compatibilità inferiori a 100 non sono supportati.
  • Il livello di compatibilità predefinito per i nuovi database è 150. Per i database ripristinati, il livello di compatibilità rimane invariato se era uguale o superiore a 100.

Vedere Livello di compatibilità ALTER DATABASE.

Mirroring del database

Il mirroring del database non è supportato.

  • Le opzioni ALTER DATABASE SET PARTNER e SET WITNESS non sono supportate.
  • CREATE ENDPOINT … FOR DATABASE_MIRRORING non è supportata.

Per altre informazioni, vedere ALTER DATABASE SET PARTNER e SET WITNESS e CREATE ENDPOINT … FOR DATABASE_MIRRORING.

Opzioni di database

  • I file di log multipli non sono supportati.
  • Gli oggetti in memoria non sono supportati nel livello di servizio per utilizzo generico.
  • È previsto un limite di 280 file per ogni istanza per Utilizzo generico, che implica un massimo di 280 file per database. I file di dati e i file di log nel livello Utilizzo generico vengono conteggiati per questo limite. Il livello Business Critical supporta 32.767 file per database.
  • Il database non può contenere filegroup che contengono dati FILESTREAM. Il ripristino ha esito negativo se .bak contiene FILESTREAM dati.
  • Ogni file viene inserito in Archiviazione BLOB di Azure. L'I/O e la velocità effettiva per file dipendono dalle dimensioni di ogni singolo file.

Istruzione CREATE DATABASE

Vengono applicate le limitazioni seguenti a CREATE DATABASE:

  • Non possono essere definiti file e filegroup.

  • Un filegroup e un filegroup ottimizzati per la memoria vengono aggiunti automaticamente e vengono chiamati XTP.

  • L'opzione CONTAINMENT non è supportata.

  • Le opzioni WITH non sono supportate.

    Suggerimento

    Come soluzione alternativa, usare ALTER DATABASE dopo CREATE DATABASE per impostare le opzioni di database per aggiungere file o per impostare l'indipendenza.

  • L'opzione FOR ATTACH non è supportata.

  • L'opzione AS SNAPSHOT OF non è supportata.

Per altre informazioni, vedere CREATE DATABASE.

ALTER DATABASE - istruzione

Alcune proprietà di file non possono essere impostate o modificate:

  • Non è possibile specificare un percorso file nell'istruzione T-SQL ALTER DATABASE ADD FILE (FILENAME='path'). Rimuovere FILENAME dallo script perché Istanza gestita di SQL inserisce automaticamente i file.
  • Non è possibile modificare un nome file con l'istruzione ALTER DATABASE.
  • La modifica del file O del filegroup XTP non è consentita.

Le opzioni seguenti sono attive per impostazione predefinita e non possono essere modificate:

  • MULTI_USER
  • ENABLE_BROKER
  • AUTO_CLOSE OFF

Le opzioni seguenti non possono essere modificate:

  • 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

Alcune ALTER DATABASE istruzioni, ad esempio edizione Standard T CONTAINMENT, potrebbero non riuscire temporaneamente, ad esempio durante il backup automatico del database o subito dopo la creazione di un database. In questo caso ALTER DATABASE , è necessario ritentare l'istruzione . Per altre informazioni sui messaggi di errore correlati, vedere la sezione Osservazioni.

Per altre informazioni, vedere ALTER DATABASE.

SQL Server Agent

  • L'abilitazione e la disabilitazione di SQL Server Agent non sono attualmente supportate nell'istanza gestita di SQL. SQL Agent è sempre in esecuzione.
  • Il trigger di pianificazione dei processi basato su una CPU inattiva non è supportato.
  • Le impostazioni di SQL Server Agent sono di sola lettura. La procedura sp_set_agent_properties non è supportata in Istanza gestita di SQL.
  • Processi
    • I passaggi dei processi T-SQL sono supportati.
    • Sono supportati i processi di replica seguenti:
      • Lettore di log delle transazioni
      • Snapshot
      • Database di distribuzione
    • I passaggi dei processi SSIS sono supportati.
    • Altri tipi di passaggi di processo non sono attualmente supportati:
      • Il passaggio del processo di replica di tipo merge non è supportato.
      • La lettura della coda non è supportata.
      • La shell dei comandi non è ancora supportata.
    • Istanza gestita di SQL non può accedere a risorse esterne, ad esempio condivisioni di rete tramite robocopy.
    • SQL Server Analysis Services non è supportato.
  • Le notifiche sono supportate in modo parziale.
  • Sono supportate le notifiche tramite posta elettronica, anche se è necessario configurare un profilo di Posta elettronica database. SQL Server Agent può usare un solo profilo di Posta elettronica database, che deve essere denominato AzureManagedInstance_dbmail_profile.
    • Pager non è supportato.
    • NetSend non è supportato.
    • Gli avvisi non sono ancora supportati.
    • I proxy non sono supportati.
  • EventLog non è supportato.
  • L'utente deve essere mappato direttamente all'account di accesso del server Microsoft Entra per creare, modificare o eseguire processi di SQL Agent. Gli utenti di cui non è stato eseguito il mapping diretto, ad esempio gli utenti che appartengono a un gruppo Microsoft Entra che dispone dei diritti per creare, modificare o eseguire processi di SQL Agent, non potranno eseguire in modo efficace tali azioni. Ciò è dovuto alle limitazioni Istanza gestita di SQL rappresentazione e EXECUTE AS.
  • La funzionalità multiserver Amministrazione istration per i processi master/target (MSX/TSX) non è supportata.

Per informazioni su SQL Server Agent, vedere SQL Server Agent.

Tabelle

I tipi di tabella seguenti non sono supportati:

Per informazioni sulla creazione e la modifica di tabelle, vedere CREATE TABLE e ALTER TABLE.

Funzionalità

BULK IN edizione Standard RT/OPENROW edizione Standard T

Istanza gestita di SQL non è possibile accedere alle condivisioni file e alle cartelle di Windows, quindi i file devono essere importati dall'archivio BLOB di Azure:

  • DATASOURCE è obbligatorio nel comando BULK INSERT durante l'importazione dei file da un'archiviazione BLOB di Azure. Vedere BULK INSERT.
  • DATASOURCE è obbligatorio nella funzione OPENROWSET quando si legge il contenuto di un file da un'archiviazione BLOB di Azure. Vedere OPENROWSET.
  • OPENROWSETpuò essere usato per leggere i dati da database SQL di Azure, Istanza gestita di SQL di Azure o istanze di SQL Server. Altre origini, ad esempio database Oracle o file di Excel, non sono supportate.

CLR

Un Istanza gestita di SQL non può accedere alle condivisioni file e alle cartelle di Windows, quindi si applicano i vincoli seguenti:

Posta elettronica database (db_mail)

  • sp_send_dbmail non può inviare allegati usando @file_attachments il parametro . Il file system locale e le condivisioni esterne o Archiviazione BLOB di Azure non sono accessibili da questa procedura.
  • Vedere i problemi noti correlati al parametro @query e all'autenticazione.

DBCC

Le istruzioni DBCC non documentate abilitate in SQL Server non sono supportate in Istanza gestita di SQL.

  • È supportato solo un numero limitato di flag di traccia globali. Trace flags a livello di sessione non sono supportati. Vedere Flag di traccia.
  • DBCC TRACEOFF e DBCC TRACEON funzionano con il numero limitato di flag di traccia globali.
  • DBCC CHECKDB con opzioni REPAIR_ALLOW_DATA_LOSS, REPAIR_FAST e REPAIR_REBUILD non possono essere usate perché non è possibile impostare il database in SINGLE_USER modalità. Vedere le differenze tra ALTER DATABA edizione Standard. Il potenziale danneggiamento del database viene gestito dal team supporto tecnico di Azure. Contattare supporto tecnico di Azure in caso di danneggiamento del database.

Transazioni distribuite

Le transazioni distribuite basate su T-SQL e .NET tra istanze gestite sono disponibili a livello generale. Altri scenari, ad esempio transazioni XA, transazioni distribuite tra istanze gestite e altri partecipanti e altro ancora, sono supportati con DTC per Istanza gestita di SQL di Azure, disponibile in anteprima pubblica.

Eventi estesi

Alcune destinazioni specifiche di Windows per gli eventi estesi (XEvent) non sono supportate:

Librerie esterne

Le librerie esterne R e Python nel database sono supportate in anteprima pubblica limitata. Vedere Machine Learning Services in Istanza gestita di SQL di Azure (anteprima).

FILESTREAM e FileTable

  • I dati FILESTREAM non sono supportati.
  • Il database non può contenere filegroup con dati FILESTREAM.
  • FILETABLE non è supportata.
  • Le tabelle non possono contenere tipi FILESTREAM.
  • Le funzioni seguenti non sono supportate:
    • GetPathLocator()
    • GET_FILESTREAM_TRANSACTION_CONTEXT()
    • PathName()
    • GetFileNamespacePat)
    • FileTableRootPath()

Per altre informazioni, vedere FILESTREAM e FileTable.

La ricerca semantica non è supportata.

Server collegati

I server collegati in Istanza gestita di SQL supportano un numero limitato di destinazioni:

  • Le destinazioni supportate sono Istanza gestita di SQL, database SQL, pool serverless e dedicati di Azure Synapse SQL e istanze di SQL Server.
  • Le destinazioni non supportate sono file, Analysis Services e altri sistemi di gestione di database relazionali (RDBMS). Provare a usare l'importazione CSV nativa da Archiviazione BLOB di Azure usando BULK INSERT o come alternativa per l'importazione di file o caricare file usando un pool SQL serverless in Azure Synapse AnalyticsOPENROWSET.

Operazioni:

I server collegati in Istanza gestita di SQL di Azure supportano l'autenticazione SQL e l'autenticazione di Microsoft Entra.

PolyBase

La virtualizzazione dei dati con Istanza gestita di SQL di Azure consente di eseguire query Transact-SQL (T-SQL) sui dati dei file archiviati in Azure Data Lake Archiviazione Gen2 o Archiviazione BLOB di Azure e combinarli con dati relazionali archiviati in locale usando join. I formati di file parquet e delimitati (CSV) sono supportati direttamente. Il formato di file JSON è supportato indirettamente specificando il formato di file CSV in cui le query restituiscono ogni documento come riga separata. È possibile analizzare ulteriormente le righe usando JSON_VALUE e OPENJSON. Per informazioni generali su PolyBase, vedere PolyBase.

Inoltre, CREATE EXTERNAL TABLE AS edizione Standard LECT (CETAS) consente di esportare i dati dall'istanza gestita di SQL in un account di archiviazione esterno. È possibile usare CETAS per creare una tabella esterna sopra i file Parquet o CSV di Archiviazione BLOB di Azure o Azure Data Lake Archiviazione (ADLS) Gen2. CeTAS può anche esportare, in parallelo, i risultati di un'istruzione T-SQL edizione Standard LECT nella tabella esterna creata.

Replica

  • Sono supportati i tipi di replica snapshot e bidirezionale. La replica di tipo merge, la replica peer-to-peer e le sottoscrizioni aggiornabili non sono supportate.
  • La replica transazionale è disponibile per Istanza gestita di SQL con alcuni vincoli:
    • Tutti i tipi di partecipanti alla replica (server di pubblicazione, server di distribuzione, Sottoscrittore pull e Sottoscrittore push) possono essere inseriti in Istanza gestita di SQL, ma il server di pubblicazione e il server di distribuzione devono essere sia nel cloud che in entrambi i server di distribuzione in locale.
    • Istanza gestita di SQL può comunicare con le versioni recenti di SQL Server. Per altre informazioni, vedere la matrice delle versioni supportate.
    • La replica transazionale presenta alcuni requisiti di rete aggiuntivi.

Per altre informazioni sulla configurazione della replica transazionale, vedere le esercitazioni seguenti:

Istruzione RESTORE

  • Sintassi supportata:
    • RESTORE DATABASE
    • RESTORE FILELISTONLY
    • RESTORE HEADERONLY
    • RESTORE LABELONLY
    • RESTORE VERIFYONLY
  • Sintassi non supportata:
    • RESTORE LOGONLY
    • RESTORE REWINDONLY
  • Fonte:
    • FROM URL (archiviazione BLOB di Azure) è l'unica opzione supportata.
    • FROM DISK/TAPE/dispositivo di backup non è supportata.
    • I set di backup non sono supportati.
  • Le opzioni WITH non sono supportate. I tentativi di ripristino, inclusi WITHDIFFERENTIAL, STATS, REPLACEe così via, avranno esito negativo.

Un'operazione di ripristino del database è asincrona e riprovabile in Istanza gestita di SQL di Azure. È possibile che venga visualizzato un errore in SSMS se la connessione non riesce o scade un timeout. Istanza gestita di SQL di Azure continua a tentare di ripristinare il database in background ed è possibile tenere traccia dello stato di avanzamento del processo di ripristino usando le viste a gestione dinamica sys.dm_exec_requests e sys.dm_operation_status.

Le opzioni di database seguenti sono impostate o sottoposte a override e non possono essere modificate in seguito:

  • NEW_BROKER se il broker non è abilitato nel file con estensione bak.
  • ENABLE_BROKER se il broker non è abilitato nel file con estensione bak.
  • AUTO_CLOSE=OFF se un database nel file con estensione bak ha l'opzione AUTO_CLOSE=ON.
  • RECOVERY FULLse un database nel file .bak ha o BULK_LOGGED il SIMPLE modello di recupero.
  • Un filegroup ottimizzato per la memoria viene aggiunto e denominato XTP se non era incluso nel file con estensione bak di origine.
  • Qualsiasi filegroup ottimizzato per la memoria esistente viene rinominato come XTP.
  • Le opzioni SINGLE_USER e RESTRICTED_USER vengono convertite in MULTI_USER.

Limitazioni :

  • I backup dei database danneggiati potrebbero essere ripristinati a seconda del tipo di danneggiamento, ma i backup automatici non vengono eseguiti fino a quando non viene corretto il danneggiamento. Assicurarsi di eseguire DBCC CHECKDB nel Istanza gestita di SQL di origine e di usare il backup WITH CHECKSUM per evitare questo problema.
  • Il ripristino del .BAK file di un database che contiene qualsiasi limitazione descritta in questo documento (ad esempio, FILESTREAM o FILETABLE oggetti) non può essere ripristinato in Istanza gestita di SQL.
  • I file .BAK che contengono più set di backup non possono essere ripristinati.
  • I file .BAK che contengono più file di log non possono essere ripristinati.
  • Non è possibile ripristinare in un'istanza per Utilizzo generico i backup che contengono database di dimensioni maggiori di 8 TB, oggetti OLTP in memoria attivi o un numero di file che supera i 280 file per ogni istanza.
  • I backup che contengono database superiori a 4 TB o oggetti OLTP in memoria con dimensioni totali superiori alle dimensioni descritte nei limiti delle risorse non possono essere ripristinati nell'istanza business critical. Per informazioni sulle istruzioni restore, vedere Istruzioni RESTORE.

Importante

Le stesse limitazioni si applicano all'operazione di ripristino temporizzato predefinita. Ad esempio, non è possibile ripristinare in un'istanza Business Critical un database per Utilizzo generico di dimensioni maggiori di 4 TB. Non è possibile ripristinare in un'istanza per Utilizzo generico un database Business Critical con file OLTP in memoria o con più di 280 file.

Service Broker

Lo scambio di messaggi di Service Broker tra istanze è supportato solo per le istanze gestite di SQL di Azure:

  • CREATE ROUTE: non è possibile usare CREATE ROUTE con ADDRESS un nome diverso LOCAL da o DNS di un altro Istanza gestita di SQL. La porta è sempre 4022.
  • ALTER ROUTE: non è possibile usare ALTER ROUTE con ADDRESS un nome diverso LOCAL da o DNS di un altro Istanza gestita di SQL. La porta è sempre 4022.

La sicurezza del trasporto è supportata, la sicurezza della finestra di dialogo non è:

  • CREATE REMOTE SERVICE BINDINGnon è supportato.

Service Broker è abilitato per impostazione predefinita e non può essere disabilitato. Le opzioni ALTER DATABA edizione Standard seguenti non sono supportate:

  • ENABLE_BROKER
  • DISABLE_BROKER

Stored procedure, funzioni e trigger

  • NATIVE_COMPILATION non è supportato nel livello Utilizzo generico.
  • Le opzioni di sp_configure seguenti non sono supportate:
    • allow polybase export
    • allow updates
    • filestream_access_level
    • remote access
    • remote data archive
    • remote proc trans
    • scan for startup procs
  • Le opzioni di sp_configure seguenti vengono ignorate e non hanno alcun effetto:
    • Ole Automation Procedures
  • sp_execute_external_scriptsè supportato solo per Machine Learning Services per SQL MI, altrimenti sp_execute_external_scripts non è supportato per Istanza gestita di SQL. Vedere sp_execute_external_scripts.
  • xp_cmdshell non è supportata. Vedere xp_cmdshell.
  • Extended stored procedures non sono supportati e include sp_addextendedproc e sp_dropextendedproc. Questa funzionalità non sarà supportata perché si trova in un percorso di deprecazione per SQL Server. Per altre informazioni, vedere Stored procedure estese.
  • sp_attach_db, sp_attach_single_file_db e sp_detach_db non sono supportate. Vedere sp_attach_db, sp_attach_single_file_db e sp_detach_db.

Funzione e variabili di sistema

Le variabili, funzioni e viste seguenti restituiscono risultati diversi:

  • SERVERPROPERTY('EngineEdition') restituisce il valore 8. Questa proprietà identifica in modo univoco un Istanza gestita di SQL. Vedere SERVERPROPERTY.
  • SERVERPROPERTY('InstanceName')restituisce NULL perché il concetto di istanza esistente per SQL Server non si applica a Istanza gestita di SQL. Vedere SERVERPROPERTY('InstanceName').
  • @@SERVERNAME restituisce un nome DNS completo "connettibile", ad esempio my-managed-instance.wcus17662feb9ce98.database.windows.net. Vedere @@edizione Standard RVERNAME.
  • SYS.SERVERSrestituisce un nome DNS completo "connettibile", ad esempio myinstance.domain.database.windows.net per le proprietà "name" e "data_source". Vedere SYS.edizione StandardRVERS.
  • @@SERVICENAMErestituisce NULL perché il concetto di servizio esistente per SQL Server non si applica a Istanza gestita di SQL. Vedere @@edizione Standard RVICENAME.
  • SUSER_ID è supportato. Restituisce NULL se l'account di accesso di Microsoft Entra non è in sys.syslogins. Vedere SUSER_ID.
  • SUSER_SID non è supportata. Vengono restituiti dati errati, il che è un problema noto temporaneo. Vedere SUSER_SID.

Vincoli di ambiente

Subnet

  • Non è possibile inserire altre risorse (ad esempio macchine virtuali) nella subnet in cui è stato distribuito il Istanza gestita di SQL. Distribuire queste risorse usando una subnet diversa.
  • La subnet deve avere un numero sufficiente di indirizzi IP disponibili. Almeno 32 indirizzi IP nella subnet.
  • Il numero di vCore e i tipi di istanze che è possibile distribuire in un'area presentano alcuni vincoli e limiti.
  • È disponibile una configurazione di rete che deve essere applicata alla subnet.

Rete virtuale

  • La rete virtuale può essere distribuita usando il modello di risorse. Il modello classico non supporta la distribuzione della rete virtuale.
  • Dopo aver creato un'istanza gestita di SQL, lo spostamento dell'istanza gestita o della rete virtuale di SQL in un altro gruppo di risorse o sottoscrizione non è supportato.
  • Per le istanze gestite di SQL ospitate in cluster virtuali creati prima del 22 settembre 2020, il peering globale della rete virtuale non è supportato. È possibile connettersi a queste risorse tramite ExpressRoute o da rete virtuale a rete virtuale tramite gateway di rete virtuale.

Gruppi di failover

I database di sistema non vengono replicati nell'istanza secondaria in un gruppo di failover. Di conseguenza, gli scenari che dipendono da oggetti dai database di sistema sono impossibili nell'istanza secondaria, a meno che gli oggetti non vengano creati manualmente nel database secondario.

tempdb

  • Le dimensioni massime del database di tempdb sistema non possono essere superiori a 24 GB per core in un livello per utilizzo generico. Le dimensioni massime tempdb in un livello Business Critical sono limitate dalle dimensioni di archiviazione Istanza gestita di SQL. Le dimensioni del file di log tempdb sono limitate a 120 GB nel livello Utilizzo generico. Alcune query potrebbero restituire un errore se necessitano di più di 24 GB per core in tempdb o se producono più di 120 GB di dati di log.
  • tempdb è sempre suddiviso in 12 file di dati: 1 primario, detto masteranche file di dati, e 11 file di dati non primari. La struttura del file non può essere modificata e non è possibile aggiungere nuovi file a tempdb.
  • I metadati tempDB ottimizzati per la memoria, una nuova funzionalità di database in memoria di SQL Server 2019, non sono supportati.
  • Gli oggetti creati nel model database non possono essere creati automaticamente dopo tempdb un riavvio o un failover perché tempdb non ottiene il model relativo elenco di oggetti iniziale dal database. È necessario creare oggetti manualmente tempdb dopo ogni riavvio o failover.

msdb

Gli schemi seguenti nel database di msdb sistema in Istanza gestita di SQL devono essere di proprietà dei rispettivi ruoli predefiniti:

  • Ruoli generali
    • TargetServersRole
  • Ruoli predefiniti del database
    • SQLAgentUserRole
    • SQLAgentReaderRole
    • SQLAgentOperatorRole
  • Ruoli di DatabaseMail:
    • DatabaseMailUserRole
  • Ruoli di Integration Services:
    • db_ssisadmin
    • db_ssisltduser
    • db_ssisoperator

Importante

La modifica dei nomi dei ruoli predefiniti, dei nomi degli schemi e dei proprietari dello schema da parte dei clienti influirà sul normale funzionamento del servizio. Tutte le modifiche apportate a questi elementi verranno ripristinate ai valori predefiniti non appena rilevate o al più tardi al successivo aggiornamento del servizio per garantire il normale funzionamento del servizio.

Log degli errori

Istanza gestita di SQL inserisce informazioni dettagliate nei log degli errori. Esistono molti eventi di sistema interni registrati nel log degli errori. Usare una procedura personalizzata per la lettura dei log degli errori che filtra alcune voci non pertinenti. Per altre informazioni, vedere Istanza gestita di SQL - sp_readmierrorlog o estensione Istanza gestita di SQL (anteprima) per Azure Data Studio.

La modifica del numero di log degli errori conservati non è supportata.