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

Si applica a: Istanza gestita di SQL di Azure

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 SQL Server e la maggior parte delle funzionalità è supportata in un Istanza gestita di SQL.

Migrazione semplice da SQL Server

Esistono alcune limitazioni paaS introdotte in Istanza gestita di SQL e alcune modifiche di comportamento rispetto a SQL Server. Le differenze sono suddivise nelle categorie seguenti:

La maggior parte di queste funzionalità sono vincoli architettonici 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à?

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, log e snapshot dei 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, TAPEe i dispositivi di backup non sono supportati.
  • La maggior parte delle opzioni generali WITH è supportata.
    • COPY_ONLY è obbligatorio.
    • FILE_SNAPSHOT non è supportata.
    • Opzioni nastro: REWIND, NOREWIND, UNLOADe NOUNLOAD non sono supportate.
    • Opzioni specifiche del log: NORECOVERY, STANDBYe 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 strip, che è sufficiente per i database fino a 4 TB se viene usata la compressione del backup.

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

  • I backup nativi eseguiti in un Istanza gestita di SQL non possono essere ripristinati in un SQL Server. Ciò è dovuto al fatto che Istanza gestita di SQL ha una versione del database interna superiore rispetto a qualsiasi versione di SQL Server.

  • Per eseguire il backup o il ripristino di un database da/verso un'archiviazione di Azure, è necessario creare una firma di accesso condiviso (SAS) un URI che concede diritti di accesso limitato alle risorse di Archiviazione di Azure Altre informazioni su questo argomento. L'uso delle chiavi di accesso per questi scenari non è supportato.

  • La dimensione massima della striscia 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 risolvere 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 DISK backup invece di eseguire il backup in URL.
    • Caricare i file di backup nell'archiviazione BLOB.
    • Ripristinare in Istanza gestita di SQL.

    Il Restore comando in Istanza gestita di SQL supporta dimensioni blob maggiori nei file di backup perché viene usato un tipo 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:

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

Il controllo XEvent in Istanza gestita di SQL supporta le destinazioni di archiviazione BLOB di Azure. I log di File e 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 che è possibile usare per specificare l'URL del contenitore di archiviazione BLOB di Azure in cui vengono inseriti i .xel file.
  • La sintassi non è supportata perché Istanza gestita di SQL non è in grado di accedere alle condivisioni TO FILE file di Windows.

Per altre informazioni, vedere:

Certificati

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

  • Il CREATE FROM/BACKUP TO file non è supportato per i certificati.
  • Il CREATE/BACKUP certificato da FILE/ASSEMBLY non è supportato. 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 di ripristinare il backup, ottenere il contenuto binario del certificato e la chiave privata, archiviarla come file .sql e crearla dal file binario:

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

Credenziale

Sono supportati solo l'insieme di credenziali delle chiavi di Azure e le identità SHARED ACCESS SIGNATURE. 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 tramite FROM CERTIFICATE, FROM ASYMMETRIC KEYe FROM SID sono supportati. Vedere CREATE LOGIN.

  • Le entità server di Azure Active Directory (Azure AD) create con la sintassi CREATE LOGIN o la sintassi CREATE USER FROM LOGIN [Azure AD Login] sono supportate. Questi account di accesso vengono creati a livello di server.

    Istanza gestita di SQL supporta le entità di database di Azure AD con la sintassi CREATE USER [AADUser/AAD group] FROM EXTERNAL PROVIDER. Questa funzionalità è nota anche come utenti di database indipendenti di Azure AD.

  • Gli account di accesso di Windows creati con la CREATE LOGIN ... FROM WINDOWS sintassi non sono supportati. Usare gli accessi e gli utenti di Azure Active Directory.

  • L'amministratore di Azure AD per l'istanza ha privilegi di amministratore senza restrizioni.

  • Gli utenti a livello di database di Azure AD non amministratori possono essere creati usando la CREATE USER ... FROM EXTERNAL PROVIDER sintassi . Vedere CREATE USER ... FROM EXTERNAL PROVIDER.

  • Le entità server (account di accesso) di Azure AD supportano le funzionalità SQL solo in un'unica Istanza gestita di SQL. Le funzionalità che richiedono l'interazione tra istanze, indipendentemente dal fatto che si trovano nello stesso tenant di Azure AD o tenant diversi, non siano supportate per gli utenti di Azure AD. Tra queste funzionalità sono incluse:

    • Replica transazionale SQL.
    • Server di collegamento.
  • L'impostazione di un account di accesso di Azure AD mappato a un gruppo di Azure AD come proprietario del database non è supportata. Un membro del gruppo di Azure AD può essere un proprietario del database, anche se l'account di accesso non è stato creato nel database.

  • La rappresentazione delle entità a livello di server di Azure AD usando altre entità di Azure AD è supportata, ad esempio la clausola EXECUTE AS . Le limitazioni di EXECUTE AS sono:

    • EXECUTE AS USER non è supportato per gli utenti di Azure AD quando il nome differisce 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 utente da un'entità server (account di accesso) di Azure AD, specificare il user_name come lo stesso login_name da LOGIN.

    • Solo le entità a livello di SQL Server (account di accesso) che fanno parte del sysadmin ruolo possono eseguire le operazioni seguenti destinate alle entità di sicurezza di Azure AD:

      • EXECUTE AS USER
      • EXECUTE AS LOGIN
    • Per rappresentare un utente con l'istruzione EXECUTE AS, l'utente deve essere mappato direttamente all'entità server (account di accesso) di Azure AD. Gli utenti membri dei gruppi di Azure AD mappati alle entità server di Azure AD 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 del database tramite file bacpac è supportata per gli utenti di Azure AD in Istanza gestita di SQL usando SSMS V18.4 o versione successiva o SQLPackage.exe.

    • Le configurazioni seguenti sono supportate usando il file bacpac del database:
      • Esportare/importare un database tra istanze di gestione diverse all'interno dello stesso dominio di Azure AD.
      • Esportare un database da Istanza gestita di SQL e importare in database SQL all'interno dello stesso dominio di Azure AD.
      • Esportare un database da database SQL e importarlo in Istanza gestita di SQL all'interno dello stesso dominio di Azure AD.
      • Esportare un database da Istanza gestita di SQL e importare in SQL Server (versione 2012 o successiva).
        • In questa configurazione tutti gli utenti di Azure AD vengono creati come entità di database (utenti) SQL Server senza account di accesso. Il tipo di utenti è elencato come SQL e è visibile come SQL_USER in sys.database_principals. Le autorizzazioni e i ruoli rimangono nel SQL Server metadati del database e possono essere usati per la rappresentazione. Tuttavia, non possono essere usati per accedere e accedere al 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 Azure AD nel database master per Istanza gestita di SQL.

  • Se l'account di accesso è un'entità di sicurezza SQL, solo gli account di accesso che fanno parte del ruolo sysadmin possono usare il comando per creare gli account di accesso per un account Azure AD.

  • L'account di accesso di Azure AD deve essere membro di un'istanza di Azure AD all'interno della stessa directory usata per Istanza gestita di SQL di Azure.

  • Le entità server (account di accesso) di Azure AD 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'account amministratore di Azure AD dopo l'abilitazione in un'istanza di .

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

    1. Se l'account Azure AD esiste come mappato direttamente all'entità server (account di accesso) di Azure AD, presente in sys.server_principals come tipo "E", concedere l'accesso e applicare le autorizzazioni dell'entità server (account di accesso) di Azure AD.
    2. Se l'account Azure AD è membro di un gruppo di Azure AD mappato all'entità server (account di accesso) di Azure AD, presente come sys.server_principals tipo "X", concedere l'accesso e applicare le autorizzazioni dell'account di accesso del gruppo di Azure AD.
    3. Se l'account Azure AD esiste come mappato direttamente a un utente di Azure AD in un database, presente in sys.database_principals come tipo "E", concedere l'accesso e applicare le autorizzazioni dell'utente del database di Azure AD.
    4. Se l'account Azure AD è membro di un gruppo di Azure AD mappato a un utente di Azure AD in un database, presente come sys.database_principals tipo "X", concedere l'accesso e applicare le autorizzazioni dell'utente del gruppo di Azure AD.

Chiave del servizio e chiave master del servizio

Configurazione

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 e 150.
  • I livelli di compatibilità inferiori a 100 non sono supportati.
  • Il livello di compatibilità predefinito per i nuovi database è 140. Per i database ripristinati, il livello di compatibilità rimane invariato se era 100 e versioni successive.

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.
  • Esiste un limite di 280 file per ogni istanza di per utilizzo generico, che implica un massimo di 280 file per ogni database. Sia i file di dati che i file di log nel livello per utilizzo generico vengono conteggiati per questo limite. Il livello business critical supporta 32.767 file per database.
  • Il database non può contenere filegroup contenenti 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

Le limitazioni seguenti si applicano a CREATE DATABASE:

  • Non possono essere definiti file e filegroup.

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

  • L'opzione CONTAINMENT non è supportata.

  • WITH le opzioni non sono supportate.

    Suggerimento

    Come soluzione alternativa, usare ALTER DATABASE after CREATE DATABASE per impostare le opzioni di database per aggiungere file o impostare il contenimento.

  • 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 di file nell'istruzione ALTER DATABASE ADD FILE (FILENAME='path') T-SQL. Rimuovere FILENAME dallo script perché Istanza gestita di SQL inserisce automaticamente i file.
  • Non è possibile modificare un nome file usando l'istruzione ALTER DATABASE .
  • Non è consentito modificare il file o il filegroup XTP.

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 SET CONTAINMENT, potrebbero avere esito negativo temporaneo, ad esempio durante il backup automatico del database o subito dopo la creazione di un database. In questo caso ALTER DATABASE , l'istruzione deve essere ritentata. 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 in base a una CPU inattiva non è supportato.
  • SQL Server Agent impostazioni 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.
    • I processi di replica seguenti sono supportati:
      • Lettore di log delle transazioni
      • Snapshot
      • Database di distribuzione
    • Sono supportati i passaggi del processo SSIS.
    • 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.
  • Email notifica è supportata, anche se è necessario configurare un profilo di Posta elettronica database. SQL Server Agent può usare un solo profilo di Posta elettronica database e deve essere chiamato 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'entità server di Azure AD (account di accesso) per creare, modificare o eseguire processi di SQL Agent. Gli utenti non mappati direttamente, ad esempio gli utenti che appartengono a un gruppo di Azure AD che hanno i diritti per creare, modificare o eseguire processi di SQL Agent, non saranno in grado di eseguire effettivamente tali azioni. Ciò è dovuto alle limitazioni di rappresentazione Istanza gestita di SQL e EXECUTE AS.
  • La funzionalità Amministrazione multiserver 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 su come creare e modificare tabelle, vedere CREATE TABLE e ALTER TABLE.

Funzionalità

Inserimento bulk/OPENROWSET

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

  • DATASOURCE è necessario nel comando durante l'importazione BULK INSERT di file da Archiviazione BLOB di Azure. Vedere BULK INSERT.
  • DATASOURCE è necessario nella OPENROWSET funzione quando si legge il contenuto di un file dall'archivio BLOB di Azure. Vedere OPENROWSET.
  • OPENROWSETpuò essere usato per leggere i dati da Azure SQL database, 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 utilizzando @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 relativi al parametro e all'autenticazione @query .

DBCC

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

  • Sono supportati solo un numero limitato di flag di traccia globale. Il livello Trace flags di sessione non è supportato. 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 usati perché non è possibile impostare il database in SINGLE_USER modalità. Vedere differenze di ALTER DATABASE. Il potenziale danneggiamento del database viene gestito dal team di supporto tecnico di Azure. Contattare supporto tecnico di Azure se è presente un'indicazione del danneggiamento del database.

Transazioni distribuite

Il supporto parziale per le transazioni distribuite è disponibile a livello generale. Le transazioni distribuite sono supportate nelle condizioni seguenti (tutte devono essere soddisfatte):

  • tutti i partecipanti alla transazione sono Azure SQL istanze gestite che fanno parte del gruppo di attendibilità del server.
  • le transazioni vengono avviate da .NET (classe TransactionScope) o Transact-SQL.

Istanza gestita di SQL di Azure attualmente non supporta altri scenari supportati regolarmente da MSDTC in locale o in Azure Macchine virtuali.

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 FILESTREAM dati.
  • 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, Azure Synapse pool SQL serverless e dedicati e istanze di SQL Server.
  • Le transazioni scrivibili distribuite sono possibili solo tra istanze gestite di SQL. Per altre informazioni, vedere Transazioni distribuite. Tuttavia, MS DTC non è supportato.
  • Le destinazioni non supportate sono file, Analysis Services e altri servizi RDBMS. Provare a usare l'importazione CSV nativa da Archiviazione BLOB di Azure usando BULK INSERT o OPENROWSET come alternativa per l'importazione di file o caricare file usando un pool SQL serverless in Azure Synapse Analytics.

Operazioni:

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

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 Storage Gen2 o Archiviazione BLOB di Azure e combinarli con dati relazionali archiviati in locale usando Unisce. I formati di file parquet e di testo delimitato (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.

Replica

  • Sono supportati i tipi di replica snapshot e bidirezionali. 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 trovarsi sia nel cloud che in entrambi gli ambienti locali.
    • 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 ONLY
    • RESTORE HEADER ONLY
    • RESTORE LABELONLY ONLY
    • RESTORE VERIFYONLY ONLY
  • Sintassi non supportata:
    • RESTORE LOG ONLY
    • RESTORE REWINDONLY ONLY
  • Origine:
    • 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.
  • WITH le opzioni non sono supportate. I tentativi di ripristino, ad esempio WITHDIFFERENTIAL, STATS, REPLACEe così via, avranno esito negativo.
  • ASYNC RESTORE: il ripristino continua anche se la connessione client si interrompe. Se la connessione viene interrotta, è possibile controllare lo sys.dm_operation_status stato di un'operazione di ripristino e per un database CREATE e DROP. Vedere sys.dm_operation_status.

Le opzioni di database seguenti vengono impostate o sottoposte a override e non possono essere modificate in un secondo momento:

  • 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 AUTO_CLOSE=ON.
  • RECOVERY FULLse un database nel file con estensione bak ha o BULK_LOGGED la SIMPLE modalità di ripristino.
  • Viene aggiunto un filegroup ottimizzato per la memoria e viene chiamato XTP se non si trova nel file con estensione bak di origine.
  • Qualsiasi filegroup ottimizzato per la memoria esistente viene rinominato in XTP.
  • SINGLE_USER e RESTRICTED_USER le opzioni 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 verranno eseguiti fino a quando non viene corretto il danneggiamento. Assicurarsi di eseguire DBCC CHECKDB nel Istanza gestita di SQL di origine e usare il backup WITH CHECKSUM per evitare questo problema.
  • .BAK Non è possibile ripristinare il file di un database che contiene eventuali limitazioni descritte in questo documento (ad esempio, FILESTREAM o FILETABLE oggetti) in Istanza gestita di SQL.
  • .BAK i file che contengono più set di backup non possono essere ripristinati.
  • .BAK i file che contengono più file di log non possono essere ripristinati.
  • I backup contenenti database di dimensioni superiori a 8 TB, oggetti OLTP attivi in memoria o numero di file che superano 280 file per istanza non possono essere ripristinati in un'istanza di per utilizzo generico.
  • I backup che contengono database di dimensioni 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 di business critical. Per informazioni sulle istruzioni di ripristino, vedere Istruzioni RESTORE.

Importante

Le stesse limitazioni si applicano all'operazione di ripristino temporizzato predefinita. Ad esempio, per utilizzo generico database maggiore di 4 TB non può essere ripristinato nell'istanza di business critical. business critical database con file OLTP in memoria o più di 280 file non possono essere ripristinati nell'istanza di per utilizzo generico.

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, ma non quella del dialogo:

  • CREATE REMOTE SERVICE BINDING non è supportato.

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

  • ENABLE_BROKER
  • DISABLE_BROKER

Stored procedure, funzioni e trigger

  • NATIVE_COMPILATIONnon è supportato nel livello per utilizzo generico.
  • Le opzioni 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; in caso contrario, 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 deprecato 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.

Funzioni 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 "connettibile" DNS completo, my-managed-instance.wcus17662feb9ce98.database.windows.netad esempio . Vedere @@SERVERNAME.
  • SYS.SERVERS restituisce un nome DNS completo "connettibile", ad esempio myinstance.domain.database.windows.net per le proprietà "name" e "data_source". Vedere SYS. SERVER.
  • @@SERVICENAMErestituisce NULL perché il concetto di servizio esistente per SQL Server non si applica a Istanza gestita di SQL. Vedere @@SERVICENAME.
  • SUSER_ID è supportato. Restituisce NULL se l'account di accesso di Azure AD non è in sys.syslogins. Vedere SUSER_ID.
  • SUSER_SID non è supportata. I dati errati vengono restituiti, ovvero un problema noto temporaneo. Vedere SUSER_SID.

Vincoli di ambiente

Subnet

  • Non è possibile inserire altre risorse ,ad esempio macchine virtuali, nella subnet in cui è stata distribuita la 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 tipi di istanze che è possibile distribuire in un'area presenta alcuni vincoli e limiti.
  • È presente una configurazione di rete che deve essere applicata alla subnet.

Rete virtuale

  • La rete virtuale può essere distribuita usando il modello di risorsa - Il modello classico per la rete virtuale non è supportato.
  • Dopo aver creato un Istanza gestita di SQL, lo spostamento della Istanza gestita di SQL o della rete virtuale 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 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. Pertanto, gli scenari che dipendono dagli oggetti dei database di sistema saranno impossibili nell'istanza secondaria, a meno che gli oggetti non vengano creati manualmente nel database secondario.

TEMPDB

  • Le dimensioni massime del file del tempdb database di 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. Tempdble dimensioni del file di log sono limitate a 120 GB nel livello per utilizzo generico. Alcune query potrebbero restituire un errore se sono necessari più di 24 GB per core o tempdb se producono più di 120 GB di dati di log.
  • Tempdb è sempre suddiviso in 12 file di dati: 1 primario, detto anche master, file di dati e 11 file di dati non primari. Impossibile modificare la struttura dei file e non è possibile aggiungere nuovi file a tempdb.
  • I metadati ottimizzati tempdbper la memoria, una nuova funzionalità di database in memoria SQL Server 2019, non sono supportati.
  • Gli oggetti creati nel database modello non possono essere creati automaticamente dopo tempdb un riavvio o un failover perché tempdb non ottiene l'elenco di oggetti iniziale dal database modello. È necessario creare oggetti manualmente tempdb dopo ogni riavvio o failover.

MSDB

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

Importante

La modifica dei nomi di ruolo 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 queste modifiche verranno ripristinate ai valori predefiniti non appena rilevati o al successivo aggiornamento del servizio al più recente per garantire il normale funzionamento del servizio.

Log degli errori

Istanza gestita di SQL inserisce informazioni dettagliate nei log degli errori. Nel log degli errori vengono registrati molti eventi di sistema interni. Utilizzare una procedura personalizzata per leggere i log degli errori che filtrano alcune voci irrilevanti. Per altre informazioni, vedere Istanza gestita di SQL - sp_readmierrorlog o Istanza gestita di SQL extension(preview) per Azure Data Studio.

Passaggi successivi