Pianificare, distribuire e verificare Azure SQL

Completato

Dopo aver selezionato un carico di lavoro per la migrazione o la creazione in Azure SQL, è necessario pianificare la distribuzione, distribuirla di conseguenza e verificare che sia stata eseguita correttamente. In questa unità vengono illustrati i vari metodi per ogni passaggio del processo.

Pianificazione pre-distribuzione

Prima di iniziare a distribuire gli elementi in Azure, è importante comprendere i requisiti e il modo in cui vengono mappati alle offerte in Azure SQL. Creare un piano con quanto appreso nel modulo Introduzione ad Azure SQL. È necessario per rispondere alle domande seguenti:

  • Metodo di distribuzione: portale di Azure o interfaccia della riga di comando?
  • Opzione di distribuzione: macchina virtuale, database, pool elastico, istanza gestita o pool di istanze?
  • Modello di acquisto (solo database Azure SQL): DTU o vCore?
  • Livello di servizio: per utilizzo generico, business critical o Hyperscale?
  • Hardware: quinta generazione o qualcosa di nuovo?
  • Dimensionamento: numero di vCore e dimensioni massime dei dati?

Eventualmente, prima di rispondere alle domande precedenti, è anche necessario selezionare un carico di lavoro di cui verrà eseguita la migrazione ad Azure SQL o nato nel cloud. Se si esegue la migrazione, sono disponibili molti strumenti e risorse per la pianificazione, la valutazione, la migrazione e l'ottimizzazione dei database e dell'applicazione. Le risorse vengono fornite alla fine di questo modulo.

Limiti delle risorse

Nel modulo introduttivo ad Azure SQL sono stati descritti limiti, tariffe e funzionalità, come operazioni di I/O al secondo o OLTP in memoria. Esistono altri limiti delle risorse interessati dalla scelta di Istanza gestita di SQL di Azure e del database SQL di Azure o dalle opzioni all'interno di queste scelte:

  • Memoria
  • Dimensioni massime del log
  • Velocità del log delle transazioni
  • Operazioni di I/O al secondo dei dati
  • Dimensioni di tempdb
  • Numero massimo di ruoli di lavoro simultanei
  • Conservazione dei backup

I limiti per Istanza gestita di SQL di Azure e il database SQL di Azure dipendono dalle scelte effettuate per il modello di acquisto, il livello di servizio e il numero di vCore o di DTU solo nel database SQL di Azure.

Istanza gestita di SQL di Azure e il database SQL sono offerte di piattaforma distribuita come servizio (PaaS). La limitazione di queste scelte non dovrebbe impedire la possibilità di usare completamente un servizio gestito di SQL Server.

All'interno di un'istanza del database SQL di Azure per utilizzo generico, anche la scelta del calcolo con provisioning o serverless influisce su questi limiti. Prima di eseguire l’implementazione, esaminare gli elementi inclusi nella distribuzione pianificata per assicurarsi di iniziare con ciò che è necessario.

Le risorse di Azure SQL hanno limiti di risorse complessivi per sottoscrizione e per area. Se è necessario aumentare i limiti, è possibile richiedere un aumento della quota nel portale di Azure.

Distribuzione

Dopo aver completato la pianificazione pre-distribuzione, è possibile implementare il proprio piano. In questa fase si implementa Azure SQL (usando il portale o la riga di comando di Azure), si stabilirà la configurazione di rete e si effettuerà una connessione iniziale.

Per il database SQL di Azure e l'Istanza gestita di SQL di Azure, nel portale di Azure sono essenzialmente presenti sei riquadri da compilare durante una distribuzione.

Diagramma dei riquadri di distribuzione per SQL di Azure.

Server

Quando si crea un'istanza gestita di SQL di Azure, è possibile specificare il nome del server come in SQL Server, Per i database e i pool elastici è necessario un server di database SQL di Azure. Un server di database SQL di Microsoft Azure è un server logico che funge da punto di amministrazione centrale per un database in pool o singolo. e che include account di accesso, regole del firewall, regole di controllo, criteri di rilevamento delle minacce e gruppi di failover. Altre informazioni su questi elementi verranno fornite più avanti.

Questo server logico non espone le funzionalità o gli accessi a livello di istanza come con l'Istanza gestita di Azure SQL. Per i server di database SQL di Azure, il nome del server deve essere univoco in tutte le aree di Azure.

Calcolo e archiviazione

Nel modulo precedente di questo percorso di apprendimento sono state illustrate le opzioni e le raccomandazioni per il calcolo e l'archiviazione, inclusi i livelli di servizio, i modelli di acquisto e le generazioni hardware. È necessario selezionare la configurazione desiderata durante la distribuzione. È anche necessario determinare il numero di vCore e le dimensioni massime dei dati.

In genere, in caso di migrazione, usare una dimensione simile a quella usata in locale. È anche possibile usare strumenti come l'utilità di suggerimento dello SKU di Data Migration Assistant per stimare il numero di vCore e le dimensioni massime dei dati in base al carico di lavoro corrente.

Le dimensioni massime dei dati non corrispondono necessariamente a quelle attuali dei dati. Si tratta della quantità massima di spazio dati che è possibile allocare per il database. Ciò sarà utile anche per comprendere l'allocazione dello spazio del log, che viene ridimensionato con le dimensioni massime dei dati.

Configurazione della rete

Le opzioni per la rete per il database SQL di Azure e l'Istanza gestita di SQL di Azure sono diverse. Quando si distribuisce un database SQL di Azure, attualmente l'impostazione predefinita è Nessun accesso.

È possibile selezionare un endpoint pubblico o un endpoint privato. Nell'esercizio che segue questa unità usare l'endpoint pubblico e impostare l'opzione Consenti alle risorse e ai servizi di Azure di accedere a questo server su . Altri servizi di Azure possono quindi accedere al database, ad esempio Azure Data Factory o Macchine virtuali di Azure. È anche possibile selezionare Aggiungi indirizzo IP client corrente per potersi connettere dall'indirizzo IP del computer client usato per distribuire il database Azure SQL.

Con Istanza gestita di SQL di Azure, si esegue la distribuzione all'interno di una rete virtuale di Azure e di una subnet dedicata alle istanze gestite, che consente di disporre di un indirizzo IP privato protetto. Istanza gestita di SQL di Azure è in grado di connettere una rete locale a un'istanza gestita, connettere un'istanza gestita a un server collegato o a un altro archivio dati locale e connettere un'istanza gestita ad altre risorse.

È anche possibile abilitare un endpoint pubblico per potersi connettere a un'istanza gestita da Internet senza una rete privata virtuale (VPN). Questo accesso è disabilitato per impostazione predefinita.

Origine dati

Nel database Azure SQL è possibile selezionare il database AdventureWorksLT al momento della distribuzione come esempio nel portale di Azure. In Istanza gestita di SQL di Azure si distribuisce prima l'istanza e quindi i database al suo interno. Non è possibile avere il database di esempio al momento della distribuzione, simile a SQL Server. Per altre informazioni sui database di esempio AdventureWorks, vedere GitHub.

È anche possibile distribuire un database vuoto o creare un database basato sul ripristino da un backup con replica geografica.

Regole di confronto di database

Le regole di confronto in SQL Server e in SQL di Azure indicano al motore di database come trattare determinati caratteri e linguaggi. Una regola di confronto fornisce regole di ordinamento e proprietà di distinzione tra maiuscole e minuscole e tra caratteri accentati e non accentati per i dati.

Quando si crea un nuovo database SQL o un'istanza gestita SQL, tenere conto dei requisiti per le impostazioni locali dei dati. Il set di regole di confronto influisce sulle caratteristiche di molte operazioni nel database. Nel prodotto SQL Server le impostazioni locali del sistema operativo determinano in genere le regole di confronto predefinite.

In Istanza gestita di SQL di Azure è possibile impostare le regole di confronto del server al momento della creazione dell'istanza. Non è possibile modificarlo in un secondo momento. Con le regole di confronto del server viene configurata l'impostazione predefinita per tutti i database nell'Istanza gestita di SQL, ma è possibile modificare le regole di confronto a livello di database e di colonna.

Nel database SQL di Azure non è possibile impostare le regole di confronto del server. Vengono impostate sulle regole di confronto predefinite e più comuni di SQL_Latin1_General_CP1_CI_AS, ma è possibile impostare le regole di confronto del database. Ecco la descrizione dei singoli elementi:

  • SQL indica che si tratta di una regola di confronto di SQL Server, a differenza delle regole di confronto di Windows o binarie.
  • Latin1_General specifica l'alfabeto o la lingua da usare durante l'ordinamento.
  • CP1 fa riferimento alla tabella codici usata dalle regole di confronto.
  • CI significa che non fa distinzione tra maiuscole e minuscole. CS significa che distingue tra maiuscole e minuscole.
  • AS significa che distingue tra caratteri accentati e non accentati. AI significa che non fa distinzione tra caratteri accentati e non accentati.

Sono disponibili altre opzioni, ad esempio la larghezza dei caratteri e la codifica UTF-8. Nella documentazione sono disponibili altre informazioni sulle operazioni consentite e non consentite in Azure SQL.

Consenso esplicito per Microsoft Defender for Cloud

Quando si distribuisce database SQL di Azure nel portale di Azure, viene chiesto se si vuole abilitare Microsoft Defender per il cloud in una versione di prova gratuita. Seleziona Avvia la versione di valutazione gratuita. Dopo la scadenza della versione di prova gratuita, il costo di Defender per il cloud viene addebitato in base ai prezzi del livello standard di Microsoft Defender per il cloud.

Dopo l'abilitazione, sono disponibili funzionalità di identificazione e mitigazione di potenziali vulnerabilità del database e di rilevamento delle minacce. Per altre informazioni su queste funzionalità, vedere il modulo di sicurezza successivo di questo percorso di apprendimento.

In Istanza gestita di SQL di Azure è possibile abilitare Microsoft Defender for Cloud nell'istanza dopo la distribuzione.

Revisione delle selezioni

Nel riquadro Rivedi e crea esaminare le selezioni per la distribuzione e le condizioni di Azure Marketplace.

Suggerimento

È anche disponibile l'opzione Scarica un modello per l'automazione, che fornisce un modello di Azure Resource Manager (modello di ARM) per distribuzioni configurabili e ripetibili. Questa unità non prende in esame i modelli di ARM. Se si è interessati, vedere altre informazioni sulle specifiche di modello.

Dettagli di implementazione della distribuzione chiave

Sebbene Azure si occupa della distribuzione, esistono alcuni dettagli di implementazione della distribuzione di cui è necessario tenere conto. Tutti i servizi sono basati sulla backbone di Azure, nota come Azure Service Fabric. Sapere come alcuni di questi servizi vengono distribuiti e ridimensionati in Azure Service Fabric è utile per comprendere i vari comportamenti che si potrebbero osservare.

Istanza gestita di SQL di Azure

Per Istanza gestita di SQL di Azure, Azure distribuisce dietro le quinte un anello dedicato (talvolta denominato cluster virtuale) per il servizio. Questa architettura contribuisce a garantire sicurezza e supporto nativo per le reti virtuali.

A causa di questa architettura, le operazioni di distribuzione e ridimensionamento possono richiedere più tempo. Ad esempio, quando si esegue la l'aumento o la riduzione delle dimensioni, Azure distribuisce un nuovo cluster virtuale e quindi ne esegue il seeding con i dati. È possibile considerare ogni istanza come in esecuzione in una singola macchina virtuale.

I pool di istanze di SQL di Azure sono stati introdotti per ridurre i tempi di distribuzione. È possibile pre-distribuire un pool di risorse dedicate. La distribuzione in un pool e il ridimensionamento all'interno di un pool sono più veloci delle distribuzioni tradizionali. Anche la densità di compressione è maggiore, perché è possibile distribuire più istanze all'interno di una singola macchina virtuale.

database SQL di Azure

Il database SQL di Azure è contenuto in un server di database logico. Nella maggior parte dei casi, un'istanza di SQL Server dedicata ospita il database SQL, ma non è necessario preoccuparsi della gestione dell'istanza.

Il server di database logico consente di stabilire una connessione. Consente anche di raggruppare e gestire insieme determinate autorizzazioni e configurazioni. All'interno di ogni server di database logico è presente un database primario logico, che può fornire la diagnostica a livello di istanza.

Database SQL di Azure - Hyperscale

Il livello Hyperscale nel database SQL di Azure, non disponibile in Istanza gestita di SQL di Azure, ha un'architettura univoca per Azure SQL. Il team di Azure SQL ha riprogettato Hyperscale per il cloud. Questa architettura include un sistema di memorizzazione nella cache a più livelli che può essere utile sia per la velocità che per la scalabilità. Il ridimensionamento e altre operazioni non sono più correlate alle dimensioni dei dati e possono essere completate in un tempo costante, in genere pochi minuti. L'utilizzo dell'archiviazione remota consente anche backup di snapshot.

In un modulo successivo del percorso di apprendimento sui concetti fondamentali di Azure SQL, vengono presentate altre informazioni relative all'architettura e al modo in cui influisce sulle prestazioni e sulla disponibilità. Una considerazione importante durante la fase di distribuzione è che, dopo aver spostato un database nel livello Hyperscale, non è possibile tornare indietro al livello per utilizzo generico o business critical.

Governance delle risorse

Quando si aumentano o si riducono le risorse in un livello di servizio, i limiti delle dimensioni, ad esempio CPU, archiviazione e memoria, potrebbero variare fino a raggiungere una determinata soglia. Nonostante esista un approccio multiforme alla governance in Azure SQL, per amministrare l'utilizzo delle risorse in Azure SQL vengono usate principalmente le tre tecnologie seguenti:

  • Gli oggetti processo di Windows consentono di gestire e governare un gruppo di processi come unità. Gli oggetti processo vengono usati per gestire il commit della memoria virtuale del file, i limiti dei working set, l'affinità della CPU e i limiti di frequenza. È possibile usare la vista DMV sys.dm_os_job_object per visualizzare i limiti esistenti.
  • Resource Governor è una funzionalità di SQL Server che consente agli utenti (e in questo caso ad Azure) di gestire risorse come la CPU, l'I/O fisico e la memoria. Istanza gestita di SQL di Azure consente di usare anche pool e gruppi di carichi di lavoro definiti dall'utente per Resource Governor.
  • Gestione risorse file server è disponibile in Windows Server. Gestisce le quote di directory dei file, che vengono usate per gestire le dimensioni massime dei dati.

Implementazioni aggiuntive per gestire la frequenza dei log delle transazioni sono incorporate nel motore di database, tramite la governance della frequenza dei log delle transazioni. Questo processo limita le velocità elevate di inserimento per i carichi di lavoro, ad esempio BULK INSERT, SELECT INTO e le compilazioni di indici. Vengono registrate e applicate a livello di frazione di secondo. Attualmente eseguono il ridimensionamento in modo lineare all'interno di un livello di servizio.

Verifica

Dopo aver completato la distribuzione, è necessario verificarla. In questa fase, in genere si verificano i risultati nel portale di Azure o nell'interfaccia della riga di comando di Azure, si eseguono alcune query che verificano la configurazione della distribuzione e si apportano le modifiche necessarie.

Per l'Istanza gestita di SQL di Azure e il database SQL di Azure, la prima cosa che si può fare è verificare lo stato del database o dell'istanza con il portale di Azure o l'interfaccia della riga di comando di Azure. Successivamente, è possibile esaminare i dettagli di distribuzione e il log attività per assicurarsi che non siano presenti errori o problemi attivi.

Per Istanza gestita di SQL di Azure, è possibile controllare il log degli errori, un'operazione comune da eseguire in SQL Server in locale o in una macchina virtuale di Azure. Questa funzionalità non è disponibile nel database Azure SQL.

È infine possibile verificare che la rete sia configurata correttamente, ottenere il nome del server e connettersi in uno strumento come SQL Server Management Studio o Azure Data Studio. È possibile eseguire le query seguenti per conoscere in dettaglio il contenuto della distribuzione e verificare che sia stato distribuito correttamente:

SELECT @@VERSION
SELECT * FROM sys.databases
SELECT * FROM sys.objects
SELECT * FROM sys.dm_os_schedulers
SELECT * FROM sys.dm_os_sys_info
SELECT * FROM sys.dm_os_process_memory --Not supported in Azure SQL Database
SELECT * FROM sys.dm_exec_requests
SELECT SERVERPROPERTY('EngineEdition')
SELECT * FROM sys.dm_user_db_resource_governance -- Available only in Azure SQL Database and SQL Managed Instance
SELECT * FROM sys.dm_instance_resource_governance -- Available only in Azure SQL Managed Instance
SELECT * FROM sys.dm_os_job_object -- Available only in Azure SQL Database and SQL Managed Instance

Una query correlata alla memoria dei processi del sistema operativo non è supportata nel database Azure SQL, anche se può sembrare che venga eseguita normalmente. Questa query non è supportata perché con il database SQL di Azure alcuni elementi correlati al sistema operativo vengono astratti dall'utente, che in questo modo può concentrarsi sul database.

Le ultime tre query sono disponibili solo nel database SQL di Azure e in Istanza gestita di SQL di Azure. La prima, sys.dm_user_db_resource_governance, restituisce le impostazioni di configurazione e capacità usate dai meccanismi di governance delle risorse nel database corrente o nel pool elastico. Con la seconda, sys.dm_instance_resource_governance, è possibile ottenere informazioni simili per Istanza gestita di SQL di Azure. La terza, sys.dm_os_job_object, restituirà una singola riga che descrive la configurazione dell'oggetto processo che gestisce il processo di SQL Server, oltre alle statistiche sull'uso delle risorse.

I due esercizi successivi illustrano tutti i dettagli relativi alla distribuzione del database SQL di Azure o di Istanza gestita di SQL di Azure. Si usa la sottoscrizione di Azure per distribuire il database SQL di Azure. Dopo la distribuzione, si usano varie query di verifica e notebook SQL già eseguiti in Azure Data Studio per confrontare il database SQL, Istanza gestita di SQL e SQL Server 2019.

Verifica delle conoscenze

1.

Quali delle opzioni seguenti hanno limiti basati sull'opzione di distribuzione e sul livello di servizio?

2.

Per la verifica delle distribuzioni, alcune nuove query sono specifiche del database SQL di Azure e di Istanza gestita di SQL di Azure. Quali delle query seguenti sono disponibili solo per la piattaforma distribuita come servizio (PaaS) Azure SQL?