Progettare e implementare un database Oracle in AzureDesign and implement an Oracle database in Azure

PresuppostiAssumptions

  • Si sta pianificando la migrazione di un database Oracle da locale ad Azure.You're planning to migrate an Oracle database from on-premises to Azure.
  • Si conoscono le varie metriche dei report AWR di Oracle.You have an understanding of the various metrics in Oracle AWR reports.
  • Si ha una conoscenza di base delle prestazioni delle applicazioni e dell'utilizzo della piattaforma.You have a baseline understanding of application performance and platform utilization.

ObiettiviGoals

  • Sapere come ottimizzare la distribuzione di Oracle in Azure.Understand how to optimize your Oracle deployment in Azure.
  • Esplorare le opzioni di ottimizzazione delle prestazioni per un database Oracle in un ambiente Azure.Explore performance tuning options for an Oracle database in an Azure environment.

Differenze tra un'implementazione locale e in AzureThe differences between an on-premises and Azure implementation

Di seguito sono descritti alcuni importanti elementi da tenere in considerazione quando si esegue la migrazione di applicazioni locali ad Azure.Following are some important things to keep in mind when you're migrating on-premises applications to Azure.

Una differenza importante è che in un'implementazione in Azure le risorse, ad esempio VM, dischi e reti virtuali, vengono condivise con gli altri client.One important difference is that in an Azure implementation, resources such as VMs, disks, and virtual networks are shared among other clients. Le risorse possono anche essere limitate in base ai requisiti.In addition, resources can be throttled based on the requirements. Invece di focalizzarsi sull'evitare gli errori (MTBF), Azure è più orientato alla sopravvivenza agli errori (MTTR).Instead of focusing on avoiding failing (MTBF), Azure is more focused on surviving the failure (MTTR).

La tabella seguente elenca alcune differenze tra un'implementazione locale e un'implementazione in Azure di un database Oracle.The following table lists some of the differences between an on-premises implementation and an Azure implementation of an Oracle database.

Implementazione localeOn-premises implementation Implementazione in AzureAzure implementation
ReteNetworking LAN/WANLAN/WAN SDN (Software Defined Networking)SDN (software-defined networking)
Gruppo di sicurezzaSecurity group Strumenti di restrizione per indirizzi IP/porteIP/port restriction tools Gruppo di sicurezza di rete (NSG)Network Security Group (NSG)
ResilienzaResilience MTBF (tempo medio tra gli errori)MTBF (mean time between failures) MTTR (tempo medio per il ripristino)MTTR (mean time to recovery)
Manutenzione pianificataPlanned maintenance Applicazione di patch/aggiornamentiPatching/upgrades Set di disponibilità (applicazione di patch/aggiornamenti gestita da Azure)Availability sets (patching/upgrades managed by Azure)
RisorsaResource DedicatoDedicated Condivisa con altri clientShared with other clients
AreeRegions Data centerDatacenters Coppie di areeRegion pairs
ArchiviazioneStorage Dischi fisici/SANSAN/physical disks Archiviazione gestita da AzureAzure-managed storage
RidimensionareScale Scalabilità verticaleVertical scale Scalabilità orizzontaleHorizontal scale

RequisitiRequirements

  • Determinare le dimensioni e il tasso di crescita del database.Determine the database size and growth rate.
  • Determinare i requisiti IOPS, che è possibile stimare in base ai report AWR di Oracle o ad altri strumenti di monitoraggio della rete.Determine the IOPS requirements, which you can estimate based on Oracle AWR reports or other network monitoring tools.

Opzioni di configurazioneConfiguration options

Esistono quattro potenziali aree che è possibile ottimizzare per migliorare le prestazioni in un ambiente Azure:There are four potential areas that you can tune to improve performance in an Azure environment:

  • Dimensioni della macchina virtualeVirtual machine size
  • Velocità effettiva della reteNetwork throughput
  • Tipi di disco e configurazioniDisk types and configurations
  • Impostazioni della cache su discoDisk cache settings

Generare un report AWRGenerate an AWR report

Se è già disponibile database Oracle di cui si sta pianificando la migrazione ad Azure, esistono diverse opzioni.If you have an existing an Oracle database and are planning to migrate to Azure, you have several options. È possibile eseguire il report AWR di Oracle per ottenere le metriche (operazioni di I/O al secondo, Mbps, GiB e così via).You can run the Oracle AWR report to get the metrics (IOPS, Mbps, GiBs, and so on). Scegliere quindi la VM in base alle metriche raccolte.Then choose the VM based on the metrics that you collected. In alternativa, è possibile contattare il team dell'infrastruttura per ottenere informazioni simili.Or you can contact your infrastructure team to get similar information.

È possibile valutare se eseguire il report AWR durante i carichi di lavoro sia normali che di picco, per poter effettuare un confronto.You might consider running your AWR report during both regular and peak workloads, so you can compare. Attraverso questi report, è possibile ridimensionare le macchine virtuali in base al carico di lavoro medio o al carico di lavoro massimo.Based on these reports, you can size the VMs based on either the average workload or the maximum workload.

Di seguito è riportato un esempio di come generare un report AWR:Following is an example of how to generate an AWR report:

$ sqlplus / as sysdba
SQL> EXEC DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT;
SQL> @?/rdbms/admin/awrrpt.sql

Metriche principaliKey metrics

Di seguito sono indicate le metriche che è possibile ottenere dal report AWR:Following are the metrics that you can obtain from the AWR report:

  • Numero totale di coreTotal number of cores
  • Velocità di clock della CPUCPU clock speed
  • Memoria totale in GBTotal memory in GB
  • Uso della CPUCPU utilization
  • Velocità di trasferimento dati di piccoPeak data transfer rate
  • Frequenza delle modifiche di I/O (lettura/scrittura)Rate of I/O changes (read/write)
  • Velocità del log di ripristino (Mbps)Redo log rate (MBPs)
  • Velocità effettiva della reteNetwork throughput
  • Latenza di rete (bassa/alta)Network latency rate (low/high)
  • Dimensioni del database in GBDatabase size in GB
  • Byte ricevuti tramite SQLNet da e verso il clientBytes received via SQLNet from/to client

Dimensioni della macchina virtualeVirtual machine size

1. Stimare le dimensioni della macchina virtuale in base a utilizzo di CPU, memoria e I/O dal report AWR1. Estimate VM size based on CPU, memory, and I/O usage from the AWR report

Un elemento che è possibile osservare sono i primi cinque eventi in primo piano, che indicano dove sono presenti i colli di bottiglia del sistema.One thing you might look at is the top five timed foreground events that indicate where the system bottlenecks are.

Nel diagramma seguente, ad esempio, la sincronizzazione dei file di log è all'inizio.For example, in the following diagram, the log file sync is at the top. Indica il numero di attese necessarie prima che LGWR scriva il buffer del log nel file di log di ripristino.It indicates the number of waits that are required before the LGWR writes the log buffer to the redo log file. Questi risultati indicano che è necessario migliorare le prestazioni della risorsa di archiviazione o dei dischi.These results indicate that better performing storage or disks are required. Il diagramma indica anche il numero di CPU (core) e la quantità di memoria.In addition, the diagram also shows the number of CPU (cores) and the amount of memory.

Screenshot della pagina del report AWR

Il diagramma seguente mostra l'I/O totale di lettura e scrittura.The following diagram shows the total I/O of read and write. Sono stati registrati 59 GB in lettura e 247,3 GB in scrittura durante il periodo di esecuzione del report.There were 59 GB read and 247.3 GB written during the time of the report.

Screenshot della pagina del report AWR

2. Scegliere una VM2. Choose a VM

In base alle informazioni raccolte dal report AWR, il passaggio successivo è scegliere una macchina virtuale di dimensioni simili che soddisfi i requisiti.Based on the information that you collected from the AWR report, the next step is to choose a VM of a similar size that meets your requirements. È possibile trovare un elenco delle VM disponibili nell'articolo Ottimizzate per la memoria.You can find a list of available VMs in the article Memory optimized.

3. Ottimizzare il dimensionamento delle macchine virtuali con una serie di macchine virtuali simili basate sull'ACU3. Fine-tune the VM sizing with a similar VM series based on the ACU

Dopo avere scelto la VM, prestare attenzione all'ACU per la VM.After you've chosen the VM, pay attention to the ACU for the VM. In base al valore ACU, è possibile scegliere una macchina virtuale diversa più adatta agli specifici requisiti.You might choose a different VM based on the ACU value that better suits your requirements. Per altre informazioni, vedere Unità di calcolo di Azure.For more information, see Azure compute unit.

Screenshot della pagina delle unità ACU

Velocità effettiva della reteNetwork throughput

Come illustra il diagramma seguente, esiste una relazione tra velocità effettiva e IOPS:The following diagram shows the relation between throughput and IOPS:

Screenshot della velocità effettiva

La velocità effettiva totale della rete viene stimata in base alle informazioni seguenti:The total network throughput is estimated based on the following information:

  • Traffico SQLNetSQLNet traffic
  • Mbps x numero di server (flusso in uscita, ad esempio Oracle Data Guard)MBps x number of servers (outbound stream such as Oracle Data Guard)
  • Altri fattori, ad esempio la replica dell'applicazioneOther factors, such as application replication

Screenshot della velocità effettiva SQL*Net

In base ai requisiti di larghezza di banda della rete, sono disponibili diversi tipi di gateway tra cui scegliere,Based on your network bandwidth requirements, there are various gateway types for you to choose from. ad esempio Basic, VpnGw e Azure ExpressRoute.These include basic, VpnGw, and Azure ExpressRoute. Per altre informazioni, vedere la pagina Prezzi di Gateway VPN.For more information, see the VPN gateway pricing page.

RaccomandazioniRecommendations

  • La latenza di rete è superiore rispetto a una distribuzione locale.Network latency is higher compared to an on-premises deployment. La riduzione dei round trip di rete può migliorare notevolmente le prestazioni.Reducing network round trips can greatly improve performance.
  • Per ridurre i round trip, consolidare le applicazioni con transazioni elevate o con un livello di comunicazioni elevato nella stessa macchina virtuale.To reduce round-trips, consolidate applications that have high transactions or “chatty” apps on the same virtual machine.

Tipi di disco e configurazioniDisk types and configurations

  • Dischi del sistema operativo predefiniti: questi tipi di dischi offrono dati persistenti e memorizzazione nella cache.Default OS disks: These disk types offer persistent data and caching. Sono ottimizzati per l'accesso del sistema operativo all'avvio e non sono progettati per i carichi di lavoro transazionali o di data warehouse (analitici).They are optimized for OS access at startup, and aren't designed for either transactional or data warehouse (analytical) workloads.

  • Dischi non gestiti: con questo tipi di dischi, si gestiscono gli account di archiviazione che archiviano i file di disco rigido virtuale (VHD) che corrispondono ai dischi delle macchine virtuali.Unmanaged disks: With these disk types, you manage the storage accounts that store the virtual hard disk (VHD) files that correspond to your VM disks. I file VHD vengono archiviati come BLOB di pagine in account di archiviazione di Azure.VHD files are stored as page blobs in Azure storage accounts.

  • Dischi gestiti: Azure gestisce gli account di archiviazione usati per i dischi delle macchine virtuali.Managed disks: Azure manages the storage accounts that you use for your VM disks. Specificare il tipo di disco (Premium o Standard) e la dimensione del disco necessaria.You specify the disk type (premium or standard) and the size of the disk that you need. Azure crea e gestisce il disco automaticamente.Azure creates and manages the disk for you.

  • Dischi di archiviazione Premium: questi tipi di dischi sono ideali per i carichi di lavoro di produzione.Premium storage disks: These disk types are best suited for production workloads. Archiviazione Premium supporta i dischi di VM che possono essere collegati a VM di serie con dimensioni specifiche, ad esempio VM serie DS, DSv2, GS e F.Premium storage supports VM disks that can be attached to specific size-series VMs, such as DS, DSv2, GS, and F series VMs. Il disco Premium può essere di varie dimensioni ed è possibile scegliere tra dischi compresi tra 32 GB e 4.096 GB.The premium disk comes with different sizes, and you can choose between disks ranging from 32 GB to 4,096 GB. Ciascuna dimensione di disco ha le proprie specifiche in termini di prestazioni.Each disk size has its own performance specifications. A seconda dei requisiti dell'applicazione è possibile collegare uno o più dischi alla VM.Depending on your application requirements, you can attach one or more disks to your VM.

Quando si crea un nuovo disco gestito dal portale, è possibile scegliere il tipo di account per il tipo di disco da usare.When you create a new managed disk from the portal, you can choose the Account type for the type of disk you want to use. Tenere presente che non tutti i dischi disponibili sono visualizzati nel menu a discesa.Keep in mind that not all available disks are shown in the drop-down menu. Dopo avere scelto determinate dimensioni per la VM, il menu mostra solo gli SKU di Archiviazione Premium disponibili in base a tali dimensioni della VM.After you choose a particular VM size, the menu shows only the available premium storage SKUs that are based on that VM size.

Screenshot della pagina del disco gestito

Per altre informazioni, vedere Archiviazione Premium a prestazioni elevate e dischi gestiti per le VM.For more information, see High-performance Premium Storage and managed disks for VMs.

Dopo avere configurato la risorsa di archiviazione in una macchina virtuale, è possibile sottoporre i dischi a test di carico prima di creare un database.After you configure your storage on a VM, you might want to load test the disks before creating a database. Conoscendo la velocità di I/O in termini di latenza e velocità effettiva, è possibile determinare se le macchine virtuali supportano la velocità effettiva prevista con gli obiettivi di latenza.Knowing the I/O rate in terms of both latency and throughput can help you determine if the VMs support the expected throughput with latency targets.

Sono disponibili numerosi strumenti per il test di carico delle applicazioni, ad esempio Oracle Orion, Sysbench e Fio.There are a number of tools for application load testing, such as Oracle Orion, Sysbench, and Fio.

Dopo avere distribuito un database Oracle, eseguire nuovamente il test di carico.Run the load test again after you've deployed an Oracle database. Avviare i carico di lavoro normali e di picco. I risultati indicheranno la baseline dell'ambiente.Start your regular and peak workloads, and the results show you the baseline of your environment.

Può essere più importante ridimensionare l'archiviazione in base alla frequenza di operazioni di I/O al secondo invece che alle dimensioni di archiviazione.It might be more important to size the storage based on the IOPS rate rather than the storage size. Se ad esempio le operazioni di I/O al secondo necessarie sono 5.000, ma servono solo 200 GB, si potrebbe comunque scegliere il disco Premium classe P30 anche se ha più di 200 GB di spazio di archiviazione.For example, if the required IOPS is 5,000, but you only need 200 GB, you might still get the P30 class premium disk even though it comes with more than 200 GB of storage.

Dal report AWR si può ottenere la frequenza di operazioni di I/O,The IOPS rate can be obtained from the AWR report. che è determinata da log di rollforward, letture fisiche e frequenza delle scritture.It's determined by the redo log, physical reads, and writes rate.

Screenshot della pagina del report AWR

Ad esempio: la dimensione di rollforward è 12.200.000 byte al secondo, equivalente a 11,63 Mbps.For example, the redo size is 12,200,000 bytes per second, which is equal to 11.63 MBPs. Le operazioni di I/O al secondo corrispondono a 12.200.000/2.358 = 5.174.The IOPS is 12,200,000 / 2,358 = 5,174.

Dopo avere ottenuto un quadro preciso dei requisiti di I/O, è possibile scegliere la combinazione delle unità più adatte per soddisfare tali requisiti.After you have a clear picture of the I/O requirements, you can choose a combination of drives that are best suited to meet those requirements.

RaccomandazioniRecommendations

  • Per lo spazio di tabella dei dati, ripartire il carico di lavoro di I/O tra diversi dischi usando l'archiviazione gestita o Oracle ASM.For data tablespace, spread the I/O workload across a number of disks by using managed storage or Oracle ASM.
  • Con l'aumento della dimensione dei blocchi di I/O, per le operazioni intensive di lettura e di scrittura, aggiungere più dischi dati.As the I/O block size increases for read-intensive and write-intensive operations, add more data disks.
  • Aumentare la dimensione dei blocchi per i processi sequenziali di grandi dimensioni.Increase the block size for large sequential processes.
  • Usare la compressione dei dati per ridurre le operazioni di I/O (per i dati e gli indici).Use data compression to reduce I/O (for both data and indexes).
  • Separare i log di rollforward, di sistema e temporanei e annullare TS nei dischi dati separati.Separate redo logs, system, and temps, and undo TS on separate data disks.
  • Non inserire alcun file dell'applicazione nei dischi del sistema operativo predefiniti (dev/sda).Don't put any application files on default OS disks (/dev/sda). Questi dischi non sono ottimizzati per l'avvio rapido delle macchine virtuali e potrebbero non offrire prestazioni valide per l'applicazione.These disks aren't optimized for fast VM boot times, and they might not provide good performance for your application.

Impostazioni della cache su discoDisk cache settings

Sono disponibili tre opzioni per la memorizzazione nella cache dell'host:There are three options for host caching:

  • Sola lettura: tutte le richieste sono memorizzate nella cache per le letture future.Read-only: All requests are cached for future reads. Tutte le scritture vengono rese persistenti direttamente nell'archivio BLOB di Azure.All writes are persisted directly to Azure Blob storage.

  • Lettura/scrittura: si tratta di un algoritmo "read-ahead".Read-write: This is a “read-ahead” algorithm. Le letture e le scritture sono memorizzate nella cache per le letture future.The reads and writes are cached for future reads. Le scritture non write-through sono rese persistenti prima nella cache locale.Non-write-through writes are persisted to the local cache first. Per SQL Server, le scritture sono rese persistenti in Archiviazione di Microsoft Azure perché usa le scritture write-through.For SQL Server, writes are persisted to Azure Storage because it uses write-through. Offre anche la latenza del disco più bassa per i carichi di lavoro leggeri.It also provides the lowest disk latency for light workloads.

  • Nessuna (disabilitata): usando questa opzione, è possibile ignorare la cache.None (disabled): By using this option, you can bypass the cache. Tutti i dati vengono trasferiti sul disco e resi persistenti in Archiviazione di Azure.All the data is transferred to disk and persisted to Azure Storage. Questo metodo offre la massima frequenza di I/O per i carichi di lavoro con un uso intensivo dell'I/O.This method gives you the highest I/O rate for I/O intensive workloads. È anche necessario considerare il costo delle transazioni.You also need to take “transaction cost” into consideration.

RaccomandazioniRecommendations

Per ottimizzare la velocità effettiva, è consigliabile iniziare con l'opzione Nessuna per la memorizzazione nella cache dell'host.To maximize the throughput, we recommend that you start with None for host caching. Per Archiviazione Premium, tenere presente che è necessario disabilitare le "barriere" quando si esegue il montaggio del file system con le opzioni Sola lettura o Nessuna.For Premium Storage, keep in mind that you must disable the "barriers" when you mount the file system with the ReadOnly or None options. Aggiornare il file /etc/fstab con l'UUID dei dischi.Update the /etc/fstab file with the UUID to the disks.

Per altre informazioni, vedere Archiviazione Premium per VM Linux.For more information, see Premium Storage for Linux VMs.

Screenshot della pagina del disco gestito

  • Per i dischi del sistema operativo, usare la memorizzazione nella cache Lettura/scrittura predefinita.For OS disks, use default Read/Write caching.
  • Per SYSTEM, TEMP e UNDO usare Nessuna per la memorizzazione nella cache.For SYSTEM, TEMP, and UNDO use None for caching.
  • Per DATA usare Nessuna per la memorizzazione nella cache,For DATA, use None for caching. ma se il database è di sola lettura o esegue un'intensa attività di lettura, usare la memorizzazione nella cache Sola lettura.But if your database is read-only or read-intensive, use Read-only caching.

Dopo avere salvato l'impostazione del disco dati, non è possibile modificare l'impostazione della cache host, a meno che l'unità a livello di sistema operativo non venga smontata e quindi rimontata dopo avere apportato la modifica.After your data disk setting is saved, you can't change the host cache setting unless you unmount the drive at the OS level and then remount it after you've made the change.

SicurezzaSecurity

Dopo avere installato e configurato l'ambiente Azure, il passaggio successivo consiste nel proteggere la rete.After you have set up and configured your Azure environment, the next step is to secure your network. Di seguito sono elencati alcuni suggerimenti:Here are some recommendations:

  • Criteri del gruppo di sicurezza di rete: il gruppo di sicurezza di rete può essere definito da una subnet o una scheda di interfaccia di rete.NSG policy: NSG can be defined by a subnet or NIC. È più semplice controllare l'accesso a livello di subnet per la sicurezza e forzare il routing per elementi come i firewall per le applicazioni.It's simpler to control access at the subnet level both for security and force routing for things like application firewalls.

  • Jumpbox: per una maggiore sicurezza dell'accesso, gli amministratori non devono connettersi direttamente al servizio dell'applicazione o al database.Jumpbox: For more secure access, administrators should not directly connect to the application service or database. Viene usato un jumpbox come elemento intermedio tra il computer dell'amministratore e le risorse di Azure.A jumpbox is used as a media between the administrator machine and Azure resources. Screenshot della pagina della topologia jumpboxScreenshot of the Jumpbox topology page

    Il computer dell'amministratore deve offrire accesso con restrizioni IP al solo jumpbox.The administrator machine should offer IP-restricted access to the jumpbox only. Il jumpbox deve avere accesso all'applicazione e al database.The jumpbox should have access to the application and database.

  • Rete privata (subnet): è consigliabile tenere il servizio dell'applicazione e il database in subnet separate, per garantire un maggiore controllo ai criteri del gruppo di sicurezza di rete.Private network (subnets): We recommend that you have the application service and database on separate subnets, so better control can be set by NSG policy.

Informazioni aggiuntiveAdditional reading

Passaggi successiviNext steps