Configurare le funzioni di Oracle Database per l'infrastruttura Exadata Cloud
Questo argomento descrive come configurare Oracle Multitenant, la cifratura delle tablespace e le pagine Enormi da utilizzare con l'istanza dell'infrastruttura Exadata Cloud.
- Uso di Oracle Multitenant su un'istanza dell'infrastruttura Exadata Cloud
- Gestione della cifratura della tablespace
- Gestione delle pagine enormi
Argomento padre: guide esplicative
Uso di Oracle Multitenant in un'istanza dell'infrastruttura Exadata Cloud
Quando si crea un'istanza dell'infrastruttura Exadata Cloud che utilizza Oracle Database 12c o versione successiva, viene creato un ambiente Oracle Multitenant.
L'architettura multi-tenant consente a un database Oracle di funzionare come un container database (CDB) multi-tenant che include zero, uno o più pluggable database (PDB). Un PDB è una raccolta portatile di schemi, oggetti di schema e oggetti non di schema che viene visualizzata in un client Oracle Net Services come database non CDB. Tutti i database Oracle che utilizzano versioni precedenti a Oracle Database 12c non sono CDB.
Per utilizzare la cifratura dei dati trasparente (TDE) Oracle in un pluggable database (PDB), è necessario creare e attivare una chiave di cifratura master per il PDB.
In un ambiente multi-tenant, ogni PDB dispone della propria chiave di cifratura master memorizzata in un singolo keystore utilizzato da tutti i contenitori.
È necessario esportare e importare la chiave di cifratura master per qualsiasi PDB cifrato collegato al CDB dell'istanza dell'infrastruttura Exadata Cloud.
Se il PDB di origine è cifrato, è necessario esportare la chiave di cifratura principale, quindi importarla.
È possibile esportare e importare tutte le chiavi di cifratura principali TDE che appartengono al PDB esportando e importando le chiavi di cifratura principali TDE da un PDB. L'esportazione e l'importazione delle chiavi di cifratura principali TDE supportano le operazioni di scollegamento e collegamento del PDB. Durante lo scollegamento e il collegamento di un PDB, vengono coinvolte tutte le chiavi di cifratura principali TDE che appartengono a un PDB, nonché i metadati.
Vedere "Exporting and Importing TDE Master Encryption Keys for a PDB" in Oracle Database Advanced Security Guide per la release 19, 18, 12.2 o 12.1.
Vedere "ADMINISTER KEY MANAGEMENT" in Oracle Database SQL Language Reference per le release 19, 18, 12.2 o 12.1.
Per determinare se è necessario creare e attivare una chiave di cifratura per il PDB
- Richiamare SQL*Plus ed eseguire il login al database come utente
SYS
con privilegiSYSDBA
. -
Impostare il contenitore sul PDB:
SQL> ALTER SESSION SET CONTAINER = pdb;
-
Eseguire la query
V$ENCRYPTION_WALLET
come indicato di seguito.SQL> SELECT wrl_parameter, status, wallet_type FROM v$encryption_wallet;
Se la colonna
STATUS
contiene il valoreOPEN_NO_MASTER_KEY
, è necessario creare e attivare la chiave di cifratura master.
Per creare e attivare la chiave di cifratura master in un PDB
-
Impostare il contenitore sul PDB:
SQL> ALTER SESSION SET CONTAINER = pdb;
-
Creare e attivare una chiave di cifratura master nel PDB eseguendo il comando seguente:
SQL> ADMINISTER KEY MANAGEMENT SET KEY USING TAG 'tag' FORCE KEYSTORE IDENTIFIED BY keystore-password WITH BACKUP USING 'backup_identifier';
Nel comando precedente:
keystore-password
è la password del keystore. Per impostazione predefinita, la password del keystore viene impostata sul valore della password di amministrazione specificata al momento della creazione del database.- La clausola
USING TAG 'tag'
facoltativa può essere utilizzata per associare una tag alla nuova chiave di cifratura principale. - La clausola
WITH BACKUP
e la clausolaUSING 'backup_identifier'
facoltativa possono essere utilizzate per creare un backup del keystore prima della creazione della nuova chiave di cifratura master.
Vedere anche
ADMINISTER KEY MANAGEMENT
nella guida Oracle Database SQL Language Reference for Release19, 18 o 12.2.Nota
Per abilitare le operazioni di gestione delle chiavi mentre il keystore è in uso, Oracle Database 12c Release 2 e successive include l'opzione
FORCE KEYSTORE
del comandoADMINISTER KEY MANAGEMENT
. Questa opzione è disponibile anche per Oracle Database 12c Release 1 con la patch bundle di ottobre 2017 o versione successiva.Se nel database Oracle Database 12c Release 1 non è installata la patch bundle di ottobre 2017 o versione successiva, è possibile eseguire i passi alternativi riportati di seguito.
- Chiudere il keystore.
- Aprire il keystore basato su password.
- Creare e attivare una chiave di cifratura master nel PDB utilizzando
ADMINISTER KEY MANAGEMENT
senza l'opzioneFORCE KEYSTORE
. - Aggiornare il keystore di login automatico utilizzando l'opzione
ADMINISTER KEY MANAGEMENT
con l'opzioneCREATE AUTO_LOGIN KEYSTORE FROM KEYSTORE
.
-
Eseguire nuovamente la query
V$ENCRYPTION_WALLET
per verificare che la colonnaSTATUS
sia impostata suOPEN
:SQL> SELECT wrl_parameter, status, wallet_type FROM v$encryption_wallet;
-
Eseguire la query
V$INSTANCE
e prendere nota del valore nella colonnaHOST_NAME
, che identifica il database server che contiene i file del keystore appena aggiornati:SQL> SELECT host_name FROM v$instance;
-
Copiare i file keystore aggiornati in tutti gli altri database server.
Per distribuire il keystore aggiornato, è necessario eseguire le seguenti azioni su ogni database server che non contiene i file del keystore aggiornati:
-
Connettersi al contenitore radice ed eseguire la query
V$ENCRYPTION_WALLET
. Prendere nota della posizione del keystore contenuta nella colonnaWRL_PARAMETER
:SQL> SELECT wrl_parameter, status FROM v$encryption_wallet;
-
Copiare i file keystore aggiornati.
È necessario copiare tutti i file keystore aggiornati da un database server già aggiornato. Utilizzare la posizione del keystore osservata nella colonna
WRL_PARAMETER
diV$ENCRYPTION_WALLET
.
Aprire il keystore aggiornato:SQL> ADMINISTER KEY MANAGEMENT SET KEYSTORE open FORCE KEYSTORE IDENTIFIED BY keystore-password CONTAINER=all;
Nota
Per abilitare le operazioni di gestione delle chiavi mentre il keystore è in uso, Oracle Database 12c Release 2 e successive include l'opzione
FORCE KEYSTORE
del comandoADMINISTER KEY MANAGEMENT
. Questa opzione è disponibile anche per Oracle Database 12c Release 1 con la patch bundle di ottobre 2017 o versione successiva.Se nel database Oracle Database 12c Release 1 non è installata la patch bundle di ottobre 2017 o versione successiva, è possibile eseguire i passi alternativi riportati di seguito.
- Chiudere il keystore prima di copiare i file del keystore aggiornati.
- Copiare i file keystore aggiornati.
- Aprire il keystore aggiornato utilizzando
ADMINISTER KEY MANAGEMENT
senza l'opzioneFORCE KEYSTORE
.
-
-
Eseguire la query
GV$ENCRYPTION_WALLET
per verificare che la colonnaSTATUS
sia impostata suOPEN
in tutte le istanze di database:SQL> SELECT wrl_parameter, status, wallet_type FROM gv$encryption_wallet;
Per esportare e importare una chiave di cifratura master
- Esportare la chiave di cifratura principale.
- Richiamare SQL*Plus ed eseguire il login al PDB.
-
Eseguire il seguente comando:
SQL> ADMINISTER KEY MANAGEMENT EXPORT ENCRYPTION KEYS WITH SECRET "secret" TO 'filename' IDENTIFIED BY keystore-password;
- Importare la chiave di cifratura principale.
- Richiamare SQL*Plus ed eseguire il login al PDB.
-
Eseguire il seguente comando:
SQL> ADMINISTER KEY MANAGEMENT IMPORT ENCRYPTION KEYS WITH SECRET "secret" FROM 'filename' IDENTIFIED BY keystore-password;
Gestione della cifratura della tablespace
Per impostazione predefinita, tutte le nuove tablespace create in un database Exadata vengono cifrate.
Tuttavia, le tablespace create inizialmente al momento della creazione del database potrebbero non essere cifrate per impostazione predefinita.
- Per i database che utilizzano Oracle Database 12c Release 2 o successiva, vengono cifrate solo le tablespace
USERS
create inizialmente al momento della creazione del database. Non vengono cifrate altre tablespace, incluse quelle nonUSERS
, in:- Il contenitore radice (
CDB$ROOT
). - Il pluggable database iniziale (
PDB$SEED
). - Il primo PDB creato al momento della creazione del database.
- Il contenitore radice (
- Per i database che utilizzano Oracle Database 12c Release 1 o Oracle Database 11g, nessuna delle tablespace create inizialmente al momento della creazione del database viene cifrata.
Per ulteriori informazioni sull'implementazione della cifratura delle tablespace in Exadata e su come influisce sui vari scenari di distribuzione, vedere Funzionamento della cifratura delle tablespace di Oracle Database in Oracle Cloud.
Creazione delle tablespace cifrate
Le tablespace create dall'utente vengono cifrate per impostazione predefinita.
Per impostazione predefinita, tutte le nuove tablespace create utilizzando il comando SQL CREATE TABLESPACE
vengono cifrate con l'algoritmo di cifratura AES128. Non è necessario includere la clausola USING 'encrypt_algorithm'
per utilizzare la cifratura predefinita.
È possibile specificare un altro algoritmo supportato includendo la clausola 'encrypt_algorithm' USING nel comando CREATE TABLESPACE. Gli algoritmi supportati sono AES256, AES192, AES128 e 3DES168.
Gestione della cifratura della tablespace
È possibile gestire il keystore software (noto come wallet Oracle in Oracle Database 11g), la chiave di cifratura master e controllare se la cifratura è abilitata per impostazione predefinita.
Gestione della chiave di cifratura principale
La cifratura delle tablespace utilizza un'architettura basata su chiavi a due livelli per cifrare (e decifrare) in modo trasparente le tablespace. La chiave di cifratura master viene memorizzata in un modulo di sicurezza esterno (keystore software). Questa chiave di cifratura principale viene utilizzata per cifrare la chiave di cifratura della tablespace, che a sua volta viene utilizzata per cifrare e decifrare i dati nella tablespace.
Quando si crea un database in un'istanza di Exadata Cloud Service, viene creato un keystore software locale. Il keystore è locale per i nodi di calcolo ed è protetto dalla password di amministrazione specificata durante il processo di creazione del database. Il keystore del software di login automatico viene aperto automaticamente all'avvio del database.
È possibile modificare (rotazione) la chiave di cifratura master utilizzando l'istruzione ADMINISTER KEY MANAGEMENT SQL
. Ad esempio:
SQL> ADMINISTER KEY MANAGEMENT SET ENCRYPTION KEY USING TAG 'tag'
IDENTIFIED BY password WITH BACKUP USING 'backup';
keystore altered.
Vedere "Managing the TDE Master Encryption Key" nel manuale Oracle Database Advanced Security Guide per la Release 19, 18, 12.2 o 12.1 o "Setting and Resetting the Master Encryption Key" nel manuale Oracle Database Advanced Security Administrator's Guide per la Release 11.2.
Controllo della cifratura della tablespace predefinita
Il parametro di inizializzazione ENCRYPT_NEW_TABLESPACES
controlla la cifratura predefinita delle nuove tablespace. Nei database Exadata, questo parametro è impostato su CLOUD_ONLY
per impostazione predefinita.
I valori di questo parametro sono i seguenti.
Valore | descrizione; |
---|---|
ALWAYS
|
Durante la creazione, le tablespace vengono cifrate in modo trasparente con l'algoritmo AES128 a meno che non venga specificato un altro algoritmo nella clausola ENCRYPTION .
|
CLOUD_ONLY
|
Le tablespace create in un database Exadata vengono cifrate in modo trasparente con l'algoritmo AES128 a meno che non venga specificato un algoritmo diverso nella clausola ENCRYPTION . Per i database non cloud, le tablespace vengono cifrate solo se viene specificata la clausola ENCRYPTION . ENCRYPTION è il valore predefinito.
|
DDL
|
Durante la creazione, le tablespace non vengono cifrate in modo trasparente per impostazione predefinita e vengono cifrate solo se viene specificata la clausola ENCRYPTION .
|
Con Oracle Database 12c Release 2 (12.2) o successiva, non è più possibile creare una tablespace non cifrata in un database Exadata. Se si imposta
ENCRYPT_NEW_TABLESPACES
su DDL
e si esegue un comando CREATE TABLESPACE
senza specificare una clausola ENCRYPTION
, viene restituito un messaggio di errore.
Gestione di pagine enormi
Huge Pages offre notevoli vantaggi in termini di prestazioni a Oracle Database in sistemi con grandi quantità di memoria. Oracle Database su un'istanza dell'infrastruttura Exadata Cloud fornisce impostazioni di configurazione che utilizzano pagine enormi per impostazione predefinita; tuttavia, è possibile apportare modifiche manuali per ottimizzare la configurazione di pagine enormi.
Huge Pages è una funzionalità integrata nel kernel Linux 2.6. L'abilitazione di Huge Pages consente al sistema operativo di supportare pagine di memoria di grandi dimensioni. L'utilizzo di Huge Pages può migliorare le prestazioni del sistema riducendo la quantità di risorse di memoria e CPU del sistema necessarie per gestire le tabelle delle pagine Linux, che memorizzano la mappatura tra gli indirizzi di memoria virtuale e fisica. Per i database Oracle, l'utilizzo di Huge Pages può ridurre drasticamente il numero di voci della tabella delle pagine associate all'area SGA (System Global Area).
Nelle istanze dell'infrastruttura Exadata Cloud, una pagina standard è di 4 KB, mentre una pagina enorme è di 2 MB per impostazione predefinita. Pertanto, un Oracle Database su un sistema DB Exadata con un'area SGA da 50 GB richiede 13.107.200 pagine standard per ospitare l'area SGA, rispetto alle sole 25.600 pagine significative. Il risultato sono tabelle di pagine molto più piccole, che richiedono meno memoria da memorizzare e meno risorse CPU da accedere e gestire.
Regolazione della configurazione delle pagine enormi
La configurazione di Huge Pages per Oracle Database è un processo in due fasi:
-
A livello di sistema operativo, la quantità complessiva di memoria allocata alle pagine enormi è controllata dalla voce vm.nr_hugepages nel file /etc/sysctl.conf. Questa impostazione viene eseguita su ogni nodo di calcolo nell'ambiente ed è consigliabile che l'impostazione sia coerente in tutti i nodi di calcolo. Per modificare l'allocazione della pagina Enorme, è possibile eseguire il seguente comando su ogni nodo di calcolo come utente root:
# sysctl -w vm.nr_hugepages=value
dove
value
è il numero di pagine enormi che si desidera allocare.Nelle istanze dell'infrastruttura Exadata Cloud, ogni pagina enorme è di 2 MB per impostazione predefinita. Pertanto, per allocare 50 GB di memoria a Huge Pages è possibile eseguire il seguente comando:
# sysctl -w vm.nr_hugepages=25600
- A livello di Oracle Database, l'uso delle pagine enormi è controllato dall'impostazione del parametro di istanza
USE_LARGE_PAGES
. Questa impostazione si applica a ogni istanza di database in un database in cluster. Oracle consiglia di impostare un'impostazione coerente in tutte le istanze di database associate a un database. Di seguito sono riportate le opzioni disponibili.TRUE
: specifica che l'istanza di database può utilizzare le pagine Enormi, se disponibili. Per tutte le versioni di Oracle Database dopo 11.2.0.3, Oracle alloca più SGA possibile, utilizzando Huge Pages. Quando l'allocazione Huge Page è esaurita, vengono utilizzate le pagine di memoria standard.FALSE
: specifica che l'istanza di database non utilizza le pagine Enormi. Questa impostazione non è generalmente consigliata se sono disponibili pagine di grandi dimensioni.ONLY
: specifica che l'istanza di database deve utilizzare le pagine Enormi. Con questa impostazione, l'avvio dell'istanza di database non riesce se l'intera SGA non può essere inserita nelle pagine Enormi.
Se si apportano modifiche a livello di sistema operativo o di Oracle Database, assicurarsi che la configurazione complessiva funzioni.
Per ulteriori informazioni, vedere Oracle Database Administrator's Reference for Linux and UNIX-Based Operating Systems per la release 19, 18, 12.1 o 11.2 per una panoramica generale di Huge Pages e per ulteriori informazioni sulla configurazione di Huge Pages. Inoltre, vedere USE_LARGE_PAGES
in Oracle Database Reference per la release 12.2, 12.1 o 11.2.