Fonctions d'Oracle Database dans le service de base de données autonome sur une infrastructure Exadata dédiée

Cet article fournit des informations sur l'utilisation des fonctions et options d'Oracle Database dans Autonomous Database sur une infrastructure Exadata dédiée.

Pour des informations équivalentes dans les déploiements Autonomous Database sans serveur, voir Autonomous Database pour les utilisateurs de base de données expérimentés.

Vous pouvez provisionner une base de données Autonomous Database avec Oracle Database 19c ou Oracle Database 23ai, selon la version du logiciel de base de données de sa base de données conteneur autonome parent. Par exemple, pour créer une base de données Autonomous Database avec Oracle Database 23ai, vous devez choisir une base de données conteneur autonome dont la version du logiciel de base de données Oracle est 23ai. Pour obtenir une liste complète des fonctions de base de données prises en charge par chacune de ces versions, voir Oracle Database 23ai ou Oracle Database 19c sur Oracle Help Center.

Le service de base de données autonome configure et optimise votre base de données. Vous n'avez pas à effectuer les opérations d'administration liées à la configuration de la base de données. Les commandes SQL utilisées uniquement pour l'administration de la base de données ne sont pas disponibles dans ce service. Les autres interfaces et utilitaires d'administration tels que RMAN ne sont pas non plus disponibles.

Voyons comment certaines des principales caractéristiques de la base de données Oracle sont-elles traitées dans une base de données Autonomous Database :

  • Données et espaces-table temporaires : Les données et les espaces-table temporaires de la base de données sont configurés automatiquement. Le nom de l'espace-table de données par défaut est DATA.
  • Jeu de données : Le jeu de données est Unicode AL32UTF8.
  • Chiffrage des données stockées : Les données stockées sont chiffrées à l'aide de l'algorithme AES256 (clé de chiffrement Advanced Encryption Standard à 256 bits).

    Note :

    Les bases de données Autonomous Database créées avant septembre 2021 utilisent l'algorithme AES128 par défaut.
    Si nécessaire, vous pouvez modifier l'algorithme de chiffrement d'un espace tables à l'aide de la commande ALTER TABLESPACE. Par exemple, pour remplacer l'algorithme de chiffrement de l'espace-table DATA par AES256, entrez :
    ALTER TABLESPACE data ENCRYPTION ONLINE USING 'AES256' REKEY;
  • Compression des données : Pour les charges de travail de base de données Autonomous Transaction Processing, la compression n'est pas activée par défaut. Pour les charges de travail Autonomous Data Warehouse, la compression colonne hybride est activée par défaut pour toutes les tables.

    Pour activer ou désactiver la compression ou spécifier des méthodes de compression différentes pour vos tables, utilisez la clause table_compression dans la commande CREATE TABLE ou ALTER TABLE.

  • Accès à la base de données : Vous n'avez pas d'accès direct au noeud de base de données ni au système de fichiers local, ni aux espaces-table SYSTEM et SYSAUX.
  • Exécution en parallèle : Par défaut, l'exécution en parallèle (parallelisme dans un énoncé SQL) n'est pas activée pour les charges de travail de base de données Autonomous Transaction Processing. Toutefois, pour les charges de travail de base de données Autonomous Data Warehouse, l'exécution en parallèle est activée par défaut et le degré de parallèle des énoncés SQL est défini en fonction du nombre d'UC du système et du service de base de données utilisé lors de la connexion à la base de données.
    • Vous pouvez modifier le degré de parallélisme d'une table ou d'un index à l'aide de parallel_clause ou d'un indicateur (hint). Par exemple, vous pouvez désactiver le mode LMD parallèle dans votre session à l'aide de la commande SQL suivante :
      ALTER SESSION DISABLE PARALLEL DML;

      Voir le Guide sur les VLDB et le partitionnement dans Oracle Database 19c ou le Guide sur les VLDB et le partitionnement dans Oracle Database 23ai pour plus d'informations sur les opérations en mode LMD parallèle.

    • Si vous créez un index manuellement et que vous spécifiez parallel_clause, l'attribut parallèle demeure après la création de l'index. Dans ce cas, les énoncés SQL peuvent être exécutés en parallèle sans que l'utilisateur le sache. Réglez la valeur parallel_clause à NOPARALLEL ou réglez l'attribut PARALLEL à 1 pour spécifier l'exécution en série :
       ALTER INDEX index_name NOPARALLEL;

      ou

       ALTER INDEX index_name PARALLEL 1; 

Dernières fonctionnalités du service de base de données autonome

Le service de base de données autonome comprend les dernières fonctionnalités d'Oracle Database.

Le service de base de données autonome comprend des fonctions permettant d'effectuer les opérations suivantes :

  • Automatiser les tâches de gestion des index, telles que la création, la reconstruction et la suppression d'index en fonction des modifications de la charge de travail de l'application. Pour plus d'informations, voir Gérer les index automatiques dans le Guide de l'administrateur d'Oracle Database 19c ou le Guide de l'administrateur d'Oracle Database 23ai.

  • Collecter automatiquement des statistiques en temps réel pendant l'exécution d'une charge de travail LMD classique. Comme les statistiques peuvent devenir obsolètes entre deux tâches DBMS_STATS, la collecte de statistiques en ligne pour les charges de travail LMD classiques aide l'optimiseur à générer des plans optimaux. Les statistiques en ligne visent à éviter que l'optimiseur soit induit en erreur par des statistiques obsolètes. Vous pouvez accéder aux statistiques relatives aux charges de travail LMD classiques et les gérer à l'aide d'ensembles PL/SQL, de vues du dictionnaire de données et d'indicateurs. See Real-Time Statistics in Oracle Database 19c SQL Tuning Guide or Oracle Database 23ai SQL Tuning Guide for more information.

  • Collecter automatiquement des statistiques plus fréquentes. La collecte automatique de statistiques de l'optimiseur haute fréquence complète la tâche de collecte de statistiques standard. Par défaut, la collecte a lieu toutes les 15 minutes, ce qui signifie que les statistiques ont moins de temps pour devenir obsolètes. Pour plus d'informations, voir Configuration de la collecte automatique de statistiques de l'optimiseur automatique haute fréquence dans le guide de réglage SQL pour Oracle Database 19c ou le guide de réglage SQL pour Oracle Database 23ai.

  • Mettre en quarantaine les plans d'exécution d'énoncés SQL arrêtés par le gestionnaire de ressources en raison d'une consommation excessive de ressources système dans une base de données Oracle. Vous pouvez configurer les paramètres de mise en quarantaine d'un énoncé SQL en spécifiant des limites de consommation de ressources à l'aide des procédures de l'ensemble DBMS_SQLQ. Lorsque l'énoncé SQL dépasse l'une de ces limites de consommation de ressources, il prend fin et le plan d'exécution est mis en quarantaine. Ainsi, la base de données empêche l'exécution répétée d'énoncés SQL qui consomment des ressources excessives. Pour plus d'informations, voir Mettre en place des plans d'exécution d'énoncés SQL qui utilisent des ressources système excessives dans le Guide de l'administrateur d'Oracle Database 19c ou le Guide de l'administrateur d'Oracle Database 23ai.

  • Optimiser les insertions de rangées unique haute fréquence pour les applications telles que les applications de l'Internet des objets. Voir Activation de la diffusion de données haute performance à l'aide de Memoptimized Rowstore dans le guide de réglage de la performance d'Oracle Database 19c ou le guide de réglage de la performance d'Oracle Database 23ai.

Utilisateurs ADMIN et SYS

Dans Oracle Autonomous Database on Dedicated Exadata Infrastructure, l'administrateur prédéfini est ADMIN. Dans Oracle Database, l'administrateur prédéfini est SYS. Bien que ces deux utilisateurs aient la même fonction dans leurs bases de données respectives, ils ne sont pas identiques et ne possèdent pas le même jeu de privilèges.

Comme Oracle Autonomous Database on Dedicated Exadata Infrastructure impose des contrôles de sécurité et effectue des tâches d'administration de base de données, l'utilisateur ADMIN n'a pas autant de privilèges que l'utilisateur SYS. Voici la liste des privilèges dont l'utilisateur ADMIN ne dispose pas, mais dont dispose l'utilisateur SYS dans Oracle Database :

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

Tous les privilèges de système avec le mot clé ANY (par exemple SELECT ANY TABLE, CREATE ANY PROCEDURE) respectent le verrouillage COMMON_SCHEMA_ACCESS et un utilisateur ADMIN ne peut pas l'utiliser avec les schémas d'utilisateurs communs.

Contrairement à la base de données Oracle sur place, où le mot clé ANY s'applique à tous les utilisateurs à l'exception de SYS, le privilège ANY ne fonctionne que pour les utilisateurs non communs dans Autonomous Database.

Conseil :

Pour rechercher une liste d'utilisateurs communs, vous pouvez exécuter l'interrogation suivante en tant qu'utilisateur ADMIN :
select username 
from dba_users 
where common ='YES' 
order by username;

Conseil :

Pour afficher la liste des privilèges pouvant être utilisés avec le mot-clé ANY, vous pouvez exécuter l'interrogation suivante en tant qu'utilisateur ADMIN :
select distinct(privilege)
from dba_sys_privs 
where grantee like 'ADMIN' and privilege like '%ANY%' 
order by privilege;

Paramètres d'initialisation de base de données

Le service de base de données autonome configure automatiquement les paramètres d'initialisation de base de données lorsque vous provisionnez une base de données. Il n'est pas nécessaire de définir des paramètres d'initialisation pour pouvoir commencer à utiliser votre service. Toutefois, vous pouvez modifier certains paramètres, si nécessaire.

Liste des paramètres d'initialisation pouvant être modifiés

Note :

Cliquez sur un paramètre d'initialisation dans la liste suivante pour en savoir plus. Pour plus d'informations sur les paramètres sur lesquels vous ne pouvez pas cliquer ci-dessous, voir Informations de référence sur 19c pour Oracle Database ou Informations de référence sur Oracle Database 23ai.
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 Sélectionner un fuseau horaire pour SYSDATE sur Autonomous Database

SYSDATE_AT_DBTIMEZONE permet un traitement spécial dans une session pour la valeur de date et d'heure retournée dans les appels à SYSDATE et SYSTIMESTAMP.

Selon la valeur de SYSDATE_AT_DBTIMEZONE, vous voyez la date et l'heure en fonction du fuseau horaire par défaut pour Autonomous Database, du temps universel coordonné (UTC) ou en fonction du fuseau horaire que vous avez défini dans votre base de données.

Propriété Description
Type de paramètre Booléen
Valeur par défaut FALSE
Modifiable ALTER SESSION, ALTER SYSTEM
Intervalle de valeurs TRUE | FALSE

Fuseau horaire par défaut de la base de données autonome

Le fuseau horaire par défaut de la base de données autonome est celui du temps universel coordonné. Par défaut, les appels à SYSDATE et SYSTIMESTAMP retournent la date et l'heure en temps universel coordonné.

Pour modifier le fuseau horaire de la base de données, vous pouvez exécuter l'énoncé suivant. Cet exemple règle le fuseau horaire de la base de données à UTC-5.

ALTER DATABASE SET TIME_ZONE='-05:00';

Note :

Vous devez redémarrer l'instance Autonomous Database pour que la modification entre en vigueur.

Après avoir défini le fuseau horaire de la base de données, par défaut SYSDATE et SYSTIMESTAMP continuent de retourner la date et l'heure en UTC (SYSDATE_AT_DBTIMEZONE est réglé à FALSE par défaut). Si vous réglez SYSDATE_AT_DBTIMEZONE à TRUE dans une session, SYSDATE et SYSTIMESTAMP retournent le fuseau horaire de la base de données.

Voir Définition du fuseau horaire de la base de données dans Oracle Database 19c ou Définition du fuseau horaire de la base de données dans Oracle Database 23ai pour plus d'informations sur l'utilisation de la clause SET TIME_ZONE avec ALTER DATABASE.

Utilisation de SYSDATE_AT_DBTIMEZONE dans une session

Lorsque SYSDATE_AT_DBTIMEZONE est réglé à FALSE dans une session, les appels à SYSDATE et à SYSTIMESTAMP retournent des valeurs basées sur le fuseau horaire par défaut de la base de données autonome (UTC).

Lorsque SYSDATE_AT_DBTIMEZONE est réglé à TRUE dans une session, les appels à SYSDATE ou SYSTIMESTAMP retournent la date et l'heure en fonction du fuseau horaire de la base de données.

Note :

Le réglage de SYSDATE_AT_DBTIMEZONE à TRUE affecte uniquement l'utilisation de SYSDATE et de SYSTIMESTAMP en tant qu'opérateurs dans le code SQL de l'application (par exemple, dans les interrogations et les opérations DML et CTAS). Lorsque vous utilisez ce paramètre, il est recommandé que votre fuseau horaire client/session corresponde à celui de votre base de données.

Exemple

L'exemple suivant retourne des dates et des heures pour deux fuseaux horaires différents, en fonction de la valeur du paramètre 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 

Note :

Lorsqu'une interrogation SYSDATE ou SYSTIMESTAMP est exécutée dans la feuille de calcul SQL de Database Actions, la valeur d'heure et de date retournée est en UTC (lorsque le paramètre SYSDATE_AT_DBTIMEZONE est réglé à TRUE ou FALSE). Pour obtenir le fuseau horaire de la base de données lors de l'utilisation de Database Actions, utilisez TO_CHAR() comme suit :

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