Funzionalità di Oracle Database in Autonomous AI Database su un'infrastruttura Exadata dedicata

Questo articolo fornisce informazioni sull'uso delle funzioni e delle opzioni di Oracle AI Database in Autonomous AI Database on Dedicated Exadata Infrastructure.

Per informazioni equivalenti nelle distribuzioni Autonomous AI Database Serverless, consulta Autonomous AI Database per utenti esperti di database.

Puoi eseguire il provisioning di un Autonomous AI Database con Oracle Database 19c o Oracle AI Database 26ai, a seconda della versione software del database del suo Autonomous Container Database (ACD) padre. Ad esempio, per creare un Autonomous AI Database con Oracle AI Database 26ai, devi scegliere un ACD la cui versione software del database Oracle è 26ai. Per un elenco completo delle funzioni di database supportate da ciascuna di queste versioni di database, vedere Oracle Database 26ai o Oracle Database 19c su Oracle Help Center.

Autonomous AI Database configura e ottimizza il tuo database per te. Non è necessario eseguire operazioni di amministrazione per configurare il database. I comandi SQL utilizzati esclusivamente per l'amministrazione del database non sono disponibili in questo servizio. Analogamente, altre interfacce e utility amministrative come RMAN non sono disponibili.

Vediamo come vengono gestite alcune delle funzioni chiave del database Oracle in un Autonomous AI 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

    I database AI autonomi 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 comando ALTER 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 di Autonomous AI Transaction Processing, la compressione non è abilitata per impostazione predefinita. Per i carichi di lavoro Autonomous AI Lakehouse, 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 comando CREATE TABLE o ALTER 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 elaborazione delle transazioni AI autonoma. Tuttavia, per i carichi di lavoro Autonomous AI Lakehouse, 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 26ai 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; 

Funzioni più recenti di Autonomous AI Database

Autonomous AI Database include le funzioni più recenti di Oracle Database.

Autonomous AI Database include funzionalità 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 in Oracle Database 19c Administrator's Guide o Oracle Database 26ai Administrator's Guide.

  • Raccogli automaticamente le statistiche in tempo reale mentre è in esecuzione un carico di lavoro DML convenzionale. Poiché le statistiche possono diventare obsolete tra i lavori DBMS_STATS, la raccolta di statistiche online per il DML convenzionale aiuta l'ottimizzatore a generare piani più ottimali. Le statistiche online mirano a ridurre la possibilità che l'ottimizzatore venga indotto in errore da statistiche obsolete. È possibile gestire e accedere alle statistiche per il DML convenzionale tramite package PL/SQL, viste del dizionario dati e suggerimenti. Per ulteriori informazioni, vedere Statistiche in tempo reale in Oracle Database 19c SQL Tuning Guide o Oracle Database 26ai SQL Tuning Guide.

  • Raccogliere automaticamente le statistiche su base più frequente. La raccolta automatica delle statistiche dell'ottimizzatore ad alta frequenza completa il processo di raccolta delle statistiche standard. Per impostazione predefinita, la raccolta viene eseguita ogni 15 minuti, il che significa che le statistiche hanno meno tempo per essere obsolete. Per ulteriori informazioni, vedere Configuring High-Frequency Automatic Optimizer Statistics Collection in Oracle Database 19c SQL Tuning Guide o Oracle Database 26ai SQL Tuning Guide.

  • Piani di esecuzione quarantena per le istruzioni SQL terminate da Resource Manager per il consumo eccessivo di risorse di sistema in un database Oracle. È possibile configurare le impostazioni di quarantena per un'istruzione SQL specificando limiti al consumo delle risorse mediante le procedure nel package DBMS_SQLQ. Quando l'istruzione SQL supera uno di questi limiti di consumo delle risorse, viene terminata e il piano di esecuzione viene messo in quarantena. In questo modo, il database impedisce l'esecuzione ripetuta delle istruzioni SQL con risorse elevate. Per ulteriori informazioni, vedere Quarantena for Execution Plans for SQL Statements Consuming Excessive System Resources in Oracle Database 19c Administrator's Guide o Oracle Database 26ai 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 in Oracle Database 19c Performance Tuning Guide o Oracle Database 26ai Performance Tuning Guide.

L'utente ADMIN e l'utente SYS

In Oracle Autonomous AI Database on Dedicated Exadata Infrastructure l'utente amministrativo predefinito è ADMIN. In Oracle Database l'utente amministrativo predefinito è SYS. Anche se questi due utenti hanno lo stesso scopo nei rispettivi database, non sono uguali e non hanno lo stesso set di privilegi.

Poiché Oracle Autonomous AI Database on Dedicated Exadata Infrastructure impone controlli di sicurezza ed esegue automaticamente task di database amministrativo, l'utente ADMIN non dispone di tutti i privilegi dell'utente SYS. Di seguito è riportato un elenco dei privilegi di cui l'utente ADMIN non dispone, ma di cui l'utente SYS in 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 tranne SYS, il privilegio ANY funziona solo con utenti non comuni in Autonomous AI 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 AI Database configura automaticamente i parametri di inizializzazione del database quando si esegue il provisioning di un database. Non è necessario impostare parametri di inizializzazione per iniziare a utilizzare il servizio. Tuttavia, se necessario, è possibile modificare alcuni parametri.

Lista dei parametri di inizializzazione che è possibile modificare

Nota

Fare clic su un parametro di inizializzazione nell'elenco seguente per ulteriori informazioni. Per i parametri non selezionabili di seguito, vedere Oracle Database 19c Reference o Oracle Database 26ai Reference per ulteriori informazioni.
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 AI Database
TIME_ZONE
UNDO_RETENTION (min=300 and max=86400)

SYSDATE_AT_DBTIMEZONE Selezionare un fuso orario per SYSDATE nel database AI autonomo

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, viene visualizzata la data e l'ora in base al fuso orario predefinito di Autonomous AI 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 del database AI autonomo

Il fuso orario predefinito di Autonomous AI 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';

In questo esempio viene impostato il fuso orario del database per la costa orientale degli Stati Uniti: America/New_York e l'ora viene regolata automaticamente agli switch DST:

ALTER DATABASE SET TIME_ZONE='America/New_York';

Nota

Per rendere effettiva la modifica, è necessario riavviare l'istanza di Autonomous AI 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.

Per ulteriori informazioni sull'uso della clausola SET TIME_ZONE con ALTER DATABASE, vedere Impostazione del fuso orario del database in Oracle Database 19c o Oracle Database 26ai.

Utilizzo di SYSDATE_AT_DBTIMEZONE in una sessione

Quando SYSDATE_AT_DBTIMEZONE è FALSE in una sessione, le chiamate a SYSDATE e SYSTIMESTAMP restituiscono valori basati sul fuso orario predefinito di Autonomous AI Database, Ora 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 di SYSDATE_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