Funciones de Oracle Database en Autonomous Database on Dedicated Exadata Infrastructure

En este artículo se proporciona información sobre el uso de las funciones y las opciones de Oracle Database en Autonomous Database on Dedicated Exadata Infrastructure.

Para obtener información equivalente en los despliegues de Autonomous Database Serverless, consulte Autonomous Database para usuarios experimentados de bases de datos.

Puede aprovisionar una instancia de Autonomous Database con Oracle Database 19c u Oracle Database 23ai, según la versión de software de la base de datos de su base de datos de contenedores autónoma (ACD) principal. Por ejemplo, para crear una instancia de Autonomous Database con Oracle Database 23ai, debe seleccionar una ACD cuya versión de software de base de datos Oracle sea 23ai. Para obtener una lista completa de las funciones de base de datos soportadas por cada una de estas versiones de base de datos, consulte Oracle Database 23ai u Oracle Database 19c en Oracle Help Center.

Autonomous Database configura y optimiza su base de datos. No es necesario realizar operaciones de administración para configurar la base de datos. Los comandos SQL utilizados únicamente para la administración de bases de datos no están disponibles en este servicio. Del mismo modo, tampoco están disponibles otras interfaces y utilidades administrativas, como RMAN.

Analicemos cómo se manejan algunas de las funciones clave de la base de datos Oracle en una instancia de Autonomous Database:

  • Datos y tablespaces temporales: los datos por defecto y los tablespaces temporales de la base de datos se configuran automáticamente. El nombre del tablespace de datos por defecto es DATA.
  • Juego de caracteres de la base de datos: el juego de caracteres de la base de datos es Unicode AL32UTF8.
  • Cifrado de datos almacenados: los datos almacenados se cifran mediante el algoritmo AES256 (clave de cifrado Advanced Encryption Standard de 256 bits).

    Note:

    Las instancias de Autonomous Database creadas antes de septiembre de 2021 utilizan el algoritmo AES128 por defecto.
    Si es necesario, puede cambiar el algoritmo de cifrado de un tablespace mediante el comando ALTER TABLESPACE. Por ejemplo, para cambiar el algoritmo de cifrado del tablespace DATA a AES256, introduzca:
    ALTER TABLESPACE data ENCRYPTION ONLINE USING 'AES256' REKEY;
  • Compresión de datos: para las cargas de trabajo de Autonomous Transaction Processing, la compresión no está activada por defecto. Para las cargas de trabajo de Autonomous Data Warehouse, la compresión de columnas híbrida está activada por defecto para todas las tablas.

    Puede activar o desactivar la compresión o especificar métodos de compresión diferentes para las tablas mediante la cláusula table_compression en el comando CREATE TABLE o ALTER TABLE.

  • Acceso a la base de datos: no tiene acceso directo al nodo de base de datos ni al sistema de archivos local, ni a los tablespaces SYSTEM o SYSAUX.
  • Ejecución en paralelo: por defecto, la ejecución en paralelo (paralelismo dentro de una sentencia SQL) no está activada para las cargas de trabajo de Autonomous Transaction Processing. Sin embargo, para las cargas de trabajo de Autonomous Data Warehouse, la ejecución en paralelo está activada por defecto y el grado de paralelismo de las sentencias SQL se define según el número de CPU del sistema y el servicio de base de datos que utilice al conectarse a la base de datos.
    • Puede modificar el grado de paralelismo de una tabla o de un índice mediante parallel_clause o mediante una indicación. Por ejemplo, puede desactivar DML paralelo en la sesión mediante el siguiente comando SQL:
      ALTER SESSION DISABLE PARALLEL DML;

      Consulte Oracle Database 19c VLDB and Partitioning Guide o Oracle Database 23ai VLDB and Partitioning Guide para obtener más información sobre las operaciones DML paralelas.

    • Si crea un índice manualmente y especifica parallel_clause, el atributo paralelo permanece después de crear el índice. En este caso, las sentencias SQL se pueden ejecutar en paralelo desconocidas para el usuario final. Cambie el valor parallel_clause a NOPARALLEL o defina el atributo PARALLEL en 1 para especificar la ejecución en serie:
       ALTER INDEX index_name NOPARALLEL;

      o bien,

       ALTER INDEX index_name PARALLEL 1; 

Funciones de Autonomous Database más recientes

Autonomous Database incluye las funciones de Oracle Database más recientes.

Autonomous Database incluye funciones que:

  • Automatizan las tareas de gestión de índices, como la creación, la reconstrucción y el borrado de índices en función de los cambios en la carga de trabajo de la aplicación. Para obtener más información, consulte Gestión de índices automáticos en Oracle Database 19c Administrator's Guide o Oracle Database 23ai Administrator's Guide.

  • Recopile estadísticas en tiempo real de forma automática mientras se ejecuta una carga de trabajo DML convencional. Debido a que las estadísticas pueden quedar desactualizadas entre los trabajos de DBMS_STATS, la recopilación de estadísticas en línea para DML convencional ayuda al optimizador a generar planes más óptimos. Las estadísticas en línea tienen como objetivo reducir la posibilidad de que el optimizador esté mal dirigido por estadísticas desactualizadas. Puede gestionar y acceder a las estadísticas para DML convencional mediante paquetes PL/SQL, vistas del diccionario de datos e indicaciones. Para obtener más información, consulte Estadísticas en tiempo real en Oracle Database 19c SQL Tuning Guide o Oracle Database 23ai SQL Tuning Guide.

  • Recopile estadísticas de forma automática con más frecuencia. La recopilación automática de estadísticas del optimizador de alta frecuencia complementa el trabajo de recopilación de estadísticas estándar. Por defecto, la recopilación se produce cada 15 minutos, lo que significa que las estadísticas tienen menos tiempo para quedarse desactualizadas. Consulte Configuración de la recopilación automática de estadísticas del optimizador de alta frecuencia en Oracle Database 19c SQL Tuning Guide o Oracle Database 23ai SQL Tuning Guide para obtener más información.

  • Planes de ejecución de cuarentena para sentencias SQL terminadas por el gestor de recursos por consumir demasiados recursos del sistema en una base de datos Oracle. Puede configurar los valores de cuarentena para una sentencia SQL especificando límites en su consumo de recursos mediante los procedimientos del paquete DBMS_SQLQ. Cuando la sentencia SQL cruza cualquiera de estos límites de consumo de recursos, se termina y el plan de ejecución se pone en cuarentena. De esta forma, la base de datos impide que las sentencias SQL que requieren muchos recursos se ejecuten de forma repetida. Consulte Quarantine for Execution Plans for SQL Statementsing Excessive System Resources en Oracle Database 19c Administrator's Guide o Oracle Database 23ai Administrator's Guide para obtener más información.

  • Optimice las inserciones de una sola fila de alta frecuencia para aplicaciones, como las aplicaciones de Internet de las cosas (IoT). Consulte Enabling High Performance Data Streaming With the Memoptimized Rowstore in Oracle Database 19c Performance Tuning Guide o Oracle Database 23ai Performance Tuning Guide.

Usuario ADMIN y usuario SYS

En Oracle Autonomous Database on Dedicated Exadata Infrastructure, el usuario administrativo predefinido es ADMIN. En Oracle Database, el usuario administrativo predefinido es SYS. Aunque estos dos usuarios tienen el mismo propósito en sus respectivas bases de datos, no son iguales y no tienen el mismo juego de privilegios.

Puesto que Oracle Autonomous Database on Dedicated Exadata Infrastructure impone controles de seguridad y realiza tareas administrativas de base de datos, el usuario ADMIN no tiene tantos privilegios como el usuario SYS. A continuación se muestra una lista de los privilegios que no tiene el usuario ADMIN, pero que sí tiene el usuario SYS de una 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

Todos los privilegios del sistema con la palabra clave ANY (como SELECT ANY TABLE, CREATE ANY PROCEDURE) mantienen el bloqueo COMMON_SCHEMA_ACCESS, y un usuario ADMIN no puede utilizarlo en los esquemas de usuario comunes.

A diferencia de la base de datos Oracle local, en la que la palabra clave ANY se aplica a todos los usuarios excepto SYS, el privilegio ANY solo funciona con usuarios no comunes en Autonomous Database.

Sugerencia:

Para buscar una lista de usuarios comunes, puede ejecutar la siguiente consulta como usuario ADMIN:
select username 
from dba_users 
where common ='YES' 
order by username;

Sugerencia:

Para ver una lista de privilegios que se pueden utilizar con la palabra clave ANY, puede ejecutar la siguiente consulta como usuario ADMIN:
select distinct(privilege)
from dba_sys_privs 
where grantee like 'ADMIN' and privilege like '%ANY%' 
order by privilege;

Parámetros de Inicialización de la Base de Datos

Autonomous Database configura los parámetros de inicialización de base de datos de forma automática al aprovisionar una base de datos. No es necesario definir ningún parámetro de inicialización para empezar a utilizar el servicio. Sin embargo, puede modificar algunos parámetros si es necesario.

Lista de parámetros de inicialización que se pueden modificar

Note:

Haga clic en un parámetro de inicialización de la siguiente lista para obtener más información al respecto. Para conocer los parámetros en los que no se puede hacer clic a continuación, consulte Referencia de Oracle Database 19c o Referencia de Oracle Database 23ai para obtener más información.
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 Seleccione una zona horaria para SYSDATE en Autonomous Database

SYSDATE_AT_DBTIMEZONE permite un manejo especial en una sesión para el valor de fecha y hora devuelto en las llamadas a SYSDATE y SYSTIMESTAMP.

Según el valor de SYSDATE_AT_DBTIMEZONE, puede ver la fecha y la hora según la zona horaria por defecto de Autonomous Database, la hora universal coordinada (UTC) o la zona horaria definida en la base de datos.

Propiedad Descripción
Tipo de parámetro Booleano
Valor por defecto FALSE
Modificable ALTER SESSION, ALTER SYSTEM
Rango de valores TRUE | FALSE

Zona horaria por defecto de Autonomous Database

La zona horaria por defecto de Autonomous Database es la hora universal coordinada (UTC) y, por defecto, las llamadas a SYSDATE y SYSTIMESTAMP devuelven la fecha y la hora en UTC.

Para cambiar la zona horaria de la base de datos, puede ejecutar la siguiente sentencia. En este ejemplo, se define la zona horaria de la base de datos como UTC-5.

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

Note:

Debe reiniciar la instancia de Autonomous Database para que se aplique el cambio.

Después de definir la zona horaria de la base de datos, por defecto SYSDATE y SYSTIMESTAMP siguen devolviendo la fecha y la hora en formato UTC (el valor de SYSDATE_AT_DBTIMEZONE es FALSE por defecto). Si define SYSDATE_AT_DBTIMEZONE en TRUE en una sesión, SYSDATE y SYSTIMESTAMP devuelven la zona horaria de la base de datos.

Consulte Configuración de la zona horaria de la base de datos en Oracle Database 19c o Configuración de la zona horaria de la base de datos en Oracle Database 23ai para obtener más información sobre el uso de la cláusula SET TIME_ZONE con ALTER DATABASE.

Uso de SYSDATE_AT_DBTIMEZONE en una sesión

Cuando el valor de SYSDATE_AT_DBTIMEZONE es FALSE en una sesión, las llamadas a SYSDATE y SYSTIMESTAMP devuelven valores basados en la zona horaria por defecto de Autonomous Database, hora universal coordinada (UTC).

Cuando el valor de SYSDATE_AT_DBTIMEZONE es TRUE en una sesión, las llamadas a SYSDATE o SYSTIMESTAMP devuelven la fecha y la hora según la zona horaria de la base de datos.

Note:

La definición de SYSDATE_AT_DBTIMEZONE en TRUE solo afecta al uso de SYSDATE y SYSTIMESTAMP como operadores en SQL de aplicación (por ejemplo, en consultas, operaciones DML y CTAS). Al utilizar este parámetro, se recomienda que la zona horaria del cliente/sesión coincida con la zona horaria de la base de datos.

Ejemplo

En el siguiente ejemplo, se devuelven fechas y horas para dos zonas horarias diferentes, según el valor del parámetro 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:

Cuando se ejecuta una consulta SYSDATE o SYSTIMESTAMP en la hoja de trabajo de SQL de Database Actions, el valor de fecha y hora que se devuelve es UTC (cuando el parámetro SYSDATE_AT_DBTIMEZONE se define en TRUE o FALSE). Para obtener la zona horaria de la base de datos al trabajar en Database Actions, utilice TO_CHAR() de la siguiente forma:

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