Funzioni di Oracle Database in Autonomous Database on Dedicated Exadata Infrastructure
Questo articolo fornisce informazioni sull'uso delle funzioni e delle opzioni di Oracle Database in Autonomous Database sull'infrastruttura Exadata dedicata.
Per informazioni equivalenti nelle distribuzioni Autonomous Database serverless, vedere Autonomous Database per utenti esperti del database.
È possibile eseguire il provisioning di un Autonomous Database con Oracle Database 19c o Oracle Database 23ai, a seconda della versione software del database dell'Autonomous Container Database (ACD) padre. Ad esempio, per creare un Autonomous Database con Oracle Database 23ai, è necessario scegliere un ACD la cui versione del software del database Oracle è 23ai. Per un elenco completo delle funzioni di database supportate da ciascuna di queste versioni di database, vedere Oracle Database 23ai o Oracle Database 19c su Oracle Help Center.
Autonomous Database configura e ottimizza il tuo database per te. Non è necessario eseguire operazioni di amministrazione per la configurazione del database. I comandi SQL utilizzati esclusivamente per l'amministrazione del database non sono disponibili in questo servizio. Analogamente, non sono disponibili altre interfacce e utility amministrative quali RMAN
.
Parliamo di come vengono gestite alcune delle funzioni chiave del database Oracle in un Autonomous Database:
- Tablespace di dati e temporanee: i dati predefiniti e le tablespace temporanee per il database vengono configurati automaticamente. Il nome della tablespace dati predefinita è DATA.
- Set di caratteri del database: il set di caratteri del database è Unicode AL32UTF8.
- Cifratura dei dati memorizzati: i dati memorizzati vengono cifrati utilizzando l'algoritmo AES256 (chiave di cifratura Advanced Encryption Standard a 256 bit).
Nota
Gli Autonomous Database creati prima di settembre 2021 utilizzano l'algoritmo AES128 per impostazione predefinita.Se necessario, è possibile modificare l'algoritmo di cifratura per una tablespace utilizzando il comandoALTER TABLESPACE
. Ad esempio, per modificare l'algoritmo di cifratura della tablespace DATA in AES256, immettere:ALTER TABLESPACE data ENCRYPTION ONLINE USING 'AES256' REKEY;
- Compressione dei dati: per i carichi di lavoro Autonomous Transaction Processing, la compressione non è abilitata per impostazione predefinita. Per i carichi di lavoro di Autonomous Data Warehouse, la compressione a colonne ibrida è abilitata per impostazione predefinita per tutte le tabelle.
Per abilitare o disabilitare la compressione o per specificare metodi di compressione diversi per le tabelle utilizzando la clausola
table_compression
nel comandoCREATE TABLE
oALTER TABLE
. - Accesso al database: non si dispone dell'accesso diretto al nodo del database o al file SYSTEM locale e alle tablespace SYSTEM o SYSAUX.
- Esecuzione parallela: per impostazione predefinita, l'esecuzione parallela (parallelismo all'interno di un'istruzione SQL) non è abilitata per i carichi di lavoro di Autonomous Transaction Processing. Tuttavia, per i carichi di lavoro di Autonomous Data Warehouse, l'esecuzione parallela è abilitata per impostazione predefinita e il grado di parallelismo per le istruzioni SQL viene impostato in base al numero di CPU nel sistema e al servizio di database utilizzato durante la connessione al database.
- È possibile modificare il grado di parallelismo di una tabella o di un indice utilizzando il comando
parallel_clause
o un suggerimento. Ad esempio, è possibile disabilitare il DML parallelo nella sessione utilizzando il seguente comando SQL:ALTER SESSION DISABLE PARALLEL DML;
Per ulteriori informazioni sulle operazioni DML parallele, vedere Oracle Database 19c VLDB and Partitioning Guide o Oracle Database 23ai VLDB and Partitioning Guide.
- Se si crea manualmente un indice e si specifica parallel_clause, l'attributo parallelo rimane dopo la creazione dell'indice. In questo caso, le istruzioni SQL possono essere eseguite in parallelo in modo sconosciuto all'utente finale. Modificare il valore parallel_clause in NOPARALLEL o impostare l'attributo PARALLEL su 1 per specificare l'esecuzione seriale:
ALTER INDEX index_name NOPARALLEL;
o
ALTER INDEX index_name PARALLEL 1;
- È possibile modificare il grado di parallelismo di una tabella o di un indice utilizzando il comando
Ultime funzioni di Autonomous Database
Autonomous Database include le funzioni più recenti di Oracle Database.
Autonomous Database include funzioni che:
-
Automatizza le attività di gestione degli indici, come la creazione, la ricostruzione e l'eliminazione degli indici in base alle modifiche nel carico di lavoro dell'applicazione. Per ulteriori informazioni, vedere Managing Auto Indexes nel manuale Oracle Database 19c Administrator's Guide o Oracle Database 23ai Administrator's Guide.
-
Raccogli automaticamente statistiche in tempo reale mentre è in esecuzione un carico di lavoro DML convenzionale. Poiché le statistiche possono diventare obsolete tra i job
DBMS_STATS
, la raccolta di statistiche online per DML convenzionale aiuta l'ottimizzatore a generare piani più ottimali. Le statistiche online mirano a ridurre la possibilità che l'ottimizzatore venga fuorviato da statistiche non più valide. Puoi gestire e accedere alle statistiche per il DML convenzionale tramite package PL/SQL, viste del dizionario dati e suggerimenti. Per ulteriori informazioni, vedere Real-Time Statistics nella guida Oracle Database 19c SQL Tuning Guide o Oracle Database 23ai SQL Tuning Guide. -
Raccogliere automaticamente le statistiche con maggiore frequenza. La raccolta automatica delle statistiche dell'ottimizzatore ad alta frequenza completa il lavoro standard di raccolta delle statistiche. Per impostazione predefinita, la raccolta viene eseguita ogni 15 minuti, il che significa che le statistiche hanno meno tempo per rimanere non più valide. Per ulteriori informazioni, vedere Configuring High-Frequency Automatic Optimizer Statistics Collection in Oracle Database 19c SQL Tuning Guide o Oracle Database 23ai SQL Tuning Guide.
-
Piani di esecuzione della quarantena per le istruzioni SQL interrotte da Resource Manager per l'utilizzo eccessivo di risorse di sistema in un database Oracle. È possibile configurare le impostazioni di quarantena per un'istruzione SQL specificando limiti al relativo consumo di risorse utilizzando le procedure nel package
DBMS_SQLQ
. Quando l'istruzione SQL supera uno di questi limiti di consumo delle risorse, viene interrotta e il piano di esecuzione viene messo in quarantena. In questo modo, il database impedisce l'esecuzione ripetuta delle istruzioni SQL ad alta risorsa. Per ulteriori informazioni, vedere Quarantine for Execution Plans for SQL Statements Consuming Excessive System Resources nel manuale Oracle Database 19c Administrator's Guide o nel manuale Oracle Database 23ai Administrator's Guide. - Ottimizza gli inserti a riga singola ad alta frequenza per applicazioni, come le applicazioni Internet of Things (IoT). Vedere Enabling High Performance Data Streaming With the Memoptimized Rowstore nel manuale Oracle Database 19c Performance Tuning Guide o Oracle Database 23ai Performance Tuning Guide.
L'utente ADMIN e l'utente SYS
In Oracle Autonomous Database on Dedicated Exadata Infrastructure l'utente amministrativo predefinito è ADMIN. In Oracle Database l'utente amministrativo predefinito è SYS. Sebbene questi due utenti abbiano lo stesso scopo nei rispettivi database, non sono gli stessi e non hanno lo stesso set di privilegi.
Poiché Oracle Autonomous Database on Dedicated Exadata Infrastructure impone controlli di sicurezza ed esegue task amministrativi del database per l'utente, l'utente ADMIN non dispone di tutti i privilegi necessari per l'utente SYS. Di seguito è riportata una lista dei privilegi di cui l'utente ADMIN non dispone, ma di cui l'utente SYS in un Oracle Database dispone:
ALTER LOCKDOWN PROFILE BACKUP ANY TABLE BECOME USER CREATE ANY JOB CREATE ANY LIBRARY CREATE LIBRARY CREATE LOCKDOWN PROFILE CREATE PLUGGABLE DATABASE DEQUEUE ANY QUEUE DROP LOCKDOWN PROFILE EM EXPRESS CONNECT ENQUEUE ANY QUEUE EXPORT FULL DATABASE FLASHBACK ANY TABLE FLASHBACK ARCHIVE ADMINISTER GRANT ANY PRIVILEGE GRANT ANY ROLE IMPORT FULL DATABASE INHERIT ANY PRIVILEGES LOGMINING MANAGE ANY FILE GROUP MANAGE ANY QUEUE MANAGE FILE GROUP USE ANY JOB RESOURCE USE ANY SQL TRANSLATION PROFILE
Tutti i privilegi di sistema con la parola chiave ANY (ad esempio SELECT ANY TABLE
, CREATE ANY PROCEDURE
) rispettano il lockdown COMMON_SCHEMA_ACCESS
e un utente ADMIN non può utilizzarlo per gli schemi utente comuni.
A differenza del database Oracle on-premise, in cui la parola chiave ANY si applica a tutti gli utenti ad eccezione di SYS, il privilegio ANY funziona solo su utenti non comuni in Autonomous Database.
Suggerimento
Per trovare un elenco di utenti comuni, è possibile eseguire la seguente query come utente ADMIN:select username
from dba_users
where common ='YES'
order by username;
Suggerimento
Per visualizzare una lista di privilegi utilizzabili con la parola chiave ANY, è possibile eseguire la seguente query come utente ADMIN:select distinct(privilege)
from dba_sys_privs
where grantee like 'ADMIN' and privilege like '%ANY%'
order by privilege;
Parametri di inizializzazione del database
Autonomous Database configura automaticamente i parametri di inizializzazione del database quando viene eseguito il provisioning di un database. Non è necessario impostare alcun parametro di inizializzazione per iniziare a utilizzare il servizio. Tuttavia, è possibile modificare alcuni parametri, se necessario.
Lista dei parametri di inizializzazione che è possibile modificare
Nota
Fare clic su un parametro di inizializzazione nell'elenco seguente per ulteriori informazioni. Per ulteriori informazioni sui parametri non cliccabili di seguito, vedere Oracle Database 19c Reference o Oracle Database 23ai Reference.ALLOW_ROWID_COLUMN_TYPE
APPROX_FOR_AGGREGATION
APPROX_FOR_COUNT_DISTINCT
APPROX_FOR_PERCENTILE
AWR_PDB_AUTOFLUSH_ENABLED
CONTAINER_DATA
CURRENT_SCHEMA (Session only by using ALTER SESSION)
CURSOR_SHARING
DB_BLOCK_CHECKING
DDL_LOCK_TIMEOUT
FIXED_DATE
GLOBAL_NAMES
HEAT_MAP
IGNORE_SESSION_SET_PARAM_ERRORS
INMEMORY_OPTIMIZED_ARITHMETIC (Allowed only with ALTER SYSTEM)
INMEMORY_QUERY (Allowed with ALTER SYSTEM and ALTER SESSION)
JOB_QUEUE_PROCESSES (You can only lower its value or bring it back to the original value)
LDAP_DIRECTORY_ACCESS
MAX_IDLE_TIME
NLS_CALENDAR
NLS_COMP
NLS_CURRENCY
NLS_DATE_FORMAT
NLS_DATE_LANGUAGE
NLS_DUAL_CURRENCY
NLS_ISO_CURRENCY
NLS_LANGUAGE
NLS_LENGTH_SEMANTICS
NLS_NCHAR_CONV_EXCP
NLS_NUMERIC_CHARACTERS
NLS_SORT
NLS_TERRITORY
NLS_TIME_FORMAT
NLS_TIME_TZ_FORMAT
NLS_TIMESTAMP_FORMAT
NLS_TIMESTAMP_TZ_FORMAT
OPEN_CURSORS (Allowed range of values are 1000 to 4000)
OPEN_LINKS (You must set SCOPE=SPFILE and restart the Autonomous Database after modifying this parameter)
OPTIMIZER_CAPTURE_SQL_PLAN_BASELINES (Session only by using ALTER SESSION)
OPTIMIZER_IGNORE_HINTS
OPTIMIZER_IGNORE_PARALLEL_HINTS
OPTIMIZER_INMEMORY_AWARE (Allowed with ALTER SYSTEM and ALTER SESSION)
OPTIMIZER_MODE
PARALLEL_MIN_DEGREE
PARALLEL_DEGREE_LIMIT
PLSCOPE_SETTINGS
PLSQL_CCFLAGS
PLSQL_DEBUG
PLSQL_OPTIMIZE_LEVEL
PLSQL_WARNINGS
QUERY_REWRITE_INTEGRITY
RECYCLEBIN
RESULT_CACHE_MODE
SESSION_EXIT_ON_PACKAGE_STATE_ERROR
SQL_TRACE (Allowed only with ALTER SESSION)
STATISTICS_LEVEL (Session only by using ALTER SESSION)
SYSDATE_AT_DBTIMEZONE Select a Time Zone for SYSDATE on Autonomous Database
TIME_ZONE
UNDO_RETENTION (min=300 and max=86400)
SYSDATE_AT_DBTIMEZONE Selezionare un fuso orario per SYSDATE in Autonomous Database
SYSDATE_AT_DBTIMEZONE
consente una gestione speciale in una sessione per il valore di data e ora restituito nelle chiamate a SYSDATE
e SYSTIMESTAMP
.
A seconda del valore di SYSDATE_AT_DBTIMEZONE
, vengono visualizzati la data e l'ora in base al fuso orario predefinito di Autonomous Database, UTC (Coordinated Universal Time) o in base al fuso orario impostato nel database.
Proprietà | Descrizione |
---|---|
Tipo di parametro | Booleano |
Valore predefinito | FALSE |
Modificabile | ALTER SESSION , ALTER SYSTEM |
Intervallo di valori | TRUE | FALSE |
Fuso orario predefinito di Autonomous Database
Il fuso orario predefinito di Autonomous Database è UTC (Coordinated Universal Time) e per impostazione predefinita le chiamate a SYSDATE
e SYSTIMESTAMP
restituiscono la data e l'ora in UTC.
Per modificare il fuso orario del database, è possibile eseguire la seguente istruzione. In questo esempio il fuso orario del database viene impostato su UTC-5
.
ALTER DATABASE SET TIME_ZONE='-05:00';
Nota
Per rendere effettiva la modifica, è necessario riavviare l'istanza di Autonomous Database.Dopo aver impostato il fuso orario del database, per impostazione predefinita SYSDATE
e SYSTIMESTAMP
continuano a restituire la data e l'ora in UTC (SYSDATE_AT_DBTIMEZONE
è FALSE
per impostazione predefinita). Se si imposta SYSDATE_AT_DBTIMEZONE
su TRUE
in una sessione, SYSDATE
e SYSTIMESTAMP
restituiscono il fuso orario del database.
See Setting the Database Time Zone in Oracle Database 19c or Setting the Database Time Zone in Oracle Database 23ai for more information on using the SET TIME_ZONE
clause with ALTER DATABASE
.
Utilizzo di SYSDATE_AT_DBTIMEZONE in una sessione
Quando SYSDATE_AT_DBTIMEZONE
è FALSE
in una sessione, chiama i valori restituiti da SYSDATE
e SYSTIMESTAMP
in base al fuso orario predefinito di Autonomous Database, UTC (Coordinated Universal Time).
Quando SYSDATE_AT_DBTIMEZONE
è TRUE
in una sessione, le chiamate a SYSDATE
o SYSTIMESTAMP
restituiscono la data e l'ora in base al fuso orario del database.
Nota
L'impostazione diSYSDATE_AT_DBTIMEZONE
su TRUE
influisce solo sull'uso di SYSDATE
e SYSTIMESTAMP
come operatori in SQL applicazione (ad esempio, nelle query, nelle operazioni DML e CTAS). Quando si utilizza questo parametro, si consiglia che il fuso orario client/sessione corrisponda al fuso orario del database.
Esempio
Nell'esempio seguente vengono restituite date e ore per due fusi orari diversi, in base al valore del parametro SYSDATE_AT_DBTIMEZONE
:
SQL> SELECT DBTIMEZONE FROM DUAL;
DBTIMEZONE
_____________
-05:00
SQL> ALTER SESSION SET SYSDATE_AT_DBTIMEZONE=FALSE;
Session altered.
SQL> SELECT SYSTIMESTAMP FROM DUAL;
SYSTIMESTAMP
______________________________________
27-JAN-22 06.59.45.708082000 PM GMT
SQL> ALTER SESSION SET SYSDATE_AT_DBTIMEZONE=TRUE;
Session altered.
SQL> SELECT SYSTIMESTAMP FROM DUAL;
SYSTIMESTAMP
_________________________________________
27-JAN-22 02.14.47.578946000 PM -05:00
Nota
Quando viene eseguita una query SYSDATE
o SYSTIMESTAMP
nel foglio di lavoro SQL di Database Actions, il valore di ora e data restituito è in UTC (quando il parametro SYSDATE_AT_DBTIMEZONE
è impostato su TRUE
o FALSE
). Per ottenere il fuso orario del database quando si lavora in Database Actions, utilizzare TO_CHAR()
come indicato di seguito.
SQL> SELECT TO_CHAR(SYSTIMESTAMP,'YYYY-MM-DD"T"HH24:MI:SS TZH":"TZM') FROM DUAL;
TO_CHAR(SYSTIMESTAMP,'YYYY-MM-DD"T"HH24:MI:SSTZH":"TZM')
___________________________________________________________
2022-01-27T14:15:00 -05:00