

# Amazon RDS for Oracle
<a name="CHAP_Oracle"></a>

Amazon RDS admite instancias de base de datos que ejecutan las siguientes versiones y ediciones de Oracle Database:
+ Oracle Database 21c (21.0.0.0)
+ Oracle Database 19c (19.0.0.0)

**nota**  
Oracle Database 11g, Oracle Database 12c y Oracle Database 18c son versiones heredadas que ya no son compatibles con Amazon RDS.

Antes de crear una instancia de base de datos, complete los pasos que se describen en la sección [Configuración del entorno para Amazon RDS](CHAP_SettingUp.md) de esta guía. Cuando crea una instancia de base de datos con su cuenta maestra, la cuenta obtiene privilegios de DBA, con algunas limitaciones. Utilice esta cuenta para tareas administrativas, como crear cuentas de base de datos adicionales. No puede utilizar SYS, SYSTEM u otras cuentas administrativas proporcionadas por Oracle.

Puede crear lo siguiente:
+ Instancias de base de datos
+ Instantáneas de base de datos
+ Restauraciones a un momento dado
+ Copias de seguridad automatizadas
+ Copias de seguridad manuales

Puede utilizar instancias de base de datos que ejecuten la base de datos de Oracle dentro de una VPC. También puede agregar características a la instancia de base de datos mediante la habilitación de varias opciones, como Oracle Spatial u Oracle Statspack. Amazon RDS admite implementaciones multi-AZ para Oracle como una solución de conmutación por error de alta disponibilidad.

**importante**  
Para ofrecer una experiencia de servicio administrado, Amazon RDS no proporciona acceso mediante shell a las instancias de base de datos. También restringe el acceso a ciertos procedimientos y tablas del sistema que requieren privilegios avanzados. Puede acceder a la base de datos con clientes estándar de SQL, como Oracle SQL\$1Plus. No obstante, no puede acceder al host directamente mediante Telnet o Secure Shell (SSH).

**Topics**
+ [Información general de Oracle en Amazon RDS](Oracle.Concepts.overview.md)
+ [Conexión a una instancia de base de datos de Oracle](USER_ConnectToOracleInstance.md)
+ [Protección de conexiones de instancias de base de datos de Oracle](Oracle.Concepts.RestrictedDBAPrivileges.md)
+ [Uso de CDB con RDS para Oracle](oracle-multitenant.md)
+ [Administración de la instancia de base de datos de RDS para Oracle](Appendix.Oracle.CommonDBATasks.md)
+ [Uso de almacenamiento en RDS para Oracle](User_Oracle_AdditionalStorage.md)
+ [Configuración de características avanzadas de RDS para Oracle](CHAP_Oracle.advanced-features.md)
+ [Importación de datos a Oracle en Amazon RDS](Oracle.Procedural.Importing.md)
+ [Trabajo con las réplicas de lectura para Amazon RDS para Oracle](oracle-read-replicas.md)
+ [Adición de opciones a instancias de base de datos de Oracle](Appendix.Oracle.Options.md)
+ [Actualización del motor de base de datos de RDS para Oracle](USER_UpgradeDBInstance.Oracle.md)
+ [Uso de software de terceros con la instancia de base de datos de RDS for Oracle](Oracle.Resources.md)
+ [Notas de la versión del motor de Oracle Database](USER_Oracle_Releases.md)

# Información general de Oracle en Amazon RDS
<a name="Oracle.Concepts.overview"></a>

Puede leer las siguientes secciones para obtener una descripción general de RDS para Oracle.

**Topics**
+ [Características de RDS para Oracle](Oracle.Concepts.FeatureSupport.md)
+ [Versiones de RDS para Oracle](Oracle.Concepts.database-versions.md)
+ [Opciones de licencias de RDS para Oracle](Oracle.Concepts.Licensing.md)
+ [Usuarios y privilegios de RDS para Oracle](Oracle.Concepts.Privileges.md)
+ [Clases de instancias de base de datos de RDS para Oracle](Oracle.Concepts.InstanceClasses.md)
+ [Arquitectura de base de datos de RDS para Oracle](oracle-multi-architecture.md)
+ [Parámetros de inicialización de RDS para Oracle](Oracle.Concepts.FeatureSupport.Parameters.md)
+ [RDS para conjuntos de caracteres de Oracle](Appendix.OracleCharacterSets.md)
+ [Limitaciones de RDS para Oracle](Oracle.Concepts.limitations.md)

# Características de RDS para Oracle
<a name="Oracle.Concepts.FeatureSupport"></a>

Amazon RDS for Oracle admite la mayoría de las características y capacidades de Oracle Database. Algunas características pueden disponer de una compatibilidad limitada o de privilegios restringidos. Algunas características están solo disponibles en Enterprise Edition y otras requieren licencias adicionales. Para obtener información sobre las características de la Oracle Database para versiones específicas de Oracle Database, consulte el *Oracle Database Licensing Information User Manual (Manual de usuario de información sobre concesión de licencias de Oracle Database)* para la versión que esté utilizando.

**Topics**
+ [Características nuevas de RDS para Oracle](#Oracle.Concepts.FeatureSupport.new)
+ [Características admitidas de RDS para Oracle](#Oracle.Concepts.FeatureSupport.supported)
+ [Características no admitidas de RDS para Oracle](#Oracle.Concepts.FeatureSupport.unsupported)

## Características nuevas de RDS para Oracle
<a name="Oracle.Concepts.FeatureSupport.new"></a>

Para ver las nuevas características en RDS para Oracle, busque [Historial de revisión](WhatsNew.md) para la palabra clave **Oracle**.

## Características admitidas de RDS para Oracle
<a name="Oracle.Concepts.FeatureSupport.supported"></a>

Amazon RDS para Oracle admite las siguientes características de Oracle Database:

**nota**  
Lo que sigue no es una lista completa.
+ Advanced Compression
+ Oracle Application Express

  Para obtener más información, consulte [Oracle Application Express](Appendix.Oracle.Options.APEX.md).
+ Automatic Memory Management
+ Automatic Undo Management
+ Automatic Workload Repository (AWR)

  Para obtener más información, consulte [Generación de informes de rendimiento con Automatic Workload Repository (AWR)](Appendix.Oracle.CommonDBATasks.AWR.md).
+ Active Data Guard con el máximo rendimiento en la misma región de AWS o en todas las regiones de AWS

  Para obtener más información, consulte [Trabajo con las réplicas de lectura para Amazon RDS para Oracle](oracle-read-replicas.md).
+ Tablas de cadenas de bloques (Oracle Database 21c y posteriores)

  Para obtener más información, consulte el tema sobre [administración de tablas de bloques](https://docs.oracle.com/en/database/oracle/oracle-database/21/admin/managing-tables.html#GUID-43470B0C-DE4A-4640-9278-B066901C3926) en la documentación de Oracle Database.
+ Notificación de consulta continua

  Para obtener más información, consulte [ Using Continuous Query Notification (CQN)](https://docs.oracle.com/en/database/oracle/oracle-database/19/adfns/cqn.html#GUID-373BAF72-3E63-42FE-8BEA-8A2AEFBF1C35) en la documentación de Oracle.
+ Data Redaction
+ Notificación de consulta continua

  Para obtener más información, consulte [ Database Change Notification](https://docs.oracle.com/cd/E11882_01/java.112/e16548/dbchgnf.htm#JJDBC28815) en la documentación de Oracle.
+ Base de datos en memoria
+ Distributed Queries and Transactions
+ Edition-Based Redefinition

  Para obtener más información, consulte [Configuración de la edición predeterminada para una instancia de base de datos](Appendix.Oracle.CommonDBATasks.DefaultEdition.md).
+ EM Express (12c y versiones posteriores)

  Para obtener más información, consulte [Oracle Enterprise Manager](Oracle.Options.OEM.md).
+ Fine-Grained Auditing
+ Flashback Table, Flashback Query, Flashback Transaction Query
+ Sustitución gradual de contraseñas para aplicaciones (Oracle Database 21c y versiones posteriores)

  Para obtener más información, consulte el tema sobre [administración de la sustitución gradual de contraseñas de bases de datos para aplicaciones](https://docs.oracle.com/en/database/oracle/oracle-database/19/dbseg/configuring-authentication.html#GUID-ACBA8DAE-C5B4-4811-A31D-53B97C50249B) en la documentación de Oracle Database.
+ HugePages

  Para obtener más información, consulte [Activación de páginas de gran tamaño para una instancia de RDS para Oracle](Oracle.Concepts.HugePages.md).
+ Import/export (heredado y Data Pump) y SQL\$1Loader

  Para obtener más información, consulte [Importación de datos a Oracle en Amazon RDS](Oracle.Procedural.Importing.md).
+ Máquina virtual Java (JVM)

  Para obtener más información, consulte [Máquina virtual Oracle Java](oracle-options-java.md).
+ JavaScript (Oracle Database 21c y versiones posteriores)

  Para obtener más información, consulte [DBMS\$1MLE](https://docs.oracle.com/en/database/oracle/oracle-database/21/arpls/dbms_mle.html#GUID-3F5B47A5-2C73-4317-ACD7-E93AE8B8E301) en la documentación de Oracle Database.
+ Label Security

  Para obtener más información, consulte [Oracle Label Security](Oracle.Options.OLS.md).
+ Locator

  Para obtener más información, consulte [Oracle Locator](Oracle.Options.Locator.md).
+ Vistas materializadas
+ Multitenant

  La arquitectura multitenencia Oracle es compatible con todas las versiones de Oracle Database 19c y superiores. Para obtener más información, consulte [Uso de CDB con RDS para Oracle](oracle-multitenant.md).
+ Network encryption

  Para obtener más información, consulte [Oracle Native Network Encryption](Appendix.Oracle.Options.NetworkEncryption.md) y [Capa de conexión segura de Oracle](Appendix.Oracle.Options.SSL.md).
+ Particiones
+ Real Application Testing

  Para utilizar todas las funciones de captura y reproducción, debe utilizar Amazon Elastic File System (Amazon EFS) para acceder a los archivos generados por Oracle Real Application Testing. Para obtener más información, consulte [Integración de Amazon EFS](oracle-efs-integration.md) y la entrada del blog [Use Oracle Real Application Testing features with Amazon RDS for Oracle](https://aws.amazon.com/blogs/database/use-oracle-real-application-testing-features-with-amazon-rds-for-oracle/).
+ Partición en el nivel de aplicación (no incluye la característica de partición de Oracle)
+ Spatial and Graph

  Para obtener más información, consulte [Oracle Spatial](Oracle.Options.Spatial.md).
+ Star Query Optimization
+ Streams and Advanced Queuing
+ Summary Management – Materialized View Query Rewrite
+ Text (los tipos de almacén de datos de URL y archivos no son compatibles)
+ Total Recall
+ Cifrado de datos transparente (TDE)

  Para obtener más información, consulte [Cifrado de datos transparente de Oracle](Appendix.Oracle.Options.AdvSecurity.md).
+ Unified Auditing, Mixed Mode

  Para obtener más información, consulte [Mixed Mode Auditing](https://docs.oracle.com/en/database/oracle/oracle-database/19/dbseg/introduction-to-auditing.html#GUID-4A3AEFC3-5422-4320-A048-8219EC96EAC1) en la documentación de Oracle.
+ XML DB (sin XML DB Protocol Server)

  Para obtener más información, consulte [Oracle XML DB](Appendix.Oracle.Options.XMLDB.md).
+ Virtual Private Database

## Características no admitidas de RDS para Oracle
<a name="Oracle.Concepts.FeatureSupport.unsupported"></a>

Amazon RDS para Oracle no es compatible con las características de Oracle Database:

**nota**  
Lo que sigue no es una lista completa.
+ Automatic Storage Management (ASM)
+ Database Vault
+ Flashback Database
**nota**  
Para obtener soluciones alternativas, consulte la entrada del blog de AWS sobre [alternativas a la característica de base de datos flashback de Oracle en Amazon RDS para Oracle](https://aws.amazon.com/blogs/database/alternatives-to-the-oracle-flashback-database-feature-in-amazon-rds-for-oracle/).
+ FTP y SFTP
+ Tablas particionadas híbridas
+ Gateway de mensajería
+ Oracle Enterprise Manager Cloud Control Management Repository
+ Real Application Clusters (Oracle RAC)
+ Real Application Security (RAS)
+ Unified Auditing, Pure Mode
+ Esquema de Workspace Manager (WMSYS)

**aviso**  
En general, Amazon RDS no impide crear esquemas para características no admitidas. Sin embargo, si crea esquemas para características y componentes de Oracle que requieren privilegios SYSDBA, puede dañar el diccionario de datos y afectar a la disponibilidad de la instancia de base de datos. Utilice solo las características y esquemas compatibles que estén disponibles en [Adición de opciones a instancias de base de datos de Oracle](Appendix.Oracle.Options.md).

# Versiones de RDS para Oracle
<a name="Oracle.Concepts.database-versions"></a>

RDS para Oracle es compatible con múltiples versiones de Oracle Database.

**nota**  
Para obtener información acerca de cómo actualizar sus versiones, consulte [Actualización del motor de base de datos de RDS para Oracle](USER_UpgradeDBInstance.Oracle.md).

**Topics**
+ [Oracle Database 21 con Amazon RDS](#Oracle.Concepts.FeatureSupport.21c)
+ [Oracle Database 19c con Amazon RDS](#Oracle.Concepts.FeatureSupport.19c)

## Oracle Database 21 con Amazon RDS
<a name="Oracle.Concepts.FeatureSupport.21c"></a>

Amazon RDS admite la versión Oracle Database 21c, que incluye Oracle Enterprise Edition y Oracle Standard Edition 2. Oracle Database 21c (21.0.0.0) incluye muchas características y actualizaciones nuevas con respecto a la versión anterior. Un cambio clave es que Oracle Database 21c solo admite la arquitectura multiinquilino: ya no se puede crear una base de datos como una base de datos tradicional no CDB. Para obtener más información sobre las diferencias entre bases de datos CDB y no CDB, consulte [Limitaciones de las CDB de RDS para Oracle](Oracle.Concepts.CDBs.md#Oracle.Concepts.single-tenant-limitations).

En esta sección encontrará características y cambios importantes para usar Oracle Database 21c (21.0.0.0) en Amazon RDS. Para obtener una lista completa de los cambios, consulte la documentación de [Oracle Database 21c](https://docs.oracle.com/en/database/oracle/oracle-database/21/index.html). Para ver una lista completa de las características compatibles de cada edición de Oracle Database 21c, consulte el tema sobre [características admitidas, opciones y paquetes de administración de la oferta de productos de Oracle Database](https://docs.oracle.com/en/database/oracle/oracle-database/21/dblic/Licensing-Information.html) en la documentación de Oracle.

### Amazon RDS cambios de parámetros para Oracle Database 21c (21.0.0.0)
<a name="Oracle.Concepts.FeatureSupport.21c.parameters"></a>

Oracle Database 21c (21.0.0.0) incluye varios parámetros nuevos, así como parámetros con rangos y valores predeterminados nuevos.

**Topics**
+ [Parámetros nuevos](#Oracle.Concepts.FeatureSupport.21c.parameters.new)
+ [Cambios en el parámetro compatible](#Oracle.Concepts.FeatureSupport.21c.parameters.compatible)
+ [Parámetros eliminados](#Oracle.Concepts.FeatureSupport.21c.parameters.removed)

#### Parámetros nuevos
<a name="Oracle.Concepts.FeatureSupport.21c.parameters.new"></a>

En la siguiente tabla se muestran los parámetros nuevos de Amazon RDS for Oracle Database 21c (21.0.0.0).


****  

|  Nombre  |  Rango de valores  | Predeterminado |  Modificable  |  Descripción  | 
| --- | --- | --- | --- | --- | 
|    [blockchain\$1table\$1max\$1no\$1drop](https://docs.oracle.com/en/database/oracle/oracle-database/21/refrn/BLOCKCHAIN_TABLE_MAX_NO_DROP.html#GUID-26AF15B2-5621-4602-AA6E-D92842E4285C)    |  `NONE \| 0`  |  `NONE`  |  S  |  Permite controlar la cantidad máxima de tiempo de inactividad que se puede especificar al crear una tabla de cadena de bloques.  | 
|  [dbnest\$1enable](https://docs.oracle.com/en/database/oracle/oracle-database/21/refrn/DBNEST_ENABLE.html#GUID-2F30C9D3-808E-42CD-ADA6-595FAE518A60)  |  `NONE \| CDB_RESOURCE_PDB_ALL`  |  `NONE`  |  N  |  Permite habilitar o deshabilitar dbNest. dbNest permite aislar y administrar recursos del sistema operativo, aislar sistemas de archivos y computación segura para las PDB.   | 
|  [dbnest\$1pdb\$1fs\$1conf](https://docs.oracle.com/en/database/oracle/oracle-database/21/refrn/DBNEST_PDB_FS_CONF.html)  |  `NONE \| pathname`  |  `NONE`  |  N  |  Especifica el archivo de configuración del sistema de archivos dbNest para una PDB.   | 
|  [diagnostics\$1control](https://docs.oracle.com/en/database/oracle/oracle-database/21/refrn/DIAGNOSTICS_CONTROL.html)  |  `ERROR \| WARNING \| IGNORE`  | IGNORE |  S  |  Permite controlar y supervisar a los usuarios que realizan operaciones de diagnóstico de bases de datos potencialmente no seguras.  | 
|  [drcp\$1dedicated\$1opt](https://docs.oracle.com/en/database/oracle/oracle-database/21/refrn/DRCP_DEDICATED_OPT.html)  |  `YES \| NO`  | YES |  S  |  Habilita o deshabilita el uso de optimización dedicada con agrupación de conexiones residentes de bases de datos (DRCP).  | 
|  [enable\$1per\$1pdb\$1drcp](https://docs.oracle.com/en/database/oracle/oracle-database/21/refrn/ENABLE_PER_PDB_DRCP.html)  |  `true \| false`  |  `true`  |  N  |  Controla si la agrupación de conexiones residentes de bases de datos (DRCP) configura un grupo de conexiones para toda la CDB o un grupo de conexiones aislado para cada PDB.  | 
|  [inmemory\$1deep\$1vectorization](https://docs.oracle.com/en/database/oracle/oracle-database/21/refrn/INMEMORY_DEEP_VECTORIZATION.html#GUID-59E87FDC-1DB4-4ACD-A807-D0C1AE44210D)  |  `true \| false`  |  `true`  |  S  |  Habilita o deshabilita el marco de vectorización profunda.  | 
|  [mandatory\$1user\$1profile](https://docs.oracle.com/en/database/oracle/oracle-database/21/refrn/MANDATORY_USER_PROFILE.html)  |  *nombre\$1de\$1perfil*  |  N/A  |  N  |  Especifica el perfil de usuario obligatorio para una CDB o una PDB.  | 
|  [optimizer\$1capture\$1sql\$1quarantine](https://docs.oracle.com/en/database/oracle/oracle-database/21/refrn/OPTIMIZER_CAPTURE_SQL_QUARANTINE.html)  |  `true \| false`  |  `false`  |  S  |  Habilita o deshabilita el marco de vectorización profunda.  | 
|  [optimizer\$1use\$1sql\$1quarantine](https://docs.oracle.com/en/database/oracle/oracle-database/21/refrn/OPTIMIZER_CAPTURE_SQL_QUARANTINE.html#GUID-9DBBDBD3-2AA3-4627-9D3A-5330F447BEBB)  |  `true \| false`  |  `false`  |  S  |  Habilita o deshabilita la creación automática de configuraciones de cuarentena SQL.   | 
|  [result\$1cache\$1execution\$1threshold](https://docs.oracle.com/en/database/oracle/oracle-database/21/refrn/RESULT_CACHE_EXECUTION_THRESHOLD.html)  |  `0` De a `68719476736`  |  `2`  |  S  |  Especifica el número máximo de veces que se puede ejecutar una función PL/SQL antes de que su resultado se almacene en la caché de resultados.   | 
|  [result\$1cache\$1max\$1temp\$1result](https://docs.oracle.com/en/database/oracle/oracle-database/21/refrn/RESULT_CACHE_MAX_TEMP_RESULT.html)  |  `0` De a `100`  |  `5`  |  S  |  Especifica el porcentaje de `RESULT_CACHE_MAX_TEMP_SIZE` que puede consumir un resultado de consulta almacenado en caché.   | 
|  [result\$1cache\$1max\$1temp\$1size](https://docs.oracle.com/en/database/oracle/oracle-database/21/refrn/RESULT_CACHE_MAX_TEMP_SIZE.html)  |  `0` De a `2199023255552`  |  `RESULT_CACHE_SIZE * 10`  |  S  |  Especifica la cantidad máxima de espacios de tabla temporal (en bytes) que puede consumir la caché de resultados.   | 
|  [sga\$1min\$1size](https://docs.oracle.com/en/database/oracle/oracle-database/21/refrn/SGA_MIN_SIZE.html)  |  De `0` a `2199023255552` (el valor máximo es 50 % de `sga_target`)  |  `0`  |  S  |  Indica un posible valor mínimo para el uso de SGA de una base de datos conectable (PDB).  | 
|  [tablespace\$1encryption\$1default\$1algorithm](https://docs.oracle.com/en/database/oracle/oracle-database/21/refrn/TABLESPACE_ENCRYPTION_DEFAULT_ALGORITHM.html)  |  `GOST256 \| SEED128 \| ARIA256 \| ARIA192 \| ARIA128 \| 3DES168 \| AES256 \| AES192 \| AES128`  | AES128 |  S  |  Especifica el algoritmo predeterminado que utiliza la base de datos al cifrar un espacio de tabla.   | 

#### Cambios en el parámetro compatible
<a name="Oracle.Concepts.FeatureSupport.21c.parameters.compatible"></a>

El parámetro `compatible` tiene un nuevo valor máximo para Oracle Database 21c (21.0.0.0) en Amazon RDS. En la siguiente tabla se muestra el valor predeterminado nuevo.


****  

|  Nombre del parámetro  |  Valor máximo en Oracle Database 21c (21.0.0.0)  | 
| --- | --- | 
|  [ compatible](https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/COMPATIBLE.html#GUID-6C57EE11-BD06-4BB8-A0F7-D6CDDD086FA9)  |  21.0.0  | 

#### Parámetros eliminados
<a name="Oracle.Concepts.FeatureSupport.21c.parameters.removed"></a>

Los siguientes parámetros se han eliminado en Oracle 21c Database (21.0.0.0):
+ `remote_os_authent`
+ `sec_case_sensitive_logon`
+ `unified_audit_sga_queue_size`

## Oracle Database 19c con Amazon RDS
<a name="Oracle.Concepts.FeatureSupport.19c"></a>

Amazon RDS admite Oracle Database 19c, que incluye Oracle Enterprise Edition y Oracle Standard Edition Two.

Oracle Database 19c (19.0.0.0) incluye muchas características y actualizaciones nuevas con respecto a la versión anterior. En esta sección, podrá encontrar las características y los cambios importantes para usar Oracle Database 19c (19.0.0.0) en Amazon RDS. Para obtener una lista completa de los cambios, consulte la documentación de [Oracle Database 19c](https://docs.oracle.com/en/database/oracle/oracle-database/19/index.html). Para obtener una lista completa de las características compatibles de cada edición de Oracle Database 19c, consulte [Permitted Features, Options, and Management Packs by Oracle Database Offering](https://docs.oracle.com/en/database/oracle/oracle-database/19/dblic/Licensing-Information.html#GUID-0F9EB85D-4610-4EDF-89C2-4916A0E7AC87) en la documentación de Oracle. 

### Amazon RDS cambios de parámetros para Oracle Database 19c (19.0.0.0)
<a name="Oracle.Concepts.FeatureSupport.19c.Parameters"></a>

Oracle Database 19c (19.0.0.0) incluye varios parámetros nuevos, así como parámetros con rangos y valores predeterminados nuevos.

**Topics**
+ [Parámetros nuevos](#Oracle.Concepts.FeatureSupport.19c.Parameters.new)
+ [Cambios en el parámetro compatible](#Oracle.Concepts.FeatureSupport.19c.Parameters.compatible)
+ [Parámetros eliminados](#Oracle.Concepts.FeatureSupport.19c.Parameters.compatible.removed-parameters)

#### Parámetros nuevos
<a name="Oracle.Concepts.FeatureSupport.19c.Parameters.new"></a>

En la siguiente tabla se muestran los parámetros nuevos de Amazon RDS for Oracle Database 19c (19.0.0.0).


****  

|  Nombre  |  Valores  |  Modificable  |  Descripción  | 
| --- | --- | --- | --- | 
|   [ lob\$1signature\$1enable](https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/lob_signature_enable.html#GUID-62997AB5-1084-4C9A-8258-8CB695C7A1D6)   |  TRUE, FALSE (predeterminado)  |  S  |  Habilita o deshabilita la característica de firma del localizador de LOB.  | 
|   [ max\$1datapump\$1parallel\$1per\$1job](https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/MAX_DATAPUMP_PARALLEL_PER_JOB.html#GUID-33B1F962-B8C3-4DCE-BE68-66FC5D34ECA3)   |  1 a 1024 o AUTOMÁTICO  |  S  |  Especifica el número máximo de procesos paralelos permitidos para cada trabajo de Oracle Data Pump.  | 

#### Cambios en el parámetro compatible
<a name="Oracle.Concepts.FeatureSupport.19c.Parameters.compatible"></a>

El parámetro `compatible` tiene un nuevo valor máximo para Oracle Database 19c (19.0.0.0) en Amazon RDS. En la siguiente tabla se muestra el valor predeterminado nuevo. 


****  

|  Nombre del parámetro  |  Valor máximo de Oracle Database 19c (19.0.0.0)  | 
| --- | --- | 
|  [ compatible](https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/COMPATIBLE.html#GUID-6C57EE11-BD06-4BB8-A0F7-D6CDDD086FA9)  |  19.0.0  | 

#### Parámetros eliminados
<a name="Oracle.Concepts.FeatureSupport.19c.Parameters.compatible.removed-parameters"></a>

Los siguientes parámetros se eliminaron en Oracle 19c Database (19.0.0.0):
+ `exafusion_enabled`
+ `max_connections`
+ `o7_dictionary_access`

# Opciones de licencias de RDS para Oracle
<a name="Oracle.Concepts.Licensing"></a>

Amazon RDS para Oracle tiene dos opciones de licencia: License Included (LI) y Bring Your Own License (BYOL). Después de crear una instancia de base de datos de Oracle en Amazon RDS, puede cambiar el modelo de licencia modificando la instancia de base de datos. Para obtener más información, consulte [Modificación de una instancia de base de datos de Amazon RDS](Overview.DBInstance.Modifying.md).

**importante**  
Asegúrese de tener la licencia de Oracle Database adecuada, con Software Update License and Support, para su clase de instancia de base de datos y edición de Oracle Database. Asegúrese también de tener licencias para cualquier característica de Oracle Database con licencia independiente.

**Topics**
+ [Modelo con licencia incluida para SE2](#Oracle.Concepts.Licensing.LicenseIncluded)
+ [Traiga su propia licencia (BYOL) para EE y SE2](#Oracle.Concepts.Licensing.BYOL)
+ [Licencias en implementaciones Multi-AZ de Oracle](#Oracle.Concepts.Licensing.MAZ)

## Modelo con licencia incluida para SE2
<a name="Oracle.Concepts.Licensing.LicenseIncluded"></a>

En el modelo de licencia incluida, no es necesario adquirir licencias de Oracle Database por separado; AWS tiene la licencia para el software de base de datos de Oracle. El modelo de licencia incluido solo es compatible con Amazon RDS para Oracle Database Standard Edition 2 (SE2).

En este modelo, si tiene una cuenta de AWS Support con soporte para incidencias, puede contactar a Soporte para las solicitudes de servicio relacionadas con Amazon RDS y Oracle Database. El uso de la opción LI de RDS para Oracle está sujeto a la sección 10.3.1 de los [Términos de servicio de AWS](https://aws.amazon.com/service-terms/).

## Traiga su propia licencia (BYOL) para EE y SE2
<a name="Oracle.Concepts.Licensing.BYOL"></a>

En el modelo BYOL, puede utilizar sus licencias existentes de Oracle Database para desplegar bases de datos en Amazon RDS. Amazon RDS admite el modelo BYOL solo para Oracle Database Enterprise Edition (EE) y Oracle Database Standard Edition 2 (SE2).

Asegúrese de tener la licencia de Oracle Database adecuada (con Software Update License and Support) para la clase de instancia de base de datos y la edición de Oracle Database que desee ejecutar. También debe seguir las políticas de Oracle en cuanto a licencias de software de Oracle Database en el entorno de informática en la nube. Para obtener más información acerca de la política de licencias de Oracle para Amazon EC2, consulte [ Licensing Oracle Software in the Cloud Computing Environment](http://www.oracle.com/us/corporate/pricing/cloud-licensing-070579.pdf).

En este modelo, continuará utilizando su cuenta de soporte de Oracle activa y se pondrá en contacto con Oracle directamente para las solicitudes de servicio relacionadas con Oracle Database. Si tiene una cuenta de AWS Support con soporte para incidencias, puede contactar a Soporte para solucionar problemas relacionados con Amazon RDS.

### Integración con AWS License Manager
<a name="oracle-lms-integration"></a>

Para facilitar la supervisión del uso de licencias de Oracle en el modelo BYOL, [AWS License Manager](https://aws.amazon.com/license-manager/) se integra con Amazon RDS para Oracle. License Manager admite el seguimiento de RDS para ediciones del motor de Oracle y paquetes de licencias basados en núcleos virtuales (vCPUs). También puede utilizar License Manager con AWS Organizations para administrar todas las cuentas de su organización de forma centralizada.

En la siguiente tabla se muestran los filtros de información del producto de RDS para Oracle.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/Oracle.Concepts.Licensing.html)

Para hacer un seguimiento del uso de sus instancias de base de datos de Oracle, puede crear una licencia autoadministrada con AWS License Manager. En este caso, los recursos de RDS para Oracle que coinciden con el filtro de información del producto se asocian automáticamente a la configuración de la licencia autoadministrada. La detección de instancias de base de datos de Oracle puede tardar hasta 24 horas. También puede realizar un seguimiento de una licencia en todas las cuentas mediante AWS Resource Access Manager.

#### Consola
<a name="oracle-lms-integration.console"></a>

**Creación de una licencia autoadministrada en AWS License Manager a fin de hacer un seguimiento del uso de licencias de sus instancias de base de datos de RDS para Oracle**

1. Vaya a [https://console.aws.amazon.com/license-manager/](https://console.aws.amazon.com/license-manager/).

1. Seleccione **Crear licencia autoadministrada**.

   Para obtener instrucciones, consulte [Create a self-managed license](https://docs.aws.amazon.com/license-manager/latest/userguide/create-license-configuration.html) en la *Guía del usuario de AWS License Manager*.

   Agregue una regla para un **RDS Product Information Filter (Filtro de información del producto de RSD)** en el panel **Product Information (Información del producto)**.

   Para obtener más información, consulte [ProductInformation](https://docs.aws.amazon.com/license-manager/latest/APIReference/API_ProductInformation.html) en la *Referencia de la API de AWS License Manager*.

1. (Solo para el seguimiento entre cuentas) Utilice AWS Resource Access Manager para compartir sus licencias autoadministradas con cualquier cuenta AWS o mediante AWS Organizations. Para obtener más información, consulte [Uso compartido de los recursos de AWS](https://docs.aws.amazon.com/ram/latest/userguide/getting-started-sharing.html).

#### AWS CLI
<a name="oracle-lms-integration.cli"></a>

Para crear una licencia autoadministrada mediante la AWS CLI, llame al comando [create-license-configuration](https://docs.aws.amazon.com/cli/latest/reference/license-manager/create-license-configuration.html). Use los parámetros `--cli-input-json` o `--cli-input-yaml` para transmitir los parámetros al comando.

**Example**  
En el siguiente ejemplo, se crea una licencia autoadministrada para Oracle Enterprise Edition.   

```
aws license-manager create-license-configuration --cli-input-json file://rds-oracle-ee.json
```
Lo siguiente es el archivo `rds-oracle-ee.json` de muestra utilizado en el ejemplo.  

```
{
    "Name": "rds-oracle-ee",
    "Description": "RDS Oracle Enterprise Edition",
    "LicenseCountingType": "vCPU",
    "LicenseCountHardLimit": false,
    "ProductInformationList": [
        {
            "ResourceType": "RDS",
            "ProductInformationFilterList": [
                {
                    "ProductInformationFilterName": "Engine Edition",
                    "ProductInformationFilterValue": ["oracle-ee"],
                    "ProductInformationFilterComparator": "EQUALS"
                }
            ]
        }
    ]
}
```

Para obtener más información acerca de la información del producto, consulte [Detección automatizada del inventario de recursos](https://docs.aws.amazon.com/license-manager/latest/userguide/automated-discovery.html) en la *Guía del usuario de AWS License Manager*.

Para obtener más información sobre el parámetro `--cli-input`, consulte [Generar AWS CLIel esqueleto y los parámetros de entrada a partir de un archivo de entrada JSON o YAML ](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-skeleton.html)en la *AWS CLIGuía del usuario de* 

### Migración entre ediciones de Oracle Database
<a name="Oracle.Concepts.EditionsMigrating"></a>

Si tiene una licencia BYOL Oracle Database sin utilizar adecuada para la edición y clase de instancia de base de datos que planea ejecutar, puede migrar de Standard Edition 2 (SE2) a Enterprise Edition (EE). No puede migrar de EE a otras ediciones.

**Para cambiar de edición de Oracle Database y conservar los datos**

1. Cree una instantánea de la instancia de la base de datos.

   Para obtener más información, consulte [Creación de una instantánea de base de datos para una instancia de base de datos single-AZ para Amazon RDS](USER_CreateSnapshot.md).

1. Restaure la instantánea a una instancia de base de datos nueva y seleccione la edición de la base de datos Oracle que desea utilizar.

   Para obtener más información, consulte [Restauración a una instancia de base de datos](USER_RestoreFromSnapshot.md).

1. (Opcional) Elimine la antigua instancia de base de datos, a menos que quiera que siga ejecutándose y disponga de las licencias para la base de datos Oracle necesarias.

   Para obtener más información, consulte [Eliminación de una instancia de base de datos](USER_DeleteInstance.md).

## Licencias en implementaciones Multi-AZ de Oracle
<a name="Oracle.Concepts.Licensing.MAZ"></a>

Amazon RDS admite implementaciones Multi-AZ para Oracle como una solución de conmutación por error de alta disponibilidad. Recomendamos Multi-AZ para las cargas de trabajo de producción. Para obtener más información, consulte [Configuración y administración de una implementación multi-AZ para Amazon RDS](Concepts.MultiAZ.md). 

Si utiliza el modelo Bring-Your-Own-License, debe tener una licencia para la instancia de base de datos principal y para la instancia de base de datos en espera en una implementación Multi-AZ. 

# Usuarios y privilegios de RDS para Oracle
<a name="Oracle.Concepts.Privileges"></a>

Al crear una instancia de base de datos de Amazon RDS para Oracle, el usuario maestro predeterminado tiene la mayoría de los permisos de usuario máximos de la instancia de base de datos. Utilice la cuenta del usuario maestro para las tareas administrativas, como la creación de cuentas de usuario adicionales en la base de datos. Dado que RDS es un servicio administrado, no se le permite iniciar sesión como `SYS` y `SYSTEM`, y por lo tanto no tiene privilegios `SYSDBA`.

**Topics**
+ [Limitaciones de los privilegios de Oracle DBA](#Oracle.Concepts.dba-limitations)
+ [Administración de privilegios en los objetos SYS](#Oracle.Concepts.Privileges.SYS-objects)

## Limitaciones de los privilegios de Oracle DBA
<a name="Oracle.Concepts.dba-limitations"></a>

En la base de datos, un rol es una colección de privilegios que puede conceder o revocar a un usuario. Una base de datos de Oracle utiliza roles para proporcionar seguridad. Para obtener más información, consulte [Configuring Privilege and Role Authorization](https://docs.oracle.com/en/database/oracle/oracle-database/19/dbseg/configuring-privilege-and-role-authorization.html#GUID-89CE989D-C97F-4CFD-941F-18203090A1AC) en la documentación de Oracle Database.

El rol predefinido de `DBA` normalmente permite todos los privilegios administrativos en una base de datos de Oracle. Cuando crea una instancia de base de datos, su cuenta de usuario principal obtiene privilegios de DBA (con algunas limitaciones). Para ofrecer una experiencia administrada, una base de datos de RDS para Oracle no proporciona los siguientes privilegios para el rol de `DBA`: 
+ `ALTER DATABASE`
+ `ALTER SYSTEM`
+ `CREATE ANY DIRECTORY`
+ `DROP ANY DIRECTORY`
+ `GRANT ANY PRIVILEGE`
+ `GRANT ANY ROLE`

Para obtener más información sobre los privilegios y funciones del sistema RDS para Oracle, consulte [Privilegios de la cuenta de usuario maestro](UsingWithRDS.MasterAccounts.md).

## Administración de privilegios en los objetos SYS
<a name="Oracle.Concepts.Privileges.SYS-objects"></a>

Puede administrar los privilegios en objetos `SYS` mediante el paquete `rdsadmin.rdsadmin_util`. Por ejemplo, si crea el usuario de la base de datos `myuser`, puede utilizar el procedimiento `rdsadmin.rdsadmin_util.grant_sys_object` para conceder privilegios `SELECT` en `V_$SQLAREA` a `myuser`. Para obtener más información, consulte los temas siguientes:
+ [Concesión de privilegios SELECT o EXECUTE para objetos SYS](Appendix.Oracle.CommonDBATasks.TransferPrivileges.md)
+ [Revocación de privilegios SELECT o EXECUTE para objetos SYS](Appendix.Oracle.CommonDBATasks.RevokePrivileges.md)
+ [Concesión de privilegios a usuarios no maestros](Appendix.Oracle.CommonDBATasks.PermissionsNonMasters.md)

# Clases de instancias de base de datos de RDS para Oracle
<a name="Oracle.Concepts.InstanceClasses"></a>

La capacidad de cómputo y de memoria de la instancia de base de datos de RDS para Oracle se determina mediante su clase de instancia. La clase de instancia de base de datos que necesita depende de la potencia de procesamiento y de los requisitos de memoria.



## Clases de instancias admitidas de RDS para Oracle
<a name="Oracle.Concepts.InstanceClasses.Supported"></a>

Las clases de instancia admitidas de RDS para Oracle son un subconjunto de las clases de instancia de base de datos de RDS. Para ver la lista completa de las clases de instancia de RDS, consulte [Clases de instancia de base de datos de ](Concepts.DBInstanceClass.md).



### Clases de instancias de bases de datos preconfiguradas de RDS para Oracle
<a name="Oracle.Concepts.InstanceClasses.Supported.tpc"></a>

RDS para Oracle también ofrece clases de instancias preconfiguradas para cargas de trabajo que requieren memoria, almacenamiento y E/S adicionales por vCPU. Estas clases de instancia utilizan la siguiente convención de nomenclatura.

```
db.r5b.instance_size.tpcthreads_per_core.memratio
db.r5.instance_size.tpcthreads_per_core.memratio
```

A continuación, se muestra un ejemplo de una clase de instancia que está preconfigurada para memoria adicional:

```
db.r5b.4xlarge.tpc2.mem2x
```

Los componentes del nombre de clase de instancia anterior son los siguientes:
+ `db.r5b.4xlarge`: el nombre de la clase de instancia.
+ `tpc2`: los subprocesos por núcleo. Un valor de 2 significa que el multiproceso está activado. Un valor de 1 significa que el multiproceso está desactivado. 
+ `mem2x`: la relación entre la memoria adicional y la memoria estándar para la clase de instancia. En este ejemplo, la optimización proporciona el doble de memoria que una instancia de db.r5.4xlarge estándar. 

**nota**  
Para conocer los factores de normalización del RDS preconfigurado para las clases de instancias de base de datos de Oracle, consulte [Especificaciones de hardware para clases de instancia de base de datos ](Concepts.DBInstanceClass.Summary.md).

### Combinaciones de licencias, clase de instancia y ediciones compatibles en RDS para Oracle
<a name="Oracle.Concepts.InstanceClasses.Supported.combo"></a>

Si utiliza la consola RDS, puede saber si una determinada edición, clase de instancia o combinación de licencia es compatible; para ello, seleccione **Crear base de datos** y especifique una opción diferente. En la AWS CLI, puede ejecutar el siguiente comando:

```
aws rds describe-orderable-db-instance-options --engine engine-type --license-model license-type
```

En la siguiente tabla, se enumeran todas las ediciones, clases de instancias y tipos de licencia compatibles con RDS para Oracle. Para obtener información acerca de los atributos de memoria de cada tipo, consulte [Tipos de instancia de RDS para Oracle](https://aws.amazon.com//rds/oracle/instance-types). Para obtener más información acerca de los precios, consulte [Modelos de precios de Amazon RDS para Oracle](https://aws.amazon.com/rds/oracle/pricing/#Pricing_models).


****  
<a name="rds-oracle-instance-class-reference"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/Oracle.Concepts.InstanceClasses.html)

## Clases de instancias de bases de datos obsoletas para RDS para Oracle
<a name="Oracle.Concepts.InstanceClasses.Deprecated"></a>

A continuación, se presentan las clases de instancia de base de datos obsoletas para RDS para Oracle:
+ db.m1, db.m2, db.m3, db.m4
+ db.t1, db.t2
+ db.r1, db.r2, db.r3, db.r4
+ db.x1, db.x1e

Estas clases de instancia de base de datos se han sustituido por clases de instancia de base de datos con un mejor desempeño que están disponibles generalmente a un costo inferior. Si tiene instancias de base de datos que utilizan clases de instancias de bases de datos obsoletas, tiene las siguientes opciones:
+ Permita que Amazon RDS modifique cada instancia de base de datos automáticamente para utilizar una clase de instancia de base de datos comparable no obsoleta. Para conocer los plazos de obsolescencia, consulte [Tipos de clase de instancia de base de datos](Concepts.DBInstanceClass.Types.md).
+ Cambie la clase de instancia de la base de datos usted mismo modificando la instancia de base de datos. Para obtener más información, consulte [Modificación de una instancia de base de datos de Amazon RDS](Overview.DBInstance.Modifying.md). 

**nota**  
Si tiene instantáneas de base de datos de instancias de bases de datos que usaban clases de instancia de base de datos obsoleta, puede elegir una instancia de base de datos que no esté obsoleta cuando restaure las instantáneas de base de datos. Para obtener más información, consulte [Restauración a una instancia de base de datos](USER_RestoreFromSnapshot.md).

# Arquitectura de base de datos de RDS para Oracle
<a name="oracle-multi-architecture"></a>

La arquitectura multitenencia de Oracle, también denominada arquitectura CDB, permite que una base de datos Oracle funcione como base de datos de tipo contenedor multitenencia (CDB). Una CDB puede incluir bases de datos conectables (PDB) creadas por el cliente. Una base de datos que no es CDB es una base de datos Oracle que utiliza la arquitectura tradicional y no puede contener PDB. Para obtener más información sobre la arquitectura de varios inquilinos, consulte [https://docs.oracle.com/en/database/oracle/oracle-database/19/multi/introduction-to-the-multitenant-architecture.html#GUID-267F7D12-D33F-4AC9-AA45-E9CD671B6F22](https://docs.oracle.com/en/database/oracle/oracle-database/19/multi/introduction-to-the-multitenant-architecture.html#GUID-267F7D12-D33F-4AC9-AA45-E9CD671B6F22).

Para Oracle Database 19c y superiores, puede crear una instancia de base de datos de RDS para Oracle que utilice la arquitectura de CDB. En RDS para Oracle, las PDB se denominan bases de datos de inquilinos. Las aplicaciones de cliente se conectan en el nivel de la base de datos de inquilinos (PDB) y no en el de la CDB. RDS para Oracle es compatible con las siguientes configuraciones de la arquitectura CDB:

**Configuración de varios inquilinos**  
La plataforma RDS que se utilice para que una instancia de CDB de RDS para Oracle contenga entre 1 y 30 bases de datos de inquilinos, en función de la edición de la base de datos y de las licencias de opciones necesarias. Puede utilizar las API de RDS para agregar, modificar y eliminar bases de datos de inquilinos. La configuración de varios inquilinos en RDS para Oracle no admite las PDB de aplicación ni las PDB de proxy, que son tipos especiales de PDB. Para obtener más información sobre las PDB de aplicación y las PDB de proxy, consulte [Tipos de PDB](https://docs.oracle.com/en/database/oracle/oracle-database/19/multi/overview-of-the-multitenant-architecture.html#GUID-D0F40745-FC70-4BE0-85D3-3745DE3312AC) en la documentación de Oracle Database.  
La configuración de Amazon RDS se denomina “de varios inquilinos”, en lugar de “multitenencia”, ya que es una capacidad de la plataforma RDS, no solo del motor de base de datos de Oracle. De manera similar, el término “inquilino” de RDS se refiere a cualquier inquilino en una configuración de RDS, no solo a las PDB de Oracle. En la documentación de RDS, el término “de varios inquilinos de Oracle” sin guion se refiere exclusivamente a la arquitectura CDB de la base de datos de Oracle, que es compatible tanto con las implementaciones en las instalaciones como con RDS.

**Configuración de un solo inquilino**  
La característica de la plataforma RDS limita la instancia de CDB de RDS para Oracle a una base de datos de 1 inquilino (PDB). No puede añadir más PDB con las API de RDS. La configuración de un solo inquilino utiliza las mismas API de RDS que la arquitectura no CDB. Por lo tanto, la experiencia de trabajar con una CDB en la configuración de un solo inquilino es prácticamente la misma que la de trabajar con una no CDB.  
Puede convertir una CDB con la configuración de un solo inquilino a la configuración de varios inquilinos, lo que le permite agregar PDB a su CDB. Este cambio de arquitectura es permanente e irreversible. Para obtener más información, consulte [Convertir la configuración de un solo inquilino a una de varios inquilinos.](oracle-single-tenant-converting.md).

**nota**  
No se puede acceder a la CDB en sí.

En Oracle Database 21c y versiones posteriores, todas las bases de datos son CDB. En cambio, puede crear una instancia de base de datos de Oracle Database 19c como CDB o no CDB. No puede actualizar una no CDB a CDB, pero puede convertir una Oracle Database 19c que no sea CDB en CDB y, a continuación, actualizarla. No se puede actualizar una CDB en no CDB.

Para obtener más información, consulte los siguientes recursos:
+ [Uso de CDB con RDS para Oracle](oracle-multitenant.md)
+ [Limitaciones de las CDB de RDS para Oracle](Oracle.Concepts.CDBs.md#Oracle.Concepts.single-tenant-limitations)
+ [Creación de una instancia de base de datos de Amazon RDS](USER_CreateDBInstance.md)

# Parámetros de inicialización de RDS para Oracle
<a name="Oracle.Concepts.FeatureSupport.Parameters"></a>

En Amazon RDS, administre parámetros con un grupo de parámetros de base de datos. Con este grupo, puede personalizar los parámetros de inicialización. Por ejemplo, puede configurar el tamaño del área de ordenación con `sort_area_size`. Todas las instancias de base de datos de RDS para Oracle asociadas a un grupo de parámetros de base de datos específico utilizan la misma configuración de parámetros. Para obtener más información, consulte [Grupos de parámetros para Amazon RDS](USER_WorkingWithParamGroups.md). 

## Parámetros de inicialización admitidos en RDS para Oracle
<a name="Oracle.Concepts.FeatureSupport.Parameters.individual"></a>

Los parámetros admitidos para la instancia de base de datos dependen de la edición y versión de Oracle Database. Para ver los parámetros de inicialización compatibles con una edición y versión específicas de Oracle Database, ejecute el comando [https://docs.aws.amazon.com/cli/latest/reference/rds/describe-engine-default-parameters.html](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-engine-default-parameters.html) de la AWS CLI. Por ejemplo, para ver los parámetros de inicialización admitidos para Enterprise Edition de Oracle Database 19c, ejecute el siguiente comando (ejemplo de salida incluido).

```
aws rds describe-engine-default-parameters \
    --db-parameter-group-family oracle-ee-19 \
    --output json | jq -r '.EngineDefaults.Parameters[].ParameterName'

_add_col_optim_enabled
_adg_parselock_timeout
_allow_insert_with_update_check
_allow_level_without_connect_by
_always_semi_join
_autotask_max_window
_awr_disabled_flush_tables
_awr_mmon_cpuusage
_awr_mmon_deep_purge_all_expired
_b_tree_bitmap_plans
_bct_bitmaps_per_file
_bloom_filter_enabled
_buffered_publisher_flow_control_threshold
_bug29394014_allow_triggers_on_vpd_table
_cleanup_rollback_entries
_client_enable_auto_unregister
_clusterwide_global_transactions
_complex_view_merging
_connect_by_use_union_all
_cost_equality_semi_join
_cursor_features_enabled
_cursor_obsolete_threshold
_datafile_write_errors_crash_instance
_db_block_buffers
...
```

Para describir un único parámetro de inicialización, utilice el siguiente comando, sustituyendo `sga_max_size` por el nombre del parámetro (se incluye un ejemplo de salida).

```
aws rds describe-engine-default-parameters \
    --db-parameter-group-family oracle-ee-19 \
    --query 'EngineDefaults.Parameters[?ParameterName==`sga_max_size`]' \
    --output json

[
    {
        "ParameterName": "sga_max_size",
        "Description": "max total SGA size",
        "Source": "engine-default",
        "ApplyType": "static",
        "DataType": "integer",
        "AllowedValues": "0-2199023255552",
        "IsModifiable": true
    }
]
```

Para encontrar documentación general de los parámetros de inicialización de la base de datos de Oracle, consulte [Parámetros de inicialización](https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/initialization-parameters.html#GUID-6F1C3203-0AA0-4AF1-921C-A027DD7CB6A9) en la documentación de Oracle Database. Tenga en cuenta que el parámetro `ARCHIVE_LAG_TARGET` tiene consideraciones especiales en RDS para Oracle. Este parámetro fuerza a que se cambie el registro de recuperación de cambios una vez transcurrido el tiempo especificado. En RDS para Oracle, `ARCHIVE_LAG_TARGET` se establece en `300` porque el objetivo de punto de recuperación (RPO) es de 5 minutos. Para cumplir este objetivo, RDS para Oracle cambia el registro redo en línea cada 5 minutos y lo almacena en un bucket de Amazon S3. 

Si la frecuencia del cambio de registro de recuperación de cambios provoca un problema de rendimiento en la base de datos de RDS para Oracle, puede escalar la instancia de base de datos y el almacenamiento para usar un rendimiento y un IOPS más altos. Como alternativa, si utiliza RDS Custom para Oracle o implementa una base de datos de Oracle en Amazon EC2, puede ajustar la configuración del parámetro de inicialización `ARCHIVE_LAG_TARGET`.

## Valores de parámetro válidos en RDS para Oracle
<a name="oracle-valid-parameter-values"></a>

En RDS para Oracle, solo los siguientes caracteres son válidos para los valores de los parámetros:
+ Letras (`A-Z` y `a-z`)
+ Números (`0-9`)
+ Espacios en blanco (espacios, tabulaciones y saltos de línea)
+ Los siguientes caracteres especiales: `_ / . : + = ( ) ' * , % $ -` (guion)

# RDS para conjuntos de caracteres de Oracle
<a name="Appendix.OracleCharacterSets"></a>

RDS para Oracle admite dos tipos de juegos de caracteres: el juego de caracteres de base de datos y el juego de caracteres nacional.

## Conjunto de caracteres de base de datos
<a name="Appendix.OracleCharacterSets.db-character-set"></a>

El juego de caracteres de base de datos Oracle se utiliza en los tipos de datos `CHAR`, `VARCHAR2` y `CLOB`. La base de datos también utiliza este juego de caracteres para metadatos como nombres de tablas, nombres de columnas y sentencias SQL. Normalmente, el juego de caracteres de la base de datos Oracle se denomina juego de caracteres de base de datos. 

Establezca el conjunto de caracteres al crear una instancia de base de datos. No puede cambiar el juego de caracteres de la base de datos después de crear la base de datos.

### Conjuntos de caracteres de base de datos admitidos
<a name="Appendix.OracleCharacterSets.db-character-set.supported"></a>

En la siguiente tabla se enumeran los conjuntos de caracteres de Oracle Database admitidos en Amazon RDS. Puede usar un valor de esta tabla con el parámetro `--character-set-name` del comando [create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) de la AWS CLI o con el parámetro `CharacterSetName` de la operación [CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) de la API de Amazon RDS.

**nota**  
El conjunto de caracteres de una base de datos de contenedores (CDB) siempre es AL32UTF8. Puede establecer un conjunto de caracteres diferente solo para la base de datos conectable (PDB).


****  

| Valor | Descripción | 
| --- | --- | 
|  AL32UTF8  |  Conjunto de caracteres universal UTF-8 Unicode 5.0 (predeterminado)  | 
|  AR8ISO8859P6  |  ISO 8859-6: latinos/árabes  | 
|  AR8MSWIN1256  |  Página de códigos 1256 de Microsoft Windows: latinos/árabes de 8 bits  | 
|  BLT8ISO8859P13  |  ISO 8859-13: bálticos  | 
|  BLT8MSWIN1257  |  Página de códigos 1257 de Microsoft Windows: bálticos de 8 bits  | 
|  CL8ISO8859P5  |  ISO 88559-5: latinos/cirílicos  | 
|  CL8MSWIN1251  |  Página de códigos 1251 de Microsoft Windows: latinos/cirílicos de 8 bits  | 
|  EE8ISO8859P2  |  ISO 8859-2: Europa oriental  | 
|  EL8ISO8859P7  |  ISO 8859-7: latinos/griegos  | 
|  EE8MSWIN1250  |  Página de códigos 1250 de Microsoft Windows: Europa oriental (de 8 bits)  | 
|  EL8MSWIN1253  |  Página de códigos 1253 de Microsoft Windows: latinos/griegos de 8 bits  | 
|  IW8ISO8859P8  |  ISO 8859-8: latinos/hebreos  | 
|  IW8MSWIN1255  |  Página de códigos 1255 de Microsoft Windows: latinos/hebreos de 8 bits  | 
|  JA16EUC  |  EUC: japoneses de 24 bits  | 
|  JA16EUCTILDE  |  Igual que JA16EUC, excepto para el mapeo de la raya ondulada y la tilde, desde y hacia Unicode  | 
|  JA16SJIS  |  Shift-JIS: japoneses de 16 bits  | 
|  JA16SJISTILDE  |  Igual que JA16SJIS, excepto para el mapeo de la raya ondulada y la tilde, desde y hacia Unicode  | 
|  KO16MSWIN949  |  Página de códigos 949 de Microsoft Windows: coreanos  | 
|  NE8ISO8859P10  |  ISO 8859-10: Norte de Europa  | 
|  NEE8ISO8859P4  |  ISO 8859-4: Norte y Noreste de Europa  | 
|  TH8TISASCII  |  Estándar industrial tailandés 620-2533-ASCII de 8 bits  | 
|  TR8MSWIN1254  |  Página de códigos 1254 de Microsoft Windows: turcos de 8 bits  | 
|  US7ASCII  |  ASCII de 7 bits americano  | 
|  UTF8  |  Conjunto de caracteres universal UTF-8 Unicode 3.0, conforme con CESU-8  | 
|  VN8MSWIN1258  |  Página de códigos 1258 de Microsoft Windows: vietnamitas de 8 bits  | 
|  WE8ISO8859P1  |  ISO 8859 parte 1: Europa occidental (de 8 bits)  | 
|  WE8ISO8859P15  |  ISO 8859-15: Europa occidental  | 
|  WE8ISO8859P9  |  ISO 8859-9: Europa occidental y turcos  | 
|  WE8MSWIN1252  |  Página de códigos 1252 de Microsoft Windows: Europa occidental (de 8 bits)  | 
|  ZHS16GBK  |  GBK: chino simplificado (de 16 bits)  | 
|  ZHT16HKSCS  |  Página de códigos 950 de Microsoft Windows con el conjunto de caracteres suplementarios HKSCS-2001 para Hong Kong. La conversión del conjunto de caracteres se basa en Unicode 3.0.  | 
|  ZHT16MSWIN950  |  Página de códigos 950 de Microsoft Windows: chino tradicional  | 
|  ZHT32EUC  |  EUC: chino tradicional (de 32 bits)  | 

### Variable de entorno NLS\$1LANG
<a name="Appendix.OracleCharacterSets.db-character-set.nls_lang"></a>

Una configuración regional es un conjunto de información que aborda los requisitos lingüísticos y culturales que corresponde a un idioma y país determinados. La forma más sencilla de especificar el comportamiento de la configuración regional para Oracle consiste en establecer la variable de entorno NLS\$1LANG en el entorno del cliente. Esta variable establece el idioma y el territorio utilizados por la aplicación cliente y el servidor de bases de datos. También indica el conjunto de caracteres del cliente, que corresponde al conjunto de caracteres para los datos introducidos o mostrados por una aplicación cliente. Para obtener más información acerca de NLS\$1LANG y los conjuntos de caracteres, consulte [What is a Character set or Code Page?](http://www.oracle.com/technetwork/database/database-technologies/globalization/nls-lang-099431.html#_Toc110410570) en la documentación de Oracle.

### Parámetros de inicialización de NLS
<a name="Appendix.OracleCharacterSets.db-character-set.nls_parameters"></a>

También puede especificar los siguientes parámetros de inicialización de National Language Support (NLS) en el nivel de la instancia para una instancia de base de datos de Oracle en Amazon RDS:
+ NLS\$1COMP
+ NLS\$1DATE\$1FORMAT
+ NLS\$1LENGTH\$1SEMANTICS
+ NLS\$1NCHAR\$1CONV\$1EXCP
+ NLS\$1SORT
+ NLS\$1TIME\$1FORMAT
+ NLS\$1TIME\$1TZ\$1FORMAT
+ NLS\$1TIMESTAMP\$1FORMAT
+ NLS\$1TIMESTAMP\$1TZ\$1FORMAT

Para obtener información acerca de cómo modificar los parámetros de la instancia, consulte [Grupos de parámetros para Amazon RDS](USER_WorkingWithParamGroups.md).

También puede definir otros parámetros de inicialización de NLS en el cliente SQL. Por ejemplo, la siguiente instrucción especifica el parámetro de inicialización NLS\$1LANGUAGE en GERMAN para un cliente SQL conectado a una instancia de base de datos de Oracle:

```
ALTER SESSION SET NLS_LANGUAGE=GERMAN;
```

Para obtener información acerca de la conexión a su instancia de base de datos de Oracle con un cliente SQL, consulte [Conexión a una instancia de base de datos de Oracle](USER_ConnectToOracleInstance.md).

## Conjunto de caracteres nacionales
<a name="Appendix.OracleCharacterSets.nchar-character-set"></a>

El juego de caracteres nacional se utiliza en los tipos de datos `NCHAR`, `NVARCHAR2` y `NCLOB`. El conjunto de caracteres nacionales se conoce normalmente como el conjunto de caracteres NCHAR. A diferencia del conjunto de caracteres de base de datos, el conjunto de caracteres NCHAR no afecta a los metadatos de la base de datos.

El conjunto de caracteres NCHAR admite los siguientes conjuntos de caracteres:
+ AL16UTF16 (predeterminado)
+ UTF8

Puede especificar cualquiera de los valores con el parámetro `--nchar-character-set-name` del comando [create-db-instance](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/create-db-instance.html) (AWS CLI solo versión 2). Si utiliza la API de Amazon RDS, especifique el parámetro `NcharCharacterSetName` de la operación [CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). No se puede cambiar el juego de caracteres nacionales después de crear la base de datos.

Para obtener más información acerca de Unicode en bases de datos Oracle, consulte [Compatibilidad con bases de datos multilingües con Unicode](https://docs.oracle.com/en/database/oracle/oracle-database/19/nlspg/supporting-multilingual-databases-with-unicode.html) en la documentación de Oracle.

# Limitaciones de RDS para Oracle
<a name="Oracle.Concepts.limitations"></a>

En las siguientes secciones, encontrará importantes limitaciones del uso de RDS para Oracle. Para conocer las limitaciones específicas de las CDB, consulte [Limitaciones de las CDB de RDS para Oracle](Oracle.Concepts.CDBs.md#Oracle.Concepts.single-tenant-limitations).

**nota**  
Esta lista no es exhaustiva.

**Topics**
+ [Límites de tamaño de archivo Oracle en Amazon RDS](#Oracle.Concepts.file-size-limits)
+ [Límites de tamaño de bloque en RDS para Oracle](#Oracle.Concepts.block-size-limits)
+ [Sinónimos públicos de esquemas suministrados por Oracle](#Oracle.Concepts.PublicSynonyms)
+ [Esquemas para características no admitidas de RDS para Oracle](#Oracle.Concepts.unsupported-features)
+ [Limitaciones para los privilegios de DBA en RDS para Oracle](#Oracle.Concepts.dba-limitations)
+ [Obsolescencia de Seguridad de la capa de transporte (TLS) 1.0 y 1.1 en RDS para Oracle](#Oracle.Concepts.tls)

## Límites de tamaño de archivo Oracle en Amazon RDS
<a name="Oracle.Concepts.file-size-limits"></a>

El tamaño máximo de un archivo en las instancias de base de datos de RDS para Oracle es de 16 TiB. Este límite lo impone el sistema de archivos ext4 que utiliza la instancia. Por lo tanto, los archivos de datos Bigfile de Oracle están limitados a 16 TiB. Si intenta cambiar el tamaño de un archivo de datos de un espacio de tabla bigfile a un valor superior al límite, recibirá un error como el siguiente:

```
ORA-01237: cannot extend datafile 6
ORA-01110: data file 6: '/rdsdbdata/db/mydir/datafile/myfile.dbf'
ORA-27059: could not reduce file size
Linux-x86_64 Error: 27: File too large
Additional information: 2
```

## Límites de tamaño de bloque en RDS para Oracle
<a name="Oracle.Concepts.block-size-limits"></a>

Las instancias de base de datos de RDS para Oracle se crean con un tamaño de bloque de base de datos predeterminado (`DB_BLOCK_SIZE`) de 8 KB. El tamaño de bloque de base de datos predeterminado se establece en el momento de la creación de la base de datos y no se puede cambiar. Los espacios de tablas temporales y `SYSTEM` siempre utilizan el tamaño de bloque de base de datos predeterminado. Puede crear espacios de tabla adicionales con tamaños de bloque distintos de los predeterminados mediante la configuración del parámetro `DB_nK_CACHE_SIZE` correspondiente (por ejemplo, `DB_16K_CACHE_SIZE`) para asignar una memoria caché de búfer para ese tamaño de bloque y, a continuación, al especificar la cláusula `BLOCKSIZE` en la instrucción `CREATE TABLESPACE`.

## Sinónimos públicos de esquemas suministrados por Oracle
<a name="Oracle.Concepts.PublicSynonyms"></a>

No cree o modifique los sinónimos públicos para los esquemas suministrados por Oracle, incluidos `SYS`, `SYSTEM` y `RDSADMIN`. Estas acciones pueden provocar la invalidación de los componentes principales de la base de datos y afectar a la disponibilidad de la instancia de base de datos.

Puede crear sinónimos públicos que hagan referencia a objetos en sus propios esquemas.

## Esquemas para características no admitidas de RDS para Oracle
<a name="Oracle.Concepts.unsupported-features"></a>

En general, Amazon RDS no impide crear esquemas para características no admitidas. Sin embargo, si crea esquemas para características y componentes de Oracle que requieren privilegios SYS, puede dañar el diccionario de datos y afectar a la disponibilidad de la instancia. Utilice solo las características y esquemas compatibles que estén disponibles en [Adición de opciones a instancias de base de datos de Oracle](Appendix.Oracle.Options.md).

## Limitaciones para los privilegios de DBA en RDS para Oracle
<a name="Oracle.Concepts.dba-limitations"></a>

En la base de datos, un rol es una colección de privilegios que puede conceder o revocar a un usuario. Una base de datos de Oracle utiliza roles para proporcionar seguridad.

El rol predefinido de `DBA` normalmente permite todos los privilegios administrativos en una base de datos de Oracle. Cuando crea una instancia de base de datos, su cuenta de usuario principal obtiene privilegios de DBA (con algunas limitaciones). Para ofrecer una experiencia administrada, una base de datos de RDS para Oracle no proporciona los siguientes privilegios para el rol de `DBA`: 
+ `ALTER DATABASE`
+ `ALTER SYSTEM`
+ `CREATE ANY DIRECTORY`
+ `DROP ANY DIRECTORY`
+ `GRANT ANY PRIVILEGE`
+ `GRANT ANY ROLE`

Utilice la cuenta de usuario principal para tareas administrativas, como la creación de cuentas de usuario adicionales en la base de datos. No puede utilizar `SYS`, `SYSTEM` y otras cuentas administrativas proporcionadas por Oracle. 

## Obsolescencia de Seguridad de la capa de transporte (TLS) 1.0 y 1.1 en RDS para Oracle
<a name="Oracle.Concepts.tls"></a>

Las versiones 1.0 y 1.1 del protocolo de Transport Layer Security (TLS 1.0 y TLS 1.1) están obsoletas. De acuerdo con las prácticas recomendadas de seguridad, Oracle ha dejado de usar TLS 1.0 y TLS 1.1. Para cumplir con los requisitos de seguridad, recomendamos encarecidamente que se utilice TLS 1.2 en su lugar.

# Conexión a una instancia de base de datos de Oracle
<a name="USER_ConnectToOracleInstance"></a>

Después de que Amazon RDS aprovisione su instancia de base de datos Oracle, puede usar cualquier aplicación cliente de SQL estándar para iniciar sesión en la instancia de base de datos. Como RDS es un servicio administrado, no puede iniciar sesión como SYS o SYSTEM. Para obtener más información, consulte [Usuarios y privilegios de RDS para Oracle](Oracle.Concepts.Privileges.md).

En este tema, aprenderá a usar Oracle SQL Developer o SQL\$1Plus para conectarse a una instancia de base de datos de RDS para Oracle. Para ver un ejemplo que le enseña los procesos para crear y conectarse a una instancia de base de datos de muestra, consulte [Creación y conexión a una instancia de base de datos de Oracle](CHAP_GettingStarted.CreatingConnecting.Oracle.md). 

**Topics**
+ [Búsqueda del punto de conexión de la instancia de base de datos de RDS para Oracle](USER_Endpoint.md)
+ [Conexión a la instancia de base de datos mediante Oracle SQL Developer](USER_ConnectToOracleInstance.SQLDeveloper.md)
+ [Conexión a la instancia de base de datos mediante SQL\$1Plus](USER_ConnectToOracleInstance.SQLPlus.md)
+ [Consideraciones para grupos de seguridad](USER_ConnectToOracleInstance.Security.md)
+ [Consideraciones para la arquitectura de procesos](USER_ConnectToOracleInstance.SharedServer.md)
+ [Solución de problemas de conexiones a la instancia de base de datos de Oracle](USER_ConnectToOracleInstance.Troubleshooting.md)
+ [Modificación de propiedades de conexión utilizando parámetros sqlnet.ora](USER_ModifyInstance.Oracle.sqlnet.md)

# Búsqueda del punto de conexión de la instancia de base de datos de RDS para Oracle
<a name="USER_Endpoint"></a>

Cada instancia de base de datos de Amazon RDS contiene un punto de enlace y cada punto de enlace contiene el nombre DNS y el número de puerto para la instancia de base de datos. Para conectarse a su instancia de base de datos mediante una aplicación cliente SQL, necesita el nombre DNS y el número de puerto para la instancia de base de datos. 

Puede encontrar los puntos de enlace para una instancia de base de datos mediante la consola de Amazon RDS o la AWS CLI.

**nota**  
Si está utilizando autenticación Kerberos, consulte [Conexión a Oracle con autenticación Kerberos](oracle-kerberos-connecting.md).

## Consola
<a name="USER_Endpoint.Console"></a>

**Para buscar el punto de enlace mediante la consola**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon RDS en [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. En la esquina superior derecha de la consola, elija la AWS región de la instancia de base de datos. 

1. Busque el nombre DNS y el número de puerto para su instancia de base de datos. 

   1. Elija **Databases (Bases de datos)** para ver una lista de las instancias de base de datos. 

   1. Seleccione el nombre de la instancia de base de datos Oracle para mostrar los detalles de la instancia. 

   1. En la pestaña **Connectivity & security (Conectividad y seguridad)**, copie el punto de enlace. También anote el número de puerto. Necesita el punto de enlace y el número de puerto para conectarse a la instancia de base de datos.  
![\[Punto de enlace y puerto de la instancia de base de datos\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/OracleConnect1.png)

## AWS CLI
<a name="USER_Endpoint.CLI"></a>

Para crear un punto de enlace para una instancia de base de datos de Oracle mediante la AWS CLI, llame al comando [describe-db-instances](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html). 

**Example Para buscar el punto de enlace mediante la AWS CLI**  

```
1. aws rds describe-db-instances
```
Busque `Endpoint` en la salida para encontrar el nombre DNS y el número de puerto para la instancia de base de datos. La línea `Address` en la salida contiene el nombre DNS. Véase a continuación un ejemplo de la salida del punto de enlace JSON.  

```
"Endpoint": {
    "HostedZoneId": "Z1PVIF0B656C1W",
    "Port": 3306,
    "Address": "myinstance.123456789012.us-west-2.rds.amazonaws.com"
},
```

**nota**  
La salida puede contener información acerca de varias instancias de base de datos.

# Conexión a la instancia de base de datos mediante Oracle SQL Developer
<a name="USER_ConnectToOracleInstance.SQLDeveloper"></a>

En este procedimiento, puede conectarse a la instancia de base de datos mediante Oracle SQL Developer. Para descargar una versión independiente de esta utilidad, consulte la página [Oracle SQL Developer Downloads](https://www.oracle.com/tools/downloads/sqldev-downloads.html).

Para conectarse a una instancia de base de datos, necesita su nombre DNS y el número de puerto. Para obtener información sobre cómo buscar el nombre DNS y el número de puerto para una instancia de base de datos, consulte [Búsqueda del punto de conexión de la instancia de base de datos de RDS para Oracle](USER_Endpoint.md).

**Para conectarse a una instancia de base de datos mediante SQL Developer**

1. Inicie Oracle SQL Developer.

1. En la pestaña **Connections**, seleccione el icono **add (\$1)**.  
![\[Oracle SQL Developer con el icono de agregar resaltado\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/oracle-sqldev-plus.png)

1. En el cuadro de diálogo **New/Select Database Connection**, proporcione la información de la instancia de base de datos:
   + En **Connection Name (Nombre de la conexión)**, escriba un nombre que describa la conexión, como `Oracle-RDS`.
   + En **Username (Nombre de usuario)**, escriba el nombre del administrador de base de datos para la instancia de base de datos.
   + En **Password (Contraseña)**, escriba la contraseña del administrador de base de datos.
   + En **Hostname (Nombre del host)**, escriba el nombre DNS de la instancia de base de datos.
   + En **Port (Puerto)**, escriba el número de puerto.
   + Para **SID**, introduzca el nombre de la base de datos. Puede encontrar el nombre de la base de datos en la pestaña **Configuration** (Configuración) de la página de detalles de la base de datos.

   El cuadro de diálogo completo debería tener un aspecto similar al siguiente.  
![\[Creación de una nueva conexión en Oracle SQL Developer\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/oracle-sqldev-newcon.png)

1. Elija **Connect**.

1. Ahora, puede comenzar a crear sus propias bases de datos y realizar consultas en la instancia de base de datos y bases de datos como siempre. Para ejecutar una consulta de prueba en la instancia de base de datos, haga lo siguiente:

   1. En la pestaña **Worksheet (Hoja de trabajo)** de su conexión, escriba la siguiente consulta SQL.

      ```
      SELECT NAME FROM V$DATABASE;
      ```

   1. Seleccione el icono **execute (ejecutar)** para ejecutar la consulta.  
![\[Ejecución de una consulta en Oracle SQL Developer mediante el icono de ejecutar\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/oracle-sqldev-run.png)

      SQL Developer devuelve el nombre de base de datos.  
![\[Resultados de la consulta en Oracle SQL Developer\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/oracle-sqldev-results.png)

# Conexión a la instancia de base de datos mediante SQL\$1Plus
<a name="USER_ConnectToOracleInstance.SQLPlus"></a>

Puede usar una utilidad como SQL\$1Plus para conectarse a una instancia de base de datos de Amazon RDS que ejecuta Oracle. Para descargar Oracle Instant Client, que incluye una versión independiente de SQL\$1Plus, consulte [Oracle Instant Client Downloads](https://www.oracle.com/database/technologies/instant-client/downloads.html). 

Para conectarse a una instancia de base de datos, necesita su nombre DNS y el número de puerto. Para obtener información sobre cómo buscar el nombre DNS y el número de puerto para una instancia de base de datos, consulte [Búsqueda del punto de conexión de la instancia de base de datos de RDS para Oracle](USER_Endpoint.md).

**Example Para conectarse a una instancia de base de datos de Oracle mediante SQL\$1Plus**  
En los siguientes ejemplos, sustituya el nombre de usuario de su administrador de instancia de base de datos. Además, sustituya el nombre de DNS de su instancia de base de datos y, a continuación, incluya el número de puerto y el SID de Oracle. El valor del SID es el nombre de la base de datos de la instancia de base de datos que especificó cuándo creó la instancia de base de datos y no el nombre de la instancia de base de datos.   
Para Linux, macOS o:Unix  

```
1. sqlplus 'user_name@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dns_name)(PORT=port))(CONNECT_DATA=(SID=database_name)))'
```
En:Windows  

```
1. sqlplus user_name@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dns_name)(PORT=port))(CONNECT_DATA=(SID=database_name)))
```
Debería ver un resultado similar a este.  

```
SQL*Plus: Release 12.1.0.2.0 Production on Mon Aug 21 09:42:20 2017
```
Tras introducir la contraseña para el usuario, aparece la pregunta de SQL.  

```
SQL>
```

**nota**  
La cadena de conexión de formato más corto (EZ Connect), como `sqlplus USER/PASSWORD@longer-than-63-chars-rds-endpoint-here:1521/database-identifier`, podría tener un límite de máximo caracteres, así que le recomendamos que no la use para conectarse.

# Consideraciones para grupos de seguridad
<a name="USER_ConnectToOracleInstance.Security"></a>

Para poder conectarse a la instancia de base de datos, esta debe estar asociada a un grupo de seguridad que contenga las direcciones IP y la configuración de red necesarias. La instancia de base de datos puede utilizar el grupo de seguridad predeterminado. Si se asignó un grupo de seguridad no configurado predeterminado cuando se creó la instancia de base de datos, el firewall evitará las conexiones. Para obtener información acerca de la creación de grupos de seguridad nuevos, consulte [Control de acceso con grupos de seguridad](Overview.RDSSecurityGroups.md). 

Después de crear el nuevo grupo de seguridad, modifique la instancia de base de datos para asociarla al grupo. Para obtener más información, consulte [Modificación de una instancia de base de datos de Amazon RDS](Overview.DBInstance.Modifying.md). 

Puede mejorar la seguridad utilizando SSL para cifrar conexiones a su instancia de base de datos. Para obtener más información, consulte [Capa de conexión segura de Oracle](Appendix.Oracle.Options.SSL.md). 

# Consideraciones para la arquitectura de procesos
<a name="USER_ConnectToOracleInstance.SharedServer"></a>

Los procesos del servidor se encargan de las conexiones del usuario a una instancia de base de datos de Oracle. De manera predeterminada, los procesos del servidor se encargan de las conexiones del usuario a una instancia de base de datos de Oracle. Con los procesos del servidor dedicados, cada proceso del servidor presta servicio a un solo proceso del usuario. Si lo prefiere, puede configurar procesos del servidor compartidos. Con los procesos del servidor compartidos, cada proceso del servidor presta servicio a varios procesos del usuario.

Puede considerar la posibilidad de usar los procesos del servidor compartidos cuando un número elevado de sesiones del usuario esté usando demasiada memoria en el servidor. También puede considerar dicha posibilidad, cuando las sesiones se conectan y desconectan con frecuencia dando como resultado problemas de desempeño. Asimismo, el uso de los procesos del servidor compartidos implica ciertos inconvenientes. Por ejemplo, puede agotar los recursos de CPU y resulta más complicado a la hora de configurarse y administrarse.

Para obtener más información acerca de los procesos del servidor dedicados y compartidos, consulte [About Dedicated and Shared Server Processes](https://docs.oracle.com/database/121/ADMIN/manproc.htm#ADMIN11166) en la documentación de Oracle. Para obtener más información acerca de la configuración de los procesos de servidor compartidos en una instancia de base de datos de RDS for Oracle, consulte [¿Cómo configuro Amazon RDS for Oracle Database para trabajar con servidores compartidos?](https://aws.amazon.com/premiumsupport/knowledge-center/oracle-db-shared/) en el Knowledge Center.

# Solución de problemas de conexiones a la instancia de base de datos de Oracle
<a name="USER_ConnectToOracleInstance.Troubleshooting"></a>

A continuación, aparecen problemas que pueden aparecer al tratar de conectarse a la instancia de base de datos de Oracle. 


****  

| Problema | Sugerencias para la solución de problemas | 
| --- | --- | 
|  No es posible conectarse a su instancia de base de datos.   |  En el caso de una instancia de base de datos recién creada, esta tendrá el estado **creating** hasta que esté lista para el uso. Cuando el estado cambie a **available**, podrá conectarse a la instancia de base de datos. Dependiendo de la clase de instancia de base de datos y de la cantidad de almacenamiento, es posible que la nueva instancia de base de datos tarde hasta 20 minutos en estar disponible.   | 
|  No es posible conectarse a su instancia de base de datos.   |  Si no puede enviar o recibir comunicaciones a través del puerto que especificó al crear la instancia de base de datos, no puede conectarse a ella. Consulte al administrador de red para comprobar que el puerto que especificó para su instancia de base de datos permite comunicación de entrada y salida.   | 
|  No es posible conectarse a su instancia de base de datos.   |  Las reglas de acceso impuestas por el firewall local y las direcciones IP a las que autorizó el acceso a la instancia de base de datos en el grupo de seguridad para la instancia de base de datos podrían no coincidir. El problema muy probablemente se encuentra en las reglas entrantes o salientes de su firewall. Puede añadir o editar una regla de entrada en el grupo de seguridad. Para **Source (Origen)**, elija **My IP (Mi IP)**. Esto permite el acceso a la instancia de base de datos desde la dirección IP detectada en su navegador. Para obtener más información, consulte [VPC de Amazon y Amazon RDS](USER_VPC.md). Para obtener más información acerca de los grupos de seguridad, consulte [Control de acceso con grupos de seguridad](Overview.RDSSecurityGroups.md).  Si desea conocer el proceso de configuración de reglas para su grupo de seguridad, consulte [Tutorial: Creación de una VPC para utilizarla con una instancia de base de datos (solo IPv4)](CHAP_Tutorials.WebServerDB.CreateVPC.md).   | 
|  **Error de Connect porque el anfitrión o el objeto de destino no existe: Oracle, Error: ORA-12545 **   |  Asegúrese de especificar correctamente el nombre del servidor y el número de puerto. En **Server name (Nombre del servidor)**, escriba el nombre DNS desde la consola.  Para obtener información sobre cómo buscar el nombre DNS y el número de puerto para una instancia de base de datos, consulte [Búsqueda del punto de conexión de la instancia de base de datos de RDS para Oracle](USER_Endpoint.md).  | 
|  **Nombre de usuario/contraseña no válidos; conexión denegada: Oracle, Error: ORA-01017**   |  Ha podido alcanzar la instancia de base de datos, pero se rechazó la conexión. Esto suele deberse a que se ha proporcionado un nombre de usuario o contraseña incorrectos. Compruebe el nombre de usuario y la contraseña y, a continuación, vuelva a intentarlo.   | 
|  **TNS:listener does not currently know of SID given in connect descriptor - Oracle, ERROR: ORA-12505 (TNS:listener no conoce actualmente el SID indicado en el descriptor de conexión - Oracle, ERROR: ORA-12505**   |  Asegúrese de que se ha ingresado el SID correcto. El SID es el mismo que el nombre de su base de datos. Busque el nombre de la base de datos en la pestaña **Configuration** (Configuración) de la página **Databases** (Bases de datos) de la instancia. También puede encontrar el nombre de la base de datos utilizando la AWS CLI:  <pre>aws rds describe-db-instances --query 'DBInstances[*].[DBInstanceIdentifier,DBName]' --output text</pre>  | 

Para obtener más información sobre problemas de conexión, consulte [No puede conectarse a la instancia de base de datos de Amazon RDS](CHAP_Troubleshooting.md#CHAP_Troubleshooting.Connecting).

# Modificación de propiedades de conexión utilizando parámetros sqlnet.ora
<a name="USER_ModifyInstance.Oracle.sqlnet"></a>

El archivo sqlnet.ora incluye parámetros que configuran características de Oracle Net en servidores de base de datos y clientes de Oracle. Utilizando los parámetros en el archivo sqlnet.ora, puede modificar propiedades de conexiones dentro y fuera de la base de datos. 

Para obtener más información acerca de porqué debería configurar los parámetros sqlnet.ora, consulte [Configuring Profile Parameters](https://docs.oracle.com/database/121/NETAG/profile.htm#NETAG009) en la documentación de Oracle.

## Configuración de parámetros sqlnet.ora
<a name="USER_ModifyInstance.Oracle.sqlnet.Setting"></a>

Los grupos de parámetros de Amazon RDS for Oracle incluyen un subconjunto de parámetros sqlnet.ora. Los configura de la misma manera que configura otros parámetros de Oracle. El prefijo `sqlnetora.` identifica qué parámetros son parámetros sqlnet.ora. Por ejemplo, en un grupo de parámetros de Oracle en Amazon RDS, el parámetro `default_sdu_size` de sqlnet.ora es `sqlnetora.default_sdu_size`.

Para obtener información acerca de cómo administrar grupos de parámetros y configurar valores de parámetros, consulte [Grupos de parámetros para Amazon RDS](USER_WorkingWithParamGroups.md).

## Parámetros sqlnet.ora admitidos
<a name="USER_ModifyInstance.Oracle.sqlnet.Supported"></a>

Amazon RDS admite los siguientes parámetros sqlnet.ora. Los cambios en parámetros sqlnet.ora dinámicos surten efecto de inmediato.


****  

| Parámetro | Valores válidos | Estático/dinámico | Descripción | 
| --- | --- | --- | --- | 
|  `sqlnetora.default_sdu_size`  |  `512` De a `2097152`   |  Dinámico  |  El tamaño de la unidad de datos de sesión (SDU), en bytes.  La SDU es la cantidad de datos que se coloca en un búfer y se envía a la red a la vez.  | 
|  `sqlnetora.diag_adr_enabled`  |  `ON`, `OFF`   |  Dinámico  |  Un valor que habilita o inhabilita el rastreo de Repositorio de diagnóstico automático (ADR).  `ON` especifica qué rastreo de archivo ADR se utiliza. `OFF` especifica que se utiliza el rastreo de archivo no ADR.  | 
|  `sqlnetora.recv_buf_size`  |  `8192` De a `268435456`   |  Dinámico  |  El límite de espacio de búfer para operaciones de recepción de sesiones, admitido por los protocolos TCP/IP, TCP/IP con SSL y SDP.   | 
|  `sqlnetora.send_buf_size`  |  `8192` De a `268435456`   |  Dinámico  |  El límite de espacio de búfer para operaciones de envío de sesiones, admitido por los protocolos TCP/IP, TCP/IP con SSL y SDP.   | 
|  `sqlnetora.sqlnet.allowed_logon_version_client`  |  `8`, `10`, `11`, `12`   |  Dinámico  |  Se permite la versión del protocolo de autenticación mínima para los clientes y los servidores que actúan como clientes, para establecer una conexión con instancias de base de datos de Oracle.  | 
|  `sqlnetora.sqlnet.allowed_logon_version_server`  |  `8`, `9`, `10`, `11`, `12`, `12a`   |  Dinámico  |  Se permite la versión del protocolo de autenticación mínima para establecer una conexión con instancias de base de datos de Oracle.  | 
|  `sqlnetora.sqlnet.expire_time`  |  `0` De a `1440`   |  Dinámico  |  Intervalo de tiempo, en minutos, para enviar una comprobación de estado para verificar que las conexiones cliente-servidor están activas.   | 
|  `sqlnetora.sqlnet.inbound_connect_timeout`  |  `0` o `10` a `7200`   |  Dinámico  |  Tiempo, en segundos, para que un cliente conecte con el servidor de base de datos y proporcione la información de autenticación necesaria.   | 
|  `sqlnetora.sqlnet.outbound_connect_timeout`  |  `0` o `10` a `7200`   |  Dinámico  |  Tiempo, en segundos, para que un cliente establezca una conexión de Oracle Net con la instancia de base de datos.   | 
|  `sqlnetora.sqlnet.recv_timeout`  |  `0` o `10` a `7200`   |  Dinámico  |  Tiempo, en segundos, que un servidor de base de datos espera los datos del cliente después de establecer una conexión.   | 
|  `sqlnetora.sqlnet.send_timeout`  |  `0` o `10` a `7200`   |  Dinámico  |  Tiempo, en segundos, para que un servidor de base de datos complete una operación de envío a los clientes después de establecer una conexión.   | 
|  `sqlnetora.tcp.connect_timeout`  |  `0` o `10` a `7200`   |  Dinámico  |  Tiempo, en segundos, para que un cliente establezca una conexión TCP al servidor de base de datos.   | 
|  `sqlnetora.trace_level_server`  |  `0`, `4`, `10`, `16`, `OFF`, `USER`, `ADMIN`, `SUPPORT`  |  Dinámico  | Para un rastreo no ADR, activa el rastreo del servidor a un nivel especificado o lo desactiva. | 

El valor predeterminado para cada parámetro sqlnet.ora admitido es el valor predeterminado de Oracle Dabatase para la versión.

## Ver parámetros sqlnet.ora
<a name="USER_ModifyInstance.Oracle.sqlnet.Viewing"></a>

Puede ver parámetros sqlnet.ora y su configuración utilizando la Consola de administración de AWS, la AWS CLI o un cliente SQL.

### Ver parámetros sqlnet.ora utilizando la consola
<a name="USER_ModifyInstance.Oracle.sqlnet.Viewing.Console"></a>

Para obtener información acerca de cómo ver parámetros en un grupo de parámetros, consulte [Grupos de parámetros para Amazon RDS](USER_WorkingWithParamGroups.md).

En grupos de parámetros de Oracle, el prefijo `sqlnetora.` identifica qué parámetros son parámetros sqlnet.ora.

### Ver parámetros sqlnet.ora utilizando la AWS CLI
<a name="USER_ModifyInstance.Oracle.sqlnet.Viewing.CLI"></a>

Para ver los parámetros sqlnet.ora que se configuraron en un grupo de parámetros de Oracle, utilice el comando [describe-db-parameters](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-parameters.html) de la AWS CLI.

Para ver todos los parámetros sqlnet.ora para una instancia de base de datos de Oracle, llame al comando [download-db-log-file-portion](https://docs.aws.amazon.com/cli/latest/reference/rds/download-db-log-file-portion.html) de la AWS CLI. Especifique el identificador de instancias de bases de datos, el nombre de archivo de registro y el tipo de salida. 

**Example**  
El código siguiente muestra todos los parámetros sqlnet.ora para `mydbinstance`.   
Para Linux, macOS o Unix:  

```
aws rds download-db-log-file-portion \
    --db-instance-identifier mydbinstance \
    --log-file-name trace/sqlnet-parameters \
    --output text
```
Para Windows:  

```
aws rds download-db-log-file-portion ^
    --db-instance-identifier mydbinstance ^
    --log-file-name trace/sqlnet-parameters ^
    --output text
```

### Ver parámetros sqlnet.ora utilizando un cliente SQL
<a name="USER_ModifyInstance.Oracle.sqlnet.Viewing.SQL"></a>

Después de conectar a la instancia de base de datos de Oracle en un cliente SQL, la siguiente consulta muestra los parámetros sqlnet.ora.

```
1. SELECT * FROM TABLE
2.    (rdsadmin.rds_file_util.read_text_file(
3.         p_directory => 'BDUMP',
4.         p_filename  => 'sqlnet-parameters'));
```

Para obtener información acerca de la conexión a su instancia de base de datos de Oracle en un cliente SQL, consulte [Conexión a una instancia de base de datos de Oracle](USER_ConnectToOracleInstance.md).

# Protección de conexiones de instancias de base de datos de Oracle
<a name="Oracle.Concepts.RestrictedDBAPrivileges"></a>

Amazon RDS for Oracle admite conexiones cifradas SSL/TLS, así como la opción Oracle Native Network Encryption (NNE) para cifrar las conexiones entre la aplicación y la instancia de base de datos Oracle. Para obtener más información acerca de la opción Oracle Native Network Encryption, consulte [Oracle Native Network Encryption](Appendix.Oracle.Options.NetworkEncryption.md). 

**Topics**
+ [Uso de SSL con una instancia de base de datos de RDS para Oracle](Oracle.Concepts.SSL.md)
+ [Actualización de aplicaciones para la conexión a las instancias de base de datos de Oracle con los nuevos certificados SSL/TLS](ssl-certificate-rotation-oracle.md)
+ [Uso del cifrado de red nativo con una instancia de base de datos de RDS para Oracle](Oracle.Concepts.NNE.md)
+ [Configuración de la autenticación Kerberos con Amazon RDS for Oracle](oracle-kerberos.md)
+ [Configuración del acceso UTL\$1HTTP mediante certificados y un wallet de Oracle.](Oracle.Concepts.ONA.md)

# Uso de SSL con una instancia de base de datos de RDS para Oracle
<a name="Oracle.Concepts.SSL"></a>

La capa de conexión segura (SSL) es un protocolo estándar del sector que se utiliza para proteger las conexiones de red entre el cliente y el servidor. Después de la versión 3.0 de SSL, el nombre se cambió a Transport Layer Security (TLS), pero a menudo nos referimos al protocolo como SSL. Amazon RDS admite el cifrado SSL para las instancias de Oracle Database. SSL permite cifrar una conexión entre el cliente de la aplicación y la instancia de base de datos Oracle. La compatibilidad con SSL está disponible en todas las regiones de AWS para Oracle.

A fin de habilitar el cifrado SSL para una instancia de base de datos de Oracle, agregue la opción Oracle SSL al grupo de opciones asociado a la instancia de base de datos. Amazon RDS utiliza un segundo puerto, según lo requiera Oracle, para las conexiones SSL. Esto permite que se produzca la comunicación cifrada de SSL y de texto sin cifrar al mismo tiempo entre una instancia de base de datos y un cliente de Oracle. Por ejemplo, es posible utilizar el puerto con la comunicación de texto sin cifrar para ponerse en contacto con otros recursos dentro de una VPC mientras se utiliza el puerto con comunicación cifrada SSL para ponerse en contacto con recursos situados fuera de la VPC. 

Para obtener más información, consulte [Capa de conexión segura de Oracle](Appendix.Oracle.Options.SSL.md). 

**nota**  
No es posible utilizar SSL y Oracle Native Network Encryption (NNE) en la misma instancia de base de datos. Para poder utilizar el cifrado SSL, se debe desactivar cualquier otro cifrado de conexión. 

# Actualización de aplicaciones para la conexión a las instancias de base de datos de Oracle con los nuevos certificados SSL/TLS
<a name="ssl-certificate-rotation-oracle"></a>

El 13 de enero de 2023, Amazon RDS publicó nuevos certificados de entidades de certificación (CA) para la conexión a sus instancias de base de datos de RDS mediante la capa de sockets seguros o seguridad de la capa de transporte (SSL/TLS). Después, puede encontrar la información sobre la actualización de sus aplicaciones para utilizar los nuevos certificados.

Este tema puede ayudarle a determinar si las aplicaciones de cualquier cliente utilizan SSL/TLS para conectarse a sus instancias de base de datos. 

**importante**  
Cuando se cambia el certificado de una instancia de base de datos de Amazon RDS for Oracle, solo se reinicia el agente de escucha de la base de datos. La instancia de base de datos no se reinicia. Las conexiones de base de datos existentes no se ven afectadas, pero las conexiones nuevas tendrán errores durante el breve período en que se reinicia el agente de escucha.  
Le recomendamos que reinicie la base de datos de Oracle para evitar errores de conexión.

**nota**  
Para las aplicaciones de clientes que utilizan SSL/TLS para conectarse a sus instancias de base de datos, debe actualizar los almacenes de confianza de la aplicación de su cliente para incluir los nuevos certificados de CA. 

Después actualizar sus certificados de CA en los almacenes de confianza de la aplicación de su cliente, puede rotar los certificados en sus instancias de base de datos. Recomendamos encarecidamente probar estos procedimientos en un entorno de desarrollo o ensayo antes de implementarlos en sus entornos de producción.

Para obtener más información acerca de la rotación de certificados, consulte [Rotar certificados SSL/TLS](UsingWithRDS.SSL-certificate-rotation.md). Para obtener más información acerca de cómo descargar certificados, consulte [Uso de SSL/TLS para cifrar una conexión a una instancia o un clúster de base de datos](UsingWithRDS.SSL.md). Para obtener información sobre el uso de SSL/TLS con las instancias de base de datos de Oracle, consulte [Capa de conexión segura de Oracle](Appendix.Oracle.Options.SSL.md).

**Topics**
+ [Averiguar si las aplicaciones se conectan mediante SSL](#ssl-certificate-rotation-oracle.determining)
+ [Actualización del almacén de confianza de su aplicación](#ssl-certificate-rotation-oracle.updating-trust-store)
+ [Ejemplo de código Java para el establecimiento de conexiones SSL](#ssl-certificate-rotation-oracle.java-example)

## Averiguar si las aplicaciones se conectan mediante SSL
<a name="ssl-certificate-rotation-oracle.determining"></a>

Si su instancia de base de datos de Oracle utiliza una grupo de opciones con la opción `SSL` añadida, puede que utilice SSL. Compruébelo siguiendo las instrucciones en [Descripción de opciones y configuración de opciones para un grupo de opciones](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.ListOption). Para obtener información acerca de la opción `SSL`, consulte [Capa de conexión segura de Oracle](Appendix.Oracle.Options.SSL.md).

Compruebe el registro del agente de escucha para determinar si existen conexiones SSL. A continuación, se muestra un ejemplo del resultado en un registro del agente de escucha.

```
date time * (CONNECT_DATA=(CID=(PROGRAM=program)
(HOST=host)(USER=user))(SID=sid)) * 
(ADDRESS=(PROTOCOL=tcps)(HOST=host)(PORT=port)) * establish * ORCL * 0
```

Cuando `PROTOCOL` tiene el valor `tcps` para cualquier entrada, muestra una conexión SSL. Sin embargo, cuando `HOST` es `127.0.0.1`, puede ignorar la entrada. Las conexiones de `127.0.0.1` son un agente de administración local en la instancia de base de datos. Estas conexiones no son conexiones SSL externas. Por lo tanto, tiene aplicaciones conectándose utilizando SSL si ve entradas del registro del agente de escucha en las que `PROTOCOL` es `tcps` y `HOST` *no*`127.0.0.1`.

Para comprobar el registro del agente de escucha, puede publicar el registro en Amazon CloudWatch Logs. Para obtener más información, consulte [Publicación de registros de Oracle en Amazon CloudWatch Logs](USER_LogAccess.Concepts.Oracle.md#USER_LogAccess.Oracle.PublishtoCloudWatchLogs).

## Actualización del almacén de confianza de su aplicación
<a name="ssl-certificate-rotation-oracle.updating-trust-store"></a>

Puede actualizar el almacén de confianza para las aplicaciones que utilizan SQL\$1Plus o JDBC para las conexiones SSL/TLS.

### Actualización del almacén de confianza de su aplicación para SQL\$1Plus
<a name="ssl-certificate-rotation-oracle.updating-trust-store.sqlplus"></a>

Puede actualizar el almacén de confianza para las aplicaciones que utilizan SQL\$1Plus para las conexiones SSL/TLS.

**nota**  
Cuando actualice el almacén de confianza, puede retener certificados antiguos además de añadir los nuevos certificados.

**Para actualizar el almacén de confianza para las aplicaciones de SQL\$1Plus**

1. Descargue el certificado raíz que funciona con todas las regiones de AWS y coloque el archivo en el directorio `ssl_wallet`.

   Para obtener información sobre la descarga del certificado raíz, consulte [Uso de SSL/TLS para cifrar una conexión a una instancia o un clúster de base de datos](UsingWithRDS.SSL.md).

1. Ejecute el siguiente comando para actualizar el wallet de Oracle.

   ```
   prompt>orapki wallet add -wallet $ORACLE_HOME/ssl_wallet -trusted_cert -cert
         $ORACLE_HOME/ssl_wallet/ssl-cert.pem -auto_login_only
   ```

   Reemplace el nombre de archivo por el que ha descargado.

1. Ejecute el comando siguiente para confirmar que el wallet se ha actualizado correctamente.

   ```
   prompt>orapki wallet display -wallet $ORACLE_HOME/ssl_wallet                     
   ```

   Su resultado debe contener lo siguiente.

   ```
   Trusted Certificates: 
   Subject: CN=Amazon RDS Root 2019 CA,OU=Amazon RDS,O=Amazon Web Services\, Inc.,L=Seattle,ST=Washington,C=US
   ```

### Actualización del almacén de confianza de su aplicación para JDBC
<a name="ssl-certificate-rotation-oracle.updating-trust-store.jdbc"></a>

Puede actualizar el almacén de confianza para las aplicaciones que utilizan JDBC para las conexiones SSL/TLS.

Para obtener información sobre la descarga del certificado raíz, consulte [Uso de SSL/TLS para cifrar una conexión a una instancia o un clúster de base de datos](UsingWithRDS.SSL.md).

Para obtener secuencias de comandos de ejemplo que importan certificados, consulte [Script de muestra para la importación de certificados en su almacén de confianza](UsingWithRDS.SSL-certificate-rotation.md#UsingWithRDS.SSL-certificate-rotation-sample-script).

## Ejemplo de código Java para el establecimiento de conexiones SSL
<a name="ssl-certificate-rotation-oracle.java-example"></a>

El siguiente ejemplo de código muestra cómo configurar la conexión SSL mediante JDBC.

```
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
 
public class OracleSslConnectionTest {
    private static final String DB_SERVER_NAME = "<dns-name-provided-by-amazon-rds>";
    private static final Integer SSL_PORT = "<ssl-option-port-configured-in-option-group>";
    private static final String DB_SID = "<oracle-sid>";
    private static final String DB_USER = "<user name>";
    private static final String DB_PASSWORD = "<password>";
    // This key store has only the prod root ca.
    private static final String KEY_STORE_FILE_PATH = "<file-path-to-keystore>";
    private static final String KEY_STORE_PASS = "<keystore-password>";
 
    public static void main(String[] args) throws SQLException {
        final Properties properties = new Properties();
        final String connectionString = String.format(
                "jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCPS)(HOST=%s)(PORT=%d))(CONNECT_DATA=(SID=%s)))",
                DB_SERVER_NAME, SSL_PORT, DB_SID);
        properties.put("user", DB_USER);
        properties.put("password", DB_PASSWORD);
        properties.put("oracle.jdbc.J2EE13Compliant", "true");
        properties.put("javax.net.ssl.trustStore", KEY_STORE_FILE_PATH);
        properties.put("javax.net.ssl.trustStoreType", "JKS");
        properties.put("javax.net.ssl.trustStorePassword", KEY_STORE_PASS);
        final Connection connection = DriverManager.getConnection(connectionString, properties);
        // If no exception, that means handshake has passed, and an SSL connection can be opened
    }
}
```

**importante**  
Después de que haya determinado que sus conexiones de base de datos utilizan SSL/TLS y haya actualizado el almacén de confianza de su aplicación, puede actualizar su base de datos para que utilice los certificados de rds-ca-rsa2048-g1. Para obtener instrucciones, consulte el paso 3 en [Actualización del certificado de entidad de certificación modificando la instancia o el clúster de base de datos](UsingWithRDS.SSL-certificate-rotation.md#UsingWithRDS.SSL-certificate-rotation-updating).

# Uso del cifrado de red nativo con una instancia de base de datos de RDS para Oracle
<a name="Oracle.Concepts.NNE"></a>

Oracle Database ofrece dos formas de cifrar datos a través de la red: cifrado de red nativo (NNE, por sus siglas en inglés) y seguridad de la capa de transporte (TLS, por sus siglas en inglés). NNE es una característica de seguridad patentada de Oracle, mientras que TLS es un estándar del sector. RDS para Oracle es compatible con NNE en todas las ediciones de Oracle Database.

NNE tiene las siguientes ventajas con respecto a TLS:
+ Puede controlar el NNE en el cliente y el servidor mediante la configuración de la opción NNE:
  + `SQLNET.ALLOW_WEAK_CRYPTO_CLIENTS` y `SQLNET.ALLOW_WEAK_CRYPTO`
  + `SQLNET.CRYPTO_CHECKSUM_CLIENT` y `SQLNET.CRYPTO_CHECKSUM_SERVER`
  + `SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT` y `SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER`
  + `SQLNET.ENCRYPTION_CLIENT` y `SQLNET.ENCRYPTION_SERVER`
  + `SQLNET.ENCRYPTION_TYPES_CLIENT` y `SQLNET.ENCRYPTION_TYPES_SERVER`
+ En la mayoría de los casos, no es necesario configurar el cliente o servidor. Por el contrario, TLS requiere que se configure tanto el cliente como el servidor.
+ No se requieren certificados. En TLS, el servidor requiere un certificado (que eventualmente caduca) y el cliente requiere un certificado raíz de confianza para la autoridad certificadora que emitió el certificado del servidor.

A fin de habilitar el cifrado NNE para una instancia de base de datos de Oracle, agregue la opción Oracle NNE al grupo de opciones asociado a la instancia de base de datos. Para obtener más información, consulte [Oracle Native Network Encryption](Appendix.Oracle.Options.NetworkEncryption.md). 

**nota**  
No se pueden utilizar NNE y TLS en la misma instancia de base de datos.

# Configuración de la autenticación Kerberos con Amazon RDS for Oracle
<a name="oracle-kerberos"></a>

Puede usar la autenticación Kerberos para autenticar a los usuarios cuando se conecten a su instancia de base de datos de Amazon RDS para Oracle. En esta configuración, su instancia de base de datos funciona con AWS Directory Service for Microsoft Active Directory, también llamado AWS Managed Microsoft AD. Cuando los usuarios se autentican con una instancia de base de datos de RDS para Oracle unida al dominio de confianza, las solicitudes de autenticación se reenvían al directorio que se ha creado con Directory Service.

Mantener todas las credenciales en el mismo directorio puede ahorrarle tiempo y esfuerzo. Tiene un lugar centralizado para almacenar y administrar credenciales para varias instancias de bases de datos. Un directorio también puede mejorar su perfil de seguridad general.

# Disponibilidad en regiones y versiones
<a name="oracle-kerberos-setting-up.RegionVersionAvailability"></a>

La disponibilidad de las características varía según las versiones específicas de cada motor de base de datos y entre Regiones de AWS. Para obtener más información sobre la disponibilidad en versiones y regiones de RDS para Oracle con autenticación Kerberos, consulte [Regiones y motores de base de datos admitidos para autenticación de Kerberos en Amazon RDS](Concepts.RDS_Fea_Regions_DB-eng.Feature.KerberosAuthentication.md).

**nota**  
La autenticación Kerberos no es compatible con las clases de instancia de base de datos que están en desuso para las instancias de base de datos de RDS para Oracle. Para obtener más información, consulte [Clases de instancias de base de datos de RDS para Oracle](Oracle.Concepts.InstanceClasses.md).

**Topics**
+ [Disponibilidad en regiones y versiones](oracle-kerberos-setting-up.RegionVersionAvailability.md)
+ [Configuración de autenticación Kerberos para instancias de base de datos de Oracle](oracle-kerberos-setting-up.md)
+ [Administración de una instancia de base de datos en un dominio](oracle-kerberos-managing.md)
+ [Conexión a Oracle con autenticación Kerberos](oracle-kerberos-connecting.md)

# Configuración de autenticación Kerberos para instancias de base de datos de Oracle
<a name="oracle-kerberos-setting-up"></a>

Use AWS Directory Service for Microsoft Active Directory, también llamado AWS Managed Microsoft AD, para configurar la autenticación Kerberos para una instancia de base de datos de Oracle. Para configurar la autenticación Kerberos, complete los siguientes pasos:
+ [Paso 1: crear un directorio con AWS Managed Microsoft AD](#oracle-kerberos.setting-up.create-directory)
+ [Paso 2: crear una relación de confianza](#oracle-kerberos.setting-up.create-forest-trust)
+ [Paso 3: Configure los permisos de IAM para Amazon RDS](#oracle-kerberos.setting-up.CreateIAMRole)
+ [Paso 4: crear y configurar usuarios](#oracle-kerberos.setting-up.create-users)
+ [Paso 5: habilitar el tráfico entre VPC entre el directorio y la instancia de base de datos](#oracle-kerberos.setting-up.vpc-peering)
+ [Paso 6: crear o modificar una instancia de base de datos de Oracle](#oracle-kerberos.setting-up.create-modify)
+ [Paso 7: crear inicios de sesión de Oracle de autenticación Kerberos](#oracle-kerberos.setting-up.create-logins)
+ [Paso 8: configurar un cliente de Oracle](#oracle-kerberos.setting-up.configure-oracle-client)

**nota**  
Durante la configuración, RDS crea un usuario de base de datos de Oracle llamado *managed\$1service\$1user*@*example.com* con el privilegio `CREATE SESSION`, donde *example.com* es el nombre de dominio. Este usuario corresponde al usuario que crea Directory Service dentro de Active Directory administrado. Periódicamente, RDS utiliza las credenciales proporcionadas por Directory Service para iniciar sesión en la base de datos de Oracle. Después, RDS destruye inmediatamente la caché de tickets.

## Paso 1: crear un directorio con AWS Managed Microsoft AD
<a name="oracle-kerberos.setting-up.create-directory"></a>

Directory Service crea un directorio de Active Directory completamente administrado en la nube de AWS. Cuando crea un directorio de AWS Managed Microsoft AD, Directory Service crea dos controladores de dominio y servidores del sistema de nombres de dominio (DNS) en su nombre. Los servidores de directorios se crean en diferentes subredes de una VPC. Esta redundancia ayuda a garantizar que su directorio permanezca accesible incluso si ocurre un error. 

Cuando crea un directorio de AWS Managed Microsoft AD, Directory Service realiza en su nombre las siguientes tareas: 
+ Configurar un Active Directory dentro de la VPC. 
+ Crea una cuenta de administrador para el directorio con el nombre de usuario Admin y la contraseña especificada. Esta cuenta le permite administrar el directorio. 
**nota**  
Asegúrese de guardar esta contraseña. Directory Service no la almacena. Es posible restablecerla, pero no recuperarla. 
+ Crea un grupo de seguridad para los controladores del directorio. 

Al lanzar AWS Managed Microsoft AD, AWS crea una unidad organizativa (OU) que contiene todos los objetos del directorio. Esta unidad organizativa tiene el nombre de NetBIOS que escribió al crear el directorio y se encuentra en la raíz del dominio. La raíz del dominio es propiedad de , que también se encarga de su administració AWS. 

La cuenta de administrador que se creó con el directorio AWS Managed Microsoft AD dispone de permisos para realizar las actividades administrativas más habituales para la unidad organizativa: 
+ Crear, actualizar o eliminar usuarios 
+ Añadir recursos a su dominio, como servidores de archivos o de impresión y, a continuación, asignar permisos para esos recursos a usuarios dentro de la unidad organizativa 
+ Crear unidades organizativas y contenedores adicionales 
+ Delegar autoridad 
+ Restaurar objetos eliminados de la papelera de reciclaje de Active Directory 
+ Ejecutar módulos de AD y DNS de Windows PowerShell en el servicio web de Active Directory 

La cuenta de administrador también tiene derechos para realizar las siguientes actividades en todo el dominio: 
+ Administrar configuraciones DNS (agregar, quitar o actualizar registros, zonas y programas de envío). 
+ Ver logs de eventos DNS 
+ Ver logs de eventos de seguridad 

Para crear el directorio, use la API Consola de administración de AWS, AWS CLI o Directory Service. Asegúrese de abrir los puertos de salida relevantes en el grupo de seguridad del directorio para que el directorio pueda comunicarse con la instancia de base de datos de Oracle.

**Para crear un directorio con AWS Managed Microsoft AD**

1. Inicie sesión en Consola de administración de AWS y abra la consola de Directory Service en [https://console.aws.amazon.com/directoryservicev2/](https://console.aws.amazon.com/directoryservicev2/).

1. En el panel de navegación, elija **Directories (Directorios)** y, a continuación, **Set up Directory (Configurar directorio)**. 

1. Elija **AWS Managed Microsoft AD**. AWS Managed Microsoft AD es la única opción que puede usar actualmente con Amazon RDS. 

1.  Introduzca la información siguiente:   
**Nombre de DNS del directorio**  
El nombre completo del directorio, como por ejemplo **corp.example.com**.   
**Nombre NetBIOS del directorio**  
El nombre abreviado del directorio, como **CORP**.   
**Descripción del directorio**  
(Opcional) Descripción del directorio.   
**Contraseña de administrador**  
Contraseña del administrador del directorio. El proceso de creación de directorios crea una cuenta de administrador con el nombre de usuario Admin y esta contraseña.   
La contraseña del administrador del directorio no puede contener la palabra "admin". La contraseña distingue entre mayúsculas y minúsculas y debe tener un mínimo de 864 caracteres y un máximo de 64. También debe contener al menos un carácter de tres de las siguientes categorías:   
   + Letras minúsculas (a–z) 
   + Letras mayúsculas (A–Z) 
   + Números (0–9) 
   + Caracteres no alfanuméricos (\$1\$1@\$1\$1%^&\$1\$1-\$1=`\$1\$1()\$1\$1[]:;"'<>,.?/)   
**Confirm password**  
Vuelva a escribir la contraseña de administrador. 

1. Elija **Next (Siguiente)**.

1.  Escriba la siguiente información en la sección **Networking (Redes)** y luego seleccione **Next (Siguiente)**:   
**VPC**  
VPC del directorio. Cree la instancia de base de datos de Oracle en esta misma VPC.   
**Subredes**  
Subredes de los servidores del directorio. Las dos subredes deben estar en diferentes zonas de disponibilidad. 

1.  Revise la información del directorio y haga los cambios necesarios. Cuando la información sea correcta, seleccione **Create directory (Crear directorio)**.   
![\[Página de detalles del directorio durante la creación\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/WinAuth2.png)

La creación del directorio tarda varios minutos. Cuando se haya creado correctamente, el valor de **Status (Estado)** cambiará a **Active (Activo)**. 

Para consultar información de su directorio, seleccione el nombre del directorio en la descripción de directorios. Tenga en cuenta el valor de **Directory ID (ID de directorio)** porque necesitará este valor cuando cree o modifique su instancia de base de datos de Oracle. 

![\[Detalles del directorio\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/WinAuth3.png)


## Paso 2: crear una relación de confianza
<a name="oracle-kerberos.setting-up.create-forest-trust"></a>

Si planea utilizar AWS Managed Microsoft AD únicamente, pase a [Paso 3: Configure los permisos de IAM para Amazon RDS](#oracle-kerberos.setting-up.CreateIAMRole).

Para habilitar la autenticación de Kerberos mediante Active Directory autoadministrado, debe crear una relación de confianza de bosque entre Active Directory autoadministrado y el AWS Managed Microsoft AD creado en el paso anterior. La confianza puede ser unidireccional, donde AWS Managed Microsoft AD confía en Active Directory autoadministrado. La confianza también puede ser bidireccional, donde ambos Active Directories confían entre sí. Para obtener más información acerca de la configuración de relaciones de confianza entre bosques con Directory Service, consulte [Cuándo crear una relación de confianza](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_setup_trust.html) en la *Guía de administración de Directory Service*.

## Paso 3: Configure los permisos de IAM para Amazon RDS
<a name="oracle-kerberos.setting-up.CreateIAMRole"></a>

Para llamar a Directory Service por usted, Amazon RDS requiere un rol de IAM que utilice la política de IAM administrada `AmazonRDSDirectoryServiceAccess`. Este rol permite a Amazon RDS realizar llamadas a Directory Service.

**nota**  
Para que el rol permita el acceso, el punto de conexión AWS Security Token Service (AWS STS) debe activarse en la Región de AWS correcta para su Cuenta de AWS. Los puntos de conexión de AWS STS están activos de forma predeterminada en todas las Regiones de AWS y puede usarlos sin ninguna acción posterior. Para obtener más información, consulte [Activación y desactivación de AWS STS en una región de Región de AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html#sts-regions-activate-deactivate) en la *Guía del usuario de IAM*.

### Creación de un rol de IAM
<a name="oracle-kerberos.setting-up.CreateIAMRole.create-role"></a>

Cuando se crea una instancia de base de datos con la Consola de administración de AWS y el usuario de la consola tiene el permiso `iam:CreateRole`, la consola crea `rds-directoryservice-kerberos-access-role` automáticamente. De no ser así, debe crear el rol de IAM manualmente. Cuando cree un rol de IAM automáticamente, elija `Directory Service` y asocie la política administrada de AWS `AmazonRDSDirectoryServiceAccess` a este. 

A fin de obtener más información acerca de la creación de roles de IAM para un servicio, consulte [Creación de un rol para delegar permisos a un servicio de AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) en la *guía del usuario de IAM*.

**nota**  
El rol de IAM utilizado para la autenticación de Windows en RDS para Microsoft SQL Server no se puede usar en RDS para Oracle.

### Creación manual de una política de confianza de IAM
<a name="oracle-kerberos.setting-up.CreateIAMRole.trust-policy"></a>

Opcionalmente, puede crear políticas de recursos con los permisos requeridos en vez de utilizar la política de IAM administrada `AmazonRDSDirectoryServiceAccess`. Especifique `directoryservice.rds.amazonaws.com` y `rds.amazonaws.com` como entidades principales.

A fin de limitar los permisos que Amazon RDS da a otro servicio para un recurso específico, le recomendamos utilizar las claves de contexto de condición global de [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) y [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) en las políticas de recursos. La forma más eficaz de protegerse contra el problema del suplente confuso es utilizar la clave de contexto de condición global de `aws:SourceArn` con el ARN completo de un recurso de Amazon RDS. Para obtener más información, consulte [Prevención de los problemas del suplente confuso entre servicios](cross-service-confused-deputy-prevention.md).

En el ejemplo siguiente, se muestra cómo se pueden utilizar las claves de contexto de condición global de `aws:SourceArn` y `aws:SourceAccount` en Amazon RDS para evitar el problema del suplente confuso.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": {
        "Service": [
          "directoryservice.rds.amazonaws.com",
          "rds.amazonaws.com"
        ]
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "ArnLike": {
          "aws:SourceArn": "arn:aws:rds:us-east-1:123456789012:db:mydbinstance"
        },
        "StringEquals": {
          "aws:SourceAccount": "123456789012"
        }
      }
    }
  ]
}
```

------

En el caso de las regiones que se suscriban voluntariamente, también debe incluir una entidad principal de servicio para esa región en forma de `directoryservice.rds.region_name.amazonaws.com`. Por ejemplo, en la región de África (Ciudad del Cabo), utilice la siguiente política de confianza:

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": {
        "Service": [
          "directoryservice.rds.amazonaws.com",
          "directoryservice.rds.af-south-1.amazonaws.com",
          "rds.amazonaws.com"
        ]
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "ArnLike": {
          "aws:SourceArn": "arn:aws:rds:af-south-1:123456789012:db:mydbinstance"
        },
        "StringEquals": {
          "aws:SourceAccount": "123456789012"
        }
      }
    }
  ]
}
```

------

El rol debe también tener la siguiente política de IAM.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Action": [
        "ds:DescribeDirectories",
        "ds:AuthorizeApplication",
        "ds:UnauthorizeApplication",
        "ds:GetAuthorizedApplicationDetails"
      ],
    "Effect": "Allow",
    "Resource": "*"
    }
  ]
}
```

------

## Paso 4: crear y configurar usuarios
<a name="oracle-kerberos.setting-up.create-users"></a>

 Puede crear usuarios con la herramienta Usuarios y equipos de Active Directory, que es una de las herramientas Servicios de dominio de Active Directory y Active Directory Lightweight Directory Services. En este caso, los *usuarios* son las personas físicas o entidades que tienen acceso al directorio. 

Para crear usuarios en un directorio de Directory Service, debe estar conectado a una instancia de Amazon EC2 con Windows que sea miembro del directorio de Directory Service. Al mismo tiempo, debe iniciar sesión como usuario con privilegios para crear usuarios. Para obtener más información sobre la creación de usuarios en su Microsoft Active Directory, consulte [Administrar usuarios y grupos en AWS Managed Microsoft AD](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_manage_users_groups.html) en la *Guía de administración de Directory Service*.

## Paso 5: habilitar el tráfico entre VPC entre el directorio y la instancia de base de datos
<a name="oracle-kerberos.setting-up.vpc-peering"></a>

Si tiene previsto ubicar el directorio y la instancia de base de datos en la misma VPC, omita este paso y continúe con [Paso 6: crear o modificar una instancia de base de datos de Oracle](#oracle-kerberos.setting-up.create-modify).

Si planea localizar el directorio y la instancia de base de datos en distintas cuentas de AWS o VPC, configure el tráfico entre VPC mediante interconexión de VPC o [AWS Transit Gateway](https://docs.aws.amazon.com/vpc/latest/tgw/what-is-transit-gateway.html). El siguiente procedimiento permite el tráfico entre VPC mediante la interconexión de VPC. Siga las instrucciones de [¿Qué es una interconexión de VPC?](https://docs.aws.amazon.com/vpc/latest/peering/Welcome.html) en la *Guía de interconexión de Amazon Virtual Private Cloud*.

**Para habilitar el tráfico entre VPC mediante la interconexión de VPC**

1. Configure las reglas de enrutamiento de VPC adecuadas para garantizar que el tráfico de red pueda fluir en ambos sentidos.

1. Asegúrese de que el grupo de seguridad de la instancia de base de datos pueda recibir tráfico de entrada del grupo de seguridad del directorio. Para obtener más información, consulte [ Prácticas recomendadas para AWS Managed Microsoft AD](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_best_practices.html) en la *Guía de administración de Directory Service*.

1. Asegúrese de que no haya una regla de lista de control de acceso (ACL) a la red para bloquear el tráfico.

Si una cuenta de AWS distinta es la propietaria del directorio, debe compartirlo.

**Para compartir el directorio entre cuentas de AWS**

1. Comience a compartir el directorio con la cuenta de AWS en la que se creará la instancia de base de datos mediante las instrucciones de [Tutorial: Uso compartido del directorio de AWS Managed Microsoft AD para realizar la unión al dominio de EC2 sin problemas](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_tutorial_directory_sharing.html) en la *Guía de administración de Directory Service*.

1. Inicie sesión en la consola de Directory Service utilizando la cuenta para la instancia de base de datos y asegúrese de que el dominio tiene el estado `SHARED` antes de continuar.

1. Una vez iniciada sesión en la consola de Directory Service utilizando la cuenta de la instancia de base de datos, anote el valor de **Directory ID (ID de directorio)**. Utilice este identificador de directorio para unir la instancia de base de datos al dominio.

## Paso 6: crear o modificar una instancia de base de datos de Oracle
<a name="oracle-kerberos.setting-up.create-modify"></a>

Cree o modifique una instancia de base de datos de Oracle para usarla con su directorio. Puede utilizar la consola, CLI, o la API de RDS para asociar una instancia de base de datos con un directorio. Puede hacerlo de una de las siguientes formas:
+ Cree una nueva instancia de base de datos de Oracle utilizando la consola, el comando de CLI [ create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) o la operación [CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) de la API de RDS.

  Para obtener instrucciones, consulte [Creación de una instancia de base de datos de Amazon RDS](USER_CreateDBInstance.md).
+ Modifique una instancia de base de datos de Oracle existente utilizando la consola, el comando de CLI [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) o la operación [ModifyDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) de la API de RDS.

  Para obtener instrucciones, consulte [Modificación de una instancia de base de datos de Amazon RDS](Overview.DBInstance.Modifying.md).
+ Restaure una instancia de base de datos de Oracle a partir de una instantánea de base de datos utilizando la consola, el comando de CLI [ restore-db-instance-from-db-snapshot](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html) o la operación [ RestoreDBInstanceFromDBSnapshot](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromDBSnapshot.html) de la API de RDS.

  Para obtener instrucciones, consulte [Restauración a una instancia de base de datos](USER_RestoreFromSnapshot.md).
+ Restaure una instancia de base de datos de Oracle a partir de un punto en el tiempo utilizando la consola, el comando de CLI [ restore-db-instance-to-point-in-time](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html) o la operación [ RestoreDBInstanceToPointInTime](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceToPointInTime.html) de la API de RDS.

  Para obtener instrucciones, consulte [Restauración de una instancia de base de datos a un momento especificado para Amazon RDS](USER_PIT.md).

La autenticación Kerberos solo es compatible con instancias de base de datos de Oracle en una VPC. La instancia de DB puede estar en la misma VPC que el directorio o en una VPC diferente. Cuando cree o modifique la instancia de base de datos, haga lo siguiente:
+ Proporcione el identificador de dominio (identificador `d-*`) que se generó cuando creó el directorio.
+ Proporcione el nombre del rol de IAM que ha creado.
+ Asegúrese de que el grupo de seguridad de la instancia de base de datos pueda recibir tráfico entrante del grupo de seguridad del directorio y enviar tráfico saliente al directorio.

Si utiliza la consola para crear una instancia de base de datos, elija **Password and Kerberos authentication (Contraseña y autenticación Kerberos)** en la sección **Database authentication (Autenticación de base de datos)**. Elija **Browse Directory (Examinar directorio)** y, a continuación, seleccione el directorio o elija **Create a new directory (Crear un nuevo directorio)**.

![\[Configuración de autenticación Kerberos al crear una instancia de base de datos\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/kerberos-authentication.png)


Si utiliza la consola para modificar o restaurar una instancia de base de datos, elija el directorio en la sección **Kerberos authentication (Autenticación Kerberos)** o elija **Create a new directory (Crear un nuevo directorio)**.

![\[Configuración de autenticación Kerberos al modificar o restaurar una instancia de base de datos\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/kerberos-auth-modify-restore.png)


Cuando utilice la AWS CLI, se necesitan los siguientes parámetros para que la instancia de base de datos pueda usar el directorio que ha creado:
+ Para el parámetro `--domain`, utilice el identificador de dominio (identificador "d-\$1") que se generó cuando creó el directorio.
+ Para el parámetro `--domain-iam-role-name`, utilice el rol que creó que usa la política `AmazonRDSDirectoryServiceAccess` de IAM administrada.

Por ejemplo, el siguiente comando de CLI modifica una instancia de base de datos para usar un directorio.

Para Linux, macOS, o Unix:

```
aws rds modify-db-instance \
    --db-instance-identifier mydbinstance \
    --domain d-ID \
    --domain-iam-role-name role-name
```

Para Windows:

```
aws rds modify-db-instance ^
    --db-instance-identifier mydbinstance ^
    --domain d-ID ^
    --domain-iam-role-name role-name
```

**importante**  
Si modifica una instancia de base de datos para habilitar la autenticación Kerberos, reinicie la instancia de base de datos después de realizar el cambio.

**nota**  
*MANAGED\$1SERVICE\$1USER* es una cuenta de servicio cuyo nombre genera aleatoriamente Directory Service para RDS. Durante la configuración de la autenticación Kerberos, RDS para Oracle crea un usuario con el mismo nombre y le asigna el privilegio `CREATE SESSION`. El usuario de base de datos de Oracle se identifica externamente como *MANAGED\$1SERVICE\$1USER@EXAMPLE.COM*, donde *EXAMPLE.COM* es el nombre de su dominio. Periódicamente, RDS utiliza las credenciales proporcionadas por Directory Service para iniciar sesión en la base de datos de Oracle. Después, RDS destruye inmediatamente la caché de tickets.

## Paso 7: crear inicios de sesión de Oracle de autenticación Kerberos
<a name="oracle-kerberos.setting-up.create-logins"></a>

Use las credenciales del usuario maestro de Amazon RDS para conectarse a la instancia de base de datos de Oracle igaul que con cualquier otra instancia de base de datos. La instancia de base de datos se une al dominio de AWS Managed Microsoft AD. Por lo tanto, puede aprovisionar inicios de sesión y usuarios de Oracle desde usuarios de Microsoft Active Directory en el dominio. Para administrar los permisos de la base de datos, otorgue y revoque los permisos estándar de Oracle para estos inicios de sesión.

**Para permitir que un usuario de Microsoft Active Directory se autentique con Oracle**

1. Conéctese a la instancia de base de datos de Oracle mediante sus credenciales de usuario maestro de Amazon RDS.

1. Cree un usuario autenticado externamente en la base de datos de Oracle.

   En el ejemplo siguiente, reemplace `KRBUSER@CORP.EXAMPLE.COM` por el nombre de usuario y el nombre de dominio.

   ```
   CREATE USER "KRBUSER@CORP.EXAMPLE.COM" IDENTIFIED EXTERNALLY; 
   GRANT CREATE SESSION TO "KRBUSER@CORP.EXAMPLE.COM";
   ```

   Ahora, los usuarios (tanto humanos como aplicaciones) del dominio pueden conectarse a la instancia de base de datos de Oracle desde un equipo cliente unido al dominio mediante la autenticación Kerberos. 

## Paso 8: configurar un cliente de Oracle
<a name="oracle-kerberos.setting-up.configure-oracle-client"></a>

Para configurar un cliente de Oracle, cumpla los requisitos siguientes:
+ Cree un archivo de configuración denominado krb5.conf (Linux) o krb5.ini (Windows) para apuntar al dominio. Configure el cliente de Oracle para utilizar este archivo de configuración.
+ Compruebe que el tráfico puede fluir entre el host cliente y Directory Service sobre el puerto 53 de DNS y TCP/UDP, y los puertos de Kerberos (88 y 464 para Directory Service administrado) sobre el puerto 389 de TCP y LDAP.
+ Verifique que el tráfico puede fluir entre el host cliente y la instancia de base de datos sobre el puerto de base de datos.

A continuación, se encuentra el contenido de muestra para AWS Managed Microsoft AD.

```
[libdefaults]
 default_realm = EXAMPLE.COM
[realms]
 EXAMPLE.COM = {
  kdc = example.com
  admin_server = example.com
 }
[domain_realm]
 .example.com = CORP.EXAMPLE.COM
 example.com = CORP.EXAMPLE.COM
```

El siguiente es el contenido de muestra para Microsoft AD local. En el archivo krb5.conf o krb5.ini, sustituya*on-prem-ad-server-name* por el nombre del servidor AD local.

```
[libdefaults]
 default_realm = ONPREM.COM
[realms]
 AWSAD.COM = {
  kdc = awsad.com
  admin_server = awsad.com
 }
 ONPREM.COM = {
  kdc = on-prem-ad-server-name
  admin_server = on-prem-ad-server-name
 }
[domain_realm]
 .awsad.com = AWSAD.COM
 awsad.com= AWSAD.COM
 .onprem.com = ONPREM.COM
 onprem.com= ONPREM.COM
```

**nota**  
Después de configurar el archivo krb5.ini o krb5.conf, le recomendamos que reinicie el servidor.

El siguiente es contenido sqlnet.ora de ejemplo para una configuración de SQL\$1Plus:

```
SQLNET.AUTHENTICATION_SERVICES=(KERBEROS5PRE,KERBEROS5)
SQLNET.KERBEROS5_CONF=path_to_krb5.conf_file
```

Para ver un ejemplo de una configuración de SQL Developer, consulte [Document 1609359.1](https://support.oracle.com/epmos/faces/DocumentDisplay?id=1609359.1) de Oracle Support.

# Administración de una instancia de base de datos en un dominio
<a name="oracle-kerberos-managing"></a>

Puede usar la consola, la CLI o la API de RDS para administrar su instancia de base de datos y su relación con su Microsoft Active Directory. Puede, por ejemplo, asociar un Microsoft Active Directory para habilitar la autenticación Kerberos. También puede disociar un Microsoft Active Directory para deshabilitar la autenticación Kerberos. También puede mover una instancia de base de datos para que sea autenticada externamente por un Microsoft Active Directory a otro.

Por ejemplo, con la CLI, puede hacer lo siguiente: 
+ Volver a intentar habilitar la autenticación Kerberos para una pertenencia fallida, use el comando de CLI [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) y especifique el ID de directorio de pertenencia actual para la opción `--domain`.
+ Deshabilitar la autenticación Kerberos en una instancia de base de datos, utilice el comando de CLI [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) y especifique `none` para la opción `--domain`.
+ Mover una instancia de base de datos de un dominio a otro, use el comando de CLI [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) y especifique el identificador de dominio del nuevo dominio para la opción `--domain`.

## Visualización del estado de la suscripción al dominio
<a name="oracle-kerberos-managing.understanding"></a>

Una vez que haya creado o modificado una instancia de base de datos, esta se convierte en miembro del dominio. Puede ver el estado de la pertenencia del dominio para la instancia de base de datos en la consola o ejecutando el comando de CLI [describe-db-instances](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html). El estado de la instancia de base de datos puede ser uno de los siguientes: 
+ `kerberos-enabled`: la instancia de base de datos tiene habilitada la autenticación Kerberos.
+ `enabling-kerberos` - AWS está en proceso de habilitar la autenticación Kerberos en esta instancia de base de datos.
+ `pending-enable-kerberos`: la habilitación de la autenticación Kerberos está pendiente en esta instancia de base de datos.
+ `pending-maintenance-enable-kerberos` - AWS intentará habilitar la autenticación Kerberos en la instancia de base de datos durante el próximo periodo de mantenimiento programado.
+ `pending-disable-kerberos`: la deshabilitación de la autenticación Kerberos está pendiente en esta instancia de base de datos.
+ `pending-maintenance-disable-kerberos` - AWS intentará desactivar la autenticación Kerberos en la instancia de base de datos durante el próximo periodo de mantenimiento programado.
+ `enable-kerberos-failed`: un problema de configuración ha impedido que AWS habilite la autenticación Kerberos en la instancia de base de datos. Corrija el problema de configuración antes de volver a ejecutar el comando para modificar la instancia de base de datos.
+ `disabling-kerberos` - AWS está en proceso de desactivar la autenticación Kerberos en esta instancia de base de datos.

Una solicitud para habilitar la autenticación Kerberos puede generar un error a causa de un problema de conectividad de la red o de un rol de IAM incorrecto. Si el intento de habilitar la autenticación Kerberos falla al crear o modificar una instancia de base de datos, debe asegurarse de que está utilizando el rol de IAM correcto. A continuación, modifique la instancia de base de datos para unirse al dominio.

**nota**  
Solo la autenticación Kerberos con Amazon RDS for Oracle envía tráfico a los servidores DNS del dominio. Las otras solicitudes de DNS se tratan como acceso de red saliente en las instancias de bases de datos que ejecutan Oracle. Para obtener más información acerca del acceso de red saliente con Amazon RDS para Oracle, consulte [Configuración de un servidor DNS personalizado](Appendix.Oracle.CommonDBATasks.System.md#Appendix.Oracle.CommonDBATasks.CustomDNS).

## Rotación forzada de claves de Kerberos
<a name="oracle-kerberos-managing.rotation"></a>

Una clave secreta se comparte entre AWS Managed Microsoft AD y una instancia de base de datos de Amazon RDS for Oracle. Esta clave se rota automáticamente cada 45 días. Puede utilizar el siguiente procedimiento de Amazon RDS para forzar la rotación de esta clave.

```
SELECT rdsadmin.rdsadmin_kerberos_auth_tasks.rotate_kerberos_keytab AS TASK_ID FROM DUAL;
```

**nota**  
En una configuración de réplica de lectura, este procedimiento solo está disponible en la instancia de base de datos de origen y no en la réplica de lectura.

La instrucción `SELECT` devuelve el identificador de la tarea en un tipo de datos `VARCHAR2`. Puede ver el estado de una tarea continua en un archivo bdump. Los archivos bdump están ubicados en el directorio `/rdsdbdata/log/trace`. El nombre del archivo bdump está en el siguiente formato.

```
dbtask-task-id.log
```

Para ver el resultado, visualice el archivo de salida de la tarea.

```
SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP','dbtask-task-id.log'));
```

Reemplace *`task-id`* con el ID de tarea devuelto por el procedimiento.

**nota**  
Las tareas se ejecutan de forma asíncrona.

# Conexión a Oracle con autenticación Kerberos
<a name="oracle-kerberos-connecting"></a>

En esta sección se supone que ha configurado el cliente de Oracle como se describe en [Paso 8: configurar un cliente de Oracle](oracle-kerberos-setting-up.md#oracle-kerberos.setting-up.configure-oracle-client). Para conectarse a la base de datos de Oracle con autenticación Kerberos, inicie sesión con el tipo de autenticación Kerberos. Por ejemplo, después de lanzar Oracle SQL Developer, elija **Autenticación Kerberos** como tipo de autenticación, como se puede ver a continuación. 

![\[Muestra el cuadro de diálogo New/Select Database Connection en Oracle SQL Developer. La casilla de verificación Autenticación Kerberos está seleccionada.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/ora-kerberos-auth.png)


Para conectarse a Oracle con autenticación Kerberos con SQL\$1Plus:

1. En el símbolo del sistema, ejecute el siguiente comando:

   ```
   kinit username
   ```

   Sustituya *`username`* por el nombre de usuario y, en el indicador, introduzca la contraseña almacenada en el Microsoft Active Directory para el usuario.

1. Abra SQL\$1Plus y conecte usando el nombre de DNS y el número de puerto para la instancia de base de datos de Oracle.

   Para obtener más información sobre la conexión a la instancia de base de datos de Oracle en SQL\$1Plus, consulte [Conexión a la instancia de base de datos mediante SQL\$1Plus](USER_ConnectToOracleInstance.SQLPlus.md).

**sugerencia**  
Si utiliza una caché nativa de Windows, también puede establecer el parámetro `SQLNET.KERBEROS5_CC_NAME` en `OSMSFT://` o `MSLSA` en el archivo sqlnet.ora para usar las credenciales almacenadas en Microsoft Active Directory.

# Configuración del acceso UTL\$1HTTP mediante certificados y un wallet de Oracle.
<a name="Oracle.Concepts.ONA"></a>

Amazon RDS admite el acceso a la red saliente en las instancias de base de datos de RDS para Oracle. Para conectar la instancia de base de datos a la red, puede utilizar los siguientes paquetes PL/SQL:

`UTL_HTTP`  
Este paquete realiza llamadas HTTP desde SQL y PL/SQL. Puede usarlo para acceder a los datos de Internet a través de HTTP. Para obtener más información, consulte [UTL\$1HTTP](https://docs.oracle.com/en/database/oracle/oracle-database/19/arpls/UTL_HTTP.html#GUID-A85D2D1F-90FC-45F1-967F-34368A23C9BB) en la documentación de Oracle.

`UTL_TCP`  
Este paquete proporciona funcionalidad de acceso del lado del cliente TCP/IP en PL/SQL. Este paquete es útil para aplicaciones PL/SQL que utilizan protocolos de Internet y correo electrónico. Para obtener más información, consulte [UTL\$1TCP](https://docs.oracle.com/en/database/oracle/oracle-database/19/arpls/UTL_TCP.html#GUID-348AFFE8-78B2-4217-AE73-384F46A1D292) en la documentación de Oracle.

`UTL_SMTP`  
Este paquete proporciona interfaces a los comandos SMTP que permiten a un cliente enviar correos electrónicos a un servidor SMTP. Para obtener más información, consulte [UTL\$1SMTP](https://docs.oracle.com/en/database/oracle/oracle-database/19/arpls/UTL_SMTP.html#GUID-F0065C52-D618-4F8A-A361-7B742D44C520) en la documentación de Oracle.

Al completar las siguientes tareas, puede configurar `UTL_HTTP.REQUEST` para trabajar con sitios web que requieren certificados de autenticación de cliente durante el protocolo de enlace SSL. También puede configurar la autenticación por contraseña para el acceso de `UTL_HTTP` a sitios web modificando los comandos de generación de wallets de Oracle y el procedimiento `DBMS_NETWORK_ACL_ADMIN.APPEND_WALLET_ACE`. Para más información, consulte [DBMS\$1NETWORK\$1ACL\$1ADMIN](https://docs.oracle.com/en/database/oracle/oracle-database/21/arpls/DBMS_NETWORK_ACL_ADMIN.html) en la documentación de Oracle Database.

**nota**  
Puede adaptar las siguientes tareas para `UTL_SMTP`, que le permite enviar correos electrónicos a través de SSL/TLS (por ejemplo, [Amazon Simple Email Service](https://aws.amazon.com/ses/)).

**Topics**
+ [Consideraciones al configurar el acceso UTL\$1HTTP](#utl_http-considerations)
+ [Paso 1: obtener el certificado raíz de un sitio web](#website-root-certificate)
+ [Paso 2: crear un wallet de Oracle](#create-oracle-wallet)
+ [Paso 3: descargar el wallet de Oracle en su instancia de RDS for Oracle](#upload-wallet-to-instance)
+ [Paso 4: conceder permisos de usuario para el wallet de Oracle](#config-oracle-wallet-user)
+ [Paso 5: configurar el acceso a un sitio web desde la instancia de base de datos](#config-website-access)
+ [Paso 6: probar las conexiones desde la instancia de base de datos a un sitio web](#test_utl_http)

## Consideraciones al configurar el acceso UTL\$1HTTP
<a name="utl_http-considerations"></a>

Tenga en cuenta lo siguiente antes de configurar el acceso:
+ Puede utilizar SMTP con la opción UTL\$1MAIL. Para obtener más información, consulte [Oracle UTL\$1MAIL](Oracle.Options.UTLMAIL.md).
+ El nombre en el servidor de nombres de dominio (DNS) del host remoto puede ser cualquiera de los siguientes: 
  + Uno que se pueda resolver públicamente.
  + El punto de enlace de una instancia de base de datos de Amazon RDS.
  + Uno que se pueda resolver a través de un servidor DNS personalizado. Para obtener más información, consulte [Configuración de un servidor DNS personalizado](Appendix.Oracle.CommonDBATasks.System.md#Appendix.Oracle.CommonDBATasks.CustomDNS). 
  + El nombre de DNS privado de una instancia de Amazon EC2 de la misma VPC o de una VPC interconectada. En este caso, asegúrese de que el nombre se pueda resolver a través de un servidor DNS personalizado. Para utilizar el DNS proporcionado por Amazon, también puede activar el atributo `enableDnsSupport` en la configuración de la VPC y activar la compatibilidad con la resolución de DNS para la interconexión de VPC. Para obtener más información, consulte [Compatibilidad de DNS en su VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html#vpc-dns-support) y [Modificación de las opciones de conexión de interconexión de VPC](https://docs.aws.amazon.com/vpc/latest/peering/working-with-vpc-peering.html#modify-peering-connections). 
  + Para conectarse de forma segura a recursos remotos SSL/TLS, le recomendamos que cree y cargue Oracle Wallets personalizados. Utilice la integración de Simple Storage Service (Amazon S3) con la característica de Amazon RDS for Oracle para descargar un wallet de su Amazon S3 en instancias de base de datos de Oracle. Para obtener información sobre la integración de Amazon S3 para Oracle, consulte [Integración de Amazon S3](oracle-s3-integration.md).
+ Puede establecer enlaces de base de datos entre las instancias de base de datos de Oracle a través de un punto de enlace SSL/TLS si la opción de Oracle SSL está configurada para cada instancia. No se necesitan más configuraciones. Para obtener más información, consulte [Capa de conexión segura de Oracle](Appendix.Oracle.Options.SSL.md).

## Paso 1: obtener el certificado raíz de un sitio web
<a name="website-root-certificate"></a>

Para que la instancia de base de datos de RDS para Oracle establezca conexiones seguras con un sitio web, agregue el certificado de entidad de certificación raíz. Amazon RDS utiliza el certificado raíz para firmar el certificado del sitio web en el wallet de Oracle.

Puede obtener el certificado raíz de varias formas. Por ejemplo, puede hacer lo siguiente:

1. Utilice un servidor web para visitar el sitio web protegido por el certificado.

1. Descargue el certificado raíz que se utilizó para la firma.

Para los servicios de AWS, los certificados raíz suelen residir en el [repositorio de Amazon trust services](https://www.amazontrust.com/repository/).

## Paso 2: crear un wallet de Oracle
<a name="create-oracle-wallet"></a>

Cree un wallet de Oracle que contenga tanto los certificados del servidor web como los certificados de autenticación del cliente. La instancia de RDS Oracle utiliza el certificado del servidor web para establecer una conexión segura con el sitio web. El sitio web necesita el certificado del cliente para autenticar al usuario de la base de datos Oracle.

Es posible que desee configurar conexiones seguras sin utilizar certificados de cliente para la autenticación. En este caso, puede omitir los pasos del almacén de claves de Java en el siguiente procedimiento.

**Para crear un wallet de Oracle**

1. Coloque los certificados raíz y de cliente en un único directorio y, a continuación, cambie a este directorio.

1. Convierta el certificado de cliente .p12 en el almacén de claves de Java.
**nota**  
Si no utiliza los certificados de cliente para la autenticación, puede omitir este paso.

   El siguiente ejemplo convierte el certificado de cliente denominado *client\$1certificate.p12* en el almacén de claves de Java denominado *client\$1keystore.jks*. El almacén de claves se incluye en el wallet de Oracle. La contraseña del almacén de claves es *P12PASSWORD*.

   ```
   orapki wallet pkcs12_to_jks -wallet ./client_certificate.p12 -jksKeyStoreLoc ./client_keystore.jks -jksKeyStorepwd P12PASSWORD
   ```

1. Cree un directorio para el wallet de Oracle que sea diferente del directorio del certificado.

   El siguiente ejemplo crea el directorio `/tmp/wallet`.

   ```
   mkdir -p /tmp/wallet
   ```

1. Cree un wallet de Oracle en su directorio de wallets.

   El siguiente ejemplo establece la contraseña del wallet de Oracle como *P12PASSWORD*, que es la misma contraseña utilizada por el almacén de claves de Java en un paso anterior. Es conveniente utilizar la misma contraseña, pero no es necesario. El parámetro `-auto_login` activa la característica de inicio de sesión automático, para que no sea necesario especificar una contraseña cada vez que se quiera acceder.
**nota**  
Especifique una contraseña distinta de la que se muestra aquí como práctica recomendada de seguridad.

   ```
   orapki wallet create -wallet /tmp/wallet -pwd P12PASSWORD -auto_login
   ```

1. Agregue el almacén de claves de Java al wallet de Oracle.
**nota**  
Si no utiliza los certificados de cliente para la autenticación, puede omitir este paso.

   En el siguiente ejemplo se agrega el almacén de claves *cliente\$1keystore.jks* al wallet de Oracle denominado */tmp/wallet*. En este ejemplo, se especifica la misma contraseña para el almacén de claves de Java y el wallet de Oracle.

   ```
   orapki wallet jks_to_pkcs12 -wallet /tmp/wallet -pwd P12PASSWORD -keystore ./client_keystore.jks -jkspwd P12PASSWORD
   ```

1. Agregue el certificado raíz de su sitio web de destino al Oracle Wallet.

   En el siguiente ejemplo se agrega un certificado denominado *Root\$1CA.cer*.

   ```
   orapki wallet add -wallet /tmp/wallet -trusted_cert -cert ./Root_CA.cer -pwd P12PASSWORD
   ```

1. Agregue los certificados intermedios.

   El siguiente ejemplo agrega un certificado denominado *Intermediate.cer*. Repita este paso tantas veces como sea necesario para cargar todos los certificados intermedios.

   ```
   orapki wallet add -wallet /tmp/wallet -trusted_cert -cert ./Intermediate.cer -pwd P12PASSWORD
   ```

1. Confirme que el wallet de Oracle recién creado tenga los certificados necesarios.

   ```
   orapki wallet display -wallet /tmp/wallet -pwd P12PASSWORD
   ```

## Paso 3: descargar el wallet de Oracle en su instancia de RDS for Oracle
<a name="upload-wallet-to-instance"></a>

En este paso, cargue el wallet de Oracle en Simple Storage Service (Amazon S3) y, a continuación, descargue el wallet de Amazon S3 en su instancia de RDS para Oracle.

**Para descargar el wallet de Oracle en su instancia de base de datos de RDS for Oracle.**

1. Complete los requisitos previos para la integración de Amazon S3 con Oracle y añada la opción `S3_INTEGRATION` a su instancia de base de datos de Oracle. Asegúrese de que el rol de IAM para la opción disponga de acceso al bucket de Amazon S3 que está utilizando.

   Para obtener más información, consulte [Integración de Amazon S3](oracle-s3-integration.md).

1. Inicie sesión en su instancia de base de datos como usuario principal y, a continuación, cree un directorio de Oracle para albergar el wallet de Oracle.

   El siguiente ejemplo crea un directorio de Oracle llamado *WALLET\$1DIR*.

   ```
   EXEC rdsadmin.rdsadmin_util.create_directory('WALLET_DIR');
   ```

   Para obtener más información, consulte [Creación y eliminación de directorios en el espacio de almacenamiento de datos principal](Appendix.Oracle.CommonDBATasks.Misc.md#Appendix.Oracle.CommonDBATasks.NewDirectories).

1. Cargue el Oracle Wallet en el bucket de Simple Storage Service (Amazon S3).

   Puede usar cualquier técnica de carga compatible.

1. Si va a volver a cargar un wallet de Oracle, elimine el wallet existente. De no ser así, vaya al siguiente paso.

   El siguiente ejemplo elimina el wallet existente, cuyo nombre es *cwallet.sso*.

   ```
   EXEC UTL_FILE.FREMOVE ('WALLET_DIR','cwallet.sso');
   ```

1. Descargue el Oracle Wallet desde su bucket de Simple Storage Service (Amazon S3) a la instancia de base de datos de Oracle.

   El siguiente ejemplo descarga el wallet llamado *cwallet.sso* desde el bucket de Simple Storage Service (Amazon S3) llamado *my\$1s3\$1bucket* al directorio de la instancia de base de datos llamado *WALLET\$1DIR*.

   ```
   SELECT rdsadmin.rdsadmin_s3_tasks.download_from_s3(
         p_bucket_name    =>  'my_s3_bucket', 
         p_s3_prefix      =>  'cwallet.sso', 
         p_directory_name =>  'WALLET_DIR') 
      AS TASK_ID FROM DUAL;
   ```

1. (Opcional) Descargue un wallet de Oracle protegido por contraseña.

   Descargue este wallet solo si quiere requerir una contraseña para cada uso del wallet. El siguiente ejemplo descarga el wallet protegido por contraseña *ewallet.p12*.

   ```
   SELECT rdsadmin.rdsadmin_s3_tasks.download_from_s3(
         p_bucket_name    =>  'my_s3_bucket', 
         p_s3_prefix      =>  'ewallet.p12', 
         p_directory_name =>  'WALLET_DIR') 
      AS TASK_ID FROM DUAL;
   ```

1. Verifique el estado de la tarea de la base de datos.

   Sustituya el ID de la tarea devuelto en los pasos anteriores por *dbtask-1234567890123-4567.log* en el siguiente ejemplo.

   ```
   SELECT TEXT FROM TABLE(rdsadmin.rds_file_util.read_text_file('BDUMP','dbtask-1234567890123-4567.log'));
   ```

1. Verifique el contenido del directorio que se utiliza para almacenar el wallet de Oracle.

   ```
   SELECT * FROM TABLE(rdsadmin.rds_file_util.listdir(p_directory => 'WALLET_DIR'));
   ```

   Para obtener más información, consulte [Descripción de los archivos de un directorio de instancia de base de datos](Appendix.Oracle.CommonDBATasks.Misc.md#Appendix.Oracle.CommonDBATasks.ListDirectories).

## Paso 4: conceder permisos de usuario para el wallet de Oracle
<a name="config-oracle-wallet-user"></a>

Puede crear un nuevo usuario de base de datos o configurar un usuario existente. En cualquiera de los dos casos, debe configurar el usuario para que acceda wallet de Oracle para las conexiones seguras y la autenticación del cliente mediante certificados.

**Para conceder permisos de usuario para el wallet de Oracle**

1. Inicie sesión en la instancia de base de datos de RDS for Oracle como usuario principal.

1. Si no desea configurar un usuario de base de datos existente, cree un nuevo usuario. De no ser así, vaya al siguiente paso.

   En el siguiente ejemplo, se crea un usuario de base de datos denominado *my-user*.

   ```
   CREATE USER my-user IDENTIFIED BY my-user-pwd;
   GRANT CONNECT TO my-user;
   ```

1. Conceda permiso a los usuarios de la base de datos en el directorio que contiene el wallet de Oracle.

   El siguiente ejemplo concede acceso de lectura al usuario *my-user* en el directorio *WALLET\$1DIR*.

   ```
   GRANT READ ON DIRECTORY WALLET_DIR TO my-user;
   ```

1. Conceda permiso al usuario de la base de datos para utilizar el paquete `UTL_HTTP`.

   El siguiente programa PL/SQL otorga acceso a `UTL_HTTP` al usuario *my-user*.

   ```
   BEGIN 
     rdsadmin.rdsadmin_util.grant_sys_object('UTL_HTTP', UPPER('my-user')); 
     END;
   /
   ```

1. Conceda permiso al usuario de la base de datos para utilizar el paquete `UTL_FILE`.

   El siguiente programa PL/SQL otorga acceso a `UTL_FILE` al usuario *my-user*.

   ```
   BEGIN 
     rdsadmin.rdsadmin_util.grant_sys_object('UTL_FILE', UPPER('my-user')); 
     END;
   /
   ```

## Paso 5: configurar el acceso a un sitio web desde la instancia de base de datos
<a name="config-website-access"></a>

En este paso se configura el usuario de la base de datos Oracle para que pueda conectarse al sitio web de destino mediante `UTL_HTTP`, el wallet de Oracle cargado y el certificado del cliente. Para más información, consulte [Configuring Access Control to an Oracle Wallet](https://docs.oracle.com/en/database/oracle/oracle-database/19/dbseg/managing-fine-grained-access-in-pl-sql-packages-and-types.html#GUID-0BCB5925-A40F-4507-95F9-5DA4A1919EBD) (Configuración del control de acceso a un wallet de Oracle) en la documentación de Oracle Database.

**Para configurar el acceso a un sitio web desde la instancia de base de datos de RDS for Oracle**

1. Inicie sesión en la instancia de base de datos de RDS for Oracle como usuario principal.

1. Cree una entrada de control de acceso al host (ACE) para el usuario y el sitio web de destino en un puerto seguro.

   El siguiente ejemplo configura *my-user* para acceder a *secret.encrypted-website.com* en el puerto seguro 443.

   ```
   BEGIN
     DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
       host       => 'secret.encrypted-website.com', 
       lower_port => 443,
       upper_port => 443,
       ace        => xs$ace_type(privilege_list => xs$name_list('http'),
                                 principal_name => 'my-user',
                                 principal_type => xs_acl.ptype_db)); 
                              -- If the program unit results in PLS-00201, set
                              -- the principal_type parameter to 2 as follows:
                              -- principal_type => 2));
   END;
   /
   ```
**importante**  
La unidad de programa anterior puede provocar el siguiente error: `PLS-00201: identifier 'XS_ACL' must be declared`. Si se devuelve este error, sustituya la línea que asigna un valor a `principal_type` por la línea siguiente y, a continuación, vuelva a ejecutar la unidad de programa:  

   ```
   principal_type => 2));
   ```
Para obtener más información acerca de las constantes del paquete PL/SQL `XS_ACL`, consulte la [https://docs.oracle.com/en/database/oracle/oracle-database/19/dbfsg/XS_ACL-package.html#GUID-A157FB28-FE23-4D30-AAEB-8224230517E7](https://docs.oracle.com/en/database/oracle/oracle-database/19/dbfsg/XS_ACL-package.html#GUID-A157FB28-FE23-4D30-AAEB-8224230517E7) en la documentación de Oracle Database.

   Para más información, consulte [Configuring Access Control for External Network Services](https://docs.oracle.com/en/database/oracle/oracle-database/19/dbseg/managing-fine-grained-access-in-pl-sql-packages-and-types.html#GUID-3D5B66BC-0277-4887-9CD1-97DB44EB5213) (Configuración del control de acceso para servicios de red externos) en la documentación de Oracle Database.

1. (Opcional) Cree una ACE para el usuario y el sitio web de destino en el puerto estándar. 

   Es posible que tenga que utilizar el puerto estándar si algunas páginas web reciben servicio desde el puerto estándar del servidor web (80) en lugar del puerto seguro (443).

   ```
   BEGIN
     DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
       host       => 'secret.encrypted-website.com', 
       lower_port => 80,
       upper_port => 80,
       ace        => xs$ace_type(privilege_list => xs$name_list('http'),
                                 principal_name => 'my-user',
                                 principal_type => xs_acl.ptype_db)); 
                              -- If the program unit results in PLS-00201, set
                              -- the principal_type parameter to 2 as follows:
                              -- principal_type => 2));
   END;
   /
   ```

1. Confirme que las entradas de control de acceso existen.

   ```
   SET LINESIZE 150
   COLUMN HOST FORMAT A40
   COLUMN ACL FORMAT A50
   
   SELECT HOST, LOWER_PORT, UPPER_PORT, ACL
     FROM DBA_NETWORK_ACLS
   ORDER BY HOST;
   ```

1. Conceda permiso al usuario de la base de datos para utilizar el paquete `UTL_HTTP`.

   El siguiente programa PL/SQL otorga acceso a `UTL_HTTP` al usuario *my-user*.

   ```
   BEGIN 
     rdsadmin.rdsadmin_util.grant_sys_object('UTL_HTTP', UPPER('my-user')); 
     END;
   /
   ```

1. Confirme que existen listas de control de acceso relacionadas.

   ```
   SET LINESIZE 150
   COLUMN ACL FORMAT A50
   COLUMN PRINCIPAL FORMAT A20
   COLUMN PRIVILEGE FORMAT A10
   
   SELECT ACL, PRINCIPAL, PRIVILEGE, IS_GRANT,
          TO_CHAR(START_DATE, 'DD-MON-YYYY') AS START_DATE,
          TO_CHAR(END_DATE, 'DD-MON-YYYY') AS END_DATE
     FROM DBA_NETWORK_ACL_PRIVILEGES
   ORDER BY ACL, PRINCIPAL, PRIVILEGE;
   ```

1. Conceda permiso al usuario de su base de datos de utilizar certificados para la autenticación del cliente y el wallet de Oracle para las conexiones.
**nota**  
Si no utiliza los certificados de cliente para la autenticación, puede omitir este paso.

   ```
   DECLARE
     l_wallet_path all_directories.directory_path%type;
   BEGIN
     SELECT DIRECTORY_PATH 
       INTO l_wallet_path 
       FROM ALL_DIRECTORIES
      WHERE UPPER(DIRECTORY_NAME)='WALLET_DIR';
     DBMS_NETWORK_ACL_ADMIN.APPEND_WALLET_ACE(
       wallet_path => 'file:/' || l_wallet_path,
       ace         =>  xs$ace_type(privilege_list => xs$name_list('use_client_certificates'),
                                   principal_name => 'my-user',
                                   principal_type => xs_acl.ptype_db));
   END;
   /
   ```

## Paso 6: probar las conexiones desde la instancia de base de datos a un sitio web
<a name="test_utl_http"></a>

En este paso, configurará al usuario de la base de datos para que pueda conectarse al sitio web mediante `UTL_HTTP`, el wallet de Oracle cargado y el certificado del cliente.

**Para configurar el acceso a un sitio web desde la instancia de base de datos de RDS for Oracle**

1. Inicie sesión en la instancia de base de datos de RDS for Oracle como usuario de base de datos con permisos `UTL_HTTP`.

1. Confirme que una conexión al sitio web de destino puede resolver la dirección del host.

   En el siguiente ejemplo, se obtiene la dirección de host de *secret.encrypted-website.com*.

   ```
   SELECT UTL_INADDR.GET_HOST_ADDRESS(host => 'secret.encrypted-website.com')
     FROM DUAL;
   ```

1. Pruebe una conexión fallida.

   La siguiente consulta falla porque `UTL_HTTP` requiere la ubicación del wallet de Oracle con los certificados.

   ```
   SELECT UTL_HTTP.REQUEST('secret.encrypted-website.com') FROM DUAL;
   ```

1. Pruebe el acceso al sitio web mediante `UTL_HTTP.SET_WALLET` y seleccione desde `DUAL`.

   ```
   DECLARE
     l_wallet_path all_directories.directory_path%type;
   BEGIN
     SELECT DIRECTORY_PATH
       INTO l_wallet_path 
       FROM ALL_DIRECTORIES
      WHERE UPPER(DIRECTORY_NAME)='WALLET_DIR';
     UTL_HTTP.SET_WALLET('file:/' || l_wallet_path);
   END;
   /
   
   SELECT UTL_HTTP.REQUEST('secret.encrypted-website.com') FROM DUAL;
   ```

1. (Opcional) Pruebe el acceso al sitio web mediante el almacenamiento de la consulta en una variable y el uso de `EXECUTE IMMEDIATE`.

   ```
   DECLARE
     l_wallet_path all_directories.directory_path%type;
     v_webpage_sql VARCHAR2(1000);
     v_results     VARCHAR2(32767);
   BEGIN
     SELECT DIRECTORY_PATH
       INTO l_wallet_path 
       FROM ALL_DIRECTORIES
      WHERE UPPER(DIRECTORY_NAME)='WALLET_DIR';
     v_webpage_sql := 'SELECT UTL_HTTP.REQUEST(''secret.encrypted-website.com'', '''', ''file:/' ||l_wallet_path||''') FROM DUAL';
     DBMS_OUTPUT.PUT_LINE(v_webpage_sql);
     EXECUTE IMMEDIATE v_webpage_sql INTO v_results;
     DBMS_OUTPUT.PUT_LINE(v_results);
   END;
   /
   ```

1. (Opcional) Busque la ubicación en el sistema de archivos de su directorio de wallets de Oracle.

   ```
   SELECT * FROM TABLE(rdsadmin.rds_file_util.listdir(p_directory => 'WALLET_DIR'));
   ```

   Utilice el resultado del comando anterior para realizar una solicitud HTTP. Por ejemplo, si el directorio es *rdsdbdata/userdirs/01*, ejecute la siguiente consulta.

   ```
   SELECT UTL_HTTP.REQUEST('https://secret.encrypted-website.com/', '', 'file://rdsdbdata/userdirs/01') 
   FROM   DUAL;
   ```

# Uso de CDB con RDS para Oracle
<a name="oracle-multitenant"></a>

En la arquitectura multitenencia de Oracle, una base de datos de contenedores (CDB) puede incluir bases de datos conectables (PDB) creadas por el cliente. Para obtener más información sobre las CDB, consulte el tema de [presentación de la arquitectura multitenencia](https://docs.oracle.com/en/database/oracle/oracle-database/19/multi/introduction-to-the-multitenant-architecture.html#GUID-267F7D12-D33F-4AC9-AA45-E9CD671B6F22) en la documentación de Oracle Database.

**Topics**
+ [Descripción general de las CDB de RDS para Oracle](Oracle.Concepts.CDBs.md)
+ [Configuración de una CDB de RDS para Oracle](oracle-cdb.configuring.md)
+ [Copia de seguridad y restauración de una CDB](Oracle.Concepts.single-tenant.snapshots.md)
+ [Conversión de una base de datos no CDB de RDS para Oracle en una CDB](oracle-cdb-converting.md)
+ [Convertir la configuración de un solo inquilino a una de varios inquilinos.](oracle-single-tenant-converting.md)
+ [Añadir una base de datos de inquilinos de RDS para Oracle a su instancia de CDB](oracle-cdb-configuring.adding.pdb.md)
+ [Modificación de una base de datos de inquilinos de RDS para Oracle](oracle-cdb-configuring.modifying.pdb.md)
+ [Eliminar una base de datos de inquilinos de RDS para Oracle de su CDB](oracle-cdb-configuring.deleting.pdb.md)
+ [Ver detalles de la base de datos de inquilinos](oracle-cdb-configuring.describing.pdb.md)
+ [Actualización de la CDB](Oracle.Concepts.single-tenant.upgrades.md)

# Descripción general de las CDB de RDS para Oracle
<a name="Oracle.Concepts.CDBs"></a>

Puede crear una instancia de base de datos de RDS para Oracle como base de datos de contenedores (CDB) al ejecutar Oracle Database 19c o una versión posterior. A partir de Oracle Database 21c, todas las bases de datos son CDB. La diferencia entre una CDB y una base de datos que no sea CDB es que la primera puede contener bases de datos conectables (PDB), llamadas bases de datos de inquilinos en RDS para Oracle. Una PDB es una colección portátil de esquemas y objetos que una aplicación ve como base de datos independiente.

Al crear la instancia de CDB, debe crear la base de datos de inquilinos (PDB) inicial. En RDS para Oracle, la aplicación cliente interactúa con la PDB en lugar de con la CDB. La experiencia con una PDB es, en general, idéntica a la de con una no CDB.

**Topics**
+ [Configuración de varios inquilinos de la arquitectura CDB](#multi-tenant-configuration)
+ [Configuración de un solo inquilino de la arquitectura CDB](#Oracle.Concepts.single-tenant)
+ [Opciones de creación y conversión para CDB](#oracle-cdb-creation-conversion)
+ [Cuentas de usuario y privilegios en una CDB](#Oracle.Concepts.single-tenant.users)
+ [Familias de grupos de parámetros en una CDB](#Oracle.Concepts.single-tenant.parameters)
+ [Limitaciones de las CDB de RDS para Oracle](#Oracle.Concepts.single-tenant-limitations)

## Configuración de varios inquilinos de la arquitectura CDB
<a name="multi-tenant-configuration"></a>

RDS para Oracle es compatible con la configuración de varios inquilinos de la arquitectura multitenencia de Oracle, también llamada *arquitectura CDB*. En esta configuración, la instancia de CDB de RDS para Oracle puede contener entre 1 y 30 bases de datos de inquilinos, en función de la edición de la base de datos y de las licencias de opciones que se requieran. En una base de datos de Oracle, una base de datos de inquilinos es una PDB. La instancia de base de datos debe usar la versión de base de datos Oracle 19.0.0.0.ru-2022-01.rur-2022.r1 o superior.

**nota**  
La configuración de Amazon RDS se denomina «de varios inquilinos» en lugar de «multitenencia», ya que es una capacidad de Amazon RDS, no solo del motor de base de datos de Oracle. De manera similar, el término “inquilino” de RDS se refiere a cualquier inquilino en una configuración de RDS, no solo a las PDB de Oracle. En la documentación de RDS, el término “de varios inquilinos de Oracle” sin guion se refiere exclusivamente a la arquitectura CDB de la base de datos de Oracle, que es compatible tanto con las implementaciones en las instalaciones como con RDS.

Puede configurar los siguientes ajustes:
+ Nombre de la base de datos de inquilinos
+ Nombre de usuario principal de la base de datos de inquilinos
+ Contraseña principal de la base de datos de inquilinos (integrada opcionalmente con Secrets Manager)
+ Conjunto de caracteres de la base de datos de inquilinos
+ Conjunto de caracteres nacional de la base de datos de inquilinos

El conjunto de caracteres de la base de datos de inquilinos puede ser diferente del de la CDB. Lo mismo sucede con el conjunto de caracteres nacional. Tras crear la base de datos de inquilinos inicial, puede crear, modificar o eliminar las bases de datos de inquilinos usando las API de RDS. El nombre predeterminado de la CDB es `RDSCDB` y no se puede cambiar. Para obtener más información, consulte [Configuración de instancias de base de datos](USER_CreateDBInstance.Settings.md) y [Modificación de una base de datos de inquilinos de RDS para Oracle](oracle-cdb-configuring.modifying.pdb.md).

## Configuración de un solo inquilino de la arquitectura CDB
<a name="Oracle.Concepts.single-tenant"></a>

RDS para Oracle es compatible con la antigua configuración de arquitectura multitenencia de Oracle, llamada configuración de un solo inquilino. En esta configuración, una instancia de CDB de RDS para Oracle solo puede contener un inquilino (PDB). No puede crear otras PDB más tarde.

## Opciones de creación y conversión para CDB
<a name="oracle-cdb-creation-conversion"></a>

Oracle Database 21c solo admite las CDB, mientras que Oracle Database 19c es compatible con bases de datos CDB y no CDB. Todas las instancias de CDB de RDS para Oracle son compatibles con configuraciones de varios inquilinos y de un solo inquilino.

### Opciones de creación, conversión y actualización para la arquitectura de bases de datos de Oracle
<a name="oracle-cdb-creation-conversion.architecture"></a>

La siguiente tabla muestra las diferentes opciones de arquitectura para crear y actualizar las bases de datos de RDS para Oracle.


| Release | Opciones de creación de bases de datos | Opciones de conversión de arquitectura | Destinos de actualización de versión principal | 
| --- | --- | --- | --- | 
| Oracle Database 21c | Solo arquitectura CDB | N/A | N/A | 
| Oracle Database 19c | Arquitectura para bases de datos CDB o no CDB | Arquitectura no CDB a CDB (RU de abril de 2021 o superior) | Oracle Database 21c CDB | 

Tal y como se muestra en la tabla anterior, no se puede actualizar directamente una base de datos que no sea CDB a una CDB en una nueva versión principal de base de datos. Sin embargo, puede convertir una Oracle Database 19c que no sea de CDB en una CDB de Oracle Database 19c y, a continuación, actualizar la CDB de Oracle Database 19c a una CDB de Oracle Database 21c. Para obtener más información, consulte [Conversión de una base de datos no CDB de RDS para Oracle en una CDB](oracle-cdb-converting.md).

### Opciones de conversión para configuraciones de arquitectura CDB
<a name="oracle-cdb-creation-conversion.configuration"></a>

La siguiente tabla muestra las diferentes opciones para convertir la configuración de arquitectura de una instancia de base de datos de RDS para Oracle.


| Arquitectura y configuración actuales | Conversión de arquitectura CDB a la configuración de un solo inquilino | Conversión de arquitectura CDB a la configuración de varios inquilinos | Conversión a una arquitectura no CDB | 
| --- | --- | --- | --- | 
| No CDB | Compatible | Compatible\$1 | N/A | 
| CDB con configuración de un solo inquilino | N/A | Compatible | No admitido | 
| CDB con configuración de varios inquilinos | No admitido | N/A | No admitido | 

\$1 No se puede hacer la conversión de una base de datos no CDB a una configuración de varios inquilinos en una sola operación. Al convertir una base de datos no CDB a una CDB, la CDB está en la configuración de un solo inquilino. Luego, puede usar otra operación para convertir la configuración de un solo inquilino en una de varios inquilinos.

## Cuentas de usuario y privilegios en una CDB
<a name="Oracle.Concepts.single-tenant.users"></a>

En la arquitectura multitenencia de Oracle, todas las cuentas de usuario son usuarios comunes o usuarios locales. Un usuario común de CDB es un usuario de base de datos cuya identidad y contraseña únicas se conocen en la raíz de CDB y en todas las PDB existentes y futuras. En cambio, un usuario local solo existe en una sola PDB.

El usuario maestro de RDS es una cuenta de usuario local de la PDB, a la que se asigna un nombre al crear la instancia de base de datos. Si crea nuevas cuentas de usuario, estos usuarios también serán usuarios locales que residen en la PDB. No puede usar ninguna cuenta de usuario para crear nuevas PDB ni modificar el estado de la PDB existente.

El usuario `rdsadmin` es una cuenta de usuario común. Puede ejecutar paquetes de RDS para Oracle que existen en esta cuenta, pero no puede iniciar sesión como `rdsadmin`. Para obtener más información, consulte [Acerca de los usuarios comunes y los usuarios locales](https://docs.oracle.com/en/database/oracle/oracle-database/19/dbseg/managing-security-for-oracle-database-users.html#GUID-BBBD9904-F2F3-442B-9AFC-8ACDD9A588D8) en la documentación de Oracle.

Para los usuarios principales en las configuraciones de varios inquilinos y de un solo inquilino, puede usar credenciales autoadministradas o administradas por AWS Secrets Manager. En la configuración de un solo inquilino, se utilizan comandos de CLI en la instancia, como `create-db-instance` para las contraseñas principales administradas. En la configuración de varios inquilinos, se utilizan los comandos de la base de datos de inquilinos, como `create-tenant-database` para las contraseñas principales administradas. Para obtener más información acerca de la integración de Secrets Manager, consulte [Administración de la contraseña de usuario principal para una base de datos de inquilinos de RDS para Oracle con Secrets Manager](rds-secrets-manager.md#rds-secrets-manager-tenant).

## Familias de grupos de parámetros en una CDB
<a name="Oracle.Concepts.single-tenant.parameters"></a>

Las CDB tienen sus propias familias de grupos de parámetros y valores de parámetros predeterminados. Las familias de grupos de parámetros de CDB son las siguientes:
+ oracle-ee-cdb-21
+ oracle-se2-cdb-21
+ oracle-ee-cdb-19
+ oracle-se2-cdb-19

## Limitaciones de las CDB de RDS para Oracle
<a name="Oracle.Concepts.single-tenant-limitations"></a>

RDS para Oracle admite un subconjunto de características disponibles en una CDB en las instalaciones.

### Limitaciones de la CDB
<a name="oracle-cdb-limitations.cdb"></a>

Las siguientes limitaciones se aplican a RDS para Oracle en el CDB:
+ No puede conectarse a una CDB. Siempre se conecta a la base de datos de inquilinos (PDB), y no a la CDB. Especifique el punto de enlace de la PDB al igual que para una base de datos que no es CDB. La única diferencia es que especifica *pdb\$1name* para el nombre de base de datos, donde *pdb\$1name* es el nombre que eligió para la PDB.
+ No se puede convertir una CDB con la configuración de varios inquilinos en una CDB con configuración de un solo inquilino. La conversión a la configuración de varios inquilinos solo se puede hacer en un sentido y es irreversible.
+ No puede habilitar la configuración de varios inquilinos, ni hacer una conversión a esta, si la instancia de base de datos usa una versión de base de datos Oracle anterior a 19.0.0.0.ru-2022-01.rur-2022.r1.
+ No pueden utilizar los flujos de actividad de la base de datos en una CDB.
+ No puede activar la auditoría desde dentro de `CDB$ROOT`. Debe habilitar la auditoría en cada PDB de forma individual.

### Limitaciones de la base de datos de inquilinos (PDB)
<a name="oracle-cdb-limitations.pdb"></a>

Las bases de datos de inquilinos en la configuración de varios inquilinos de RDS para Oracle tienen las siguientes limitaciones:
+ No puede aplazar las operaciones de la base de datos de inquilinos hasta el periodo de mantenimiento. Todos los cambios ocurren de forma inmediata.
+ No puede agregar una base de datos de inquilinos a una CDB que utilice la configuración de un solo inquilino.
+ No puede agregar ni modificar múltiples bases de datos de inquilinos en una sola operación. Solo puede agregarlas o modificarlas de una en una.
+ No puede modificar una base de datos de inquilinos para que tenga el nombre `CDB$ROOT` o `PDB$SEED`.
+ No puede eliminar una base de datos de inquilino si es la única inquilina en la CDB.
+ No todos los tipos de clases de instancias de base de datos tienen recursos suficientes como para admitir varias PDB en una instancia de CDB de RDS para Oracle. Un mayor número de PDB afecta al rendimiento y la estabilidad de las clases de instancias más pequeñas y aumenta el tiempo de la mayoría de las operaciones en el nivel de instancia; por ejemplo, las actualizaciones de bases de datos.
+ No puede cambiar el nombre de una PDB usando `rdsadmin.rdsadmin_util.rename_global_name`, debe usar la API de `modify-tenant-database` en su lugar.
+ No puede usar varias Cuentas de AWS para crear PDB en la misma CDB. Las PDB deben pertenecer a la misma cuenta que la instancia de base de datos en la que se alojan las PDB.
+ Todas las PDB de una CDB utilizan el mismo punto de conexión y oyente de base de datos.
+ Las siguientes operaciones no son compatibles en el nivel de la PDB, pero sí lo son en el nivel de la CDB:
  + Copia de seguridad y recuperación
  + Actualizaciones de la base de datos
  + Acciones de mantenimiento
+ Las siguientes características no son compatibles en el nivel de la PDB, pero sí lo son en el nivel de la CDB:
  + Grupos de opciones (las opciones están instaladas en todas las PDB de la instancia de CDB)
  + Grupos de parámetros (todos los parámetros se derivan del grupo de parámetros asociado a la instancia de CDB)
+ Estas son algunas de las operaciones en el nivel de PDB compatibles en la arquitectura de CDB en las instalaciones, pero no en una CDB de RDS para Oracle:
**nota**  
Lo que sigue no es una lista completa.
  + PDB de aplicaciones
  + PDB proxy
  + Inicio y detención de una PDB
  + Conexión y desconexión de las PDB

    Para mover datos dentro o fuera de su CDB, debe utilizar las mismas técnicas que para una base de datos que no es CDB. Para obtener más información sobre cómo migrar datos, consulte [Importación de datos a Oracle en Amazon RDS](Oracle.Procedural.Importing.md).
  + Opciones de configuración en el nivel de las PDB

    La PDB hereda la configuración del grupo de opciones de la CDB. Para obtener más información sobre la configuración de opciones, consulte [Grupos de parámetros para Amazon RDS](USER_WorkingWithParamGroups.md). Para ver las prácticas recomendadas, consulte [Trabajo con los grupos de parámetros de base de datos](CHAP_BestPractices.md#CHAP_BestPractices.DBParameterGroup).
  + Configuración de parámetros en una PDB

    La PDB hereda la configuración de parámetros de la CDB. Para obtener más información sobre la configuración, consulte [Adición de opciones a instancias de base de datos de Oracle](Appendix.Oracle.Options.md).
  + Configuración de distintos oyentes para PDB en la misma CDB
  + Características de Oracle Flashback

# Configuración de una CDB de RDS para Oracle
<a name="oracle-cdb.configuring"></a>

Configurar una CDB es similar a configurar una no CDB. 

**Topics**
+ [Creación de una instancia de CDB de RDS para Oracle](#Oracle.Concepts.single-tenant.creation)
+ [Conexión a una PDB en la CDB de RDS para Oracle](#Oracle.Concepts.connecting.pdb)

## Creación de una instancia de CDB de RDS para Oracle
<a name="Oracle.Concepts.single-tenant.creation"></a>

En RDS para Oracle, crear una instancia de CDB es casi igual a crear una instancia que no sea de CDB. La diferencia es que debe elegir la arquitectura multitenencia de Oracle al crear la instancia de base de datos, además de elegir una configuración de arquitectura (un inquilino o varios inquilinos). Si crea etiquetas al crear una CDB en la configuración de varios inquilinos, RDS las propaga a la base de datos de inquilinos inicial. Para crear una CDB, utilice la Consola de administración de AWS, la AWS CLI o la API de RDS.

### Consola
<a name="Oracle.Concepts.single-tenant.creation.console"></a>

**Para crear una instancia de CDB**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon RDS en [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. En la esquina superior derecha de la consola de Amazon RDS, elija la Región de AWS en la que desea crear la instancia de CDB.

1. En el panel de navegación, elija **Databases** (Bases de datos).

1. Elija **Create database (Crear base de datos)**.

1. En **Choose a database creation method (Elegir un método de creación de base de datos)**, elija **Standard Create (Creación estándar)**.

1. En **Engine options (Opciones del motor)**, elija **Oracle**. 

1. En **Tipo de administración de base de datos**, elija **Amazon RDS Custom**.

1. En **Configuración de la arquitectura**, elija **Arquitectura multitenencia de Oracle**. 

1. En **Configuración de la arquitectura**, lleve a cabo una de las siguientes acciones:
   + Elija **Configuración de varios inquilinos** y vaya al siguiente paso.
   + Elija **Configuración de un solo inquilino** y vaya al paso 11.

1. (Configuración de varios inquilinos) En **Configuración de la base de datos de inquilinos**, haga los siguientes cambios:
   + En **Nombre de la base de datos de inquilinos**, escriba el nombre de la PDB inicial. El nombre de la PDB debe ser diferente del nombre de la CDB, que por defecto es `RDSCDB`.
   + En **Nombre de usuario principal de la base de datos de inquilinos**, escriba el nombre del usuario principal de la PDB. No puede usar el nombre de usuario principal de la base de datos de inquilinos para iniciar sesión en la propia CDB.
   + Para **Administración de credenciales**, elija cualquiera de las siguientes opciones de administración de credenciales:
     + **Administrado en AWS Secrets Manager**

       La contraseña administrada es para la base de datos de inquilinos inicial y no para la instancia. En **Seleccionar la clave de cifrado**, elija una clave de KMS que cree Secrets Manager o una clave que haya creado usted. 
**nota**  
Recomendamos AWS Secrets Manager como la técnica más segura para administrar las credenciales. Se aplican cargos adicionales. Para obtener más información, consulte [Administración de contraseñas con Amazon RDS y AWS Secrets Manager](rds-secrets-manager.md).
     + **Autoadministrado**

       Para especificar una contraseña, desactive la casilla de verificación **Generar una contraseña de forma automática** si está seleccionada. Ingrese la misma contraseña en **Contraseña principal** y elija **Confirmar contraseña principal**.
   + En **Conjunto de caracteres de base de datos de inquilinos**, seleccione un conjunto de caracteres para la PDB. Puede elegir un conjunto de caracteres de base de datos de inquilinos distinto del de la CDB.

     El conjunto de caracteres predeterminado de la PDB es **AL32UTF8**. Si elige un conjunto de caracteres PDB no predeterminado, es posible que la creación de la CDB sea más lenta. 
**nota**  
No puede especificar varias bases de datos de inquilinos en la operación de creación. La CDB tiene una PDB cuando se crea. Puede agregar PDB a una CDB existente en una operación independiente.

1. (Configuración de un solo inquilino) Elija la configuración que desee en función de las opciones que figuran en [Configuración de instancias de base de datos](USER_CreateDBInstance.Settings.md):

   1. En la sección **Settings (Configuración)**, abra **Credential Settings (Configuración de credenciales)**. A continuación, proceda del modo siguiente:

     1. En **Nombre de usuario maestro**, introduzca el nombre de un usuario local de su PDB. No puede usar el nombre de usuario maestro para iniciar sesión en la raíz de la CDB.

     1. Para **Administración de credenciales**, elija cualquiera de las siguientes opciones de administración de credenciales:
        + **Administrado en AWS Secrets Manager**

          En **Seleccionar la clave de cifrado**, elija una clave de KMS que cree Secrets Manager o una clave que haya creado usted. 
**nota**  
Recomendamos AWS Secrets Manager como la técnica más segura para administrar las credenciales. Se aplican cargos adicionales. Para obtener más información, consulte [Administración de contraseñas con Amazon RDS y AWS Secrets Manager](rds-secrets-manager.md).
        + **Autoadministrado**

          Para especificar una contraseña, desactive la casilla de verificación **Generar una contraseña de forma automática** si está seleccionada. Ingrese la misma contraseña en **Contraseña principal** y elija **Confirmar contraseña principal**.

1. En el resto de secciones, especifique los ajustes de configuración de la instancia de base de datos. Para obtener información acerca de cada configuración, consulte [Configuración de instancias de base de datos](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateDBInstance.Settings.html).

1. Elija **Creación de base de datos**.

### AWS CLI
<a name="Oracle.Concepts.single-tenant.creation.cli"></a>

Para crear una CDB en la configuración multitenencia, use el comando [create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) con los siguientes parámetros:
+ `--db-instance-identifier`
+ `--db-instance-class`
+ `--engine { oracle-ee-cdb | oracle-se2-cdb }`
+ `--master-username`
+ `--master-user-password` o `--manage-master-user-password`
+ `--multi-tenant` (para la configuración de un solo inquilino, no especifique `multi-tenant` o especifique `--no-multi-tenant`)
+ `--allocated-storage`
+ `--backup-retention-period`

Para obtener más información acerca de cada configuración, consulte [Configuración de instancias de base de datos](USER_CreateDBInstance.Settings.md).

En el siguiente ejemplo, se crea una instancia de base de datos de RDS para Oracle denominada *my-cdb-inst* en la configuración de varios inquilinos. Si especifica `--no-multi-tenant` o no especifica `--multi-tenant`, la configuración de CDB predeterminada será de un solo inquilino. El motor es `oracle-ee-cdb`: un comando que especifica los fallos de `oracle-ee` y `--multi-tenant` con un error. La base de datos de inquilinos inicial se denomina *mypdb*.

**Example**  
Para Linux, macOS o Unix:  

```
 1. aws rds create-db-instance \
 2.     --engine oracle-ee-cdb \
 3.     --db-instance-identifier my-cdb-inst \
 4.     --multi-tenant \
 5.     --db-name mypdb \
 6.     --allocated-storage 250 \
 7.     --db-instance-class db.t3.large \
 8.     --master-username pdb_admin \
 9.     --manage-master-user-password \
10.     --backup-retention-period 3
```
Para Windows:  

```
 1. aws rds create-db-instance ^
 2.     --engine oracle-ee-cdb ^
 3.     --db-instance-identifier my-cdb-inst ^
 4.     --multi-tenant ^
 5.     --db-name mypdb ^
 6.     --allocated-storage 250 ^
 7.     --db-instance-class db.t3.large ^
 8.     --master-username pdb_admin ^
 9.     --manage-master-user-password \ ^
10.     --backup-retention-period 3
```
Especifique una contraseña distinta de la que se muestra aquí como práctica recomendada de seguridad.
El resultado de este comando debería ser similar al siguiente. El nombre de la base de datos, el conjunto de caracteres, el conjunto de caracteres nacional, el usuario principal y el secreto del usuario principal no están incluidos en la salida. Puede ver esta información mediante el comando `describe-tenant-databases` de la CLI.  

```
 1. {
 2.     "DBInstance": {
 3.         "DBInstanceIdentifier": "my-cdb-inst",
 4.         "DBInstanceClass": "db.t3.large",
 5.         "MultiTenant": true,
 6.         "Engine": "oracle-ee-cdb",
 7.         "DBResourceId": "db-ABCDEFGJIJKLMNOPQRSTUVWXYZ",
 8.         "DBInstanceStatus": "creating",
 9.         "AllocatedStorage": 250,
10.         "PreferredBackupWindow": "04:59-05:29",
11.         "BackupRetentionPeriod": 3,
12.         "DBSecurityGroups": [],
13.         "VpcSecurityGroups": [
14.             {
15.                 "VpcSecurityGroupId": "sg-0a1bcd2e",
16.                 "Status": "active"
17.             }
18.         ],
19.         "DBParameterGroups": [
20.             {
21.                 "DBParameterGroupName": "default.oracle-ee-cdb-19",
22.                 "ParameterApplyStatus": "in-sync"
23.             }
24.         ],
25.         "DBSubnetGroup": {
26.             "DBSubnetGroupName": "default",
27.             "DBSubnetGroupDescription": "default",
28.             "VpcId": "vpc-1234567a",
29.             "SubnetGroupStatus": "Complete",
30.             ...
```

### API de RDS
<a name="Oracle.Concepts.single-tenant.creation.api"></a>

Para crear una instancia de base de datos con la API de Amazon RDS, llame a la operación [CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html).

Para obtener más información acerca de cada configuración, consulte [Configuración de instancias de base de datos](USER_CreateDBInstance.Settings.md). 

## Conexión a una PDB en la CDB de RDS para Oracle
<a name="Oracle.Concepts.connecting.pdb"></a>

Puede usar una utilidad como SQL\$1Plus para conectarse a una PDB. Para descargar Oracle Instant Client, que incluye una versión independiente de SQL\$1Plus, consulte [Oracle Instant Client Downloads](https://www.oracle.com/database/technologies/instant-client/downloads.html).

Para conectarse a SQL\$1Plus en la PDB, necesitará la siguiente información:
+ Nombre de PDB
+ Nombre de usuario y contraseña de la base de datos
+ Punto de conexión para la instancia de base de datos
+ Número de puerto

Para obtener información sobre cómo buscar la información anterior, consulte [Búsqueda del punto de conexión de la instancia de base de datos de RDS para Oracle](USER_Endpoint.md).

**Example Para conectarse a la PDB mediante SQL\$1Plus**  
En los siguientes ejemplos, sustituya *master\$1user\$1name* por el usuario maestro. Además, sustituya el punto de conexión de su instancia de base de datos y, a continuación, incluya el número de puerto y el SID de Oracle. El valor SID es el nombre de la PDB que ha especificado al crear la instancia de base de datos y no el identificador de la instancia de base de datos.  
Para Linux, macOS o Unix:  

```
1. sqlplus 'master_user_name@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=endpoint)(PORT=port))(CONNECT_DATA=(SID=pdb_name)))'
```
Para Windows:  

```
1. sqlplus master_user_name@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=endpoint)(PORT=port))(CONNECT_DATA=(SID=pdb_name)))
```
Debería ver un resultado similar a este.  

```
SQL*Plus: Release 19.0.0.0.0 Production on Mon Aug 21 09:42:20 2021
```
Tras introducir la contraseña para el usuario, aparece la pregunta de SQL.  

```
SQL>
```

**nota**  
La cadena de conexión de formato más corto (Easy connect o EZCONNECT), como `sqlplus username/password@LONGER-THAN-63-CHARS-RDS-ENDPOINT-HERE:1521/database-identifier`, puede encontrar un límite de máximo caracteres y no debería usarse para conexiones. 

# Copia de seguridad y restauración de una CDB
<a name="Oracle.Concepts.single-tenant.snapshots"></a>

Puede hacer copias de seguridad y restaurar su CDB usando instantáneas de la base de datos de RDS o Recovery Manager (RMAN).

## Copia de seguridad y restauración de una CDB mediante instantáneas de la base de datos
<a name="br-cdb.db-snapshots"></a>

Las instantáneas de la base de datos funcionan de manera similar en las arquitecturas CDB y no CDB. Estas son las diferencias principales:
+ Cuando restaura una instantánea de base de datos de una CDB, no puede cambiarle el nombre. La CDB recibe el nombre `RDSCDB` y no se puede cambiar.
+ Cuando restaura una instantánea de base de datos de una CDB, no puede cambiarle el nombre a las PDB. Puede modificar el nombre de la PDB mediante el comando [modify-tenant-database](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyTenantDatabase.html).
+ Para buscar bases de datos de inquilino en una instantánea, utilice el comando [describe-db-snapshot-tenant-databases](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBSnapshotTenantDatabases.html) de la CLI.
+ No puede interactuar directamente con las bases de datos de inquilino en una instantánea de CDB que utiliza la configuración de arquitectura de varios inquilinos. Si restaura la instantánea de base de datos, restaurará todas las bases de datos de inquilino. 
+ De forma implícita, RDS para Oracle copia las etiquetas de una base de datos de inquilino en la base de datos de inquilino de una instantánea de base de datos. Al restaurar una base de datos de inquilino, las etiquetas aparecen en la base de datos restaurada.
+ Si restaura una instantánea de base de datos y especifica nuevas etiquetas mediante el parámetro `--tags`, las nuevas etiquetas sobrescribirán todas las etiquetas existentes.
+ Si toma una instantánea de base de datos de una instancia de CDB que tiene etiquetas y especifica `--copy-tags-to-snapshot`, RDS para Oracle copiará las etiquetas de las bases de datos de inquilino en las bases de datos de inquilino de la instantánea.

Para obtener más información, consulte [Consideraciones sobre Oracle Database](USER_RestoreFromSnapshot.md#USER_RestoreFromSnapshot.Oracle).

## Copia de seguridad y restauración de una CDB mediante el RMAN
<a name="br-cdb.rman"></a>

Para obtener información sobre las copias de seguridad y la restauración de una base de datos de inquilino individual o CDB mediante el RMAN, consulte [Realización de tareas RMAN comunes para instancias de base de datos de Oracle](Appendix.Oracle.CommonDBATasks.RMAN.md).

# Conversión de una base de datos no CDB de RDS para Oracle en una CDB
<a name="oracle-cdb-converting"></a>

Puede cambiar la arquitectura de una base de datos Oracle de la arquitectura no CDB a la arquitectura multitenencia de Oracle, también conocida como *arquitectura CDB*, con el comando `modify-db-instance`. En la mayoría de los casos, esta técnica es preferible a crear un nuevo CDB e importar datos. La operación de conversión provoca un tiempo de inactividad.

Al actualizar la versión del motor de base de datos, no puede cambiar la arquitectura de la base de datos en la misma operación. Por lo tanto, para actualizar una base de datos de Oracle Database 19c que no sea CDB a una CDB de Oracle Database 21c, primero debe convertir la no CDB a una CDB en un paso; luego, deberá actualizar la CDB de 19c a una CDB de 21c en otro paso distinto.

La operación de conversión de no CDB tiene los siguientes requisitos:
+ Debe especificar `oracle-ee-cdb` o `oracle-se2-cdb` para el tipo de motor de base de datos. Estos son los únicos valores compatibles.
+ Su motor de base de datos debe utilizar Oracle Database 19c con una actualización de la versión (RU) de abril de 2021 o posterior.

La operación tiene las siguientes limitaciones:
+ No se puede convertir de una CDB a una no CDB. Solo se puede convertir de una no CDB a una CDB.
+ No se puede hacer la conversión de una base de datos no CDB a una configuración de varios inquilinos en una sola llamada a `modify-db-instance`. Al convertir una base de datos no CDB a una CDB, la CDB estará en la configuración de un solo inquilino. Para convertir la configuración de un solo inquilino en una configuración de varios inquilinos, ejecute `modify-db-instance` de nuevo. Para obtener más información, consulte [Convertir la configuración de un solo inquilino a una de varios inquilinos.](oracle-single-tenant-converting.md).
+ No puede convertir una base de datos principal o de réplica que tenga activado Oracle Data Guard. Para convertir una no CDB con réplicas de lectura, elimine primero todas las réplicas de lectura.
+ No puede actualizar la versión del motor de base de datos y convertir una no CDB en una CDB en la misma operación.

Antes de convertir una instancia que no sea CDB, tenga en cuenta lo siguiente:
+ Las consideraciones para los grupos de opciones y parámetros son las mismas que para actualizar el motor de base de datos. Para obtener más información, consulte [Consideraciones de las actualizaciones de base de datos de Oracle](USER_UpgradeDBInstance.Oracle.OGPG.md).
+ Puede convertir las instancias existentes que no son de CDB y que utilizan contraseñas principales administradas en instancias de un solo inquilino en una sola operación. Las instancias de un solo inquilino heredan las contraseñas administradas.
+ Si la instancia de base de datos tiene la opción `OEMAGENT` instalada, se recomienda eliminar esta opción antes de convertir la que no es CDB. Cuando la instancia que no es CDB se haya convertido a una CDB, vuelva a instalar la opción. Para obtener más información, consulte [Oracle Management Agent para Enterprise Manager Cloud Control](Oracle.Options.OEMAgent.md).
+ Durante el proceso de conversión, RDS restablece el tamaño del registro de recuperación de cambios en línea a los 128 M predeterminados.

## Consola
<a name="oracle-cdb-converting.console"></a>

**Para convertir una base de datos no CDB en una CDB**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon RDS en [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. En la esquina superior derecha de la consola de Amazon RDS, elija la Región de AWS donde reside su instancia de base de datos.

1. En el panel de navegación, elija **Bases de datos** y, a continuación, seleccione la instancia no CDB que desee convertir en CDB. 

1. Elija **Modificar**.

1. En **Configuración de la arquitectura**, elija **Arquitectura multitenencia de Oracle**. Tras la conversión, la CDB estará en la configuración de un solo inquilino.

1. (Opcional) En **Grupo de parámetros de base de datos**, elija un nuevo grupo de parámetros para la instancia de CDB. Se aplican las mismas consideraciones de grupo de parámetros al convertir una instancia de base de datos que al actualizar una instancia de base de datos. Para obtener más información, consulte [Consideraciones relativas al grupo de parámetros](USER_UpgradeDBInstance.Oracle.OGPG.md#USER_UpgradeDBInstance.Oracle.OGPG.PG).

1. (Opcional) En **Grupo de opciones**, elija un nuevo grupo de opciones para la instancia CDB. Se aplican las mismas consideraciones de grupo de parámetros de opciones al convertir una instancia de base de datos que al actualizar una instancia de base de datos. Para obtener más información, consulte [Consideraciones relativas al grupo de opciones](USER_UpgradeDBInstance.Oracle.OGPG.md#USER_UpgradeDBInstance.Oracle.OGPG.OG).

1. (Opcional) Para **Administración de credenciales**, elija **Administradas en AWS Secrets Manager** o **Autoadministradas**. Para obtener más información, consulte [Administración de la contraseña de usuario maestro de una instancia de base de datos con Secrets Manager](rds-secrets-manager.md#rds-secrets-manager-db-instance).

1. Cuando haya realizado todos los cambios que desee, elija **Continue** y compruebe el resumen de las modificaciones. 

1. (Opcional) Seleccione **Apply immediately (Aplicar inmediatamente)** para aplicar los cambios inmediatamente. Si se selecciona esta opción, puede producirse un tiempo de inactividad en algunos casos. Para obtener más información, consulte [Uso de la configuración de la programación de modificaciones](USER_ModifyInstance.ApplyImmediately.md).

1. En la página de confirmación, revise los cambios. Si son correctos, elija **Modificar la instancia de base de datos**.

   O bien, elija **Back** (Atrás) para editar los cambios o **Cancel** (Cancelar) para cancelarlos.

## AWS CLI
<a name="oracle-cdb-converting.cli"></a>

Para convertir la no CDB de la instancia de base de datos a una CDB en la configuración de un solo inquilino, establezca `--engine` en `oracle-ee-cdb` o `oracle-se2-cdb` en el comando [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) de la AWS CLI. Para obtener más información, consulte [Configuración de instancias de base de datos](USER_ModifyInstance.Settings.md).

El siguiente ejemplo convierte la instancia de base de datos denominada *my-non-cdb* y especifica un grupo de opciones y un grupo de parámetros personalizados. El comando también habilita la administración de contraseñas con Secrets Manager.

**Example**  
Para Linux, macOS o Unix:  

```
aws rds modify-db-instance \
    --db-instance-identifier my-non-cdb \
    --engine oracle-ee-cdb \
    --option-group-name custom-option-group \
    --db-parameter-group-name custom-parameter-group \
    --manage-master-user-password
```
Para Windows:  

```
aws rds modify-db-instance ^
    --db-instance-identifier my-non-cdb ^
    --engine oracle-ee-cdb ^
    --option-group-name custom-option-group ^
    --db-parameter-group-name custom-parameter-group ^
    --manage-master-user-password
```

## API de RDS
<a name="oracle-cdb-converting.api"></a>

Para convertir una no CDB en CDB, especifique `Engine` en la operación de la API de RDS [ModifyDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html).

# Convertir la configuración de un solo inquilino a una de varios inquilinos.
<a name="oracle-single-tenant-converting"></a>

Puede modificar la arquitectura de una CDB de RDS para Oracle (de configuración de un solo inquilino a varios inquilinos). Antes y después de la conversión, la CDB contiene una base de datos de un solo inquilino (PDB). Las etiquetas de la instancia de base de datos se propagan a la base de datos de inquilinos inicial creada durante la conversión.

Antes de comenzar, asegúrese de que la política de IAM tiene permiso para crear una base de datos de inquilinos. Durante la conversión, RDS para Oracle migra los siguientes metadatos a la nueva base de datos de inquilinos:
+ El nombre de usuario principal
+ La contraseña principal administrada (si CDB de origen se integra con Secrets Manager)
+ El nombre de la base de datos de 
+ El conjunto de caracteres
+ El conjunto de caracteres nacional

Antes de la conversión, vea la información anterior mediante el comando `describe-db-instances`. Después de la conversión, puede ver la información mediante el comando `describe-tenant-database`.

La conversión de un solo inquilino a varios inquilinos tiene las siguientes limitaciones:
+ No se puede volver a una configuración de un solo inquilino después de haber cambiado a configuración de varios inquilinos. La conversión es irreversible.
+ No puede convertir una base de datos principal o de réplica que tenga activado Oracle Data Guard.
+ No puede actualizar la versión del motor de base de datos y hacer la conversión a varios inquilinos en la misma operación.
+ No puede habilitar ni desactivar las contraseñas de usuario principal durante la conversión.

## Consola
<a name="oracle-cdb.configuring.converting.console"></a>

**Para convertir una CDB de un solo inquilino a una de varios inquilinos**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon RDS en [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. En la esquina superior derecha de la consola de Amazon RDS, elija la Región de AWS donde reside su instancia de base de datos.

1. En el panel de navegación, elija **Bases de datos** y, a continuación, seleccione la instancia no CDB que desee convertir en CDB. 

1. Elija **Modificar**.

1. En **Configuración de la arquitectura**, elija **Arquitectura multitenencia de Oracle**.

1. En **Configuración de la arquitectura**, seleccione **Configuración multitenencia**.

1. (Opcional) En **Grupo de parámetros de base de datos**, elija un nuevo grupo de parámetros para la instancia de CDB. Se aplican las mismas consideraciones de grupo de parámetros al convertir una instancia de base de datos que al actualizar una instancia de base de datos.

1. (Opcional) En **Grupo de opciones**, elija un nuevo grupo de opciones para la instancia CDB. Se aplican las mismas consideraciones de grupo de parámetros de opciones al convertir una instancia de base de datos que al actualizar una instancia de base de datos.

1. Cuando haya realizado todos los cambios que desee, elija **Continue** y compruebe el resumen de las modificaciones. 

1. Seleccione **Apply immediately (Aplicar inmediatamente)**. Esta opción es necesaria cuando se cambia a una configuración de varios inquilinos. Tenga en cuenta que esta opción puede generar tiempo de inactividad en algunos casos.

1. En la página de confirmación, revise los cambios. Si son correctos, elija **Modificar la instancia de base de datos**.

   O bien, elija **Back** (Atrás) para editar los cambios o **Cancel** (Cancelar) para cancelarlos.

## AWS CLI
<a name="oracle-cdb.configuring.converting.cli"></a>

Para convertir una CDB de un solo inquilino a una de varios inquilinos, especifique `--multi-tenant` en el comando [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) de la AWS CLI.

El siguiente ejemplo convierte la instancia de base de datos denominada `my-st-cdb` de la configuración de un solo inquilino a la de varios inquilinos. La opción `--apply-immediately` es obligatoria.

**Example**  
Para Linux, macOS o Unix:  

```
aws rds modify-db-instance --region us-east-1\
    --db-instance-identifier my-st-cdb \
    --multi-tenant \
    --apply-immediately
```
Para Windows:  

```
aws rds modify-db-instance --region us-east-1 ^
    --db-instance-identifier my-st-cdb ^
    --multi-tenant ^
    --apply-immediately
```
El resultado es similar al siguiente.  

```
{
    "DBInstance": {
        "DBInstanceIdentifier": "my-st-cdb",
        "DBInstanceClass": "db.r5.large",
        "MultiTenant": false,
        "Engine": "oracle-ee-cdb",
        "DBResourceId": "db-AB1CDE2FGHIJK34LMNOPRLXTXU",
        "DBInstanceStatus": "modifying",
        "MasterUsername": "admin",
        "DBName": "ORCL",
        ...
        "EngineVersion": "19.0.0.0.ru-2022-01.rur-2022-01.r1",
        "AutoMinorVersionUpgrade": true,
        "ReadReplicaDBInstanceIdentifiers": [],
        "LicenseModel": "bring-your-own-license",
        "OptionGroupMemberships": [
            {
                "OptionGroupName": "default:oracle-ee-cdb-19",
                "Status": "in-sync"
            }
        ],
        ...
        "PendingModifiedValues": {
            "MultiTenant": "true"
        }
    }
}
```

# Añadir una base de datos de inquilinos de RDS para Oracle a su instancia de CDB
<a name="oracle-cdb-configuring.adding.pdb"></a>

En la configuración de varios inquilinos de RDS para Oracle, una base de datos de inquilinos es una PDB. Para agregar una base de datos de inquilinos, asegúrese de que cumple los siguientes requisitos previos:
+ Su CDB tiene habilitada la configuración de varios inquilinos. Para obtener más información, consulte [Configuración de varios inquilinos de la arquitectura CDB](Oracle.Concepts.CDBs.md#multi-tenant-configuration).
+ Tiene los permisos de IAM necesarios para crear la base de datos de inquilinos.

Puede añadir una base de datos de inquilinos mediante la Consola de administración de AWS, la AWS CLI o la API de RDS. No puede agregar varias bases de datos de inquilinos en una sola operación: debe agregarlas de una en una. Si la CDB tiene habilitada la retención de copias de seguridad, Amazon RDS realiza una copia de seguridad de la instancia de base de datos antes y después de añadir una nueva base de datos de inquilinos. Si la CDB tiene réplicas de lectura, solo puede añadir una base de datos de inquilinos a la instancia de DB principal; Amazon RDS crea automáticamente la base de datos de inquilinos en las réplicas. El estado de la replicación también se valida, lo que garantiza que todas las réplicas estén disponibles y que el retraso de la replicación sea inferior a 5 minutos antes de que se cree el inquilino.

## Consola
<a name="oracle-cdb-configuring.adding.pdb.console"></a>

**Para añadir una base de datos de inquilinos a su instancia de base de datos**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon RDS en [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. En la esquina superior derecha de la consola de Amazon RDS, elija la Región de AWS en la que desea crear la base de datos de inquilinos.

1. En el panel de navegación, elija **Databases** (Bases de datos).

1. Elija la instancia de CDB a la que desea agregar una base de datos de inquilinos. La instancia de base de datos debe usar la configuración de varios inquilinos de la arquitectura CDB. 

1. Elija **Acciones** y, a continuación, **Agregar base de datos de inquilinos**.

1. En **Configuración de la base de datos de inquilinos**, haga lo siguiente:
   + En **Nombre de la base de datos de inquilinos**, escriba el nombre de la nueva PDB.
   + En **Nombre de usuario principal de la base de datos de inquilinos**, escriba el nombre del usuario principal de la PDB.
   + Elija cualquiera de las siguientes opciones de administración de credenciales:
     + **Administrado en AWS Secrets Manager**

       En **Seleccionar la clave de cifrado**, elija una clave de KMS que cree Secrets Manager o una clave que haya creado usted. 
**nota**  
Recomendamos AWS Secrets Manager como la técnica más segura para administrar las credenciales. Se aplican cargos adicionales. AWS Secrets Manager no se admite en las instancias que utilizan réplicas de lectura. Para obtener más información, consulte [Administración de contraseñas con Amazon RDS y AWS Secrets Manager](rds-secrets-manager.md).
     + **Autoadministrado**

       Para especificar una contraseña, desactive la casilla de verificación **Generar una contraseña de forma automática** si está seleccionada. Ingrese la misma contraseña en **Contraseña principal** y elija **Confirmar contraseña principal**.
     + En **Configuración adicional**, ingrese el nombre de la PDB para **Nombre de base de datos inicial**. No puede asignar un nombre a la CDB que tenga el nombre predeterminado `RDSCDB`.
   + En **Conjunto de caracteres de base de datos de inquilinos**, seleccione un conjunto de caracteres para la PDB. El valor predeterminado es **AL32UTF8**. Puede elegir un conjunto de caracteres de PDB distinto del de la CDB. Si la instancia tiene réplicas de lectura, no se pueden crear inquilinos con un juego de caracteres personalizado. Si es necesario, puede crear sus inquilinos con un juego de caracteres personalizado antes de crear una réplica de lectura.
   + En **Conjunto de caracteres nacional de la base de datos de inquilinos**, seleccione un conjunto de caracteres para la PDB. El valor predeterminado es **AL32UTF8**. El conjunto de caracteres nacional especifica la codificación solo para las columnas que utilizan el tipo de datos `NCHAR` (`NCHAR`, `NVARCHAR2` y `NCLOB`), y no afecta a los metadatos de la base de datos.

   Para obtener más información sobre estos ajustes, consulte [Configuración de instancias de base de datos](USER_CreateDBInstance.Settings.md).

1. Seleccione **Agregar inquilino**.

## AWS CLI
<a name="oracle-cdb-configuring.adding.pdb.cli"></a>

Para añadir una base de datos de inquilinos a su CDB con la AWS CLI, use el comando [create-tenant-database](https://docs.aws.amazon.com/cli/latest/reference/rds/create-tenant-database.html) con los siguientes parámetros obligatorios:
+ `--db-instance-identifier`
+ `--tenant-db-name`
+ `--master-username`
+ `--master-user-password`

En el siguiente ejemplo, se crea una base de datos de inquilinos denominada *mypdb2* en la instancia de CDB de RDS para Oracle denominada *my-cdb-inst*. El conjunto de caracteres de la PDB es `UTF-16`.

**Example**  
Para Linux, macOS o Unix:  

```
1. aws rds create-tenant-database --region us-east-1 \
2.     --db-instance-identifier my-cdb-inst \
3.     --tenant-db-name mypdb2 \
4.     --master-username mypdb2-admin \
5.     --master-user-password mypdb2-pwd \
6.     --character-set-name UTF-16
```
Para Windows:  

```
1. aws rds create-tenant-database --region us-east-1 \
2.     --db-instance-identifier my-cdb-inst ^
3.     --tenant-db-name mypdb2 ^
4.     --master-username mypdb2-admin ^
5.     --master-user-password mypdb2-pwd ^
6.     --character-set-name UTF-16
```
El resultado tiene un aspecto similar al siguiente.  

```
...}
    "TenantDatabase" :
         {
            "DbiResourceId" : "db-abc123",
            "TenantDatabaseResourceId" : "tdb-bac567",
            "TenantDatabaseArn" : "arn:aws:rds:us-east-1:123456789012:db:my-cdb-inst:mypdb2",
            "DBInstanceIdentifier" : "my-cdb-inst",
            "TenantDBName" : "mypdb2",
            "Status" : "creating",
            "MasterUsername" : "mypdb2",
            "CharacterSetName" : "UTF-16",
            ...
        }
}...
```

# Modificación de una base de datos de inquilinos de RDS para Oracle
<a name="oracle-cdb-configuring.modifying.pdb"></a>

Solo puede modificar el nombre de la PDB y la contraseña de usuario principal en una base de datos de inquilinos de su CDB. Tenga en cuenta los siguientes requisitos y limitaciones:
+ Para modificar la configuración de una base de datos de inquilinos en su instancia de base de datos, debe haber una base de datos de inquilinos. 
+ No puede modificar múltiples bases de datos de inquilinos en una sola operación. Solo puede modificar una base de datos de inquilinos a la vez.
+ No puede cambiar el nombre de una base de datos de inquilinos a `CDB$ROOT` o `PDB$SEED`.
+ Si su instancia de DB tiene réplicas de lectura, solo pueden modificar los inquilinos de la instancia de DB principal. El estado de la replicación también se valida, lo que garantiza que las réplicas estén disponibles y que el retraso de la replicación sea inferior a 5 minutos antes de que se modifique el inquilino.

Puede modificar PDB utilizando la Consola de administración de AWS, la AWS CLI o la API de RDS.

## Consola
<a name="oracle-cdb-configuring.modifying.pdb.console"></a>

**Para modificar el nombre de la PDB o la contraseña principal de una base de datos de inquilinos**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon RDS en [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. En la esquina superior derecha de la consola de Amazon RDS, elija la Región de AWS en la que desea crear la base de datos de inquilinos.

1. En el panel de navegación, elija **Databases** (Bases de datos).

1. Elija la base de datos de inquilinos cuyo nombre de base de datos o contraseña de usuario principal desee modificar.

1. Elija **Modificar**.

1. En **Configuración de la base de datos de inquilinos**, lleve a cabo una de las siguientes acciones:
   + En **Nombre de la base de datos de inquilinos**, escriba el nuevo nombre de la nueva PDB.
   + En **Contraseña principal de la base de datos de inquilinos**, escriba una nueva contraseña.

1. Elija **Modificar inquilino**.

## AWS CLI
<a name="oracle-cdb-configuring.modifying.pdb.cli"></a>

Para modificar una base de datos de inquilinos con la AWS CLI, llame al comando [modify-tenant-database](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-tenant-database.html) con los siguientes parámetros:
+ `--db-instance-identifier` *valor de*
+ `--tenant-db-name value`
+ `[--new-tenant-db-name value]`
+ `[--master-user-password value]`

En el siguiente ejemplo, se cambia el nombre de la base de datos de inquilinos de `pdb1` a `pdb-hr` en una instancia de base de datos `my-cdb-inst`.

**Example**  
Para Linux, macOS o Unix:  

```
1. aws rds modify-tenant-database --region us-east-1 \
2.     --db-instance-identifier my-cdb-inst \
3.     --tenant-db-name pdb1 \
4.     --new-tenant-db-name pdb-hr
```
Para Windows:  

```
1. aws rds modify-tenant-database --region us-east-1 ^
2.     --db-instance-identifier my-cdb-inst ^
3.     --tenant-db-name pdb1 ^
4.     --new-tenant-db-name pdb-hr
```
El resultado de este comando debería ser similar al siguiente.   

```
{
    "TenantDatabase" : {
        "DbiResourceId" : "db-abc123",
        "TenantDatabaseResourceId" : "tdb-bac567",
        "TenantDatabaseArn" : "arn:aws:rds:us-east-1:123456789012:db:my-cdb-inst:pdb1",
        "DBInstanceIdentifier" : "my-cdb-inst",
        "TenantDBName" : "pdb1",
        "Status" : "modifying",
        "MasterUsername" : "tenant-admin-user"
        "Port" : "6555",
        "CharacterSetName" : "UTF-16",
        "MaxAllocatedStorage" : "1000",
        "ParameterGroups": [
            {
                "ParameterGroupName": "pdb1-params",
                "ParameterApplyStatus": "in-sync"
            }
        ],
        "OptionGroupMemberships": [
            {
                "OptionGroupName": "pdb1-options",
                "Status": "in-sync"
            }
        ],
        "PendingModifiedValues": {
            "TenantDBName": "pdb-hr"
        }
    }
}
```

# Eliminar una base de datos de inquilinos de RDS para Oracle de su CDB
<a name="oracle-cdb-configuring.deleting.pdb"></a>

Puede eliminar una base de datos de inquilinos (PDB) mediante la Consola de administración de AWS, la AWS CLI o la API de RDS. Tenga en cuenta los siguientes requisitos previos y limitaciones:
+ Debe haber una base de datos de inquilinos y una instancia de base de datos.
+ Para que la eliminación ocurra correctamente, debe cumplirse una de las siguientes condiciones:
  + La base de datos de inquilinos y la instancia de base de datos están disponibles.
**nota**  
Puede realizar una instantánea final, pero solo si la base de datos de inquilinos y la instancia de base de datos estaban disponibles antes de ejecutar el comando `delete-tenant-database`. Esta instantánea solo se tomará en la instancia principal si la instancia de DB ha leído réplicas.
  + Se está creando la base de datos de inquilinos.
  + La instancia de base de datos está modificando la base de datos de inquilinos.
  + Si la instancia de DB ha leído réplicas, estas restricciones se aplican a todas las réplicas.
+ No puede eliminar múltiples bases de datos de inquilinos en una sola operación.
+ No puede eliminar una base de datos de inquilino si es la única inquilina en la CDB.
+ No puede eliminar una base de datos de inquilinos de una réplica de lectura, solo puede eliminar un inquilino de la instancia de DB principal. El estado de la replicación también se valida, lo que garantiza que el retraso de la replicación sea inferior a 5 minutos antes de que se elimine el inquilino.

## Consola
<a name="oracle-cdb-configuring.deleting.pdb.console"></a>

**Para eliminar una base de datos de inquilinos**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon RDS en [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. En el panel de navegación, elija **Bases de datos** y, a continuación, elija la base de datos de inquilinos que desea eliminar.

1. En **Actions (Acciones)**, elija **Delete (Eliminar)**.

1. Para crear una instantánea de base de datos final para la instancia de base de datos, elija **Create final snapshot? (¿Crear una instantánea final?)**.

1. Si elige crear una instantánea final, introduzca el **nombre de instantánea final**.

1. En el cuadro, escriba **delete me**.

1. Elija **Eliminar**.

## AWS CLI
<a name="oracle-cdb-configuring.deleting.pdb.cli"></a>

Para eliminar una base de datos de inquilinos con la AWS CLI, llame al comando [delete-tenant-database](https://docs.aws.amazon.com/cli/latest/reference/rds/delete-tenant-database.html) con los siguientes parámetros:
+ `--db-instance-identifier value`
+ `--tenant-db-name value`
+ `[--skip-final-snapshot | --no-skip-final-snapshot]`
+ `[--final-snapshot-identifier value]`

En el siguiente ejemplo, se elimina la base de datos de inquilinos denominada *pdb-test* de la CDB denominada *my-cdb-inst*. De forma predeterminada, la operación crea una instantánea final.

**Example**  
Para Linux, macOS o Unix:  

```
1. aws rds delete-tenant-database --region us-east-1 \
2.     --db-instance-identifier my-cdb-inst \
3.     --tenant-db-name pdb-test \
4.     --final-snapshot-identifier final-snap-pdb-test
```
Para Windows:  

```
1. aws rds delete-tenant-database --region us-east-1 ^
2.     --db-instance-identifier my-cdb-inst ^
3.     --tenant-db-name pdb-test ^
4.     --final-snapshot-identifier final-snap-pdb-test
```
El resultado de este comando debería ser similar al siguiente.   

```
{
    "TenantDatabase" : {
        "DbiResourceId" : "db-abc123",
        "TenantDatabaseResourceId" : "tdb-bac456",
        "TenantDatabaseArn" : "arn:aws:rds:us-east-1:123456789012:db:my-cdb-inst:pdb-test",
        "DBInstanceIdentifier" : "my-cdb-inst",
        "TenantDBName" : "pdb-test",
        "Status" : "deleting",
        "MasterUsername" : "pdb-test-admin"
        "Port" : "6555",
        "CharacterSetName" : "UTF-16",
        "MaxAllocatedStorage" : "1000",
        "ParameterGroups": [
            {
                "ParameterGroupName": "tenant-1-params",
                "ParameterApplyStatus": "in-sync"
            }
        ],
        "OptionGroupMemberships": [
            {
                "OptionGroupName": "tenant-1-options",
                "Status": "in-sync"
            }
        ]
    }
}
```

# Ver detalles de la base de datos de inquilinos
<a name="oracle-cdb-configuring.describing.pdb"></a>

Puede ver los detalles de una base de datos de inquilinos de la misma manera que puede ver los de una base de datos CDB o no CDB.

## Consola
<a name="oracle-cdb-configuring.describing.pdb.console"></a>

**Para ver los detalles de una base de datos de inquilinos**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon RDS en [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. En la esquina superior derecha de la consola de Amazon RDS, elija la Región de AWS donde reside su instancia de base de datos.

1. En el panel de navegación, elija **Databases** (Bases de datos).  
![\[Ver los detalles de una CDB\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/cdb-list.png)

   En la imagen anterior, la base de datos de un solo inquilino (PDB) aparece como una base de datos secundaria de la instancia de base de datos.

1. Elija el nombre de una base de datos de inquilinos.  
![\[Ver los detalles de una PDB\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/pdb-details.png)

## AWS CLI
<a name="oracle-cdb-configuring.describing.pdb.cli"></a>

Para ver los detalles de sus PDB, utilice el comando [describe-tenant-databases](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-tenant-databases.html) de la AWS CLI.

En el siguiente ejemplo, se describen todas las bases de datos de inquilinos de la región especificada.

**Example**  
Para Linux, macOS o Unix:  

```
1. aws rds describe-tenant-databases --region us-east-1
```
Para Windows:  

```
1. aws rds describe-tenant-databases --region us-east-1
```
El resultado de este comando debería ser similar al siguiente.   

```
    "TenantDatabases" : [
         {
            "DBInstanceIdentifier" : "my-cdb-inst",
            "TenantDBName" : "pdb-test",
            "Status" : "available",
            "MasterUsername" : "pdb-test-admin",
            "DbiResourceId" : "db-abc123",
            "TenantDatabaseResourceId" : "tdb-bac456",
            "TenantDatabaseArn" : "arn:aws:rds:us-east-1:123456789012:db:my-cdb-inst:pdb-test",
            "CharacterSetName": "AL32UTF8",
            "NcharCharacterSetName": "AL16UTF16",
            "DeletionProtection": false,
            "PendingModifiedValues": {
                 "MasterUserPassword": "****"
            },
            "TagList": []
         },
         {

            "DBInstanceIdentifier" : "my-cdb-inst2",
            "TenantDBName" : "pdb-dev",
            "Status" : "modifying",
            "MasterUsername" : "masterrdsuser"
            "DbiResourceId" : "db-xyz789",
            "TenantDatabaseResourceId" : "tdb-ghp890",
            "TenantDatabaseArn" : "arn:aws:rds:us-east-1:123456789012:db:my-cdb-inst2:pdb-dev",
            "CharacterSetName": "AL32UTF8",
            "NcharCharacterSetName": "AL16UTF16",
            "DeletionProtection": false,
            "PendingModifiedValues": {
                 "MasterUserPassword": "****"
            },
            "TagList": []
         },
         ... other truncated data
```

En el siguiente ejemplo, se describen todas las bases de datos de inquilinos en la instancia de base de datos `my-cdb-inst` de la región especificada.

**Example**  
Para Linux, macOS o Unix:  

```
1. aws rds describe-tenant-databases --region us-east-1 \
2.     --db-instance-identifier my-cdb-inst
```
Para Windows:  

```
1. aws rds describe-tenant-databases --region us-east-1 ^
2.     --db-instance-identifier my-cdb-inst
```
El resultado de este comando debería ser similar al siguiente.   

```
{
    "TenantDatabase": {
        "TenantDatabaseCreateTime": "2023-10-19T23:55:30.046Z",
        "DBInstanceIdentifier": "my-cdb-inst",
        "TenantDBName": "pdb-hr",
        "Status": "creating",
        "MasterUsername": "tenant-admin-user",
        "DbiResourceId": "db-abc123",
        "TenantDatabaseResourceId": "tdb-bac567",
        "TenantDatabaseARN": "arn:aws:rds:us-west-2:579508833180:pdb-hr:tdb-abcdefghi1jklmno2p3qrst4uvw5xy6zabc7defghi8jklmn90op",
        "CharacterSetName": "AL32UTF8",
        "NcharCharacterSetName": "AL16UTF16",
        "DeletionProtection": false,
        "PendingModifiedValues": {
            "MasterUserPassword": "****"
        },
        "TagList": [
            {
                "Key": "TEST",
                "Value": "testValue"
            }
        ]
    }
}
```

En el siguiente ejemplo, se describen las bases de datos de inquilinos `pdb1` en la instancia de base de datos `my-cdb-inst` de la región Este de EE. UU. (Norte de Virginia).

**Example**  
Para Linux, macOS o Unix:  

```
1. aws rds describe-tenant-databases --region us-east-1 \
2. --db-instance-identifier my-cdb-inst \
3. --tenant-db-name pdb1
```
Para Windows:  

```
1. aws rds describe-tenant-databases --region us-east-1 ^
2. --db-instance-identifier my-cdb-inst ^
3. --tenant-db-name pdb1
```
El resultado de este comando debería ser similar al siguiente.   

```
{
    "TenantDatabases" : [
        {
            "DbiResourceId" : "db-abc123",
            "TenantDatabaseResourceId" : "tdb-bac567",
            "TenantDatabaseArn" : "arn:aws:rds:us-east-1:123456789012:db:my-cdb-inst:pdb1"
            "DBInstanceIdentifier" : "my-cdb-inst",
            "TenantDBName" : "pdb1",
            "Status" : "ACTIVE",
            "MasterUsername" : "masterawsuser"
            "Port" : "1234",
            "CharacterSetName": "UTF-8",
            "ParameterGroups": [
                {
                    "ParameterGroupName": "tenant-custom-pg",
                    "ParameterApplyStatus": "in-sync"
                }
            ],
            {
            "OptionGroupMemberships": [
                {
                    "OptionGroupName": "tenant-custom-og",
                    "Status": "in-sync"
                }
            ]
         }
    ]
}
```

# Actualización de la CDB
<a name="Oracle.Concepts.single-tenant.upgrades"></a>

Puede actualizar una instancia CDB a otra versión de Oracle Database. Por ejemplo, puede actualizar una CDB de Oracle Database 19c a una CDB de Oracle Database 21c. No puede cambiar la arquitectura de la base de datos durante una actualización. Por lo tanto, no puede actualizar una no CDB a una CDB ni actualizar una CDB a una no CDB.

El procedimiento para actualizar una CDB a una CDB es el mismo que para actualizar una no CDB a una CDB. Para obtener más información, consulte [Actualización del motor de base de datos de RDS para Oracle](USER_UpgradeDBInstance.Oracle.md).

# Administración de la instancia de base de datos de RDS para Oracle
<a name="Appendix.Oracle.CommonDBATasks"></a>

A continuación, se presentan las tareas de administración comunes que se llevan a cabo con una instancia de base de datos de RDS para Oracle. Algunas tareas son las mismas para todas las instancias de base de datos de RDS. Otras tareas son específicas de RDS para Oracle.

Las siguientes tareas son comunes para todas las bases de datos de RDS, pero Oracle Database tiene algunos elementos particulares. Por ejemplo, se conecta a una base de datos de Oracle con los clientes de Oracle SQL\$1Plus y SQL Developer.


****  

| Área de la tarea | Documentación relacionada | 
| --- | --- | 
|  **Clases de instancias, almacenamiento y PIOPS** Si está creando una instancia de producción, aprenda cómo funcionan las clases de instancia, los tipos de almacenamiento y las IOPS provisionadas en Amazon RDS.   |  [Clases de instancias de base de datos de RDS para Oracle](Oracle.Concepts.InstanceClasses.md) [Tipos de almacenamiento de Amazon RDS](CHAP_Storage.md#Concepts.Storage)  | 
|  **Implementaciones Multi-AZ** Una instancia de base de datos de producción debe usar implementaciones Multi-AZ. Las implementaciones Multi-AZ proporcionan unos niveles superiores de disponibilidad, durabilidad de los datos y tolerancia a errores para las instancias de base de datos.   |  [Configuración y administración de una implementación multi-AZ para Amazon RDS](Concepts.MultiAZ.md)  | 
|  **Amazon VPC** Si su cuenta de AWS tiene una nube privada virtual (VPC) predeterminada, la instancia de base de datos se creará automáticamente dentro de la VPC predeterminada. Si su cuenta no tiene una VPC predeterminada y desea que la instancia de base de datos esté en una VPC, cree los grupos de VPC y de subredes antes de crear la instancia.   |  [Uso de una instancia de base de datos en una VPC](USER_VPC.WorkingWithRDSInstanceinaVPC.md)  | 
|  **Grupos de seguridad** De forma predeterminada, las instancias de base de datos utilizan un firewall que impide el acceso. Asegúrese de crear un grupo de seguridad con las direcciones IP y la configuración de red correctas para acceder a la instancia de base de datos.  |  [Control de acceso con grupos de seguridad](Overview.RDSSecurityGroups.md)  | 
|  **Grupos de parámetros** Si su instancia de base de datos va a requerir unos parámetros de base de datos concretos, cree un grupo de parámetros antes de crear la instancia de base de datos.   |  [Grupos de parámetros para Amazon RDS](USER_WorkingWithParamGroups.md)  | 
|  **Grupos de opciones** Si la instancia de base de datos requiere opciones de base de datos concretas, cree un grupo de opciones antes de crear la instancia de base de datos.   |  [Adición de opciones a instancias de base de datos de Oracle](Appendix.Oracle.Options.md)  | 
|  **Conexión a la instancia de base de datos** Después de crear un grupo de seguridad y de asociarlo a una instancia de base de datos, puede conectarse a la instancia de base de datos usando cualquier aplicación cliente estándar de SQL, como Oracle SQL Plus.   |  [Conexión a una instancia de base de datos de Oracle](USER_ConnectToOracleInstance.md)  | 
|  **Copia de seguridad y restauración** Puede configurar su instancia de base de datos para que realice backups automatizados o tomar snapshots manuales y restaurar después las instancias a partir de los backups o los snapshots.   |  [Copia de seguridad, restauración y exportación de datos](CHAP_CommonTasks.BackupRestore.md)  | 
|  **Supervisión** Puede monitorizar una base de datos Oracle utilizando las métricas, los eventos y la monitorización avanzada de CloudWatch Amazon RDS.   |  [Consulta de métricas en la consola de Amazon RDS](USER_Monitoring.md) [Consulta de eventos de Amazon RDS](USER_ListEvents.md)  | 
|  **Archivos de registro** Puede obtener acceso a los archivos de log de la instancia de base de datos Oracle.   |  [Supervisión de archivos de registro de Amazon RDS](USER_LogAccess.md)  | 

A continuación, puede encontrar una descripción para implementaciones específicas de Amazon RDS de tareas comunes de DBA para RDS Oracle. Para ofrecer una experiencia de servicio administrado, Amazon RDS no proporciona acceso mediante shell a las instancias de base de datos. Además, RDS restringe el acceso a ciertos procedimientos y tablas del sistema que requieren privilegios avanzados. En muchas de las tareas, ejecute el paquete de `rdsadmin` , que es una herramienta específica de Amazon RDS que permite administrar la base de datos.

A continuación se indican las tareas comunes de DBA para las instancias de bases de datos que ejecutan Oracle:
+ [Tareas del sistema](Appendix.Oracle.CommonDBATasks.System.md)  
****    
<a name="dba-tasks-oracle-system-reference"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.html)

 
+ [Tareas de bases de datos](Appendix.Oracle.CommonDBATasks.Database.md)  
****    
<a name="dba-tasks-oracle-database-reference"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.html)

 
+ [Tareas relacionadas con los registros](Appendix.Oracle.CommonDBATasks.Log.md)  
****    
<a name="dba-tasks-oracle-log-reference"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.html)

 
+ [Tareas de RMAN](Appendix.Oracle.CommonDBATasks.RMAN.md)  
****    
<a name="dba-tasks-oracle-rman-reference"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.html)

 
+ [Tareas del programador de Oracle](Appendix.Oracle.CommonDBATasks.Scheduler.md)  
****    
<a name="dba-tasks-oracle-scheduler-reference"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.html)

 
+ [Diagnóstico de problemas](Appendix.Oracle.CommonDBATasks.Diagnostics.md)  
****    
<a name="dba-tasks-oracle-diagnostic-reference"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.html)

 
+ [Otras tareas](Appendix.Oracle.CommonDBATasks.Misc.md)  
****    
<a name="dba-tasks-oracle-misc-reference"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.html)

 

También puede utilizar procedimientos de Amazon RDS para integración de Amazon S3 con Oracle y para ejecutar tareas de base de datos de OEM Management Agent. Para obtener más información, consulte [Integración de Amazon S3](oracle-s3-integration.md) y [Realización de tareas de base de datos con Management Agent](Oracle.Options.OEMAgent.md#Oracle.Options.OEMAgent.DBTasks).

# Realización de tareas comunes del sistema para instancias de base de datos de Oracle
<a name="Appendix.Oracle.CommonDBATasks.System"></a>

A continuación, puede encontrar cómo realizar ciertas tareas comunes de DBA relacionadas con el sistema en las instancias de base de datos de Amazon RDS que ejecutan Oracle. Para ofrecer una experiencia de servicio administrado, Amazon RDS no proporciona acceso mediante shell a las instancias de bases de datos y restringe el acceso a ciertos procedimientos y tablas del sistema que requieren privilegios avanzados. 

**Topics**
+ [Desconexión de una sesión](Appendix.Oracle.CommonDBATasks.DisconnectingSession.md)
+ [Terminación de una sesión](Appendix.Oracle.CommonDBATasks.KillingSession.md)
+ [Cancelación de una instrucción SQL en una sesión](Appendix.Oracle.CommonDBATasks.CancellingSQL.md)
+ [Activación y desactivación de sesiones restringidas](Appendix.Oracle.CommonDBATasks.RestrictedSession.md)
+ [Vaciado del grupo compartido](Appendix.Oracle.CommonDBATasks.FlushingSharedPool.md)
+ [Concesión de privilegios SELECT o EXECUTE para objetos SYS](Appendix.Oracle.CommonDBATasks.TransferPrivileges.md)
+ [Revocación de privilegios SELECT o EXECUTE para objetos SYS](Appendix.Oracle.CommonDBATasks.RevokePrivileges.md)
+ [Administración de vistas RDS\$1X\$1 para instancias de bases de datos de Oracle](Appendix.Oracle.CommonDBATasks.X-dollar.md)
+ [Concesión de privilegios a usuarios no maestros](Appendix.Oracle.CommonDBATasks.PermissionsNonMasters.md)
+ [Creación de funciones personalizadas para comprobar contraseñas](Appendix.Oracle.CommonDBATasks.CustomPassword.md)
+ [Configuración de un servidor DNS personalizado](#Appendix.Oracle.CommonDBATasks.CustomDNS)
+ [Establecer y anular eventos de diagnóstico del sistema](Appendix.Oracle.CommonDBATasks.SystemEvents.md)

# Desconexión de una sesión
<a name="Appendix.Oracle.CommonDBATasks.DisconnectingSession"></a>

Utilice el procedimiento de Amazon RDS para desconectar la sesión actual mediante la finalización del proceso del servidor dedicad `rdsadmin.rdsadmin_util.disconnect`. El procedimiento `disconnect` tiene los siguientes parámetros. 


****  

| Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | 
|  `sid`  |  número  |  —  |  Sí  |  El identificador de sesión.  | 
|  `serial`  |  número  |  —  |  Sí  |  El número de serie de la sesión.  | 
|  `method`  |  varchar  |  'IMMEDIATE'  |  No  |  Los valores válidos son `'IMMEDIATE'` o `'POST_TRANSACTION'`.  | 

En el siguiente ejemplo se desconecta una sesión.

```
begin
    rdsadmin.rdsadmin_util.disconnect(
        sid    => sid, 
        serial => serial_number);
end;
/
```

Para obtener el identificador de la sesión y el número serie de la sesión, consulte la vista `V$SESSION`. En el siguiente ejemplo se obtienen todas las sesiones del usuario `AWSUSER`.

```
SELECT SID, SERIAL#, STATUS FROM V$SESSION WHERE USERNAME = 'AWSUSER';
```

La base de datos debe estar abierta para utilizar este método. Para obtener más información acerca de cómo desconectar una sesión, consulte [ALTER SYSTEM](http://docs.oracle.com/cd/E11882_01/server.112/e41084/statements_2014.htm#SQLRF53166) en la documentación de Oracle. 

# Terminación de una sesión
<a name="Appendix.Oracle.CommonDBATasks.KillingSession"></a>

Para terminar una sesión, utilice el procedimiento de Amazon RDS `rdsadmin.rdsadmin_util.kill`. El procedimiento `kill` tiene los siguientes parámetros.


****  

| Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | 
|  `sid`  |  número  |  —  |  Sí  |  El identificador de sesión.  | 
|  `serial`  |  número  |  —  |  Sí  |  El número de serie de la sesión.  | 
|  `method`  |  varchar  |  null  |  No  |  Los valores válidos son `'IMMEDIATE'` o `'PROCESS'`. Si especifica `IMMEDIATE`, tiene el mismo efecto que ejecutar la siguiente instrucción: <pre>ALTER SYSTEM KILL SESSION 'sid,serial#' IMMEDIATE</pre> Si especifica `PROCESS`, termina los procesos asociados a una sesión. Solo debe especificar `PROCESS` si no consigue terminar la sesión mediante el uso de `IMMEDIATE`.  | 

Para obtener el identificador de la sesión y el número serie de la sesión, consulte la vista `V$SESSION`. En el siguiente ejemplo se obtienen todas las sesiones del usuario *AWSUSER*..

```
SELECT SID, SERIAL#, STATUS FROM V$SESSION WHERE USERNAME = 'AWSUSER';
```

En el ejemplo siguiente se termina una sesión.

```
BEGIN
    rdsadmin.rdsadmin_util.kill(
        sid    => sid, 
        serial => serial_number,
        method => 'IMMEDIATE');
END;
/
```

En el siguiente ejemplo, se terminan los procesos asociados a una sesión.

```
BEGIN
    rdsadmin.rdsadmin_util.kill(
        sid    => sid, 
        serial => serial_number,
        method => 'PROCESS');
END;
/
```

# Cancelación de una instrucción SQL en una sesión
<a name="Appendix.Oracle.CommonDBATasks.CancellingSQL"></a>

Utilice el procedimiento de Amazon RDS para cancelar una instrucción SQL en una sesió `rdsadmin.rdsadmin_util.cancel`.

**nota**  
Este procedimiento se admite para Oracle Database 19c (19.0.0) y todas las versiones principales y secundarias posteriores de RDS for Oracle.

El procedimiento `cancel` tiene los siguientes parámetros. 


****  

| Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | 
|  `sid`  |  número  |  —  |  Sí  |  El identificador de sesión.  | 
|  `serial`  |  número  |  —  |  Sí  |  El número de serie de la sesión.  | 
|  `sql_id`  |  varchar2  |  null  |  No  |  El identificador SQL de la instrucción SQL.   | 

En el siguiente ejemplo se cancela una instrucción SQL en una sesión.

```
begin
    rdsadmin.rdsadmin_util.cancel(
        sid    => sid, 
        serial => serial_number,
        sql_id => sql_id);
end;
/
```

Para obtener el identificador de la sesión, el número de serie de la sesión y el identificador SQL de una instrucción SQL, consulte la vista `V$SESSION`. En el siguiente ejemplo se obtienen todas las sesiones e identificadores SQL del usuario `AWSUSER`.

```
select SID, SERIAL#, SQL_ID, STATUS from V$SESSION where USERNAME = 'AWSUSER';
```

# Activación y desactivación de sesiones restringidas
<a name="Appendix.Oracle.CommonDBATasks.RestrictedSession"></a>

Utilice el procedimiento de Amazon RDS para activar y desactivar las sesiones restringida `rdsadmin.rdsadmin_util.restricted_session`. El procedimiento `restricted_session` tiene los siguientes parámetros. 


****  

| Nombre del parámetro | Tipo de datos | Valor predeterminado | Sí | Descripción | 
| --- | --- | --- | --- | --- | 
|  `p_enable`  |  booleano  |  true  |  No  |  Establézcalo en `true` para activar las sesiones restringidas y en `false` para desactivarlas.   | 

En el siguiente ejemplo se muestra cómo activar y desactivar las sesiones restringidas. 

```
/* Verify that the database is currently unrestricted. */

SELECT LOGINS FROM V$INSTANCE;
 
LOGINS
-------
ALLOWED

/* Enable restricted sessions */

EXEC rdsadmin.rdsadmin_util.restricted_session(p_enable => true);
 

/* Verify that the database is now restricted. */

SELECT LOGINS FROM V$INSTANCE;
 
LOGINS
----------
RESTRICTED
 

/* Disable restricted sessions */

EXEC rdsadmin.rdsadmin_util.restricted_session(p_enable => false);
 

/* Verify that the database is now unrestricted again. */

SELECT LOGINS FROM V$INSTANCE;
 
LOGINS
-------
ALLOWED
```

# Vaciado del grupo compartido
<a name="Appendix.Oracle.CommonDBATasks.FlushingSharedPool"></a>

Utilice el procedimiento de Amazon RDS para vaciar el grupo compartid `rdsadmin.rdsadmin_util.flush_shared_pool`. El procedimiento `flush_shared_pool` no tiene ningún parámetro. 

En el siguiente ejemplo se vacía el grupo compartido.

```
EXEC rdsadmin.rdsadmin_util.flush_shared_pool;
```

## Vaciado de la caché de búfer
<a name="Appendix.Oracle.CommonDBATasks.FlushingBufferCache"></a>

Utilice el procedimiento de Amazon RDS para vaciar la caché del búfe `rdsadmin.rdsadmin_util.flush_buffer_cache`. El procedimiento `flush_buffer_cache` no tiene ningún parámetro. 

En el siguiente ejemplo se vacía la caché de búfer.

```
EXEC rdsadmin.rdsadmin_util.flush_buffer_cache;
```

## Vaciado de la caché flash inteligente de la base de datos
<a name="Appendix.Oracle.CommonDBATasks.flushing-shared-pool"></a>

Para vaciar la caché flash inteligente de la base de datos, utilice el procedimiento `rdsadmin.rdsadmin_util.flush_flash_cache` de Amazon RDS. El procedimiento `flush_flash_cache` no tiene ningún parámetro. En el siguiente ejemplo se vacía la caché flash inteligente de la base de datos.

```
EXEC rdsadmin.rdsadmin_util.flush_flash_cache;
```

Para obtener más información acerca del uso de la caché flash inteligente de la base de datos con RDS para Oracle, consulte [Almacenamiento de datos temporales en un almacén de instancias de RDS para Oracle](CHAP_Oracle.advanced-features.instance-store.md).

# Concesión de privilegios SELECT o EXECUTE para objetos SYS
<a name="Appendix.Oracle.CommonDBATasks.TransferPrivileges"></a>

Por lo general, para transferir privilegios se utilizan los roles, que pueden contener muchos objetos. Utilice el procedimiento de Amazon RDS para conceder privilegios a un solo objet `rdsadmin.rdsadmin_util.grant_sys_object`. El procedimiento solo concede los privilegios que ya haya obtenido el usuario maestro mediante un rol o una concesión directa. 

El procedimiento `grant_sys_object` tiene los siguientes parámetros. 

**importante**  
Para todos los valores de parámetros, utilice mayúsculas a no ser que haya creado el usuario con un identificador que distingue entre mayúsculas y minúsculas. Por ejemplo, si ejecuta `CREATE USER myuser` o `CREATE USER MYUSER`, el diccionario de datos almacena `MYUSER`. Sin embargo, si utiliza comillas dobles en `CREATE USER "MyUser"`, el diccionario de datos almacena `MyUser`.


****  

| Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | 
|  `p_obj_name`  |  varchar2  |  —  |  Sí  |  El nombre del objeto para el que se van a conceder privilegios. El objeto puede ser un directorio, una función, un paquete, un procedimiento, una secuencia, una tabla o una vista. Los nombres de los objetos deben escribirse exactamente como aparecen en `DBA_OBJECTS`. La mayoría de los objetos del sistema están definidos en mayúsculas, por lo que recomendamos que lo intente como primera opción.   | 
|  `p_grantee`  |  varchar2  |  —  |  Sí  |  El nombre del objeto al que se van a conceder privilegios. El objeto puede ser un esquema o un rol.   | 
|  `p_privilege`  |  varchar2  |  null  |  Sí  |  —  | 
|  `p_grant_option`  |  booleano  |  false  |  No  |  Establézcalo en `true` para usar la opción de concesión (WITH GRANT OPTION).  | 

En el siguiente ejemplo se le concede el privilegio SELECT sobre el objeto `V_$SESSION` al usuario `USER1`.

```
begin
    rdsadmin.rdsadmin_util.grant_sys_object(
        p_obj_name  => 'V_$SESSION',
        p_grantee   => 'USER1',
        p_privilege => 'SELECT');
end;
/
```

En el siguiente ejemplo se le concede el privilegio SELECT sobre el objeto `V_$SESSION` al usuario `USER1` con la opción de concesión.

```
begin
    rdsadmin.rdsadmin_util.grant_sys_object(
        p_obj_name     => 'V_$SESSION',
        p_grantee      => 'USER1',
        p_privilege    => 'SELECT',
        p_grant_option => true);
end;
/
```

Para poder conceder privilegios sobre un objeto, una cuenta debe haber obtenido los privilegios directamente con la opción de concesión o a través de un rol concedido utilizando `with admin option`. En el caso más común, es posible que desee conceder `SELECT` para una vista de DBA que se haya concedido al rol `SELECT_CATALOG_ROLE`. Si a su usuario no se le ha concedido ese rol directamente utilizando `with admin option`, no podrá transferir el privilegio. Si tiene el privilegio de DBA, puede conceder el rol directamente a otro usuario. 

En el siguiente ejemplo se conceden `SELECT_CATALOG_ROLE` y `EXECUTE_CATALOG_ROLE` a `USER1`. Dado que se utiliza `with admin option`, `USER1` ahora puede conceder acceso a los objetos SYS que se hayan concedido a `SELECT_CATALOG_ROLE`. 

```
GRANT SELECT_CATALOG_ROLE TO USER1 WITH ADMIN OPTION; 
GRANT EXECUTE_CATALOG_ROLE to USER1 WITH ADMIN OPTION;
```

No es necesario volver a conceder los objetos que ya se han concedido a `PUBLIC`. Si utiliza el procedimiento `grant_sys_object` para volver a conceder acceso, la llamada al procedimiento se realiza correctamente. 

# Revocación de privilegios SELECT o EXECUTE para objetos SYS
<a name="Appendix.Oracle.CommonDBATasks.RevokePrivileges"></a>

Utilice el procedimiento de Amazon RDS para revocar privilegios a un solo objet `rdsadmin.rdsadmin_util.revoke_sys_object`. El procedimiento solo revoca los privilegios que ya haya obtenido la cuenta maestra mediante un rol o una concesión directa. 

El procedimiento `revoke_sys_object` tiene los siguientes parámetros. 


****  

| Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | 
|  `p_obj_name`  |  varchar2  |  —  |  Sí  |  El nombre del objeto para el que se van a revocar privilegios. El objeto puede ser un directorio, una función, un paquete, un procedimiento, una secuencia, una tabla o una vista. Los nombres de los objetos deben escribirse exactamente como aparecen en `DBA_OBJECTS`. La mayoría de los objetos del sistema están definidos en mayúsculas, por lo que recomendamos que pruebe así primero.   | 
|  `p_revokee`  |  varchar2  |  —  |  Sí  |  El nombre del objeto para el que se van a revocar privilegios. El objeto puede ser un esquema o un rol.   | 
|  `p_privilege`  |  varchar2  |  null  |  Sí  |  —  | 

En el siguiente ejemplo se le revoca el privilegio SELECT sobre el objeto `V_$SESSION` desde un usuario `USER1`.

```
begin
    rdsadmin.rdsadmin_util.revoke_sys_object(
        p_obj_name  => 'V_$SESSION',
        p_revokee   => 'USER1',
        p_privilege => 'SELECT');
end;
/
```

# Administración de vistas RDS\$1X\$1 para instancias de bases de datos de Oracle
<a name="Appendix.Oracle.CommonDBATasks.X-dollar"></a>

Puede que necesite acceder a las tablas fijas `SYS.X$`, a las que solo se puede acceder mediante `SYS`. Para crear vistas `SYS.RDS_X$` en las tablas `X$` aptas, utilice los procedimientos del paquete `rdsadmin.rdsadmin_util`. A su usuario maestro se le concede automáticamente el privilegio `SELECT … WITH GRANT OPTION` sobre las vistas `RDS_X$`. 

Los procedimientos `rdsadmin.rdsadmin_util` están disponibles en los siguientes casos:
+ Instancias de bases de datos existentes que nunca se han actualizado y utilizan las siguientes versiones:
  + `21.0.0.0.ru-2023-10.rur-2023-10.r1` y versiones de 21c posteriores
  + `19.0.0.0.ru-2023-10.rur-2023-10.r1` y versiones de 19c posteriores
+ Cualquier instancia de base de datos nueva que cree
+ Cualquier instancia de base de datos existente que haya actualizado

**importante**  
Internamente, el paquete `rdsadmin.rdsadmin_util` crea vistas en las tablas `X$`. Las tablas `X$` son objetos internos del sistema que no se describen en la documentación de Oracle Database. Se recomienda probar vistas específicas en la base de datos que utilice fuera de producción y que solo cree vistas en la base de datos de producción sirviéndose de la orientación de Oracle Support.

## Enumeración de tablas fijas X\$1 aptas para su uso en las vistas RDS\$1X\$1
<a name="Appendix.Oracle.CommonDBATasks.list-allowed-X-dollar"></a>

Para enumerar tablas X\$1 aptas para su uso en vistas `RDS_X$`, utilice el procedimiento de RDS `rdsadmin.rdsadmin_util.list_allowed_sys_x$_views`. Este procedimiento no acepta parámetros. En las siguientes instrucciones se enumeran todas las tablas `X$` aptas (se incluye un ejemplo de resultados).

```
SQL> SET SERVEROUTPUT ON
SQL> SELECT * FROM TABLE(rdsadmin.rdsadmin_util.list_allowed_sys_x$_views);

'X$BH'
'X$K2GTE'
'X$KCBWBPD'
'X$KCBWDS'
'X$KGLLK'
'X$KGLOB'
'X$KGLPN'
'X$KSLHOT'
'X$KSMSP'
'X$KSPPCV'
'X$KSPPI'
'X$KSPPSV'
'X$KSQEQ'
'X$KSQRS'
'X$KTUXE'
'X$KQRFP'
```

La lista de tablas `X$` aptas puede cambiar con el tiempo. Para asegurarse de que su lista de tablas fijas `X$` aptas esté actualizada, vuelva a ejecutar `list_allowed_sys_x$_views` periódicamente.

## Creación de vistas SYS.RDS\$1X\$1
<a name="Appendix.Oracle.CommonDBATasks.create-X-dollar"></a>

Para crear una vista `RDS_X$` en una tabla `X$` apta, utilice el procedimiento de RDS `rdsadmin.rdsadmin_util.create_sys_x$_view`. Solo puede crear vistas para las tablas que figuren en la salida de `rdsadmin.rdsadmin_util.list_allowed_sys_x$_views`. El procedimiento `create_sys_x$_view` acepta los siguientes parámetros.


****  

| Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | 
|  `p_x$_tbl`  |  varchar2  |  Nulo  |  Sí  |  Un nombre de tabla `X$` válido. El valor debe ser una de las tablas `X$` notificadas por `list_allowed_sys_x$_views`.  | 
|  `p_force_creation`  |  Booleano  | FALSE |  No  |  Un valor que indica si se debe forzar la creación de una vista `RDS_X$` que ya exista para una tabla `X$`. De forma predeterminada, RDS no creará una vista si ya existe. Para forzar la creación, defina este parámetro como `TRUE`.  | 

En el siguiente ejemplo se crea una vista `SYS.RDS_X$KGLOB` de la tabla `X$KGLOB`. El formato del nombre de la vista es `RDS_X$tablename`.

```
SQL> SET SERVEROUTPUT ON
SQL> EXEC rdsadmin.rdsadmin_util.create_sys_x$_view('X$KGLOB');

PL/SQL procedure successfully completed.
```

La siguiente consulta del diccionario de datos muestra la vista `SYS.RDS_X$KGLOB` y su estado. A su usuario maestro se le concede automáticamente el privilegio `SELECT ... WITH GRANT OPTION` sobre esta vista.

```
SQL> SET SERVEROUTPUT ON
SQL> COL OWNER FORMAT A30 
SQL> COL OBJECT_NAME FORMAT A30
SQL> COL STATUS FORMAT A30
SQL> SET LINESIZE 200
SQL> SELECT OWNER, OBJECT_NAME, STATUS 
FROM DBA_OBJECTS 
WHERE OWNER = 'SYS' AND OBJECT_NAME = 'RDS_X$KGLOB';

OWNER                          OBJECT_NAME                    STATUS
------------------------------ ------------------------------ ------------------------------
SYS                            RDS_X$KGLOB                    VALID
```

**importante**  
No se garantiza que las tablas `X$` permanezcan iguales antes y después de una actualización. RDS para Oracle elimina y vuelve a crear las vistas `RDS_X$` de las tablas `X$` durante una actualización del motor. A continuación, concede el privilegio `SELECT ... WITH GRANT OPTION` al usuario maestro. Tras una actualización, conceda los privilegios necesarios a los usuarios de la base de datos en las vistas `RDS_X$` correspondientes.

## Enumeración de vistas SYS.RDS\$1X\$1
<a name="Appendix.Oracle.CommonDBATasks.list-created-X-dollar"></a>

Para enumerar las vistas `RDS_X$` existentes, utilice el procedimiento de RDS `rdsadmin.rdsadmin_util.list_created_sys_x$_views`. El procedimiento muestra solo las vistas que se crearon mediante el procedimiento `create_sys_x$_view`. En el siguiente ejemplo, se enumeran las tablas `X$` que tienen las vistas `RDS_X$` correspondientes (se incluye un ejemplo de salida).

```
SQL> SET SERVEROUTPUT ON
SQL> COL XD_TBL_NAME FORMAT A30
SQL> COL STATUS FORMAT A30
SQL> SET LINESIZE 200
SQL> SELECT * FROM TABLE(rdsadmin.rdsadmin_util.list_created_sys_x$_views);

XD_TBL_NAME                    STATUS
------------------------------ ------------------------------
X$BH                           VALID
X$K2GTE                        VALID
X$KCBWBPD                      VALID

3 rows selected.
```

## Eliminación de vistas RDS\$1X\$1
<a name="Appendix.Oracle.CommonDBATasks.drop-X-dollar"></a>

Para eliminar una vista `SYS.RDS_X$`, utilice el procedimiento de RDS `rdsadmin.rdsadmin_util.drop_sys_x$_view`. Solo puede eliminar vistas que figuren en la salida de `rdsadmin.rdsadmin_util.list_allowed_sys_x$_views`. El procedimiento `drop_sys_x$_view` acepta el siguiente parámetro.


****  

| Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | 
|  `p_x$_tbl`  |  varchar2  |  Nulo  |  Sí  |  Un nombre de tabla fija `X$` válido. El valor debe ser una de las tablas fijas `X$` notificadas por `list_created_sys_x$_views`.  | 

En el siguiente ejemplo se elimina una vista `RDS_X$KGLOB`, que se creó en la tabla `X$KGLOB`.

```
SQL> SET SERVEROUTPUT ON
SQL> EXEC rdsadmin.rdsadmin_util.drop_sys_x$_view('X$KGLOB');

PL/SQL procedure successfully completed.
```

El siguiente ejemplo muestra que la vista `SYS.RDS_X$KGLOB` se ha eliminado (se incluye un ejemplo de salida).

```
SQL> SET SERVEROUTPUT ON
SQL> COL OWNER FORMAT A30 
SQL> COL OBJECT_NAME FORMAT A30
SQL> COL STATUS FORMAT A30
SQL> SET LINESIZE 200
SQL> SELECT OWNER, OBJECT_NAME, STATUS 
FROM DBA_OBJECTS 
WHERE OWNER = 'SYS' AND OBJECT_NAME = 'RDS_X$KGLOB';

no rows selected
```

# Concesión de privilegios a usuarios no maestros
<a name="Appendix.Oracle.CommonDBATasks.PermissionsNonMasters"></a>

Puede conceder privilegios SELECT para muchos objetos del esquema `SYS` utilizando el rol `SELECT_CATALOG_ROLE`. El rol `SELECT_CATALOG_ROLE` concede a los usuarios privilegios `SELECT` para las vistas del diccionario de datos. En el siguiente ejemplo se concede el rol `SELECT_CATALOG_ROLE` a un usuario denominado `user1`. 

```
GRANT SELECT_CATALOG_ROLE TO user1;
```

Puede conceder privilegios `EXECUTE` para muchos objetos del esquema `SYS` utilizando el rol `EXECUTE_CATALOG_ROLE`. El rol `EXECUTE_CATALOG_ROLE` concede a los usuarios privilegios `EXECUTE` para los paquetes y los procedimientos del diccionario de datos. En el siguiente ejemplo se concede el rol `EXECUTE_CATALOG_ROLE` a un usuario denominado *user1*. 

```
GRANT EXECUTE_CATALOG_ROLE TO user1;
```

En el siguiente ejemplo se obtienen los permisos que conceden los roles `SELECT_CATALOG_ROLE` y `EXECUTE_CATALOG_ROLE`. 

```
  SELECT * 
    FROM ROLE_TAB_PRIVS  
   WHERE ROLE IN ('SELECT_CATALOG_ROLE','EXECUTE_CATALOG_ROLE') 
ORDER BY ROLE, TABLE_NAME ASC;
```

En el siguiente ejemplo se crea un usuario no maestro denominado `user1`, se le concede el privilegio `CREATE SESSION` y el privilegio `SELECT` para una base de datos denominada *sh.sales*.

```
CREATE USER user1 IDENTIFIED BY PASSWORD;
GRANT CREATE SESSION TO user1;
GRANT SELECT ON sh.sales TO user1;
```

# Creación de funciones personalizadas para comprobar contraseñas
<a name="Appendix.Oracle.CommonDBATasks.CustomPassword"></a>

Puede crear una función personalizada de verificación de contraseñas de las siguientes maneras.
+ Para usar la lógica de verificación estándar y guardar la función en el esquema `SYS`, utilice el procedimiento `create_verify_function`. 
+ Para usar la lógica de verificación personalizada y evitar guardar la función en el esquema `SYS`, utilice el procedimiento `create_passthrough_verify_fcn`. 

# El procedimiento create\$1verify\$1function
<a name="Appendix.Oracle.CommonDBATasks.CustomPassword.Standard"></a>

Puede crear una función personalizada para comprobar las contraseñas mediante el procedimiento de Amazon RDS `rdsadmin.rdsadmin_password_verify.create_verify_function`. El procedimiento `create_verify_function` admite todas las versiones de RDS para Oracle.

El procedimiento `create_verify_function` tiene los siguientes parámetros. 


****  

| Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | 
|  `p_verify_function_name`  |  varchar2  |  —  |  Sí  |  El nombre de la función personalizada. Esta función se crea automáticamente en el esquema SYS. Esta función se asigna a los perfiles de usuario.   | 
|  `p_min_length`  |  número  |  8  |  No  |  El número mínimo necesario de caracteres.  | 
|  `p_max_length`  |  número  |  256  |  No  |  El número máximo de caracteres permitido.  | 
|  `p_min_letters`  |  número  |  1  |  No  |  El número mínimo necesario de letras.  | 
|  `p_min_uppercase`  |  número  |  0  |  No  |  El número mínimo necesario de letras mayúsculas.  | 
|  `p_min_lowercase`  |  número  |  0  |  No  |  El número mínimo necesario de letras minúsculas.  | 
|  `p_min_digits`  |  número  |  1  |  No  |  El número mínimo necesario de dígitos.  | 
|  `p_min_special`  |  número  |  0  |  No  |  El número mínimo necesario de caracteres especiales.  | 
|  `p_min_different_chars`  |  número  |  3  |  No  |  El número mínimo de caracteres diferentes necesarios entre la contraseña antigua y la nueva.  | 
|  `p_disallow_username`  |  booleano  |  true  |  No  |  Establezca esta opción en `true` para no permitir el nombre de usuario en la contraseña.  | 
|  `p_disallow_reverse`  |  booleano  |  true  |  No  |  Establézcalo en `true` para impedir que se use el nombre de usuario a la inversa en la contraseña.  | 
|  `p_disallow_db_name`  |  booleano  |  true  |  No  |  Establézcalo en `true` para impedir que se use el nombre de la base de datos o del servidor en la contraseña.  | 
|  `p_disallow_simple_strings`  |  booleano  |  true  |  No  |  Establézcalo en `true` para impedir que se usen cadenas sencillas en la contraseña.  | 
|  `p_disallow_whitespace`  |  booleano  |  false  |  No  |  Establézcalo en `true` para impedir que se usen caracteres de espacio en blanco en la contraseña.  | 
|  `p_disallow_at_sign`  |  booleano  |  false  |  No  |  Establézcalo en `true` para impedir que se use el carácter @ en la contraseña.  | 

Puede crear distintas funciones de verificación de contraseñas.

El nombre de la función personalizada está sujeto a ciertas restricciones. Su función personalizada no puede tener el mismo nombre que un objeto de sistema existente. El nombre no puede tener más de 30 caracteres de longitud. Asimismo, el nombre debe incluir una de las siguientes cadenas: `PASSWORD`, `VERIFY`, `COMPLEXITY`, `ENFORCE` o `STRENGTH`. 

El siguiente ejemplo crea una función con el nombre `CUSTOM_PASSWORD_FUNCTION`. La función requiere que una contraseña tenga al menos 12 caracteres, 2 caracteres en mayúsculas, 1 dígito y 1 carácter especial, y que la contraseña no incluya el carácter @. 

```
begin
    rdsadmin.rdsadmin_password_verify.create_verify_function(
        p_verify_function_name => 'CUSTOM_PASSWORD_FUNCTION', 
        p_min_length           => 12, 
        p_min_uppercase        => 2, 
        p_min_digits           => 1, 
        p_min_special          => 1,
        p_disallow_at_sign     => true);
end;
/
```

Para ver el texto de la función de verificación, realice una consulta de `DBA_SOURCE`. En el siguiente ejemplo se obtiene el texto de una función de contraseña personalizada llamada `CUSTOM_PASSWORD_FUNCTION`. 

```
COL TEXT FORMAT a150

  SELECT TEXT 
    FROM DBA_SOURCE 
   WHERE OWNER = 'SYS' 
     AND NAME = 'CUSTOM_PASSWORD_FUNCTION' 
ORDER BY LINE;
```

Para asociar la función de verificación a un perfil de usuario, utilice `ALTER PROFILE`. En el siguiente ejemplo se asocia una función de verificación PL/SQL llamada `CUSTOM_PASSWORD_FUNCTION` al perfil de usuario `DEFAULT`. `PASSWORD_VERIFY_FUNCTION` es el nombre del recurso del perfil de Oracle. 

```
ALTER PROFILE DEFAULT LIMIT PASSWORD_VERIFY_FUNCTION CUSTOM_PASSWORD_FUNCTION;
```

Para ver qué perfiles de usuario están asociados a qué función de verificación, consulte `DBA_PROFILES`. En el siguiente ejemplo se obtienen los perfiles asociados a la función de verificación personalizada llamada `CUSTOM_PASSWORD_FUNCTION`. 

```
SELECT * FROM DBA_PROFILES WHERE RESOURCE_NAME = 'PASSWORD_VERIFY_FUNCTION' AND LIMIT = 'CUSTOM_PASSWORD_FUNCTION';


PROFILE                    RESOURCE_NAME                     RESOURCE  LIMIT
-------------------------  --------------------------------  --------  ------------------------
DEFAULT                    PASSWORD_VERIFY_FUNCTION          PASSWORD  CUSTOM_PASSWORD_FUNCTION
```

En el siguiente ejemplo se obtienen todos los perfiles y las funciones de verificación de contraseñas a las que están asociados. 

```
SELECT * FROM DBA_PROFILES WHERE RESOURCE_NAME = 'PASSWORD_VERIFY_FUNCTION';

PROFILE                    RESOURCE_NAME                     RESOURCE  LIMIT
-------------------------  --------------------------------  --------  ------------------------
DEFAULT                    PASSWORD_VERIFY_FUNCTION          PASSWORD  CUSTOM_PASSWORD_FUNCTION
RDSADMIN                   PASSWORD_VERIFY_FUNCTION          PASSWORD  NULL
```

# El procedimiento create\$1passthrough\$1verify\$1fcn
<a name="Appendix.Oracle.CommonDBATasks.CustomPassword.Custom"></a>

El procedimiento `create_passthrough_verify_fcn` admite todas las versiones de RDS para Oracle.

Puede crear una función personalizada para comprobar las contraseñas mediante el procedimiento de Amazon RDS `rdsadmin.rdsadmin_password_verify.create_passthrough_verify_fcn`. El procedimiento `create_passthrough_verify_fcn` tiene los siguientes parámetros. 


****  

| Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | 
|  `p_verify_function_name`  |  varchar2  |  —  |  Sí  |  El nombre de la función de verificación personalizada. Es una función contenedora que se crea automáticamente en el esquema SYS y no contiene ninguna lógica de verificación. Esta función se asigna a los perfiles de usuario.   | 
|  `p_target_owner`  |  varchar2  |  —  |  Sí  |  El propietario del esquema de la función de verificación personalizada.  | 
|  `p_target_function_name`  |  varchar2  |  —  |  Sí  |  El nombre de la función personalizada existente que contiene la lógica de verificación. La función personalizada debe devolver un valor booleano. La función debe devolver `true` si la contraseña es válida y `false` si la contraseña no es válida.   | 

En el siguiente ejemplo se crea una función de verificación de contraseñas que utiliza la lógica de la función `PASSWORD_LOGIC_EXTRA_STRONG`. 

```
begin
    rdsadmin.rdsadmin_password_verify.create_passthrough_verify_fcn(
        p_verify_function_name => 'CUSTOM_PASSWORD_FUNCTION', 
        p_target_owner         => 'TEST_USER',
        p_target_function_name => 'PASSWORD_LOGIC_EXTRA_STRONG');
end;
/
```

Para asociar la función de verificación a un perfil de usuario, utilice `alter profile`. En el siguiente ejemplo se asocia la función de verificación al perfil de usuario `DEFAULT`. 

```
ALTER PROFILE DEFAULT LIMIT PASSWORD_VERIFY_FUNCTION CUSTOM_PASSWORD_FUNCTION;
```

## Configuración de un servidor DNS personalizado
<a name="Appendix.Oracle.CommonDBATasks.CustomDNS"></a>

Amazon RDS admite el acceso de red saliente en las instancias de bases de datos que ejecutan Oracle. Para obtener más información acerca del acceso de red saliente, incluidos los requisitos previos, consulte [Configuración del acceso UTL\$1HTTP mediante certificados y un wallet de Oracle.](Oracle.Concepts.ONA.md). 

Amazon RDS Oracle permite realizar la resolución del servicio de nombres de dominio (DNS) desde un servidor DNS personalizado propiedad del cliente. Solo es posible resolver nombres de dominio completos desde una instancia de base de datos de Amazon RDS a través de un servidor DNS personalizado. 

Después de configurar un servidor de nombres DNS personalizado, se tardan hasta 30 minutos en propagar los cambios a la instancia de base de datos. Una vez que se propaguen los cambios a la instancia de base de datos, todo el tráfico de red saliente que requiera una búsqueda de DNS consultará el servidor DNS personalizado a través del puerto 53. 

Para configurar un servidor DNS personalizado para su instancia de base de datos de Amazon RDS for Oracle, haga lo siguiente: 
+ Desde el conjunto de opciones de DHCP asociado a la nube virtual privada (VPC), establezca la opción `domain-name-servers` en la dirección IP del servidor de nombres DNS. Para obtener más información, consulte [Conjuntos de opciones de DHCP](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html). 
**nota**  
La opción `domain-name-servers` acepta hasta cuatro valores, pero la instancia de base de datos de Amazon RDS solo utiliza el primer valor. 
+ Asegúrese de que el servidor DNS puede resolver todas las consultas de búsqueda, incluidos los nombres de DNS públicos, los nombres de DNS privados de Amazon EC2 y los nombres de DNS específicos del cliente. Si el tráfico de red saliente contiene búsquedas de DNS que el servidor DNS no puede resolver, este debe tener configurados los proveedores de DNS correspondientes. 
+ Configure el servidor DNS para que genere respuestas de protocolo de datagramas de usuario (UDP) de 512 bytes como máximo. 
+ Configure el servidor DNS para que genere respuestas de protocolo de control de transmisión (TCP) de 1024 bytes como máximo. 
+ Configure el servidor DNS para que permita el tráfico entrante desde las instancias de bases de datos de Amazon RDS a través del puerto 53. Si el servidor DNS está en una Amazon VPC, la VPC debe tener un grupo de seguridad que contenga reglas entrantes que permitan el tráfico UDP y TCP en el puerto 53. Si el servidor DNS no está en una Amazon VPC, debe tener lista de permitidos de firewall apropiada para permitir el tráfico entrante UDP y TCP en el puerto 53.

  Para obtener más información, consulte [Grupos de seguridad de su VPC](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html) y [Adición, eliminación y actualización de reglas](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#AddRemoveRules). 
+ Configure la VPC de la instancia de base de datos de Amazon RDS para que permita el tráfico saliente a través del puerto 53. La VPC debe tener un grupo de seguridad que contenga reglas salientes que permitan el tráfico UDP y TCP en el puerto 53. 

  Para obtener más información, consulte [Grupos de seguridad de su VPC](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html) y [Adición, eliminación y actualización de reglas](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#AddRemoveRules). 
+ La ruta de direccionamiento entre la instancia de base de datos de Amazon RDS y el servidor DNS debe configurarse correctamente para permitir el tráfico de DNS. 
  + Si la instancia de base de datos de Amazon RDS y el servidor DNS no están en la misma VPC, debe establecerse una interconexión entre ellos. Para obtener más información, consulte [¿Qué es un emparejamiento de VPC?](https://docs.aws.amazon.com/vpc/latest/peering/Welcome.html) 

# Establecer y anular eventos de diagnóstico del sistema
<a name="Appendix.Oracle.CommonDBATasks.SystemEvents"></a>

Para establecer y anular eventos de diagnóstico a nivel de sesión, puede utilizar la instrucción de Oracle SQL `ALTER SESSION SET EVENTS`. Sin embargo, para establecer eventos a nivel del sistema no puede utilizar Oracle SQL. En vez de eso, utilice los procedimientos de evento de sistema que hay en el paquete `rdsadmin.rdsadmin_util`. Los procedimientos de evento de sistema están disponibles en las siguientes versiones del motor:
+ Todas las versiones de Oracle Database 21c
+ 19.0.0.0.ru-2020-10.rur-2020-10.r1 Oracle Database 19c y versiones posteriores

  Para obtener más información, consulte la sección sobre la [versión 19.0.0.0.ru-2020-10.rur-2020-10.r1](https://docs.aws.amazon.com/AmazonRDS/latest/OracleReleaseNotes/oracle-version-19-0.html#oracle-version-RU-RUR.19.0.0.0.ru-2020-10.rur-2020-10.r1) en las *notas de la versión de Amazon RDS para Oracle*.

**importante**  
Internamente, con el paquete `rdsadmin.rdsadmin_util` se establecen eventos mediante el uso de la instrucción `ALTER SYSTEM SET EVENTS`. Esta instrucción `ALTER SYSTEM` no figura en la Documentación de la base de datos de Oracle. Algunos eventos de diagnóstico del sistema pueden generar grandes cantidades de información de seguimiento, provocar contención o afectar la disponibilidad de la base de datos. Se recomienda probar eventos de diagnóstico concretos en la base de datos que no utilice para producir y que solo establezca eventos en la base de datos de producción sirviéndose de la orientación de Oracle Support.

## Hacer una lista de los eventos de diagnóstico del sistema permitidos
<a name="Appendix.Oracle.CommonDBATasks.SystemEvents.listing"></a>

Para hacer una lista de los eventos de sistema que puede establecer, utilice el procedimiento de Amazon RDS `rdsadmin.rdsadmin_util.list_allowed_system_events`. Este procedimiento no acepta parámetros.

En el ejemplo siguiente se hace una lista de todos los eventos de sistema que puede establecer.

```
SET SERVEROUTPUT ON
EXEC rdsadmin.rdsadmin_util.list_allowed_system_events;
```

En la siguiente salida de ejemplo se muestran los números de eventos y sus descripciones. Utilice el procedimiento `set_system_event` de Amazon RDS para establecer estos eventos y el procedimiento `unset_system_event` de Amazon RDS para anularlos.

```
604   - error occurred at recursive SQL level
942   - table or view does not exist
1401  - inserted value too large for column
1403  - no data found
1410  - invalid ROWID
1422  - exact fetch returns more than requested number of rows
1426  - numeric overflow
1427  - single-row subquery returns more than one row
1476  - divisor is equal to zero
1483  - invalid length for DATE or NUMBER bind variable
1489  - result of string concatenation is too long
1652  - unable to extend temp segment by  in tablespace
1858  - a non-numeric character was found where a numeric was expected
4031  - unable to allocate  bytes of shared memory ("","","","")
6502  - PL/SQL: numeric or value error
10027 - Specify Deadlock Trace Information to be Dumped
10046 - enable SQL statement timing
10053 - CBO Enable optimizer trace
10173 - Dynamic Sampling time-out error
10442 - enable trace of kst for ORA-01555 diagnostics
12008 - error in materialized view refresh path
12012 - error on auto execute of job
12504 - TNS:listener was not given the SERVICE_NAME in CONNECT_DATA
14400 - inserted partition key does not map to any partition
31693 - Table data object  failed to load/unload and is being skipped due to error:
```

**nota**  
La lista de eventos de sistema permitidos puede cambiar con el tiempo. Para confirmar que tiene la lista más reciente de eventos aptos, use `rdsadmin.rdsadmin_util.list_allowed_system_events`.

## Establecimiento de eventos de diagnóstico del sistema
<a name="Appendix.Oracle.CommonDBATasks.SystemEvents.setting"></a>

Para establecer un evento de sistema, utilice el procedimiento de Amazon RDS `rdsadmin.rdsadmin_util.set_system_event`. Solo puede establecer eventos que figuren en la salida de `rdsadmin.rdsadmin_util.list_allowed_system_events`. El procedimiento `set_system_event` acepta los siguientes parámetros.


****  

| Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | 
|  `p_event`  |  número  |  —  |  Sí  |  El número de evento de sistema. El valor debe ser uno de los números de evento que se informaron mediante `list_allowed_system_events`.  | 
|  `p_level`  |  número  |  —  |  Sí  |  El nivel del evento. Consulte la Documentación de la base de datos de Oracle u Oracle Support para obtener las descripciones de diferentes valores de niveles.  | 

Con el procedimiento `set_system_event` se construyen y se ejecutan las instrucciones `ALTER SYSTEM SET EVENTS` requeridas de acuerdo con los siguientes principios:
+ El tipo de evento (`context` o `errorstack`) se determina automáticamente.
+ Con una instrucción `ALTER SYSTEM SET EVENTS 'event LEVEL event_level'` se establecen los eventos de contexto. Esta notación es equivalente a `ALTER SYSTEM SET EVENTS 'event TRACE NAME CONTEXT FOREVER, LEVEL event_level'`.
+ Con una instrucción `ALTER SYSTEM SET EVENTS 'event ERRORSTACK (event_level)'` se establecen los eventos de pila de errores. Esta notación es equivalente a `ALTER SYSTEM SET EVENTS 'event TRACE NAME ERRORSTACK LEVEL event_level'`.

En el ejemplo siguiente se establece el evento 942 a nivel 3 y el evento 10442 a nivel 10. Se incluye la salida de muestra.

```
SQL> SET SERVEROUTPUT ON
SQL> EXEC rdsadmin.rdsadmin_util.set_system_event(942,3);
Setting system event 942 with: alter system set events '942 errorstack (3)'

PL/SQL procedure successfully completed.

SQL> EXEC rdsadmin.rdsadmin_util.set_system_event(10442,10);
Setting system event 10442 with: alter system set events '10442 level 10'

PL/SQL procedure successfully completed.
```

## Hacer una lista de los eventos de diagnóstico del sistema establecidos
<a name="Appendix.Oracle.CommonDBATasks.SystemEvents.listing-set"></a>

Para hacer una lista de los eventos del sistema establecidos, utilice el procedimiento de Amazon RDS `rdsadmin.rdsadmin_util.list_set_system_events`. Con este procedimiento se informan solo los eventos establecidos a nivel del sistema por `set_system_event`.

En el ejemplo siguiente se hace una lista de los eventos de sistema activos.

```
SET SERVEROUTPUT ON
EXEC rdsadmin.rdsadmin_util.list_set_system_events;
```

En la siguiente salida de ejemplo se muestran la lista de eventos, el tipo de evento, el nivel a que los eventos están configurados actualmente y la hora a que se estableció el evento.

```
942 errorstack (3) - set at 2020-11-03 11:42:27
10442 level 10 - set at 2020-11-03 11:42:41

PL/SQL procedure successfully completed.
```

## Anular eventos de diagnóstico del sistema
<a name="Appendix.Oracle.CommonDBATasks.SystemEvents.unsetting"></a>

Para anular un evento de sistema, utilice el procedimiento de Amazon RDS `rdsadmin.rdsadmin_util.unset_system_event`. Solo puede anular eventos que figuren en la salida de `rdsadmin.rdsadmin_util.list_allowed_system_events`. El procedimiento `unset_system_event` acepta el siguiente parámetro.


****  

| Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | 
|  `p_event`  |  número  |  —  |  Sí  |  El número de evento de sistema. El valor debe ser uno de los números de evento que se informaron mediante `list_allowed_system_events`.  | 

En el ejemplo siguiente se anulan los eventos 942 y 10442. Se incluye la salida de muestra.

```
SQL> SET SERVEROUTPUT ON
SQL> EXEC rdsadmin.rdsadmin_util.unset_system_event(942);
Unsetting system event 942 with: alter system set events '942 off'

PL/SQL procedure successfully completed.

SQL> EXEC rdsadmin.rdsadmin_util.unset_system_event(10442);
Unsetting system event 10442 with: alter system set events '10442 off'

PL/SQL procedure successfully completed.
```

# Ejecución de tareas comunes de base de datos para instancias de base de datos
<a name="Appendix.Oracle.CommonDBATasks.Database"></a>

A continuación, puede encontrar cómo realizar ciertas tareas comunes de DBA relacionadas con las bases de datos en las instancias de base de datos de Amazon RDS que ejecutan Oracle. Para ofrecer una experiencia de servicio administrado, Amazon RDS no proporciona acceso mediante shell a las instancias de base de datos. Amazon RDS también restringe el acceso a ciertos procedimientos y tablas del sistema que requieren privilegios avanzados. 

**Topics**
+ [Cambio del nombre global de una base de datos](Appendix.Oracle.CommonDBATasks.RenamingGlobalName.md)
+ [Uso de espacios de tablas en RDS para Oracle](Appendix.Oracle.CommonDBATasks.TablespacesAndDatafiles.md)
+ [Uso de tempfiles en RDS para Oracle](Appendix.Oracle.CommonDBATasks.using-tempfiles.md)
+ [Redimensionamiento de espacios de tablas, archivos de datos y archivos temporales en RDS para Oracle](Appendix.Oracle.CommonDBATasks.ResizeTempSpaceReadReplica.md)
+ [Movimiento de datos entre volúmenes de almacenamiento en RDS para Oracle](Appendix.Oracle.CommonDBATasks.MovingDataBetweenVolumes.md)
+ [Uso de tablas externas en RDS para Oracle](Appendix.Oracle.CommonDBATasks.External_Tables.md)

# Cambio del nombre global de una base de datos
<a name="Appendix.Oracle.CommonDBATasks.RenamingGlobalName"></a>

Utilice el procedimiento de Amazon RDS para cambiar el nombre global de una base de dato `rdsadmin.rdsadmin_util.rename_global_name`. El procedimiento `rename_global_name` tiene los siguientes parámetros. 


****  

| Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | 
|  `p_new_global_name`  |  varchar2  |  —  |  Sí  |  El nuevo nombre global de la base de datos.  | 

La base de datos debe estar abierta para que se produzca el cambio de nombre. Para obtener más información acerca de cómo cambiar el nombre global de una base de datos, consulte [ALTER DATABASE](http://docs.oracle.com/cd/E11882_01/server.112/e41084/statements_1004.htm#SQLRF52547) en la documentación de Oracle. 

En el siguiente ejemplo se cambia el nombre global de una base de datos a `new_global_name`.

```
EXEC rdsadmin.rdsadmin_util.rename_global_name(p_new_global_name => 'new_global_name');
```

# Uso de espacios de tablas en RDS para Oracle
<a name="Appendix.Oracle.CommonDBATasks.TablespacesAndDatafiles"></a>

Puede utilizar los espacios de tabla con RDS para Oracle, que es una unidad de almacenamiento lógico que almacena los datos de la base de datos.

**importante**  
Si la instancia de base de datos tiene réplicas, le recomendamos que utilice la configuración de los grupos de parámetros en lugar de los cambios por sesión para administrar las ubicaciones de los archivos predeterminadas. Los cambios por sesión en las ubicaciones de archivos predeterminadas de la instancia principal no se reflejan automáticamente en las réplicas. El uso de la configuración de los grupos de parámetros garantiza la coherencia de las ubicaciones de los archivos en las instancias principal y de réplica.

**Topics**
+ [Especificación de ubicaciones de archivos de base de datos en RDS para Oracle](#Appendix.Oracle.CommonDBATasks.DatabaseFileLocations)
+ [Creación y redimensionamiento de los espacios de tablas en RDS para Oracle](#Appendix.Oracle.CommonDBATasks.CreatingTablespacesAndDatafiles)
+ [Creación de espacios de tabla en volúmenes de almacenamiento adicionales en RDS para Oracle](#Appendix.Oracle.CommonDBATasks.CreatingTablespacesWithFileLocations)
+ [Configuración del espacio de tabla predeterminado en RDS para Oracle](#Appendix.Oracle.CommonDBATasks.SettingDefaultTablespace)
+ [Configuración del espacio de tabla temporal predeterminado en RDS para Oracle](#Appendix.Oracle.CommonDBATasks.SettingDefTempTablespace)
+ [Creación de un espacio de tablas temporal en el almacén de instancias](#Appendix.Oracle.CommonDBATasks.creating-tts-instance-store)

## Especificación de ubicaciones de archivos de base de datos en RDS para Oracle
<a name="Appendix.Oracle.CommonDBATasks.DatabaseFileLocations"></a>

RDS para Oracle usa Oracle Managed Files (OMF) para nombrar archivos de base de datos. Al crear archivos de base de datos, la base de datos obtiene la configuración en función de la configuración actual del parámetro de inicialización `DB_CREATE_FILE_DEST`.

El valor predeterminado del parámetro de inicialización `DB_CREATE_FILE_DEST` es `/rdsdbdata/db` para bases de datos independientes y `/rdsdbdata/db/pdb` para arquitecturas en contenedores (CDB/MT). Si la instancia de base de datos tiene volúmenes de almacenamiento adicionales, puede configurar `DB_CREATE_FILE_DEST` en las ubicaciones de los volúmenes. Por ejemplo, si la instancia tiene un volumen montado en `/rdsdbdata/db`, puede establecer `DB_CREATE_FILE_DEST` en este valor.

Puede modificar el parámetro `DB_CREATE_FILE_DEST` por sesión o instancia de base de datos de Oracle.

### Modificación de DB\$1CREATE\$1FILE\$1SET por instancia
<a name="Appendix.Oracle.CommonDBATasks.InstanceLevelModification"></a>

Para modificar el parámetro por instancia, actualice el parámetro en el grupo de parámetros asignado a la instancia de base de datos y aplíquelo. Para obtener más información, consulte [Parámetros de inicialización de RDS para Oracle](Oracle.Concepts.FeatureSupport.Parameters.md) y [Modificación de los parámetros de un grupo de parámetros de base de datos en Amazon RDS](USER_WorkingWithParamGroups.Modifying.md).

### Modificación de DB\$1CREATE\$1FILE\$1DEST por sesión
<a name="Appendix.Oracle.CommonDBATasks.SessionLevelModification"></a>

Puede modificar el parámetro por sesión mediante la ejecución de una instrucción `ALTER SESSION`. Este enfoque resulta útil cuando se desean crear archivos de base de datos en una ubicación específica para una sesión determinada sin que ello afecte a toda la instancia.

El siguiente ejemplo muestra cómo comprobar el valor del parámetro actual y cómo modificarlo para la sesión:

```
SHOW PARAMETER db_create_file_dest

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_create_file_dest                  string      /rdsdbdata/db

ALTER SESSION SET db_create_file_dest = '/rdsdbdata2/db';

Session altered.

SHOW PARAMETER db_create_file_dest

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_create_file_dest                  string      /rdsdbdata2/db
```

## Creación y redimensionamiento de los espacios de tablas en RDS para Oracle
<a name="Appendix.Oracle.CommonDBATasks.CreatingTablespacesAndDatafiles"></a>

Al crear espacios de tabla, la base de datos crea los archivos de datos en el volumen de almacenamiento especificado por el parámetro de inicialización `DB_CREATE_FILE_DEST` en el momento de la creación. De forma predeterminada, si no especifica el tamaño de archivo de datos, los espacios de tabla se crean con el tamaño predeterminado de `AUTOEXTEND ON` y sin tamaño máximo. En el siguiente ejemplo, el espacio de tablas *users1* es ampliable automáticamente.

```
CREATE TABLESPACE users1;
```

Debido a estos valores predeterminados, los espacios de tabla pueden llegar a consumir todo el almacenamiento asignado. Recomendamos que especifique un tamaño máximo adecuado para los espacios de tabla permanentes y temporales, y que monitorice cuidadosamente el uso del espacio. 

En el siguiente ejemplo, se crea un espacio de tabla denominado *users2* con un tamaño inicial de 1 gigabyte. Dado que se especifica el tamaño de un archivo de datos, pero no se especifica `AUTOEXTEND ON`, el espacio de tablas no se puede ampliar automáticamente.

```
CREATE TABLESPACE users2 DATAFILE SIZE 1G;
```

En el siguiente ejemplo, se crea un espacio de tabla denominado *users3* con un tamaño inicial de 1 gigabyte, con la ampliación automática activada y un tamaño máximo de 10 gigabytes.

```
CREATE TABLESPACE users3 DATAFILE SIZE 1G AUTOEXTEND ON MAXSIZE 10G;
```

En el siguiente ejemplo, se crea un espacio de tabla temporal denominado *temp01*.

```
CREATE TEMPORARY TABLESPACE temp01;
```

Puede cambiar el tamaño de un espacio de tabla bigfile utilizando `ALTER TABLESPACE`. Puede especificar el tamaño en kilobytes (K), megabytes (M), gigabytes (G) o terabytes (T). En el siguiente ejemplo, se cambia el tamaño de un espacio de tabla bigfile denominado *users\$1bf* a 200 MB.

```
ALTER TABLESPACE users_bf RESIZE 200M;
```

En el siguiente ejemplo, se añade un archivo de datos adicional a un espacio de tabla smallfile denominado *users\$1sf*.

```
ALTER TABLESPACE users_sf ADD DATAFILE SIZE 100000M AUTOEXTEND ON NEXT 250m MAXSIZE UNLIMITED;
```

## Creación de espacios de tabla en volúmenes de almacenamiento adicionales en RDS para Oracle
<a name="Appendix.Oracle.CommonDBATasks.CreatingTablespacesWithFileLocations"></a>

Para crear un espacio de tabla en un volumen de almacenamiento adicional, modifique el parámetro `DB_CREATE_FILE_DEST` por la ubicación del volumen. En el siguiente ejemplo, se establece la ubicación del archivo en `/rdsdbdata2/db`.

```
ALTER SESSION SET db_create_file_dest = '/rdsdbdata2/db';

Session altered.
```

En el siguiente ejemplo, se crea un espacio de tablas en un `/rdsdbdata2/db` de volumen adicional.

```
CREATE TABLESPACE new_tablespace DATAFILE SIZE 10G;

Tablespace created.

SELECT tablespace_name,file_id,file_name FROM dba_data_files
WHERE tablespace_name = 'NEW_TABLESPACE';

TABLESPACE_NAME              FILE_ID FILE_NAME
------------------------- ---------- --------------------------------------------------------------------------------
NEW_TABLESPACE                     7 /rdsdbdata2/db/ORCL_A/datafile/o1_mf_newtable_a123b4c5_.dbf
```

Para crear un espacio de tablas de archivos pequeños y distribuir sus archivos de datos en distintos volúmenes de almacenamiento, agregue archivos de datos al espacio de tablas después de crearlo. En el siguiente ejemplo, se crea un espacio de tablas con los archivos de datos en la ubicación predeterminada de `/rdsdbdata/db`. A continuación, establezca el destino predeterminado en `/rdsdbdata/db2`. Al agregar un archivo de datos al espacio de tablas recién creado, la base de datos almacena el archivo en `/rdsdbdata/db2`.

```
ALTER SESSION SET db_create_file_dest = '/rdsdbdata/db';

Session altered.

CREATE SMALLFILE TABLESPACE smalltbs DATAFILE SIZE 10G;

Tablespace created.

SELECT tablespace_name,file_id,file_name FROM dba_data_files
WHERE tablespace_name = 'SMALLTBS';

TABLESPACE_NAME              FILE_ID FILE_NAME
------------------------- ---------- --------------------------------------------------------------------------------
SMALLTBS                           8 /rdsdbdata/db/ORCL_A/datafile/o1_mf_smalltbs_n563yryk_.dbf

ALTER SESSION SET db_create_file_dest = '/rdsdbdata2/db';

Session altered.

ALTER TABLESPACE smalltbs ADD DATAFILE SIZE 10G;

Tablespace altered.

SELECT tablespace_name,file_id,file_name FROM dba_data_files
WHERE tablespace_name = 'SMALLTBS';

TABLESPACE_NAME              FILE_ID FILE_NAME
------------------------- ---------- --------------------------------------------------------------------------------
SMALLTBS                           8 /rdsdbdata/db/ORCL_A/datafile/o1_mf_smalltbs_n563yryk_.dbf
SMALLTBS                           9 /rdsdbdata2/db/ORCL_A/datafile/o1_mf_smalltbs_n564004g_.dbf
```

## Configuración del espacio de tabla predeterminado en RDS para Oracle
<a name="Appendix.Oracle.CommonDBATasks.SettingDefaultTablespace"></a>

Utilice el procedimiento de Amazon RDS para configurar el espacio de tabla predeterminad `rdsadmin.rdsadmin_util.alter_default_tablespace`. El procedimiento `alter_default_tablespace` tiene los siguientes parámetros. 


****  

| Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | 
|  `tablespace_name`  |  varchar  |  —  |  Sí  |  El nombre del espacio de tabla predeterminado.  | 

En el siguiente ejemplo se establece el espacio de tabla predeterminado en *users2*: 

```
EXEC rdsadmin.rdsadmin_util.alter_default_tablespace(tablespace_name => 'users2');
```

## Configuración del espacio de tabla temporal predeterminado en RDS para Oracle
<a name="Appendix.Oracle.CommonDBATasks.SettingDefTempTablespace"></a>

Utilice el procedimiento de Amazon RDS para configurar el espacio de tabla temporal predeterminad `rdsadmin.rdsadmin_util.alter_default_temp_tablespace`. El procedimiento `alter_default_temp_tablespace` tiene los siguientes parámetros. 


****  

| Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | 
|  `tablespace_name`  |  varchar  |  —  |  Sí  |  El nombre del espacio de tabla temporal predeterminado.  | 

En el siguiente ejemplo se establece el espacio de tabla temporal predeterminado en *temp01*. 

```
EXEC rdsadmin.rdsadmin_util.alter_default_temp_tablespace(tablespace_name => 'temp01');
```

## Creación de un espacio de tablas temporal en el almacén de instancias
<a name="Appendix.Oracle.CommonDBATasks.creating-tts-instance-store"></a>

Utilice el procedimiento `rdsadmin.rdsadmin_util.create_inst_store_tmp_tblspace` de Amazon RDS para crear un espacio de tabla temporal en el almacén de instancias. El procedimiento `create_inst_store_tmp_tblspace` tiene los siguientes parámetros. 


****  

| Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | 
|  `p_tablespace_name`  |  varchar  |  —  |  Sí  |  El nombre del espacio de tabla temporal.  | 

En el siguiente ejemplo, se crea el espacio de tablas temporal *temp01* en el almacén de instancias. 

```
EXEC rdsadmin.rdsadmin_util.create_inst_store_tmp_tblspace(p_tablespace_name => 'temp01');
```

**importante**  
Cuando se ejecuta `rdsadmin_util.create_inst_store_tmp_tblspace`, el espacio de tabla temporal recién creado no se establece automáticamente como el espacio de tabla temporal predeterminado. Para configurarlo como predeterminado, consulte [Configuración del espacio de tabla temporal predeterminado en RDS para Oracle](#Appendix.Oracle.CommonDBATasks.SettingDefTempTablespace).

Para obtener más información, consulte [Almacenamiento de datos temporales en un almacén de instancias de RDS para Oracle](CHAP_Oracle.advanced-features.instance-store.md).

# Uso de tempfiles en RDS para Oracle
<a name="Appendix.Oracle.CommonDBATasks.using-tempfiles"></a>

## Adición de un archivo temporal al almacén de instancias en una réplica de lectura
<a name="Appendix.Oracle.CommonDBATasks.adding-tempfile-replica"></a>

Cuando crea un espacio de tabla temporal en una instancia de base de datos principal, la réplica de lectura no crea archivos temporales. Supongamos que existe un espacio de tablas temporal vacío en la réplica de lectura por cualquiera de los siguientes motivos:
+ Eliminó un archivo temporal del espacio de tablas de su réplica de lectura. Para obtener más información, consulte [Eliminación de archivos temporales en una réplica de lectura](Appendix.Oracle.CommonDBATasks.dropping-tempfiles-replica.md).
+ Creó un nuevo espacio de tablas temporal en la instancia de base de datos principal. En este caso, RDS para Oracle sincroniza los metadatos con la réplica de lectura.

Puedes añadir un archivo temporal al espacio de tablas temporal vacío y almacenar el archivo temporal en el almacén de instancias. Utilice el procedimiento `rdsadmin.rdsadmin_util.add_inst_store_tempfile` de Amazon RDS para crear un archivo temporal en el almacén de instancias. Este procedimiento solo se puede utilizar en una réplica de lectura. El procedimiento tiene los siguientes parámetros.


****  

| Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | 
|  `p_tablespace_name`  |  varchar  |  —  |  Sí  |  El nombre del espacio de tabla temporal de la réplica de lectura.  | 

En el siguiente ejemplo, el espacio de tabla temporal vacío *temp01* existe en la réplica de lectura. Ejecute el siguiente comando para crear un archivo temporal para este espacio de tabla y almacénelo en el almacén de instancias.

```
EXEC rdsadmin.rdsadmin_util.add_inst_store_tempfile(p_tablespace_name => 'temp01');
```

Para obtener más información, consulte [Almacenamiento de datos temporales en un almacén de instancias de RDS para Oracle](CHAP_Oracle.advanced-features.instance-store.md).

# Eliminación de archivos temporales en una réplica de lectura
<a name="Appendix.Oracle.CommonDBATasks.dropping-tempfiles-replica"></a>

No puede eliminar un espacio de tabla temporal existente en una réplica de lectura. Puede cambiar el almacenamiento del archivo temporal en una réplica de lectura de Amazon EBS al almacén de instancias o del almacén de instancias a Amazon EBS. Para lograr estos objetivos, haga lo siguiente:

1. Elimine los archivos temporales actuales en el espacio de tablas temporal de la réplica de lectura.

1. Cree nuevos archivos temporales en un almacenamiento diferente.

Utilice el procedimiento `rdsadmin.rdsadmin_util. drop_replica_tempfiles` de Amazon RDS para eliminar archivos temporales. Este procedimiento solo se puede utilizar en réplicas de lectura. El procedimiento `drop_replica_tempfiles` tiene los siguientes parámetros.


****  

| Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | 
|  `p_tablespace_name`  |  varchar  |  —  |  Sí  |  El nombre del espacio de tabla temporal de la réplica de lectura.  | 

Suponga que un espacio de tablas temporal denominado *temp01* reside en el almacén de instancias de su réplica de lectura. Elimine todos los archivos temporales de este espacio de tabla ejecutando el siguiente comando.

```
EXEC rdsadmin.rdsadmin_util.drop_replica_tempfiles(p_tablespace_name => 'temp01');
```

Para obtener más información, consulte [Almacenamiento de datos temporales en un almacén de instancias de RDS para Oracle](CHAP_Oracle.advanced-features.instance-store.md).

# Redimensionamiento de espacios de tablas, archivos de datos y archivos temporales en RDS para Oracle
<a name="Appendix.Oracle.CommonDBATasks.ResizeTempSpaceReadReplica"></a>

De forma predeterminada, los espacios de tabla de Oracle se crean con la ampliación automática activada y sin tamaño máximo. Debido a estos valores predeterminados, los espacios de tabla pueden llegar a ser demasiado grandes en algunos casos. Recomendamos que especifique un tamaño máximo adecuado para los espacios de tabla permanentes y temporales, y que monitorice cuidadosamente el uso del espacio.

## Redimensionamiento de espacios de tabla permanentes
<a name="resizing-perm-tbs"></a>

Para cambiar el tamaño de un espacio de tabla permanente en una instancia de base de datos de RDS para Oracle, utilice cualquiera de los siguientes procedimientos de Amazon RDS:
+ `rdsadmin.rdsadmin_util.resize_datafile`
+ `rdsadmin.rdsadmin_util.autoextend_datafile`

El procedimiento `resize_datafile` tiene los siguientes parámetros.


****  

| Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | 
|  `p_data_file_id`  |  número  |  —  |  Sí  |  El identificador del archivo de datos que se va a cambiar de tamaño.  | 
|  `p_size`  |  varchar2  |  —  |  Sí  |  El tamaño del archivo de datos. Puede especificar el tamaño en bytes (la opción predeterminada), kilobytes (K), megabytes (M) o gigabytes (G).   | 

El procedimiento `autoextend_datafile` tiene los siguientes parámetros.


****  

| Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | 
|  `p_data_file_id`  |  número  |  —  |  Sí  |  El identificador del archivo de datos que se va a cambiar de tamaño.  | 
|  `p_autoextend_state`  |  varchar2  |  —  |  Sí  |  El estado de la característica de ampliación automática. Especifique `ON` para ampliar el archivo de datos automáticamente y `OFF` para desactivar la ampliación automática.   | 
|  `p_next`  |  varchar2  |  —  |  No  |  El tamaño del incremento del siguiente archivo de datos. Puede especificar el tamaño en bytes (la opción predeterminada), kilobytes (K), megabytes (M) o gigabytes (G).  | 
|  `p_maxsize`  |  varchar2  |  —  |  No  |  El espacio máximo en disco permitido para la ampliación automática. Puede especificar el tamaño en bytes (la opción predeterminada), kilobytes (K), megabytes (M) o gigabytes (G). Puede especificar `UNLIMITED` para eliminar el límite de tamaño del archivo.  | 

En el ejemplo siguiente, se cambia el tamaño del archivo de datos de 4 a 500 MB.

```
EXEC rdsadmin.rdsadmin_util.resize_datafile(4,'500M');
```

En el siguiente ejemplo, se desactiva la ampliación automática del archivo de datos 4. También se activa la ampliación automática para el archivo de datos 5, con un incremento de 128 MB y sin tamaño máximo.

```
EXEC rdsadmin.rdsadmin_util.autoextend_datafile(4,'OFF');
EXEC rdsadmin.rdsadmin_util.autoextend_datafile(5,'ON','128M','UNLIMITED');
```

## Redimensionamiento de espacios de tabla temporales
<a name="resizing-temp-tbs"></a>

Para redimensionar un espacio de tabla temporal en una instancia de base de datos de RDS para Oracle, incluida una réplica de lectura, utilice cualquiera de los siguientes procedimientos de Amazon RDS:
+ `rdsadmin.rdsadmin_util.resize_temp_tablespace`
+ `rdsadmin.rdsadmin_util.resize_tempfile`
+ `rdsadmin.rdsadmin_util.autoextend_tempfile`

El procedimiento `resize_temp_tablespace` tiene los siguientes parámetros.


****  

| Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | 
|  `p_temp_tablespace_name`  |  varchar2  |  —  |  Sí  |  El nombre del espacio de tabla temporal al que se va a cambiar el tamaño.  | 
|  `p_size`  |  varchar2  |  —  |  Sí  |  El tamaño del espacio de tabla. Puede especificar el tamaño en bytes (la opción predeterminada), kilobytes (K), megabytes (M) o gigabytes (G).   | 

El procedimiento `resize_tempfile` tiene los siguientes parámetros.


****  

| Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | 
|  `p_temp_file_id`  |  número  |  —  |  Sí  |  El identificador del archivo temporal al que se va a cambiar el tamaño.  | 
|  `p_size`  |  varchar2  |  —  |  Sí  |  El tamaño del archivo temporal. Puede especificar el tamaño en bytes (la opción predeterminada), kilobytes (K), megabytes (M) o gigabytes (G).   | 

El procedimiento `autoextend_tempfile` tiene los siguientes parámetros.


****  

| Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | 
|  `p_temp_file_id`  |  número  |  —  |  Sí  |  El identificador del archivo temporal al que se va a cambiar el tamaño.  | 
|  `p_autoextend_state`  |  varchar2  |  —  |  Sí  |  El estado de la característica de ampliación automática. Especifique `ON` para ampliar el archivo temporal automáticamente y `OFF` para desactivar la ampliación automática.   | 
|  `p_next`  |  varchar2  |  —  |  No  |  El tamaño del incremento del siguiente archivo temporal. Puede especificar el tamaño en bytes (la opción predeterminada), kilobytes (K), megabytes (M) o gigabytes (G).  | 
|  `p_maxsize`  |  varchar2  |  —  |  No  |  El espacio máximo en disco permitido para la ampliación automática. Puede especificar el tamaño en bytes (la opción predeterminada), kilobytes (K), megabytes (M) o gigabytes (G). Puede especificar `UNLIMITED` para eliminar el límite de tamaño del archivo.  | 

Los siguientes ejemplos cambian el tamaño de un espacio de tabla temporal llamado `TEMP` hasta 4 GB.

```
EXEC rdsadmin.rdsadmin_util.resize_temp_tablespace('TEMP','4G');
```

```
EXEC rdsadmin.rdsadmin_util.resize_temp_tablespace('TEMP','4096000000');
```

El siguiente ejemplo cambia el tamaño de un espacio de tabla temporal en función del archivo temporal con el identificador de archivo `1` hasta los 2 MB.

```
EXEC rdsadmin.rdsadmin_util.resize_tempfile(1,'2M');
```

En el siguiente ejemplo, se desactiva la ampliación automática del archivo temporal 1. También se establece el tamaño máximo de ampliación automática del archivo temporal de 2 a 10 GB, con un incremento de 100 MB.

```
EXEC rdsadmin.rdsadmin_util.autoextend_tempfile(1,'OFF');
EXEC rdsadmin.rdsadmin_util.autoextend_tempfile(2,'ON','100M','10G');
```

Para obtener más información acerca de las réplicas de lectura para las instancias de base de datos de Oracle, consulte [Trabajo con las réplicas de lectura para Amazon RDS para Oracle](oracle-read-replicas.md).

# Movimiento de datos entre volúmenes de almacenamiento en RDS para Oracle
<a name="Appendix.Oracle.CommonDBATasks.MovingDataBetweenVolumes"></a>

Puede mover archivos de datos y objetos de base de datos entre los volúmenes de almacenamiento principal y los adicionales. Antes de mover los datos, se tienen en cuenta los siguientes puntos:
+ Los volúmenes de origen y destino deben tener suficiente espacio libre.
+ Las operaciones de movimiento de datos consumen E/S en ambos volúmenes.
+ Los grandes movimientos de datos pueden afectar al rendimiento de la base de datos.
+ Si restaura una instantánea, el movimiento de los datos entre los volúmenes de almacenamiento puede resultar lento si se ve afectado por la carga diferida de EBS.

**Topics**
+ [Movimiento de archivos de datos entre volúmenes en RDS para Oracle](#Appendix.Oracle.CommonDBATasks.MovingDatafiles)
+ [Movimiento de datos de tablas e índices entre volúmenes en RDS para Oracle](#Appendix.Oracle.CommonDBATasks.MovingTableData)
+ [Administración del almacenamiento de LOB mediante volúmenes adicionales](#Appendix.Oracle.CommonDBATasks.ManagingLargeLOBStorage)

## Movimiento de archivos de datos entre volúmenes en RDS para Oracle
<a name="Appendix.Oracle.CommonDBATasks.MovingDatafiles"></a>

Para mover archivos de datos entre volúmenes de almacenamiento, utilice el procedimiento `rdsadmin.rdsadmin_util.move_datafile` de Amazon RDS. Tenga en cuenta los siguientes requisitos:
+ Debe utilizar Oracle Enterprise Edition para ejecutar el procedimiento `move_datafile`.
+ No puede mover el espacio de tablas `SYSTEM` y `RDSADMIN`.

El procedimiento `move_datafile` tiene los siguientes parámetros.


****  

| Nombre del parámetro | Tipo de datos | Obligatorio | Descripción | 
| --- | --- | --- | --- | 
|  `p_data_file_id`  |  número  |  Sí  |  El ID del archivo de datos que se va a mover.  | 
|  `p_location`  |  varchar2  |  Sí  |  El volumen de almacenamiento al que desea mover el archivo de datos.  | 

En el siguiente ejemplo, se mueve un espacio de tabla del volumen predeterminado `rdsdbdata` al volumen adicional `rdsdbdata2`.

```
SQL> SELECT tablespace_name,file_id,file_name FROM dba_data_files
 WHERE tablespace_name = 'MYNEWTABLESPACE';

TABLESPACE_NAME              FILE_ID FILE_NAME
------------------------- ---------- --------------------------------------------------------------------------------
MYNEWTABLESPACE                    6 /rdsdbdata/db/ORCL_A/datafile/o1_mf_mynewtab_n123abcd_.dbf

EXECUTE rdsadmin.rdsadmin_util.move_datafile( 6, 'rdsdbdata2');

PL/SQL procedure successfully completed.

SQL> SELECT tablespace_name,file_id,file_name FROM dba_data_files
  WHERE tablespace_name = 'MYNEWTABLESPACE';

TABLESPACE_NAME              FILE_ID FILE_NAME
------------------------- ---------- --------------------------------------------------------------------------------
MYNEWTABLESPACE                    6 /rdsdbdata2/db/ORCL_A/datafile/o1_mf_mynewtab_n356efgh_.dbf
```

## Movimiento de datos de tablas e índices entre volúmenes en RDS para Oracle
<a name="Appendix.Oracle.CommonDBATasks.MovingTableData"></a>

Puede optimizar el almacenamiento de la base de datos mediante la creación de espacios de tabla en volúmenes de almacenamiento adicionales. A continuación, puede mover objetos como tablas, índices y particiones a estos espacios de tabla mediante el SQL estándar de Oracle. Este enfoque es valioso para ajustar el rendimiento cuando la base de datos contiene datos con patrones de acceso diferentes. Por ejemplo, puede almacenar los datos operativos a los que se accede con frecuencia en volúmenes de almacenamiento de alto rendimiento y, al mismo tiempo, trasladar los datos históricos a los que se accede con menos frecuencia a volúmenes de almacenamiento de menor costo.

En el siguiente ejemplo, se crea un nuevo espacio de tablas en un volumen de alto rendimiento `rdsdbdata2`. A continuación, mueva una tabla al volumen de almacenamiento adicional mientras la tabla está en línea. También mueve el índice al mismo volumen. El movimiento de tablas y la reconstrucción de índices mientras se está en línea necesita Oracle Enterprise Edition.

```
ALTER SESSION SET db_create_file_dest = '/rdsdbdata2/db';
CREATE TABLESPACE perf_tbs DATAFILE SIZE 10G;

ALTER TABLE employees
  MOVE TABLESPACE perf_tbs ONLINE;

ALTER INDEX employees_idx
  REBUILD ONLINE TABLESPACE perf_tbs;
```

En el siguiente ejemplo, se crea un espacio de tablas en un volumen de bajo costo. A continuación, mueva una partición de tabla al volumen de almacenamiento de bajo costo mediante una operación en línea.

```
ALTER SESSION SET db_create_file_dest = '/rdsdbdata3/db';
CREATE TABLESPACE hist_tbs DATAFILE SIZE 10G;

ALTER TABLE orders
  MOVE PARTITION orders_2022
  TABLESPACE hist_tbs ONLINE;
```

En el siguiente ejemplo, consulte las operaciones largas de sesiones activas.

```
SELECT sid,opname,sofar,totalwork,time_remaining,elapsed_seconds 
  FROM v$session_longops 
  WHERE time_remaining > 0;
```

Puede verificar el uso de los espacios de tabla con la siguiente consulta.

```
SELECT tablespace_name, used_percent
  FROM dba_tablespace_usage_metrics
  ORDER BY used_percent DESC;
```

## Administración del almacenamiento de LOB mediante volúmenes adicionales
<a name="Appendix.Oracle.CommonDBATasks.ManagingLargeLOBStorage"></a>

La base de datos puede contener tablas con objetos BLOB o CLOB que consumen una cantidad considerable de almacenamiento, pero a los que se accede con poca frecuencia. Para optimizar el almacenamiento, puede reubicar estos segmentos de LOB en un espacio de tablas en un volumen de almacenamiento adicional.

En el siguiente ejemplo, se crea un espacio de tabla para datos de LOB en un volumen de bajo costo destinado a datos de poco acceso. A continuación, cree una tabla que almacene los datos de este volumen.

```
ALTER SESSION SET db_create_file_dest = '/rdsdbdata3/db';
CREATE TABLESPACE lob_data DATAFILE SIZE 5G AUTOEXTEND ON NEXT 1G;

CREATE TABLE documents (
    doc_id NUMBER PRIMARY KEY,
    doc_date DATE,
    doc_content CLOB
) TABLESPACE user_data
LOB(doc_content) STORE AS (TABLESPACE lob_data);
```

# Uso de tablas externas en RDS para Oracle
<a name="Appendix.Oracle.CommonDBATasks.External_Tables"></a>

Las *tablas externas de Oracle *son tablas con datos no incluidos en la base de datos. Los datos se encuentran en archivos externos a los que la base de datos puede acceder. Las tablas externas le permiten acceder a datos sin cargarlos en la base de datos. Para obtener más información sobre las tablas externas, consulte la sección [Managing External Tables](http://docs.oracle.com/database/121/ADMIN/tables.htm#ADMIN01507) en la documentación de Oracle. 

Amazon RDS le permite almacenar archivos de tablas externas en objetos de directorio. Puede crear un objeto de directorio o utilizar uno predefinido en la base de datos Oracle como, por ejemplo, el directorio DATA\$1PUMP\$1DIR. Para obtener información sobre la creación de objetos de directorio, consulte [Creación y eliminación de directorios en el espacio de almacenamiento de datos principal](Appendix.Oracle.CommonDBATasks.Misc.md#Appendix.Oracle.CommonDBATasks.NewDirectories). Puede consultar la vista ALL\$1DIRECTORIES para elaborar una lista de los objetos de directorio de la instancia de base de datos de Oracle en Amazon RDS.

**nota**  
Los objetos de directorio apuntan hacia el espacio de almacenamiento de datos principal (volumen de Amazon EBS) utilizado por la instancia. El espacio utilizado, junto con los archivos de datos, registros REDO, archivos de auditoría, de seguimiento y de otro tipo, cuenta a la hora de calcular el almacenamiento asignado.

Puede desplazar un archivo de datos externos de una base de datos Oracle a otra base de datos utilizando el paquete [ DBMS\$1FILE\$1TRANSFER](https://docs.oracle.com/database/121/ARPLS/d_ftran.htm#ARPLS095) o el paquete [UTL\$1FILE](https://docs.oracle.com/database/121/ARPLS/u_file.htm#ARPLS069). El archivo de datos externos se traslada de un directorio en la base de datos de origen al directorio especificado en la base de datos de destino. Para obtener más información sobre del uso de `DBMS_FILE_TRANSFER`, consulte [Importación mediante Oracle Data Pump](Oracle.Procedural.Importing.DataPump.md).

Después de trasladar el archivo de datos externos, este le permite crear una tabla externa. En el siguiente ejemplo se crea una tabla externa que usa el archivo `emp_xt_file1.txt` en el directorio USER\$1DIR1.

```
CREATE TABLE emp_xt (
  emp_id      NUMBER,
  first_name  VARCHAR2(50),
  last_name   VARCHAR2(50),
  user_name   VARCHAR2(20)
)
ORGANIZATION EXTERNAL (
  TYPE ORACLE_LOADER
  DEFAULT DIRECTORY USER_DIR1
  ACCESS PARAMETERS (
    RECORDS DELIMITED BY NEWLINE
    FIELDS TERMINATED BY ','
    MISSING FIELD VALUES ARE NULL
    (emp_id,first_name,last_name,user_name)
  )
  LOCATION ('emp_xt_file1.txt')
)
PARALLEL
REJECT LIMIT UNLIMITED;
```

Suponga que quiere trasladar datos de una instancia de base de datos de Oracle en Amazon RDS a un archivo de datos externos. En ese caso, puede rellenar el archivo de datos externos creando una tabla externa y seleccionando los datos de la tabla en la base de datos. Por ejemplo, la siguiente instrucción SQL crea la tabla externa `orders_xt` mediante la consulta a la tabla `orders` de la base de datos.

```
CREATE TABLE orders_xt
  ORGANIZATION EXTERNAL
   (
     TYPE ORACLE_DATAPUMP
     DEFAULT DIRECTORY DATA_PUMP_DIR
     LOCATION ('orders_xt.dmp')
   )
   AS SELECT * FROM orders;
```

En este ejemplo, los datos se rellenan en el archivo `orders_xt.dmp` del directorio DATA\$1PUMP\$1DIR.

# Creación de un punto de comprobación de una base de datos
<a name="Appendix.Oracle.CommonDBATasks.CheckpointingDatabase"></a>

Utilice el procedimiento de Amazon RDS para crear un punto de comprobación de la base dato `rdsadmin.rdsadmin_util.checkpoint`. El procedimiento `checkpoint` no tiene ningún parámetro. 

En el siguiente ejemplo, se crea un punto de comprobación de la base de datos.

```
EXEC rdsadmin.rdsadmin_util.checkpoint;
```

# Configuración de la recuperación distribuida
<a name="Appendix.Oracle.CommonDBATasks.SettingDistributedRecovery"></a>

Utilice los procedimientos `rdsadmin.rdsadmin_util.enable_distr_recovery` y `disable_distr_recovery` de Amazon RDS para configurar la recuperación distribuida. Los procedimientos no tienen ningún parámetro. 

En el siguiente ejemplo se activa la recuperación distribuida.

```
EXEC rdsadmin.rdsadmin_util.enable_distr_recovery;
```

En el siguiente ejemplo se desactiva la recuperación distribuida.

```
EXEC rdsadmin.rdsadmin_util.disable_distr_recovery;
```

# Configuración de la zona horaria de la base de datos
<a name="Appendix.Oracle.CommonDBATasks.TimeZoneSupport"></a>

Puede definir la zona horaria de la base de datos de Amazon RDS for Oracle de las siguientes maneras: 
+ La opción `Timezone`

  La opción `Timezone` cambia la zona horaria en el nivel del host y afecta a todos los valores y columnas de fecha, como `SYSDATE`. Para obtener más información, consulte [Zona horaria Oracle](Appendix.Oracle.Options.Timezone.md). 
+ El procedimiento de Amazon RDS `rdsadmin.rdsadmin_util.alter_db_time_zone`

  El procedimiento `alter_db_time_zone` solo cambia la zona horaria de determinados tipos de datos y no cambia `SYSDATE`. En la [documentación de Oracle](http://docs.oracle.com/cd/B19306_01/server.102/b14225/ch4datetime.htm#i1006705) se especifican otras restricciones para configurar la zona horaria. 

**nota**  
También puede establecer la zona horaria predeterminada para Oracle Scheduler. Para obtener más información, consulte [Configuración de zona horaria para trabajos de Oracle Scheduler](Appendix.Oracle.CommonDBATasks.Scheduler.md#Appendix.Oracle.CommonDBATasks.Scheduler.TimeZone).

El procedimiento `alter_db_time_zone` tiene los siguientes parámetros. 


****  

| Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | 
|  `p_new_tz`  |  varchar2  |  —  |  Sí  |  La nueva zona horaria expresada como una región con nombre o un desfase absoluto con relación a la hora universal coordinada (UTC). Los desfases válidos oscilan entre -12:00 y \$114:00.   | 

En el siguiente ejemplo se cambia la zona horaria a UTC más tres horas. 

```
EXEC rdsadmin.rdsadmin_util.alter_db_time_zone(p_new_tz => '+3:00');
```

En el siguiente ejemplo, se cambia la zona horaria a la de la región África/Argel. 

```
EXEC rdsadmin.rdsadmin_util.alter_db_time_zone(p_new_tz => 'Africa/Algiers');
```

Después de cambiar la zona horaria utilizando el procedimiento `alter_db_time_zone`, reinicie su instancia de base de datos para que el cambio surta efecto. Para obtener más información, consulte [Reinicio de una instancia de base de datos ](USER_RebootInstance.md). Para obtener información acerca de cómo actualizar las zonas horarias, consulte [Consideraciones sobre la zona horaria](USER_UpgradeDBInstance.Oracle.OGPG.md#USER_UpgradeDBInstance.Oracle.OGPG.DST).

# Generación de informes de rendimiento con Automatic Workload Repository (AWR)
<a name="Appendix.Oracle.CommonDBATasks.AWR"></a>

Para recopilar datos de rendimiento y generar informes, Oracle recomienda Automatic Workload Repository (AWR). AWR requiere Oracle Database Enterprise Edition y una licencia para los paquetes Diagnostics and Tuning. Para habilitar AWR, establezca el parámetro de inicialización `CONTROL_MANAGEMENT_PACK_ACCESS` en `DIAGNOSTIC` o `DIAGNOSTIC+TUNING`. 

## Trabajar con informes de AWR en RDS
<a name="Appendix.Oracle.CommonDBATasks.AWRTechniques"></a>

Para generar informes de AWR, puede ejecutar scripts como `awrrpt.sql`. Estos scripts se instalan en el servidor host de la base de datos. En Amazon RDS, no tiene acceso directo al host. Sin embargo, puede obtener copias de scripts SQL desde otra instalación de Oracle Database. 

También puede utilizar AWR ejecutando procedimientos en el paquete `SYS.DBMS_WORKLOAD_REPOSITORY` PL/SQL. Puede utilizar este paquete para administrar bases de referencia e instantáneas, así como para mostrar informes ASH y AWR. Por ejemplo, para generar un informe AWR en formato de texto, ejecute el procedimiento `DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_TEXT`. Sin embargo, no puede acceder a estos informes de AWR desde la Consola de administración de AWS. 

Cuando se trabaja con AWR, se recomienda utilizar los procedimientos `rdsadmin.rdsadmin_diagnostic_util`. Puede utilizar estos procedimientos para generar lo siguiente:
+ Informes AWR
+ Informes de Historial de Sesiones Activas (ASH)
+ Informes del Monitor de diagnóstico automático de bases de datos (ADDM)
+ Archivos de volcado de datos AWR de Oracle Data Pump Export

Los procedimientos `rdsadmin_diagnostic_util` guardan los informes en el sistema de archivos de instancia de base de datos. Puede acceder a estos informes desde la consola. También puede acceder a los informes mediante los procedimientos `rdsadmin.rds_file_util` y puede acceder a los informes que se copian en Amazon S3 mediante la opción Integración de S3. Para obtener más información, consulte [Lectura de archivos de un directorio de instancia de base de datos](Appendix.Oracle.CommonDBATasks.Misc.md#Appendix.Oracle.CommonDBATasks.ReadingFiles) y [Integración de Amazon S3](oracle-s3-integration.md). 

Puede utilizar los procedimientos `rdsadmin_diagnostic_util` en las siguientes versiones del motor para bases de datos de Amazon RDS for Oracle:
+ Todas las versiones de Oracle Database 21c
+ 19.0.0.0.ru-2020-04.rur-2020-04.r1 Oracle Database 19c y versiones posteriores

Para ver un blog que explica cómo trabajar con los informes de diagnóstico en un escenario de replicación, consulte [Generate AWR reports for Amazon RDS for Oracle read replicas](https://aws.amazon.com/blogs/database/generate-awr-reports-for-amazon-rds-for-oracle-read-replicas/).

## Parámetros comunes para el paquete de utilidad de diagnóstico
<a name="Appendix.Oracle.CommonDBATasks.CommonAWRParam"></a>

Normalmente se utilizan los siguientes parámetros al administrar AWR y ADDM con el paquete `rdsadmin_diagnostic_util`.

<a name="rds-provisioned-iops-storage-range-reference"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.AWR.html)

Normalmente, se utilizan los siguientes parámetros al administrar ASH con el paquete rdsadmin\$1diagnostic\$1util.

<a name="rds-provisioned-iops-storage-range-reference"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.AWR.html)

## Generación de un informe AWR
<a name="Appendix.Oracle.CommonDBATasks.GenAWRReport"></a>

Para generar un informe AWR, utilice el procedimiento `rdsadmin.rdsadmin_diagnostic_util.awr_report`.

En el ejemplo siguiente se genera un informe AWR para el rango de instantáneas 101–106. El archivo de texto de salida se denomina `awrrpt_101_106.txt`. Puede obtener acceso a este informe desde la Consola de administración de AWS. 

```
EXEC rdsadmin.rdsadmin_diagnostic_util.awr_report(101,106,'TEXT');
```

En el ejemplo siguiente se genera un informe HTML para el rango de instantáneas 63–65. El archivo HTML de salida se denomina `awrrpt_63_65.html`. El procedimiento escribe el informe en el directorio de base de datos no predeterminado denominado `AWR_RPT_DUMP`.

```
EXEC rdsadmin.rdsadmin_diagnostic_util.awr_report(63,65,'HTML','AWR_RPT_DUMP');
```

## Extracción de datos de AWR en un archivo de volcado
<a name="Appendix.Oracle.CommonDBATasks.ExtractAWR"></a>

Para extraer datos de AWR en un archivo de volcado, utilice el procedimiento `rdsadmin.rdsadmin_diagnostic_util.awr_extract`. Puede utilizar esta función solo en PDB.

En el siguiente ejemplo se extrae el rango de instantáneas 101–106. El archivo de volcado de salida se denomina `awrextract_101_106.dmp`. Puede acceder a este archivo a través de la consola.

```
EXEC rdsadmin.rdsadmin_diagnostic_util.awr_extract(101,106);
```

En el siguiente ejemplo se extrae el rango de instantáneas 63–65. El archivo de volcado de salida se denomina `awrextract_63_65.dmp`. El archivo se almacena en el directorio de base de datos no predeterminado denominado `AWR_RPT_DUMP`.

```
EXEC rdsadmin.rdsadmin_diagnostic_util.awr_extract(63,65,'AWR_RPT_DUMP');
```

## Generación de un informe ADDM
<a name="Appendix.Oracle.CommonDBATasks.ADDM"></a>

Para generar un informe ADDM, utilice el procedimiento `rdsadmin.rdsadmin_diagnostic_util.addm_report`. 

En el ejemplo siguiente se genera un informe ADDM para el rango de instantáneas 101–106. El archivo de texto de salida se denomina `addmrpt_101_106.txt`. Puede acceder al informe a través de la consola.

```
EXEC rdsadmin.rdsadmin_diagnostic_util.addm_report(101,106);
```

En el ejemplo siguiente se genera un informe ADDM para el rango de instantáneas 63–65. El archivo de texto de salida se denomina `addmrpt_63_65.txt`. El archivo se almacena en el directorio de base de datos no predeterminado denominado `ADDM_RPT_DUMP`.

```
EXEC rdsadmin.rdsadmin_diagnostic_util.addm_report(63,65,'ADDM_RPT_DUMP');
```

## Generación de un informe ASH
<a name="Appendix.Oracle.CommonDBATasks.ASH"></a>

Para generar un informe ASH, utilice el procedimiento `rdsadmin.rdsadmin_diagnostic_util.ash_report`. 

En el ejemplo siguiente se genera un informe ASH que incluye los datos desde hace 14 minutos hasta la hora actual. El nombre del archivo de salida utiliza el formato `ashrptbegin_timeend_time.txt`, donde `begin_time` y `end_time` utilizan el formato `YYYYMMDDHH24MISS`. Puede acceder al archivo a través de la consola.

```
BEGIN
    rdsadmin.rdsadmin_diagnostic_util.ash_report(
        begin_time     =>     SYSDATE-14/1440,
        end_time       =>     SYSDATE,
        report_type    =>     'TEXT');
END;
/
```

En el siguiente ejemplo se genera un informe ASH que incluye los datos del 18 de noviembre de 2019, a las 6:07 PM hasta el 18 de noviembre de 2019, a las 6:15 PM. El nombre del informe HTML de salida es `ashrpt_20190918180700_20190918181500.html`. El informe se almacena en el directorio de base de datos no predeterminado denominado `AWR_RPT_DUMP`.

```
BEGIN
    rdsadmin.rdsadmin_diagnostic_util.ash_report(
        begin_time     =>    TO_DATE('2019-09-18 18:07:00', 'YYYY-MM-DD HH24:MI:SS'),
        end_time       =>    TO_DATE('2019-09-18 18:15:00', 'YYYY-MM-DD HH24:MI:SS'),
        report_type    =>    'html',
        dump_directory =>    'AWR_RPT_DUMP');
END;
/
```

## Acceso a los informes de AWR desde la consola o la CLI
<a name="Appendix.Oracle.CommonDBATasks.AWRConsole"></a>

Para acceder a informes de AWR o exportar archivos de volcado, puede utilizar la Consola de administración de AWS o la AWS CLI. Para obtener más información, consulte [Descarga de un archivo de registro de base de datos](USER_LogAccess.Procedural.Downloading.md). 

# Ajuste de los enlaces de base de datos para usarlos con las instancias de bases de datos de una VPC
<a name="Appendix.Oracle.CommonDBATasks.DBLinks"></a>

Para utilizar enlaces de base de datos Oracle con instancias de bases de datos de Amazon RDS dentro de la misma nube virtual privada (VPC) o VPC interconectadas, debe existir una ruta válida entre las dos instancias de bases de datos. Compruebe que existe una ruta válida entre las instancias de bases de datos utilizando las tablas de enrutamiento de VPC y la lista de control de acceso (ACL) de red. 

El grupo de seguridad de cada instancia de base de datos debe permitir la entrada y la salida desde la otra instancia de base de datos. Las reglas de entrada y salida pueden referirse a grupos de seguridad de la misma VPC o de una VPC interconectada. Para obtener más información, consulte [Actualización de los grupos de seguridad para que hagan referencia a grupos de la VPC del mismo nivel](https://docs.aws.amazon.com/vpc/latest/peering/working-with-vpc-peering.html#vpc-peering-security-groups). 

Si ha configurado un servidor DNS personalizado mediante los conjuntos de opciones de DHCP en la VPC, el servidor DNS personalizado debe ser capaz de resolver el nombre del destino del enlace de base de datos. Para obtener más información, consulte [Configuración de un servidor DNS personalizado](Appendix.Oracle.CommonDBATasks.System.md#Appendix.Oracle.CommonDBATasks.CustomDNS). 

Para obtener más información acerca del uso de los enlaces de base de datos con Oracle Data Pump, consulte [Importación mediante Oracle Data Pump](Oracle.Procedural.Importing.DataPump.md). 

# Configuración de la edición predeterminada para una instancia de base de datos
<a name="Appendix.Oracle.CommonDBATasks.DefaultEdition"></a>

Puede redefinir objetos de la base de datos en un entorno privado llamado edición. Puede utilizar la redefinición basada en la edición para actualizar los objetos de la base de datos de una aplicación con un tiempo de inactividad mínimo. 

Puede definir la edición predeterminada de una instancia de base de datos de Oracle en Amazon RDS mediante el uso del procedimiento de Amazon RDS `rdsadmin.rdsadmin_util.alter_default_edition`. 

En el siguiente ejemplo se define la edición predeterminada de la instancia de base de datos de Oracle en Amazon RDS en `RELEASE_V1`. 

```
EXEC rdsadmin.rdsadmin_util.alter_default_edition('RELEASE_V1');
```

En el siguiente ejemplo se vuelve a definir la edición predeterminada de la instancia de base de datos de Oracle en Amazon RDS como la edición predeterminada de Oracle. 

```
EXEC rdsadmin.rdsadmin_util.alter_default_edition('ORA$BASE');
```

Para obtener más información sobre la redefinición basada en la edición de Oracle, consulte [About Editions and Edition-Based Redefinition](https://docs.oracle.com/database/121/ADMIN/general.htm#ADMIN13167) en la documentación de Oracle.

# Activación de la auditoría para la tabla SYS.AUD\$1
<a name="Appendix.Oracle.CommonDBATasks.EnablingAuditing"></a>

Utilice el procedimiento `SYS.AUD$` de Amazon RDS para activar la auditoría en la tabla de prueba de auditoría de base datos `rdsadmin.rdsadmin_master_util.audit_all_sys_aud_table`. La única propiedad de auditoría admitida es `ALL`. No puede auditar o no auditar declaraciones u operaciones individuales.

La activación de la auditoría se admite en instancias de base de datos Oracle que ejecutan las siguientes versiones:
+ Oracle Database 21c (21.0.0)
+ Oracle Database 19c (19.0.0)

El procedimiento `audit_all_sys_aud_table` tiene los siguientes parámetros.


****  

| Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | 
|  `p_by_access`  |  booleano  |  true  |  No  |  Establézcalo en `true` para auditar `BY ACCESS`. Establézcalo en `false` para auditar `BY SESSION`.  | 

La siguiente consulta devuelve la configuración de auditoría actual de `SYS.AUD$` para una base de datos.

```
SELECT * FROM DBA_OBJ_AUDIT_OPTS WHERE OWNER='SYS' AND OBJECT_NAME='AUD$';
```

Los siguientes comandos activan la auditoría de `ALL` en `SYS.AUD$` `BY ACCESS`.

```
EXEC rdsadmin.rdsadmin_master_util.audit_all_sys_aud_table;

EXEC rdsadmin.rdsadmin_master_util.audit_all_sys_aud_table(p_by_access => true);
```

Los siguientes comandos activan la auditoría de `ALL` en `SYS.AUD$` `BY SESSION`.

```
EXEC rdsadmin.rdsadmin_master_util.audit_all_sys_aud_table(p_by_access => false);
```

Para más información, consulte [AUDIT (Traditional Auditing)](https://docs.oracle.com/en/database/oracle/oracle-database/12.2/sqlrf/AUDIT-Traditional-Auditing.html#GUID-ADF45B07-547A-4096-8144-50241FA2D8DD) en la documentación de Oracle. 

# Desactivación de la auditoría para la tabla SYS.AUD\$1
<a name="Appendix.Oracle.CommonDBATasks.DisablingAuditing"></a>

Utilice el procedimiento `SYS.AUD$` de Amazon RDS para desactivar la auditoría en la tabla de prueba de auditoría de base de datos `rdsadmin.rdsadmin_master_util.noaudit_all_sys_aud_table`. Este procedimiento no acepta parámetros. 

La siguiente consulta devuelve la configuración de auditoría actual de `SYS.AUD$` para una base de datos:

```
SELECT * FROM DBA_OBJ_AUDIT_OPTS WHERE OWNER='SYS' AND OBJECT_NAME='AUD$';
```

El siguiente comando desactiva la auditoría de `ALL` en `SYS.AUD$`.

```
EXEC rdsadmin.rdsadmin_master_util.noaudit_all_sys_aud_table;
```

Para más información, consulte [NO AUDIT (Traditional Auditing)](https://docs.oracle.com/en/database/oracle/oracle-database/12.2/sqlrf/NOAUDIT-Traditional-Auditing.html#GUID-9D8EAF18-4AB3-4C04-8BF7-37BD0E15434D) en la documentación de Oracle. 

# Limpieza de construcciones interrumpidas de índices en línea
<a name="Appendix.Oracle.CommonDBATasks.CleanupIndex"></a>

Para limpiar construcciones de índices online fallidas, utilice el procedimiento de Amazon RDS `rdsadmin.rdsadmin_dbms_repair.online_index_clean`. 

El procedimiento `online_index_clean` tiene los siguientes parámetros.


****  

| Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | 
|  `object_id`  |  entero\$1binario  |  `ALL_INDEX_ID`  |  No  |  El ID de objeto del índice. Por lo general, puede usar el ID de objeto del texto de error ORA-08104.  | 
|  `wait_for_lock`  |  entero\$1binario  |  `rdsadmin.rdsadmin_dbms_repair.lock_wait`  |  No  |  Especifique `rdsadmin.rdsadmin_dbms_repair.lock_wait`, el valor predeterminado, para intentar obtener un bloqueo en el objeto subyacente y volver a intentarlo hasta que se alcance un límite interno si el bloqueo falla. Especifique `rdsadmin.rdsadmin_dbms_repair.lock_nowait` para intentar obtener un bloqueo en el objeto subyacente, pero sin volver a intentarlo si falla el bloqueo.  | 

El siguiente ejemplo limpia una construcción de índice online fallida:

```
declare
  is_clean boolean;
begin
  is_clean := rdsadmin.rdsadmin_dbms_repair.online_index_clean(
    object_id     => 1234567890, 
    wait_for_lock => rdsadmin.rdsadmin_dbms_repair.lock_nowait
  );
end;
/
```

Para obtener más información, consulte [ONLINE\$1INDEX\$1CLEAN Function](https://docs.oracle.com/database/121/ARPLS/d_repair.htm#ARPLS67555) en la documentación de Oracle. 

# Omisión de bloques dañados
<a name="Appendix.Oracle.CommonDBATasks.SkippingCorruptBlocks"></a>

Para omitir bloques dañados durante análisis de índice y tablas, utilice el paquete `rdsadmin.rdsadmin_dbms_repair`.

Los siguientes procedimientos encapsulan la funcionalidad del procedimiento `sys.dbms_repair.admin_table` y no toman parámetros:
+ `rdsadmin.rdsadmin_dbms_repair.create_repair_table`
+ `rdsadmin.rdsadmin_dbms_repair.create_orphan_keys_table`
+ `rdsadmin.rdsadmin_dbms_repair.drop_repair_table`
+ `rdsadmin.rdsadmin_dbms_repair.drop_orphan_keys_table`
+ `rdsadmin.rdsadmin_dbms_repair.purge_repair_table`
+ `rdsadmin.rdsadmin_dbms_repair.purge_orphan_keys_table`

Los siguientes procedimientos toman los mismos parámetros que sus contrapartes en el paquete `DBMS_REPAIR` para bases de datos de Oracle:
+ `rdsadmin.rdsadmin_dbms_repair.check_object`
+ `rdsadmin.rdsadmin_dbms_repair.dump_orphan_keys`
+ `rdsadmin.rdsadmin_dbms_repair.fix_corrupt_blocks`
+ `rdsadmin.rdsadmin_dbms_repair.rebuild_freelists`
+ `rdsadmin.rdsadmin_dbms_repair.segment_fix_status`
+ `rdsadmin.rdsadmin_dbms_repair.skip_corrupt_blocks`

Para obtener más información sobre la gestión de daños en la base de datos, consulte [DBMS\$1REPAIR](https://docs.oracle.com/en/database/oracle/oracle-database/19/arpls/DBMS_REPAIR.html#GUID-B8EC4AB3-4D6A-46C9-857F-4ED53CD9C948) en la documentación de Oracle.

**Example Respuesta a bloques dañados**  
En este ejemplo se muestra el flujo de trabajo básico para responder a bloques dañados. Sus pasos dependerán de la ubicación y la naturaleza del daño de sus bloques.  
Antes de intentar reparar bloques dañados, revise detenidamente la documentación de [DBMS\$1REPAIR](https://docs.oracle.com/en/database/oracle/oracle-database/19/arpls/DBMS_REPAIR.html#GUID-B8EC4AB3-4D6A-46C9-857F-4ED53CD9C948).

**Para omitir bloques dañados durante análisis de índices y tablas**

1. Ejecute los siguientes procedimientos para crear tablas de reparación si aún no existen.

   ```
   EXEC rdsadmin.rdsadmin_dbms_repair.create_repair_table;
   EXEC rdsadmin.rdsadmin_dbms_repair.create_orphan_keys_table;
   ```

1. Ejecute los siguientes procedimientos para verificar los registros existentes y purgarlos, si corresponde.

   ```
   SELECT COUNT(*) FROM SYS.REPAIR_TABLE;
   SELECT COUNT(*) FROM SYS.ORPHAN_KEY_TABLE;
   SELECT COUNT(*) FROM SYS.DBA_REPAIR_TABLE;
   SELECT COUNT(*) FROM SYS.DBA_ORPHAN_KEY_TABLE;
   
   EXEC rdsadmin.rdsadmin_dbms_repair.purge_repair_table;
   EXEC rdsadmin.rdsadmin_dbms_repair.purge_orphan_keys_table;
   ```

1. Ejecute el siguiente procedimiento para verificar si hay bloques dañados.

   ```
   SET SERVEROUTPUT ON
   DECLARE v_num_corrupt INT;
   BEGIN
     v_num_corrupt := 0;
     rdsadmin.rdsadmin_dbms_repair.check_object (
       schema_name => '&corruptionOwner',
       object_name => '&corruptionTable',
       corrupt_count =>  v_num_corrupt
     );
     dbms_output.put_line('number corrupt: '||to_char(v_num_corrupt));
   END;
   /
   
   COL CORRUPT_DESCRIPTION FORMAT a30
   COL REPAIR_DESCRIPTION FORMAT a30
   
   SELECT OBJECT_NAME, BLOCK_ID, CORRUPT_TYPE, MARKED_CORRUPT, 
          CORRUPT_DESCRIPTION, REPAIR_DESCRIPTION 
   FROM   SYS.REPAIR_TABLE;
   
   SELECT SKIP_CORRUPT 
   FROM   DBA_TABLES 
   WHERE  OWNER = '&corruptionOwner'
   AND    TABLE_NAME = '&corruptionTable';
   ```

1. Utilice el procedimiento `skip_corrupt_blocks` para habilitar o desactivar la omisión de daños de las tablas afectadas. En función de la situación, es posible que también necesite extraer datos en una tabla nueva y, a continuación, soltar la tabla que contiene el bloque dañado.

   Ejecute el siguiente procedimiento para habilitar la omisión de daños en tablas afectadas.

   ```
   begin
     rdsadmin.rdsadmin_dbms_repair.skip_corrupt_blocks (
       schema_name => '&corruptionOwner',
       object_name => '&corruptionTable',
       object_type => rdsadmin.rdsadmin_dbms_repair.table_object,
       flags => rdsadmin.rdsadmin_dbms_repair.skip_flag);
   end;
   /
   select skip_corrupt from dba_tables where owner = '&corruptionOwner' and table_name = '&corruptionTable';
   ```

   Ejecute el siguiente procedimiento para desactivar la omisión de daños.

   ```
   begin
     rdsadmin.rdsadmin_dbms_repair.skip_corrupt_blocks (
       schema_name => '&corruptionOwner',
       object_name => '&corruptionTable',
       object_type => rdsadmin.rdsadmin_dbms_repair.table_object,
       flags => rdsadmin.rdsadmin_dbms_repair.noskip_flag);
   end;
   /
   
   select skip_corrupt from dba_tables where owner = '&corruptionOwner' and table_name = '&corruptionTable';
   ```

1. Cuando haya completado todo el trabajo de reparación, ejecute los siguientes procedimientos para eliminar las tablas de reparación.

   ```
   EXEC rdsadmin.rdsadmin_dbms_repair.drop_repair_table;
   EXEC rdsadmin.rdsadmin_dbms_repair.drop_orphan_keys_table;
   ```

## Depuración de la Papelera de reciclaje
<a name="Appendix.Oracle.CommonDBATasks.PurgeRecycleBin"></a>

Cuando se elimina una tabla, la base de datos Oracle no elimina inmediatamente su espacio de almacenamiento. La base de datos cambia el nombre de la tabla y la coloca junto con los objetos asociados en una papelera de reciclaje. Al eliminar la papelera de reciclaje, se eliminan estos elementos y se libera su espacio de almacenamiento. 

Para eliminar toda la papelera de reciclaje, utilice el procedimiento de Amazon RDS `rdsadmin.rdsadmin_util.purge_dba_recyclebin`. Sin embargo, este procedimiento no puede eliminar la papelera de reciclaje de objetos `SYS` y `RDSADMIN`. Si necesita eliminar estos objetos, contáctese con AWS Support. 

En el ejemplo siguiente se elimina toda la papelera de reciclaje.

```
EXEC rdsadmin.rdsadmin_util.purge_dba_recyclebin;
```

# Configuración de los valores mostrados de forma predeterminada para la redacción completa
<a name="Appendix.Oracle.CommonDBATasks.FullRedaction"></a>

Para cambiar los valores mostrados de forma predeterminada para la redacción completa en la instancia de Oracle de Amazon RDS, use el procedimiento de Amazon RDS `rdsadmin.rdsadmin_util.dbms_redact_upd_full_rdct_val`. Tenga en cuenta que crea una política de redacción con el paquete PL/SQL `DBMS_REDACT`, tal y como se explica en la documentación de Oracle Database. El procedimiento `dbms_redact_upd_full_rdct_val` especifica los caracteres que se mostrarán para los diferentes tipos de datos afectados por una política actual.

El procedimiento `dbms_redact_upd_full_rdct_val` tiene los siguientes parámetros.


****  

| Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | 
|  `p_number_val`  |  número  |  Nulo  |  No  |  Modifica el valor predeterminado de las columnas del tipo de datos `NUMBER`.  | 
|  `p_binfloat_val`  |  binary\$1float  |  Nulo  |  No  |  Modifica el valor predeterminado de las columnas del tipo de datos `BINARY_FLOAT`.  | 
|  `p_bindouble_val`  |  binary\$1double  |  Nulo  |  No  |  Modifica el valor predeterminado de las columnas del tipo de datos `BINARY_DOUBLE`.  | 
|  `p_char_val`  |  char  |  Nulo  |  No  |  Modifica el valor predeterminado de las columnas del tipo de datos `CHAR`.  | 
|  `p_varchar_val`  |   varchar2  |  Nulo  |  No  |  Modifica el valor predeterminado de las columnas del tipo de datos `VARCHAR2`.  | 
|  `p_nchar_val`  |  nchar  |  Nulo  |  No  |  Modifica el valor predeterminado de las columnas del tipo de datos `NCHAR`.  | 
|  `p_nvarchar_val`  |  nvarchar2  |  Nulo  |  No  |  Modifica el valor predeterminado de las columnas del tipo de datos `NVARCHAR2`.  | 
|  `p_date_val`  |  date  |  Nulo  |  No  |  Modifica el valor predeterminado de las columnas del tipo de datos `DATE`.  | 
|  `p_ts_val`  |  marca de tiempo  |  Nulo  |  No  |  Modifica el valor predeterminado de las columnas del tipo de datos `TIMESTAMP`.  | 
|  `p_tswtz_val`  |  timestamp with time zone  |  Nulo  |  No  |  Modifica el valor predeterminado de las columnas del tipo de datos `TIMESTAMP WITH TIME ZONE`.  | 
|  `p_blob_val`  |  blob  |  Nulo  |  No  |  Modifica el valor predeterminado de las columnas del tipo de datos `BLOB`.  | 
|  `p_clob_val`  |  clob  |  Nulo  |  No  |  Modifica el valor predeterminado de las columnas del tipo de datos `CLOB`.  | 
|  `p_nclob_val`  |  nclob  |  Nulo  |  No  |  Modifica el valor predeterminado de las columnas del tipo de datos `NCLOB`.  | 

El siguiente ejemplo cambia el valor redactado predeterminado a \$1 para el tipo de datos `CHAR`:

```
EXEC rdsadmin.rdsadmin_util.dbms_redact_upd_full_rdct_val(p_char_val => '*');
```

El siguiente ejemplo cambia los valores redactados predeterminados para los tipos de datos `NUMBER`, `DATE` y `CHAR`:

```
BEGIN
rdsadmin.rdsadmin_util.dbms_redact_upd_full_rdct_val(
    p_number_val=>1,
    p_date_val=>to_date('1900-01-01','YYYY-MM-DD'),
    p_varchar_val=>'X');
END;
/
```

Después de modificar los valores predeterminados para la redacción completa con el procedimiento `dbms_redact_upd_full_rdct_val`, reinicie la instancia de base de datos para que el cambio surta efecto. Para obtener más información, consulte [Reinicio de una instancia de base de datos ](USER_RebootInstance.md).

# Realización de tareas comunes relacionadas con el registro para instancias de base de datos Oracle
<a name="Appendix.Oracle.CommonDBATasks.Log"></a>

A continuación, puede encontrar cómo realizar ciertas tareas comunes de DBA relacionadas con el registro en las instancias de base de datos de Amazon RDS que ejecutan Oracle. Para ofrecer una experiencia de servicio administrado, Amazon RDS no proporciona acceso mediante shell a las instancias de bases de datos y restringe el acceso a ciertos procedimientos y tablas del sistema que requieren privilegios avanzados. 

Para obtener más información, consulte [Archivos de registro de base de datos de Amazon RDS para Oracle](USER_LogAccess.Concepts.Oracle.md). 

**Topics**
+ [Activación del modo force logging](#Appendix.Oracle.CommonDBATasks.SettingForceLogging)
+ [Activación del modo supplemental logging](#Appendix.Oracle.CommonDBATasks.AddingSupplementalLogging)
+ [Cambio de archivos de registro en línea](#Appendix.Oracle.CommonDBATasks.SwitchingLogfiles)
+ [Adición de registros REDO en línea](#Appendix.Oracle.CommonDBATasks.RedoLogs)
+ [Eliminación de registros REDO en línea](#Appendix.Oracle.CommonDBATasks.DroppingRedoLogs)
+ [Cambio de tamaño de los registros REDO en línea](Appendix.Oracle.CommonDBATasks.ResizingRedoLogs.md)
+ [Retención de los registros REDO archivados](Appendix.Oracle.CommonDBATasks.RetainRedoLogs.md)
+ [Acceso a los registros de rehacer en línea y archivados](Appendix.Oracle.CommonDBATasks.Log.Download.md)
+ [Descargue registros de rehacer archivados de Amazon S3](Appendix.Oracle.CommonDBATasks.download-redo-logs.md)

## Activación del modo force logging
<a name="Appendix.Oracle.CommonDBATasks.SettingForceLogging"></a>

En el modo force logging, Oracle registra todos los cambios realizados en la base de datos, excepto los cambios efectuados en los espacios de tabla temporales y los segmentos temporales (las cláusulas `NOLOGGING` se omiten). Para obtener más información, consulte [Specifying FORCE LOGGING Mode](https://docs.oracle.com/cd/E11882_01/server.112/e25494/create.htm#ADMIN11096) en la documentación de Oracle. 

Utilice el procedimiento de Amazon RDS para configurar el modo force loggin `rdsadmin.rdsadmin_util.force_logging`. El procedimiento `force_logging` tiene los siguientes parámetros. 


****  

| Nombre del parámetro | Tipo de datos | Valor predeterminado | Sí | Descripción | 
| --- | --- | --- | --- | --- | 
|  `p_enable`  |  booleano  |  true  |  No  |  Establezca este parámetro en `true` para poner la base de datos en modo force logging, y en `false` para quitar la base de datos del modo force logging.   | 

En el siguiente ejemplo se pone la base de datos en el modo force logging. 

```
EXEC rdsadmin.rdsadmin_util.force_logging(p_enable => true);
```

## Activación del modo supplemental logging
<a name="Appendix.Oracle.CommonDBATasks.AddingSupplementalLogging"></a>

Si habilita el registro complementario, LogMiner tiene la información necesaria para admitir filas encadenadas y tablas agrupadas. Para obtener más información, consulte [Supplemental Logging](https://docs.oracle.com/cd/E11882_01/server.112/e22490/logminer.htm#SUTIL1582) en la documentación de Oracle.

Oracle Database no tiene activado el modo supplemental logging de forma predeterminada. Utilice el procedimiento de Amazon RDS para activar y desactivar el modo supplemental loggin `rdsadmin.rdsadmin_util.alter_supplemental_logging`. Para obtener más información acerca de cómo gestiona Amazon RDS la conservación de los registros REDO archivados para las instancias de bases de datos Oracle, consulte [Retención de los registros REDO archivados](Appendix.Oracle.CommonDBATasks.RetainRedoLogs.md). 

El procedimiento `alter_supplemental_logging` tiene los siguientes parámetros. 


****  

| Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | 
|  `p_action`  |  varchar2  |  —  |  Sí  |  `'ADD'` para activar el modo supplemental logging, `'DROP'` para desactivarlo.   | 
|  `p_type`  |  varchar2  |  null  |  No  |  El tipo de supplemental logging. Los valores válidos son: `'ALL'`, `'FOREIGN KEY'`, `'PRIMARY KEY'`, `'UNIQUE'` o `PROCEDURAL`.   | 

En el siguiente ejemplo se activa el modo supplemental logging.

```
begin
    rdsadmin.rdsadmin_util.alter_supplemental_logging(
        p_action => 'ADD');
end;
/
```

En el siguiente ejemplo se activa el modo supplemental logging para todas las columnas de tamaño máximo y de longitud fija. 

```
begin
    rdsadmin.rdsadmin_util.alter_supplemental_logging(
        p_action => 'ADD',
        p_type   => 'ALL');
end;
/
```

En el siguiente ejemplo se activa el modo supplemental logging para las columnas de clave principal. 

```
begin
    rdsadmin.rdsadmin_util.alter_supplemental_logging(
        p_action => 'ADD',
        p_type   => 'PRIMARY KEY');
end;
/
```

## Cambio de archivos de registro en línea
<a name="Appendix.Oracle.CommonDBATasks.SwitchingLogfiles"></a>

Utilice el procedimiento de Amazon RDS para cambiar los archivos de registr `rdsadmin.rdsadmin_util.switch_logfile`. El procedimiento `switch_logfile` no tiene ningún parámetro. 

En el siguiente ejemplo se cambian los archivos de registro.

```
EXEC rdsadmin.rdsadmin_util.switch_logfile;
```

## Adición de registros REDO en línea
<a name="Appendix.Oracle.CommonDBATasks.RedoLogs"></a>

Una instancia de base de datos de Amazon RDS que ejecuta Oracle comienza con cuatro registros REDO online de 128 MB cada uno. Utilice el procedimiento de Amazon RDS para añadir registros REDO adicionale `rdsadmin.rdsadmin_util.add_logfile`. 

El procedimiento `add_logfile` tiene los siguientes parámetros.

**nota**  
Los parámetros son mutuamente excluyentes.


****  

| Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | 
|  `bytes`  |  positivo  |  null  |  No  |  El tamaño del archivo de registro en bytes.  Utilice este parámetro solo si el tamaño del registro es inferior a 2 147 483 648 bytes (2 GiB). De lo contrario, RDS emite un error. Para tamaños de registro superiores a este valor en bytes, utilice el parámetro `p_size` en su lugar.  | 
|  `p_size`  |  varchar2  |  —  |  Sí  |  El tamaño del archivo de registro en kilobytes (K), megabytes (M) o gigabytes (G).  | 

El comando siguiente añade un archivo de registro de 100 MB.

```
EXEC rdsadmin.rdsadmin_util.add_logfile(p_size => '100M');
```

## Eliminación de registros REDO en línea
<a name="Appendix.Oracle.CommonDBATasks.DroppingRedoLogs"></a>

Utilice el procedimiento de Amazon RDS para eliminar registros RED `rdsadmin.rdsadmin_util.drop_logfile`. El procedimiento `drop_logfile` tiene los siguientes parámetros. 


****  

| Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | 
|  `grp`  |  positivo  |  —  |  Sí  |  El número de grupo del registro.  | 

En el siguiente ejemplo se elimina el registro cuyo grupo es el número 3. 

```
EXEC rdsadmin.rdsadmin_util.drop_logfile(grp => 3);
```

Solo puede eliminar los registros cuyo estado sea no utilizado o inactivo. En el siguiente ejemplo se obtienen los estados de los registros.

```
SELECT GROUP#, STATUS FROM V$LOG;

GROUP#     STATUS
---------- ----------------
1          CURRENT
2          INACTIVE
3          INACTIVE
4          UNUSED
```

# Cambio de tamaño de los registros REDO en línea
<a name="Appendix.Oracle.CommonDBATasks.ResizingRedoLogs"></a>

Una instancia de base de datos de Amazon RDS que ejecuta Oracle comienza con cuatro registros REDO online de 128 MB cada uno. En el siguiente ejemplo se muestra cómo puede utilizar los procedimientos de Amazon RDS para cambiar el tamaño de cada uno de los registros de 128 MB a 512 MB. 

```
/* Query V$LOG to see the logs.          */
/* You start with 4 logs of 128 MB each. */

SELECT GROUP#, BYTES, STATUS FROM V$LOG;

GROUP#     BYTES      STATUS
---------- ---------- ----------------
1          134217728  INACTIVE
2          134217728  CURRENT
3          134217728  INACTIVE
4          134217728  INACTIVE


/* Add four new logs that are each 512 MB */

EXEC rdsadmin.rdsadmin_util.add_logfile(bytes => 536870912);
EXEC rdsadmin.rdsadmin_util.add_logfile(bytes => 536870912);
EXEC rdsadmin.rdsadmin_util.add_logfile(bytes => 536870912);
EXEC rdsadmin.rdsadmin_util.add_logfile(bytes => 536870912);


/* Query V$LOG to see the logs. */ 
/* Now there are 8 logs.        */

SELECT GROUP#, BYTES, STATUS FROM V$LOG;

GROUP#     BYTES      STATUS
---------- ---------- ----------------
1          134217728  INACTIVE
2          134217728  CURRENT
3          134217728  INACTIVE
4          134217728  INACTIVE
5          536870912  UNUSED
6          536870912  UNUSED
7          536870912  UNUSED
8          536870912  UNUSED


/* Drop each inactive log using the group number. */

EXEC rdsadmin.rdsadmin_util.drop_logfile(grp => 1);
EXEC rdsadmin.rdsadmin_util.drop_logfile(grp => 3);
EXEC rdsadmin.rdsadmin_util.drop_logfile(grp => 4);


/* Query V$LOG to see the logs. */ 
/* Now there are 5 logs.        */

select GROUP#, BYTES, STATUS from V$LOG;

GROUP#     BYTES      STATUS
---------- ---------- ----------------
2          134217728  CURRENT
5          536870912  UNUSED
6          536870912  UNUSED
7          536870912  UNUSED
8          536870912  UNUSED


/* Switch logs so that group 2 is no longer current. */

EXEC rdsadmin.rdsadmin_util.switch_logfile;


/* Query V$LOG to see the logs.        */ 
/* Now one of the new logs is current. */

SQL>SELECT GROUP#, BYTES, STATUS FROM V$LOG;

GROUP#     BYTES      STATUS
---------- ---------- ----------------
2          134217728  ACTIVE
5          536870912  CURRENT
6          536870912  UNUSED
7          536870912  UNUSED
8          536870912  UNUSED


/* If the status of log 2 is still "ACTIVE", issue a checkpoint to clear it to "INACTIVE".  */

EXEC rdsadmin.rdsadmin_util.checkpoint;


/* Query V$LOG to see the logs.            */ 
/* Now the final original log is inactive. */

select GROUP#, BYTES, STATUS from V$LOG;

GROUP#     BYTES      STATUS
---------- ---------- ----------------
2          134217728  INACTIVE
5          536870912  CURRENT
6          536870912  UNUSED
7          536870912  UNUSED
8          536870912  UNUSED


# Drop the final inactive log.

EXEC rdsadmin.rdsadmin_util.drop_logfile(grp => 2);


/* Query V$LOG to see the logs.    */ 
/* Now there are four 512 MB logs. */

SELECT GROUP#, BYTES, STATUS FROM V$LOG;

GROUP#     BYTES      STATUS
---------- ---------- ----------------
5          536870912  CURRENT
6          536870912  UNUSED
7          536870912  UNUSED
8          536870912  UNUSED
```

# Retención de los registros REDO archivados
<a name="Appendix.Oracle.CommonDBATasks.RetainRedoLogs"></a>

Puede retener los registros de rehacer archivados localmente en una instancia de base de datos para su uso con productos como Oracle LogMiner (`DBMS_LOGMNR`). Después de conservar los registros REDO, puede utilizar LogMiner para analizarlos. Para obtener más información, consulte [Using LogMiner to Analyze Redo Log Files](http://docs.oracle.com/cd/E11882_01/server.112/e22490/logminer.htm) en la documentación de Oracle. 

Utilice el procedimiento de Amazon RDS para conservar los registros REDO archivado `rdsadmin.rdsadmin_util.set_configuration`. Si utiliza este procedimiento en una instancia principal de Oracle Data Guard, RDS cambia la configuración de retención del registro de archivado en la instancia principal y abre las réplicas de lectura, pero no en las réplicas montadas. RDS retiene los registros REDO del archivo más recientes en las réplicas montadas durante un breve periodo de tiempo. RDS elimina automáticamente los registros más antiguos descargados en las réplicas montadas.

El procedimiento `set_configuration` tiene los siguientes parámetros. 


****  

| Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | 
|  `name`  |  varchar  |  —  |  Sí  |  El nombre de la configuración que se debe actualizar. Para cambiar las horas de retención de los registros REDO archivados, defina el nombre en `archivelog retention hours`.  | 
|  `value`  |  varchar  |  —  |  Sí  |  El valor de la configuración. Defina el valor del número de horas que se van a retener los registros.  | 

En el siguiente ejemplo se conservan 24 horas de registros REDO. 

```
begin
    rdsadmin.rdsadmin_util.set_configuration(
        name  => 'archivelog retention hours',
        value => '24');
end;
/
commit;
```

**nota**  
La confirmación es necesaria para que los cambios surtan efecto.

Utilice el procedimiento de Amazon RDS para ver durante cuánto tiempo se conservan los registros REDO archivados para la instancia de base de dato `rdsadmin.rdsadmin_util.show_configuration`.

El siguiente ejemplo muestra el tiempo de retención del registro.

```
set serveroutput on
EXEC rdsadmin.rdsadmin_util.show_configuration;
```

La salida muestra el valor actual de `archivelog retention hours`. La siguiente salida muestra que los registros REDO archivados se conservan durante 48 horas.

```
NAME:archivelog retention hours
VALUE:48
DESCRIPTION:ArchiveLog expiration specifies the duration in hours before archive/redo log files are automatically deleted.
```

Dado que los registros REDO archivados se conservan en la instancia de base de datos, asegúrese de que esta tenga suficiente almacenamiento asignado para los registros que se van a conservar. Para determinar cuánto espacio ha utilizado la instancia de base de datos en las últimas X horas, puede ejecutar la consulta siguiente, sustituyendo X por el número de horas. 

```
SELECT SUM(BLOCKS * BLOCK_SIZE) bytes 
  FROM V$ARCHIVED_LOG
 WHERE FIRST_TIME >= SYSDATE-(X/24) AND DEST_ID=1;
```

RDS for Oracle solo se genera registros de rehacer si el periodo de retención de copia de seguridad de la instancia de base de datos es mayor que cero. De forma predeterminada, el periodo de retención de copia de seguridad es mayor que cero.

Cuando expira el periodo de retención de registros archivados, RDS for Oracle elimina los registros de rehacer archivados de la instancia de base de datos. Para admitir la restauración de la instancia de base de datos en un momento determinado, Amazon RDS retiene los registros de rehacer archivados fuera de la instancia de base de datos en función del periodo de retención de copia de seguridad. Para modificar el periodo de retención de copia de seguridad, consulte [Modificación de una instancia de base de datos de Amazon RDS](Overview.DBInstance.Modifying.md). 

**nota**  
En algunos casos, podría utilizar JDBC en Linux para descargar registros REDO archivados y experimentar tiempos de latencia largos y restablecimientos de conexión. En tales casos, los problemas pueden estar causados por el ajuste predeterminado del generador de números aleatorios en su cliente Java. Recomendamos configurar los controladores JDBC para usar un generador de números aleatorio sin bloqueos.

# Acceso a los registros de rehacer en línea y archivados
<a name="Appendix.Oracle.CommonDBATasks.Log.Download"></a>

Es posible que desee obtener acceso a los archivos de registros REDO online y archivados para realizar tareas de minería de datos con herramientas externas como GoldenGate, Attunity, Informatica y otras. Para acceder a estos archivos, haga lo siguiente:

1. Cree objetos de directorio que proporcionen acceso de solo lectura a las rutas de acceso de los archivos físicos.

   Utilice `rdsadmin.rdsadmin_master_util.create_archivelog_dir` y `rdsadmin.rdsadmin_master_util.create_onlinelog_dir`.

1. Lea los archivos mediante PL/SQL.

   Puede leer los archivos mediante PL/SQL. Para obtener más información acerca de cómo leer archivos de los objetos de directorio, consulte [Descripción de los archivos de un directorio de instancia de base de datos](Appendix.Oracle.CommonDBATasks.Misc.md#Appendix.Oracle.CommonDBATasks.ListDirectories) y [Lectura de archivos de un directorio de instancia de base de datos](Appendix.Oracle.CommonDBATasks.Misc.md#Appendix.Oracle.CommonDBATasks.ReadingFiles).

El acceso a los registros de transacciones es compatible con las siguientes versiones:
+ Oracle Database 21c
+ Oracle Database 19c

El siguiente código crea directorios que proporcionan acceso de solo lectura a los archivos de registros REDO online y archivados: 

**importante**  
Este código también revoca el privilegio `DROP ANY DIRECTORY`.

```
EXEC rdsadmin.rdsadmin_master_util.create_archivelog_dir;
EXEC rdsadmin.rdsadmin_master_util.create_onlinelog_dir;
```

El siguiente código elimina los directorios de los archivos de registros REDO online y archivados. 

```
EXEC rdsadmin.rdsadmin_master_util.drop_archivelog_dir;
EXEC rdsadmin.rdsadmin_master_util.drop_onlinelog_dir;
```

El código siguiente concede y revoca el privilegio `DROP ANY DIRECTORY`.

```
EXEC rdsadmin.rdsadmin_master_util.revoke_drop_any_directory;
EXEC rdsadmin.rdsadmin_master_util.grant_drop_any_directory;
```

# Descargue registros de rehacer archivados de Amazon S3
<a name="Appendix.Oracle.CommonDBATasks.download-redo-logs"></a>

Puede descargar registros de rehacer archivados en su instancia de base de datos con el paquete `rdsadmin.rdsadmin_archive_log_download`. Si los registros de rehacer archivados ya no están en su instancia de base de datos, es posible que desee descargarlos de nuevo desde Amazon S3. Después, puede extraer los registros o usarlos para recuperar o reproducir su base de datos.

**nota**  
No se pueden descargar registros de recuperación de cambios archivados en instancias de réplica de lectura.

## Descargue registros de rehacer archivados: pasos básicos
<a name="Appendix.Oracle.CommonDBATasks.download-redo-logs.basic-process"></a>

La disponibilidad de los registros de rehacer archivados depende de las siguientes políticas de retención:
+ Política de retención de copias de seguridad: los registros dentro de esta política están disponibles en Amazon S3. Los registros fuera de esta política se eliminan.
+ Política de retención de registros archivados: los registros dentro de esta política están disponibles en su instancia de base de datos. Los registros fuera de esta política se eliminan.

Si los registros no se encuentran en su instancia, pero están protegidos por el periodo de retención de copia de seguridad, puede usar `rdsadmin.rdsadmin_archive_log_download` para descargarlos nuevamente. RDS for Oracle guarda los registros en el directorio de `/rdsdbdata/log/arch` en la instancia de base de datos.

**Para descargar registros de rehacer archivados de Amazon S3**

1. Configure el período de retención para garantizar que los registros REDO archivados descargados se retengan durante el tiempo que los necesite. Asegúrese de `COMMIT` su cambio. 

   RDS retiene los registros descargados de acuerdo con la política de retención de registros archivados, a partir del momento en que se descargaron los registros. Si quiere obtener información para configurar la política de retención, consulte [Retención de los registros REDO archivados](Appendix.Oracle.CommonDBATasks.RetainRedoLogs.md).

1. Espere hasta 5 minutos para que el cambio de la política de retención de registros archivados surta efecto.

1. Puede descargar registros de rehacer archivados de Amazon S3 mediante `rdsadmin.rdsadmin_archive_log_download`.

   Para obtener más información, consulte [Descarga de un único registro de rehacer archivado](#Appendix.Oracle.CommonDBATasks.download-redo-logs.single-log) y [Descargue una serie de registros de rehacer archivados](#Appendix.Oracle.CommonDBATasks.download-redo-logs.series).
**nota**  
RDS comprueba automáticamente el almacenamiento disponible antes de descargar. Si los registros solicitados consumen un alto porcentaje de espacio, recibirá una alerta.

1. Confirme que los registros se descargaron correctamente de Amazon S3.

   Puede ver el estado de una tarea de descarga en un archivo bdump. Los archivos bdump tienen el nombre de ruta `/rdsdbdata/log/trace/dbtask-task-id.log`. En el paso de descarga anterior, ejecute una sentencia `SELECT` que devuelva el ID de tarea en un tipo de datos `VARCHAR2`. Para obtener más información, vea ejemplos similares en [Monitoreo del estado de una transferencia de archivos](oracle-s3-integration.using.md#oracle-s3-integration.using.task-status).

## Descarga de un único registro de rehacer archivado
<a name="Appendix.Oracle.CommonDBATasks.download-redo-logs.single-log"></a>

Para descargar un único registro de rehacer archivado en el directorio de `/rdsdbdata/log/arch`, utilice `rdsadmin.rdsadmin_archive_log_download.download_log_with_seqnum`. Este procedimiento tiene los siguientes parámetros.


****  

| Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | 
|  `seqnum`  |  número  |  —  |  Sí  |  El número secuencial del registro de rehacer archivado.  | 

En el siguiente ejemplo, se descarga el registro con el número de secuencia 20.

```
SELECT rdsadmin.rdsadmin_archive_log_download.download_log_with_seqnum(seqnum => 20) 
       AS TASK_ID 
FROM   DUAL;
```

## Descargue una serie de registros de rehacer archivados
<a name="Appendix.Oracle.CommonDBATasks.download-redo-logs.series"></a>

Para descargar una serie de registros de rehacer archivados en el directorio de `/rdsdbdata/log/arch`, utilice `download_logs_in_seqnum_range`. La descarga está limitada a 300 registros por solicitud. El procedimiento `download_logs_in_seqnum_range` tiene los siguientes parámetros.


****  

| Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | 
|  `start_seq`  |  número  |  —  |  Sí  |  El número secuencial inicial para la serie.  | 
|  `end_seq`  |  número  |  —  |  Sí  |  El número secuencial final para la serie.  | 

En el siguiente ejemplo, se descargan los registros de la secuencia 50 a 100.

```
SELECT rdsadmin.rdsadmin_archive_log_download.download_logs_in_seqnum_range(start_seq => 50, end_seq => 100) 
       AS TASK_ID 
FROM   DUAL;
```

# Realización de tareas RMAN comunes para instancias de base de datos de Oracle
<a name="Appendix.Oracle.CommonDBATasks.RMAN"></a>

En la siguiente sección, puede buscar cómo puede realizar tareas de DBA Oracle Recovery Manager (RMAN) en sus instancias de base de datos de Amazon RDS que ejecutan Oracle. Para ofrecer una experiencia de servicio administrado, Amazon RDS no proporciona acceso mediante shell a las instancias de base de datos. También restringe el acceso a ciertos procedimientos y tablas del sistema que requieren privilegios avanzados.

Puede utilizar el paquete de Amazon RDS `rdsadmin.rdsadmin_rman_util` para hacer copias de seguridad de RMAN de su base de datos de Amazon RDS para Oracle en disco. El paquete `rdsadmin.rdsadmin_rman_util` admite copias de seguridad de archivos de bases de datos completas e incrementales, copias de seguridad de espacios de tabla y copias de seguridad de registros REDO.

Una vez finalizada la copia de seguridad de RMAN, puede copiar los archivos de copia de seguridad fuera del host de instancias de bases de datos de Amazon RDS for Oracle. Podría hacer esto con la finalidad de restaurar en un host que no sea de RDS host o para almacenamiento a largo plazo de almacenamiento. Por ejemplo, puede copiar los archivos de copia de seguridad en un bucket de Amazon S3. Para obtener más información, consulte el uso de [Integración de Amazon S3](oracle-s3-integration.md).

Los archivos de copia de seguridad para copias de seguridad de RMAN permanecen en el host de instancias de bases de datos de Amazon RDS hasta que se eliminen manualmente. Puede utilizar el procedimiento `UTL_FILE.FREMOVE` de Oracle para eliminar archivos de un directorio. Para más información, consulte [FREMOVE Procedure](https://docs.oracle.com/database/121/ARPLS/u_file.htm#ARPLS70924) en la documentación de Oracle Database.

No puede utilizar el RMAN para restaurar instancias de base de datos de RDS para Oracle. Sin embargo, puede usar el RMAN para restaurar una copia de seguridad en una instancia en las instalaciones o de Amazon EC2. Para obtener más información, consulte el artículo del blog [Restore an Amazon RDS for Oracle instance to a self-managed instance](https://aws.amazon.com/blogs/database/restore-an-amazon-rds-for-oracle-instance-to-a-self-managed-instance/).

**nota**  
Para hacer una copia de seguridad y restaurar en otra instancia de base de datos de Amazon RDS for Oracle, puede seguir usando las características de copia de seguridad y restauración de Amazon RDS. Para obtener más información, consulte [Copia de seguridad, restauración y exportación de datos](CHAP_CommonTasks.BackupRestore.md).

**Topics**
+ [Requisitos previos para las copias de seguridad de RMAN](Appendix.Oracle.CommonDBATasks.RMAN-requirements.md)
+ [Parámetros comunes para procedimientos de RMAN](Appendix.Oracle.CommonDBATasks.CommonParameters.md)
+ [Validación de archivos de base de datos en RDS para Oracle](Appendix.Oracle.CommonDBATasks.ValidateDBFiles.md)
+ [Activación y desactivación del seguimiento de cambio de bloques](Appendix.Oracle.CommonDBATasks.BlockChangeTracking.md)
+ [Comprobación cruzada de los registros REDO archivados](Appendix.Oracle.CommonDBATasks.Crosscheck.md)
+ [Copia de seguridad de archivos de registro REDO](Appendix.Oracle.CommonDBATasks.BackupArchivedLogs.md)
+ [Realización de una copia de seguridad completa de una base de datos](Appendix.Oracle.CommonDBATasks.BackupDatabaseFull.md)
+ [Realización de una copia de seguridad completa de una base de datos de inquilinos](Appendix.Oracle.CommonDBATasks.BackupTenantDatabaseFull.md)
+ [Realización de una copia de seguridad incremental de una base de datos](Appendix.Oracle.CommonDBATasks.BackupDatabaseIncremental.md)
+ [Realización de una copia de seguridad incremental de una base de datos de inquilinos](Appendix.Oracle.CommonDBATasks.BackupTenantDatabaseIncremental.md)
+ [Copia de seguridad de un espacio de tablas](Appendix.Oracle.CommonDBATasks.BackupTablespace.md)
+ [Copia de seguridad de un archivo de control](Appendix.Oracle.CommonDBATasks.backup-control-file.md)
+ [Realización de la recuperación de medios en bloque](Appendix.Oracle.CommonDBATasks.block-media-recovery.md)

# Requisitos previos para las copias de seguridad de RMAN
<a name="Appendix.Oracle.CommonDBATasks.RMAN-requirements"></a>

Antes de realizar una copia de seguridad de la base de datos mediante el paquete `rdsadmin.rdsadmin_rman_util`, asegúrese de cumplir los siguientes requisitos previos:
+ Asegúrese de que su base de datos de RDS para Oracle esté en modo `ARCHIVELOG`. Para habilitar este modo, establezca el período de retención de la copia de seguridad en un valor distinto de cero.
+ Al hacer copias de seguridad de registros REDO archivados o realizar una copia de seguridad completa o incremental que incluya registros REDO archivados y al hacer copias de seguridad de la base de datos, asegúrese de que la retención de registros REDO esté establecida en un valor distinto de cero. Los registros REDO archivados son necesarios para lograr la coherencia de los archivos de la base de datos durante la recuperación. Para obtener más información, consulte [Retención de los registros REDO archivados](Appendix.Oracle.CommonDBATasks.RetainRedoLogs.md).
+ Asegúrese de que la instancia de base de datos tenga suficiente espacio libre para guardar las copias de seguridad. Cuando realiza una copia de seguridad de la base de datos, especifica un objeto de directorio de Oracle como un parámetro en la llamada al procedimiento. RMAN coloca los archivos en el directorio especificado. Puede utilizar los directorios predeterminados, como `DATA_PUMP_DIR` o crear un nuevo directorio. Para obtener más información, consulte [Creación y eliminación de directorios en el espacio de almacenamiento de datos principal](Appendix.Oracle.CommonDBATasks.Misc.md#Appendix.Oracle.CommonDBATasks.NewDirectories).

  Puede supervisar el espacio libre actual en una instancia de RDS para Oracle mediante la métrica de CloudWatch `FreeStorageSpace`. Se recomienda que el espacio libre supere el tamaño actual de la base de datos, aunque RMAN solo realiza copias de seguridad de bloques formateados y admite compresión.

# Parámetros comunes para procedimientos de RMAN
<a name="Appendix.Oracle.CommonDBATasks.CommonParameters"></a>

Puede usar procedimientos del paquete de Amazon RDS `rdsadmin.rdsadmin_rman_util` para realizar tareas con RMAN. Varios parámetros son comunes en los procedimientos del paquete. El paquete tiene los siguientes parámetros comunes.


****  

| Nombre del parámetro | Tipo de datos | Valores válidos | Predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | --- | 
|  `p_directory_name`  |  varchar2  |  Un nombre de directorio de base de datos válido.  |  —  |  Sí  |  El nombre del directorio que contendrá los archivos de copia de seguridad.  | 
|  `p_label`  |  varchar2  |  `a-z`, `A-Z`, `0-9`, `'_'`, `'-'`, `'.'`  |  —  |  No  |  Una cadena única que se incluye en los nombres de archivos de copia de seguridad.  El límite es 30 caracteres.   | 
|  `p_owner`  |  varchar2  |  Un propietario válido del directorio especificado en `p_directory_name`.  |  —  |  Sí  |  El propietario del directorio que contendrá los archivos de copia de seguridad.  | 
|  `p_tag`  |  varchar2  |  `a-z`, `A-Z`, `0-9`, `'_'`, `'-'`, `'.'`  |  NULL  |  No  |  Una cadena que se puede usar para distinguir entre las copias de seguridad para indicar el propósito o el uso de las copias de seguridad, como las copias de seguridad diarias, semanales o de nivel incremental. El límite es 30 caracteres. La etiqueta no distingue entre mayúsculas y minúsculas. Las etiquetas siempre se guardan en mayúsculas, independientemente de cómo se hayan introducido. Las etiquetas no tienen que ser únicas, por lo que varias copias de seguridad pueden tener la misma etiqueta. Si no se especifica una etiqueta, RMAN asigna de forma automática una etiqueta predeterminada con el formato `TAGYYYYMMDDTHHMMSS`, donde *YYYY* es el año, *MM* es el mes, *DD* es el día, *HH* es la hora (en formato de 24 horas), *MM* son los minutos y *SS* son los segundos. La fecha y la hora se refieren al momento en que RMAN inició la copia de seguridad. Por ejemplo, una copia de seguridad podría recibir una etiqueta `TAG20190927T214517` para una copia de seguridad iniciada el 27-09-2019 a las 21:45:17. El parámetro `p_tag` es compatible con las siguientes versiones del motor para bases de datos de Amazon RDS for Oracle: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.CommonParameters.html)  | 
|  `p_compress`  |  booleano  |  `TRUE`, `FALSE`  |  `FALSE`  |  No  |  Especifique `TRUE` para activar la compresión de copia de seguridad BÁSICA. Especifique `FALSE` para desactivar la compresión de copia de seguridad BÁSICA.  | 
|  `p_include_archive_logs`  |  booleano  |  `TRUE`, `FALSE`  |  `FALSE`  |  No  |  Especifique `TRUE` para incluir los registros REDO archivados en la copia de seguridad. Especifique `FALSE` para excluir los registros REDO archivados de la copia de seguridad. Si incluye los registros REDO archivados en la copia de seguridad, establezca la retención en una hora o más utilizando el procedimiento `rdsadmin.rdsadmin_util.set_configuration`. Asimismo, llame al procedimiento `rdsadmin.rdsadmin_rman_util.crosscheck_archivelog` inmediatamente antes de ejecutar la copia de seguridad. De lo contrario, podría producirse un error en la copia de seguridad debido a que faltan archivos REDO archivados que se han eliminado mediante los procedimientos de administración de Amazon RDS.  | 
|  `p_include_controlfile`  |  booleano  |  `TRUE`, `FALSE`  |  `FALSE`  |  No  |  Especifique `TRUE` para incluir el archivo de control en la copia de seguridad. Especifique `FALSE` para excluir el archivo de control de la copia de seguridad.  | 
|  `p_optimize`  |  booleano  |  `TRUE`, `FALSE`  |  `TRUE`  |  No  |  Especifique `TRUE` para activar la optimización de copia de seguridad, si se incluyen los registros REDO archivados, para reducir el tamaño de la copia de seguridad. Especifique `FALSE` para desactivar la optimización de las copias de seguridad.  | 
|  `p_parallel`  |  número  |  Un entero válido entre `1` y `254` para Oracle Database Enterprise Edition (EE) `1` para otras ediciones de Oracle Database  |  `1`  |  No  |  Número de canales.  | 
|  `p_rman_to_dbms_output`  |  booleano  |  `TRUE`, `FALSE`  |  `FALSE`  |  No  |  Si es `TRUE`, la salida RMAN se envía al paquete `DBMS_OUTPUT` además de al archivo del directorio `BDUMP`. En SQL\$1Plus, use `SET SERVEROUTPUT ON` para ver la salida. Si es `FALSE`, la salida RMAN solo se envía a un archivo del directorio `BDUMP`.   | 
|  `p_section_size_mb`  |  número  |  Un entero válido  |  `NULL`  |  No  |  Tamaño de la sección en megabytes (MB). Se valida en paralelo dividiendo cada archivo en el tamaño de sección especificado. Si es `NULL`, se omite el parámetro.  | 
|  `p_validation_type`  |  varchar2  |  `'PHYSICAL'`, `'PHYSICAL+LOGICAL'`  |  `'PHYSICAL'`  |  No  |  Nivel de detección de algún tipo de daño. Especifique `'PHYSICAL'` para comprobar si hay daños físicos. Un ejemplo de daño físico es un bloque con una coincidencia en el encabezado y en el pie de página. Especifique `'PHYSICAL+LOGICAL'` para comprobar si existen inconsistencias lógicas además del daño físico. Un ejemplo de daño lógico es un bloque dañado.  | 

# Validación de archivos de base de datos en RDS para Oracle
<a name="Appendix.Oracle.CommonDBATasks.ValidateDBFiles"></a>

Puede utilizar el paquete `rdsadmin.rdsadmin_rman_util` de Amazon RDS para validar los archivos de base de datos de Amazon RDS para Oracle, como archivos de datos, tablespaces, archivos de control y archivos de parámetros de servidor (SPFILE).

Para obtener más información sobre la validación RMAN, consulte [Validating Database Files and Backups](https://docs.oracle.com/database/121/BRADV/rcmvalid.htm#BRADV90063) y [VALIDATE](https://docs.oracle.com/database/121/RCMRF/rcmsynta2025.htm#RCMRF162) en la documentación de Oracle.

**Topics**
+ [Validación de una base de datos](#Appendix.Oracle.CommonDBATasks.ValidateDB)
+ [Validación de una base de datos de inquilinos](#Appendix.Oracle.CommonDBATasks.ValidateTenantDB)
+ [Validación de un espacio de tabla](#Appendix.Oracle.CommonDBATasks.ValidateTablespace)
+ [Validación de un archivo de control](#Appendix.Oracle.CommonDBATasks.ValidateControlFile)
+ [Validación de un SPFILE](#Appendix.Oracle.CommonDBATasks.ValidateSpfile)
+ [Validación de un archivo de datos de Oracle](#Appendix.Oracle.CommonDBATasks.ValidateDataFile)

## Validación de una base de datos
<a name="Appendix.Oracle.CommonDBATasks.ValidateDB"></a>

Para validar todos los archivos relevantes utilizados por una base de datos de Oracle en RDS for Oracle, utilice el procedimiento de Amazon RDS `rdsadmin.rdsadmin_rman_util.validate_database`. 

Este procedimiento utiliza los siguientes parámetros comunes para tareas de RMAN:
+ `p_validation_type`
+ `p_parallel`
+ `p_section_size_mb`
+ `p_rman_to_dbms_output`

Para obtener más información, consulte [Parámetros comunes para procedimientos de RMAN](Appendix.Oracle.CommonDBATasks.CommonParameters.md).

El siguiente ejemplo valida la base de datos utilizando los valores predeterminados para los parámetros.

```
EXEC rdsadmin.rdsadmin_rman_util.validate_database;
```

El siguiente ejemplo valida la base de datos utilizando los valores especificados para los parámetros.

```
BEGIN
    rdsadmin.rdsadmin_rman_util.validate_database(
        p_validation_type     => 'PHYSICAL+LOGICAL', 
        p_parallel            => 4,  
        p_section_size_mb     => 10,
        p_rman_to_dbms_output => FALSE);
END;
/
```

Si el parámetro `p_rman_to_dbms_output` se define como `FALSE`, la salida RMAN se escribe en un archivo del directorio `BDUMP`.

Para ver los archivos del directorio `BDUMP`, ejecute la siguiente instrucción `SELECT`.

```
SELECT * FROM table(rdsadmin.rds_file_util.listdir('BDUMP')) order by mtime;
```

Para ver los contenidos de un archivo del directorio `BDUMP`, ejecute la siguiente instrucción `SELECT`.

```
SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP','rds-rman-validate-nnn.txt'));
```

Reemplace el nombre de archivo por el nombre del archivo que quiere visualizar.

## Validación de una base de datos de inquilinos
<a name="Appendix.Oracle.CommonDBATasks.ValidateTenantDB"></a>

Para validar los archivos de datos de la base de datos del inquilino en una base de datos de contenedor (CDB), utilice el procedimiento de Amazon RDS `rdsadmin.rdsadmin_rman_util.validate_tenant`. 

Este procedimiento solo se aplica a la base de datos del inquilino actual y utiliza los siguientes parámetros comunes para las tareas de RMAN:
+ `p_validation_type`
+ `p_parallel`
+ `p_section_size_mb`
+ `p_rman_to_dbms_output`

Para obtener más información, consulte [Parámetros comunes para procedimientos de RMAN](Appendix.Oracle.CommonDBATasks.CommonParameters.md). Este procedimiento es compatible con las siguientes versiones del motor de base de datos:
+ Oracle Database 21c (21.0.0) CDB
+ Oracle Database 19c (19.0.0) CDB

El siguiente ejemplo valida la base de datos de inquilinos actual utilizando los valores especificados para los parámetros.

```
EXEC rdsadmin.rdsadmin_rman_util.validate_tenant;
```

El siguiente ejemplo valida la base de datos de inquilinos actual utilizando los valores especificados para los parámetros.

```
BEGIN
    rdsadmin.rdsadmin_rman_util.validate_tenant(
        p_validation_type     => 'PHYSICAL+LOGICAL', 
        p_parallel            => 4,  
        p_section_size_mb     => 10,
        p_rman_to_dbms_output => FALSE);
END;
/
```

Si el parámetro `p_rman_to_dbms_output` se define como `FALSE`, la salida RMAN se escribe en un archivo del directorio `BDUMP`.

Para ver los archivos del directorio `BDUMP`, ejecute la siguiente instrucción `SELECT`.

```
SELECT * FROM table(rdsadmin.rds_file_util.listdir('BDUMP')) order by mtime;
```

Para ver los contenidos de un archivo del directorio `BDUMP`, ejecute la siguiente instrucción `SELECT`.

```
SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP','rds-rman-validate-nnn.txt'));
```

Reemplace el nombre de archivo por el nombre del archivo que quiere visualizar.

## Validación de un espacio de tabla
<a name="Appendix.Oracle.CommonDBATasks.ValidateTablespace"></a>

Utilice el procedimiento de Amazon RDS para validar los archivos asociados a un espacio de tabl `rdsadmin.rdsadmin_rman_util.validate_tablespace`. 

Este procedimiento utiliza los siguientes parámetros comunes para tareas de RMAN:
+ `p_validation_type`
+ `p_parallel`
+ `p_section_size_mb`
+ `p_rman_to_dbms_output`

Para obtener más información, consulte [Parámetros comunes para procedimientos de RMAN](Appendix.Oracle.CommonDBATasks.CommonParameters.md).

Este procedimiento también utiliza los siguientes parámetros adicionales.


****  

| Nombre del parámetro | Tipo de datos | Valores válidos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | --- | 
|  `p_tablespace_name`  |  varchar2  |  Nombre de un espacio de tabla válido  |  —  |  Sí  |  Nombre del espacio de tabla.  | 

## Validación de un archivo de control
<a name="Appendix.Oracle.CommonDBATasks.ValidateControlFile"></a>

Utilice el procedimiento de Amazon RDS para validar únicamente el archivo de control utilizado por una instancia de base de datos de Oracle en Amazon RDS `rdsadmin.rdsadmin_rman_util.validate_current_controlfile`. 

Este procedimiento utiliza el siguiente parámetro común para tareas de RMAN:
+ `p_validation_type`
+ `p_rman_to_dbms_output`

Para obtener más información, consulte [Parámetros comunes para procedimientos de RMAN](Appendix.Oracle.CommonDBATasks.CommonParameters.md).

## Validación de un SPFILE
<a name="Appendix.Oracle.CommonDBATasks.ValidateSpfile"></a>

Utilice el procedimiento de Amazon RDS para validar únicamente el archivo de parámetros de servidor (SPFILE) utilizado por una instancia de base de datos de Oracle en Amazon RDS `rdsadmin.rdsadmin_rman_util.validate_spfile`. 

Este procedimiento utiliza el siguiente parámetro común para tareas de RMAN:
+ `p_validation_type`
+ `p_rman_to_dbms_output`

Para obtener más información, consulte [Parámetros comunes para procedimientos de RMAN](Appendix.Oracle.CommonDBATasks.CommonParameters.md).

## Validación de un archivo de datos de Oracle
<a name="Appendix.Oracle.CommonDBATasks.ValidateDataFile"></a>

Utilice el procedimiento de Amazon RDS para validar un archivo de dato `rdsadmin.rdsadmin_rman_util.validate_datafile`. 

Este procedimiento utiliza los siguientes parámetros comunes para tareas de RMAN:
+ `p_validation_type`
+ `p_parallel`
+ `p_section_size_mb`
+ `p_rman_to_dbms_output`

Para obtener más información, consulte [Parámetros comunes para procedimientos de RMAN](Appendix.Oracle.CommonDBATasks.CommonParameters.md).

Este procedimiento también utiliza los siguientes parámetros adicionales.


****  

| Nombre del parámetro | Tipo de datos | Valores válidos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | --- | 
|  `p_datafile`  |  varchar2  |  Un número de ID de archivo de datos válido o un nombre de archivo de datos válido, incluida su ruta completa  |  —  |  Sí  |  Número de ID del archivo de datos (de `v$datafile.file#`) o el nombre completo del archivo de datos, incluida su ruta (de `v$datafile.name`).  | 
|  `p_from_block`  |  número  |  Un entero válido  |  `NULL`  |  No  |  Número del bloque donde se inicia la validación dentro del archivo de datos. Si es`NULL`, se utiliza `1`.  | 
|  `p_to_block`  |  número  |  Un entero válido  |  `NULL`  |  No  |  Número del bloque donde se inicia el fin de la validación dentro del archivo de datos. Si es `NULL`, se utiliza el bloque máximo del archivo de datos.  | 

# Activación y desactivación del seguimiento de cambio de bloques
<a name="Appendix.Oracle.CommonDBATasks.BlockChangeTracking"></a>

Bloquear los registros del seguimiento de cambio de bloques cambió los bloques de un archivo de seguimiento. Esta técnica puede mejorar el rendimiento de las copias de seguridad RMAN incrementales. Para obtener más información, consulte [Uso del seguimiento de cambio de bloque para aumentar el rendimiento de las copias de seguridad incrementales](https://docs.oracle.com/en/database/oracle/oracle-database/19/bradv/backing-up-database.html#GUID-4E1F605A-76A7-48D0-9D9B-7343B4327E2A), en la Documentación de la base de datos de Oracle.

Las características de RMAN no se admiten en una réplica de lectura. Sin embargo, como parte de su estrategia de alta disponibilidad, podría optar por habilitar el seguimiento de cambios de bloques en una réplica de solo lectura mediante el procedimiento `rdsadmin.rdsadmin_rman_util.enable_block_change_tracking`. Si promueve esta réplica de solo lectura a una instancia de base de datos de origen, se habilita el seguimiento de cambio de bloques para la nueva instancia de origen. De este modo, su instancia puede beneficiarse de copias de seguridad incrementales rápidas.

Los procedimientos de seguimiento de cambio de bloques son compatibles en la Enterprise Edition solo para las siguientes versiones del motor de base de datos:
+ Oracle Database 21c (21.0.0)
+ Oracle Database 19c (19.0.0)

**nota**  
En un CDB de un solo propietario, funcionan las siguientes operaciones, pero ningún mecanismo visible por el cliente puede detectar el estado actual de las operaciones. Véase también [Limitaciones de las CDB de RDS para Oracle](Oracle.Concepts.CDBs.md#Oracle.Concepts.single-tenant-limitations).

Puede activar el seguimiento de cambio de bloques de una instancia de base de datos utilizando el procedimiento de Amazon RDS `rdsadmin.rdsadmin_rman_util.enable_block_change_tracking`. Para desactivar el seguimiento de cambio de bloques, utilice `disable_block_change_tracking`. Estos procedimientos no tienen ningún parámetro.

Para determinar si el seguimiento de cambios de bloques está activado para su instancia de base de datos, ejecute la siguiente consulta.

```
SELECT STATUS, FILENAME FROM V$BLOCK_CHANGE_TRACKING;
```

El siguiente ejemplo activa el seguimiento de cambios de bloque para una instancia de base de datos.

```
EXEC rdsadmin.rdsadmin_rman_util.enable_block_change_tracking;
```

El siguiente ejemplo desactiva el seguimiento de cambios de bloque para una instancia de DB.

```
EXEC rdsadmin.rdsadmin_rman_util.disable_block_change_tracking;
```

# Comprobación cruzada de los registros REDO archivados
<a name="Appendix.Oracle.CommonDBATasks.Crosscheck"></a>

Puede hacer una comprobación cruzada de registros REDO archivados utilizando el procedimiento de Amazon RDS `rdsadmin.rdsadmin_rman_util.crosscheck_archivelog`.

Puede usar este procedimiento para hacer la comprobación cruzada de los registros REDO archivados en el archivo de control y, opcionalmente, eliminar los registros caducados. Cuando RMAN realiza una copia de seguridad, crea un registro en el archivo de control. Con el tiempo, estos registros aumentan el tamaño del archivo de control. Le recomendamos que elimine los registros caducados periódicamente.

**nota**  
Las copias estándar de Amazon RDS no utilizan RMAN y, por tanto, no crean registros en el archivo de control.

este procedimiento utiliza el parámetro común `p_rman_to_dbms_output` para tareas de RMAN.

Para obtener más información, consulte [Parámetros comunes para procedimientos de RMAN](Appendix.Oracle.CommonDBATasks.CommonParameters.md).

Este procedimiento también utiliza los siguientes parámetros adicionales.


****  

| Nombre del parámetro | Tipo de datos | Valores válidos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | --- | 
|  `p_delete_expired`  |  booleano  |  `TRUE`, `FALSE`  |  `TRUE`  |  No  |  Si es `TRUE`, elimina los registros REDO archivados caducados del archivo de control. Si es `FALSE`, retiene los registros REDO archivados en el archivo de control.   | 

Este procedimiento es compatible con las siguientes versiones de motores de bases de datos de Amazon RDS for Oracle:
+ Oracle Database 21c (21.0.0)
+ Oracle Database 19c (19.0.0)

En el ejemplo siguiente se marcan registros redo log archivados en el archivo de control como caducados, pero no se eliminan los registros.

```
BEGIN
    rdsadmin.rdsadmin_rman_util.crosscheck_archivelog(
        p_delete_expired      => FALSE,  
        p_rman_to_dbms_output => FALSE);
END;
/
```

El siguiente ejemplo elimina registros REDO archivados caducados del archivo de control.

```
BEGIN
    rdsadmin.rdsadmin_rman_util.crosscheck_archivelog(
        p_delete_expired      => TRUE,  
        p_rman_to_dbms_output => FALSE);
END;
/
```

# Copia de seguridad de archivos de registro REDO
<a name="Appendix.Oracle.CommonDBATasks.BackupArchivedLogs"></a>

Puede utilizar el paquete `rdsadmin.rdsadmin_rman_util` de Amazon RDS para hacer una copia de seguridad de los registros REDO archivados de una instancia de base de datos de Amazon RDS Oracle.

Los procedimientos para hacer copias de seguridad de registros REDO archivados son compatibles con las siguientes versiones de motores de bases de datos de Amazon RDS for Oracle:
+ Oracle Database 21c (21.0.0)
+ Oracle Database 19c (19.0.0)

**Topics**
+ [Copia de seguridad de todos los registros REDO archivados](#Appendix.Oracle.CommonDBATasks.BackupArchivedLogs.All)
+ [Copia de seguridad de un registro REDO archivado a partir de un intervalo de fechas](#Appendix.Oracle.CommonDBATasks.BackupArchivedLogs.Date)
+ [Copia de seguridad de un registro REDO archivado a partir de un intervalo de SCN](#Appendix.Oracle.CommonDBATasks.BackupArchivedLogs.SCN)
+ [Copia de seguridad de un registro REDO archivado a partir de un intervalo de números secuenciales](#Appendix.Oracle.CommonDBATasks.BackupArchivedLogs.Sequence)

## Copia de seguridad de todos los registros REDO archivados
<a name="Appendix.Oracle.CommonDBATasks.BackupArchivedLogs.All"></a>

Utilice el procedimiento de Amazon RDS para hacer una copia de seguridad de todos los registros REDO archivados de una instancia de base de datos de Oracle en Amazon RDS `rdsadmin.rdsadmin_rman_util.backup_archivelog_all`. 

Este procedimiento utiliza los siguientes parámetros comunes para tareas de RMAN:
+ `p_owner`
+ `p_directory_name`
+ `p_label`
+ `p_parallel`
+ `p_compress`
+ `p_rman_to_dbms_output`
+ `p_tag`

Para obtener más información, consulte [Parámetros comunes para procedimientos de RMAN](Appendix.Oracle.CommonDBATasks.CommonParameters.md).

El siguiente ejemplo hace una copia de seguridad de todos los registros REDO archivados para la instancia de base de datos.

```
BEGIN
    rdsadmin.rdsadmin_rman_util.backup_archivelog_all(
        p_owner               => 'SYS', 
        p_directory_name      => 'MYDIRECTORY',
        p_parallel            => 4, 
        p_tag                 => 'MY_LOG_BACKUP',
        p_rman_to_dbms_output => FALSE);
END;
/
```

## Copia de seguridad de un registro REDO archivado a partir de un intervalo de fechas
<a name="Appendix.Oracle.CommonDBATasks.BackupArchivedLogs.Date"></a>

Utilice el procedimiento de Amazon RDS para hacer una copia de seguridad de registros REDO archivados específicos de una instancia de base de datos de Oracle en Amazon RDS `rdsadmin.rdsadmin_rman_util.backup_archivelog_date`. El intervalo de fechas especifica los registros REDO archivados de los que se va a hacer una copia de seguridad. 

Este procedimiento utiliza los siguientes parámetros comunes para tareas de RMAN:
+ `p_owner`
+ `p_directory_name`
+ `p_label`
+ `p_parallel`
+ `p_compress`
+ `p_rman_to_dbms_output`
+ `p_tag`

Para obtener más información, consulte [Parámetros comunes para procedimientos de RMAN](Appendix.Oracle.CommonDBATasks.CommonParameters.md).

Este procedimiento también utiliza los siguientes parámetros adicionales.


****  

| Nombre del parámetro | Tipo de datos | Valores válidos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | --- | 
|  `p_from_date`  |  date  |  Una fecha que se encuentra entre la `start_date` y la `next_date` de un registro REDO archivado que existe en el disco. El valor debe ser menor o igual que el valor especificado para `p_to_date`.  |  —  |  Sí  |  La fecha inicial de las copias de seguridad de registros archivados.  | 
|  `p_to_date`  |  date  |  Una fecha que se encuentra entre la `start_date` y la `next_date` de un registro REDO archivado que existe en el disco. El valor debe ser mayor o igual que el valor especificado para `p_from_date`.  |  —  |  Sí  |  La fecha final de las copias de seguridad de registros archivados.  | 

El siguiente ejemplo hace una copia de seguridad de todos los registros REDO archivados en el intervalo de fechas para la instancia de base de datos.

```
BEGIN
    rdsadmin.rdsadmin_rman_util.backup_archivelog_date(
        p_owner               => 'SYS', 
        p_directory_name      => 'MYDIRECTORY',
        p_from_date           => '03/01/2019 00:00:00',
        p_to_date             => '03/02/2019 00:00:00',
        p_parallel            => 4,  
        p_tag                 => 'MY_LOG_BACKUP',
        p_rman_to_dbms_output => FALSE);
END;
/
```

## Copia de seguridad de un registro REDO archivado a partir de un intervalo de SCN
<a name="Appendix.Oracle.CommonDBATasks.BackupArchivedLogs.SCN"></a>

Utilice el procedimiento de Amazon RDS para hacer una copia de seguridad de registros REDO archivados específicos de una instancia de base de datos de Oracle en Amazon RDS mediante la especificación de un intervalo de números de cambio del sistema (SCN `rdsadmin.rdsadmin_rman_util.backup_archivelog_scn`. El intervalo de SCN especifica qué registros REDO archivados incluir en la copia de seguridad. 

Este procedimiento utiliza los siguientes parámetros comunes para tareas de RMAN:
+ `p_owner`
+ `p_directory_name`
+ `p_label`
+ `p_parallel`
+ `p_compress`
+ `p_rman_to_dbms_output`
+ `p_tag`

Para obtener más información, consulte [Parámetros comunes para procedimientos de RMAN](Appendix.Oracle.CommonDBATasks.CommonParameters.md).

Este procedimiento también utiliza los siguientes parámetros adicionales.


****  

| Nombre del parámetro | Tipo de datos | Valores válidos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | --- | 
|  `p_from_scn`  |  número  |  Un SCN de un registro REDO archivado que existe en el disco. El valor debe ser menor o igual que el valor especificado para `p_to_scn`.  |  —  |  Sí  |  El SCN inicial para las copias de seguridad de registros archivados.  | 
|  `p_to_scn`  |  número  |  Un SCN de un registro REDO archivado que existe en el disco. El valor debe ser mayor o igual que el valor especificado para `p_from_scn`.  |  —  |  Sí  |  El SCN final para las copias de seguridad de registros archivados.  | 

El siguiente ejemplo hace copia de seguridad de los registros REDO archivados en el intervalo de SCN para la instancia de base de datos.

```
BEGIN
    rdsadmin.rdsadmin_rman_util.backup_archivelog_scn(
        p_owner               => 'SYS', 
        p_directory_name      => 'MYDIRECTORY',
        p_from_scn            => 1533835,
        p_to_scn              => 1892447,
        p_parallel            => 4,
        p_tag                 => 'MY_LOG_BACKUP',
        p_rman_to_dbms_output => FALSE);
END;
/
```

## Copia de seguridad de un registro REDO archivado a partir de un intervalo de números secuenciales
<a name="Appendix.Oracle.CommonDBATasks.BackupArchivedLogs.Sequence"></a>

Utilice el procedimiento de Amazon RDS para hacer una copia de seguridad de registros REDO archivados específicos de una instancia de base de datos de Oracle en Amazon RDS mediante la especificación de un intervalo de números secuenciale `rdsadmin.rdsadmin_rman_util.backup_archivelog_sequence`. El intervalo de números secuenciales especifica qué registros REDO archivados incluir en la copia de seguridad. 

Este procedimiento utiliza los siguientes parámetros comunes para tareas de RMAN:
+ `p_owner`
+ `p_directory_name`
+ `p_label`
+ `p_parallel`
+ `p_compress`
+ `p_rman_to_dbms_output`
+ `p_tag`

Para obtener más información, consulte [Parámetros comunes para procedimientos de RMAN](Appendix.Oracle.CommonDBATasks.CommonParameters.md).

Este procedimiento también utiliza los siguientes parámetros adicionales.


****  

| Nombre del parámetro | Tipo de datos | Valores válidos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | --- | 
|  `p_from_sequence`  |  número  |  Un número secuencial de un registro REDO archivado que existe en el disco. El valor debe ser menor o igual que el valor especificado para `p_to_sequence`.  |  —  |  Sí  |  El número secuencial inicial para las copias de seguridad de registros archivados.  | 
|  `p_to_sequence`  |  número  |  Un número secuencial de un registro REDO archivado que existe en el disco. El valor debe ser mayor o igual que el valor especificado para `p_from_sequence`.  |  —  |  Sí  |  El número secuencial final para las copias de seguridad de registros archivados.  | 

El siguiente ejemplo hace copia de seguridad de los registros REDO archivados en el intervalo de número secuenciales para la instancia de base de datos.

```
BEGIN
    rdsadmin.rdsadmin_rman_util.backup_archivelog_sequence(
        p_owner               => 'SYS', 
        p_directory_name      => 'MYDIRECTORY',
        p_from_sequence       => 11160,
        p_to_sequence         => 11160,
        p_parallel            => 4,  
        p_tag                 => 'MY_LOG_BACKUP',
        p_rman_to_dbms_output => FALSE);
END;
/
```

# Realización de una copia de seguridad completa de una base de datos
<a name="Appendix.Oracle.CommonDBATasks.BackupDatabaseFull"></a>

Puede realizar una copia de seguridad de todos los bloques de archivos de datos incluidos en la copia de seguridad utilizando el procedimiento de Amazon RDS `rdsadmin.rdsadmin_rman_util.backup_database_full`.

Este procedimiento utiliza los siguientes parámetros comunes para tareas de RMAN:
+ `p_owner`
+ `p_directory_name`
+ `p_label`
+ `p_parallel`
+ `p_section_size_mb`
+ `p_include_archive_logs`
+ `p_optimize`
+ `p_compress`
+ `p_rman_to_dbms_output`
+ `p_tag`

Para obtener más información, consulte [Parámetros comunes para procedimientos de RMAN](Appendix.Oracle.CommonDBATasks.CommonParameters.md).

Este procedimiento es compatible con las siguientes versiones de motores de bases de datos de Amazon RDS for Oracle:
+ Oracle Database 21c (21.0.0)
+ Oracle Database 19c (19.0.0)

El siguiente ejemplo realiza una copia de seguridad completa de la instancia de base de datos mediante el uso de valores específicos para los parámetros:

```
BEGIN
    rdsadmin.rdsadmin_rman_util.backup_database_full(
        p_owner               => 'SYS', 
        p_directory_name      => 'MYDIRECTORY',
        p_parallel            => 4,  
        p_section_size_mb     => 10,
        p_tag                 => 'FULL_DB_BACKUP',
        p_rman_to_dbms_output => FALSE);
END;
/
```

# Realización de una copia de seguridad completa de una base de datos de inquilinos
<a name="Appendix.Oracle.CommonDBATasks.BackupTenantDatabaseFull"></a>

Puede realizar una copia de seguridad de todos los bloques de datos incluidos una base de datos de inquilinos en una base de datos de contenedores (CDB). Utilice el procedimiento de Amazon RDS `rdsadmin.rdsadmin_rman_util.backup_tenant_full`. Este procedimiento solo se aplica a la copia de seguridad de la base de datos actual y utiliza los siguientes parámetros comunes para las tareas de RMAN:
+ `p_owner`
+ `p_directory_name`
+ `p_label`
+ `p_parallel`
+ `p_section_size_mb`
+ `p_include_archive_logs`
+ `p_optimize`
+ `p_compress`
+ `p_rman_to_dbms_output`
+ `p_tag`

Para obtener más información, consulte [Parámetros comunes para procedimientos de RMAN](Appendix.Oracle.CommonDBATasks.CommonParameters.md).

El procedimiento `rdsadmin_rman_util.backup_tenant_full` es compatible con las siguientes versiones del motor para bases de datos de RDS for Oracle:
+ Oracle Database 21c (21.0.0) CDB
+ Oracle Database 19c (19.0.0) CDB

El siguiente ejemplo realiza una copia de seguridad completa de la base de datos del inquilino actual utilizando los valores especificados para los parámetros.

```
BEGIN
    rdsadmin.rdsadmin_rman_util.backup_tenant_full(
        p_owner               => 'SYS', 
        p_directory_name      => 'MYDIRECTORY',
        p_parallel            => 4,  
        p_section_size_mb     => 10,
        p_tag                 => 'FULL_TENANT_DB_BACKUP',
        p_rman_to_dbms_output => FALSE);
END;
/
```

# Realización de una copia de seguridad incremental de una base de datos
<a name="Appendix.Oracle.CommonDBATasks.BackupDatabaseIncremental"></a>

Puede realizar una copia de seguridad incremental de una instancia de base de datos utilizando el procedimiento `rdsadmin.rdsadmin_rman_util.backup_database_incremental` de Amazon RDS.

Para obtener información adicional sobre las copias de seguridad incrementales, consulte [Incremental Backups](https://docs.oracle.com/database/121/RCMRF/rcmsynta006.htm#GUID-73642FF2-43C5-48B2-9969-99001C52EB50__BGBHABHH) en la documentación de Oracle.

Este procedimiento utiliza los siguientes parámetros comunes para tareas de RMAN:
+ `p_owner`
+ `p_directory_name`
+ `p_label`
+ `p_parallel`
+ `p_section_size_mb`
+ `p_include_archive_logs`
+ `p_include_controlfile`
+ `p_optimize`
+ `p_compress`
+ `p_rman_to_dbms_output`
+ `p_tag`

Para obtener más información, consulte [Parámetros comunes para procedimientos de RMAN](Appendix.Oracle.CommonDBATasks.CommonParameters.md).

Este procedimiento es compatible con las siguientes versiones de motores de bases de datos de Amazon RDS for Oracle:
+ Oracle Database 21c (21.0.0)
+ Oracle Database 19c (19.0.0)

Este procedimiento también utiliza los siguientes parámetros adicionales.


****  

| Nombre del parámetro | Tipo de datos | Valores válidos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | --- | 
|  `p_level`  |  número  |  `0`, `1`  |  `0`  |  No  |  Especifique `0` para activar una copia de seguridad incremental completa. Especifique `1` para activar una copia de seguridad incremental no acumulativa.  | 

El siguiente ejemplo realiza una copia de seguridad incremental de la instancia de base de datos mediante el uso de valores específicos para los parámetros:

```
BEGIN
    rdsadmin.rdsadmin_rman_util.backup_database_incremental(
        p_owner               => 'SYS', 
        p_directory_name      => 'MYDIRECTORY',
        p_level               => 1,
        p_parallel            => 4,  
        p_section_size_mb     => 10,
        p_tag                 => 'MY_INCREMENTAL_BACKUP',
        p_rman_to_dbms_output => FALSE);
END;
/
```

# Realización de una copia de seguridad incremental de una base de datos de inquilinos
<a name="Appendix.Oracle.CommonDBATasks.BackupTenantDatabaseIncremental"></a>

Puede realizar una copia de seguridad incremental de la base de datos del inquilino actual en su CDB. Utilice el procedimiento de Amazon RDS `rdsadmin.rdsadmin_rman_util.backup_tenant_incremental`.

Para obtener información adicional sobre las copias de seguridad incrementales, consulte [Incremental Backups](https://docs.oracle.com/database/121/RCMRF/rcmsynta006.htm#GUID-73642FF2-43C5-48B2-9969-99001C52EB50__BGBHABHH) en la documentación de Oracle Database.

Este procedimiento solo se aplica a la base de datos del inquilino actual y utiliza los siguientes parámetros comunes para las tareas de RMAN:
+ `p_owner`
+ `p_directory_name`
+ `p_label`
+ `p_parallel`
+ `p_section_size_mb`
+ `p_include_archive_logs`
+ `p_include_controlfile`
+ `p_optimize`
+ `p_compress`
+ `p_rman_to_dbms_output`
+ `p_tag`

Para obtener más información, consulte [Parámetros comunes para procedimientos de RMAN](Appendix.Oracle.CommonDBATasks.CommonParameters.md).

Este procedimiento es compatible con las siguientes versiones de motores de bases de datos de Amazon RDS for Oracle:
+ Oracle Database 21c (21.0.0) CDB
+ Oracle Database 19c (19.0.0) CDB

Este procedimiento también utiliza los siguientes parámetros adicionales.


****  

| Nombre del parámetro | Tipo de datos | Valores válidos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | --- | 
|  `p_level`  |  número  |  `0`, `1`  |  `0`  |  No  |  Especifique `0` para activar una copia de seguridad incremental completa. Especifique `1` para activar una copia de seguridad incremental no acumulativa.  | 

El siguiente ejemplo realiza una copia de seguridad incremental de la base de datos del inquilino actual utilizando los valores especificados para los parámetros.

```
BEGIN
    rdsadmin.rdsadmin_rman_util.backup_tenant_incremental(
        p_owner               => 'SYS', 
        p_directory_name      => 'MYDIRECTORY',
        p_level               => 1,
        p_parallel            => 4,  
        p_section_size_mb     => 10,
        p_tag                 => 'MY_INCREMENTAL_BACKUP',
        p_rman_to_dbms_output => FALSE);
END;
/
```

# Copia de seguridad de un espacio de tablas
<a name="Appendix.Oracle.CommonDBATasks.BackupTablespace"></a>

Puede realizar una copia de seguridad de un espacio de tablas mediante el procedimiento de Amazon RDS `rdsadmin.rdsadmin_rman_util.backup_tablespace`.

Este procedimiento utiliza los siguientes parámetros comunes para tareas de RMAN:
+ `p_owner`
+ `p_directory_name`
+ `p_label`
+ `p_parallel`
+ `p_section_size_mb`
+ `p_include_archive_logs`
+ `p_include_controlfile`
+ `p_optimize`
+ `p_compress`
+ `p_rman_to_dbms_output`
+ `p_tag`

Para obtener más información, consulte [Parámetros comunes para procedimientos de RMAN](Appendix.Oracle.CommonDBATasks.CommonParameters.md).

Este procedimiento también utiliza los siguientes parámetros adicionales.


****  

| Nombre del parámetro | Tipo de datos | Valores válidos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | --- | 
|  `p_tablespace_name`  |  varchar2  |  Nombre de un espacio de tabla válido.  |  —  |  Sí  |  Nombre del espacio de tabla para la copia de seguridad.  | 

Este procedimiento es compatible con las siguientes versiones de motores de bases de datos de Amazon RDS for Oracle:
+ Oracle Database 21c (21.0.0)
+ Oracle Database 19c (19.0.0)

El siguiente ejemplo realiza una copia de seguridad del espacio de tabla mediante el uso de valores específicos para los parámetros:

```
BEGIN
    rdsadmin.rdsadmin_rman_util.backup_tablespace(
        p_owner               => 'SYS', 
        p_directory_name      => 'MYDIRECTORY',
        p_tablespace_name     => 'MYTABLESPACE',
        p_parallel            => 4,  
        p_section_size_mb     => 10,
        p_tag                 => 'MYTABLESPACE_BACKUP',
        p_rman_to_dbms_output => FALSE);
END;
/
```

# Copia de seguridad de un archivo de control
<a name="Appendix.Oracle.CommonDBATasks.backup-control-file"></a>

Puede realizar una copia de seguridad de un archivo de control mediante el procedimiento de Amazon RDS `rdsadmin.rdsadmin_rman_util.backup_current_controlfile`.

Este procedimiento utiliza los siguientes parámetros comunes para tareas de RMAN:
+ `p_owner`
+ `p_directory_name`
+ `p_label`
+ `p_compress`
+ `p_rman_to_dbms_output`
+ `p_tag`

Para obtener más información, consulte [Parámetros comunes para procedimientos de RMAN](Appendix.Oracle.CommonDBATasks.CommonParameters.md).

Este procedimiento es compatible con las siguientes versiones de motores de bases de datos de Amazon RDS for Oracle:
+ Oracle Database 21c (21.0.0)
+ Oracle Database 19c (19.0.0)

El siguiente ejemplo realiza una copia de seguridad de un archivo de control con los valores especificados para los parámetros.

```
BEGIN
    rdsadmin.rdsadmin_rman_util.backup_current_controlfile(
        p_owner               => 'SYS', 
        p_directory_name      => 'MYDIRECTORY',
        p_tag                 => 'CONTROL_FILE_BACKUP',
        p_rman_to_dbms_output => FALSE);
END;
/
```

# Realización de la recuperación de medios en bloque
<a name="Appendix.Oracle.CommonDBATasks.block-media-recovery"></a>

Puede recuperar bloques de datos individuales, lo que se conoce como recuperación de medios en bloque, mediante los procedimientos `rdsadmin.rdsadmin_rman_util.recover_datafile_block` de Amazon RDS. Puede utilizar este procedimiento sobrecargado para recuperar un bloque de datos individual o un rango de bloques de datos.

Este procedimiento utiliza el siguiente parámetro común para tareas de RMAN:
+ `p_rman_to_dbms_output`

Para obtener más información, consulte [Parámetros comunes para procedimientos de RMAN](Appendix.Oracle.CommonDBATasks.CommonParameters.md).

Este procedimiento utiliza los siguientes parámetros adicionales.


****  

| Nombre del parámetro | Tipo de datos | Valores válidos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | --- | 
|  `p_datafile`  |  `NUMBER`  |  Un número de ID de archivo de datos válido.  |  —  |  Sí  |  El archivo de datos que contiene los bloques corruptos. Especifique el archivo de datos de cualquiera de las siguientes maneras: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.block-media-recovery.html)  | 
|  `p_block`  |  `NUMBER`  |  Un número entero válido.  |  —  |  Sí  |  El número de un bloque individual que se va a recuperar. Los siguientes parámetros son mutuamente excluyentes. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.block-media-recovery.html)  | 
|  `p_from_block`  |  `NUMBER`  |  Un número entero válido.  |  —  |  Sí  |  El primer número de bloque de un rango de bloques que se van a recuperar. Los siguientes parámetros son mutuamente excluyentes. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.block-media-recovery.html)  | 
|  `p_to_block`  |  `NUMBER`  |  Un número entero válido.  |  —  |  Sí  |  El último número de bloque de un rango de bloques que se van a recuperar. Los siguientes parámetros son mutuamente excluyentes. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.block-media-recovery.html)  | 

Este procedimiento es compatible con las siguientes versiones de motores de bases de datos de Amazon RDS for Oracle:
+ Oracle Database 21c (21.0.0)
+ Oracle Database 19c (19.0.0)

El siguiente ejemplo recupera el bloque 100 del archivo de datos 5.

```
BEGIN
    rdsadmin.rdsadmin_rman_util.recover_datafile_block(
        p_datafile            => 5, 
        p_block               => 100,
        p_rman_to_dbms_output => TRUE);
END;
/
```

El siguiente ejemplo recupera los bloques del 100 al 150 del archivo de datos 5.

```
BEGIN
    rdsadmin.rdsadmin_rman_util.recover_datafile_block(
        p_datafile            => 5, 
        p_from_block          => 100,
        p_to_block            => 150,
        p_rman_to_dbms_output => TRUE);
END;
/
```

# Realización de tareas de programación comunes para instancias de base de datos de Oracle
<a name="Appendix.Oracle.CommonDBATasks.Scheduler"></a>

Algunos trabajos del programador que pertenece a `SYS` pueden interferir con las operaciones normales de la base de datos. En estos casos, Oracle Support recomienda modificar la programación. Si necesita habilitar o deshabilitar los trabajos `SYS`, pruebe la operación en los trabajos programados en un entorno de prueba antes de implementarla en un entorno de producción. Puede utilizar el paquete `rdsadmin.rdsadmin_dbms_scheduler` de Amazon RDS para realizar tareas de los trabajos del Programador de Oracle que es propiedad de `SYS`.

Los procedimientos `rdsadmin.rdsadmin_dbms_scheduler` son compatibles con las versiones de motores de bases de datos de Amazon RDS para Oracle que aparecen en la siguiente tabla. Al utilizar este paquete, puede especificar los trabajos `SYS` que aparecen en la tabla.


| Versión de base de datos | Trabajos habilitados de forma predeterminada | Trabajos deshabilitados de forma predeterminada | 
| --- | --- | --- | 
| Oracle Database 19c |  <pre>BSLN_MAINTAIN_STATS_JOB<br />CLEANUP_NON_EXIST_OBJ<br />CLEANUP_ONLINE_IND_BUILD<br />CLEANUP_ONLINE_PMO<br />CLEANUP_TAB_IOT_PMO<br />CLEANUP_TRANSIENT_PKG<br />CLEANUP_TRANSIENT_TYPE<br />DRA_REEVALUATE_OPEN_FAILURES<br />FILE_SIZE_UPD<br />ORA$AUTOTASK_CLEAN<br />PMO_DEFERRED_GIDX_MAINT_JOB<br />PURGE_LOG<br />RSE$CLEAN_RECOVERABLE_SCRIPT<br />SM$CLEAN_AUTO_SPLIT_MERGE</pre>  |  <pre>FGR$AUTOPURGE_JOB<br />FILE_WATCHER<br />HM_CREATE_OFFLINE_DICTIONARY<br />LOAD_OPATCH_INVENTORY<br />ORA$PREPLUGIN_BACKUP_JOB<br />XMLDB_NFS_CLEANUP_JOB</pre>  | 
| Oracle Database 21c |  <pre>BSLN_MAINTAIN_STATS_JOB<br />CLEANUP_NON_EXIST_OBJ<br />CLEANUP_ONLINE_IND_BUILD<br />CLEANUP_ONLINE_PMO<br />CLEANUP_TAB_IOT_PMO<br />CLEANUP_TRANSIENT_PKG<br />CLEANUP_TRANSIENT_TYPE<br />DRA_REEVALUATE_OPEN_FAILURES<br />FILE_SIZE_UPD<br />ORA$AUTOTASK_CLEAN<br />PMO_DEFERRED_GIDX_MAINT_JOB<br />PURGE_LOG</pre>  |  <pre>FGR$AUTOPURGE_JOB<br />FILE_WATCHER<br />HM_CREATE_OFFLINE_DICTIONARY<br />LOAD_OPATCH_INVENTORY<br />ORA$PREPLUGIN_BACKUP_JOB<br />ORA$_ATSK_AUTOSTS<br />XMLDB_NFS_CLEANUP_JOB</pre>  | 

## Parámetros comunes para los procedimientos del programador de Oracle
<a name="Appendix.Oracle.CommonDBATasks.Scheduler.CommonParameters"></a>

Utilice los procedimientos del paquete de Amazon RDS para realizar tareas con el programador de Oracl `rdsadmin.rdsadmin_dbms_scheduler`. Varios parámetros son comunes en los procedimientos del paquete. El paquete tiene los siguientes parámetros comunes.


****  

| Nombre del parámetro | Tipo de datos | Valores válidos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | --- | 
|  `name`  |  varchar2  |  Los procedimientos enumerados en la tabla de [Realización de tareas de programación comunes para instancias de base de datos de Oracle](#Appendix.Oracle.CommonDBATasks.Scheduler)   |  —  |  Sí  |  El nombre del trabajo que se va a modificar.  | 
|  `attribute`  |  varchar2  |  `'REPEAT_INTERVAL'`,`'SCHEDULE_NAME'`  |  –  |  Sí  |  El atributo que se va a modificar. Especifique para modificar el intervalo de repetición del trabaj `'REPEAT_INTERVAL'`. Especifique para modificar el nombre de programación del trabaj `'SCHEDULE_NAME'`.  | 
|  `value`  |  varchar2  |  Un nombre de programación o intervalo de programación válidos, en función del atributo utilizado.  |  –  |  Sí  |  El nuevo valor del atributo.  | 

## Modificación de trabajos DBMS\$1SCHEDULER
<a name="Appendix.Oracle.CommonDBATasks.ModifyScheduler"></a>

Puede utilizar el procedimiento de Oracle para modificar determinados componentes de Oracle Scheduler `dbms_scheduler.set_attribute`. Para obtener más información, consulte [DBMS\$1SCHEDULER](https://docs.oracle.com/database/121/ARPLS/d_sched.htm#ARPLS72235) y [SET\$1ATTRIBUTE Procedure](https://docs.oracle.com/database/121/ARPLS/d_sched.htm#ARPLS72399) en la documentación de Oracle. 

Cuando trabaje con instancias de bases de datos de Amazon RDS, anteponga el nombre del esquema `SYS` al nombre del objeto. En el siguiente ejemplo se establece el atributo RESOURCE\$1PLAN para el objeto MONDAY\$1WINDOW.

```
BEGIN
    DBMS_SCHEDULER.SET_ATTRIBUTE(
        name      => 'SYS.MONDAY_WINDOW',
        attribute => 'RESOURCE_PLAN',
        value     => 'resource_plan_1');
END;
/
```

## Modificar las ventanas de mantenimiento de AutoTask
<a name="Appendix.Oracle.CommonDBATasks.Scheduler.maintenance-windows"></a>

Las instancias de Amazon RDS for Oracle se crean con la configuración predeterminada de las ventanas de mantenimiento. Las tareas de mantenimiento automatizadas, como la recopilación de estadísticas del optimizador, se ejecutan durante estas ventanas. De forma predeterminada, las ventanas de mantenimiento activan Administrador de recursos de la base de datos de Oracle.

Para modificar la ventana, utilice el paquete `DBMS_SCHEDULER`. Es posible que tenga que modificar la configuración de la ventana de mantenimiento por las siguientes razones:
+ Desea que los trabajos de mantenimiento se ejecuten en un momento diferente, con configuraciones diferentes o que no se ejecuten en absoluto. Por ejemplo, puede que desee modificar la duración de la ventana o cambiar el tiempo y el intervalo de repetición.
+ Desea evitar el impacto en el rendimiento de habilitar el Administrador de Recursos durante el mantenimiento. Por ejemplo, si se especifica el plan de mantenimiento predeterminado y si la ventana de mantenimiento se abre mientras la base de datos está bajo carga, es posible que vea eventos de espera como `resmgr:cpu quantum`. Este evento de espera está relacionado con el Administrador de recursos de base de datos. Dispone de las opciones siguientes:
  + Asegúrese de que las ventanas de mantenimiento estén activas durante las horas de menor actividad de su instancia de base de datos.
  + Deshabilite el plan de mantenimiento predeterminado estableciendo el atributo `resource_plan` a una cadena vacía.
  + Establezca el parámetro `resource_manager_plan` en `FORCE:` en el grupo de parámetros. Si la instancia utiliza Enterprise Edition, esta configuración impide que se activen los planes del Administrador de recursos de base de datos.

**Para modificar la configuración de la ventana de mantenimiento**

1. Conexión a la base de datos mediante un cliente de Oracle SQL.

1. Consulte la configuración actual para una ventana del programador. 

   En el siguiente ejemplo, se consulta la configuración de `MONDAY_WINDOW`.

   ```
   SELECT ENABLED, RESOURCE_PLAN, DURATION, REPEAT_INTERVAL
   FROM   DBA_SCHEDULER_WINDOWS 
   WHERE  WINDOW_NAME='MONDAY_WINDOW';
   ```

   El siguiente resultado muestra que la ventana está utilizando los valores predeterminados.

   ```
   ENABLED         RESOURCE_PLAN                  DURATION         REPEAT_INTERVAL
   --------------- ------------------------------ ---------------- ------------------------------
   TRUE            DEFAULT_MAINTENANCE_PLAN       +000 04:00:00    freq=daily;byday=MON;byhour=22
                                                                   ;byminute=0; bysecond=0
   ```

1. Modifique la ventana mediante el paquete `DBMS_SCHEDULER`.

   En el siguiente ejemplo se establece el plan de recursos como nulo para que el Administrador de recursos no se ejecute durante la ventana de mantenimiento.

   ```
   BEGIN
     -- disable the window to make changes
     DBMS_SCHEDULER.DISABLE(name=>'"SYS"."MONDAY_WINDOW"',force=>TRUE);
   
     -- specify the empty string to use no plan
     DBMS_SCHEDULER.SET_ATTRIBUTE(name=>'"SYS"."MONDAY_WINDOW"', attribute=>'RESOURCE_PLAN', value=>'');
   
     -- re-enable the window
     DBMS_SCHEDULER.ENABLE(name=>'"SYS"."MONDAY_WINDOW"');
   END;
   /
   ```

   En el siguiente ejemplo se establece la duración máxima de la ventana en 2 horas.

   ```
   BEGIN
     DBMS_SCHEDULER.DISABLE(name=>'"SYS"."MONDAY_WINDOW"',force=>TRUE);
     DBMS_SCHEDULER.SET_ATTRIBUTE(name=>'"SYS"."MONDAY_WINDOW"', attribute=>'DURATION', value=>'0 2:00:00');
     DBMS_SCHEDULER.ENABLE(name=>'"SYS"."MONDAY_WINDOW"');
   END;
   /
   ```

   En el siguiente ejemplo se establece el intervalo de repetición en todos los lunes a las 10 AM.

   ```
   BEGIN
     DBMS_SCHEDULER.DISABLE(name=>'"SYS"."MONDAY_WINDOW"',force=>TRUE);
     DBMS_SCHEDULER.SET_ATTRIBUTE(name=>'"SYS"."MONDAY_WINDOW"', attribute=>'REPEAT_INTERVAL', value=>'freq=daily;byday=MON;byhour=10;byminute=0;bysecond=0');
     DBMS_SCHEDULER.ENABLE(name=>'"SYS"."MONDAY_WINDOW"');
   END;
   /
   ```

## Configuración de zona horaria para trabajos de Oracle Scheduler
<a name="Appendix.Oracle.CommonDBATasks.Scheduler.TimeZone"></a>

Para modificar la zona horaria de Oracle Scheduler, puede utilizar el procedimiento de Oracle `dbms_scheduler.set_scheduler_attribute`. Para obtener más información sobre el paquete `dbms_scheduler`, consulte [DBMS\$1SCHEDULER](https://docs.oracle.com/en/database/oracle/oracle-database/19/arpls/DBMS_SCHEDULER.html) y [SET\$1SCHEDULER\$1ATTRIBUTE](https://docs.oracle.com/en/database/oracle/oracle-database/19/arpls/DBMS_SCHEDULER.html#GUID-2AB97BF7-7154-4E6C-933F-B2659B18A907) en la documentación de Oracle.

**Para modificar la configuración de zona horaria actual**

1. Conéctese a la base de datos mediante un cliente como SQL Developer. Para obtener más información, consulte [Conexión a la instancia de base de datos mediante Oracle SQL Developer](USER_ConnectToOracleInstance.SQLDeveloper.md).

1. Establezca la zona horaria predeterminada de la siguiente manera, sustituyendo su zona horaria por `time_zone_name`.

   ```
   BEGIN
     DBMS_SCHEDULER.SET_SCHEDULER_ATTRIBUTE(
       attribute => 'default_timezone',
       value => 'time_zone_name'
     );
   END;
   /
   ```

En el siguiente ejemplo, debe cambiar la zona horaria a Asia/Shanghái. 

Comience consultando la zona horaria actual, como se muestra a continuación.

```
SELECT VALUE FROM DBA_SCHEDULER_GLOBAL_ATTRIBUTE WHERE ATTRIBUTE_NAME='DEFAULT_TIMEZONE';
```

La salida muestra que la zona horaria actual es ETC/UTC.

```
VALUE
-------
Etc/UTC
```

A continuación, establece la zona horaria en Asia/Shanghái.

```
BEGIN
  DBMS_SCHEDULER.SET_SCHEDULER_ATTRIBUTE(
    attribute => 'default_timezone',
    value => 'Asia/Shanghai'
  );
END;
/
```

Para obtener más información sobre cómo cambiar la zona horaria del sistema, consulte [Zona horaria Oracle](Appendix.Oracle.Options.Timezone.md).

## Desactivación de los trabajos del programador de Oracle propiedad de SYS
<a name="Appendix.Oracle.CommonDBATasks.Scheduler.Disabling"></a>

Utilice el procedimiento `rdsadmin.rdsadmin_dbms_scheduler.disable` para desactivar un trabajo del programador de Oracle que pertenezca a SYS. 

Este procedimiento utiliza el parámetro común `name` para las tareas del programador de Oracle. Para obtener más información, consulte [Parámetros comunes para los procedimientos del programador de Oracle](#Appendix.Oracle.CommonDBATasks.Scheduler.CommonParameters).

En el siguiente ejemplo se desactiva el trabajo del programador de Oracle `SYS.CLEANUP_ONLINE_IND_BUILD`.

```
BEGIN
   rdsadmin.rdsadmin_dbms_scheduler.disable('SYS.CLEANUP_ONLINE_IND_BUILD');
END;
/
```

## Activación de los trabajos del programador de Oracle propiedad de SYS
<a name="Appendix.Oracle.CommonDBATasks.Scheduler.Enabling"></a>

Utilice el procedimiento `rdsadmin.rdsadmin_dbms_scheduler.enable` para activar un trabajo del programador de Oracle que pertenezca a SYS.

Este procedimiento utiliza el parámetro común `name` para las tareas del programador de Oracle. Para obtener más información, consulte [Parámetros comunes para los procedimientos del programador de Oracle](#Appendix.Oracle.CommonDBATasks.Scheduler.CommonParameters).

En el siguiente ejemplo se activa el trabajo del programador de Oracle `SYS.CLEANUP_ONLINE_IND_BUILD`.

```
BEGIN
   rdsadmin.rdsadmin_dbms_scheduler.enable('SYS.CLEANUP_ONLINE_IND_BUILD');
END;
/
```

## Modificación del intervalo de repetición del programador de Oracle para los trabajos del tipo CALENDAR
<a name="Appendix.Oracle.CommonDBATasks.Scheduler.Modifying_Calendar"></a>

Utilice el procedimiento `CALENDAR` para modificar el intervalo de repetición de un trabajo del programador de Oracle que pertenece a SYS del tipo `rdsadmin.rdsadmin_dbms_scheduler.disable`.

Este procedimiento utiliza los siguientes parámetros comunes para las tareas del programador de Oracle:
+ `name`
+ `attribute`
+ `value`

Para obtener más información, consulte [Parámetros comunes para los procedimientos del programador de Oracle](#Appendix.Oracle.CommonDBATasks.Scheduler.CommonParameters).

En el siguiente ejemplo se modifica el intervalo de repetición del trabajo del programador de Oracle `SYS.CLEANUP_ONLINE_IND_BUILD`.

```
BEGIN
     rdsadmin.rdsadmin_dbms_scheduler.set_attribute(
          name      => 'SYS.CLEANUP_ONLINE_IND_BUILD', 
          attribute => 'repeat_interval', 
          value     => 'freq=daily;byday=FRI,SAT;byhour=20;byminute=0;bysecond=0');
END;
/
```

## Modificación del intervalo de repetición del programador de Oracle para los trabajos del tipo NAMED
<a name="Appendix.Oracle.CommonDBATasks.Scheduler.Modifying_Named"></a>

Algunos trabajos del programador de Oracle utilizan un nombre de programación en lugar de un intervalo. Debe crear una nueva programación NAMED en el esquema de usuario principal para este tipo de trabajos. Para ello, utilice el procedimiento estándar de Oracle `sys.dbms_scheduler.create_schedule`. Además, utilice el `rdsadmin.rdsadmin_dbms_scheduler.set_attribute procedure` para asignar la nueva programación con nombre asignado al trabajo. 

Este procedimiento utiliza los siguientes parámetros comunes para las tareas del programador de Oracle:
+ `name`
+ `attribute`
+ `value`

Para obtener más información, consulte [Parámetros comunes para los procedimientos del programador de Oracle](#Appendix.Oracle.CommonDBATasks.Scheduler.CommonParameters).

En el siguiente ejemplo se modifica el intervalo de repetición del trabajo del programador de Oracle `SYS.BSLN_MAINTAIN_STATS_JOB`.

```
BEGIN
     DBMS_SCHEDULER.CREATE_SCHEDULE (
          schedule_name   => 'rds_master_user.new_schedule',
          start_date      => SYSTIMESTAMP,
          repeat_interval => 'freq=daily;byday=MON,TUE,WED,THU,FRI;byhour=0;byminute=0;bysecond=0',
          end_date        => NULL,
          comments        => 'Repeats daily forever');
END;
/
 
BEGIN
     rdsadmin.rdsadmin_dbms_scheduler.set_attribute (
          name      => 'SYS.BSLN_MAINTAIN_STATS_JOB', 
          attribute => 'schedule_name',
          value     => 'rds_master_user.new_schedule');
END;
/
```

## Desactivación de la confirmación automática para la creación de trabajos del programador de Oracle
<a name="Appendix.Oracle.CommonDBATasks.Scheduler.autocommit"></a>

Cuando `DBMS_SCHEDULER.CREATE_JOB` crea trabajos del programador de Oracle, los crea inmediatamente y confirma los cambios. Puede que necesite incorporar la creación de trabajos del programador de Oracle en la transacción de usuario para hacer lo siguiente:
+ Revertir el trabajo del programador de Oracle cuando se revierte la transacción del usuario.
+ Crear el trabajo del programador de Oracle cuando se confirme la transacción principal del usuario.

Puede utilizar el procedimiento `rdsadmin.rdsadmin_dbms_scheduler.set_no_commit_flag` para activar este comportamiento. Este procedimiento no acepta parámetros. Puede utilizar este procedimiento en las siguientes versiones de RDS para Oracle:
+ 21.0.0.0.ru-2022-07.rur-2022-07.r1 y posteriores
+ 19.0.0.0.ru-2022-07.rur-2022-07.r1 y posteriores

El siguiente ejemplo desactiva la confirmación automática del programador de Oracle, crea un trabajo del programador de Oracle y, a continuación, revierte la transacción. Como la confirmación automática está desactivada, la base de datos también revierte la creación del trabajo del programador de Oracle.

```
BEGIN
  rdsadmin.rdsadmin_dbms_scheduler.set_no_commit_flag;
  DBMS_SCHEDULER.CREATE_JOB(job_name   => 'EMPTY_JOB', 
                            job_type   => 'PLSQL_BLOCK', 
                            job_action => 'begin null; end;',
                            auto_drop  => false);
  ROLLBACK;
END;
/

PL/SQL procedure successfully completed.

SELECT * FROM DBA_SCHEDULER_JOBS WHERE JOB_NAME='EMPTY_JOB';

no rows selected
```

# Diagnóstico de problemas con instancias de bases de datos de RDS para Oracle
<a name="Appendix.Oracle.CommonDBATasks.Diagnostics"></a>

Oracle Database incluye una infraestructura de diagnóstico de fallos que puede utilizar para investigar problemas de bases de datos. En la terminología de Oracle, un *problema* es un error crítico, como un error de código o un daño en los datos. Un *incidente* es la existencia de un problema. Si el mismo error ocurre tres veces, la infraestructura muestra tres incidentes de este problema. Para obtener más información, consulte [Diagnóstico y resolución de problemas](https://docs.oracle.com/en/database/oracle/oracle-database/19/admin/diagnosing-and-resolving-problems.html#GUID-8DEB1BE0-8FB9-4FB2-A19A-17CF6F5791C3) en la documentación de Oracle Database.

La utilidad Automatic Diagnostic Repository Command Interpreter (ADRCI) es una herramienta de línea de comandos de Oracle que se utiliza para administrar datos de diagnóstico. Por ejemplo, puede utilizar esta herramienta para investigar problemas y empaquetar datos de diagnóstico. Un *paquete de incidentes* incluye datos de diagnóstico de un incidente o de todos los incidentes que hacen referencia a un problema específico. Puede cargar un paquete de incidentes, que se implementa como un archivo.zip, en Oracle Support.

Para ofrecer una experiencia de servicio administrado, Amazon RDS no proporciona acceso mediante shell a ADRCI. Para realizar tareas de diagnóstico en la instancia de base de datos de RDS para Oracle, utilice el paquete `rdsadmin.rdsadmin_adrci_util` de Amazon RDS.

Mediante el uso de las funciones de `rdsadmin_adrci_util`, puede obtener un listado de los problemas e incidentes y empaquetarlos, así como mostrar archivos de seguimiento. Todas las funciones devuelven un ID de tarea. Este ID forma parte del nombre del archivo de registro que contiene el resultado de ADRCI, como en `dbtask-task_id.log`. El archivo de registro reside en el directorio BDUMP. Puede descargar el archivo de registro siguiendo el procedimiento descrito en [Descarga de un archivo de registro de base de datos](USER_LogAccess.Procedural.Downloading.md).

## Parámetros comunes para procedimientos de diagnóstico
<a name="Appendix.Oracle.CommonDBATasks.CommonDiagParameters"></a>

Para realizar tareas de diagnóstico, utilice funciones del paquete de Amazon RDS `rdsadmin.rdsadmin_adrci_util`. El paquete tiene los siguientes parámetros comunes.


****  

| Nombre del parámetro | Tipo de datos | Valores válidos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | --- | 
|  `incident_id`  |  número  |  Un ID de incidente válido o nulo   |  Null  |  No  |  Si el valor es nulo, la función muestra todos los incidentes. Si el valor no es nulo y representa un ID de incidente válido, la función muestra el incidente especificado.   | 
|  `problem_id`  |  número  |  Un ID de problema válido o nulo  |  Null  |  No  |  Si el valor es nulo, la función muestra todos los problemas. Si el valor no es nulo y representa un ID de problema válido, la función muestra el problema especificado.  | 
|  `last`  |  número  |  Un valor entero válido mayor que 0 o nulo  |  Null  |  No  |  Si el valor es nulo, la función muestra como máximo 50 elementos. Si el valor no es nulo, la función muestra el número especificado.  | 

## Descripción de incidentes
<a name="Appendix.Oracle.CommonDBATasks.Incidents"></a>

Para obtener un listado de los incidentes de diagnóstico para Oracle, utilice la función de Amazon RDS `rdsadmin.rdsadmin_adrci_util.list_adrci_incidents`. Puede obtener un listado de los incidentes en modo básico o detallado. De forma predeterminada, la función muestra los 50 incidentes más recientes.

Esta función utiliza los siguientes parámetros comunes:
+  `incident_id`
+  `problem_id`
+  `last`

Si especifica `incident_id` y `problem_id`, `incident_id` anula a `problem_id`. Para obtener más información, consulte [Parámetros comunes para procedimientos de diagnóstico](#Appendix.Oracle.CommonDBATasks.CommonDiagParameters).

Esta función utiliza el siguiente parámetro adicional.


****  

| Nombre del parámetro | Tipo de datos | Valores válidos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | --- | 
|  `detail`  |  booleano  | TRUE o FALSE |  `FALSE`  |  No  |  Si `TRUE`, la función muestra los incidentes en modo detallado. Si `FALSE`, la función muestra los incidentes en modo básico.  | 

Para enumerar todos los incidentes, consulte la función `rdsadmin.rdsadmin_adrci_util.list_adrci_incidents` sin argumentos. La consulta devuelve el ID de tarea.

```
SQL> SELECT rdsadmin.rdsadmin_adrci_util.list_adrci_incidents AS task_id FROM DUAL;

TASK_ID
------------------
1590786706158-3126
```

O llame a la función `rdsadmin.rdsadmin_adrci_util.list_adrci_incidents` sin ningún argumento y almacene la salida en una variable de cliente SQL. Puede utilizar la variable en otras instrucciones.

```
SQL> VAR task_id VARCHAR2(80);
SQL> EXEC :task_id := rdsadmin.rdsadmin_adrci_util.list_adrci_incidents;

PL/SQL procedure successfully completed.
```

Para leer el archivo de registro, llame al procedimiento de Amazon RDS `rdsadmin.rds_file_util.read_text_file`. Proporcione el identificador de la tarea como parte del nombre de archivo. El siguiente resultado muestra tres incidentes: 53523, 53522 y 53521.

```
SQL> SELECT * FROM TABLE(rdsadmin.rds_file_util.read_text_file('BDUMP', 'dbtask-'||:task_id||'.log'));

TEXT
-------------------------------------------------------------------------------------------------------------------------
2020-05-29 21:11:46.193 UTC [INFO ] Listing ADRCI incidents.
2020-05-29 21:11:46.256 UTC [INFO ]
ADR Home = /rdsdbdata/log/diag/rdbms/orcl_a/ORCL:
*************************************************************************
INCIDENT_ID PROBLEM_KEY                                                 CREATE_TIME
----------- ----------------------------------------------------------- ----------------------------------------
53523       ORA 700 [EVENT_CREATED_INCIDENT] [942] [SIMULATED_ERROR_003 2020-05-29 20:15:20.928000 +00:00
53522       ORA 700 [EVENT_CREATED_INCIDENT] [942] [SIMULATED_ERROR_002 2020-05-29 20:15:15.247000 +00:00
53521       ORA 700 [EVENT_CREATED_INCIDENT] [942] [SIMULATED_ERROR_001 2020-05-29 20:15:06.047000 +00:00
3 rows fetched


2020-05-29 21:11:46.256 UTC [INFO ] The ADRCI incidents were successfully listed.
2020-05-29 21:11:46.256 UTC [INFO ] The task finished successfully.

14 rows selected.
```

Para enumerar un incidente concreto, especifique su ID mediante el parámetro `incident_id`. En el ejemplo siguiente, consulte el archivo de registro solo para el incidente 53523.

```
SQL> EXEC :task_id := rdsadmin.rdsadmin_adrci_util.list_adrci_incidents(incident_id=>53523);

PL/SQL procedure successfully completed.

SQL> SELECT * FROM TABLE(rdsadmin.rds_file_util.read_text_file('BDUMP', 'dbtask-'||:task_id||'.log'));

TEXT
------------------------------------------------------------------------------------------------------------------
2020-05-29 21:15:25.358 UTC [INFO ] Listing ADRCI incidents.
2020-05-29 21:15:25.426 UTC [INFO ]
ADR Home = /rdsdbdata/log/diag/rdbms/orcl_a/ORCL:
*************************************************************************
INCIDENT_ID          PROBLEM_KEY                                                 CREATE_TIME
-------------------- ----------------------------------------------------------- ---------------------------------
53523                ORA 700 [EVENT_CREATED_INCIDENT] [942] [SIMULATED_ERROR_003 2020-05-29 20:15:20.928000 +00:00
1 rows fetched


2020-05-29 21:15:25.427 UTC [INFO ] The ADRCI incidents were successfully listed.
2020-05-29 21:15:25.427 UTC [INFO ] The task finished successfully.

12 rows selected.
```

## Descripción de problemas
<a name="Appendix.Oracle.CommonDBATasks.Problems"></a>

Para enumerar los problemas de diagnóstico de Oracle, utilice la función de Amazon RDS `rdsadmin.rdsadmin_adrci_util.list_adrci_problems`.

De forma predeterminada, la función enumera los 50 problemas más recientes. 

Esta función utiliza los parámetros comunes `problem_id` y `last`. Para obtener más información, consulte [Parámetros comunes para procedimientos de diagnóstico](#Appendix.Oracle.CommonDBATasks.CommonDiagParameters).

Para obtener el ID de tarea de todos los problemas, llame a la función `rdsadmin.rdsadmin_adrci_util.list_adrci_problems` sin argumentos y almacene la salida en una variable de cliente SQL.

```
SQL> EXEC :task_id := rdsadmin.rdsadmin_adrci_util.list_adrci_problems;

PL/SQL procedure successfully completed.
```

Para leer el archivo de registro, llame a la función `rdsadmin.rds_file_util.read_text_file`, proporcionando el ID de tarea como parte del nombre del archivo. En el siguiente resultado, el archivo de registro muestra tres problemas: 1, 2 y 3.

```
SQL> SELECT * FROM TABLE(rdsadmin.rds_file_util.read_text_file('BDUMP', 'dbtask-'||:task_id||'.log'));

TEXT
----------------------------------------------------------------------------------------------------------------------
2020-05-29 21:18:50.764 UTC [INFO ] Listing ADRCI problems.
2020-05-29 21:18:50.829 UTC [INFO ]
ADR Home = /rdsdbdata/log/diag/rdbms/orcl_a/ORCL:
*************************************************************************
PROBLEM_ID   PROBLEM_KEY                                                 LAST_INCIDENT        LASTINC_TIME
---------- ----------------------------------------------------------- ------------- ---------------------------------
2          ORA 700 [EVENT_CREATED_INCIDENT] [942] [SIMULATED_ERROR_003 53523         2020-05-29 20:15:20.928000 +00:00
3          ORA 700 [EVENT_CREATED_INCIDENT] [942] [SIMULATED_ERROR_002 53522         2020-05-29 20:15:15.247000 +00:00
1          ORA 700 [EVENT_CREATED_INCIDENT] [942] [SIMULATED_ERROR_001 53521         2020-05-29 20:15:06.047000 +00:00
3 rows fetched


2020-05-29 21:18:50.829 UTC [INFO ] The ADRCI problems were successfully listed.
2020-05-29 21:18:50.829 UTC [INFO ] The task finished successfully.

14 rows selected.
```

En el ejemplo siguiente, solo muestra el problema 3.

```
SQL> EXEC :task_id := rdsadmin.rdsadmin_adrci_util.list_adrci_problems(problem_id=>3);

PL/SQL procedure successfully completed.
```

Para leer el archivo de registro del problema 3, llame `rdsadmin.rds_file_util.read_text_file`. Proporcione el identificador de la tarea como parte del nombre de archivo.

```
SQL> SELECT * FROM TABLE(rdsadmin.rds_file_util.read_text_file('BDUMP', 'dbtask-'||:task_id||'.log'));

TEXT
-------------------------------------------------------------------------
2020-05-29 21:19:42.533 UTC [INFO ] Listing ADRCI problems.
2020-05-29 21:19:42.599 UTC [INFO ]
ADR Home = /rdsdbdata/log/diag/rdbms/orcl_a/ORCL:
*************************************************************************
PROBLEM_ID PROBLEM_KEY                                                 LAST_INCIDENT LASTINC_TIME
---------- ----------------------------------------------------------- ------------- ---------------------------------
3          ORA 700 [EVENT_CREATED_INCIDENT] [942] [SIMULATED_ERROR_002 53522         2020-05-29 20:15:15.247000 +00:00
1 rows fetched


2020-05-29 21:19:42.599 UTC [INFO ] The ADRCI problems were successfully listed.
2020-05-29 21:19:42.599 UTC [INFO ] The task finished successfully.

12 rows selected.
```

## Creación de paquetes de incidentes
<a name="Appendix.Oracle.CommonDBATasks.IncPackages"></a>

Puede crear paquetes de incidentes utilizando la función de Amazon RDS `rdsadmin.rdsadmin_adrci_util.create_adrci_package`. El resultado es un archivo.zip que puede proporcionar a Oracle Support.

Esta función utiliza los siguientes parámetros comunes:
+ `problem_id`
+ `incident_id`

Asegúrese de especificar uno de los parámetros anteriores. Si especifica ambos, el parámetro `incident_id` anula el parámetro `problem_id`. Para obtener más información, consulte [Parámetros comunes para procedimientos de diagnóstico](#Appendix.Oracle.CommonDBATasks.CommonDiagParameters).

Para crear un paquete para un incidente específico, llame a la función `rdsadmin.rdsadmin_adrci_util.create_adrci_package` de Amazon RDS con el parámetro `incident_id`. En el ejemplo siguiente se crea un paquete para el incidente 53523.

```
SQL> EXEC :task_id := rdsadmin.rdsadmin_adrci_util.create_adrci_package(incident_id=>53523);

PL/SQL procedure successfully completed.
```

Para leer el archivo de registro, llame a `rdsadmin.rds_file_util.read_text_file`. Puede proporcionar el ID de tarea como parte del nombre de archivo. El resultado muestra que se ha generado el paquete de incidentes `ORA700EVE_20200529212043_COM_1.zip`.

```
SQL> SELECT * FROM TABLE(rdsadmin.rds_file_util.read_text_file('BDUMP', 'dbtask-'||:task_id||'.log'));

TEXT
--------------------------------------------------------------------------------------------------------------------------------------
2020-05-29 21:20:43.031 UTC [INFO ] The ADRCI package is being created.
2020-05-29 21:20:47.641 UTC [INFO ] Generated package 1 in file /rdsdbdata/log/trace/ORA700EVE_20200529212043_COM_1.zip, mode complete
2020-05-29 21:20:47.642 UTC [INFO ] The ADRCI package was successfully created.
2020-05-29 21:20:47.642 UTC [INFO ] The task finished successfully.
```

Para empaquetar los datos de diagnóstico de un problema concreto, especifique su ID mediante el parámetro `problem_id`. En el ejemplo siguiente, solo se empaquetan datos del problema 3.

```
SQL> EXEC :task_id := rdsadmin.rdsadmin_adrci_util.create_adrci_package(problem_id=>3);

PL/SQL procedure successfully completed.
```

Para leer la salida de la tarea, llame a `rdsadmin.rds_file_util.read_text_file` y proporcione el ID de la tarea como parte del nombre del archivo. El resultado muestra que se ha generado el paquete de incidentes `ORA700EVE_20200529212111_COM_1.zip`.

```
SQL> SELECT * FROM TABLE(rdsadmin.rds_file_util.read_text_file('BDUMP', 'dbtask-'||:task_id||'.log'));

TEXT
------------------------------------------------------------------------------------------------------------------------------------------------------------
2020-05-29 21:21:11.050 UTC [INFO ] The ADRCI package is being created.
2020-05-29 21:21:15.646 UTC [INFO ] Generated package 2 in file /rdsdbdata/log/trace/ORA700EVE_20200529212111_COM_1.zip, mode complete
2020-05-29 21:21:15.646 UTC [INFO ] The ADRCI package was successfully created.
2020-05-29 21:21:15.646 UTC [INFO ] The task finished successfully.
```

También puede descargar el archivo de registro. Para obtener más información, consulte [Descarga de un archivo de registro de base de datos](USER_LogAccess.Procedural.Downloading.md).

## Mostrar archivos de seguimiento
<a name="Appendix.Oracle.CommonDBATasks.ShowTrace"></a>

Puede utilizar la función de Amazon RDS `rdsadmin.rdsadmin_adrci_util.show_adrci_tracefile` para enumerar los archivos de seguimiento en el directorio de seguimiento y todos los directorios de incidentes en la página de inicio del ADR actual. También puede mostrar el contenido de los archivos de seguimiento y de los archivos de seguimiento de incidentes.

Esta función utiliza el siguiente parámetro.


****  

| Nombre del parámetro | Tipo de datos | Valores válidos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | --- | 
|  `filename`  |  varchar2  | Un nombre de archivo de seguimiento válido |  Null  |  No  |  Si el valor es nulo, la función muestra todos los archivos de seguimiento. Si no es nulo, la función muestra el archivo especificado.  | 

Para mostrar el archivo de seguimiento, llame a la función de Amazon RDS `rdsadmin.rdsadmin_adrci_util.show_adrci_tracefile`.

```
SQL> EXEC :task_id := rdsadmin.rdsadmin_adrci_util.show_adrci_tracefile;

PL/SQL procedure successfully completed.
```

Para enumerar los nombres de archivo de seguimiento, llame al procedimiento `rdsadmin.rds_file_util.read_text_file` de Amazon RDS, y proporcione el identificador de tarea como parte del nombre de archivo.

```
SQL> SELECT * FROM TABLE(rdsadmin.rds_file_util.read_text_file('BDUMP', 'dbtask-'||:task_id||'.log')) WHERE TEXT LIKE '%/alert_%';

TEXT
---------------------------------------------------------------
     diag/rdbms/orcl_a/ORCL/trace/alert_ORCL.log.2020-05-28
     diag/rdbms/orcl_a/ORCL/trace/alert_ORCL.log.2020-05-27
     diag/rdbms/orcl_a/ORCL/trace/alert_ORCL.log.2020-05-26
     diag/rdbms/orcl_a/ORCL/trace/alert_ORCL.log.2020-05-25
     diag/rdbms/orcl_a/ORCL/trace/alert_ORCL.log.2020-05-24
     diag/rdbms/orcl_a/ORCL/trace/alert_ORCL.log.2020-05-23
     diag/rdbms/orcl_a/ORCL/trace/alert_ORCL.log.2020-05-22
     diag/rdbms/orcl_a/ORCL/trace/alert_ORCL.log.2020-05-21
     diag/rdbms/orcl_a/ORCL/trace/alert_ORCL.log

9 rows selected.
```

En el ejemplo siguiente, se genera un resultado para `alert_ORCL.log`.

```
SQL> EXEC :task_id := rdsadmin.rdsadmin_adrci_util.show_adrci_tracefile('diag/rdbms/orcl_a/ORCL/trace/alert_ORCL.log');

PL/SQL procedure successfully completed.
```

Para leer el archivo de registro, llame a `rdsadmin.rds_file_util.read_text_file`. Proporcione el identificador de la tarea como parte del nombre de archivo. El resultado muestra las primeras 10 líneas de alert\$1ORCL.log.

```
SQL> SELECT * FROM TABLE(rdsadmin.rds_file_util.read_text_file('BDUMP', 'dbtask-'||:task_id||'.log')) WHERE ROWNUM <= 10;

TEXT
-----------------------------------------------------------------------------------------
2020-05-29 21:24:02.083 UTC [INFO ] The trace files are being displayed.
2020-05-29 21:24:02.128 UTC [INFO ] Thu May 28 23:59:10 2020
Thread 1 advanced to log sequence 2048 (LGWR switch)
  Current log# 3 seq# 2048 mem# 0: /rdsdbdata/db/ORCL_A/onlinelog/o1_mf_3_hbl2p8xs_.log
Thu May 28 23:59:10 2020
Archived Log entry 2037 added for thread 1 sequence 2047 ID 0x5d62ce43 dest 1:
Fri May 29 00:04:10 2020
Thread 1 advanced to log sequence 2049 (LGWR switch)
  Current log# 4 seq# 2049 mem# 0: /rdsdbdata/db/ORCL_A/onlinelog/o1_mf_4_hbl2qgmh_.log
Fri May 29 00:04:10 2020

10 rows selected.
```

También puede descargar el archivo de registro. Para obtener más información, consulte [Descarga de un archivo de registro de base de datos](USER_LogAccess.Procedural.Downloading.md).

# Realización de tareas diversas para instancias de base de datos de Oracle
<a name="Appendix.Oracle.CommonDBATasks.Misc"></a>

A continuación, puede encontrar cómo realizar varias tareas de DBA en las instancias de base de datos de Amazon RDS que ejecutan Oracle. Para ofrecer una experiencia de servicio administrado, Amazon RDS no proporciona acceso mediante shell a las instancias de bases de datos y restringe el acceso a ciertos procedimientos y tablas del sistema que requieren privilegios avanzados. 

**Topics**
+ [Creación y eliminación de directorios en el espacio de almacenamiento de datos principal](#Appendix.Oracle.CommonDBATasks.NewDirectories)
+ [Descripción de los archivos de un directorio de instancia de base de datos](#Appendix.Oracle.CommonDBATasks.ListDirectories)
+ [Lectura de archivos de un directorio de instancia de base de datos](#Appendix.Oracle.CommonDBATasks.ReadingFiles)
+ [Acceso a los archivos de Opatch](#Appendix.Oracle.CommonDBATasks.accessing-opatch-files)
+ [Administrar tareas del asesor](#Appendix.Oracle.CommonDBATasks.managing-advisor-tasks)
+ [Transporte de espacios de tabla](rdsadmin_transport_util.md)

## Creación y eliminación de directorios en el espacio de almacenamiento de datos principal
<a name="Appendix.Oracle.CommonDBATasks.NewDirectories"></a>

Utilice el procedimiento de Amazon RDS para crear directorio `rdsadmin.rdsadmin_util.create_directory`. Puede crear hasta 10 000 directorios, todos ellos en el espacio principal de almacenamiento de datos. Para eliminar directorios, utilice el procedimiento de Amazon RDS `rdsadmin.rdsadmin_util.drop_directory`.

Los procedimientos `create_directory` y `drop_directory` tienen el siguiente parámetro requerido. 


****  

| Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | 
|  `p_directory_name`  |  VARCHAR2  |  —  |  Sí  |  El nombre del directorio.  | 

En el siguiente ejemplo se crea un directorio denominado `PRODUCT_DESCRIPTIONS`. 

```
EXEC rdsadmin.rdsadmin_util.create_directory(p_directory_name => 'product_descriptions');
```

El diccionario de datos almacena el nombre del directorio en mayúsculas. Es posible obtener un listado de los directorios consultando `DBA_DIRECTORIES`. El sistema elige automáticamente la ruta de acceso real del host. En el ejemplo siguiente se obtiene la ruta del directorio denominado `PRODUCT_DESCRIPTIONS`: 

```
SELECT DIRECTORY_PATH 
  FROM DBA_DIRECTORIES 
 WHERE DIRECTORY_NAME='PRODUCT_DESCRIPTIONS';
        
DIRECTORY_PATH
----------------------------------------
/rdsdbdata/userdirs/01
```

El nombre de usuario maestro de la instancia de base de datos tiene privilegios de lectura y escritura en el nuevo directorio y puede conceder acceso a otros usuarios. Los privilegios de `EXECUTE` no están disponibles para directorios en una instancia de base de datos. Los directorios se crean en el espacio principal de almacenamiento de datos, y consumen espacio y ancho de banda de E/S. 

En el ejemplo siguiente se elimina el directorio denominado `PRODUCT_DESCRIPTIONS`. 

```
EXEC rdsadmin.rdsadmin_util.drop_directory(p_directory_name => 'product_descriptions');
```

**nota**  
También puede eliminar un directorio mediante el comando de Oracle SQL `DROP DIRECTORY`. 

Al eliminar un directorio, no se elimina su contenido. Debido a que el procedimiento `rdsadmin.rdsadmin_util.create_directory` puede reutilizar los nombres de ruta, los archivos de los directorios eliminados pueden aparecer en un directorio que se acaba de crear. Antes de eliminar un directorio, recomendamos que utilice `UTL_FILE.FREMOVE` para eliminar los archivos del directorio. Para más información, consulte [FREMOVE Procedure](https://docs.oracle.com/database/121/ARPLS/u_file.htm#ARPLS70924) en la documentación de Oracle.

## Descripción de los archivos de un directorio de instancia de base de datos
<a name="Appendix.Oracle.CommonDBATasks.ListDirectories"></a>

Utilice el procedimiento de Amazon RDS para obtener un listado de los archivos de un directori `rdsadmin.rds_file_util.listdir`. No se admite este procedimiento en una réplica de Oracle. El procedimiento `listdir` tiene los siguientes parámetros. 


****  

| Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | 
|  `p_directory`  |  varchar2  |  —  |  Sí  |  El nombre del directorio cuyo listado se desea obtener.  | 

El siguiente ejemplo concede privilegios de lectura o escritura en el directorio `PRODUCT_DESCRIPTIONS` al usuario `rdsadmin` y, luego, enumera los archivos de este directorio. 

```
GRANT READ,WRITE ON DIRECTORY PRODUCT_DESCRIPTIONS TO rdsadmin;
SELECT * FROM TABLE(rdsadmin.rds_file_util.listdir(p_directory => 'PRODUCT_DESCRIPTIONS'));
```

## Lectura de archivos de un directorio de instancia de base de datos
<a name="Appendix.Oracle.CommonDBATasks.ReadingFiles"></a>

Utilice el procedimiento de Amazon RDS para leer un archivo de text `rdsadmin.rds_file_util.read_text_file`. El procedimiento `read_text_file` tiene los siguientes parámetros. 


****  

| Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | 
|  `p_directory`  |  varchar2  |  —  |  Sí  |  El nombre del directorio que contiene el archivo.  | 
|  `p_filename`  |  varchar2  |  —  |  Sí  |  El nombre del archivo que se va a leer.  | 

En el ejemplo siguiente se crea el archivo `rice.txt` en el directorio `PRODUCT_DESCRIPTIONS`. 

```
declare
  fh sys.utl_file.file_type;
begin
  fh := utl_file.fopen(location=>'PRODUCT_DESCRIPTIONS', filename=>'rice.txt', open_mode=>'w');
  utl_file.put(file=>fh, buffer=>'AnyCompany brown rice, 15 lbs');
  utl_file.fclose(file=>fh);
end;
/
```

En el siguiente ejemplo se lee el archivo `rice.txt` del directorio `PRODUCT_DESCRIPTIONS`. 

```
SELECT * FROM TABLE
    (rdsadmin.rds_file_util.read_text_file(
        p_directory => 'PRODUCT_DESCRIPTIONS',
        p_filename  => 'rice.txt'));
```

## Acceso a los archivos de Opatch
<a name="Appendix.Oracle.CommonDBATasks.accessing-opatch-files"></a>

Opatch es una utilidad de Oracle que permite la aplicación y la restauración de parches en el software de Oracle. El mecanismo de Oracle para determinar qué parches se han aplicado a una base de datos es el comando `opatch lsinventory`. Para abrir solicitudes de servicio para clientes de Bring Your Own License (BYOL), Oracle Support solicita el archivo `lsinventory` y a veces el archivo `lsinventory_detail` generado por Opatch.

Para ofrecer una experiencia de servicio administrado, Amazon RDS no proporciona acceso mediante shell a Opatch. En su lugar, el `lsinventory-dbv.txt` en el directorio BDUMP contiene la información del parche relacionada con la versión actual del motor. Cuando realiza una actualización menor o importante, Amazon RDS actualiza `lsinventory-dbv.txt` dentro de una hora después de aplicar el parche. Para verificar los parches aplicados, lea `lsinventory-dbv.txt`. Esta acción es similar a ejecutar el comando `opatch lsinventory`.

**nota**  
Los ejemplos de esta sección suponen que el directorio BDUMP se llama `BDUMP`. En una réplica de lectura, el nombre del directorio BDUMP es diferente. Para obtener información sobre cómo obtener el nombre BDUMP mediante una consulta `V$DATABASE.DB_UNIQUE_NAME` en una réplica de lectura, consulte [Descripción de archivos](USER_LogAccess.Concepts.Oracle.md#USER_LogAccess.Concepts.Oracle.WorkingWithTracefiles.ViewingBackgroundDumpDest).

Los archivos de inventario utilizan la convención de nomenclatura de Amazon RDS `lsinventory-dbv.txt` y `lsinventory_detail-dbv.txt`, donde *dbv* es el nombre completo de su versión de base de datos. El archivo `lsinventory-dbv.txt` está disponible en todas las versiones de base de datos. El correspondiente `lsinventory_detail-dbv.txt` está disponible en 19.0.0.0, ru-2020-01.rur-2020-01.r1 o versiones posteriores.

Por ejemplo, si su versión de base de datos es 19.0.0.0.ru-2021-07.rur-2021-07.r1, los archivos de inventario tienen los siguientes nombres.

```
lsinventory-19.0.0.0.ru-2021-07.rur-2021-07.r1.txt
lsinventory_detail-19.0.0.0.ru-2021-07.rur-2021-07.r1.txt
```

Asegúrese de descargar los archivos que coinciden con la versión actual de su motor de base de datos.

### Consola
<a name="Appendix.Oracle.CommonDBATasks.accessing-opatch-files.console"></a>

**Para descargar un archivo de inventario mediante la consola**

1. Abra la consola de Amazon RDS en [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. En el panel de navegación, seleccione **Databases (Bases de datos)**.

1. Seleccione el nombre de la instancia de base de datos que tiene el archivo de registro que desea visualizar.

1. Seleccione la pestaña **Logs & events (Registros y eventos)**.

1. Desplácese hacia abajo hasta la sección **Logs**.

1. En la sección **Registros**, busque `lsinventory`.

1. Seleccione el archivo al que desea acceder y, a continuación, elija **Descargar**.

### SQL
<a name="Appendix.Oracle.CommonDBATasks.accessing-opatch-files.sql"></a>

Para leer `lsinventory-dbv.txt` en un cliente SQL, puede utilizar una instrucción `SELECT`. Para esta técnica, utilice cualquiera de las siguientes funciones de `rdsadmin`: `rdsadmin.rds_file_util.read_text_file` o `rdsadmin.tracefile_listing`.

En la siguiente consulta de ejemplo, reemplace *dbv* por la versión de la base de datos de Oracle. Por ejemplo, es posible que su versión de base de datos sea 19.0.0.0.ru-2020-04.rur-2020-04.r1.

```
SELECT text
FROM   TABLE(rdsadmin.rds_file_util.read_text_file('BDUMP', 'lsinventory-dbv.txt'));
```

### PL/SQL
<a name="Appendix.Oracle.CommonDBATasks.accessing-opatch-files.plsql"></a>

Para leer `lsinventory-dbv.txt` en un cliente SQL, puede escribir un programa PL/SQL. Este programa utiliza `utl_file` para leer el archivo y `dbms_output` para imprimirlo. Estos son paquetes suministrados por Oracle. 

En el siguiente programa de ejemplo, reemplace *dbv* por la versión de base de datos de Oracle. Por ejemplo, es posible que su versión de base de datos sea 19.0.0.0.ru-2020-04.rur-2020-04.r1.

```
SET SERVEROUTPUT ON
DECLARE
  v_file              SYS.UTL_FILE.FILE_TYPE;
  v_line              VARCHAR2(1000);
  v_oracle_home_type  VARCHAR2(1000);
  c_directory         VARCHAR2(30) := 'BDUMP';
  c_output_file       VARCHAR2(30) := 'lsinventory-dbv.txt';
BEGIN
  v_file := SYS.UTL_FILE.FOPEN(c_directory, c_output_file, 'r');
  LOOP
    BEGIN
      SYS.UTL_FILE.GET_LINE(v_file, v_line,1000);
      DBMS_OUTPUT.PUT_LINE(v_line);
    EXCEPTION
      WHEN no_data_found THEN
        EXIT;
    END;
  END LOOP;
END;
/
```

O consulta `rdsadmin.tracefile_listing` e incorpora la salida a un archivo. En el ejemplo siguiente se incorpora la salida a `/tmp/tracefile.txt`.

```
SPOOL /tmp/tracefile.txt
SELECT * 
FROM   rdsadmin.tracefile_listing 
WHERE  FILENAME LIKE 'lsinventory%';
SPOOL OFF;
```

## Administrar tareas del asesor
<a name="Appendix.Oracle.CommonDBATasks.managing-advisor-tasks"></a>

Oracle Database incluye varios asesores. Cada asesor soporta tareas automatizadas y manuales. Puede utilizar procedimientos en el paquete `rdsadmin.rdsadmin_util` para administrar algunas tareas del asesor.

Los procedimientos de tareas del asesor están disponibles en las siguientes versiones del motor:
+ Oracle Database 21c (21.0.0)
+ Versión 19.0.0.0.ru-2021-01.rur-2021-01.r1 Oracle Database 19c y versiones posteriores 

  Para obtener más información, consulte la sección sobre la [versión 19.0.0.0.ru-2021-01.rur-2021-01.r1](https://docs.aws.amazon.com/AmazonRDS/latest/OracleReleaseNotes/oracle-version-19-0.html#oracle-version-RU-RUR.19.0.0.0.ru-2021-01.rur-2021-01.r1) en las *notas de la versión de Amazon RDS for Oracle*.

**Topics**
+ [Configuración de parámetros para tareas del asesor](#Appendix.Oracle.CommonDBATasks.setting-task-parameters)
+ [Desactivación de AUTO\$1STATS\$1ADVISOR\$1TASK](#Appendix.Oracle.CommonDBATasks.dropping-advisor-task)
+ [Volver a habilitar AUTO\$1STATS\$1ADVISOR\$1TASK](#Appendix.Oracle.CommonDBATasks.recreating-advisor-task)

### Configuración de parámetros para tareas del asesor
<a name="Appendix.Oracle.CommonDBATasks.setting-task-parameters"></a>

A fin de establecer parámetros para algunas tareas del asesor, utilice el Amazon RDS procedimiento `rdsadmin.rdsadmin_util.advisor_task_set_parameter`. El procedimiento `advisor_task_set_parameter` tiene los siguientes parámetros.


****  

| Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | 
|  `p_task_name`  |  varchar2  |  —  |  Sí  |  El nombre de la tarea del asesor cuyos parámetros desea cambiar. Los siguientes valores son válidos: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.Misc.html)  | 
|  `p_parameter`  |  varchar2  |  —  |  Sí  |  El nombre del parámetro de la tarea. A fin de buscar parámetros válidos para una tarea del asesor, ejecute la siguiente consulta. Sustituya *p\$1task\$1name* con un valor válido para `p_task_name`: <pre>COL PARAMETER_NAME FORMAT a30<br />COL PARAMETER_VALUE FORMAT a30<br />SELECT PARAMETER_NAME, PARAMETER_VALUE<br />FROM DBA_ADVISOR_PARAMETERS<br />WHERE TASK_NAME='p_task_name'<br />AND PARAMETER_VALUE != 'UNUSED'<br />ORDER BY PARAMETER_NAME;</pre>  | 
|  `p_value`  |  varchar2  |  —  |  Sí  |  El valor de un parámetro de tarea. Para buscar valores válidos para los parámetros de tarea, ejecute la siguiente consulta. Sustituya *p\$1task\$1name* con un valor válido para `p_task_name`: <pre>COL PARAMETER_NAME FORMAT a30<br />COL PARAMETER_VALUE FORMAT a30<br />SELECT PARAMETER_NAME, PARAMETER_VALUE<br />FROM DBA_ADVISOR_PARAMETERS<br />WHERE TASK_NAME='p_task_name'<br />AND PARAMETER_VALUE != 'UNUSED'<br />ORDER BY PARAMETER_NAME;</pre>  | 

El siguiente programa PL/SQL establece `ACCEPT_PLANS` a `FALSE` para `SYS_AUTO_SPM_EVOLVE_TASK`. La tarea automatizada de administración de planes SQL verifica los planes y genera un informe de sus conclusiones, pero no evoluciona los planes automáticamente. Puede utilizar un informe para identificar nuevas líneas base de plan SQL y aceptarlas manualmente.

```
BEGIN 
  rdsadmin.rdsadmin_util.advisor_task_set_parameter(
    p_task_name => 'SYS_AUTO_SPM_EVOLVE_TASK',
    p_parameter => 'ACCEPT_PLANS',
    p_value     => 'FALSE');
END;
```

El siguiente programa PL/SQL establece `EXECUTION_DAYS_TO_EXPIRE` a `10` para `AUTO_STATS_ADVISOR_TASK`. La tarea predefinida `AUTO_STATS_ADVISOR_TASK` se ejecuta automáticamente en el periodo de mantenimiento una vez al día. En el ejemplo se establece el periodo de retención para la ejecución de la tarea en 10 días. 

```
BEGIN 
  rdsadmin.rdsadmin_util.advisor_task_set_parameter(
    p_task_name => 'AUTO_STATS_ADVISOR_TASK',
    p_parameter => 'EXECUTION_DAYS_TO_EXPIRE',
    p_value     => '10');
END;
```

### Desactivación de AUTO\$1STATS\$1ADVISOR\$1TASK
<a name="Appendix.Oracle.CommonDBATasks.dropping-advisor-task"></a>

Para deshabilitar `AUTO_STATS_ADVISOR_TASK`, utilice el Amazon RDS procedimiento `rdsadmin.rdsadmin_util.advisor_task_drop`. El procedimiento `advisor_task_drop` acepta el siguiente parámetro.


****  

| Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | 
|  `p_task_name`  |  varchar2  |  —  |  Sí  |  El nombre de la tarea del asesor que se va a deshabilitar. El único valor válido es `AUTO_STATS_ADVISOR_TASK`.  | 

El siguiente comando se coloca `AUTO_STATS_ADVISOR_TASK`.

```
EXEC rdsadmin.rdsadmin_util.advisor_task_drop('AUTO_STATS_ADVISOR_TASK')
```

Puede volver a habilitar `AUTO_STATS_ADVISOR_TASK` con `rdsadmin.rdsadmin_util.dbms_stats_init`.

### Volver a habilitar AUTO\$1STATS\$1ADVISOR\$1TASK
<a name="Appendix.Oracle.CommonDBATasks.recreating-advisor-task"></a>

Para volver a habilitar `AUTO_STATS_ADVISOR_TASK`, utilice el Amazon RDS procedimiento `rdsadmin.rdsadmin_util.dbms_stats_init`. El procedimiento `dbms_stats_init` no acepta parámetros.

El siguiente comando vuelve a habilitar `AUTO_STATS_ADVISOR_TASK`.

```
EXEC rdsadmin.rdsadmin_util.dbms_stats_init()
```

# Transporte de espacios de tabla
<a name="rdsadmin_transport_util"></a>

Utilice el paquete Amazon RDS `rdsadmin.rdsadmin_transport_util` para copiar un conjunto de espacios de tabla de una base de datos Oracle en las instalaciones a una instancia de base de datos de RDS para Oracle. A nivel físico, la característica de espacio de tabla transportable copia de forma incremental los archivos de datos de origen y los archivos de metadatos en la instancia de destino. Puede transferir los archivos mediante Amazon EFS o Amazon S3. Para obtener más información, consulte [Migración mediante espacios de tabla transportables de Oracle](oracle-migrating-tts.md).

**Topics**
+ [Importación de espacios de tabla transportados a su instancia de base de datos](rdsadmin_transport_util_import_xtts_tablespaces.md)
+ [Importación de metadatos de espacios de tabla transportables a su instancia de base de datos](rdsadmin_transport_util_import_xtts_metadata.md)
+ [Enumeración de los archivos huérfanos después de importar un espacio de tabla](rdsadmin_transport_util_list_xtts_orphan_files.md)
+ [Eliminación de los archivos de datos huérfanos después de importar un espacio de tabla](rdsadmin_transport_util_cleanup_incomplete_xtts_import.md)

# Importación de espacios de tabla transportados a su instancia de base de datos
<a name="rdsadmin_transport_util_import_xtts_tablespaces"></a>

Utilice el procedimiento `rdsadmin.rdsadmin_transport_util.import_xtts_tablespaces` para restaurar los espacios de tabla que haya exportado anteriormente desde una instancia de base de datos de origen. En la fase de transporte, se realiza una copia de seguridad de los espacios de tabla de solo lectura y se exportan los metadatos de Data Pump, se transfiere estos archivos a su instancia de base de datos de destino y se importan tanto los espacios de tabla. Para obtener más información, consulte [Fase 4: Transportar los espacios de tabla](oracle-migrating-tts.md#oracle-migrating-tts.final-br-phase). 

## Sintaxis
<a name="rdsadmin_transport_util_import_xtts_tablespaces-syntax"></a>

```
FUNCTION import_xtts_tablespaces(
    p_tablespace_list IN CLOB,
    p_directory_name  IN VARCHAR2,
    p_platform_id     IN NUMBER DEFAULT 13,
    p_parallel        IN INTEGER DEFAULT 0) RETURN VARCHAR2;
```

## Parameters
<a name="rdsadmin_transport_util_import_xtts_tablespaces-parameters"></a>


****  

| Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | 
|  `p_tablespace_list`  |  `CLOB`  |  —  |  Sí  |  La lista de espacios de tabla que se van a importar.  | 
|  `p_directory_name`  |  `VARCHAR2`  |  —  |  Sí  | El directorio que contiene las copias de seguridad del espacio de tabla. | 
|  `p_platform_id`  |  `NUMBER`  |  `13`  |  No  |  Proporcione un ID de plataforma que coincida con el especificado durante la fase de copia de seguridad. Para encontrar una lista de plataformas, consulte `V$TRANSPORTABLE_PLATFORM`. La plataforma predeterminada es Linux x86 de 64 bits, que tiene un formato little endian.  | 
|  `p_parallel`  |  `INTEGER`  |  `0`  |  No  |  El grado de paralelismo. De forma predeterminada, el paralelismo está desactivado.  | 

## Ejemplos
<a name="rdsadmin_transport_util_import_xtts_tablespaces-examples"></a>

En el siguiente ejemplo se importan los espacios de tabla *TBS1*, *TBS2* y *TBS3* del directorio *DATA\$1PUMP\$1DIR*. La plataforma de origen es AIX-Based Systems (64 bits), con el id. de plataforma `6`. Puede encontrar los id. de plataforma consultando `V$TRANSPORTABLE_PLATFORM`.

```
VAR task_id CLOB

BEGIN
  :task_id:=rdsadmin.rdsadmin_transport_util.import_xtts_tablespaces(
        'TBS1,TBS2,TBS3',
        'DATA_PUMP_DIR',
        p_platform_id => 6);
END;
/

PRINT task_id
```

# Importación de metadatos de espacios de tabla transportables a su instancia de base de datos
<a name="rdsadmin_transport_util_import_xtts_metadata"></a>

Utilice el procedimiento `rdsadmin.rdsadmin_transport_util.import_xtts_metadata` para importar los metadatos del espacio de tabla transportable a su instancia de base de datos de RDS para Oracle. Durante la operación, el estado de la importación de metadatos se muestra en la tabla `rdsadmin.rds_xtts_operation_info`. Para obtener más información, consulte [Paso 5: Importar los metadatos del espacio de tabla en la instancia de base de datos de destino](oracle-migrating-tts.md#oracle-migrating-tts.transport.import-dmp).

## Sintaxis
<a name="rdsadmin_transport_util_import_xtts_metadata-syntax"></a>

```
PROCEDURE import_xtts_metadata(
    p_datapump_metadata_file IN SYS.DBA_DATA_FILES.FILE_NAME%TYPE,
    p_directory_name         IN VARCHAR2,
    p_exclude_stats          IN BOOLEAN DEFAULT FALSE,
    p_remap_tablespace_list  IN CLOB DEFAULT NULL,
    p_remap_user_list        IN CLOB DEFAULT NULL);
```

## Parameters
<a name="rdsadmin_transport_util_import_xtts_metadata-parameters"></a>


****  

| Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | 
|  `p_datapump_metadata_file`  |  `SYS.DBA_DATA_FILES.FILE_NAME%TYPE`  |  —  |  Sí  |  El nombre del archivo de Oracle Data Pump que contiene los metadatos de los espacios de tabla transportables.  | 
|  `p_directory_name`  |  `VARCHAR2`  |  —  |  Sí  |  El nombre del directorio que contiene el archivo de Data Pump.  | 
|  `p_exclude_stats`  |  `BOOLEAN`  |  `FALSE`  |  No  |  Indicador que señala si se deben excluir las estadísticas.  | 
|  `p_remap_tablespace_list`  |  `CLOB`  |  NULL  |  No  |  Una lista de espacios de tabla que se van a reasignar durante la importación de metadatos. Utilice el formato `from_tbs:to_tbs`. Por ejemplo, especifique `users:user_data`.   | 
|  `p_remap_user_list`  |  `CLOB`  |  NULL  |  No  |  Una lista de esquemas de usuario que se van a reasignar durante la importación de metadatos. Utilice el formato `from_schema_name:to_schema_name`. Por ejemplo, especifique `hr:human_resources`.   | 

## Ejemplos
<a name="rdsadmin_transport_util_import_xtts_metadata-examples"></a>

El ejemplo importa los metadatos del espacio de tabla del archivo *xttdump.dmp*, que se encuentra en el directorio *DATA\$1PUMP\$1DIR*.

```
BEGIN
  rdsadmin.rdsadmin_transport_util.import_xtts_metadata('xttdump.dmp','DATA_PUMP_DIR');
END;
/
```

# Enumeración de los archivos huérfanos después de importar un espacio de tabla
<a name="rdsadmin_transport_util_list_xtts_orphan_files"></a>

Utilice el procedimiento `rdsadmin.rdsadmin_transport_util.list_xtts_orphan_files` para enumerar los archivos de datos que quedaron huérfanos tras la importación de un espacio de tabla. Después de identificar los archivos de datos, puede eliminarlos llamando a `rdsadmin.rdsadmin_transport_util.cleanup_incomplete_xtts_import`.

## Sintaxis
<a name="rdsadmin_transport_util_list_xtts_orphan_files-syntax"></a>

```
FUNCTION list_xtts_orphan_files RETURN xtts_orphan_files_list_t PIPELINED;
```

## Ejemplos
<a name="rdsadmin_transport_util_list_xtts_orphan_files-examples"></a>

En el siguiente ejemplo se ejecuta el procedimiento `rdsadmin.rdsadmin_transport_util.list_xtts_orphan_files`. El resultado muestra dos archivos de datos huérfanos.

```
SQL> SELECT * FROM TABLE(rdsadmin.rdsadmin_transport_util.list_xtts_orphan_files);

FILENAME       FILESIZE
-------------- ---------
datafile_7.dbf 104865792
datafile_8.dbf 104865792
```

# Eliminación de los archivos de datos huérfanos después de importar un espacio de tabla
<a name="rdsadmin_transport_util_cleanup_incomplete_xtts_import"></a>

Utilice el procedimiento `rdsadmin.rdsadmin_transport_util.list_xtts_orphan_files` para eliminar los archivos de datos que quedaron huérfanos tras la importación de un espacio de tabla. La ejecución de este comando genera un archivo de registro que usa el formato de nombre `rds-xtts-delete_xtts_orphaned_files-YYYY-MM-DD.HH24-MI-SS.FF.log` en el directorio `BDUMP`. Utilice el procedimiento `rdsadmin.rdsadmin_transport_util.cleanup_incomplete_xtts_import` para buscar los archivos huérfanos. Para leer el archivo de registro, llame al procedimiento `rdsadmin.rds_file_util.read_text_file`. Para obtener más información, consulte [Fase 6: Limpiar los archivos sobrantes](oracle-migrating-tts.md#oracle-migrating-tts.cleanup).

## Sintaxis
<a name="rdsadmin_transport_util_cleanup_incomplete_xtts_import-syntax"></a>

```
PROCEDURE cleanup_incomplete_xtts_import(
    p_directory_name IN VARCHAR2);
```

## Parameters
<a name="rdsadmin_transport_util_cleanup_incomplete_xtts_import-parameters"></a>


****  

| Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | 
|  `p_directory_name`  |  `VARCHAR2`  |  —  |  Sí  |  El directorio que contiene los archivos de datos huérfanos.  | 

## Ejemplos
<a name="rdsadmin_transport_util_cleanup_incomplete_xtts_import-examples"></a>

En el siguiente ejemplo se eliminan los archivos de datos huérfanos en *DATA\$1PUMP\$1DIR*.

```
BEGIN
  rdsadmin.rdsadmin_transport_util.cleanup_incomplete_xtts_import('DATA_PUMP_DIR');
END;
/
```

En el siguiente ejemplo se lee el archivo de registro generado por el comando anterior. 

```
SELECT * 
FROM TABLE(rdsadmin.rds_file_util.read_text_file(
       p_directory => 'BDUMP',
       p_filename  => 'rds-xtts-delete_xtts_orphaned_files-2023-06-01.09-33-11.868894000.log'));

TEXT
--------------------------------------------------------------------------------
orphan transported datafile datafile_7.dbf deleted.
orphan transported datafile datafile_8.dbf deleted.
```

# Uso de almacenamiento en RDS para Oracle
<a name="User_Oracle_AdditionalStorage"></a>

Cada instancia de RDS para Oracle tiene un volumen de almacenamiento principal. Para aumentar la capacidad de almacenamiento, puede adjuntar hasta tres volúmenes de almacenamiento adicionales a la instancia de base de datos. En función de los requisitos de carga de trabajo, elija entre el almacenamiento de gp3 y de io2 para cada volumen. Por ejemplo, puede colocar los datos de acceso frecuente en un volumen de io2 y los datos históricos en un volumen de gp3.

Use los volúmenes de almacenamiento adicionales para habilitar los siguientes beneficios:
+ **Capacidad mejorada**: amplíe su almacenamiento total hasta 256 TiB por instancia de base de datos adjuntando hasta tres volúmenes de almacenamiento adicionales.
+ **Configuración de almacenamiento flexible y optimización del rendimiento**: combine diferentes tipos de almacenamiento (gp3 e io2) para optimizar el costo y el rendimiento en función de sus patrones de acceso a los datos. Separe los datos a los que se accede con frecuencia en el almacenamiento de io2 de alto rendimiento de los datos archivados en el almacenamiento de gp3 rentable.
+ **Amplíe y reduzca la capacidad de almacenamiento según sea necesario**: asocie un volumen cuando necesite almacenamiento adicional, como durante la migración de datos, y luego elimínelo. De esta forma, puede ampliar y reducir el almacenamiento total de la instancia de base de datos.
+ **Movimiento de datos en línea**: utilice las capacidades integradas de la base de datos de Oracle para mover datos entre volúmenes sin tiempo de inactividad.

**nota**  
Puede eliminar volúmenes de almacenamiento adicionales, pero no puede eliminar el volumen principal.

**Topics**
+ [Consideraciones para el uso de volúmenes de almacenamiento adicionales con RDS para Oracle](#User_Oracle_AdditionalStorage.considerations)
+ [Limitaciones del uso de volúmenes de almacenamiento adicionales con RDS para Oracle](#User_Oracle_AdditionalStorage.limitations)
+ [Operaciones de administración de bases de datos con volúmenes de almacenamiento adicionales en RDS para Oracle](#User_Oracle_AdditionalStorage.DBManagement)
+ [Agregación, eliminación o modificación de volúmenes de almacenamiento con RDS para Oracle](User_Oracle_AdditionalStorage.ModifyStorageVolumes.md)
+ [Copia de seguridad y restauración de datos con volúmenes de almacenamiento adicionales en RDS para Oracle](User_Oracle_AdditionalStorage.BackupRestore.md)
+ [Casos de uso para volúmenes de almacenamiento adicionales en RDS para Oracle](User_Oracle_AdditionalStorage.UseCases.md)

## Consideraciones para el uso de volúmenes de almacenamiento adicionales con RDS para Oracle
<a name="User_Oracle_AdditionalStorage.considerations"></a>

Tenga en cuenta lo siguiente al utilizar volúmenes de almacenamiento adicionales con RDS para Oracle:
+ Puede agregar hasta 3 volúmenes de almacenamiento adicionales por instancia.
+ Los volúmenes de almacenamiento adicionales deben usar los siguientes nombres de volumen:
  + rdsdbdata2
  + rdsdbdata3
  + rdsdbdata4
+ Solo puede agregar tipos de almacenamiento de SSD de uso general (gp3) y SSD de IOPS aprovisionadas (io2).
+ Puede utilizar las capacidades de reubicación en línea de Oracle para mover datos entre volúmenes mientras las aplicaciones siguen ejecutándose.
+ Al crear un volumen de almacenamiento adicional mediante la modificación de la instancia de base de datos, RDS crea inmediatamente el volumen de almacenamiento, independientemente de la configuración de las modificaciones programadas. La agregación de un volumen de almacenamiento es una operación en línea y no afecta al rendimiento de la base de datos. Consulte [Uso de la configuración de la programación de modificaciones](USER_ModifyInstance.ApplyImmediately.md).

Para obtener un rendimiento óptimo, compruebe lo siguiente cuando utilice volúmenes de almacenamiento adicionales:
+ Planificación del movimiento de datos
  + Programa de grandes movimientos durante las horas de menor actividad
  + División de las operaciones grandes en partes más pequeñas
  + Supervisión de los recursos del sistema durante los traslados
+ Administración de recursos
  + Mantenimiento de suficiente espacio libre en ambos volúmenes
  + Supervisión de los patrones de E/S mediante AWR o Statspack
  + Atención a los escenarios de storage-full
+ Prácticas recomendadas
  + Uso de operaciones de reubicación de archivos de datos en línea siempre que sea posible
  + Mantenimiento de los índices apropiados
  + Supervisión de forma regular del uso del espacio

Cuando se usen volúmenes de almacenamiento adicionales con réplicas:
+ Al crear una réplica de RDS para Oracle para una instancia de base de datos que tiene volúmenes de almacenamiento adicionales, RDS configura automáticamente los volúmenes de almacenamiento adicionales en la réplica. Sin embargo, cualquier modificación posterior realizada en los volúmenes de almacenamiento de la instancia de base de datos principal no se aplica automáticamente a la réplica.
+ Al administrar las ubicaciones de los archivos de datos en todos los volúmenes, recomendamos utilizar la configuración de los grupos de parámetros en lugar de los cambios por sesión para garantizar un comportamiento coherente entre las instancias principales y de réplica.

## Limitaciones del uso de volúmenes de almacenamiento adicionales con RDS para Oracle
<a name="User_Oracle_AdditionalStorage.limitations"></a>

Las limitaciones siguientes se aplican al uso de volúmenes de almacenamiento adicionales con RDS para Oracle:
+ No puede agregar un volumen de almacenamiento a los tipos de instancias con menos de 64 GiB de memoria porque no tienen memoria suficiente para admitir grandes volúmenes de almacenamiento.
+ El tamaño mínimo de almacenamiento es de 200 GiB para volúmenes de almacenamiento adicionales. El volumen de almacenamiento principal de la instancia de base de datos debe ser igual o superior a 200 GiB para poder asociar volúmenes de almacenamiento adicionales. El tamaño máximo de almacenamiento de la instancia de base de datos es de 256 TiB en total en todos los volúmenes.
+ Las siguientes capacidades no se admiten en las instancias de base de datos con volúmenes de almacenamiento adicionales:
  + Copias de seguridad automatizadas entre regiones
  + Escalado automático de almacenamiento (para volúmenes de almacenamiento adicionales)
  + Copia de instantáneas entre cuentas
  + Instantáneas públicas
+ No puede eliminar el volumen de almacenamiento principal (`rdsdbdata`), pero puede eliminar otros volúmenes de almacenamiento adicionales siempre que estén vacíos.
+ No puede almacenar los registros REDO en línea, los registros REDO archivados ni los archivos de control en volúmenes de almacenamiento adicionales. Estos archivos solo se pueden almacenar en el volumen de almacenamiento principal (`rdsdbdata`).

## Operaciones de administración de bases de datos con volúmenes de almacenamiento adicionales en RDS para Oracle
<a name="User_Oracle_AdditionalStorage.DBManagement"></a>

Puede realizar operaciones de administración de bases de datos, como crear espacios de tablas o mover datos entre volúmenes de almacenamiento, mientras utiliza volúmenes de almacenamiento adicionales en RDS para Oracle. Para obtener más información sobre las operaciones de administración de base de datos con volúmenes de almacenamiento adicionales, consulte las siguientes secciones:
+ [Especificación de ubicaciones de archivos de base de datos en RDS para Oracle](Appendix.Oracle.CommonDBATasks.TablespacesAndDatafiles.md#Appendix.Oracle.CommonDBATasks.DatabaseFileLocations)
+ [Creación y redimensionamiento de los espacios de tablas en RDS para Oracle](Appendix.Oracle.CommonDBATasks.TablespacesAndDatafiles.md#Appendix.Oracle.CommonDBATasks.CreatingTablespacesAndDatafiles)
+ [Movimiento de archivos de datos entre volúmenes en RDS para Oracle](Appendix.Oracle.CommonDBATasks.MovingDataBetweenVolumes.md#Appendix.Oracle.CommonDBATasks.MovingDatafiles)

# Agregación, eliminación o modificación de volúmenes de almacenamiento con RDS para Oracle
<a name="User_Oracle_AdditionalStorage.ModifyStorageVolumes"></a>

Puede agregar, modificar y eliminar volúmenes de almacenamiento adicionales mediante la Consola de administración de AWS o la AWS CLI. Todas las operaciones utilizan el comando `modify-db-instance` con el parámetro `additional-storage-volumes`.

**importante**  
La agregación o eliminación de volúmenes de almacenamiento adicionales crea una acción pendiente de copia de seguridad y un periodo de interrupción. El periodo de interrupción se cierra cuando se completa el flujo de trabajo de copia de seguridad.



## Agregación de volúmenes de almacenamiento
<a name="User_Oracle_AdditionalStorage.ModifyStorageVolumes.Add"></a>

Puede agregar hasta tres volúmenes de almacenamiento además del volumen de almacenamiento principal. Para agregar un nuevo volumen de almacenamiento a la instancia de base de datos de RDS para Oracle, utilice el comando `modify-db-instance` con el parámetro `additional-storage-volumes`.

El siguiente fragmento de código agrega un nuevo volumen SSD de uso general (gp3) de 5000 GiB con un nombre de 4000 IOPS aprovisionadas `rdsdbdata3`.

```
aws rds modify-db-instance \
  --db-instance-identifier my-oracle-instance \
  --region us-east-1 \
  --additional-storage-volumes '[
        {
            "VolumeName":"rdsdbdata3",
            "StorageType":"gp3",
            "AllocatedStorage":5000
            "IOPS":4000}
    ]' \
  --apply-immediately
```

## Modificación de los volúmenes de almacenamiento
<a name="User_Oracle_AdditionalStorage.ModifyStorageVolumes.Modifying"></a>

Puede modificar el tipo de almacenamiento, el tamaño de almacenamiento asignado, las IOPS y la configuración de rendimiento de almacenamiento del volumen de almacenamiento adicional. El siguiente fragmento de código modifica la configuración de IOPS del volumen `rdsdbdata2`.

```
aws rds modify-db-instance \
  --db-instance-identifier my-oracle-instance \
  --region us-east-1 \
  --additional-storage-volumes '[
        {
            "VolumeName":"rdsdbdata2",
            "IOPS":8000}
    ]' \
  --apply-immediately
```

**nota**  
No puede reducir la asignación de almacenamiento para un volumen de almacenamiento adicional una vez que lo haya agregado a la instancia.

## Eliminación de volúmenes de almacenamiento
<a name="User_Oracle_AdditionalStorage.ModifyStorageVolumes.Remove"></a>

Puede eliminar volúmenes de almacenamiento adicionales de las instancias de base de datos de RDS para Oracle cuando ya no sean necesarios. Antes de eliminar un volumen, asegúrese de haber sacado todos los archivos de la base de datos del volumen y de que ningún objeto de la base de datos haga referencia a él. Compruebe que el estado del volumen sea `Not-in-use`. Puede eliminar volúmenes de almacenamiento adicionales, pero no puede eliminar el volumen principal de almacenamiento. 

**aviso**  
Antes de eliminar un volumen de almacenamiento adicional, asegúrese de que no haya ningún archivo de base de datos almacenado en el volumen. La eliminación de un volumen con archivos de base de datos activos provoca la corrupción de la base de datos.

En el siguiente ejemplo, se elimina el volumen `rdsdbdata4`.

```
aws rds modify-db-instance \
  --db-instance-identifier my-oracle-instance \
  --region us-east-1 \
  --additional-storage-volumes '[
        {
            "VolumeName":"rdsdbdata2",
            "SetForDelete":true}
    ]' \
  --apply-immediately
```

# Copia de seguridad y restauración de datos con volúmenes de almacenamiento adicionales en RDS para Oracle
<a name="User_Oracle_AdditionalStorage.BackupRestore"></a>

Puede utilizar copias de seguridad automatizadas y crear una instantánea de base de datos con la instancia de base de datos con volúmenes de almacenamiento adicionales. Todas las operaciones de copia de seguridad incluyen el volumen principal y volúmenes de almacenamiento adicional. También puede utilizar recuperación en un momento dado para la instancia de base de datos con volúmenes de almacenamiento adicionales. Al restaurar la base de datos, puede agregar volúmenes de almacenamiento. También puede modificar la configuración de almacenamiento de los volúmenes existentes. No puede eliminar volúmenes de almacenamiento adicionales al restaurar la base de datos a partir de una instantánea. 

**Topics**
+ [Creación de instantáneas manuales](#User_Oracle_AdditionalStorage.BackupRestore.ManualSnapshots)
+ [Restauración de instantáneas manuales](#User_Oracle_AdditionalStorage.BackupRestore.RestoreSnapshots)
+ [Recuperación a un momento dado](#User_Oracle_AdditionalStorage.BackupRestore.PitR)

## Creación de instantáneas manuales
<a name="User_Oracle_AdditionalStorage.BackupRestore.ManualSnapshots"></a>

En el siguiente ejemplo, se crea una instantánea manual de la base de datos con volúmenes de almacenamiento adicionales:

```
aws rds create-db-snapshot \
--db-instance-identifier my-oracle-asv-instance \
--db-snapshot-identifier my-snapshot
```

## Restauración de instantáneas manuales
<a name="User_Oracle_AdditionalStorage.BackupRestore.RestoreSnapshots"></a>

Al restaurar a partir de una instantánea, puede agregar nuevos volúmenes de almacenamiento adicionales o modificar la configuración de IOPS o rendimiento de los volúmenes existentes. El siguiente ejemplo restaura una instancia de base de datos a partir de una instantánea y modifica la configuración de IOPS del volumen `rdsdbdata2`:

```
aws rds restore-db-instance-from-db-snapshot \
  --db-instance-identifier my-restored-instance \
  --db-snapshot-identifier my-snapshot \
  --region us-east-1 \
  --additional-storage-volumes '[
        {
            "VolumeName":"rdsdbdata2",
            "IOPS":5000
        }
    ]'
```

## Recuperación a un momento dado
<a name="User_Oracle_AdditionalStorage.BackupRestore.PitR"></a>

Durante la recuperación en un momento dado (PITR), puede agregar nuevos volúmenes de almacenamiento adicionales con configuraciones personalizadas. El siguiente ejemplo realiza PITR y agrega un nuevo SSD de uso general (gp3) de 5000 GiB con rendimiento de almacenamiento de 5000 IOPS y 200 MB/s para el volumen `rdsdbdata2`: 

```
aws rds restore-db-instance-to-point-in-time \
  --source-db-instance-identifier my-source-instancemy-source-instance \
  --target-db-instance my-pitr-instance\
  --use-latest-restorable-time \
  --region us-east-1 \
  --additional-storage-volumes '[
        {
            "VolumeName":"rdsdbdata2",
            "StorageType":"gp3",
            "AllocatedStorage":5000,
            "IOPS":5000,
            "StorageThroughput":200
        }
    ]'
```

# Casos de uso para volúmenes de almacenamiento adicionales en RDS para Oracle
<a name="User_Oracle_AdditionalStorage.UseCases"></a>

Los volúmenes de almacenamiento adicionales admiten varios escenarios de administración de bases de datos. Las siguientes secciones describen casos de uso comunes y enfoques de implementación.

**Topics**
+ [Ampliación de la capacidad de almacenamiento más allá de los 64 TiB](#User_Oracle_AdditionalStorage.UseCases.Extendingstoragecapacity)
+ [Almacenamiento por niveles de los datos a los que se accede con frecuencia y con poca frecuencia en volúmenes independientes](#User_Oracle_AdditionalStorage.UseCases.Storagetiering)
+ [Almacenamiento temporal para la carga y descarga de datos](#User_Oracle_AdditionalStorage.UseCases.Temporarystorage)
+ [Uso de espacios de tablas transportables de Oracle con un volumen de almacenamiento adicional](#User_Oracle_AdditionalStorage.UseCases.TransportableTablespaces)

## Ampliación de la capacidad de almacenamiento más allá de los 64 TiB
<a name="User_Oracle_AdditionalStorage.UseCases.Extendingstoragecapacity"></a>

Puede usar volúmenes de almacenamiento adicionales cuando el volumen de almacenamiento principal se acerque al límite de 64 TiB pero necesite más espacio de almacenamiento en la base de datos. Puede adjuntar volúmenes de almacenamiento adicionales a la instancia de base de datos, cada uno de hasta 64 TiB, mediante el comando `modify-db-instance`. Tras adjuntar volúmenes de almacenamiento adicionales, puede crear espacios de tabla en volúmenes de almacenamiento adicionales y mover objetos como tablas, índices y particiones a estos espacios de tabla mediante el SQL estándar de Oracle. Para obtener más información, consulte [Operaciones de administración de bases de datos con volúmenes de almacenamiento adicionales en RDS para Oracle](User_Oracle_AdditionalStorage.md#User_Oracle_AdditionalStorage.DBManagement).

## Almacenamiento por niveles de los datos a los que se accede con frecuencia y con poca frecuencia en volúmenes independientes
<a name="User_Oracle_AdditionalStorage.UseCases.Storagetiering"></a>

Puede usar volúmenes de almacenamiento adicionales para optimizar el costo y el rendimiento configurando diferentes tipos de almacenamiento entre los volúmenes. Por ejemplo, puede utilizar volúmenes de almacenamiento SSD con IOPS aprovisionadas (io2) de alto rendimiento para los datos a los que se accede con frecuencia y, al mismo tiempo, almacenar los datos históricos en volúmenes de almacenamiento rentables de uso general (gp3). Puede mover objetos de base de datos específicos (tablas, índices y particiones) a estos espacios de tabla mediante comandos estándar de Oracle. Para obtener más información, consulte [Operaciones de administración de bases de datos con volúmenes de almacenamiento adicionales en RDS para Oracle](User_Oracle_AdditionalStorage.md#User_Oracle_AdditionalStorage.DBManagement).

## Almacenamiento temporal para la carga y descarga de datos
<a name="User_Oracle_AdditionalStorage.UseCases.Temporarystorage"></a>

Puede utilizar volúmenes de almacenamiento adicionales como almacenamiento temporal para grandes cargas o exportaciones de datos siguiendo estos pasos:
+ Cree un directorio en un volumen de almacenamiento adicional con el siguiente comando:

  ```
  BEGIN
  rdsadmin.rdsadmin_util.create_directory(
              p_directory_name => 'DATA_PUMP_DIR2',
              p_database_volume_name => 'rdsdbdata2');
  END;
  /
  ```
+ Tras crear el directorio, siga los pasos descritos en [Importación mediante Oracle Data Pump](Oracle.Procedural.Importing.DataPump.md) para exportar e importar los datos al nuevo directorio. 
+ Una vez finalizada la operación, elimine los archivos y, si lo desea, elimine el volumen para ahorrar costos de almacenamiento. Puede eliminar el volumen de almacenamiento adicional solo cuando el volumen esté vacío.

## Uso de espacios de tablas transportables de Oracle con un volumen de almacenamiento adicional
<a name="User_Oracle_AdditionalStorage.UseCases.TransportableTablespaces"></a>

Puede utilizar volúmenes de almacenamiento adicionales para mover los archivos de datos a un volumen de almacenamiento adicional mediante los espacios de tablas transportables de Oracle siguiendo los siguientes pasos:
+ Establezca el parámetro `db_create_file_dest` por sesión antes de importar los espacios de tabla transportables a la base de datos de destino con un volumen de almacenamiento adicional.

  ```
  ALTER SESSION SET db_create_file_dest = '/rdsdbdata2/db';
  
  VAR x CLOB;
  
  BEGIN
  :x := rdsadmin.rdsadmin_transport_util.import_xtts_tablespaces(
  p_tablespace_list => 'TBTEST1',
  p_directory_name => 'XTTS_DIR_DATA2',
  p_platform_id => 13);
  END;
  /
  
  PRINT :x;
  ```
+ Compruebe el estado de la importación de los espacios de tablas transportables:

  ```
  ALTER SESSION SET nls_date_format = 'DD.MM.YYYY HH24:MI:SS';
  
  COL xtts_operation_start_utc FORMAT A30
  COL xtts_operation_end_utc FORMAT A30
  COL xtts_operation_state FORMAT A30
  COL xtts_operation_type FORMAT A30
  
  SELECT xtts_operation_start_utc, xtts_operation_type, xtts_operation_state
  FROM rdsadmin.rds_xtts_operation_info;
  ```
+ Cuando se complete la importación de los espacios de tablas transportables, importe los metadatos de los espacios de tablas transportables.

  ```
  BEGIN
  rdsadmin.rdsadmin_transport_util.import_xtts_metadata(
  p_datapump_metadata_file => 'xttdump.dmp',
  p_directory_name => 'XTTS_DIR_DATA2');
  END;
  /
  ```

# Configuración de características avanzadas de RDS para Oracle
<a name="CHAP_Oracle.advanced-features"></a>

RDS para Oracle admite varias funciones avanzadas, como HugePages, un almacén de instancias y tipos de datos extendidos.

**Topics**
+ [Almacenamiento de datos temporales en un almacén de instancias de RDS para Oracle](CHAP_Oracle.advanced-features.instance-store.md)
+ [Activación de páginas de gran tamaño para una instancia de RDS para Oracle](Oracle.Concepts.HugePages.md)
+ [Activación de tipos de datos extendidos en RDS para Oracle](Oracle.Concepts.ExtendedDataTypes.md)

# Almacenamiento de datos temporales en un almacén de instancias de RDS para Oracle
<a name="CHAP_Oracle.advanced-features.instance-store"></a>

Utilice un almacén de instancias para los espacios de tabla temporales y la caché flash inteligente de base de datos (la caché flash) en clases de instancia de base de datos de RDS para Oracle admitidas.

**Topics**
+ [Descripción general del almacén de instancias de RDS para Oracle](#CHAP_Oracle.advanced-features.instance-store.overview)
+ [Activación de un almacén de instancias de RDS para Oracle](#CHAP_Oracle.advanced-features.instance-store.Enable)
+ [Configuración de un almacén de instancias de RDS para Oracle](CHAP_Oracle.advanced-features.instance-store.configuring.md)
+ [Trabajo con un almacén de instancias en una réplica de lectura de Oracle](CHAP_Oracle.advanced-features.instance-store.replicas.md)
+ [Configuración de un grupo de espacio de tablas temporal en un almacén de instancias y Amazon EBS](CHAP_Oracle.advanced-features.instance-store.temp-ebs.md)
+ [Eliminación de un almacén de instancias de RDS para Oracle](#CHAP_Oracle.advanced-features.instance-store.Disable)

## Descripción general del almacén de instancias de RDS para Oracle
<a name="CHAP_Oracle.advanced-features.instance-store.overview"></a>

El *almacén de instancias* ofrece un almacenamiento de nivel de bloques temporal para la instancia de base de datos de RDS para Oracle. Puede usar un almacén de instancias para almacenar temporalmente la información que cambia con frecuencia.

Un almacén de instancias se basa en dispositivos de memoria rápida no volátil (NVMe) que están conectados físicamente al equipo host. El almacenamiento está optimizado para una latencia baja, un rendimiento de E/S aleatorio y un rendimiento de lectura secuencial.

El tamaño del almacén de instancias varía según el tipo de instancia de base de datos. Para obtener más información sobre el almacén de instancias, consulte [Almacén de instancias de Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html) en la *Guía del usuario de Amazon Elastic Compute Cloud para las instancias de Linux*.

**Topics**
+ [Tipos de datos en el almacén de instancias de RDS para Oracle](#CHAP_Oracle.advanced-features.instance-store.overview.uses)
+ [Beneficios del almacén de instancias de RDS para Oracle](#CHAP_Oracle.advanced-features.instance-store.overview.benefits)
+ [Clases de instancia admitidas para el almacén de instancias de RDS para Oracle](#CHAP_Oracle.advanced-features.instance-store.overview.instance-classes)
+ [Versiones de motor para el almacén de instancias de RDS para Oracle](#CHAP_Oracle.advanced-features.instance-store.overview.db-versions)
+ [Regiones de AWS admitidas para el almacén de instancias de RDS para Oracle](#CHAP_Oracle.advanced-features.instance-store.overview.regions)
+ [Coste del almacén de instancias de RDS para Oracle](#CHAP_Oracle.advanced-features.instance-store.overview.cost)

### Tipos de datos en el almacén de instancias de RDS para Oracle
<a name="CHAP_Oracle.advanced-features.instance-store.overview.uses"></a>

Puede colocar los siguientes tipos de datos temporales de RDS para Oracle en un almacén de instancias:

Un espacio de tabla temporal  
Oracle Database utiliza espacios de tablas temporales para almacenar los resultados de las consultas intermedias que no caben en la memoria. Las consultas más grandes pueden generar grandes cantidades de datos intermedios que deben almacenarse en caché temporalmente, pero no es necesario que persistan. En particular, un espacio de tablas temporal es útil para ordenaciones, agregaciones de hash y uniones. Si su instancia de base de datos de RDS para Oracle usa la Enterprise Edition o la Standard Edition 2, puede colocar un espacio de tablas temporal en un almacén de instancias.

Memoria caché flash  
La memoria caché flash mejora el rendimiento de las lecturas aleatorias de un solo bloque en la ruta convencional. Se recomienda ajustar el tamaño de la memoria caché para que se adapte a la mayoría del conjunto de datos activo. Si su instancia de RDS para la base de datos de Oracle utiliza la Enterprise Edition, puede colocar la memoria caché flash en un almacén de instancias.

De forma predeterminada, un almacén de instancias está configurado para un espacio de tablas temporal, pero no para la memoria caché flash. No puede colocar archivos de datos de Oracle y archivos de registro de base de datos en un almacén de instancias.

### Beneficios del almacén de instancias de RDS para Oracle
<a name="CHAP_Oracle.advanced-features.instance-store.overview.benefits"></a>

Puede considerar usar un almacén de instancias para almacenar archivos y memorias caché temporales que pueda permitirse perder. Si desea mejorar el rendimiento de la base de datos o si el aumento de la carga de trabajo está causando problemas de rendimiento en su almacenamiento de Amazon EBS, considere la posibilidad de escalar a una clase de instancias que admita un almacén de instancias.

Al colocar el espacio de tablas temporal y la memoria caché flash en un almacén de instancias, obtendrá las siguientes ventajas:
+ Latencias de lectura más bajas
+ Mayor rendimiento
+ Carga reducida en sus volúmenes de Amazon EBS
+ Costos de almacenamiento e instantáneas más bajos gracias a la reducción de la carga de Amazon EBS
+ Menor necesidad de aprovisionar IOPS elevadas, lo que posiblemente reduzca el costo total

 Al colocar su espacio de tablas temporal en el almacén de instancias, aumenta de forma inmediata el rendimiento de las consultas que utilizan espacio temporal. Al colocar la memoria caché flash en el almacén de instancias, las lecturas de bloques en caché suelen tener una latencia mucho más baja que las lecturas de Amazon EBS. La memoria caché flash debe «calentarse» antes de ofrecer beneficios de rendimiento. La memoria caché se calienta por sí sola porque la base de datos escribe bloques en la caché flash a medida que se agotan en la memoria caché del búfer de la base de datos.

**nota**  
En algunos casos, la caché flash ocasiona una sobrecarga de rendimiento debido a la administración de la memoria caché. Antes de activar la caché flash en un entorno de producción, le recomendamos que analice su carga de trabajo y pruebe la caché en un entorno de prueba.

### Clases de instancia admitidas para el almacén de instancias de RDS para Oracle
<a name="CHAP_Oracle.advanced-features.instance-store.overview.instance-classes"></a>

Amazon RDS admite el almacén de instancias para las siguientes clases de instancia de base de datos:
+ db.m5d
+ db.m6id
+ db.r5d
+ db.r6id
+ db.x2idn
+ db.x2iedn

RDS para Oracle solo admite las clases de instancia de base de datos anteriores para el modelo de licencias BYOL. Para obtener más información, consulte [Clases de instancias admitidas de RDS para Oracle](Oracle.Concepts.InstanceClasses.md#Oracle.Concepts.InstanceClasses.Supported) y [Traiga su propia licencia (BYOL) para EE y SE2](Oracle.Concepts.Licensing.md#Oracle.Concepts.Licensing.BYOL).

Para ver el almacenamiento de instancias total de los tipos de instancia de base de datos admitidas, ejecute el siguiente comando en la CLI de AWS. 

**Example**  

```
aws ec2 describe-instance-types \
  --filters "Name=instance-type,Values=*5d.*large*,*6id.*large*" \
  --query "InstanceTypes[?contains(InstanceType,'m5d')||contains(InstanceType,'r5d')||contains(InstanceType,'m6id')||contains(InstanceType,'r6id')][InstanceType, InstanceStorageInfo.TotalSizeInGB]" \
  --output table
```

El comando anterior devuelve el tamaño de dispositivo sin procesar del almacén de instancias. RDS para Oracle utiliza una pequeña parte de este espacio para la configuración. El espacio en el almacén de instancias que está disponible para los espacios de tablas temporales o la memoria caché flash es un poco más pequeño.

### Versiones de motor para el almacén de instancias de RDS para Oracle
<a name="CHAP_Oracle.advanced-features.instance-store.overview.db-versions"></a>

El almacén de instancias es compatible con las siguientes versiones de motor de RDS para Oracle 
+ Versiones 21.0.0.0.ru-2022-01.rur-2022-01.r1 o posteriores de Oracle Database 21c
+ Versiones 19.0.0.0.ru-2021-10.rur-2021-10.r1 o posteriores de Oracle Database 19c

### Regiones de AWS admitidas para el almacén de instancias de RDS para Oracle
<a name="CHAP_Oracle.advanced-features.instance-store.overview.regions"></a>

El almacén de instancias está disponible en todas las Regiones de AWS donde se admite uno o más de estos tipos de instancia. Para obtener más información sobre las clases de instancia db.m5d y db.r5d, consulte [Clases de instancia de base de datos de ](Concepts.DBInstanceClass.md). Para obtener más información sobre las clases de instancia admitidas por Amazon RDS para Oracle, consulte [Clases de instancias de base de datos de RDS para Oracle](Oracle.Concepts.InstanceClasses.md).

### Coste del almacén de instancias de RDS para Oracle
<a name="CHAP_Oracle.advanced-features.instance-store.overview.cost"></a>

El coste del almacén de instancias se incluye en el coste de las instancias activadas en el almacén de instancias. No incurre en costes adicionales al habilitar un almacén de instancias en una instancia de base de datos de RDS para Oracle. Para obtener más información acerca de las instancias activadas del el almacén de instancias, consulte [Clases de instancia admitidas para el almacén de instancias de RDS para Oracle](#CHAP_Oracle.advanced-features.instance-store.overview.instance-classes).

## Activación de un almacén de instancias de RDS para Oracle
<a name="CHAP_Oracle.advanced-features.instance-store.Enable"></a>

Para activar el almacén de instancias para datos temporales de RDS para Oracle, realice una de las siguientes operaciones:
+ Cree una instancia de base de datos de RDS para Oracle mediante una clase de instancia compatible. Para obtener más información, consulte [Creación de una instancia de base de datos de Amazon RDS](USER_CreateDBInstance.md).
+ Modifique una instancia de base de datos de RDS para Oracle existente para usar una clase de instancia compatible. Para obtener más información, consulte [Modificación de una instancia de base de datos de Amazon RDS](Overview.DBInstance.Modifying.md).

# Configuración de un almacén de instancias de RDS para Oracle
<a name="CHAP_Oracle.advanced-features.instance-store.configuring"></a>

De forma predeterminada, el 100 % del espacio del almacén de instancias se asigna al espacio de tablas temporal. Para configurar el almacén de instancias para asignar espacio a la memoria caché flash y al espacio de tablas temporal, establezca los siguientes parámetros en el grupo de parámetros de su instancia:

**db\$1flash\$1cache\$1size=\$1DBInstanceStore\$1\$10,2,4,6,8,10\$1/10\$1**  
Este parámetro especifica la cantidad de espacio de almacenamiento asignado a la memoria caché flash. Este parámetro solo es válido para Oracle Database Enterprise Edition. El valor predeterminado es `{DBInstanceStore*0/10}`. Si establece un valor distinto de cero para `db_flash_cache_size`, la instancia de RDS para Oracle habilita la memooria caché flash después de reiniciar la instancia.

**rds.instance\$1store\$1temp\$1size=\$1DBInstanceStore\$1\$10,2,4,6,8,10\$1/10\$1**  
Este parámetro especifica la cantidad de espacio de almacenamiento asignado a la tabla de espacio temporal. El valor predeterminado es `{DBInstanceStore*10/10}`. Este parámetro se puede modificar para Oracle Database Enterprise Edition y es de solo lectura para la Standard Edition 2. Si establece un valor distinto de cero para `rds.instance_store_temp_size`, Amazon RDS asigna espacio en el almacén de instancias para el espacio de tablas temporal.  
Puede establecer los parámetros `db_flash_cache_size` y `rds.instance_store_temp_size` para las instancias de base de datos que no utilizan un almacén de instancias. En este caso, ambos ajustes se evalúan en `0`, lo que desactiva la función. En este caso, puede usar el mismo grupo de parámetros para instancias de diferentes tamaños y para instancias que no usen un almacén de instancias. Si modifica estos parámetros, asegúrese de reiniciar las instancias asociadas para que los cambios surtan efecto.  
Si asigna espacio a un espacio de tablas temporal, Amazon RDS no crea el espacio de tablas temporal automáticamente. Para obtener información sobre cómo crear el espacio de tablas temporal en el almacén de instancias, consulte [Creación de un espacio de tablas temporal en el almacén de instancias](Appendix.Oracle.CommonDBATasks.TablespacesAndDatafiles.md#Appendix.Oracle.CommonDBATasks.creating-tts-instance-store).

El valor combinado de los parámetros anteriores no debe superar el 10/10 o el 100 %. En la tabla siguiente se muestran las configuraciones de parámetros válidas y no válidas.


| db\$1flash\$1cache\$1size setting | rds.instance\$1store\$1temp\$1size setting | Explicación | 
| --- | --- | --- | 
|  db\$1flash\$1cache\$1size=\$1DBInstanceStore\$10/10\$1  |  rds.instance\$1store\$1temp\$1size=\$1DBInstanceStore\$110/10\$1  |  Esta es una configuración válida para todas las ediciones de Oracle Database. Amazon RDS asigna el 100 % del espacio del almacén de instancias al espacio de tablas temporal. Esta es la opción predeterminada.  | 
|  db\$1flash\$1cache\$1size=\$1DBInstanceStore\$110/10\$1  |  rds.instance\$1store\$1temp\$1size=\$1DBInstanceStore\$10/10\$1  |  Esta es una configuración válida para Oracle Database Enterprise Edition. Amazon RDS asigna el 100 % del espacio del almacén de instancias a la memoria caché flash.  | 
|  db\$1flash\$1cache\$1size=\$1DBInstanceStore\$12/10\$1  |  rds.instance\$1store\$1temp\$1size=\$1DBInstanceStore\$18/10\$1  |  Esta es una configuración válida solo para Oracle Database Enterprise Edition. Amazon RDS asigna el 20 % del espacio del almacén de instancias a la memoria caché flash y el 80 % del espacio del almacén de instancias al espacio de tablas temporal.  | 
|  db\$1flash\$1cache\$1size=\$1DBInstanceStore\$16/10\$1  |  rds.instance\$1store\$1temp\$1size=\$1DBInstanceStore\$14/10\$1  |  Esta es una configuración válida solo para Oracle Database Enterprise Edition. Amazon RDS asigna el 60 % del espacio del almacén de instancias a la memoria caché flash y el 40 % del espacio del almacén de instancias al espacio de tablas temporal.  | 
|  db\$1flash\$1cache\$1size=\$1DBInstanceStore\$12/10\$1  |  rds.instance\$1store\$1temp\$1size=\$1DBInstanceStore\$14/10\$1  | Esta es una configuración válida solo para Oracle Database Enterprise Edition. Amazon RDS asigna el 20 % del espacio del almacén de instancias a la memoria caché flash y el 40 % del espacio del almacén de instancias al espacio de tablas temporal. | 
|  db\$1flash\$1cache\$1size=\$1DBInstanceStore\$18/10\$1  |  rds.instance\$1store\$1temp\$1size=\$1DBInstanceStore\$18/10\$1  |  Esta configuración no es válida porque el porcentaje combinado del espacio del almacén de instancias supera el 100 %. En esos casos, Amazon RDS no logra realizar el intento.  | 

## Consideraciones a la hora de cambiar el tipo de instancia
<a name="CHAP_Oracle.advanced-features.instance-store.configuring.modifying"></a>

Si cambia el tipo de instancia de base de datos, esto puede afectar a la configuración de la memoria caché flash o al espacio de tablas temporal del almacén de instancias. Tenga en cuenta las siguientes modificaciones y sus efectos:

**Puede escalar verticalmente o reducir verticalmente la instancia de base de datos que admite el almacén de instancias.**  
Los siguientes valores aumentan o disminuyen proporcionalmente al nuevo tamaño del almacén de instancias:  
+ El nuevo tamaño de la memoria caché flash.
+ El espacio asignado a los espacios de tablas temporales que residen en el almacén de instancias.
Por ejemplo, el ajuste `db_flash_cache_size={DBInstanceStore*6/10}` de una instancia db.m5d.4xlarge proporciona alrededor de 340 GB de espacio de memoria caché flash. Si aumentas el tipo de instancia a db.m5d.8xlarge, el espacio de la caché flash aumenta hasta unos 680 GB.

**Modifica una instancia de base de datos que no usa un almacén de instancias en una instancia que sí usa un almacén de instancias.**  
Si `db_flash_cache_size` se establece en un valor superior a `0`, se configura la memoria caché flash. Si `rds.instance_store_temp_size` se establece en un valor mayor que `0`, el espacio del almacén de instancias se asigna para que lo use un espacio de tablas temporal. RDS for Oracle no mueve automáticamente los archivos temporales al almacén de instancias. Para obtener información sobre el uso del espacio asignado, consulte [Creación de un espacio de tablas temporal en el almacén de instancias](Appendix.Oracle.CommonDBATasks.TablespacesAndDatafiles.md#Appendix.Oracle.CommonDBATasks.creating-tts-instance-store) o [Adición de un archivo temporal al almacén de instancias en una réplica de lectura](Appendix.Oracle.CommonDBATasks.using-tempfiles.md#Appendix.Oracle.CommonDBATasks.adding-tempfile-replica).

**Una instancia de base de datos que no usa un almacén de instancias se modifica en una instancia que sí usa un almacén de instancias.**  
En este caso, RDS para Oracle elimina la memoria caché flash. RDS vuelve a crear el archivo temporal que se encuentra actualmente en el almacén de instancias de un volumen de Amazon EBS. El tamaño máximo del nuevo archivo temporal es el tamaño anterior del parámetro `rds.instance_store_temp_size`.

# Trabajo con un almacén de instancias en una réplica de lectura de Oracle
<a name="CHAP_Oracle.advanced-features.instance-store.replicas"></a>

Las réplicas de lectura admiten la memoria caché flash y los espacios de tablas temporales de un almacén de instancias. Si bien la memoria caché flash funciona de la misma manera que en la instancia de base de datos principal, tenga en cuenta las siguientes diferencias en los espacios de tablas temporales:
+ No puede crear un espacio de tabla temporal existente en una réplica de lectura. Si crea un nuevo espacio de tablas temporal en la instancia principal, RDS para Oracle replica la información del espacio de tablas sin archivos temporales. Para agregar un archivo temporal nuevo, utilice cualquiera de las siguientes técnicas:
  + Utilice el procedimiento de Amazon RDS `rdsadmin.rdsadmin_util.add_inst_store_tempfile`. RDS para Oracle crea un archivo temporal en el almacén de instancias de la réplica de lectura y lo agrega al espacio de tablas temporal especificado.
  + Ejecute el comando `ALTER TABLESPACE … ADD TEMPFILE`. RDS para Oracle coloca el archivo temporal en el almacenamiento de Amazon EBS.
**nota**  
Los tamaños de los archivos temporales y los tipos de almacenamiento pueden ser diferentes en la instancia de base de datos principal y en la réplica de lectura.
+ Puede administrar la configuración predeterminada del espacio de tablas temporal solo en la instancia de base de datos principal. RDS para Oracle replica la configuración en todas las réplicas de lectura.
+ Puede configurar grupos de espacio de tablas temporal solo en la instancia de base de datos principal. RDS para Oracle replica el ajuste en todas las réplicas de lectura.

# Configuración de un grupo de espacio de tablas temporal en un almacén de instancias y Amazon EBS
<a name="CHAP_Oracle.advanced-features.instance-store.temp-ebs"></a>

Puede configurar un grupo de espacios de tablas temporal para que incluya espacios de tablas temporales tanto en un almacén de instancias como en Amazon EBS. Esta técnica es útil cuando se desea disponer de más almacenamiento temporal del permitido por el ajuste máxima de `rds.instance_store_temp_size`.

Al configurar un grupo de espacios de tablas temporal tanto en un almacén de instancias como en Amazon EBS, los dos espacios de tablas tienen características de rendimiento significativamente diferentes. Oracle Database elige el espacio de tablas para atender las consultas en función de un algoritmo interno. Por lo tanto, el rendimiento de consultas similares puede variar.

Por lo general, se crea un espacio de tablas temporal en el almacén de instancias de la siguiente manera:

1. Cree un espacio de tablas temporal en el almacén de instancias.

1. Configure el nuevo espacio de tablas como el espacio de tabla temporal predeterminado de la base de datos.

Si el tamaño del espacio de tablas del almacén de instancias es insuficiente, puede crear almacenamiento temporal adicional de la siguiente manera:

1. Asigne el espacio de tablas temporal del almacén de instancias a un grupo de espacios de tablas temporales.

1. Cree un nuevo espacio de tablas temporal en Amazon EBS si no existe ninguno.

1. Asigne el espacio de tablas temporal de Amazon EBS al mismo grupo de espacios de tablas que incluye el espacio de tablas del almacén de instancias.

1. Configure el grupo de espacios de tablas como el espacio de tabla temporal predeterminado.

En el siguiente ejemplo, se suponeque el tamaño del espacio de tablas temporal del almacén de instancias no cumple con los requisitos de la aplicación. En el ejemplo se crea el espacio de tablas temporal `temp_in_inst_store` en el almacén de instancias, se asigna al grupo de espacios de tablas `temp_group`, se agrega el espacio de tablas de Amazon EBS existente denominado `temp_in_ebs` a este grupo y se establece este grupo como el espacio de tablas temporal predeterminado.

```
SQL> EXEC rdsadmin.rdsadmin_util.create_inst_store_tmp_tblspace('temp_in_inst_store');

PL/SQL procedure successfully completed.

SQL> ALTER TABLESPACE temp_in_inst_store TABLESPACE GROUP temp_group;

Tablespace altered.

SQL> ALTER TABLESPACE temp_in_ebs TABLESPACE GROUP temp_group;

Tablespace altered.

SQL> EXEC rdsadmin.rdsadmin_util.alter_default_temp_tablespace('temp_group');

PL/SQL procedure successfully completed.

SQL> SELECT * FROM DBA_TABLESPACE_GROUPS;

GROUP_NAME                     TABLESPACE_NAME
------------------------------ ------------------------------
TEMP_GROUP                     TEMP_IN_EBS
TEMP_GROUP                     TEMP_IN_INST_STORE

SQL> SELECT PROPERTY_VALUE FROM DATABASE_PROPERTIES WHERE PROPERTY_NAME='DEFAULT_TEMP_TABLESPACE';

PROPERTY_VALUE
--------------
TEMP_GROUP
```

## Eliminación de un almacén de instancias de RDS para Oracle
<a name="CHAP_Oracle.advanced-features.instance-store.Disable"></a>

Para quitar el almacén de instancias, modifique la instancia de base de datos de RDS para Oracle para utilizar un tipo de instancia que no admita el almacén de instancias, como db.m5 o db.r5.

# Activación de páginas de gran tamaño para una instancia de RDS para Oracle
<a name="Oracle.Concepts.HugePages"></a>

Amazon RDS for Oracle es compatible con las páginas enormes del kernel de Linux para aumentar la escalabilidad de la base de datos. El uso de HugePages deriva en tablas de páginas más pequeñas y menos tiempo dedicado por la CPU a la administración de memoria, lo que aumenta el rendimiento de instancias de base de datos grandes. Para obtener más información, consulte [Overview of HugePages](https://docs.oracle.com/database/121/UNXAR/appi_vlm.htm#UNXAR400) en la documentación de Oracle. 

Puede utilizar HugePages con todas las versiones y ediciones compatibles de RDS para Oracle.

 El parámetro `use_large_pages` controla si las páginas de gran tamaño están activadas para una instancia de base de datos. Los valores posibles para este parámetro son `ONLY`, `FALSE` y `{DBInstanceClassHugePagesDefault}`. El parámetro `use_large_pages` se define en `{DBInstanceClassHugePagesDefault}` en el grupo de parámetros de base de datos predeterminado para Oracle. 

Para comprobar si se han activado las páginas de gran tamaño para una instancia de base de datos de forma automática, puede utilizar la variable de la fórmula `DBInstanceClassHugePagesDefault` en los grupos de parámetros. El valor se determina de la siguiente manera:
+ Para las clases de instancia de base de datos mencionadas en la tabla siguiente, `DBInstanceClassHugePagesDefault` siempre toma el valor `FALSE` de forma predeterminada y `use_large_pages` toma el valor `FALSE`. Puede activar páginas de gran tamaño manualmente para estas clases de instancia de base de datos si la clase de instancia de base de datos dispone de al menos 14 GiB de memoria.
+ Para las clases de instancia de base de datos no mencionadas en la tabla siguiente, si la clase de instancia de base de datos tiene menos de 14 GiB de memoria, `DBInstanceClassHugePagesDefault` siempre toma el valor `FALSE`. Además, `use_large_pages` toma el valor `FALSE`.
+ Para las clases de instancia de base de datos no mencionadas en la tabla siguiente, si la clase de instancia tiene al menos 14 GiB de memoria y menos de 100 GiB de memoria, `DBInstanceClassHugePagesDefault` toma el valor `TRUE` de forma predeterminada. Además, `use_large_pages` toma el valor `ONLY`. Puede desactivar las páginas de gran tamaño manualmente estableciendo `use_large_pages` en `FALSE`.
+ Para las clases de instancia de base de datos no mencionadas en la tabla siguiente, si la clase de instancia tiene al menos 100 GiB de memoria, `DBInstanceClassHugePagesDefault` siempre toma el valor `TRUE`. Además, `use_large_pages` toma el valor `ONLY` y las páginas de gran tamaño no se pueden desactivar.

Las páginas de gran tamaño no están activadas de forma predeterminada para las siguientes clases de instancia de base de datos. 


****  

| Familia de clase de instancia de base de datos | Las clases de instancia de base de datos con páginas de gran tamaño no están activadas de forma predeterminada | 
| --- | --- | 
|  db.m5  |  db.m5.large  | 
|  db.m4  |  db.m4.large, db.m4.xlarge, db.m4.2xlarge, db.m4.4xlarge, db.m4.10xlarge  | 
|  db.t3  |  db.t3.micro, db.t3.small, db.t3.medium, db.t3.large  | 

Para obtener más información acerca de las clases de instancias de bases de datos, consulte [Especificaciones de hardware para clases de instancia de base de datos ](Concepts.DBInstanceClass.Summary.md). 

Para activar manualmente las páginas de gran tamaño para las instancias de bases de datos nuevas o existentes, establezca el parámetro `use_large_pages` en `ONLY`. No es posible utilizar las páginas enormes con Oracle Automatic Memory Management (AMM). Si establece el parámetro `use_large_pages` en `ONLY`, también debe establecer `memory_target` y `memory_max_target` en `0`. Para obtener más información acerca de cómo configurar parámetros de base de datos para la instancia de base de datos, consulte [Grupos de parámetros para Amazon RDS](USER_WorkingWithParamGroups.md). 

También puede configurar los parámetros `sga_target`, `sga_max_size` y `pga_aggregate_target`. Cuando establezca los parámetros de memoria de área global del sistema (SGA) y de área global del programa (PGA), sume ambos valores. Reste este total de la memoria disponible en la instancia (`DBInstanceClassMemory`) para determinar la memoria que queda libre después de la asignación de las páginas enormes. Debe dejar libres como mínimo 2 GiB, o el 10 por ciento de la memoria total disponible de la instancia, lo que sea menor. 

Después de configurar los parámetros, debe reiniciar la instancia de base de datos para que los cambios surtan efecto. Para obtener más información, consulte [Reinicio de una instancia de base de datos ](USER_RebootInstance.md). 

**nota**  
La instancia de base de datos de Oracle aplaza los cambios en los parámetros de inicialización relacionados con SGA hasta que se reinicie la instancia sin conmutación por error. En la consola de Amazon RDS, elija **Reiniciar** pero *no* elija **Reiniciar con conmutación por error**. En la AWS CLI, llame al comando `reboot-db-instance` con el parámetro `--no-force-failover`. La instancia de base de datos no procesa los parámetros relacionados con SGA durante la conmutación por error o durante otras operaciones de mantenimiento que hacen que la instancia se reinicie.

A continuación se muestra una configuración de parámetros de ejemplo de páginas de gran tamaño que habilita las páginas de gran tamaño manualmente. Debe establecer los valores de acuerdo con sus necesidades. 

```
1. memory_target            = 0
2. memory_max_target        = 0
3. pga_aggregate_target     = {DBInstanceClassMemory*1/8}
4. sga_target               = {DBInstanceClassMemory*3/4}
5. sga_max_size             = {DBInstanceClassMemory*3/4}
6. use_large_pages          = ONLY
```

Suponga que se definen los siguientes valores de parámetro en un grupo de parámetros.

```
1. memory_target            = IF({DBInstanceClassHugePagesDefault}, 0, {DBInstanceClassMemory*3/4})
2. memory_max_target        = IF({DBInstanceClassHugePagesDefault}, 0, {DBInstanceClassMemory*3/4})
3. pga_aggregate_target     = IF({DBInstanceClassHugePagesDefault}, {DBInstanceClassMemory*1/8}, 0)
4. sga_target               = IF({DBInstanceClassHugePagesDefault}, {DBInstanceClassMemory*3/4}, 0)
5. sga_max_size             = IF({DBInstanceClassHugePagesDefault}, {DBInstanceClassMemory*3/4}, 0)
6. use_large_pages          = {DBInstanceClassHugePagesDefault}
```

El grupo de parámetros es utilizado por una clase de instancia db.r4 DB que tiene menos de 100 GiB de memoria. Con esta configuración de parámetros y `use_large_pages` establecido en `{DBInstanceClassHugePagesDefault}`, las páginas de gran tamaño están activadas en la instancia db.r4.

Vea otro ejemplo con los siguientes valores de parámetros definidos en un grupo de parámetros.

```
1. memory_target           = IF({DBInstanceClassHugePagesDefault}, 0, {DBInstanceClassMemory*3/4})
2. memory_max_target       = IF({DBInstanceClassHugePagesDefault}, 0, {DBInstanceClassMemory*3/4})
3. pga_aggregate_target    = IF({DBInstanceClassHugePagesDefault}, {DBInstanceClassMemory*1/8}, 0)
4. sga_target              = IF({DBInstanceClassHugePagesDefault}, {DBInstanceClassMemory*3/4}, 0)
5. sga_max_size            = IF({DBInstanceClassHugePagesDefault}, {DBInstanceClassMemory*3/4}, 0)
6. use_large_pages         = FALSE
```

Una clase de instancia de base de datos db.r4 y db.r5 usa el grupo de parámetros, ambas con menos de 100 GiB de memoria. Con esta configuración de parámetros, las páginas de gran tamaño están desactivadas en las instancias db.r4 y db.r5.

**nota**  
Si una clase de instancia de base de datos db.r4 o db.r5 DB con al menos 100 GiB de memoria utiliza este grupo de parámetros, se anula el valor `FALSE` de `use_large_pages` y se cambia por `ONLY`. En este caso, se envía una notificación de cliente sobre la anulación.

Después de activar las páginas de gran tamaño en la instancia de base de datos, puede ver la información sobre las páginas de gran tamaño activando el monitoreo mejorado. Para obtener más información, consulte [Supervisión de las métricas del sistema operativo con Supervisión mejorada](USER_Monitoring.OS.md). 

# Activación de tipos de datos extendidos en RDS para Oracle
<a name="Oracle.Concepts.ExtendedDataTypes"></a>

Amazon RDS for Oracle es compatible con tipos de datos extendidos. Con tipos de datos extendidos, el tamaño máximo es 32 767 bytes para los tipos de datos `VARCHAR2`, `NVARCHAR2` y `RAW`. Para usar tipos de datos extendidos, configure el parámetro `MAX_STRING_SIZE` como `EXTENDED`. Para obtener más información, consulte [Extended Data Types](https://docs.oracle.com/database/121/SQLRF/sql_elements001.htm#SQLRF55623) en la documentación de Oracle. 

Si no desea utilizar tipos de datos extendidos, mantenga el parámetro `MAX_STRING_SIZE` establecido en `STANDARD`. En este caso, los límites de tamaño son de 4000 bytes para los tipos de datos `VARCHAR2` y `NVARCHAR2`, y de 2000 bytes para el tipo de datos RAW.

Puede activar tipos de datos extendidos en una instancia de base de datos nueva o existente. Para instancias de base de datos nuevas, el tiempo de creación de instancias de base de datos suele ser más largo cuando se activan tipos de datos extendidos. Para instancias de base de datos existentes, la instancia de base de datos no está disponible durante el proceso de conversión.

## Consideraciones sobre los tipos de datos extendidos
<a name="Oracle.Concepts.ExtendedDataTypes.considerations"></a>

Tenga en cuenta lo siguiente al habilitar los tipos de datos extendidos para su instancia de base de datos:
+ Cuando activa tipos de datos nuevos o existentes para una instancia de base de datos nueva o existente, debe reiniciar la instancia para que el cambio se aplique. 
+ Cuando active tipos de datos extendidos, no podrá volver a cambiar la instancia de base de datos para usar el tamaño estándar de los tipos de datos. Si vuelve a configurar el parámetro `MAX_STRING_SIZE` en `STANDARD`, se obtendrá el estado `incompatible-parameters`.
+ Cuando restaura una instancia de base de datos que utilizado tipos de datos extendidos, tiene que especificar un grupo de parámetros con el parámetro `MAX_STRING_SIZE` establecido en `EXTENDED`. Durante la restauración, si especifica el grupo de parámetros predeterminado o cualquier grupo de parámetros con `MAX_STRING_SIZE` establecido en `STANDARD` produce el estado `incompatible-parameters`.
+ Cuando el estado de la instancia de base de datos es `incompatible-parameters` debido al ajuste `MAX_STRING_SIZE`, la instancia de la base de datos se mantiene no disponible hasta que estable el parámetro `MAX_STRING_SIZE` en `EXTENDED` y reinicia la instancia de base de datos.

## Activación de tipos de datos extendidos para una instancia de base de datos nueva
<a name="Oracle.Concepts.ExtendedDataTypes.CreateDBInstance"></a>

Al crear una instancia de base de datos con `MAX_STRING_SIZE` establecido en `EXTENDED`, la instancia muestra `MAX_STRING_SIZE` con el valor predeterminado `STANDARD`. Reinicie la instancia para aplicar el cambio.

**Para activar tipos de datos extendidos para una instancia de base de datos nueva**

1. Establezca en el parámetro `MAX_STRING_SIZE` en `EXTENDED` en un grupo de parámetros.

   Para establecer el parámetro, puede crear un grupo de parámetros nuevo o modificar un grupo de parámetros existente.

   Para obtener más información, consulte [Grupos de parámetros para Amazon RDS](USER_WorkingWithParamGroups.md).

1. Cree una nueva instancia de base de datos de RDS para Oracle.

   Para obtener más información, consulte [Creación de una instancia de base de datos de Amazon RDS](USER_CreateDBInstance.md).

1. Asocie el nuevo grupo de parámetros con `MAX_STRING_SIZE` establecido en `EXTENDED` con la instancia de base de datos.

   Para obtener más información, consulte [Creación de una instancia de base de datos de Amazon RDS](USER_CreateDBInstance.md).

1. Reinicie la instancia de base de datos para que el cambio de parámetro tenga efecto.

   Para obtener más información, consulte [Reinicio de una instancia de base de datos ](USER_RebootInstance.md).

## Activación de tipos de datos extendidos para una instancia de base de datos existente
<a name="Oracle.Concepts.ExtendedDataTypes.ModifyDBInstance"></a>

Cuando modifique una instancia de base de datos para activar tipos de datos extendidos, RDS convierte los datos de la base de datos para que usen los tamaños extendidos. La conversión y el tiempo de inactividad se producen la próxima vez que se reinicie la base de datos tras el cambio de parámetro. La instancia de base de datos no está disponible durante la conversión. 

La cantidad de tiempo que lleva convertir los datos depende de la clase de instancia de base de datos, el tamaño de la base de datos y el tiempo de la instantánea de la base de datos. Para reducir el tiempo de inactividad, considere la posibilidad de tomar una instantánea inmediatamente antes de reiniciar. Esto acorta el tiempo de la copia de seguridad que se produce durante el flujo de trabajo de conversión.

**nota**  
Después de activar tipos de datos extendidos, no es posible realizar una restauración a un momento coincidente con la conversión. Puede realizar la restauración a un momento inmediatamente antes de la conversión o después de la conversión.

**Para activar tipos de datos extendidos para una instancia de base de datos existente**

1. Tome una instantánea de la base de datos.

   Si hay objetos no válidos en la base de datos, Amazon RDS intenta volver a compilarlos. La conversión a tipos de datos extendidos puede producir error si Amazon RDS no puede volver a compilar un objeto no válido. La instantánea le permite restaurar la base de datos si se produce un problema con la conversión. Compruebe siempre la presencia de objetos no válidos antes de la conversión y corrija o elimine esos objetos no válidos. Para bases de datos de producción, recomendamos poner a prueba el proceso de conversión en una copia de su instancia de base de datos en primer lugar.

   Para obtener más información, consulte [Creación de una instantánea de base de datos para una instancia de base de datos single-AZ para Amazon RDS](USER_CreateSnapshot.md).

1. Establezca en el parámetro `MAX_STRING_SIZE` en `EXTENDED` en un grupo de parámetros.

   Para establecer el parámetro, puede crear un grupo de parámetros nuevo o modificar un grupo de parámetros existente.

   Para obtener más información, consulte [Grupos de parámetros para Amazon RDS](USER_WorkingWithParamGroups.md).

1. Modifique la instancia de base de datos para asociarla con el grupo de parámetros con `MAX_STRING_SIZE` establecido en `EXTENDED`.

   Para obtener más información, consulte [Modificación de una instancia de base de datos de Amazon RDS](Overview.DBInstance.Modifying.md).

1. Reinicie la instancia de base de datos para que el cambio de parámetro tenga efecto.

   Para obtener más información, consulte [Reinicio de una instancia de base de datos ](USER_RebootInstance.md).

# Importación de datos a Oracle en Amazon RDS
<a name="Oracle.Procedural.Importing"></a>

La forma de importar datos a una instancia de base de datos de Amazon RDS para Oracle depende de lo siguiente 
+ La cantidad de datos que tiene
+ El número de objetos de base de datos en la base de datos
+ La variedad de objetos de base de datos en la base de datos

Por ejemplo, puede utilizar las siguientes herramientas, en funcion de sus requisitos:
+ Oracle SQL Developer: importe una base de datos sencilla de 20 MB.
+ Oracle Data Pump: importe bases de datos complejas o con un tamaño de varios cientos de megabytes o varios terabytes. Por ejemplo, puede transportar espacios de tabla desde una base de datos en las instalaciones a su instancia de base de datos de RDS para Oracle. Puede utilizar Amazon S3 o Amazon EFS para transferir los archivos de datos y los metadatos. Para obtener más información, consulte [Migración mediante espacios de tabla transportables de Oracle](oracle-migrating-tts.md), [Integración de Amazon EFS](oracle-efs-integration.md) y [Integración de Amazon S3](oracle-s3-integration.md).
+ AWS Database Migration Service (AWS DMS): migre bases de datos sin tiempo de inactividad. Para obtener más información acerca de AWS DMS, consulte [¿Qué es AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) y la publicación del blog sobre la [migración de bases de datos de Oracle con tiempo de inactividad casi nulo mediante DMS de AWS](https://aws.amazon.com/blogs/database/migrating-oracle-databases-with-near-zero-downtime-using-aws-dms/).

**importante**  
Antes de utilizar estas técnicas de migración, le recomendamos que realice una copia de seguridad de la base de datos. Después de importar los datos, puede realizar una copia de seguridad de sus instancias de base de datos de RDS para Oracle creando instantáneas. Posteriormente, puede restaurar las instantáneas. Para obtener más información, consulte [Copia de seguridad, restauración y exportación de datos](CHAP_CommonTasks.BackupRestore.md).

Para muchos motores de base de datos, la replicación continua puede continuar hasta que esté listo para cambiar a la base de datos de destino. Puede utilizar AWS DMS para migrar a RDS para Oracle desde el mismo motor de base de datos o desde un motor diferente. Si migra desde un motor de base de datos diferente, puede utilizar AWS Schema Conversion Tool para migrar objetos de esquema que AWS DMS no migra.

**Topics**
+ [Importación mediante Oracle SQL Developer](Oracle.Procedural.Importing.SQLDeveloper.md)
+ [Migración mediante espacios de tabla transportables de Oracle](oracle-migrating-tts.md)
+ [Importación mediante Oracle Data Pump](Oracle.Procedural.Importing.DataPump.md)
+ [Importación mediante exportación/importación de Oracle](Oracle.Procedural.Importing.ExportImport.md)
+ [Importación mediante Oracle SQL\$1Loader](Oracle.Procedural.Importing.SQLLoader.md)
+ [Migración de vistas materializadas de Oracle](Oracle.Procedural.Importing.Materialized.md)

# Importación mediante Oracle SQL Developer
<a name="Oracle.Procedural.Importing.SQLDeveloper"></a>

Oracle SQL Developer es una herramienta gráfica desarrollada en Java y distribuida sin coste por Oracle. SQL Developer proporciona opciones para migrar datos entre dos bases de datos de Oracle o para migrar datos de otras bases de datos, como MySQL, a una base de datos Oracle. Esta herramienta es la opción más adecuada para migrar bases de datos pequeñas. 

Puede instalar esta herramienta en un equipo de escritorio (Windows, Linux o Mac) o en uno de sus servidores. Después de instalar SQL Developer, puede utilizarlo para conectarse a las bases de datos de origen y de destino. Utilice el comando **Copia de base de datos** del menú Herramientas para copiar datos en la instancia de base de datos de RDS para Oracle. 

Para descargar SQL Developer, vaya a [http://www.oracle.com/technetwork/developer-tools/sql-developer](http://www.oracle.com/technetwork/developer-tools/sql-developer). 

Recomendamos que lea la documentación del producto Oracle SQL Developer antes de comenzar a migrar datos. Oracle también tiene documentación acerca de cómo migrar desde otras bases de datos, como MySQL y SQL Server. Para obtener más información, consulte [http://www.oracle.com/technetwork/database/migration](http://www.oracle.com/technetwork/database/migration) en la documentación de Oracle. 

# Migración mediante espacios de tabla transportables de Oracle
<a name="oracle-migrating-tts"></a>

Puede utilizar la característica de espacios de tabla transportables de Oracle para copiar un conjunto de espacios de tabla de una base de datos de Oracle en las instalaciones a una instancia de base de datos de RDS para Oracle. En el nivel físico, los archivos de datos de origen y los archivos de metadatos se transfieren a la instancia de base de datos de destino mediante Amazon EFS o Amazon S3. La característica de espacios de tabla transportables utiliza el paquete `rdsadmin.rdsadmin_transport_util`. Para obtener información sobre la sintaxis y la semántica de este paquete, consulte [Transporte de espacios de tabla](rdsadmin_transport_util.md).

Para ver publicaciones de blog que explican cómo transportar espacios de tabla, consulte [Migrate Oracle Databases to AWS using transportable tablespace](https://aws.amazon.com/blogs/database/migrate-oracle-databases-to-aws-using-transportable-tablespace/) y [Amazon RDS for Oracle Transportable Tablespaces using RMAN](https://aws.amazon.com/blogs/database/amazon-rds-for-oracle-transportable-tablespaces-using-rman/).

**Topics**
+ [Descripción general de los espacios de tabla transportables de Oracle](#oracle-migrating-tts.overview)
+ [Fase 1: Configurar el host de origen](#oracle-migrating-tts.setup-phase)
+ [Fase 2: Preparar la copia de seguridad completa del espacio de tabla](#oracle-migrating-tts.initial-br-phase)
+ [Fase 3: Realizar y transferir copias de seguridad incrementales](#oracle-migrating-tts.roll-forward-phase)
+ [Fase 4: Transportar los espacios de tabla](#oracle-migrating-tts.final-br-phase)
+ [Fase 5: Validar los espacios de tabla transportados](#oracle-migrating-tts.validate)
+ [Fase 6: Limpiar los archivos sobrantes](#oracle-migrating-tts.cleanup)

## Descripción general de los espacios de tabla transportables de Oracle
<a name="oracle-migrating-tts.overview"></a>

Un conjunto de espacios de tabla transportables consta de archivos de datos para el conjunto de espacios de tabla que se transportan y un archivo de volcado de exportación que contiene los metadatos del espacio de tabla. En una solución de migración física, como los espacios de tabla transportables, se transfieren archivos físicos: archivos de datos, archivos de configuración y archivos de volcado de Data Pump.

**Topics**
+ [Ventajas y desventajas de los espacios de tabla transportables](#oracle-migrating-tts.overview.benefits)
+ [Limitaciones de los espacios de tabla transportables](#oracle-migrating-tts.limitations)
+ [Requisitos previos para los espacios de tabla transportables](#oracle-migrating-tts.requirements)

### Ventajas y desventajas de los espacios de tabla transportables
<a name="oracle-migrating-tts.overview.benefits"></a>

Le recomendamos que utilice espacios de tabla transportables cuando tenga que migrar uno o más espacios de tabla grandes a RDS con un tiempo de inactividad mínimo. Los espacios de tabla transportables ofrecen las siguientes ventajas con respecto a la migración lógica:
+ El tiempo de inactividad es inferior al de la mayoría de las demás soluciones de migración de Oracle.
+ Dado que la característica de espacio de tabla transportable solo copia archivos físicos, evita los errores de integridad de los datos y la corrupción lógica que pueden producirse en la migración lógica.
+ No se requiere ninguna licencia adicional.
+ Puede migrar un conjunto de espacios de tabla en diferentes plataformas y tipos de endianness, por ejemplo, de una plataforma Oracle Solaris a Linux. Sin embargo, no se admite el transporte de espacios de tabla hacia y desde servidores Windows.
**nota**  
Linux está totalmente probado y es compatible. No se han probado todas las variantes de UNIX.

Si usa espacios de tabla transportables, puede transportar datos mediante Amazon S3 o Amazon EFS:
+ Si utiliza EFS, las copias de seguridad permanecen en el sistema de archivos EFS durante la importación. Podrá eliminar los archivos después. En esta técnica, no es necesario aprovisionar el almacenamiento de EBS para la instancia de base de datos. Por este motivo, se recomienda utilizar Amazon EFS en lugar de S3. Para obtener más información, consulte [Integración de Amazon EFS](oracle-efs-integration.md).
+ Si usa S3, debe descargar las copias de seguridad de RMAN al almacenamiento de EBS adjunto a su instancia de base de datos. Los archivos permanecerán en su almacenamiento de EBS durante la importación. Tras la importación, puede liberar este espacio, que sigue asignado a la instancia de base de datos.

La principal desventaja de los espacios de tabla transportables es que se necesitan conocimientos relativamente avanzados de Oracle Database. Para obtener más información, consulte el tema sobre cómo [transportar espacios de tabla entre bases de datos](https://docs.oracle.com/en/database/oracle/oracle-database/19/admin/transporting-data.html#GUID-F7B2B591-AA88-4D16-8DCF-712763923FFB) en la *Guía del administrador de bases de datos de Oracle*.

### Limitaciones de los espacios de tabla transportables
<a name="oracle-migrating-tts.limitations"></a>

Las limitaciones de Oracle Database para los espacios de tabla transportables se aplican cuando se utiliza esta característica en RDS para Oracle. Para obtener más información, consulte los apartados sobre [limitaciones de los espacios de tabla transportables]( https://docs.oracle.com/en/database/oracle/oracle-database/19/admin/transporting-data.html#GUID-DAB51E42-9BBC-4001-B5CB-0ECDBE128787) y [limitaciones generales del transporte de datos](https://docs.oracle.com/en/database/oracle/oracle-database/19/admin/transporting-data.html#GUID-28800719-6CB9-4A71-95DD-4B61AA603173) en la *Guía del administrador de bases de datos de Oracle*. Tenga en cuenta las siguientes limitaciones adicionales para los espacios de tabla transportables en RDS para Oracle:
+ Ni la base de datos de origen ni la de destino pueden utilizar Standard Edition 2 (SE2). Solo se admite la edición Enterprise.
+ No puede utilizar una base de datos Oracle Database 11g como origen. La característica de espacios de tablas transportables multiplataforma de RMAN se basa en el mecanismo de transporte RMAN, que Oracle Database 11g no admite.
+ No puede migrar datos de una instancia de base de datos de RDS para Oracle mediante espacios de tabla transportables. Solo puede usar espacios de tabla transportables para migrar datos a una instancia de base de datos de RDS para Oracle.
+ No admite el sistema operativo Windows.
+ No puede transportar espacios de tabla a una base de datos con un nivel de versión inferior. La base de datos de destino debe estar en el mismo nivel de versión o en una versión posterior que la base de datos de origen. Por ejemplo, no puede transportar espacios de tabla de Oracle Database 21c a Oracle Database 19c.
+ No puede transportar espacios de tablas administrativas como `SYSTEM` y `SYSAUX`.
+ No puede transportar objetos que no sean de datos, como paquetes PL/SQL, clases de Java, vistas, desencadenadores, secuencias, usuarios, roles y tablas temporales. Para transportar objetos que no sean de datos, créelos manualmente o utilice la exportación e importación de metadatos de Data Pump. Para obtener más información, consulte [My Oracle Support Note 1454872.1](https://support.oracle.com/knowledge/Oracle%20Cloud/1454872_1.html).
+ No puede transportar espacios de tabla cifrados ni utilizar columnas cifradas.
+ Si transfiere archivos mediante Amazon S3, el tamaño máximo de archivo admitido será de 5 TiB.
+ Si la base de datos de origen utiliza opciones de Oracle, como Spatial, no podrá transportar espacios de tabla a menos que se configuren las mismas opciones en la base de datos de destino.
+ No puede transportar espacios de tabla a una instancia de base de datos de RDS para Oracle en una configuración de réplica de Oracle. Como solución alternativa, puede eliminar todas las réplicas, transportar los espacios de tabla y, a continuación, volver a crear las réplicas.

### Requisitos previos para los espacios de tabla transportables
<a name="oracle-migrating-tts.requirements"></a>

 Antes de empezar, complete las siguientes tareas:
+ Revise los requisitos de los espacios de tabla transportables que se describen en los siguientes documentos de My Oracle Support:
  + [Reduzca el tiempo de inactividad del espacio de tabla transportable mediante la copia de seguridad incremental multiplataforma (ID del documento 2471245.1)](https://support.oracle.com/epmos/faces/DocumentDisplay?id=2471245.1)
  + [Restricciones y limitaciones del espacio de tabla transportable (TTS): detalles, referencia y versión, según corresponda (ID del documento 1454872.1)](https://support.oracle.com/epmos/faces/DocumentDisplay?id=1454872.1)
  + [Nota principal sobre los espacios de tabla transportables (TTS): preguntas y problemas frecuentes (ID del documento 1166564.1)](https://support.oracle.com/epmos/faces/DocumentDisplay?id=1166564.1)
+ Planifique la conversión de endianness. Si especifica el ID de la plataforma de origen, RDS para Oracle convierte el endianness automáticamente. Para obtener información sobre cómo encontrar los ID de plataforma, consulte [Data Guard Support for Heterogeneous Primary and Physical Standbys in Same Data Guard Configuration (Doc ID 413484.1)](https://support.oracle.com/epmos/faces/DocumentDisplay?id=413484.1) (Compatibilidad de Data Guard para instancias en espera principales y físicas heterogéneos en la misma configuración de Data Guard). 
+ Asegúrese de que la característica de espacio de tabla transportable esté habilitada en la instancia de base de datos de destino. La característica solo está habilitada si no reciben ningún error `ORA-20304` al ejecutar la siguiente consulta:

  ```
  SELECT * FROM TABLE(rdsadmin.rdsadmin_transport_util.list_xtts_orphan_files);
  ```

  Si la característica de espacio de tabla transportable no está habilitada, reinicie la instancia de base de datos. Para obtener más información, consulte [Reinicio de una instancia de base de datos ](USER_RebootInstance.md).
+ Compruebe que el archivo de zona horaria sea el mismo en las bases de datos de origen y destino.
+ Compruebe que los juegos de caracteres de las bases de datos de origen y destino cumplen alguno de los siguientes requisitos:
  + Los conjuntos de caracteres son los mismos.
  + Los conjuntos de caracteres son compatibles. Para obtener una lista de los requisitos de compatibilidad, consulte [General Limitations on Transporting Data](https://docs.oracle.com/en/database/oracle/oracle-database/19/spmdu/general-limitations-on-transporting-data.html#GUID-28800719-6CB9-4A71-95DD-4B61AA603173) en la documentación de Oracle Database.
+ Si tiene previsto transferir archivos mediante Amazon S3, haga lo siguiente:
  + Asegúrese de que haya un bucket de Amazon S3 disponible para las transferencias de archivos, y de que el bucket de Amazon S3 esté en la misma región de AWS que la instancia de base de datos. Para ver las instrucciones, consulte [Crear un bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/CreatingABucket.html) en la *Guía de introducción de Amazon Simple Storage Service*.
  + Debe preparar el bucket de Amazon S3 para la integración de Amazon RDS siguiendo las instrucciones de [Configuración de permisos IAM para la integración de RDS para Oracle con Amazon S3](oracle-s3-integration.preparing.md).
+ Si tiene previsto transferir archivos mediante Amazon EFS, asegúrese de haber configurado EFS según las instrucciones de [Integración de Amazon EFS](oracle-efs-integration.md).
+ Le recomendamos encarecidamente que active las copias de seguridad automáticas en la instancia de base de datos de destino. Dado que el [paso de importación de metadatos](#oracle-migrating-tts.transport.import-dmp) puede fallar, es importante poder restaurar la instancia de base de datos al estado anterior a la importación, para evitar la necesidad de realizar copias de seguridad, transferir e importar los espacios de tabla de nuevo.

## Fase 1: Configurar el host de origen
<a name="oracle-migrating-tts.setup-phase"></a>

En este paso, se copian los scripts de espacios de tabla transportables proporcionados por My Oracle Support y se configuran los archivos de configuración necesarios. En los siguientes pasos, el *host de origen* ejecuta la base de datos que contiene los espacios de tabla que se transportarán a la *instancia de destino*.

**Para configurar el host de origen**

1. Inicie sesión en su host de origen como propietario de su inicio de Oracle.

1. Asegúrese de que sus variables de entorno `ORACLE_HOME` y `ORACLE_SID` apunten hacia la base de datos de origen.

1. Inicie sesión en la base de datos como administrador y compruebe que la versión de zona horaria, el juego de caracteres de la base de datos y el conjunto de caracteres nacionales sean los mismos que los de la base de datos de destino.

   ```
   SELECT * FROM V$TIMEZONE_FILE;
   SELECT * FROM NLS_DATABASE_PARAMETERS 
     WHERE PARAMETER IN ('NLS_CHARACTERSET','NLS_NCHAR_CHARACTERSET');
   ```

1. Configure la utilidad de espacio de tabla transportable tal como se describe en la [nota de soporte de Oracle 2471245.1](https://support.oracle.com/epmos/faces/DocumentDisplay?id=2471245.1). 

   La configuración incluye la edición del archivo `xtt.properties` en el host de origen. El siguiente archivo `xtt.properties` de ejemplo especifica las copias de seguridad de tres espacios de tabla del directorio `/dsk1/backups`. Estos son los espacios de tabla que pretende transportar a la instancia de base de datos de destino. También especifica el ID de la plataforma de origen para convertir el endianness automáticamente.
**nota**  
Para encontrar los ID de plataforma válidos, consulte [Data Guard Support for Heterogeneous Primary and Physical Standbys in Same Data Guard Configuration (Doc ID 413484.1)](https://support.oracle.com/epmos/faces/DocumentDisplay?id=413484.1) (Compatibilidad de Data Guard para instancias en espera principales y físicas heterogéneos en la misma configuración de Data Guard). 

   ```
   #linux system 
   platformid=13
   #list of tablespaces to transport
   tablespaces=TBS1,TBS2,TBS3
   #location where backup will be generated
   src_scratch_location=/dsk1/backups
   #RMAN command for performing backup
   usermantransport=1
   ```

## Fase 2: Preparar la copia de seguridad completa del espacio de tabla
<a name="oracle-migrating-tts.initial-br-phase"></a>

En esta fase, realiza una copia de seguridad de los espacios de tabla por primera vez, transfiere las copias de seguridad al host de destino y, a continuación, las restaura siguiendo el procedimiento `rdsadmin.rdsadmin_transport_util.import_xtts_tablespaces`. Cuando se complete esta fase, las copias de seguridad iniciales del espacio de tabla estarán en la instancia de base de datos de destino y se podrán actualizar con copias de seguridad incrementales.

**Topics**
+ [Paso 1: realice copias de seguridad de los espacios de tabla en el host de origen](#oracle-migrating-tts.backup-full)
+ [Paso 2: transfiera los archivos de copia de seguridad a la instancia de base de datos de destino](#oracle-migrating-tts.transfer-full)
+ [Paso 3: importe los espacios de tabla en la instancia de base de datos de destino](#oracle-migrating-tts.initial-tts-import)

### Paso 1: realice copias de seguridad de los espacios de tabla en el host de origen
<a name="oracle-migrating-tts.backup-full"></a>

En este paso, utilizará el script `xttdriver.pl` para hacer una copia de seguridad completa de sus espacios de tabla. La salida de `xttdriver.pl` se almacena en la variable de entorno `TMPDIR`.

**Para hacer una copia de seguridad de los espacios de tabla**

1. Si los espacios de tabla están en modo de solo lectura, inicie sesión en la base de datos de origen como usuario con el privilegio `ALTER TABLESPACE` y coloque los espacios de tabla en modo de lectura/escritura. De no ser así, vaya al siguiente paso.

   En el siguiente ejemplo se establecen `tbs1`, `tbs2` y `tbs3` en modo de lectura/escritura.

   ```
   ALTER TABLESPACE tbs1 READ WRITE;
   ALTER TABLESPACE tbs2 READ WRITE;
   ALTER TABLESPACE tbs3 READ WRITE;
   ```

1. Realice una copia de seguridad de los espacios de tabla con el script `xttdriver.pl`. Si lo desea, puede especificar `--debug` para que ejecute el script en modo de depuración.

   ```
   export TMPDIR=location_of_log_files
   cd location_of_xttdriver.pl
   $ORACLE_HOME/perl/bin/perl xttdriver.pl --backup
   ```

### Paso 2: transfiera los archivos de copia de seguridad a la instancia de base de datos de destino
<a name="oracle-migrating-tts.transfer-full"></a>

En este paso, debe copiar los archivos de copia de seguridad y de configuración de la ubicación inicial a la instancia de base de datos de destino. Elija una de las siguientes opciones:
+ Si los hosts de origen y destino comparten un sistema de archivos de Amazon EFS, use una utilidad del sistema operativo, por ejemplo, `cp`, para copiar los archivos de copia de seguridad y el archivo `res.txt` de su ubicación inicial a un directorio compartido. A continuación, diríjase a [Paso 3: importe los espacios de tabla en la instancia de base de datos de destino](#oracle-migrating-tts.initial-tts-import).
+ Si necesita organizar sus copias de seguridad en un bucket de Amazon S3, siga estos pasos.

![\[Transfiera los archivos mediante Amazon EFS o Amazon S3.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/oracle-tts.png)


#### Paso 2.2: Cargar las copias de seguridad en el bucket de Amazon S3
<a name="oracle-migrating-tts.upload-full"></a>

Cargue las copias de seguridad y el archivo `res.txt` del directorio inicial al bucket de Amazon S3. Para obtener más información, consulte [Carga de objetos](https://docs.aws.amazon.com/AmazonS3/latest/userguide/upload-objects.html) en la *Guía del desarrollador de Amazon Simple Storage Service*.

#### Paso 2.3: Descargar las copias de seguridad desde el bucket de Amazon S3 a la instancia de base de datos de destino
<a name="oracle-migrating-tts.download-full"></a>

En este paso, utilizará el procedimiento `rdsadmin.rdsadmin_s3_tasks.download_from_s3` para descargar las copias de seguridad en la instancia de base de datos de RDS para Oracle.

**Para descargar las copias de seguridad del bucket de Amazon S3**

1. Inicie SQL\$1Plus u Oracle SQL Developer e inicie sesión en la instancia de base de datos de destino de RDS para Oracle.

1. Descargue las copias de seguridad del bucket de Amazon S3 en la instancia de base de datos de destino mediante el procedimiento de Amazon RDS `rdsadmin.rdsadmin_s3_tasks.download_from_s3` para d. En el siguiente ejemplo se descargan todos los archivos de un bucket de Amazon S3 denominado `amzn-s3-demo-bucket` en el directorio `DATA_PUMP_DIR`.

   ```
   EXEC UTL_FILE.FREMOVE ('DATA_PUMP_DIR', 'res.txt');
   SELECT rdsadmin.rdsadmin_s3_tasks.download_from_s3(
     p_bucket_name    =>  'amzn-s3-demo-bucket',
     p_directory_name =>  'DATA_PUMP_DIR') 
   AS TASK_ID FROM DUAL;
   ```

   La instrucción `SELECT` devuelve el identificador de la tarea en un tipo de datos `VARCHAR2`. Para obtener más información, consulte [Descarga de archivos desde un bucket de Amazon S3 en una instancia de base de datos de Oracle](oracle-s3-integration.using.md#oracle-s3-integration.using.download).

### Paso 3: importe los espacios de tabla en la instancia de base de datos de destino
<a name="oracle-migrating-tts.initial-tts-import"></a>

Utilice el procedimiento `rdsadmin.rdsadmin_transport_util.import_xtts_tablespaces` para restaurar los espacios de tabla en la instancia de base de datos de destino. Este procedimiento convierte automáticamente los archivos de datos al formato endian correcto.

Si realiza la importación desde una plataforma que no sea Linux, especifique la plataforma de origen mediante el parámetro `p_platform_id` cuando llame a `import_xtts_tablespaces`. Asegúrese de que el id. de plataforma coincida con el especificado en el archivo `xtt.properties` en [Paso 2: exporte los metadatos del espacio de tabla en el host de origen](#oracle-migrating-tts.transport.export).

**Importar los espacios de tabla en la instancia de base de datos de destino**

1. Inicie un cliente de Oracle SQL e inicie sesión como usuario maestro en su instancia de base de datos de destino de RDS para Oracle.

1. Ejecute el procedimiento `rdsadmin.rdsadmin_transport_util.import_xtts_tablespaces` y especifique los espacios de tabla que se van a importar y el directorio que contiene las copias de seguridad.

   En el siguiente ejemplo se importan los espacios de tabla *TBS1*, *TBS2* y *TBS3* del directorio *DATA\$1PUMP\$1DIR*. La plataforma de origen es AIX-Based Systems (64 bits), con el id. de plataforma `6`. Puede encontrar los id. de plataforma consultando `V$TRANSPORTABLE_PLATFORM`.

   ```
   VAR task_id CLOB
   
   BEGIN
     :task_id:=rdsadmin.rdsadmin_transport_util.import_xtts_tablespaces(
           'TBS1,TBS2,TBS3',
           'DATA_PUMP_DIR',
           p_platform_id => 6);
   END;
   /
   
   PRINT task_id
   ```

1. (Opcional) Supervise el progreso consultando la tabla `rdsadmin.rds_xtts_operation_info`. La columna `xtts_operation_state` muestra el valor `EXECUTING`, `COMPLETED` o `FAILED`.

   ```
   SELECT * FROM rdsadmin.rds_xtts_operation_info;
   ```
**nota**  
Para operaciones de larga duración, también puede consultar `V$SESSION_LONGOPS`, `V$RMAN_STATUS` y `V$RMAN_OUTPUT`.

1. Para ver el registro de la importación finalizada, utilice el ID de la tarea del paso anterior.

   ```
   SELECT * FROM TABLE(rdsadmin.rds_file_util.read_text_file('BDUMP', 'dbtask-'||'&task_id'||'.log'));
   ```

   Asegúrese de que se haya completado correctamente la importación antes de continuar con el siguiente paso.

## Fase 3: Realizar y transferir copias de seguridad incrementales
<a name="oracle-migrating-tts.roll-forward-phase"></a>

En esta fase, se realizan y transfieren copias de seguridad incrementales periódicamente mientras la base de datos de origen esté activa. Esta técnica reduce el tamaño de la copia de seguridad final del espacio de tabla. Si realiza varias copias de seguridad incrementales, debe copiar el archivo `res.txt` después de la última copia de seguridad incremental antes de poder aplicarlo en la instancia de destino.

Los pasos son los mismos que en [Fase 2: Preparar la copia de seguridad completa del espacio de tabla](#oracle-migrating-tts.initial-br-phase), excepto que el paso de importación es opcional.

## Fase 4: Transportar los espacios de tabla
<a name="oracle-migrating-tts.final-br-phase"></a>

En esta fase, se realiza una copia de seguridad de los espacios de tabla de solo lectura y se exportan los metadatos de Data Pump, se transfiere estos archivos al host de destino y se importan tanto los espacios de tabla como los metadatos.

**Topics**
+ [Paso 1: realice una copia de seguridad de los espacios de tabla de solo lectura](#oracle-migrating-tts.final-backup)
+ [Paso 2: exporte los metadatos del espacio de tabla en el host de origen](#oracle-migrating-tts.transport.export)
+ [Paso 3: (solo Amazon S3) transfiera los archivos de copia de seguridad y exporte los archivos a la instancia de base de datos de destino](#oracle-migrating-tts.transport)
+ [Paso 4: Importar los espacios de tabla en la instancia de base de datos de destino](#oracle-migrating-tts.restore-full)
+ [Paso 5: Importar los metadatos del espacio de tabla en la instancia de base de datos de destino](#oracle-migrating-tts.transport.import-dmp)

### Paso 1: realice una copia de seguridad de los espacios de tabla de solo lectura
<a name="oracle-migrating-tts.final-backup"></a>

Este paso es idéntico al [Paso 1: realice copias de seguridad de los espacios de tabla en el host de origen](#oracle-migrating-tts.backup-full), salvo que aquí se establecen los espacios de tabla en modo de solo lectura antes de hacer una copia de seguridad de los espacios de tabla por última vez.

En el siguiente ejemplo se establecen `tbs1`, `tbs2` y `tbs3` en modo de solo lectura.

```
ALTER TABLESPACE tbs1 READ ONLY;
ALTER TABLESPACE tbs2 READ ONLY;
ALTER TABLESPACE tbs3 READ ONLY;
```

### Paso 2: exporte los metadatos del espacio de tabla en el host de origen
<a name="oracle-migrating-tts.transport.export"></a>

Para exportar los metadatos del espacio de tabla, ejecute la utilidad `expdb` en el host de origen. En el siguiente ejemplo se exportan los espacios de tabla *TBS1*, *TBS2* y *TBS3* al archivo de volcado *xttdump.dmp* en el directorio *DATA\$1PUMP\$1DIR*.

```
expdp username/pwd \
dumpfile=xttdump.dmp \
directory=DATA_PUMP_DIR \
statistics=NONE \
transport_tablespaces=TBS1,TBS2,TBS3 \
transport_full_check=y \
logfile=tts_export.log
```

Si *DATA\$1PUMP\$1DIR* es un directorio compartido en Amazon EFS, vaya a [Paso 4: Importar los espacios de tabla en la instancia de base de datos de destino](#oracle-migrating-tts.restore-full).

### Paso 3: (solo Amazon S3) transfiera los archivos de copia de seguridad y exporte los archivos a la instancia de base de datos de destino
<a name="oracle-migrating-tts.transport"></a>

Si utiliza Amazon S3 para organizar las copias de seguridad del espacio de tabla y el archivo de exportación de Data Pump, siga estos pasos.

#### Paso 3.1: cargue las copias de seguridad y el archivo de volcado del host de origen en el bucket de Amazon S3
<a name="oracle-migrating-tts.transport.upload-dmp"></a>

Cargue las copias de seguridad y los archivos de volcado del host de origen en el bucket de Amazon S3. Para obtener más información, consulte [Carga de objetos](https://docs.aws.amazon.com/AmazonS3/latest/userguide/upload-objects.html) en la *Guía del desarrollador de Amazon Simple Storage Service*.

#### Paso 3.2: Descargar las copias de seguridad y el archivo de volcado desde el bucket de Amazon S3 a la instancia de base de datos de destino
<a name="oracle-migrating-tts.transport.download-dmp"></a>

En este paso, se utiliza el procedimiento `rdsadmin.rdsadmin_s3_tasks.download_from_s3` para descargar las copias de seguridad y el archivo de volcado en la instancia de base de datos de RDS para Oracle. Siga los pasos de [Paso 2.3: Descargar las copias de seguridad desde el bucket de Amazon S3 a la instancia de base de datos de destino](#oracle-migrating-tts.download-full).

### Paso 4: Importar los espacios de tabla en la instancia de base de datos de destino
<a name="oracle-migrating-tts.restore-full"></a>

Utilice el procedimiento `rdsadmin.rdsadmin_transport_util.import_xtts_tablespaces` para restaurar los espacios de tabla. Para obtener información sobre la semántica de este procedimiento, consulte [Importación de espacios de tabla transportados a su instancia de base de datos](rdsadmin_transport_util_import_xtts_tablespaces.md).

**importante**  
Tras completar la importación final del espacio de tabla, el siguiente paso es [importar los metadatos de Oracle Data Pump](#oracle-migrating-tts.transport.export). Si se produce un error en la importación, es importante que la instancia de base de datos vuelva a su estado anterior al error. Por lo tanto, le recomendamos que cree una instantánea de base de datos de la instancia de base de datos siguiendo las instrucciones de [Creación de una instantánea de base de datos para una instancia de base de datos single-AZ para Amazon RDS](USER_CreateSnapshot.md). La instantánea contendrá todos los espacios de tabla importados, por lo que si se produce un error en la importación, no tendrá que repetir el proceso de copia de seguridad e importación.   
Si la instancia de base de datos de destino tiene activadas las copias de seguridad automáticas y Amazon RDS no detecta que se haya iniciado una instantánea válida antes de importar los metadatos, RDS intentará crear una instantánea. En función de la actividad de la instancia, esta instantánea puede o no funcionar correctamente. Si no se detecta una instantánea válida o no se puede iniciar una instantánea, la importación de metadatos se cerrará con errores.

**Importar los espacios de tabla en la instancia de base de datos de destino**

1. Inicie un cliente de Oracle SQL e inicie sesión como usuario maestro en su instancia de base de datos de destino de RDS para Oracle.

1. Ejecute el procedimiento `rdsadmin.rdsadmin_transport_util.import_xtts_tablespaces` y especifique los espacios de tabla que se van a importar y el directorio que contiene las copias de seguridad.

   En el siguiente ejemplo se importan los espacios de tabla *TBS1*, *TBS2* y *TBS3* del directorio *DATA\$1PUMP\$1DIR*.

   ```
   BEGIN
     :task_id:=rdsadmin.rdsadmin_transport_util.import_xtts_tablespaces('TBS1,TBS2,TBS3','DATA_PUMP_DIR');
   END;
   /
   PRINT task_id
   ```

1. (Opcional) Supervise el progreso consultando la tabla `rdsadmin.rds_xtts_operation_info`. La columna `xtts_operation_state` muestra el valor `EXECUTING`, `COMPLETED` o `FAILED`.

   ```
   SELECT * FROM rdsadmin.rds_xtts_operation_info;
   ```
**nota**  
Para operaciones de larga duración, también puede consultar `V$SESSION_LONGOPS`, `V$RMAN_STATUS` y `V$RMAN_OUTPUT`.

1. Para ver el registro de la importación finalizada, utilice el ID de la tarea del paso anterior.

   ```
   SELECT * FROM TABLE(rdsadmin.rds_file_util.read_text_file('BDUMP', 'dbtask-'||'&task_id'||'.log'));
   ```

   Asegúrese de que se haya completado correctamente la importación antes de continuar con el siguiente paso.

1. Realice una instantánea manual de la base de datos siguiendo las instrucciones de [Creación de una instantánea de base de datos para una instancia de base de datos single-AZ para Amazon RDS](USER_CreateSnapshot.md).

### Paso 5: Importar los metadatos del espacio de tabla en la instancia de base de datos de destino
<a name="oracle-migrating-tts.transport.import-dmp"></a>

En este paso, se importan los metadatos del espacio de tabla transportables a la instancia de base de datos de RDS para Oracle mediante el procedimiento `rdsadmin.rdsadmin_transport_util.import_xtts_metadata`. Para obtener información sobre la sintaxis y la semántica de este procedimiento, consulte [Importación de metadatos de espacios de tabla transportables a su instancia de base de datos](rdsadmin_transport_util_import_xtts_metadata.md). Durante la operación, el estado de la importación se muestra en la tabla `rdsadmin.rds_xtts_operation_info`.

**importante**  
Antes de importar los metadatos, le recomendamos encarecidamente que confirme la creación correcta de la instantánea de base de datos después de importar los espacios de tabla. Si se produce un error en el paso de importación, restaure la instancia de base de datos, corrija los errores de importación y, a continuación, vuelva a intentar la importación.

**Importar los metadatos de Data Pump a la instancia de base de datos de RDS para Oracle**

1. Inicie el cliente de Oracle SQL e inicie sesión como usuario maestro en su instancia de base de datos de destino.

1. Cree los usuarios que posean esquemas en los espacios de tabla transportados, si estos usuarios aún no existen.

   ```
   CREATE USER tbs_owner IDENTIFIED BY password;
   ```

1. Importe los metadatos, especificando el nombre del archivo de volcado y su ubicación en el directorio.

   ```
   BEGIN
     rdsadmin.rdsadmin_transport_util.import_xtts_metadata('xttdump.dmp','DATA_PUMP_DIR');
   END;
   /
   ```

1. (Opcional) Consulte la tabla del historial de espacios de tabla transportables para ver el estado de la importación de los metadatos.

   ```
   SELECT * FROM rdsadmin.rds_xtts_operation_info;
   ```

   Cuando finalice la operación, los espacios de tabla estarán en modo de solo lectura.

1. (Opcional) Vea el archivo de registro.

   En el ejemplo siguiente se muestra el contenido del directorio BDUMP y, a continuación, se consulta el registro de importación.

   ```
   SELECT * FROM TABLE(rdsadmin.rds_file_util.listdir(p_directory => 'BDUMP'));
   
   SELECT * FROM TABLE(rdsadmin.rds_file_util.read_text_file(
     p_directory => 'BDUMP',
     p_filename => 'rds-xtts-import_xtts_metadata-2023-05-22.01-52-35.560858000.log'));
   ```

## Fase 5: Validar los espacios de tabla transportados
<a name="oracle-migrating-tts.validate"></a>

En este paso opcional, se validan los espacios de tabla transportados mediante el procedimiento `rdsadmin.rdsadmin_rman_util.validate_tablespace` y, a continuación, los espacios de tabla se establecen en modo de lectura/escritura.

**Para validar los datos transportados**

1. Inicie SQL\$1Plus o SQL Developer e inicie sesión como usuario maestro en su instancia de base de datos de destino.

1. Valide los espacios de tabla mediante el procedimiento `rdsadmin.rdsadmin_rman_util.validate_tablespace`.

   ```
   SET SERVEROUTPUT ON
   BEGIN
       rdsadmin.rdsadmin_rman_util.validate_tablespace(
           p_tablespace_name     => 'TBS1',
           p_validation_type     => 'PHYSICAL+LOGICAL',
           p_rman_to_dbms_output => TRUE);
       rdsadmin.rdsadmin_rman_util.validate_tablespace(
           p_tablespace_name     => 'TBS2',
           p_validation_type     => 'PHYSICAL+LOGICAL',
           p_rman_to_dbms_output => TRUE);
       rdsadmin.rdsadmin_rman_util.validate_tablespace(
           p_tablespace_name     => 'TBS3',
           p_validation_type     => 'PHYSICAL+LOGICAL',
           p_rman_to_dbms_output => TRUE);
   END;
   /
   ```

1. Coloque los espacios de tabla en modo de lectura/escritura.

   ```
   ALTER TABLESPACE TBS1 READ WRITE;
   ALTER TABLESPACE TBS2 READ WRITE;
   ALTER TABLESPACE TBS3 READ WRITE;
   ```

## Fase 6: Limpiar los archivos sobrantes
<a name="oracle-migrating-tts.cleanup"></a>

En este paso opcional, se eliminan los archivos innecesarios. Utilice el procedimiento `rdsadmin.rdsadmin_transport_util.list_xtts_orphan_files` para enumerar los archivos de datos que quedaron huérfanos tras la importación de un espacio de tabla y, a continuación, utilice el procedimiento `rdsadmin.rdsadmin_transport_util.list_xtts_orphan_files` para eliminarlos. Para obtener información sobre la sintaxis y la semántica de estos procedimientos, consulte [Enumeración de los archivos huérfanos después de importar un espacio de tabla](rdsadmin_transport_util_list_xtts_orphan_files.md) y [Eliminación de los archivos de datos huérfanos después de importar un espacio de tabla](rdsadmin_transport_util_cleanup_incomplete_xtts_import.md).

**Para limpiar los archivos sobrantes**

1. Elimine las copias de seguridad antiguas en *DATA\$1PUMP\$1DIR* de la siguiente manera:

   1. Para enumerar los archivos de copia de seguridad, ejecute `rdsadmin.rdsadmin_file_util.listdir`.

      ```
      SELECT * FROM TABLE(rdsadmin.rds_file_util.listdir(p_directory => 'DATA_PUMP_DIR'));
      ```

   1. Para eliminar las copias de seguridad una por una, llame a `UTL_FILE.FREMOVE`.

      ```
      EXEC UTL_FILE.FREMOVE ('DATA_PUMP_DIR', 'backup_filename');
      ```

1. Si ha importado espacios de tabla pero no ha importado metadatos para estos espacios de tabla, puede eliminar los archivos de datos huérfanos de la siguiente manera:

   1. Haga una lista de los archivos de datos huérfanos que debe eliminar. En el siguiente ejemplo se ejecuta el procedimiento `rdsadmin.rdsadmin_transport_util.list_xtts_orphan_files`.

      ```
      SQL> SELECT * FROM TABLE(rdsadmin.rdsadmin_transport_util.list_xtts_orphan_files);
      
      FILENAME       FILESIZE
      -------------- ---------
      datafile_7.dbf 104865792
      datafile_8.dbf 104865792
      ```

   1. Para eliminar los archivos huérfanos, ejecute el procedimiento `rdsadmin.rdsadmin_transport_util.cleanup_incomplete_xtts_import`.

      ```
      BEGIN
        rdsadmin.rdsadmin_transport_util.cleanup_incomplete_xtts_import('DATA_PUMP_DIR');
      END;
      /
      ```

      La operación de limpieza genera un archivo de registro que utiliza el formato de nombre `rds-xtts-delete_xtts_orphaned_files-YYYY-MM-DD.HH24-MI-SS.FF.log` del directorio `BDUMP`.

   1. Lea el archivo de registro generado en el paso anterior. En el siguiente ejemplo se lee el registro `rds-xtts-delete_xtts_orphaned_files-2023-06-01.09-33-11.868894000.log`.

      ```
      SELECT * 
      FROM TABLE(rdsadmin.rds_file_util.read_text_file(
             p_directory => 'BDUMP',
             p_filename  => 'rds-xtts-delete_xtts_orphaned_files-2023-06-01.09-33-11.868894000.log'));
      
      TEXT
      --------------------------------------------------------------------------------
      orphan transported datafile datafile_7.dbf deleted.
      orphan transported datafile datafile_8.dbf deleted.
      ```

1. Si ha importado espacios de tabla y metadatos para estos espacios de tabla, pero se ha topado con errores de compatibilidad u otros problemas de Oracle Data Pump, limpie los archivos de datos parcialmente transportados de la siguiente manera:

   1. Enumere los espacios de tabla que contienen archivos de datos parcialmente transportados mediante consultas `DBA_TABLESPACES`.

      ```
      SQL> SELECT TABLESPACE_NAME FROM DBA_TABLESPACES WHERE PLUGGED_IN='YES';
      
      TABLESPACE_NAME
      --------------------------------------------------------------------------------
      TBS_3
      ```

   1. Elimine los espacios de tabla y los archivos de datos parcialmente transportados.

      ```
      DROP TABLESPACE TBS_3 INCLUDING CONTENTS AND DATAFILES;
      ```

# Importación mediante Oracle Data Pump
<a name="Oracle.Procedural.Importing.DataPump"></a>

Oracle Data Pump es una utilidad que le permite exportar datos de Oracle a un archivo de volcado e importarlos a otra base de datos de Oracle. Es un reemplazo a largo plazo de las utilidades de exportación e importación de Oracle. Oracle Data Pump es la forma preferida de trasladar grandes cantidades de datos desde una base de datos Oracle a una instancia de base de datos de Amazon RDS.

Los ejemplos de esta sección muestran una forma de importar datos a una base de datos Oracle, pero Oracle Data Pump admite otras técnicas. Para obtener más información, consulte la [documentación de Oracle Database](https://docs.oracle.com/en/database/oracle/oracle-database/19/sutil/oracle-data-pump.html#GUID-501A9908-BCC5-434C-8853-9A6096766B5A).

En los ejemplos de esta sección se utiliza el paquete `DBMS_DATAPUMP`. Puede realizar las mismas tareas con las utilidades de línea de comandos de Oracle Data Pump `impdp` y `expdp`. Puede instalar estas utilidades en un host remoto como parte de una instalación de Oracle Client, incluido Oracle Instant Client. Para obtener más información, consulte [How do I use Oracle Instant Client to run Data Pump Import or Export for my Amazon RDS for Oracle DB instance?](https://aws.amazon.com/premiumsupport/knowledge-center/rds-oracle-instant-client-datapump/) (¿Cómo utilizo Oracle Instant Client para ejecutar la importación o exportación de Data Pump para mi instancia de base de datos de Amazon RDS para Oracle?)

**Topics**
+ [Información general sobre Oracle Data Pump](#Oracle.Procedural.Importing.DataPump.Overview)
+ [Importación de datos con Oracle Data Pump y un bucket de Amazon S3](#Oracle.Procedural.Importing.DataPump.S3)
+ [Importación de datos con Oracle Data Pump y un enlace de base de datos](#Oracle.Procedural.Importing.DataPump.DBLink)

## Información general sobre Oracle Data Pump
<a name="Oracle.Procedural.Importing.DataPump.Overview"></a>

Oracle Data Pump consta de los siguientes componentes:
+ Clientes de línea de comandos `expdp` y `impdp`
+ El paquete PL/SQL `DBMS_DATAPUMP`
+ El paquete PL/SQL `DBMS_METADATA`

Puede utilizar Oracle Data Pump en los siguientes casos:
+ Importación de datos desde una base de datos de Oracle (en las instalaciones o en una instancia de Amazon EC2) a una instancia de base de datos de Amazon RDS para Oracle
+ Importación de datos desde una instancia de base de datos de RDS para Oracle a una base de datos Oracle, ya sea en las instalaciones o en una instancia de Amazon EC2
+ Importación de datos entre instancias de base de datos de RDS para Oracle (por ejemplo, para migrar datos desde EC2-Classic a una VPC).

Para descargar utilidades de Oracle Data Pump, consulte [Oracle Database Software Downloads (Descargas de software de base de datos de Oracle)](http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html) en el sitio web de Oracle Technology Network. Para conocer aspectos sobre compatibilidad al migrar entre versiones de Oracle Database, consulte [la documentación de Oracle Database](https://docs.oracle.com/en/database/oracle/oracle-database/19/sutil/oracle-data-pump-overview.html#GUID-BAA3B679-A758-4D55-9820-432D9EB83C68).

### Flujo de trabajo de Oracle Data Pump
<a name="Oracle.Procedural.Importing.DataPump.Overview.how-it-works"></a>

Por lo general, se utiliza Oracle Data Pump en las siguientes etapas:

1. Exporte sus datos a un archivo de volcado en la base de datos de origen.

1. Cargue el archivo de volcado en la instancia de base de datos de RDS para Oracle Puede transferirlo mediante un bucket de Amazon S3 o mediante un enlace de base de datos entre dos bases de datos.

1. Importe los datos desde el archivo de volcado a la instancia de base de RDS para Oracle.

### Prácticas recomendadas de Oracle Data Pump
<a name="Oracle.Procedural.Importing.DataPump.Overview.best-practices"></a>

Cuando utiliza Oracle Data Pump para importar datos en una instancia de RDS para Oracle, se recomiendan las siguientes prácticas recomendadas:
+ Realice importaciones en el modo `schema` o `table` para importar esquemas y objetos específicos.
+ Limite los esquemas que importe a los que necesita su aplicación.
+ No los importe en el modo `full` ni en esquemas de importación para componentes mantenidos por el sistema.

  Puesto que RDS para Oracle no permite el acceso a usuarios administrativos `SYS` o `SYSDBA`, estas acciones pueden dañar el diccionario de datos de Oracle y afectar a la estabilidad de su base de datos.
+ Al cargar grandes cantidades de datos, haga lo siguiente:

  1. Transfiera el archivo de volcado a la instancia de base de datos de RDS para Oracle.

  1. Cree una instantánea de base de datos de su instancia.

  1. Pruebe la importación para comprobar que se realiza correctamente.

  Si se invalidan los componentes de la base de datos, puede eliminar la instancia de base de datos y volver a crearla a partir de la instantánea de base de datos. La instancia de base de datos restaurada incluye los archivos de volcado preparados en la instancia de base de datos cuando realice una instantánea de base de datos.
+ No importe archivos de volcado creados con parámetros `TRANSPORT_TABLESPACES`, `TRANSPORTABLE` o `TRANSPORT_FULL_CHECK` de exportación de Oracle Data Pump. Las instancias de bases de datos de RDS para Oracle no admiten la importación de estos archivos de volcado.
+ No importe archivos de volcado que contengan objetos del programador de Oracle en `SYS`, `SYSTEM`, `RDSADMIN`, `RDSSEC` y `RDS_DATAGUARD` y que pertenezcan a las categorías siguientes:
  + Tareas
  + Programas
  + Schedules
  + Cadenas
  + Reglas
  + Contextos de evaluación
  + Conjunto de reglas

  Las instancias de bases de datos de RDS para Oracle no admiten la importación de estos archivos de volcado. 
+ Para excluir objetos de Oracle Scheduler no admitidos, utilice directivas adicionales durante la exportación de Data Pump. Si utiliza `DBMS_DATAPUMP`, añada un `METADATA_FILTER` adicional antes de `DBMS_METADATA.START_JOB`:

  ```
  DBMS_DATAPUMP.METADATA_FILTER(
    v_hdnl,
    'EXCLUDE_NAME_EXPR',
    q'[IN (SELECT NAME FROM SYS.OBJ$ 
           WHERE TYPE# IN (66,67,74,79,59,62,46) 
           AND OWNER# IN
             (SELECT USER# FROM SYS.USER$ 
              WHERE NAME IN ('RDSADMIN','SYS','SYSTEM','RDS_DATAGUARD','RDSSEC')
              )
          )
    ]',
    'PROCOBJ'
  );
  ```

  Si utiliza `expdp`, cree un archivo de parámetros que contenga la directiva `exclude` que se muestra en el siguiente ejemplo. Luego `PARFILE=parameter_file` utilícelo con su `expdp` comando.

  ```
  exclude=procobj:"IN 
    (SELECT NAME FROM sys.OBJ$
     WHERE TYPE# IN (66,67,74,79,59,62,46) 
     AND OWNER# IN 
       (SELECT USER# FROM SYS.USER$ 
        WHERE NAME IN ('RDSADMIN','SYS','SYSTEM','RDS_DATAGUARD','RDSSEC')
       )
    )"
  ```

## Importación de datos con Oracle Data Pump y un bucket de Amazon S3
<a name="Oracle.Procedural.Importing.DataPump.S3"></a>

El siguiente proceso de importación utiliza Oracle Data Pump y un bucket de Amazon S3. Los pasos son los siguientes:

1. Exporte datos en la base de datos de origen mediante el paquete [DBMS\$1DATAPUMP](https://docs.oracle.com/en/database/oracle/oracle-database/19/arpls/DBMS_DATAPUMP.html) de Oracle.

1. Coloque el archivo de volcado en un bucket de Amazon S3.

1. A continuación, descargue el archivo de volcado del bucket de Amazon S3 al directorio `DATA_PUMP_DIR` en la instancia de base de datos de RDS para Oracle de destino. 

1. Importe los datos del archivo de volcado copiado a la instancia de base de datos de RDS para Oracle utilizando el paquete `DBMS_DATAPUMP`.

**Topics**
+ [Requisitos para la importación de datos con Oracle Data Pump y un bucket de Amazon S3](#Oracle.Procedural.Importing.DataPumpS3.requirements)
+ [Paso 1: Conceda privilegios al usuario de la base de datos en la instancia de base de datos de destino de RDS para Oracle](#Oracle.Procedural.Importing.DataPumpS3.Step1)
+ [Paso 2: Exporte datos a un archivo de volcado mediante DBMS\$1DATAPUMP](#Oracle.Procedural.Importing.DataPumpS3.Step2)
+ [Paso 3: carga del archivo de volcado a su bucket de Amazon S3](#Oracle.Procedural.Importing.DataPumpS3.Step3)
+ [Paso 4: Descargue el archivo de volcado desde su bucket de Amazon S3 a la instancia de base de datos de destino.](#Oracle.Procedural.Importing.DataPumpS3.Step4)
+ [Paso 5: Importe el archivo de volcado a la instancia de base de datos de destino mediante DBMS\$1DATAPUMP](#Oracle.Procedural.Importing.DataPumpS3.Step5)
+ [Paso 6: Limpieza](#Oracle.Procedural.Importing.DataPumpS3.Step6)

### Requisitos para la importación de datos con Oracle Data Pump y un bucket de Amazon S3
<a name="Oracle.Procedural.Importing.DataPumpS3.requirements"></a>

El proceso tiene los siguientes requisitos:
+ Asegúrese de que hay un bucket de Amazon S3 disponible para las transferencias de archivos, y que el bucket de Amazon S3 está en la misma Región de AWS que la instancia de base de datos. Para ver las instrucciones, consulte [Crear un bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/CreatingABucket.html) en la *Guía de introducción de Amazon Simple Storage Service*.
+ El objeto que cargue en el bucket de Amazon S3 debe ser de 5 TB o menos. Para obtener más información acerca de cómo trabajar con objetos en Amazon S3, consulte [Guía del usuario de Amazon Simple Storage Service](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingObjects.html).
**nota**  
Si el archivo de volcado supera los 5 TB, puede ejecutar la exportación de Oracle Data Pump con la opción paralela. Esta operación distribuye los datos en varios archivos de volcado para que no supere el límite de 5 TB para archivos individuales.
+ Debe preparar el bucket de Amazon S3 para la integración de Amazon RDS siguiendo las instrucciones en [Configuración de permisos IAM para la integración de RDS para Oracle con Amazon S3](oracle-s3-integration.preparing.md).
+ Debe asegurarse de que tiene suficiente espacio de almacenamiento para almacenar el archivo de volcado en la instancia de origen y en la instancia de base de datos de destino.

**nota**  
Este proceso importa un archivo de volcado en el directorio `DATA_PUMP_DIR`, un directorio preconfigurado en todas las instancias de bases de datos de Oracle. Este directorio se encuentra en el mismo volumen de almacenamiento que los archivos de datos. Cuando importe el archivo de volcado, los archivos de datos de Oracle existentes utilizarán más espacio. Por lo tanto, debe asegurarse de que su instancia de base de datos pueda dar cabida a ese uso de espacio adicional. El archivo de volcado importado no se elimina ni se purga automáticamente del directorio `DATA_PUMP_DIR`. Para quitar el archivo de volcado importado, utilice [UTL\$1FILE.FREMOVE](https://docs.oracle.com/en/database/oracle/oracle-database/19/arpls/UTL_FILE.html#GUID-09B09C2A-2C21-4F70-BF04-D0EEA7B59CAF), que se encuentra en el sitio web de Oracle. 

### Paso 1: Conceda privilegios al usuario de la base de datos en la instancia de base de datos de destino de RDS para Oracle
<a name="Oracle.Procedural.Importing.DataPumpS3.Step1"></a>

En este paso, debe crear los esquemas en los que tiene pensado importar datos y conceder a los usuarios los privilegios necesarios.

**Para crear usuarios y conceder los privilegios necesarios en la instancia de destino de RDS para Oracle**

1. Utilice SQL\$1Plus u Oracle SQL Developer para iniciar sesión como usuario maestro en la instancia de base de datos de RDS para Oracle en la que se importarán los datos. Para obtener más información acerca de la conexión a una instancia de base de datos, consulte [Conexión a una instancia de base de datos de Oracle](USER_ConnectToOracleInstance.md).

1. Cree el espacio de tabla necesario antes de importar los datos. Para obtener más información, consulte [Creación y redimensionamiento de los espacios de tablas en RDS para Oracle](Appendix.Oracle.CommonDBATasks.TablespacesAndDatafiles.md#Appendix.Oracle.CommonDBATasks.CreatingTablespacesAndDatafiles).

1. Cree la cuenta de usuario y conceda los permisos y roles necesarios si la cuenta de usuario a la que se importan los datos no existe. Si piensa importar datos en varios esquemas de usuario, cree cada cuenta de usuario y otórguele los permisos y roles necesarios.

   Por ejemplo, las siguientes instrucciones SQL crean un nuevo usuario y conceden los permisos y roles necesarios para importar los datos en el esquema propiedad de este usuario. Reemplace `schema_1` por el nombre de su esquema en este paso y en los siguientes.

   ```
   CREATE USER schema_1 IDENTIFIED BY my_password;
   GRANT CREATE SESSION, RESOURCE TO schema_1;
   ALTER USER schema_1 QUOTA 100M ON users;
   ```
**nota**  
Especifique una contraseña distinta de la que se muestra aquí como práctica recomendada de seguridad.

   Las instrucciones anteriores conceden al nuevo usuario el privilegio `CREATE SESSION` y el rol `RESOURCE`. Es probable que necesite más privilegios y roles en función de los objetos de base de datos que importe.

### Paso 2: Exporte datos a un archivo de volcado mediante DBMS\$1DATAPUMP
<a name="Oracle.Procedural.Importing.DataPumpS3.Step2"></a>

Para crear un archivo de volcado, utilice el paquete `DBMS_DATAPUMP`.

**Para exportar datos de Oracle a un archivo de volcado**

1. Utilice SQL Plus u Oracle SQL Developer para conectarse a la instancia de base de datos de RDS para Oracle de origen con un usuario administrativo. Si la base de datos de origen es una instancia de base de datos de RDS para Oracle, conéctese con el usuario maestro de Amazon RDS.

1. Exporte los datos llamando a los procedimientos `DBMS_DATAPUMP`.

   El siguiente script exporta el esquema `SCHEMA_1` a un archivo de volcado denominado `sample.dmp` en el directorio `DATA_PUMP_DIR`. Reemplace `SCHEMA_1` por el nombre del esquema que desea exportar.

   ```
   DECLARE
     v_hdnl NUMBER;
   BEGIN
     v_hdnl := DBMS_DATAPUMP.OPEN(
       operation => 'EXPORT', 
       job_mode  => 'SCHEMA', 
       job_name  => null
     );
     DBMS_DATAPUMP.ADD_FILE( 
       handle    => v_hdnl         , 
       filename  => 'sample.dmp'   , 
       directory => 'DATA_PUMP_DIR', 
       filetype  => dbms_datapump.ku$_file_type_dump_file
     );
     DBMS_DATAPUMP.ADD_FILE( 
       handle    => v_hdnl, 
       filename  => 'sample_exp.log', 
       directory => 'DATA_PUMP_DIR' , 
       filetype  => dbms_datapump.ku$_file_type_log_file
     );
     DBMS_DATAPUMP.METADATA_FILTER(v_hdnl,'SCHEMA_EXPR','IN (''SCHEMA_1'')');
     DBMS_DATAPUMP.METADATA_FILTER(
       v_hdnl,
       'EXCLUDE_NAME_EXPR',
       q'[IN (SELECT NAME FROM SYS.OBJ$ 
              WHERE TYPE# IN (66,67,74,79,59,62,46) 
              AND OWNER# IN 
                (SELECT USER# FROM SYS.USER$ 
                 WHERE NAME IN ('RDSADMIN','SYS','SYSTEM','RDS_DATAGUARD','RDSSEC')
                )
             )
       ]',
       'PROCOBJ'
     );
     DBMS_DATAPUMP.START_JOB(v_hdnl);
   END;
   /
   ```
**nota**  
Data Pump inicia los trabajos de forma asíncrona Para obtener información sobre la supervisión de un trabajo de Data Pump, consulte [Monitoring job status](https://docs.oracle.com/en/database/oracle/oracle-database/19/sutil/oracle-data-pump-overview.html#GUID-E365D74E-12CD-495C-BA23-5A55F679C7E7) (Supervisión del estado del trabajo) en la documentación de Oracle. 

1. (Opcional) Puede ver el contenido del registro de exportación llamando al procedimiento `rdsadmin.rds_file_util.read_text_file`. Para obtener más información, consulte [Lectura de archivos de un directorio de instancia de base de datos](Appendix.Oracle.CommonDBATasks.Misc.md#Appendix.Oracle.CommonDBATasks.ReadingFiles).

### Paso 3: carga del archivo de volcado a su bucket de Amazon S3
<a name="Oracle.Procedural.Importing.DataPumpS3.Step3"></a>

Utilice el procedimiento de Amazon RDS `rdsadmin.rdsadmin_s3_tasks.upload_to_s3` para copiar el archivo de volcado en el bucket de Amazon S3. En el siguiente ejemplo se cargan todos los archivos del directorio `DATA_PUMP_DIR` en un bucket de Amazon S3 denominado `amzn-s3-demo-bucket`.

```
SELECT rdsadmin.rdsadmin_s3_tasks.upload_to_s3(
  p_bucket_name    =>  'amzn-s3-demo-bucket',       
  p_directory_name =>  'DATA_PUMP_DIR') 
AS TASK_ID FROM DUAL;
```

La instrucción `SELECT` devuelve el identificador de la tarea en un tipo de datos `VARCHAR2`. Para obtener más información, consulte [Carga de archivos desde la instancia de base de datos de RDS para Oracle en un bucket de Amazon S3](oracle-s3-integration.using.md#oracle-s3-integration.using.upload).

### Paso 4: Descargue el archivo de volcado desde su bucket de Amazon S3 a la instancia de base de datos de destino.
<a name="Oracle.Procedural.Importing.DataPumpS3.Step4"></a>

Realice este paso mediante el procedimiento de Amazon RDS `rdsadmin.rdsadmin_s3_tasks.download_from_s3`. Al descargar un archivo en un directorio, el procedimiento `download_from_s3` omite la descarga si ya existe un archivo con el mismo nombre en el directorio. Para quitar el archivo del directorio de descarga, utilice [UTL\$1FILE.FREMOVE](https://docs.oracle.com/en/database/oracle/oracle-database/19/arpls/UTL_FILE.html#GUID-09B09C2A-2C21-4F70-BF04-D0EEA7B59CAF), que se encuentra en el sitio web de Oracle.

**Para descargar el archivo de volcado**

1. Inicie SQL\$1Plus u Oracle SQL Developer e inicie sesión como usuario maestro en su instancia de base de datos de destino de Amazon RDS

1. Descargue el archivo de volcado mediante el procedimiento de Amazon RDS `rdsadmin.rdsadmin_s3_tasks.download_from_s3`.

   En el siguiente ejemplo, se descargan todos los archivos de un bucket de Amazon S3 denominado `amzn-s3-demo-bucket` en el directorio `DATA_PUMP_DIR`.

   ```
   SELECT rdsadmin.rdsadmin_s3_tasks.download_from_s3(
     p_bucket_name    =>  'amzn-s3-demo-bucket',
     p_directory_name =>  'DATA_PUMP_DIR')
   AS TASK_ID FROM DUAL;
   ```

   La instrucción `SELECT` devuelve el identificador de la tarea en un tipo de datos `VARCHAR2`. Para obtener más información, consulte [Descarga de archivos desde un bucket de Amazon S3 en una instancia de base de datos de Oracle](oracle-s3-integration.using.md#oracle-s3-integration.using.download).

### Paso 5: Importe el archivo de volcado a la instancia de base de datos de destino mediante DBMS\$1DATAPUMP
<a name="Oracle.Procedural.Importing.DataPumpS3.Step5"></a>

Utilice `DBMS_DATAPUMP` para importar el esquema a la instancia de base de datos de RDS para Oracle. Podrían ser necesarias opciones adicionales, como `METADATA_REMAP`.

**Para importar datos a la instancia de base de datos de destino**

1. Inicie SQL\$1Plus u Oracle SQL Developer e inicie sesión como usuario maestro en su instancia de base de datos de destino de RDS para Oracle.

1. Importe los datos llamando a los procedimientos `DBMS_DATAPUMP`.

   En el siguiente ejemplo se importan los datos de *SCHEMA\$11* de `sample_copied.dmp` en la instancia de base de datos de destino.

   ```
   DECLARE
     v_hdnl NUMBER;
   BEGIN
     v_hdnl := DBMS_DATAPUMP.OPEN( 
       operation => 'IMPORT', 
       job_mode  => 'SCHEMA', 
       job_name  => null);
     DBMS_DATAPUMP.ADD_FILE( 
       handle    => v_hdnl, 
       filename  => 'sample_copied.dmp', 
       directory => 'DATA_PUMP_DIR', 
       filetype  => dbms_datapump.ku$_file_type_dump_file);
     DBMS_DATAPUMP.ADD_FILE( 
       handle    => v_hdnl, 
       filename  => 'sample_imp.log', 
       directory => 'DATA_PUMP_DIR', 
       filetype  => dbms_datapump.ku$_file_type_log_file);
     DBMS_DATAPUMP.METADATA_FILTER(v_hdnl,'SCHEMA_EXPR','IN (''SCHEMA_1'')');
     DBMS_DATAPUMP.START_JOB(v_hdnl);
   END;
   /
   ```
**nota**  
Los trabajos de Data Pump se inician de modo asincrónico. Para obtener información sobre el monitoreo de un trabajo de Data Pump, consulte [Monitorización del estado del trabajo](https://docs.oracle.com/en/database/oracle/oracle-database/19/sutil/oracle-data-pump-overview.html#GUID-E365D74E-12CD-495C-BA23-5A55F679C7E7) en la documentación de Oracle. Puede ver el contenido del registro de importación mediante el procedimiento `rdsadmin.rds_file_util.read_text_file`. Para obtener más información, consulte [Lectura de archivos de un directorio de instancia de base de datos](Appendix.Oracle.CommonDBATasks.Misc.md#Appendix.Oracle.CommonDBATasks.ReadingFiles).

1. Para comprobar la importación de datos, enumere las tablas de esquemas de la instancia de base de datos de destino.

   Por ejemplo, la siguiente consulta devuelve el número de tablas de `SCHEMA_1`. 

   ```
   SELECT COUNT(*) FROM DBA_TABLES WHERE OWNER='SCHEMA_1';
   ```

### Paso 6: Limpieza
<a name="Oracle.Procedural.Importing.DataPumpS3.Step6"></a>

Después de importar los datos, puede eliminar los archivos que no desee conservar.

**Para eliminar archivos innecesarios**

1. Inicie SQL\$1Plus u Oracle SQL Developer e inicie sesión como usuario maestro en su instancia de base de datos de destino de RDS para Oracle.

1. Enumere los archivos en `DATA_PUMP_DIR` mediante el siguiente comando.

   ```
   SELECT * FROM TABLE(rdsadmin.rds_file_util.listdir('DATA_PUMP_DIR')) ORDER BY MTIME;
   ```

1. Elimine los archivos de `DATA_PUMP_DIR` que ya no sean necesarios con el siguiente comando.

   ```
   EXEC UTL_FILE.FREMOVE('DATA_PUMP_DIR','filename');
   ```

   Por ejemplo, el siguiente comando elimina el archivo denominado `sample_copied.dmp`.

   ```
   EXEC UTL_FILE.FREMOVE('DATA_PUMP_DIR','sample_copied.dmp'); 
   ```

## Importación de datos con Oracle Data Pump y un enlace de base de datos
<a name="Oracle.Procedural.Importing.DataPump.DBLink"></a>

El siguiente proceso de importación utiliza Oracle Data Pump y el paquete [DBMS\$1FILE\$1TRANSFER](https://docs.oracle.com/en/database/oracle/oracle-database/19/arpls/DBMS_FILE_TRANSFER.html) de Oracle. Los pasos son los siguientes:

1. Conéctese a una base de datos Oracle de origen, que puede ser una base de datos en las instalaciones, una instancia de Amazon EC2 o una instancia de base de datos de RDS para Oracle. 

1. Exporte los datos mediante el paquete [DBMS\$1DATAPUMP](https://docs.oracle.com/en/database/oracle/oracle-database/19/arpls/DBMS_DATAPUMP.html).

1. Utilice `DBMS_FILE_TRANSFER.PUT_FILE` para copiar el archivo de volcado desde la base de datos Oracle al directorio `DATA_PUMP_DIR` de la instancia de base de datos de RDS para Oracle de destino que está conectada mediante un enlace de base de datos. 

1. Importe los datos del archivo de volcado copiado a la instancia de base de datos de RDS para Oracle utilizando el paquete ` DBMS_DATAPUMP`.

El proceso de importación mediante Oracle Data Pump y un paquete de `DBMS_FILE_TRANSFER` tiene los siguientes pasos.

**Topics**
+ [Requisitos de importación de datos con Oracle Data Pump y un enlace de base de datos](#Oracle.Procedural.Importing.DataPumpDBLink.requirements)
+ [Paso 1: Conceda privilegios al usuario en la instancia de base de datos de destino de RDS para Oracle](#Oracle.Procedural.Importing.DataPumpDBLink.Step1)
+ [Paso 2: concesión de privilegios al usuario en la base de datos de origen](#Oracle.Procedural.Importing.DataPumpDBLink.Step2)
+ [Paso 3: Cree un archivo de volcado utilizando DBMS\$1DATAPUMP](#Oracle.Procedural.Importing.DataPumpDBLink.Step3)
+ [Paso 4: Crear un enlace de base de datos a la instancia de base de datos de destino](#Oracle.Procedural.Importing.DataPumpDBLink.Step4)
+ [Paso 5: Copie el archivo de volcado exportado a la instancia de base de datos de destino utilizando DBMS\$1FILE\$1TRANSFER](#Oracle.Procedural.Importing.DataPumpDBLink.Step5)
+ [Paso 6: Importe el archivo de datos a la instancia de base de datos de destino utilizando DBMS\$1DATAPUMP](#Oracle.Procedural.Importing.DataPumpDBLink.Step6)
+ [Paso 7: Limpieza](#Oracle.Procedural.Importing.DataPumpDBLink.Step7)

### Requisitos de importación de datos con Oracle Data Pump y un enlace de base de datos
<a name="Oracle.Procedural.Importing.DataPumpDBLink.requirements"></a>

El proceso tiene los siguientes requisitos:
+ Debe tener privilegios de ejecución en los paquetes `DBMS_FILE_TRANSFER` y `DBMS_DATAPUMP`.
+ Debe tener privilegios de escritura en el directorio `DATA_PUMP_DIR` de la instancia de base de datos de origen.
+ Debe asegurarse de que tiene suficiente espacio de almacenamiento para almacenar el archivo de volcado en la instancia de origen y en la instancia de base de datos de destino.

**nota**  
Este proceso importa un archivo de volcado en el directorio `DATA_PUMP_DIR`, un directorio preconfigurado en todas las instancias de bases de datos de Oracle. Este directorio se encuentra en el mismo volumen de almacenamiento que los archivos de datos. Cuando importe el archivo de volcado, los archivos de datos de Oracle existentes utilizarán más espacio. Por lo tanto, debe asegurarse de que su instancia de base de datos pueda dar cabida a ese uso de espacio adicional. El archivo de volcado importado no se elimina ni se purga automáticamente del directorio `DATA_PUMP_DIR`. Para quitar el archivo de volcado importado, utilice [UTL\$1FILE.FREMOVE](https://docs.oracle.com/en/database/oracle/oracle-database/19/arpls/UTL_FILE.html#GUID-09B09C2A-2C21-4F70-BF04-D0EEA7B59CAF), que se encuentra en el sitio web de Oracle. 

### Paso 1: Conceda privilegios al usuario en la instancia de base de datos de destino de RDS para Oracle
<a name="Oracle.Procedural.Importing.DataPumpDBLink.Step1"></a>

Para conceder privilegios al usuario en la instancia de base de datos de destino de RDS para Oracle, realice los siguientes pasos:

1. Utilice SQL Plus u Oracle SQL Developer para conectarse a la instancia de base de datos de RDS para Oracle a la que desea importar los datos. Conéctese con el usuario maestro de Amazon RDS. Para obtener más información acerca de la conexión a la instancia de base de datos, consulte [Conexión a una instancia de base de datos de Oracle](USER_ConnectToOracleInstance.md).

1. Cree el espacio de tabla necesario antes de importar los datos. Para obtener más información, consulte [Creación y redimensionamiento de los espacios de tablas en RDS para Oracle](Appendix.Oracle.CommonDBATasks.TablespacesAndDatafiles.md#Appendix.Oracle.CommonDBATasks.CreatingTablespacesAndDatafiles).

1. Si la cuenta de usuario a la que se van a importar los datos no existe, cree la cuenta y otórguele los permisos y roles necesarios. Si piensa importar datos en varios esquemas de usuario, cree cada cuenta de usuario y otórguele los permisos y roles necesarios.

   Por ejemplo, los siguientes comandos crean un nuevo usuario denominado *schema\$11* y otorgan los permisos y roles necesarios para importar los datos al esquema de este usuario.

   ```
   CREATE USER schema_1 IDENTIFIED BY my-password;
   GRANT CREATE SESSION, RESOURCE TO schema_1;
   ALTER USER schema_1 QUOTA 100M ON users;
   ```
**nota**  
Especifique una contraseña distinta de la que se muestra aquí como práctica recomendada de seguridad.

   En el ejemplo anterior, se otorga el privilegio `CREATE SESSION` y el rol `RESOURCE` al nuevo usuario. Es probable que necesite más privilegios y roles en función de los objetos de base de datos que importe. 
**nota**  
Reemplace `schema_1` por el nombre de su esquema en este paso y en los siguientes.

### Paso 2: concesión de privilegios al usuario en la base de datos de origen
<a name="Oracle.Procedural.Importing.DataPumpDBLink.Step2"></a>

Utilice SQL\$1Plus u Oracle SQL Developer para conectarse a la instancia de base de datos de RDS para Oracle que contiene los datos que va a importar. Si es necesario, cree una cuenta de usuario con los permisos necesarios. 

**nota**  
Si la base de datos de origen es una instancia de Amazon RDS, puede omitir este paso. Para realizar la exportación utilizará la cuenta de usuario maestra de Amazon RDS.

Los siguientes comandos crean un usuario y le conceden los permisos necesarios.

```
CREATE USER export_user IDENTIFIED BY my-password;
GRANT CREATE SESSION, CREATE TABLE, CREATE DATABASE LINK TO export_user;
ALTER USER export_user QUOTA 100M ON users;
GRANT READ, WRITE ON DIRECTORY data_pump_dir TO export_user;
GRANT SELECT_CATALOG_ROLE TO export_user;
GRANT EXECUTE ON DBMS_DATAPUMP TO export_user;
GRANT EXECUTE ON DBMS_FILE_TRANSFER TO export_user;
```

**nota**  
Especifique una contraseña distinta de la que se muestra aquí como práctica recomendada de seguridad.

### Paso 3: Cree un archivo de volcado utilizando DBMS\$1DATAPUMP
<a name="Oracle.Procedural.Importing.DataPumpDBLink.Step3"></a>

Para crear el archivo de volcado, haga lo siguiente:

1. Utilice SQL\$1Plus u Oracle SQL Developer para conectarse a la instancia de Oracle de origen con un usuario administrativo o con el usuario creado en el paso 2. Si la base de datos de origen es una instancia de base de datos de Amazon RDS for Oracle, conéctese con el usuario maestro de Amazon RDS.

1. Cree un archivo de volcado mediante la utilidad Oracle Data Pump.

   El siguiente script crea un archivo de volcado denominado *sample.dmp* en el directorio `DATA_PUMP_DIR`. 

   ```
   DECLARE
     v_hdnl NUMBER;
   BEGIN
     v_hdnl := DBMS_DATAPUMP.OPEN( 
       operation => 'EXPORT' , 
       job_mode  => 'SCHEMA' , 
       job_name  => null
     );
     DBMS_DATAPUMP.ADD_FILE( 
       handle    => v_hdnl, 
       filename  => 'sample.dmp'    , 
       directory => 'DATA_PUMP_DIR' , 
       filetype  => dbms_datapump.ku$_file_type_dump_file
     );
     DBMS_DATAPUMP.ADD_FILE( 
       handle    => v_hdnl           , 
       filename  => 'sample_exp.log' , 
       directory => 'DATA_PUMP_DIR'  , 
       filetype  => dbms_datapump.ku$_file_type_log_file
     );
     DBMS_DATAPUMP.METADATA_FILTER(
       v_hdnl              ,
       'SCHEMA_EXPR'       ,
       'IN (''SCHEMA_1'')'
     );
     DBMS_DATAPUMP.METADATA_FILTER(
       v_hdnl,
       'EXCLUDE_NAME_EXPR',
       q'[IN (SELECT NAME FROM sys.OBJ$ 
              WHERE TYPE# IN (66,67,74,79,59,62,46) 
              AND OWNER# IN 
                (SELECT USER# FROM SYS.USER$ 
                 WHERE NAME IN ('RDSADMIN','SYS','SYSTEM','RDS_DATAGUARD','RDSSEC')
                )
             )
       ]',
       'PROCOBJ'
     );
     DBMS_DATAPUMP.START_JOB(v_hdnl);
   END;
   /
   ```
**nota**  
Los trabajos de Data Pump se inician de modo asincrónico. Para obtener información sobre la supervisión de un trabajo de Data Pump, consulte [Monitoring job status](https://docs.oracle.com/en/database/oracle/oracle-database/19/sutil/oracle-data-pump-overview.html#GUID-E365D74E-12CD-495C-BA23-5A55F679C7E7) (Supervisión del estado del trabajo) en la documentación de Oracle. Puede ver el contenido del registro de exportación mediante el procedimiento `rdsadmin.rds_file_util.read_text_file`. Para obtener más información, consulte [Lectura de archivos de un directorio de instancia de base de datos](Appendix.Oracle.CommonDBATasks.Misc.md#Appendix.Oracle.CommonDBATasks.ReadingFiles).

### Paso 4: Crear un enlace de base de datos a la instancia de base de datos de destino
<a name="Oracle.Procedural.Importing.DataPumpDBLink.Step4"></a>

Cree un enlace de base de datos entre la instancia de base de datos de origen y la instancia de base de datos de destino. La instancia local de Oracle debe tener conectividad de red con la instancia de base de datos para poder crear un enlace de base de datos y transferir el archivo de volcado de exportación. 

Para realizar este paso, conéctese con la misma cuenta de usuario del paso anterior.

Si está creando un enlace de base de datos entre dos instancias de bases de datos dentro de la misma VPC o en VPC interconectadas, debe existir una ruta válida entre las dos instancias de bases de datos. El grupo de seguridad de cada instancia de base de datos debe permitir la entrada y la salida desde la otra instancia de base de datos. Las reglas de entrada y salida del grupo de seguridad pueden referirse a grupos de seguridad de la misma VPC o de una VPC interconectada. Para obtener más información, consulte [Ajuste de los enlaces de base de datos para usarlos con las instancias de bases de datos de una VPC](Appendix.Oracle.CommonDBATasks.DBLinks.md). 

El siguiente comando crea un enlace de base de datos denominado `to_rds` que se conecta con un usuario maestro de Amazon RDS de la instancia de base de datos de destino. 

```
CREATE DATABASE LINK to_rds 
  CONNECT TO <master_user_account> IDENTIFIED BY <password>
  USING '(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=<dns or ip address of remote db>)
         (PORT=<listener port>))(CONNECT_DATA=(SID=<remote SID>)))';
```

### Paso 5: Copie el archivo de volcado exportado a la instancia de base de datos de destino utilizando DBMS\$1FILE\$1TRANSFER
<a name="Oracle.Procedural.Importing.DataPumpDBLink.Step5"></a>

Utilice `DBMS_FILE_TRANSFER` para copiar el archivo de volcado desde la instancia de base de datos de origen en la instancia de base de datos de destino. El siguiente script copia un archivo de volcado denominado sample.dmp desde la instancia de origen en un enlace de la base de datos de destino denominado *to\$1rds* (creado en el paso anterior). 

```
BEGIN
  DBMS_FILE_TRANSFER.PUT_FILE(
    source_directory_object       => 'DATA_PUMP_DIR',
    source_file_name              => 'sample.dmp',
    destination_directory_object  => 'DATA_PUMP_DIR',
    destination_file_name         => 'sample_copied.dmp', 
    destination_database          => 'to_rds' );
END;
/
```

### Paso 6: Importe el archivo de datos a la instancia de base de datos de destino utilizando DBMS\$1DATAPUMP
<a name="Oracle.Procedural.Importing.DataPumpDBLink.Step6"></a>

Utilice Oracle Data Pump para importar el esquema en la instancia de base de datos. Pueden ser necesarias opciones adicionales, como METADATA\$1REMAP. 

 Para llevar a cabo la importación, conéctese a la instancia de base de datos con la cuenta de usuario maestro de Amazon RDS. 

```
DECLARE
  v_hdnl NUMBER;
BEGIN
  v_hdnl := DBMS_DATAPUMP.OPEN( 
    operation => 'IMPORT', 
    job_mode  => 'SCHEMA', 
    job_name  => null);
  DBMS_DATAPUMP.ADD_FILE( 
    handle    => v_hdnl, 
    filename  => 'sample_copied.dmp',
    directory => 'DATA_PUMP_DIR', 
    filetype  => dbms_datapump.ku$_file_type_dump_file );
  DBMS_DATAPUMP.ADD_FILE( 
    handle    => v_hdnl, 
    filename  => 'sample_imp.log', 
    directory => 'DATA_PUMP_DIR', 
    filetype  => dbms_datapump.ku$_file_type_log_file);
  DBMS_DATAPUMP.METADATA_FILTER(v_hdnl,'SCHEMA_EXPR','IN (''SCHEMA_1'')');
  DBMS_DATAPUMP.START_JOB(v_hdnl);
END;
/
```

**nota**  
Los trabajos de Data Pump se inician de modo asincrónico. Para obtener información sobre el monitoreo de un trabajo de Data Pump, consulte [Monitorización del estado del trabajo](https://docs.oracle.com/en/database/oracle/oracle-database/19/sutil/oracle-data-pump-overview.html#GUID-E365D74E-12CD-495C-BA23-5A55F679C7E7) en la documentación de Oracle. Puede ver el contenido del registro de importación mediante el procedimiento `rdsadmin.rds_file_util.read_text_file`. Para obtener más información, consulte [Lectura de archivos de un directorio de instancia de base de datos](Appendix.Oracle.CommonDBATasks.Misc.md#Appendix.Oracle.CommonDBATasks.ReadingFiles).

Puede verificar la importación de datos viendo las tablas de usuario en la instancia de base de datos. Por ejemplo, la siguiente consulta devuelve el número de tablas de `schema_1`. 

```
SELECT COUNT(*) FROM DBA_TABLES WHERE OWNER='SCHEMA_1'; 
```

### Paso 7: Limpieza
<a name="Oracle.Procedural.Importing.DataPumpDBLink.Step7"></a>

Después de importar los datos, puede eliminar los archivos que no desee conservar. Puede enumerar los archivos en `DATA_PUMP_DIR` mediante el siguiente comando.

```
SELECT * FROM TABLE(rdsadmin.rds_file_util.listdir('DATA_PUMP_DIR')) ORDER BY MTIME;
```

Para eliminar archivos de `DATA_PUMP_DIR` que ya no sean necesarios, utilice el siguiente comando. 

```
EXEC UTL_FILE.FREMOVE('DATA_PUMP_DIR','<file name>');
```

Por ejemplo, el siguiente comando elimina el archivo denominado `"sample_copied.dmp"`. 

```
EXEC UTL_FILE.FREMOVE('DATA_PUMP_DIR','sample_copied.dmp'); 
```

# Importación mediante exportación/importación de Oracle
<a name="Oracle.Procedural.Importing.ExportImport"></a>

Puede considerar las utilidades de exportación/importación de Oracle para migraciones en las siguientes condiciones:
+ El tamaño de los datos es pequeño.
+ Los tipos de datos, como binario flotante y doble, no son necesarios.

El proceso de importación crea los objetos de esquema necesarios. Por lo tanto, no es necesario ejecutar un script para crear los objetos de antemano. 

La forma más sencilla de instalar las utilidades de exportación e importación de Oracle es instalar Oracle Instant Client. Para descargar el software, vaya a [https://www.oracle.com/database/technologies/instant-client.html](https://www.oracle.com/database/technologies/instant-client.html). Para obtener documentación, consulte [Instant Client for SQL\$1Loader, Export and Import](https://docs.oracle.com/en/database/oracle/oracle-database/21/sutil/instant-client-sql-loader-export-import.html#GUID-FF1B6F75-09F5-4911-9317-9776FAD15965) (Instant Client para SQL\$1Loader, exportación e importación) en el manual de *Oracle Database Utilities*.

**Para exportar tablas y, a continuación, importarlas**

1. Exporte las tablas de la base de datos de origen con el comando `exp`.

   El siguiente comando exporta las tablas denominadas `tab1`, `tab2` y `tab3`. El archivo de volcado es `exp_file.dmp`.

   ```
   exp cust_dba@ORCL FILE=exp_file.dmp TABLES=(tab1,tab2,tab3) LOG=exp_file.log
   ```

   La exportación crea un archivo de volcado binario que contiene el esquema y los datos de las tablas especificadas. 

1. Importe el esquema y los datos a una base de datos de destino utilizando el comando `imp`.

   El siguiente comando importa las tablas `tab1`, `tab2` y`tab3` desde el archivo de volcado `exp_file.dmp`.

   ```
   imp cust_dba@targetdb FROMUSER=cust_schema TOUSER=cust_schema \  
   TABLES=(tab1,tab2,tab3) FILE=exp_file.dmp LOG=imp_file.log
   ```

La utilidad de exportación e importación tiene otras variaciones que podrían adaptarse mejor a sus necesidades. Consulte la documentación de Oracle para obtener toda la información.

# Importación mediante Oracle SQL\$1Loader
<a name="Oracle.Procedural.Importing.SQLLoader"></a>

Puede considerar Oracle SQL\$1Loader para bases de datos de gran tamaño que contienen un número limitado de objetos. Dado que el proceso de exportación desde una base de datos de origen y de carga en una base de datos de destino es específico del esquema, el siguiente ejemplo crea los objetos del esquema de ejemplo, exporta desde un origen y luego carga los datos en una base de datos de destino. 

La forma más sencilla de instalar Oracle SQL\$1Loader es instalar Oracle Instant Client. Para descargar el software, vaya a [https://www.oracle.com/database/technologies/instant-client.html](https://www.oracle.com/database/technologies/instant-client.html). Para obtener documentación, consulte [Instant Client for SQL\$1Loader, Export and Import](https://docs.oracle.com/en/database/oracle/oracle-database/21/sutil/instant-client-sql-loader-export-import.html#GUID-FF1B6F75-09F5-4911-9317-9776FAD15965) (Instant Client para SQL\$1Loader, exportación e importación) en el manual de *Oracle Database Utilities*.

**Para importar datos mediante Oracle SQL\$1Loader**

1. Cree una tabla de origen de ejemplo con la siguiente instrucción SQL.

   ```
   CREATE TABLE customer_0 TABLESPACE users 
      AS (SELECT ROWNUM id, o.* 
          FROM   ALL_OBJECTS o, ALL_OBJECTS x 
          WHERE  ROWNUM <= 1000000);
   ```

1. En la instancia de base de datos de RDS para Oracle de destino, cree una tabla de destino para cargar los datos. La cláusula `WHERE 1=2` garantiza que copia la estructura de `ALL_OBJECTS`, pero no copia ninguna de las filas.

   ```
   CREATE TABLE customer_1 TABLESPACE users 
     AS (SELECT 0 AS ID, OWNER, OBJECT_NAME, CREATED
         FROM   ALL_OBJECTS
         WHERE  1=2);
   ```

1. Exporte los datos desde la base de datos de origen a un archivo de texto. En el siguiente ejemplo se utiliza SQL\$1Plus. Para sus datos, es probable que tenga que generar una script que realice la exportación de todos los objetos de la base de datos. 

   ```
   ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY/MM/DD HH24:MI:SS'
   
   SET LINESIZE 800 HEADING OFF FEEDBACK OFF ARRAY 5000 PAGESIZE 0
   SPOOL customer_0.out 
   SET MARKUP HTML PREFORMAT ON
   SET COLSEP ','
   
   SELECT id, owner, object_name, created 
   FROM   customer_0; 
   
   SPOOL OFF
   ```

1. Cree un archivo de control para describir los datos. Es posible que tenga que escribir un script para realizar este paso. 

   ```
   cat << EOF > sqlldr_1.ctl 
   load data
   infile customer_0.out
   into table customer_1
   APPEND
   fields terminated by "," optionally enclosed by '"'
   (
     id           POSITION(01:10)    INTEGER EXTERNAL,
     owner        POSITION(12:41)    CHAR,
     object_name  POSITION(43:72)    CHAR,
     created      POSITION(74:92)    date "YYYY/MM/DD HH24:MI:SS"
   )
   ```

   Si es necesario, copie los archivos generados por el código anterior en un área de ensayo, como una instancia Amazon EC2.

1. Importe los datos usando SQL\$1Loader con el nombre de usuario y la contraseña apropiados para la base de datos de destino. 

   ```
   sqlldr cust_dba@targetdb CONTROL=sqlldr_1.ctl BINDSIZE=10485760 READSIZE=10485760 ROWS=1000 
   ```

# Migración de vistas materializadas de Oracle
<a name="Oracle.Procedural.Importing.Materialized"></a>

Para migrar grandes conjuntos de datos de forma eficaz, puede utilizar la replicación de vistas materializadas de Oracle. Con la replicación, puede mantener las tablas de destino sincronizadas con las tablas de origen. Por lo tanto, puede cambiar a Amazon RDS más adelante, si es necesario. 

Antes de migrar mediante vistas materializadas, asegúrese de cumplir los siguientes requisitos:
+ Configure el acceso desde la base de datos de destino a la base de datos de origen En el siguiente ejemplo, se han activado reglas de acceso en la base de datos de origen para permitir que la base de datos de destino de RDS para Oracle se conecte a la de origen a través de SQL\$1Net. 
+ Cree un enlace de base de datos desde la instancia de base de datos de RDS para Oracle a la base de datos de origen.

**Para migrar datos mediante vistas materializadas**

1. Cree una cuenta de usuario en las instancias de origen y de destino de RDS para Oracle que pueda autenticarse con la misma contraseña. El siguiente ejemplo crea una usuario denominado `dblink_user`.

   ```
   CREATE USER dblink_user IDENTIFIED BY my-password
     DEFAULT TABLESPACE users
     TEMPORARY TABLESPACE temp;
      
   GRANT CREATE SESSION TO dblink_user;
   
   GRANT SELECT ANY TABLE TO dblink_user;
   
   GRANT SELECT ANY DICTIONARY TO dblink_user;
   ```
**nota**  
Especifique una contraseña distinta de la que se muestra aquí como práctica recomendada de seguridad.

1. Cree un enlace de base de datos desde la instancia de destino de RDS para Oracle a la instancia de origen utilizando el usuario recién creado.

   ```
   CREATE DATABASE LINK remote_site
     CONNECT TO dblink_user IDENTIFIED BY my-password
     USING '(description=(address=(protocol=tcp) (host=my-host) 
       (port=my-listener-port)) (connect_data=(sid=my-source-db-sid)))';
   ```
**nota**  
Especifique una contraseña distinta de la que se muestra aquí como práctica recomendada de seguridad.

1. Pruebe el enlace:

   ```
   SELECT * FROM V$INSTANCE@remote_site;
   ```

1. Cree una tabla de ejemplo con la clave principal y el log de vistas materializadas en la instancia de origen.

   ```
   CREATE TABLE customer_0 TABLESPACE users 
     AS (SELECT ROWNUM id, o.* 
         FROM   ALL_OBJECTS o, ALL_OBJECTS x
         WHERE  ROWNUM <= 1000000);
   
   ALTER TABLE customer_0 ADD CONSTRAINT pk_customer_0 PRIMARY KEY (id) USING INDEX;
   
   CREATE MATERIALIZED VIEW LOG ON customer_0;
   ```

1. En la instancia de base de datos de RDS para Oracle, cree una vista materializada. 

   ```
   CREATE MATERIALIZED VIEW customer_0 
     BUILD IMMEDIATE REFRESH FAST 
     AS (SELECT * 
         FROM   cust_dba.customer_0@remote_site);
   ```

1. En la instancia de base de datos de RDS para Oracle, actualice la vista materializada.

   ```
   EXEC DBMS_MVIEW.REFRESH('CUSTOMER_0', 'f');
   ```

1. Arrastre la vista materializada e incluya la cláusula `PRESERVE TABLE` para retener la tabla del contenedor de la vista materializada y su contenido.

   ```
   DROP MATERIALIZED VIEW customer_0 PRESERVE TABLE;
   ```

   La tabla conservada tiene el mismo nombre que la vista materializada eliminada.

# Trabajo con las réplicas de lectura para Amazon RDS para Oracle
<a name="oracle-read-replicas"></a>

Para configurar la replicación entre instancias de base de datos de Oracle, puede crear bases de datos de réplica. Para obtener información general sobre las réplicas de lectura de Amazon RDS, consulte [Información general de las réplicas de lectura de Amazon RDSDescripción general](USER_ReadRepl.md#USER_ReadRepl.Overview). Para obtener un resumen de las diferencias entre las réplicas de Oracle y otros motores de base de datos, consulte [Diferencias entre réplicas de lectura para motores de base de datos](USER_ReadRepl.Overview.Differences.md).

**Topics**
+ [Descripción general de las réplicas de RDS para Oracle](oracle-read-replicas.overview.md)
+ [Requisitos y consideraciones sobre réplicas de RDS para Oracle](oracle-read-replicas.limitations.md)
+ [Preparación para crear una réplica de Oracle](oracle-read-replicas.Configuration.md)
+ [Creación de una réplica de RDS para Oracle en modo montado](oracle-read-replicas.creating-in-mounted-mode.md)
+ [Modificación del modo de réplica de RDS para Oracle](oracle-read-replicas.changing-replica-mode.md)
+ [Trabajo con copias de seguridad de réplicas de RDS para Oracle](oracle-read-replicas.backups.md)
+ [Realización de una conmutación de Oracle Data Guard](oracle-replication-switchover.md)
+ [Solución de problemas de réplicas de RDS para Oracle](oracle-read-replicas.troubleshooting.md)
+ [Compresión de transporte de registro de cambios con RDS para Oracle](oracle-read-replicas.redo-transport-compression.md)

# Descripción general de las réplicas de RDS para Oracle
<a name="oracle-read-replicas.overview"></a>

La base de datos de una *réplica de Oracle* es una copia física de la base de datos principal. Una réplica de Oracle en modo de solo lectura se denomina *réplica de lectura*. Una réplica de Oracle en modo montado se denomina *réplica montada*. La base de datos de Oracle no permite escribir en una réplica, pero puede promocionar una réplica para hacerla de escritura. La réplica de lectura promocionada tiene los datos replicados hasta el momento en el que se hizo la solicitud para promocionarla.

En el siguiente video, se proporciona información general útil de la recuperación de desastres de RDS para Oracle. 

[![AWS Videos](http://img.youtube.com/vi/-XpzhIevwVg/0.jpg)](http://www.youtube.com/watch?v=-XpzhIevwVg)


Para obtener más información, consulte las publicaciones del blog [Recuperación de desastres administrada con copias de seguridad automatizadas de Amazon RDS for Oracle entre regiones - Parte 1 ](https://aws.amazon.com/blogs/database/managed-disaster-recovery-with-amazon-rds-for-oracle-cross-region-automated-backups-part-1/) y [Recuperación de desastres administrada con copias de seguridad automatizadas de Amazon RDS for Oracle entre regiones - Parte 2](https://aws.amazon.com/blogs/database/part-2-managed-disaster-recovery-with-amazon-rds-for-oracle-xrab/).

**Topics**
+ [Réplicas de solo lectura y montadas](#oracle-read-replicas.overview.modes)
+ [Leer réplicas de CDB](#oracle-read-replicas.overview.data-guard)
+ [Retención de registros REDO archivados](#oracle-read-replicas.overview.log-retention)
+ [Interrupciones durante la replicación de Oracle](#oracle-read-replicas.overview.outages)

## Réplicas de solo lectura y montadas
<a name="oracle-read-replicas.overview.modes"></a>

Al crear o modificar una réplica de Oracle, puede colocarla en cualquiera de los modos siguientes:

Solo lectura  
Esta es la opción predeterminada. Active Data Guard transmite y aplica los cambios de la base de datos de origen a todas las bases de datos de réplica de lectura.  
Puede crear hasta cinco réplicas de lectura a partir de una instancia de base de datos de origen. Para obtener información general acerca de las réplicas de lectura que se aplican a todos los motores de base de datos, consulte [Trabajo con réplicas de lectura de instancias de base de datos](USER_ReadRepl.md). Para obtener información acerca de Oracle Data Guard, consulte la sección sobre [administración y conceptos de Oracle Data Guard](https://docs.oracle.com/en/database/oracle/oracle-database/19/sbydb/oracle-data-guard-concepts.html#GUID-F78703FB-BD74-4F20-9971-8B37ACC40A65) en la documentación de Oracle.

Montado  
En este caso, la replicación utiliza Oracle Data Guard, pero la base de datos de réplica no acepta conexiones de usuario. El uso principal de las réplicas montadas es la recuperación de desastres entre regiones.  
Una réplica montada no puede servir una carga de trabajo de solo lectura. La réplica montada elimina los archivos de registro REDO archivados después de aplicarlos, independientemente de la política de retención de registros archivados.

Puede crear una combinación de réplicas de base de datos montadas y de solo lectura para la misma instancia de base de datos de origen. Puede cambiar una réplica de solo lectura al modo montado o cambiar una réplica montada al modo de solo lectura. En cualquier caso, la base de datos Oracle conserva la configuración de retención de registros archivados.

## Leer réplicas de CDB
<a name="oracle-read-replicas.overview.data-guard"></a>

RDS para Oracle admite réplicas de lectura de Data Guard para las CDB de Oracle Database 19c y 21c, tanto en configuraciones de un solo inquilino como de varios inquilinos. Puede crear, administrar y promover réplicas de lectura en una CDB del mismo modo que en una no CDB. También se admiten réplicas montadas. Logra los siguientes beneficios:
+ Recuperación de desastres administrada, alta disponibilidad y acceso de solo lectura a las réplicas.
+ La posibilidad de crear réplicas de lectura en una Región de AWS diferente.
+ Integración con las API de réplica de lectura de RDS existentes: [CreateDBInstanceReadReplica](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstanceReadReplica.html), [PromoteReadReplica](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_PromoteReadReplica.html) y [SwitchoverReadReplica](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_SwitchoverReadReplica.html).

Para utilizar esta característica, necesita una licencia de Active Data Guard y una licencia de Oracle Database Enterprise Edition tanto para la réplica como para la instancia de base de datos principal. No hay costes adicionales relacionados con el uso de la arquitectura de CDB. Solo paga por sus instancias de base de datos. 

Para obtener más información sobre las configuraciones de un inquilino y de varios inquilinos de la arquitectura CDB, consulte [Descripción general de las CDB de RDS para Oracle](Oracle.Concepts.CDBs.md).

## Retención de registros REDO archivados
<a name="oracle-read-replicas.overview.log-retention"></a>

Si una instancia de base de datos principal no tiene réplicas de lectura entre regiones, Amazon RDS para Oracle mantiene durante un mínimo de dos horas los registros REDO en la instancia de base de datos de origen. Esto es cierto independientemente de la configuración de `archivelog retention hours` en `rdsadmin.rdsadmin_util.set_configuration`. 

RDS purga los registros de la instancia de base de datos de origen después de dos horas o cuando hayan pasado las horas de retención del registro del archivo establecidas, lo que lleve más tiempo. RDS purga los registros de la réplica de lectura después de haber pasado las horas de retención del registro del archivo establecidas solo si se han aplicado correctamente a la base de datos.

En algunos casos, es posible que una instancia de base de datos principal tenga una o más réplicas de lectura entre regiones. Si esto ocurre, Amazon RDS para Oracle mantiene los registros de transacción en la instancia de base de datos de origen hasta que se hayan transmitido y aplicado a todas las réplicas de lectura entre regiones. Para obtener información sobre `rdsadmin.rdsadmin_util.set_configuration`, consulte [Retaining archived redo logs](Appendix.Oracle.CommonDBATasks.RetainRedoLogs.md) (Retención de los registros de recuperación de cambios archivados).

## Interrupciones durante la replicación de Oracle
<a name="oracle-read-replicas.overview.outages"></a>

Cuando se crea una réplica de lectura, Amazon RDS realiza una instantánea de base de datos de la instancia de base de datos de origen y comienza la replicación. La instancia de base de datos de origen experimenta una suspensión de E/S muy breve cuando comienza la operación de instantánea de base de datos. La suspensión de E/S suele durar un segundo. Puede evitar la suspensión de E/S si la instancia de base de datos de origen es una implementación Multi-AZ, porque en ese caso la instantánea se toma de la instancia de base de datos secundaria.

La instantánea de base de datos se convierte en la réplica de Oracle. Amazon RDS establece los parámetros y permisos necesarios para la instancia de base de datos de origen y la réplica sin interrupción del servicio. Del mismo modo, si elimina una réplica, no se produce ninguna interrupción.

# Requisitos y consideraciones sobre réplicas de RDS para Oracle
<a name="oracle-read-replicas.limitations"></a>

Antes de crear una réplica de Oracle, familiarícese con los siguientes requisitos y consideraciones.

**Topics**
+ [Requisitos de versión y licencia para réplicas de RDS para Oracle](#oracle-read-replicas.limitations.versions-and-licenses)
+ [Limitaciones de grupos de opciones para réplicas de RDS para Oracle](#oracle-read-replicas.limitations.options)
+ [Consideraciones sobre copias de seguridad y restauración para réplicas de RDS para Oracle](#oracle-read-replicas.limitations.backups)
+ [Requisitos y limitaciones de replicación de RDS Custom para Oracle](#oracle-read-replicas.data-guard.requirements)
+ [Limitaciones de configuración de varios inquilinos de réplicas de RDS para Oracle](#oracle-read-replicas.limitations.multitenant)
+ [Otros aspectos para réplicas de RDS para Oracle](#oracle-read-replicas.limitations.miscellaneous)

## Requisitos de versión y licencia para réplicas de RDS para Oracle
<a name="oracle-read-replicas.limitations.versions-and-licenses"></a>

Antes de crear una réplica de RDS para Oracle, tenga en cuenta lo siguiente:
+ Si la réplica está en modo de solo lectura, asegúrese de que tiene una licencia de Active Data Guard. Si coloca la réplica en modo montado, no necesita una licencia de Active Data Guard. Solo el motor de base de datos de Oracle admite réplicas montadas.
+ Las réplicas de Oracle solo se admiten para el motor de Oracle Enterprise Edition (EE).
+ Las réplicas de Oracle que no son CDB solo son compatibles con instancias de bases de datos creadas con instancias que no son CDB y que se ejecutan en Oracle Database 19c.
+ Las réplicas de Oracle están disponibles para instancias de base de datos que se ejecutan solo en clases de instancia de base de datos con dos o más vCPU. Una instancia de base de datos de origen no puede utilizar la clase de instancia db.t3.small.
+ La versión del motor de base de datos de Oracle de la instancia de base de datos de origen y todas sus réplicas deben ser iguales. Amazon RDS actualiza las replicas inmediatamente después de actualizar la instancia de base de datos de origen, independientemente del periodo de mantenimiento de la replica. Para las actualizaciones de versiones principales de réplicas entre regiones, Amazon RDS hace automáticamente lo siguiente:
  + Genera un grupo de opciones para la versión de destino.
  + Copia todas las opciones y configuraciones de opciones del grupo de opciones original al nuevo grupo de opciones.
  + Asocia la réplica entre regiones actualizada con el nuevo grupo de opciones.

  Para obtener más información acerca de cómo actualizar la versión del motor de base de datos, consulte [Actualización del motor de base de datos de RDS para Oracle](USER_UpgradeDBInstance.Oracle.md).

## Limitaciones de grupos de opciones para réplicas de RDS para Oracle
<a name="oracle-read-replicas.limitations.options"></a>

Cuando trabaje con grupos de opciones para la réplica de RDS para Oracle, tenga en cuenta lo siguiente:
+ No puede utilizar un grupo de opciones de réplica distinto del grupo de opciones de la instancia de base de datos de origen cuando el origen y la réplica se encuentran en la misma región de AWS. 

  Las modificaciones en el grupo de opciones de origen o en la suscripción a grupos de opciones de origen se propagan a las réplicas de Oracle. Estos cambios se aplican a las réplicas inmediatamente después de su aplicación a la instancia de base de datos de origen, con independencia del periodo de mantenimiento de la réplica. Para obtener más información acerca de los grupos de opciones, consulte [Trabajo con grupos de opciones](USER_WorkingWithOptionGroups.md).
+ No puede eliminar una réplica entre regiones de RDS para Oracle desde su grupo de opciones dedicado, que se crea automáticamente para la réplica. 
+ No puede añadir el grupo de opciones dedicado para una réplica entre regiones de RDS para Oracle en una instancia de base de datos diferente. 
+ No puede agregar o quitar las opciones no replicadas de un grupo de opciones dedicado para una réplica entre regiones de RDS para Oracle, con la excepción de las siguientes opciones:
  + `NATIVE_NETWORK_ENCRYPTION`
  + `OEM`
  + `OEM_AGENT`
  + `SSL`

  Para agregar otras opciones a una réplica entre regiones de RDS para Oracle, agréguelas al grupo de opciones de la instancia de base de datos de origen. La opción también está instalada en todas las réplicas de la instancia de base de datos de origen. Para las opciones con licencia, asegúrese de que haya licencias suficientes para las réplicas.

  Al promocionar una réplica entre regiones de RDS para Oracle, la réplica promocionada se comporta igual que las otras instancias de base de datos de Oracle, incluida la administración de sus opciones. Puede promocionar una réplica de manera explícita o implícita al eliminar su instancia de base de datos de origen.

  Para obtener más información acerca de los grupos de opciones, consulte [Trabajo con grupos de opciones](USER_WorkingWithOptionGroups.md).
+ No puede agregar la opción `EFS_INTEGRATION` a las réplicas entre regiones de RDS para Oracle.

## Consideraciones sobre copias de seguridad y restauración para réplicas de RDS para Oracle
<a name="oracle-read-replicas.limitations.backups"></a>

Antes de crear una réplica de RDS para Oracle, tenga en cuenta lo siguiente:
+ Para crear instantáneas de réplicas de RDS para Oracle o activar copias de seguridad automáticas, asegúrese de configurar el período de retención de copias de seguridad manualmente. Las copias de seguridad automáticas no están activadas de forma predeterminada.
+ Cuando se restaura una copia de seguridad de réplicas, esta se restaura a la hora de la base de datos, no a la hora en que se realizó la copia de seguridad. El tiempo de base de datos se refiere a la última hora de la transacción aplicada de los datos de la copia de seguridad. La diferencia es importante, porque una réplica puede tener un retardo con respecto a la principal de minutos u horas. 

  Para encontrar la diferencia, utilice el comando `describe-db-snapshots`. Compare `snapshotDatabaseTime`, que es la hora de la base de datos de la copia de seguridad de réplicas, con `OriginalSnapshotCreateTime`, que es la última transacción aplicada en la base de datos principal.

## Requisitos y limitaciones de replicación de RDS Custom para Oracle
<a name="oracle-read-replicas.data-guard.requirements"></a>

Antes de crear una réplicas de RDS para Oracle, tenga en cuenta los siguientes requisitos y limitaciones:
+ Si la instancia de base de datos principal usa la configuración de un solo inquilino o de varios inquilinos de la arquitectura de varios inquilinos, tenga en cuenta lo siguiente:
  + Debe utilizar Oracle Database 19c o una versión posterior con la Enterprise Edition.
  + Su instancia de CDB principal debe estar en un ciclo de vida `ACTIVE`.
  + No puedes convertir una instancia principal que no sea de CDB en una instancia de CDB y convertir sus réplicas en la misma operación. En cambio, elimine las réplicas que no sean de CDB, convierta la instancia de base de datos principal en una CDB y, a continuación, cree réplicas nuevas
+ Asegúrese de que el desencadenador de inicio de sesión en una instancia de base de datos principal permita el acceso al usuario de `RDS_DATAGUARD` y a cualquier usuario cuyo valor `AUTHENTICATED_IDENTITY` sea `RDS_DATAGUARD` o `rdsdb`. Además, el desencadenador no debe establecer el esquema actual para el usuario de `RDS_DATAGUARD`.
+ Para evitar el bloqueo de conexiones desde el proceso de Data Guard Broker, no habilite las sesiones restringidas. Para obtener más información acerca de las sesiones restringidas, consulte [Activación y desactivación de sesiones restringidas](Appendix.Oracle.CommonDBATasks.RestrictedSession.md).

## Limitaciones de configuración de varios inquilinos de réplicas de RDS para Oracle
<a name="oracle-read-replicas.limitations.multitenant"></a>

Al utilizar la configuración de varios inquilinos en una réplica de RDS para Oracle, tenga en cuenta las siguientes limitaciones:
+ Puede crear, eliminar o modificar bases de datos de inquilinos solo en la instancia de DB principal. Estos cambios se propagan automáticamente a las réplicas.
+ Las bases de datos de inquilinos de un RDS para instancia principal de Oracle, fuente o réplica no se pueden crear con un juego de caracteres personalizado. Si necesita un juego de caracteres personalizado, cree las bases de datos de inquilinos antes de crear réplicas de lectura para la instancia de DB.

## Otros aspectos para réplicas de RDS para Oracle
<a name="oracle-read-replicas.limitations.miscellaneous"></a>

Antes de crear una réplica de RDS para Oracle, tenga en cuenta lo siguiente:
+ Al crear una réplica de RDS para Oracle para una instancia de base de datos que tiene volúmenes de almacenamiento adicionales, RDS configura automáticamente los volúmenes de almacenamiento adicionales en la réplica. Sin embargo, cualquier modificación posterior realizada en los volúmenes de almacenamiento de la instancia de base de datos principal no se aplica automáticamente a la réplica. 
+ Si agrega volúmenes de almacenamiento adicionales a la instancia de base de datos principal, RDS no agrega automáticamente volúmenes de almacenamiento adicionales a la réplica. Debe modificar la réplica para agregar volúmenes de almacenamiento adicionales. 
+ Si modifica la configuración de los volúmenes de almacenamiento, como el tamaño del almacenamiento y las IOPS, en la instancia de base de datos principal, RDS no modifica automáticamente los volúmenes de almacenamiento de la réplica. Debe modificar la réplica para actualizar las configuraciones de los volúmenes de almacenamiento.
+ Al administrar las ubicaciones de los archivos de datos en todos los volúmenes, tenga en cuenta que los cambios realizados en la instancia principal no se sincronizan automáticamente con las réplicas.
  + Para réplicas de solo lectura: puede usar la configuración del grupo de parámetros para controlar las ubicaciones predeterminadas de los archivos o moverlos manualmente una vez creados.
  + Para las réplicas montadas: los cambios manuales en las ubicaciones de los archivos de datos de la base de datos principal requieren volver a crear la réplica montada para reflejar esos cambios. Para evitarlo, recomendamos utilizar la configuración del grupo de parámetros para administrar las ubicaciones de archivos predeterminadas.
+ Si su instancia de base de datos es un origen para una o más réplicas entre regiones, la base de datos de origen retiene sus archivos de registros REDO hasta que se apliquen en todas las réplicas entre regiones. Los registros REDO archivados podrían provocar un incremento del consumo del almacenamiento.
+ Para evitar interrumpir la automatización de RDS, los desencadenadores del sistema deben permitir a usuarios específicos iniciar sesión en la base de datos principal y de réplica. [Los desencadenadores del sistema](https://docs.oracle.com/en/database/oracle/oracle-database/19/lnpls/plsql-triggers.html#GUID-FE23FCE8-DE36-41EF-80A9-6B4B49E80E5B) incluyen desencadenadores de DDL, inicio de sesión y función de base de datos. Le recomendamos que agregue código a los desencadenadores para excluir a los usuarios enumerados en el siguiente código de ejemplo:

  ```
  -- Determine who the user is
  SELECT SYS_CONTEXT('USERENV','AUTHENTICATED_IDENTITY') INTO CURRENT_USER FROM DUAL;
  -- The following users should always be able to login to either the Primary or Replica
  IF CURRENT_USER IN ('master_user', 'SYS', 'SYSTEM', 'RDS_DATAGUARD', 'rdsdb') THEN
  RETURN;
  END IF;
  ```
+ El seguimiento de cambios de bloque es compatible con réplicas de solo lectura, pero no para réplicas montadas. Puede cambiar una réplica montada a una réplica de solo lectura y, a continuación, habilitar el seguimiento de cambios de bloque. Para obtener más información, consulte [Activación y desactivación del seguimiento de cambio de bloques](Appendix.Oracle.CommonDBATasks.BlockChangeTracking.md).
+ No puede crear una réplica de lectura de Oracle cuando la base de datos de origen administra las credenciales de usuario principal con Secrets Manager.

# Preparación para crear una réplica de Oracle
<a name="oracle-read-replicas.Configuration"></a>

Antes de empezar a utilizar la réplica, realice las siguientes tareas.

**Topics**
+ [Habilitación de copias de seguridad automáticas](#oracle-read-replicas.configuration.autobackups)
+ [Activación del modo Force Logging](#oracle-read-replicas.configuration.force-logging)
+ [Cambio de la configuración de registro](#oracle-read-replicas.configuration.logging-config)
+ [Configuración del parámetro MAX\$1STRING\$1SIZE](#oracle-read-replicas.configuration.string-size)
+ [Planificación de los recursos informáticos y de almacenamiento](#oracle-read-replicas.configuration.planning-resources)

## Habilitación de copias de seguridad automáticas
<a name="oracle-read-replicas.configuration.autobackups"></a>

Para que una instancia de base de datos pueda servir como instancia de base de datos de origen, asegúrese de habilitar las copias de seguridad automáticas en la instancia de base de datos de origen. Para obtener información sobre cómo realizar este procedimiento, consulte [Habilitar las copias de seguridad automatizadas](USER_WorkingWithAutomatedBackups.Enabling.md).

## Activación del modo Force Logging
<a name="oracle-read-replicas.configuration.force-logging"></a>

Le recomendamos que habilite el modo Force Logging. En el modo Force Logging, la base de datos Oracle escribe registros REDO incluso cuando `NOLOGGING` se utiliza con instrucciones de lenguaje de definición de datos (DDL).

**Para habilitar el modo Force Logging**

1. Inicie sesión en la base de datos Oracle mediante una herramienta de cliente como SQL Developer.

1. Active el modo Force Logging ejecutando el siguiente procedimiento. 

   ```
   exec rdsadmin.rdsadmin_util.force_logging(p_enable => true);
   ```

Para obtener más información acerca de este procedimiento, consulte [Activación del modo force logging](Appendix.Oracle.CommonDBATasks.Log.md#Appendix.Oracle.CommonDBATasks.SettingForceLogging).

## Cambio de la configuración de registro
<a name="oracle-read-replicas.configuration.logging-config"></a>

Para *n* registros REDO en línea de tamaño *m*, RDS crea automáticamente *n*\$11 registros en espera de tamaño *m* en la instancia de base de datos principal y en todas las réplicas. Siempre que cambie la configuración de registro en la principal, los cambios se propagarán automáticamente a las réplicas. 

Si cambia la configuración de registro, tenga en cuenta las directrices siguientes:
+ Recomendamos que realice dichos cambios antes de hacer que una instancia de base de datos sea el origen de las réplicas. RDS para Oracle también admite la actualización de la instancia una vez que se convierte en origen.
+ Antes de cambiar la configuración de registro en la instancia de base de datos principal, compruebe que cada réplica tenga suficiente espacio de almacenamiento para adaptarse a la nueva configuración. 

Puede modificar la configuración de registro de una instancia de base de datos mediante los procedimientos de Amazon RDS `rdsadmin.rdsadmin_util.add_logfile` y `rdsadmin.rdsadmin_util.drop_logfile`. Para obtener más información, consulte [Adición de registros REDO en línea](Appendix.Oracle.CommonDBATasks.Log.md#Appendix.Oracle.CommonDBATasks.RedoLogs) y [Eliminación de registros REDO en línea](Appendix.Oracle.CommonDBATasks.Log.md#Appendix.Oracle.CommonDBATasks.DroppingRedoLogs).

## Configuración del parámetro MAX\$1STRING\$1SIZE
<a name="oracle-read-replicas.configuration.string-size"></a>

Antes de crear una réplica de Oracle, asegúrese de que el valor del parámetro `MAX_STRING_SIZE` sea el mismo en la réplica y la instancia de base de datos de origen. Puede hacerlo asociándolas al mismo grupo de parámetros. Si tiene grupos de parámetros distintos para el origen y la réplica, puede establecer `MAX_STRING_SIZE` en el mismo valor. Para obtener más información sobre este parámetro, consulte [Activación de tipos de datos extendidos para una instancia de base de datos nueva](Oracle.Concepts.ExtendedDataTypes.md#Oracle.Concepts.ExtendedDataTypes.CreateDBInstance).

## Planificación de los recursos informáticos y de almacenamiento
<a name="oracle-read-replicas.configuration.planning-resources"></a>

Asegúrese de que la instancia de base de datos de origen y sus réplicas tengan el tamaño adecuado, en términos de informática y almacenamiento, para adaptarse a su carga operativa. Si una réplica llega a su capacidad en materia de recursos de cómputo, de red o de almacenamiento, dejará de recibir o aplicar los cambios desde su origen. Amazon RDS for Oracle no interviene para mitigar el retraso de réplica elevado entre una instancia de base de datos de origen y sus réplicas. Puede modificar los recursos de CPU y almacenamiento de una réplica independientemente de su origen y otras réplicas.

# Creación de una réplica de RDS para Oracle en modo montado
<a name="oracle-read-replicas.creating-in-mounted-mode"></a>

De forma predeterminada, las réplicas de Oracle son de solo lectura. Para crear una réplica en modo montado, utilice la consola, la AWS CLI o la API de RDS.

## Consola
<a name="oracle-read-replicas.creating-in-mounted-mode.console"></a>

**Para crear una réplica montada a partir de una instancia de base de datos de Oracle de origen**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon RDS en [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. En el panel de navegación, seleccione **Databases (Bases de datos)**.

1. Seleccione la instancia de base de datos de Oracle que desea utilizar como origen de una réplica montada.

1. En **Actions (Acciones)**, elija **Create read replica (Crear réplica de lectura)**. 

1. En **Replica mode (Modo de réplica)**, elija **Mounted (Montado)**.

1. Elija los ajustes que desee usar. En **DB instance identifier (Identificador de instancias de bases de datos)**, escriba un nombre para la réplica de lectura. Ajuste otros valores como considere necesario.

1. En **Regions (Regiones)**, elija la región donde se lanzará la réplica montada. 

1. Elija el tamaño de la instancia y el tipo de almacenamiento. Es recomendable usar la misma clase de instancia de base de datos y el mismo tipo de almacenamiento que la instancia de base de datos de origen para la réplica de lectura.

1. En **Multi-AZ deployment (Implementación Multi-AZ)**, elija **Create a standby instance (Crear una instancia en espera)** para crear una réplica en espera en otra zona de disponibilidad para permitir la conmutación por error de la réplica montada. La creación de su réplica montada como instancia de base de datos Multi-AZ es independiente de si la base de datos de origen es una instancia de base de datos Multi-AZ.

1. Elija los demás ajustes que desee usar.

1. Elija **Create replica (Crear réplica)**.

En la página **Databases (Bases de datos)**, la réplica montada tiene el rol Réplica.

## AWS CLI
<a name="oracle-read-replicas.creating-in-mounted-mode.cli"></a>

Para crear una réplica de Oracle en modo montado, establezca `--replica-mode` en `mounted` en el comando [create-db-instance-read-replica](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance-read-replica.html) de la AWS CLI.

**Example**  
Para Linux, macOS o:Unix  

```
aws rds create-db-instance-read-replica \
    --db-instance-identifier myreadreplica \
    --source-db-instance-identifier mydbinstance \
    --replica-mode mounted
```
En:Windows  

```
aws rds create-db-instance-read-replica ^
    --db-instance-identifier myreadreplica ^
    --source-db-instance-identifier mydbinstance ^
    --replica-mode mounted
```

Para cambiar una réplica de solo lectura a un estado montado, establezca `--replica-mode` en `mounted` en el comando [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) de la AWS CLI. Para colocar una réplica montada en modo de solo lectura, establezca `--replica-mode` en `open-read-only`. 

## API de RDS
<a name="oracle-read-replicas.creating-in-mounted-mode.api"></a>

Para crear una réplica de Oracle en modo montado, especifique `ReplicaMode=mounted` en la operación de API de RDS [CreateDBInstanceReadReplica](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstanceReadReplica.html).

# Modificación del modo de réplica de RDS para Oracle
<a name="oracle-read-replicas.changing-replica-mode"></a>

Para cambiar el modo de réplica de una réplica existente, utilice la consola, la AWS CLI o la API de RDS. Al cambiar al modo montado, la réplica desconecta todas las conexiones activas. Cuando cambie al modo de solo lectura, Amazon RDS inicializa Active Data Guard.

La operación de cambio puede tardar unos minutos. Durante la operación, el estado de la instancia de base de datos cambia a **modifying (modificando)**. Para obtener más información acerca de los cambios de estado, consulte [Visualización del estado de la instancia de base de datos de Amazon RDS ](accessing-monitoring.md#Overview.DBInstance.Status).

## Consola
<a name="oracle-read-replicas.changing-replica-mode.console"></a>

**Para cambiar el modo de réplica de una réplica de Oracle de montada a de sólo lectura**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon RDS en [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. En el panel de navegación, seleccione **Databases (Bases de datos)**.

1. Elija la base de datos de réplica montada

1. Elija **Modify**.

1. En **Replica mode (Modo de réplica)**, elija **Read-only (Solo lectura)**.

1. Elija los demás ajustes que desee usar.

1. Elija **Continue**.

1. En **Programación de modificaciones**, elija **Aplicar inmediatamente**.

1. Elija **Modificar la instancia de base de datos**.

## AWS CLI
<a name="oracle-read-replicas.changing-replica-mode.cli"></a>

Para cambiar una réplica de lectura al modo montado, establezca `--replica-mode` en `mounted` en el comando [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) de la AWS CLI. Para cambiar una réplica montada al modo de solo lectura, establezca `--replica-mode` en `open-read-only`.

**Example**  
Para Linux, macOS o:Unix  

```
aws rds modify-db-instance \
    --db-instance-identifier myreadreplica \
    --replica-mode mode
```
En:Windows  

```
aws rds modify-db-instance ^
    --db-instance-identifier myreadreplica ^
    --replica-mode mode
```

## API de RDS
<a name="oracle-read-replicas.changing-replica-mode.api"></a>

Para cambiar una réplica de solo lectura al modo montado, establezca `ReplicaMode=mounted` en [ModifyDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstanceReadReplica.html). Para cambiar una réplica montada al modo de solo lectura, establezca `ReplicaMode=read-only`.

# Trabajo con copias de seguridad de réplicas de RDS para Oracle
<a name="oracle-read-replicas.backups"></a>

Puede crear y restaurar copias de seguridad de una réplica de RDS para Oracle. Se admiten tanto copias de seguridad automáticas como instantáneas manuales. Para obtener más información, consulte [Copia de seguridad, restauración y exportación de datos](CHAP_CommonTasks.BackupRestore.md). En las siguientes secciones se describen las diferencias clave entre la administración de copias de seguridad de una réplica principal y una de RDS para Oracle.

## Activación de copias de seguridad de réplicas de RDS para Oracle
<a name="oracle-read-replicas.backups.turning-on"></a>

Una réplica de Oracle no tiene activadas las copias de seguridad automáticas de forma predeterminada. Para activar las copias de seguridad automáticas, establezca el periodo de retención de copia de seguridad en un valor positivo distinto de cero.

### Consola
<a name="USER_WorkingWithAutomatedBackups.Enabling.CON"></a>

**Para habilitar las copias de seguridad automatizadas inmediatamente**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon RDS en [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. En el panel de navegación, elija **Bases de datos** y, a continuación, elija la instancia de base de datos o el clúster de base de datos Multi-AZ que desea modificar.

1. Elija **Modificar**.

1. En **Periodo de retención de copia de seguridad**, elija un valor positivo distinto de cero, por ejemplo, tres días.

1. Elija **Continue**.

1. Seleccione **Apply immediately (Aplicar inmediatamente)**.

1. Elija **Modificar la instancia de base de datos** o **Modificar clúster** para guardar los cambios y habilitar las copias de seguridad automáticas.

### AWS CLI
<a name="USER_WorkingWithAutomatedBackups.Enabling.CLI"></a>

Para habilitar las copias de seguridad automáticas, utilice el comando [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) o [modify-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster.html) de AWS CLI.

Incluya los siguientes parámetros:
+ `--db-instance-identifier` (o `--db-cluster-identifier` para un clúster de base de datos Multi-AZ)
+ `--backup-retention-period`
+ `--apply-immediately` o `--no-apply-immediately`

En este ejemplo, habilitaremos las copias de seguridad automatizadas estableciendo el periodo de retención de copia de seguridad en 3 días. Los cambios se aplican inmediatamente.

**Example**  
Para Linux, macOS o Unix:  

```
aws rds modify-db-instance \
    --db-instance-identifier my_db_instance  \
    --backup-retention-period 3 \
    --apply-immediately
```
Para Windows:  

```
aws rds modify-db-instance ^
    --db-instance-identifier my_db_instance  ^
    --backup-retention-period 3 ^
    --apply-immediately
```

### API de RDS
<a name="USER_WorkingWithAutomatedBackups.Enabling.API"></a>

Para habilitar las copias de seguridad automáticas, utilice la operación [ModifyDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) o [ModifyDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBCluster.html) de la API de RDS con los siguientes parámetros obligatorios:
+ `DBInstanceIdentifier` o `DBClusterIdentifier`
+ `BackupRetentionPeriod`

## Restauración de una copia de seguridad de réplicas de RDS para Oracle
<a name="oracle-read-replicas.backups.restoring"></a>

Puede restaurar una copia de seguridad de réplicas de Oracle del mismo modo que puede restaurar una copia de seguridad de la instancia principal. Para obtener más información, consulte los siguientes temas:
+ [Restauración a una instancia de base de datos](USER_RestoreFromSnapshot.md)
+ [Restauración de una instancia de base de datos a un momento especificado para Amazon RDS](USER_PIT.md)

La consideración principal a la hora de restaurar una copia de seguridad de réplicas es determinar el punto en el tiempo en el que se va a restaurar. El tiempo de base de datos se refiere a la última hora de la transacción aplicada de los datos de la copia de seguridad. Cuando restaura una copia de seguridad de réplicas, se restaura la hora de la base de datos, no la hora en que se realizó la copia de seguridad. La diferencia es importante, porque una réplica de RDS para Oracle puede tener un retardo con respecto a la principal de minutos u horas. Por lo tanto, la hora de la base de datos de una copia de seguridad de réplicas y, por lo tanto, el punto en el tiempo en el que se restaura, puede ser mucho más anterior a la hora de creación

Para encontrar la diferencia entre la hora de la base de datos y la hora de creación, utilice el comando `describe-db-snapshots`. Compare `SnapshotDatabaseTime`, que es la hora de la base de datos de la copia de seguridad de réplicas, con `OriginalSnapshotCreateTime`, que es la última transacción aplicada en la base de datos principal. El siguiente ejemplo muestra la diferencia entre las dos horas:

```
aws rds describe-db-snapshots \
    --db-instance-identifier my-oracle-replica
    --db-snapshot-identifier my-replica-snapshot

{
    "DBSnapshots": [
        {
            "DBSnapshotIdentifier": "my-replica-snapshot",
            "DBInstanceIdentifier": "my-oracle-replica", 
            "SnapshotDatabaseTime": "2022-07-26T17:49:44Z",
            ...
            "OriginalSnapshotCreateTime": "2021-07-26T19:49:44Z"
        }
    ]
}
```

# Realización de una conmutación de Oracle Data Guard
<a name="oracle-replication-switchover"></a>

Una *conmutación* es una inversión de roles entre una base de datos principal y una base de datos en espera. Durante una conmutación, la base de datos principal original pasa a un rol en espera, mientras que la base de datos en espera original pasa al rol primerio.

En un entorno de Oracle Data Guard, una base de datos principal admite una o más bases de datos en espera. Puede realizar una transición de roles administrada y basada en conmutaciones de una base de datos principal a una base de datos en espera. Una *conmutación* es una inversión de roles entre una base de datos principal y una base de datos en espera. Durante una conmutación, la base de datos principal original pasa a un rol en espera, mientras que la base de datos en espera original pasa al rol primerio.

**Topics**
+ [Información general sobre conmutaciones de Oracle Data Guard](#oracle-replication-switchover.overview)
+ [Requisitos para la transición de Oracle Data Guard](oracle-switchover.preparing.md)
+ [Inicio de la conmutación de Oracle Data Guard](oracle-switchover.initiating.md)
+ [Monitorización de la conmutación de Oracle Data Guard](oracle-switchover.monitoring.md)

## Información general sobre conmutaciones de Oracle Data Guard
<a name="oracle-replication-switchover.overview"></a>

Amazon RDS admite una transición de roles totalmente administrada y basada en conmutaciones para las réplicas de Oracle Database. Solo puede iniciar una conmutación a una base de datos secundaria que esté montada o abierta en modo de solo lectura. 

Las réplicas pueden residir en Regiones de AWS distintas o en diferentes zonas de disponibilidad (AZ) de una sola región. Se admiten todas las Regiones de AWS. 

![\[Transición de una instancia en espera para convertirla en la instancia de base de datos principal\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/read-replica-switchover.png)


Una transición difiere de una promoción de réplicas de lectura. En una transición, las instancias de base de datos de origen y réplica cambian de rol. En una promoción, una réplica de lectura se convierte en una instancia de base de datos de origen, pero la instancia de base de datos de origen no se convierte en una réplica. Para obtener más información, consulte [Promoción de una réplica de lectura para convertirla en una instancia de base de datos independiente](USER_ReadRepl.Promote.md).

**Topics**
+ [Beneficios de las conmutaciones de Oracle Data Guard](#oracle-replication-switchover.overview.benefits)
+ [Versiones de Oracle Database compatibles](#oracle-replication-switchover.overview.engine-support)
+ [Coste de las conmutaciones de Oracle Data Guard](#oracle-replication-switchover.overview.cost)
+ [Cómo funcionan las conmutaciones de Oracle Data Guard](#oracle-replication-switchover.overview.how-it-works)

### Beneficios de las conmutaciones de Oracle Data Guard
<a name="oracle-replication-switchover.overview.benefits"></a>

Al igual que para las réplicas de lectura de RDS para Oracle, una conmutación administrada se basa en Oracle Data Guard. La operación está diseñada para tener cero pérdida de datos. Amazon RDS automatiza los siguientes aspectos de la conmutación:
+ Invierte los roles de la base de datos principal y la base de datos en espera especificada, poniendo la nueva base de datos en espera en el mismo estado (montada o de solo lectura) que la base de datos en espera original
+ Garantiza la coherencia de datos
+ Mantiene la configuración de replicación después de la transición
+ Admite reversiones repetidas, lo que permite que la nueva base de datos en espera vuelva a su rol principal original

### Versiones de Oracle Database compatibles
<a name="oracle-replication-switchover.overview.engine-support"></a>

La transición de Oracle Data Guard se admite en Oracle Database 19c y en versiones posteriores.

### Coste de las conmutaciones de Oracle Data Guard
<a name="oracle-replication-switchover.overview.cost"></a>

La característica de la conmutación de Oracle Data Guard no implica costes adicionales. Oracle Database Enterprise Edition es compatible con bases de datos en espera en modo montado. Para abrir bases de datos en espera en modo de solo lectura, necesita la opción Oracle Active Data Guard.

### Cómo funcionan las conmutaciones de Oracle Data Guard
<a name="oracle-replication-switchover.overview.how-it-works"></a>

La conmutación de Oracle Data Guard es una operación totalmente administrada. Para iniciar la conmutación de una base de datos en espera, ejecute el comando de la CLI `switchover-read-replica`. A continuación, Amazon RDS modifica los roles principal y en espera en la configuración de replicación.

El *modo de espera original* y *principal original* son los roles que existen antes de la conmutación. El *modo de espera original* y *principal nuevo* son los roles que existen después de la conmutación. Una *réplica de espectador* es una base de datos de réplica que funciona como base de datos en espera en el entorno de Oracle Data Guard, pero no cambia de rol.

**Topics**
+ [Fases de las conmutaciones de Oracle Data Guard](#oracle-replication-switchover.overview.how-it-works.during-switchover)
+ [Después de la conmutación de Oracle Data Guard](#oracle-replication-switchover.overview.how-it-works.after-switchover)

#### Fases de las conmutaciones de Oracle Data Guard
<a name="oracle-replication-switchover.overview.how-it-works.during-switchover"></a>

Para realizar la conmutación, Amazon RDS debe seguir estos pasos:

1. Bloquee nuevas transacciones en la base de datos principal original. Durante la conmutación, Amazon RDS interrumpe la replicación de todas las bases de datos de la configuración de Oracle Data Guard. Durante la conmutación, la base de datos principal original no puede procesar solicitudes de escritura.

1. Envíe las transacciones no aplicadas a la base de datos en espera original y aplíquelas.

1. Reinicie la nueva base de datos en espera en modo de solo lectura o montado. El modo depende del estado abierto de la base de datos en espera original antes de la conmutación.

1. Abra la nueva base de datos principal en el modo lectura/escritura.

#### Después de la conmutación de Oracle Data Guard
<a name="oracle-replication-switchover.overview.how-it-works.after-switchover"></a>

Amazon RDS cambia los roles de la base de datos principal y en espera. Usted es responsable de volver a conectar la aplicación y de realizar cualquier otra configuración que desee.

**Topics**
+ [Criterios correctos](#oracle-replication-switchover.overview.how-it-works.after-switchover.success)
+ [Conexión a la nueva base de datos principal](#oracle-replication-switchover.overview.how-it-works.after-switchover.connection)
+ [Configuración de la nueva base de datos principal](#oracle-replication-switchover.overview.how-it-works.after-switchover.success.configuration)

##### Criterios correctos
<a name="oracle-replication-switchover.overview.how-it-works.after-switchover.success"></a>

La conmutación de Oracle Data Guard se realiza correctamente cuando la base de datos en espera original hace lo siguiente:
+ Transiciones a su rol como nueva base de datos principal
+ Completa su reconfiguración

Para limitar el tiempo de inactividad, la nueva base de datos principal se activa lo antes posible. Dado que Amazon RDS configura las réplicas de espectadores de forma asíncrona, estas réplicas pueden activarse después de la base de datos principal original.

##### Conexión a la nueva base de datos principal
<a name="oracle-replication-switchover.overview.how-it-works.after-switchover.connection"></a>

Amazon RDS no propagará las conexiones de base de datos actuales a la nueva base de datos principal tras el cambio. Una vez completada la conmutación de Oracle Data Guard, vuelva a conectar la aplicación a la nueva base de datos principal.

##### Configuración de la nueva base de datos principal
<a name="oracle-replication-switchover.overview.how-it-works.after-switchover.success.configuration"></a>

Para realizar una conmutación a la nueva base de datos principal, Amazon RDS cambia el modo de la base de datos en espera original a abierta. El cambio de rol es el único cambio en la base de datos. Amazon RDS no configura características como la replicación Multi-AZ.

Si realiza una conmutación a una réplica entre regiones con diferentes opciones, la nueva base de datos principal conserva sus propias opciones. Amazon RDS no migra las opciones de la base de datos principal original. Si la base de datos principal original tenía opciones como SSL, NNE, OEM y OEM\$1AGENT, Amazon RDS no las propaga a la nueva base de datos principal.

# Requisitos para la transición de Oracle Data Guard
<a name="oracle-switchover.preparing"></a>

Antes de iniciar la conmutación de Oracle Data Guard, asegúrese de que el entorno de replicación cumple los siguientes requisitos:
+ La base de datos en espera original está montada o abierta en modo de solo lectura.
+ Las copias de seguridad automáticas están activadas en la base de datos en espera original
+ La base de datos principal original y la base de datos en espera original están en estado `available`.
+ La base de datos principal original y la base de datos en espera original no tienen acciones de mantenimiento pendientes en alguno de los estados siguientes: `required`, `next window` o `in progress`. Las acciones en estos estados bloquean la transición. Para obtener información sobre cómo comprobar el estado de las actualizaciones de mantenimiento pendientes, consulte [Visualización de actualizaciones de mantenimiento pendientes](USER_UpgradeDBInstance.Maintenance.md#USER_UpgradeDBInstance.Maintenance.Viewing).

  Las acciones de mantenimiento pendientes en el estado `available` no bloquean la transición. RDS para Oracle publica con frecuencia actualizaciones del sistema operativo (SO) en el estado `available`. Estas actualizaciones pendientes del sistema operativo no bloquearán la transición a menos que las programe para el siguiente periodo de mantenimiento, que las colocará en el estado `next window`.
**nota**  
Si desea aplazar una acción de mantenimiento programada para poder ejecutar una transición, elija **Acciones** y, a continuación, **Aplazar la actualización** en la consola de RDS. También puede evitar que se bloquee una transición aplicando una acción de mantenimiento pendiente o desplazando el periodo de mantenimiento a un intervalo anterior a la transición. Para obtener más información, consulte el artículo de re:Post [Cómo eliminar los elementos de mantenimiento pendientes de RDS](https://repost.aws/questions/QUV3dBjmVVRnmVV1pAlzjx1w/how-to-remove-rds-pending-maintenance-item).
+ La base de datos en espera original está en estado de replicación.
+ No está intentando iniciar una conmutación cuando la base de datos principal o la base de datos en espera se encuentran actualmente en un ciclo de vida de conmutación. Si una base de datos de réplicas se está reconfigurando después de una conmutación, Amazon RDS le impide iniciar otra conmutación.
**nota**  
Una *réplica de espectador* es una réplica en la configuración de Oracle Data Guard que no es el destino de la conmutación. Las réplicas de espectador pueden estar en cualquier estado durante la conmutación.
+ La base de datos en espera original tiene una configuración que es lo más parecida a la base de datos principal original. Supongamos un escenario en el que las bases de datos principal y en espera originales tienen diferentes opciones. Una vez completada la conmutación, Amazon RDS no vuelve a configurar automáticamente la nueva base de datos principal para que tenga las mismas opciones que la base de datos principal original.
+ Configure la implementación multi-AZ que desee antes de iniciar la conmutación. Amazon RDS no administra Multi-AZ como parte de la conmutación. La implementación multi-AZ permanecerá inalterada.

  Supongamos que db\$1maz es la base de datos principal en una implementación multi-AZ y que db\$1saz es una réplica single-AZ. Usted inicia una conmutación de de db\$1maz a db\$1saz. Posteriormente, db\$1maz es una base de datos de réplica multi-AZ y db\$1saz es una base de datos principal single-AZ. La nueva base de datos principal ahora no está protegida por una implementación multi-AZ.
+ Como preparación para una conmutación entre regiones, la base de datos principal no usa el mismo grupo de opciones que una instancia de base de datos fuera de la configuración de replicación. Para que la conmutación entre regiones se realice correctamente, la base de datos principal actual y sus réplicas de lectura deben ser las únicas instancias de base de datos que utilicen el grupo de opciones de la base de datos principal actual. De lo contrario, Amazon RDS impedirá la conmutación.

# Inicio de la conmutación de Oracle Data Guard
<a name="oracle-switchover.initiating"></a>

Puede cambiar una réplica de lectura de RDS para Oracle al rol principal y la anterior instancia de base de datos principal a un rol de réplica.

## Consola
<a name="USER_ReadRepl.Promote.Console"></a>

**Para cambiar una réplica de lectura de Oracle al rol de la base de datos principal**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon RDS en [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. En la consola de Amazon RDS, seleccione **Databases (Bases de datos)**.

   Aparece el panel **Databases (Bases de datos)**. Cada réplica de lectura muestra **Replica (Réplica)** en la columna **Role (Rol)**.

1. Elija la réplica de lectura que desea cambiar al rol principal.

1. En **Actions** (Acciones), elija **Switch over replica** (Réplica de conmutación).

1. Elija **I acknowledge** (Confirmo). A continuación, elija **Switch over replica** (Réplica de conmutación).

1. En la página **Databases** (Bases de datos), supervise el progreso de la conmutación.  
![\[Supervise el progreso de la conmutación de Oracle Data Guard.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/oracle-switchover-progress.png)

   Cuando se complete la conmutación, el rol del objetivo de la conmutación cambiará de **Replica** (Réplica) a **Primary** (Principal).  
![\[Las bases de datos de origen y de réplica cambian de rol.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/oracle-switchover-complete.png)

## AWS CLI
<a name="USER_ReadRepl.Promote.CLI"></a>

Para cambiar una réplica de Oracle al rol de la base de datos principal, utilice el comando [https://docs.aws.amazon.com/cli/latest/reference/rds/switchover-read-replica.html](https://docs.aws.amazon.com/cli/latest/reference/rds/switchover-read-replica.html) de la AWS CLI. Los siguientes ejemplos hacen que la réplica de Oracle se llame *replica-to-be-made-primary* en la nueva base de datos principal.

**Example**  
Para Linux, macOS o:Unix  

```
aws rds switchover-read-replica \
    --db-instance-identifier replica-to-be-made-primary
```
En:Windows  

```
aws rds switchover-read-replica ^
    --db-instance-identifier replica-to-be-made-primary
```

## API de RDS
<a name="USER_ReadRepl.Promote.API"></a>

Para cambiar una réplica de Oracle al rol de base de datos principal, llame a la operación [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_SwitchoverReadReplica.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_SwitchoverReadReplica.html) de la API de Amazon RDS con el parámetro requerido `DBInstanceIdentifier`. Este parámetro especifica el nombre de la réplica de Oracle que desea que asuma el rol de base de datos principal.

# Monitorización de la conmutación de Oracle Data Guard
<a name="oracle-switchover.monitoring"></a>

Para comprobar el estado de las instancias, utilice el comando `describe-db-instances` de AWS CLI. El siguiente comando comprueba el estado de la instancia de base de datos *orcl2*. Esta base de datos era una base de datos en espera antes de la conmutación, pero es la nueva base de datos principaldespués de la conmutación.

```
aws rds describe-db-instances \
    --db-instance-identifier orcl2
```

Para confirmar que la conmutación se ha completado correctamente, consulte `V$DATABASE.OPEN_MODE`. Compruebe que el valor de la nueva base de datos principal sea `READ WRITE`.

```
SELECT OPEN_MODE FROM V$DATABASE;
```

Para buscar eventos relacionados con la conmutación, utilice el comando `describe-events` de AWS CLI. El siguiente ejemplo busca eventos en la instancia *orcl2*.

```
aws rds describe-events \
    --source-identifier orcl2 \
    --source-type db-instance
```

# Solución de problemas de réplicas de RDS para Oracle
<a name="oracle-read-replicas.troubleshooting"></a>

En esta sección se describen los posibles problemas y soluciones de replicación.

**Topics**
+ [Supervisión del retardo de replicación de Oracle](#oracle-read-replicas.troubleshooting.lag)
+ [Solución de problemas de error de replicación después de agregar o modificar desencadenadores](#oracle-read-replicas.troubleshooting.triggers)

## Supervisión del retardo de replicación de Oracle
<a name="oracle-read-replicas.troubleshooting.lag"></a>

Para supervisar el retraso de replicación en Amazon CloudWatch, consulte la métrica `ReplicaLag` de Amazon RDS. Para obtener información sobre el retardo de replicación, consulte [Monitoreo de la replicación de lectura](USER_ReadRepl.Monitoring.md) y [Métricas de Amazon CloudWatch para Amazon RDS](rds-metrics.md).

En un replicación de lectura, si el retraso es demasiado largo, consulte las siguientes vistas:
+ `V$ARCHIVED_LOG`: muestra qué confirmaciones se han aplicado a la réplica de lectura.
+ `V$DATAGUARD_STATS`: muestra un desglose detallado de los componentes que conforman la métrica `ReplicaLag`.
+ `V$DATAGUARD_STATUS`: muestra el resultado de registro de los procesos de replicación internos de Oracle.

Para una réplica montada, si el tiempo de retardo es demasiado largo, no puede consultar las vistas de `V$`. En su lugar, haga lo siguiente:
+ Compruebe la métrica `ReplicaLag` en CloudWatch.
+ Compruebe el archivo de registro de alertas de la réplica en la consola. Busque errores en los mensajes de recuperación. Los mensajes incluyen el número de secuencia de registro, que se puede comparar con el número de secuencia principal. Para obtener más información, consulte [Archivos de registro de base de datos de Amazon RDS para Oracle](USER_LogAccess.Concepts.Oracle.md).

## Solución de problemas de error de replicación después de agregar o modificar desencadenadores
<a name="oracle-read-replicas.troubleshooting.triggers"></a>

Si se agrega o modifica cualquier desencadenador, y si la replicación falla posteriormente, los desencadenadores podrían ser el problema. Asegúrese de que el desencadenador excluye las siguientes cuentas de usuarios que RDS requiere para la replicación:
+ Cuentas de usuario con privilegios de administrador
+ `SYS`
+ `SYSTEM`
+ `RDS_DATAGUARD`
+ `rdsdb`

Para obtener más información, consulte [Otros aspectos para réplicas de RDS para Oracle](oracle-read-replicas.limitations.md#oracle-read-replicas.limitations.miscellaneous).

# Compresión de transporte de registro de cambios con RDS para Oracle
<a name="oracle-read-replicas.redo-transport-compression"></a>

Utilice compresión de transporte de registro de cambios de RDS para Oracle a fin de mejorar el rendimiento de la replicación entre la instancia de base de datos principal y las réplicas en espera. Esto resulta especialmente útil en entornos con un ancho de banda de la red limitado o conexiones de alta latencia.

## Obtención de una licencia para compresión de transporte de registro de cambios
<a name="oracle-read-replicas.redo-transport-compression.license"></a>

La compresión de transporte de registro de cambios forma parte de la opción de [compresión avanzada de Oracle](//www.oracle.com/database/advanced-compression/). Para utilizar la compresión de transporte de registro de cambios, necesita una licencia válida para la opción de compresión avanzada de Oracle. Para obtener información de licencias, contacte con el representante de Oracle.

## Configuración de la compresión de transporte de registro de cambios
<a name="oracle-read-replicas.redo-transport-compression.config"></a>

Para configurar la compresión de transporte de registro de cambios, puede utilizar el parámetro `rds.replica.redo_compression`. Este parámetro está disponible para las versiones 19c y 21c de Oracle.

El parámetro `rds.replica.redo_compression` acepta los siguientes valores:
+ `DISABLE`: valor predeterminado que desactiva la compresión de transporte de registro de cambios.
+ `ENABLE`: valor que permite rehacer la compresión de transporte de registro de cambios mediante el algoritmo predeterminado [ZLIB](https://zlib.net/).
+ `ZLIB`: valor que permite de forma explícita la compresión de transporte de registro de cambios mediante el algoritmo ZLIB, que proporciona buenos índices de compresión.
+ `LZO`: valor que permite de forma explícita la compresión de transporte de registro de cambios mediante el algoritmo [LZO](https://www.oberhumer.com/opensource/lzo/), que optimiza la velocidad de compresión, especialmente durante la descompresión.

## Consideraciones sobre el rendimiento de la compresión de transporte de registro de cambios
<a name="oracle-read-replicas.redo-transport-compression.performance"></a>

Las operaciones de compresión y descompresión consumen recursos de CPU en instancias principales y en espera. Si utiliza la compresión de transporte de registro de cambios, tenga en cuenta el uso de los recursos de la instancia y las condiciones de la red.

## Temas relacionados con la compresión de transporte de registro de cambios
<a name="oracle-read-replicas.redo-transport-compression.related"></a>

Para obtener más información sobre la configuración de la compresión de transporte de registro de cambios, consulte los siguientes recursos:
+ [Grupos de parámetros de base de datos para instancias de Amazon RDS](USER_WorkingWithDBInstanceParamGroups.md)
+ [RedoCompression](https://docs.oracle.com/en/database/oracle/oracle-database/19/dgbkr/oracle-data-guard-broker-properties.html#GUID-5E6DDFD0-6196-48EB-94AF-21A1AFBB7DE1) en las notas de la versión 19c de Oracle Database

# Adición de opciones a instancias de base de datos de Oracle
<a name="Appendix.Oracle.Options"></a>

En Amazon RDS, una  opción es una característica adicional. A continuación, puede encontrar una descripción de las opciones que puede agregar a Amazon RDS que ejecutan el motor de base de datos de Oracle.

**Topics**
+ [Información general sobre las opciones de Oracle DB](Appendix.Oracle.Options.overview.md)
+ [Integración de Amazon S3](oracle-s3-integration.md)
+ [Oracle Application Express](Appendix.Oracle.Options.APEX.md)
+ [Integración de Amazon EFS](oracle-efs-integration.md)
+ [Máquina virtual Oracle Java](oracle-options-java.md)
+ [Oracle Enterprise Manager](Oracle.Options.OEM.md)
+ [Oracle Label Security](Oracle.Options.OLS.md)
+ [Oracle Locator](Oracle.Options.Locator.md)
+ [Oracle Native Network Encryption](Appendix.Oracle.Options.NetworkEncryption.md)
+ [Oracle OLAP](Oracle.Options.OLAP.md)
+ [Capa de conexión segura de Oracle](Appendix.Oracle.Options.SSL.md)
+ [Oracle Spatial](Oracle.Options.Spatial.md)
+ [Oracle SQLT](Oracle.Options.SQLT.md)
+ [Oracle Statspack](Appendix.Oracle.Options.Statspack.md)
+ [Zona horaria Oracle](Appendix.Oracle.Options.Timezone.md)
+ [Actualización automática del archivo de zona horaria de Oracle](Appendix.Oracle.Options.Timezone-file-autoupgrade.md)
+ [Cifrado de datos transparente de Oracle](Appendix.Oracle.Options.AdvSecurity.md)
+ [Oracle UTL\$1MAIL](Oracle.Options.UTLMAIL.md)
+ [Oracle XML DB](Appendix.Oracle.Options.XMLDB.md)

# Información general sobre las opciones de Oracle DB
<a name="Appendix.Oracle.Options.overview"></a>

Para habilitar opciones para su base de datos Oracle, puede añadirlas a un grupo de opciones y, a continuación, asociar el grupo de opciones a la instancia de base de datos. Para obtener más información, consulte [Trabajo con grupos de opciones](USER_WorkingWithOptionGroups.md).

**Topics**
+ [Resumen de las opciones de Oracle Database](#Appendix.Oracle.Options.summary)
+ [Opciones admitidas para diferentes ediciones](#Appendix.Oracle.Options.editions)
+ [Requisitos de memoria para opciones específicas](#Appendix.Oracle.Options.memory)

## Resumen de las opciones de Oracle Database
<a name="Appendix.Oracle.Options.summary"></a>

Puede agregar las siguientes opciones para instancias de base de datos de Oracle.


****  

| Opción | ID de la opción | 
| --- | --- | 
|  [Integración de Amazon S3](oracle-s3-integration.md)  |  `S3_INTEGRATION`  | 
|  [Oracle Application Express](Appendix.Oracle.Options.APEX.md)  |  `APEX` `APEX-DEV`  | 
|  [Oracle Enterprise Manager](Oracle.Options.OEM.md)  |  `OEM` `OEM_AGENT`  | 
|  [Máquina virtual Oracle Java](oracle-options-java.md)  |  `JVM`  | 
|  [Oracle Label Security](Oracle.Options.OLS.md)  |  `OLS`  | 
|  [Oracle Locator](Oracle.Options.Locator.md)  |  `LOCATOR`  | 
|  [Oracle Native Network Encryption](Appendix.Oracle.Options.NetworkEncryption.md)  |  `NATIVE_NETWORK_ENCRYPTION`  | 
|  [Oracle OLAP](Oracle.Options.OLAP.md)  |  `OLAP`  | 
|  [Capa de conexión segura de Oracle](Appendix.Oracle.Options.SSL.md)  |  `SSL`  | 
|  [Oracle Spatial](Oracle.Options.Spatial.md)  |  `SPATIAL`  | 
|  [Oracle SQLT](Oracle.Options.SQLT.md)  |  `SQLT`  | 
|  [Oracle Statspack](Appendix.Oracle.Options.Statspack.md)  |  `STATSPACK`  | 
|  [Zona horaria Oracle](Appendix.Oracle.Options.Timezone.md)  |  `Timezone`  | 
|  [Actualización automática del archivo de zona horaria de Oracle](Appendix.Oracle.Options.Timezone-file-autoupgrade.md)  |  `TIMEZONE_FILE_AUTOUPGRADE`  | 
|  [Cifrado de datos transparente de Oracle](Appendix.Oracle.Options.AdvSecurity.md)  |  `TDE`  | 
|  [Oracle UTL\$1MAIL](Oracle.Options.UTLMAIL.md)  |  `UTL_MAIL`  | 
|  [Oracle XML DB](Appendix.Oracle.Options.XMLDB.md)  |  `XMLDB`  | 

## Opciones admitidas para diferentes ediciones
<a name="Appendix.Oracle.Options.editions"></a>

RDS para Oracle le impide agregar opciones a una edición si no se admiten. Para averiguar qué opciones de RDS se admiten en diferentes ediciones de Oracle Database, utilice el comando`aws rds describe-option-group-options`. En el siguiente ejemplo se enumeran las opciones admitidas para Oracle Database 19c Enterprise Edition.

```
aws rds describe-option-group-options \
    --engine-name oracle-ee \
    --major-engine-version 19
```

Para obtener más información, consulte [describe-option-group-options](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-option-group-options.html) en la *Referencia de los comandos de la CLI de AWS*.

## Requisitos de memoria para opciones específicas
<a name="Appendix.Oracle.Options.memory"></a>

Algunas opciones necesitan memoria adicional para ejecutarse en la instancia de base de datos. Por ejemplo, Oracle Enterprise Manager Database Control utiliza unos 300 MB de RAM. Si activa esta opción para una instancia de base de datos pequeña, puede encontrar problemas de desempeño debido a restricciones de memoria. Puede ajustar los parámetros de Oracle de manera que la base de datos requiera menos RAM. También puede escalar a una instancia de base de datos mayor tamaño. 

# Integración de Amazon S3
<a name="oracle-s3-integration"></a>

Puede transferir archivos entre una instancia de RDS para Oracle BD y un bucket de Amazon S3. Puede usar la integración de Amazon S3 con características de Oracle Batabase como Oracle Data Pump. Por ejemplo, puede descargar archivos de Data Pump desde Amazon S3 en su instancia de base de datos de RDS para Oracle. Para obtener más información, consulte [Importación de datos a Oracle en Amazon RDS](Oracle.Procedural.Importing.md).

**nota**  
Su instancia de base de datos y el bucket de Amazon S3 deben estar en la misma Región de AWS.

**Topics**
+ [Configuración de permisos IAM para la integración de RDS para Oracle con Amazon S3](oracle-s3-integration.preparing.md)
+ [Adición de la opción de integración con Amazon S3](oracle-s3-integration.preparing.option-group.md)
+ [Transferencia de archivos entre Amazon RDS para Oracle y un bucket de Amazon S3](oracle-s3-integration.using.md)
+ [Solución de problemas de la integración de Amazon S3](#oracle-s3-integration.troubleshooting)
+ [Eliminación de la opción de integración con Amazon S3](oracle-s3-integration.removing.md)

# Configuración de permisos IAM para la integración de RDS para Oracle con Amazon S3
<a name="oracle-s3-integration.preparing"></a>

Para que RDS para Oracle se integre con Amazon S3, su instancia de base de datos debe tener acceso a un bucket Amazon S3. La Amazon VPC utilizada por la instancia de base de datos no necesita ofrecer acceso a los puntos de enlace de Amazon S3.

RDS para Oracle admite la transferencia de archivos entre una instancia de base de datos en una cuenta y un bucket de Amazon S3 en una cuenta diferente. En los casos en que se requieren pasos adicionales, se indican en las siguientes secciones.

**Topics**
+ [Paso 1: Crear una política de IAM para su rol de Amazon RDS](#oracle-s3-integration.preparing.policy)
+ [Paso 2: (Opcional) Crear una política de IAM para su bucket de Amazon S3](#oracle-s3-integration.preparing.policy-bucket)
+ [Paso 3: Crear un rol de IAM para la instancia de base de datos y asociar la política](#oracle-s3-integration.preparing.role)
+ [Paso 4: Asocie su rol de IAM a su instancia de base de datos de RDS para Oracle](#oracle-s3-integration.preparing.instance)

## Paso 1: Crear una política de IAM para su rol de Amazon RDS
<a name="oracle-s3-integration.preparing.policy"></a>

En este paso, cree una política AWS Identity and Access Management (IAM) con los permisos necesarios para transferir archivos entre el bucket de Amazon S3 a la instancia de base de datos de RDS. En este paso, también se asume que ya ha creado un bucket de S3.

Antes de crear la política, anote la siguiente información:
+ El nombre de recurso de Amazon (ARN) del bucket
+ El ARN para su clave de AWS KMS, si el bucket utiliza el cifrado SSE-KMS o SSE-S3
**nota**  
Una instancia de base de datos de RDS para Oracle no puede acceder a los buckets de Amazon S3 cifrados con SSE-C.

Para obtener más información, consulta [Protección de los datos con el cifrado de servidor](https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html) en la *Guía del usuario de Amazon Simple Storage Service*.

### Consola
<a name="oracle-s3-integration.preparing.policy.console"></a>

**Para crear una política de IAM que permita a Amazon RDS acceder a un bucket de Amazon S3**

1. Abra la [Management Console de IAM](https://console.aws.amazon.com/iam/home?#home).

1. En **Access management (Administración de acceso)**, seleccione **Policies (Políticas)**.

1. Seleccione **Crear política**.

1. En la pestaña **Visual editor (Editor visual)**, seleccione **Choose a service (Elegir un servicio)** y, a continuación, **S3**.

1. En **Actions (Acciones)**, seleccione **Expand all (Expandir todo)**y, a continuación, elija los permisos de bucket y los permisos de objeto necesarios para transferir archivos de un bucket Amazon S3 a Amazon RDS. Por ejemplo, haga lo siguiente:
   + Expanda **List (Lista)**y, a continuación, seleccione **ListBucket**.
   + Expanda **Read (Lectura)**y, a continuación, seleccione **GetObject**.
   + Expanda **Escritura** y, a continuación, seleccione **PutObject**, **DeleteObject**, **AbortMultipartUpload** y **ListMultipartUploadParts**. Los permisos de carga multiparte son necesarios al cargar archivos grandes (100 MB o más) en Amazon S3.
   + Expanda **Permissions management (Administración de permisos)**y, a continuación, seleccione **PutObjectAcl**. Este permiso es necesario si planea cargar archivos en un bucket propiedad de otra cuenta y esta cuenta necesita un control total del contenido del bucket.

   Los *permisos de objeto* son permisos para operaciones de objeto en Amazon S3. Debe concederlos para los objetos de un bucket, y no para el bucket en sí. Para más información, consulte [Permisos para operaciones con objetos](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-objects).

1. Elija **Recursos** y, a continuación, haga lo siguiente:

   1. Elija **Específico**.

   1. En el **bucket**, seleccione **Agregar ARN**. Introduzca el ARN de su bucket. El nombre del bucket se rellena automáticamente. A continuación, elija **Add (Añadir)**.

   1. Si se muestra el recurso del **objeto**, elija **Agregar ARN** para añadir recursos manualmente o elija **Cualquiera**.
**nota**  
Puede establecer en **Amazon Resource Name (ARN) (Nombre de recurso de Amazon [ARN])** un valor de ARN más específico y que así Amazon RDS solo tenga acceso a archivos o carpetas determinados de un bucket de Amazon S3. Para obtener más información acerca del modo de definir una política de acceso en Amazon S3, consulte [Administración de permisos de acceso para los recursos de Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html).

1. (Opcional) Elija **Add additional permissions (Agregar permisos adicionales)** para agregar recursos a la política. Por ejemplo, haga lo siguiente:

   1. Si el bucket está cifrado con una clave KMS personalizada, seleccione **KMS** para el servicio. 

   1. En **Acciones manuales**, seleccione lo siguiente:
      + **Encrypt**
      + **Volver a cifrar desde** y **Volver a cifrar a**
      + **Decrypt**
      + **DescribeKey**
      + **GenerateDataKey**

   1. En **Recursos**, elija **Específico**.

   1. En la **clave**, seleccione **Agregar ARN**. Introduzca el ARN de su clave personalizada como recurso y luego elija **Añadir**.

      Para obtener más información, consulte [Protección de datos con el cifrado en el servidor mediante claves de KMS almacenadas en AWS Key Management Service (SSE-KMS)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html) en la *guía del usuario de Amazon Simple Storage Service*.

   1. Si desea que Amazon RDS acceda a otros buckets, agregue los ARN de estos buckets. Opcionalmente, también puede conceder acceso a todos los buckets y objetos de Amazon S3.

1. Elija **Next: Tags (Siguiente: Etiquetas)** y, a continuación, **Next: Review (Siguiente: Revisar)**.

1. En **Name (Nombre)**, escriba un nombre para la política de IAM, por ejemplo, `rds-s3-integration-policy`. Utilizará este nombre al crear un rol de IAM y asociarlo a la instancia de base de datos. También puede añadir una descripción opcional en **Description (Descripción)**.

1. Elija **Create Policy (Crear política)**.

### AWS CLI
<a name="oracle-s3-integration.preparing.policy.CLI"></a>

Cree una política de AWS Identity and Access Management (IAM) que conceda a Amazon RDS acceso a un bucket de Amazon S3. Después de crear la política, apunte el ARN de esta. Necesita el ARN para un paso posterior.

Incluya las acciones adecuadas en la política en función del tipo de acceso necesario:
+ `GetObject`: se requiere para transferir archivos desde un bucket de Amazon S3 a Amazon RDS.
+ `ListBucket`: se requiere para transferir archivos desde un bucket de Amazon S3 a Amazon RDS.
+ `PutObject`: se requiere para transferir archivos desde Amazon RDS a un bucket de Amazon S3.
+ `AbortMultipartUpload`: se requiere para cargas multiparte cuando se transfieren archivos grandes (100 MB o más) desde Amazon RDS a un bucket de Amazon S3.
+ `ListMultipartUploadParts`: se requiere para cargas multiparte cuando se transfieren archivos grandes (100 MB o más) desde Amazon RDS a un bucket de Amazon S3.

El siguiente comando de la AWS CLI crea una política de IAM denominada `rds-s3-integration-policy` con estas opciones. Otorga acceso a un bucket denominado `amzn-s3-demo-bucket`.

**Example**  
Para Linux, macOS o Unix:  

```
aws iam create-policy \
   --policy-name rds-s3-integration-policy \
   --policy-document '{
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "s3integration",
         "Action": [
           "s3:GetObject",
           "s3:ListBucket",
           "s3:PutObject",
           "s3:AbortMultipartUpload",
           "s3:ListMultipartUploadParts"
         ],
         "Effect": "Allow",
         "Resource": [
           "arn:aws:s3:::amzn-s3-demo-bucket", 
           "arn:aws:s3:::amzn-s3-demo-bucket/*"
         ]
       }
     ]
   }'
```
En el ejemplo siguiente se incluyen permisos para claves KMS personalizadas.  

```
aws iam create-policy \
   --policy-name rds-s3-integration-policy \
   --policy-document '{
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "s3integration",
         "Action": [
           "s3:GetObject",
           "s3:ListBucket",
           "s3:PutObject",
           "kms:Decrypt",
           "kms:Encrypt",
           "kms:ReEncrypt*",
           "kms:GenerateDataKey",
           "kms:DescribeKey",
         ],
         "Effect": "Allow",
         "Resource": [
           "arn:aws:s3:::amzn-s3-demo-bucket", 
           "arn:aws:s3:::amzn-s3-demo-bucket/*",
           "arn:aws:kms:::your-kms-arn"
         ]
       }
     ]
   }'
```
Para Windows:  

```
aws iam create-policy ^
   --policy-name rds-s3-integration-policy ^
   --policy-document '{
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "s3integration",
         "Action": [
           "s3:GetObject",
           "s3:ListBucket",
           "s3:PutObject",
           "s3:AbortMultipartUpload",
           "s3:ListMultipartUploadParts"
         ],
         "Effect": "Allow",
         "Resource": [
           "arn:aws:s3:::amzn-s3-demo-bucket", 
           "arn:aws:s3:::amzn-s3-demo-bucket/*"
         ]
       }
     ]
   }'
```
En el ejemplo siguiente se incluyen permisos para claves KMS personalizadas.  

```
aws iam create-policy ^
   --policy-name rds-s3-integration-policy ^
   --policy-document '{
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "s3integration",
         "Action": [
           "s3:GetObject",
           "s3:ListBucket",
           "s3:PutObject",
           "kms:Decrypt",
           "kms:Encrypt",
           "kms:ReEncrypt",
           "kms:GenerateDataKey",
           "kms:DescribeKey",
         ],
         "Effect": "Allow",
         "Resource": [
           "arn:aws:s3:::amzn-s3-demo-bucket", 
           "arn:aws:s3:::amzn-s3-demo-bucket/*",
           "arn:aws:kms:::your-kms-arn"
         ]
       }
     ]
   }'
```

## Paso 2: (Opcional) Crear una política de IAM para su bucket de Amazon S3
<a name="oracle-s3-integration.preparing.policy-bucket"></a>

Este paso solo es necesario en las siguientes condiciones:
+ Tiene previsto cargar archivos en un bucket de Amazon S3 desde una cuenta (cuenta A) y acceder a ellos desde otra cuenta (cuenta B).
+ La cuenta A es la propietaria del bucket.
+ La cuenta B necesita un control total de los objetos cargados en el bucket.

Si las condiciones anteriores no le atañen, vaya a [Paso 3: Crear un rol de IAM para la instancia de base de datos y asociar la política](#oracle-s3-integration.preparing.role).

Para crear la política del bucket, asegúrese de que dispone de lo siguiente:
+ El ID de cuenta de la cuenta A
+ El nombre de usuario de la cuenta A
+ El valor ARN para el bucket de Amazon S3 en la cuenta B

### Consola
<a name="oracle-s3-integration.preparing.policy-bucket.console"></a>

**Para crear o editar una política de bucket**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. En la lista **Buckets (Buckets)**, elija el nombre del bucket para el que desea crear una política de bucket o cuya política de bucket quiera editar.

1. Elija **Permisos**.

1. En **Bucket Policy** (Política de bucket), elija **Edit** (Editar). Se abre la página Edit bucket policy (Editar política de bucket).

1. En la página **Editar política de bucket**, examine **Ejemplos de políticas** en la *Guía del usuario de Amazon S3*. Elija **Generador de políticas** para generar una política automáticamente o edite el JSON en la sección **Política**. 

   Si elige **Policy generator** (Generador de políticas), se abre el generador de políticas de AWS en una ventana nueva:

   1. En la página **Generador de políticas de AWS**, en **Seleccionar tipo de política**, elija **Política de bucket de S3**.

   1. Agregue una instrucción ingresando la información en los campos proporcionados y, a continuación, elija **Add Statement** (Agregar declaración). Repita el procedimiento para tantas instrucciones como desee agregar. Para obtener más información acerca de estos campos, consulte la [Referencia de los elementos de las políticas de JSON de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html) en la *Guía del usuario de IAM*. 
**nota**  
Para mayor comodidad, la página **Edit bucket policy** (Editar política de bucket) muestra el **Bucket ARN** (nombre de recurso de Amazon [ARN]) del bucket actual encima del campo de texto **Policy** (Política). Puede copiar este ARN para utilizarlo en las instrucciones de la página **Generador de políticas de AWS**. 

   1. Una vez que haya terminado de agregar instrucciones, elija **Generar política**.

   1. Copie el texto de la política generada, elija **Cerrar** y vuelva a la página **Editar política de bucket** en la consola de Amazon S3.

1. En el cuadro **Policy** (Política), edite la política existente o pegue la política de bucket desde el generador de políticas. Asegúrese de resolver advertencias de seguridad, errores, advertencias generales y sugerencias antes de guardar la política.

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "ExamplePermissions",
         "Effect": "Allow",
         "Principal": {
           "AWS": "arn:aws:iam::123456789012:user/account-A-user"
         },
         "Action": [
           "s3:PutObject",
           "s3:PutObjectAcl"
         ],
         "Resource": [
           "arn:aws:s3:::amzn-s3-demo-destination-bucket",
           "arn:aws:s3:::amzn-s3-demo-destination-bucket/*"
         ]
       }
     ]
   }
   ```

------

1. Elija **Save changes (Guardar cambios)**, que lo redirecciona a la página Bucket Permissions (Permisos de bucket).

## Paso 3: Crear un rol de IAM para la instancia de base de datos y asociar la política
<a name="oracle-s3-integration.preparing.role"></a>

En este paso se supone que se ha creado la política de IAM en [Paso 1: Crear una política de IAM para su rol de Amazon RDS](#oracle-s3-integration.preparing.policy). En este paso, creará un rol para la instancia de base de datos de RDS para Oracle y, a continuación, asociará la política al rol.

### Consola
<a name="oracle-s3-integration.preparing.role.console"></a>

**Para crear un rol de IAM que permita el acceso de Amazon RDS a un bucket de Amazon S3**

1. Abra la [Management Console de IAM](https://console.aws.amazon.com/iam/home?#home).

1. Seleccione **Roles** en el panel de navegación.

1. Elija **Creación de rol**.

1. Elija **Servicio de AWS**.

1. En **Casos de uso de otros servicios de:AWS**, elija **RDS** y, a continuación, **RDS: Añadir rol a la base de datos**. A continuación, elija **Siguiente**.

1. En **Buscar**, en **Políticas de permisos**, escriba el nombre de la política de IAM que ha creado en [Paso 1: Crear una política de IAM para su rol de Amazon RDS](#oracle-s3-integration.preparing.policy) y elija la política cuando aparezca en la lista. A continuación, elija **Siguiente**.

1. En **Nombre del rol**, escriba un nombre para el rol de IAM, por ejemplo, `rds-s3-integration-role`. También puede añadir una descripción opcional en **Description (Descripción)**.

1. Elija **Creación de rol**.

### AWS CLI
<a name="integration.preparing.role.CLI"></a>

**Para crear un rol de IAM y asociarle su política**

1. Cree un rol de IAM que Amazon RDS pueda asumir en su nombre para acceder a sus buckets de Amazon S3.

   Se recomienda usar las claves de contexto de condición global [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) y [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) en las relaciones de confianza basadas en recursos para limitar los permisos del servicio a un recurso específico. Esta es la forma más eficaz de protegerse contra el [problema del suplente confuso](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html).

   Puede utilizar claves de contexto de condición globales y hacer que el valor de `aws:SourceArn` contenga el ID de cuenta. En estos casos, el valor de `aws:SourceAccount` y la cuenta del valor de `aws:SourceArn` deben utilizar el mismo ID de cuenta cuando se utilizan en la misma instrucción.
   + Use `aws:SourceArn` si quiere acceso entre servicios para un único recurso.
   + Use `aws:SourceAccount` si quiere permitir que cualquier recurso de esa cuenta se asocie al uso entre servicios.

   En la relación de confianza, asegúrese de usar la clave de contexto de la condición global `aws:SourceArn` con el nombre de recurso de Amazon (ARN) completo de los recursos que acceden al rol.

   El siguiente comando AWS CLI crea el rol nombrado `rds-s3-integration-role` para este propósito.  
**Example**  

   Para Linux, macOS o Unix:

   ```
   aws iam create-role \
      --role-name rds-s3-integration-role \
      --assume-role-policy-document '{
        "Version": "2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Principal": {
               "Service": "rds.amazonaws.com"
             },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "my_account_ID",
                    "aws:SourceArn": "arn:aws:rds:Region:my_account_ID:db:dbname"
                }
            }
          }
        ]
      }'
   ```

   Para Windows:

   ```
   aws iam create-role ^
      --role-name rds-s3-integration-role ^
      --assume-role-policy-document '{
        "Version": "2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Principal": {
               "Service": "rds.amazonaws.com"
             },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "my_account_ID",
                    "aws:SourceArn": "arn:aws:rds:Region:my_account_ID:db:dbname"
                }
            }
          }
        ]
      }'
   ```

   Para obtener más información, consulte [Creación de un rol para delegar permisos a un usuario de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html) en la *Guía del usuario de IAM*.

1. Después de crear el rol, anote el ARN del rol. Necesita el ARN para un paso posterior.

1. Asocie la política que ha creado al rol que ha creado.

   El siguiente comando de la AWS CLI asocia la política al rol denominado `rds-s3-integration-role`.  
**Example**  

   Para Linux, macOS o Unix:

   ```
   aws iam attach-role-policy \
      --policy-arn your-policy-arn \
      --role-name rds-s3-integration-role
   ```

   Para Windows:

   ```
   aws iam attach-role-policy ^
      --policy-arn your-policy-arn ^
      --role-name rds-s3-integration-role
   ```

   Sustituya `your-policy-arn` por el ARN de la política anotado en el paso anterior.

## Paso 4: Asocie su rol de IAM a su instancia de base de datos de RDS para Oracle
<a name="oracle-s3-integration.preparing.instance"></a>

El último paso para configurar los permisos para la integración de Amazon S3 es asociar el rol de IAM con la instancia de base de datos. Tenga en cuenta los siguientes requisitos:
+ Debe tener acceso a un rol de IAM con la política de permisos de Amazon S3 requerida adjunta. 
+ Solo puede asociar un rol de IAM a su instancia de base de datos de RDS para Oracle cada vez.
+ Su instancia de base de datos debe tener el estado **Disponible**.

### Consola
<a name="oracle-s3-integration.preparing.instance.console"></a>

**Para asociar su rol de IAM a su instancia de base de datos de RDS para Oracle**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon RDS en [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Elija **Bases de datos** en el panel de navegación.

1. Seleccione el nombre de la instancia de base de datos de RDS para Oracle para ver sus detalles.

1. En la pestaña **Connectivity & Security** (Conectividad y seguridad), desplácese hacia abajo hasta la sección **Manage IAM roles** (Administrar roles de IAM) de la parte inferior de la página.

1. En **Añadir roles de IAM a esta instancia**, elija el rol que creó en [Paso 3: Crear un rol de IAM para la instancia de base de datos y asociar la política](#oracle-s3-integration.preparing.role).

1. En **Feature (Característica)**, elija **S3\$1INTEGRATION**.  
![\[Añadir rol S3_INTEGRATION\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/ora-s3-integration-role.png)

1. Seleccione **Add role (Añadir rol)**.

### AWS CLI
<a name="oracle-s3-integration.preparing.instance.CLI"></a>

El siguiente comando de la AWS CLI añade el rol a una instancia de base de datos de Oracle denominada `mydbinstance`.

**Example**  
Para Linux, macOS o Unix:  

```
aws rds add-role-to-db-instance \
   --db-instance-identifier mydbinstance \
   --feature-name S3_INTEGRATION \
   --role-arn your-role-arn
```
Para Windows:  

```
aws rds add-role-to-db-instance ^
   --db-instance-identifier mydbinstance ^
   --feature-name S3_INTEGRATION ^
   --role-arn your-role-arn
```

Sustituya `your-role-arn` por el ARN del rol anotado en el paso anterior. `S3_INTEGRATION` debe especificarse para la opción `--feature-name`.

# Adición de la opción de integración con Amazon S3
<a name="oracle-s3-integration.preparing.option-group"></a>

Para integrar Amazon RDS para Oracle con Amazon S3, su instancia de base de datos debe estar asociada a un grupo de opciones que incluya la opción `S3_INTEGRATION`.

## Consola
<a name="oracle-s3-integration.preparing.option-group.console"></a>

**Para configurar un grupo de opciones para la integración con Simple Storage Service (Amazon S3)**

1. Cree un nuevo grupo de opciones o identifique uno ya existente al que pueda añadir la opción `S3_INTEGRATION`.

   Para obtener información acerca de cómo crear un grupo de opciones, consulte [Creación de un grupo de opciones](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create).

1. Añada la opción `S3_INTEGRATION` al grupo de opciones.

   Para obtener información acerca de cómo añadir una opción a un grupo de opciones, consulte [Agregar una opción a un grupo de opciones](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption).

1. Cree una nueva instancia de base de datos de RDS para Oracle y asocie el grupo de opciones a ella, o bien modifique una instancia de base de datos de RDS para Oracle para asociarla al grupo de opciones.

   Para obtener información acerca de la creación de una instancia de base de datos, consulte [Creación de una instancia de base de datos de Amazon RDS](USER_CreateDBInstance.md).

   Para obtener más información acerca de la modificación de una instancia de base de datos , consulte [Modificación de una instancia de base de datos de Amazon RDS](Overview.DBInstance.Modifying.md).

## AWS CLI
<a name="oracle-s3-integration.preparing.option-group.cli"></a>

**Para configurar un grupo de opciones para la integración con Simple Storage Service (Amazon S3)**

1. Cree un nuevo grupo de opciones o identifique uno ya existente al que pueda añadir la opción `S3_INTEGRATION`.

   Para obtener información acerca de cómo crear un grupo de opciones, consulte [Creación de un grupo de opciones](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create).

1. Añada la opción `S3_INTEGRATION` al grupo de opciones.

   Por ejemplo, el siguiente comando de la AWS CLI añade la opción `S3_INTEGRATION` a un grupo de opciones denominado **myoptiongroup**.  
**Example**  

   Para Linux, macOS o:Unix

   ```
   aws rds add-option-to-option-group \
      --option-group-name myoptiongroup \
      --options OptionName=S3_INTEGRATION,OptionVersion=1.0
   ```

   En:Windows

   ```
   aws rds add-option-to-option-group ^
      --option-group-name myoptiongroup ^
      --options OptionName=S3_INTEGRATION,OptionVersion=1.0
   ```

1. Cree una nueva instancia de base de datos de RDS para Oracle y asocie el grupo de opciones a ella, o bien modifique una instancia de base de datos de RDS para Oracle para asociarla al grupo de opciones.

   Para obtener información acerca de la creación de una instancia de base de datos, consulte [Creación de una instancia de base de datos de Amazon RDS](USER_CreateDBInstance.md).

   Para obtener información acerca de cómo modificar una instancia de base de datos de RDS para Oracle, consulte [Modificación de una instancia de base de datos de Amazon RDS](Overview.DBInstance.Modifying.md).

# Transferencia de archivos entre Amazon RDS para Oracle y un bucket de Amazon S3
<a name="oracle-s3-integration.using"></a>

Para transferir archivos entre una instancia de base de datos de RDS para Oracle y un bucket Amazon S3, puede utilizar el paquete `rdsadmin_s3_tasks` de Amazon RDS. Puede comprimir archivos con GZIP al cargarlos y descomprimirlos durante la descarga.

**Topics**
+ [Requisitos y limitaciones de la transferencia de archivos](#oracle-s3-integration.using.reqs)
+ [Carga de archivos desde la instancia de base de datos de RDS para Oracle en un bucket de Amazon S3](#oracle-s3-integration.using.upload)
+ [Descarga de archivos desde un bucket de Amazon S3 en una instancia de base de datos de Oracle](#oracle-s3-integration.using.download)
+ [Monitoreo del estado de una transferencia de archivos](#oracle-s3-integration.using.task-status)

## Requisitos y limitaciones de la transferencia de archivos
<a name="oracle-s3-integration.using.reqs"></a>

Antes de transferir archivos entre una instancia de base de datos y un bucket de Amazon S3, tenga en cuenta lo siguiente:
+ El paquete `rdsadmin_s3_tasks` transfiere los archivos que se encuentran en un único directorio. No puede incluir subdirectorios en una transferencia.
+ El tamaño máximo de objeto en un bucket de Amazon S3 es de 5 TB. 
+ Las tareas creadas por `rdsadmin_s3_tasks` se ejecutan de forma asíncrona.
+ Puede cargar archivos desde el directorio de Data Pump, como `DATA_PUMP_DIR`, o desde cualquier directorio creado por el usuario. No puede cargar archivos desde un directorio que utilizan los procesos en segundo plano de Oracle, como los directorios `adump`, `bdump` o `trace`.
+ El límite de descargas es de 2000 archivos por llamada a procedimiento para `download_from_s3`. Si necesita descargar más de 2000 archivos de Amazon S3, divida la descarga en acciones independientes, con un máximo de 2000 archivos por llamada al procedimiento. 
+ Si existe un archivo en la carpeta de descargas e intenta descargar un archivo con el mismo nombre, `download_from_s3` omite la descarga. Para quitar un archivo del directorio de descarga, utilice el procedimiento PL/SQL [UTL\$1FILE.FREMOVE](https://docs.oracle.com/en/database/oracle/oracle-database/19/arpls/UTL_FILE.html#GUID-09B09C2A-2C21-4F70-BF04-D0EEA7B59CAF).

## Carga de archivos desde la instancia de base de datos de RDS para Oracle en un bucket de Amazon S3
<a name="oracle-s3-integration.using.upload"></a>

Para cargar archivos desde una instancia de base de datos en un bucket de Amazon S3, use el procedimiento `rdsadmin.rdsadmin_s3_tasks.upload_to_s3`. Por ejemplo, puede cargar archivos de copia de seguridad de Oracle Recovery Manager (RMAN) o archivos de Oracle Data Pump. Para obtener información acerca del uso de objetos, consulte [Guía del usuario de Amazon Simple Storage Service](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingObjects.html). Para obtener más información acerca de cómo realizar copias de seguridad de RMAN, consulte [Realización de tareas RMAN comunes para instancias de base de datos de Oracle](Appendix.Oracle.CommonDBATasks.RMAN.md).

El procedimiento `rdsadmin.rdsadmin_s3_tasks.upload_to_s3` tiene los siguientes parámetros.


****  

| Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | 
|  `p_bucket_name`  |  VARCHAR2  |  –  |  obligatorio  |  Nombre del bucket de Amazon S3 en el que cargar archivos.   | 
|  `p_directory_name`  |  VARCHAR2  |  –  |  obligatorio  |  Nombre del objeto de directorio de Oracle desde el que cargar archivos. El directorio puede ser cualquier objeto de directorio creado por el usuario o el directorio Data Pump, como `DATA_PUMP_DIR`. No puede cargar archivos desde un directorio que utilizan los procesos en segundo plano, como `adump`, `bdump` y `trace`.  Solo puede cargar archivos desde el directorio especificado. No puede cargar archivos en subdirectorios en el directorio especificado.   | 
|  `p_s3_prefix`  |  VARCHAR2  |  –  |  obligatorio  |  Prefijo del nombre de archivo de Amazon S3 en el que se cargan los archivos. Un prefijo vacío carga todos los archivos en el nivel superior en el bucket de Amazon S3 especificado y no añade un prefijo a los nombres de archivo.  Por ejemplo, si el prefijo es `folder_1/oradb`, los archivos se cargan en `folder_1`. En este caso, el prefijo `oradb` se añade a cada archivo.   | 
|  `p_prefix`  |  VARCHAR2  |  –  |  obligatorio  |  Prefijo del nombre de archivo con el que deben coincidir los nombres de archivo para cargarse. Un prefijo vacío carga todos los archivos en el directorio especificado.   | 
|  `p_compression_level`  |  NUMBER  |  `0`   |  opcional  |  El nivel de compresión GZIP. Los valores válidos van de `0` a:`9` [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/oracle-s3-integration.using.html)  | 
|  `p_bucket_owner_full_control`  |  VARCHAR2  |  –  |  opcional  |  Configuración de control de acceso para el bucket. Los únicos valores válidos son null o `FULL_CONTROL`. Esta configuración solo es obligatoria si carga archivos de una cuenta (cuenta A) en un bucket propiedad de otra cuenta (cuenta B) y la cuenta B necesita el control total de los archivos.  | 

El valor devuelto para el procedimiento `rdsadmin.rdsadmin_s3_tasks.upload_to_s3` es un ID de tarea.

En el siguiente ejemplo, se cargan todos los archivos del directorio `DATA_PUMP_DIR` en el bucket de Amazon S3 denominado *amzn-s3-demo-bucket*. Los archivos no están comprimidos.

```
SELECT rdsadmin.rdsadmin_s3_tasks.upload_to_s3(
      p_bucket_name    =>  'amzn-s3-demo-bucket',
      p_prefix         =>  '', 
      p_s3_prefix      =>  '', 
      p_directory_name =>  'DATA_PUMP_DIR') 
   AS TASK_ID FROM DUAL;
```

En el siguiente ejemplo se cargan todos los archivos con el prefijo `db` del directorio `DATA_PUMP_DIR` en el bucket de Amazon S3 denominado `amzn-s3-demo-bucket`. Amazon RDS aplica el nivel más alto de compresión GZIP a los archivos.

```
SELECT rdsadmin.rdsadmin_s3_tasks.upload_to_s3(
      p_bucket_name       =>  'amzn-s3-demo-bucket', 
      p_prefix            =>  'db', 
      p_s3_prefix         =>  '', 
      p_directory_name    =>  'DATA_PUMP_DIR',
      p_compression_level =>  9) 
   AS TASK_ID FROM DUAL;
```

En el siguiente ejemplo se cargan todos los archivos del directorio `DATA_PUMP_DIR` en el bucket de Amazon S3 denominado `amzn-s3-demo-bucket`. Los archivos se cargan en una carpeta `dbfiles`. En este ejemplo, el nivel de compresión GZIP es *1*, que es el nivel de compresión más rápido.

```
SELECT rdsadmin.rdsadmin_s3_tasks.upload_to_s3(
      p_bucket_name       =>  'amzn-s3-demo-bucket', 
      p_prefix            =>  '', 
      p_s3_prefix         =>  'dbfiles/', 
      p_directory_name    =>  'DATA_PUMP_DIR',
      p_compression_level =>  1) 
   AS TASK_ID FROM DUAL;
```

En el siguiente ejemplo se cargan todos los archivos del directorio `DATA_PUMP_DIR` en el bucket de Amazon S3 denominado `amzn-s3-demo-bucket`. Los archivos se cargan en una carpeta `dbfiles` y `ora` se añade al principio de cada nombre de archivo. No se aplica compresión.

```
SELECT rdsadmin.rdsadmin_s3_tasks.upload_to_s3(
      p_bucket_name    =>  'amzn-s3-demo-bucket', 
      p_prefix         =>  '', 
      p_s3_prefix      =>  'dbfiles/ora', 
      p_directory_name =>  'DATA_PUMP_DIR') 
   AS TASK_ID FROM DUAL;
```

En el ejemplo siguiente se supone que el comando se ejecuta en la cuenta A, pero la cuenta B requiere un control total del contenido del bucket. El comando `rdsadmin_s3_tasks.upload_to_s3` transfiere todos los archivos del directorio `DATA_PUMP_DIR` al bucket denominado `s3bucketOwnedByAccountB`. El control de acceso está configurado en `FULL_CONTROL` para que la cuenta B pueda acceder a los archivos del bucket. El nivel de compresión GZIP es *6*, que equilibra la velocidad y el tamaño del archivo.

```
SELECT rdsadmin.rdsadmin_s3_tasks.upload_to_s3(
      p_bucket_name               =>  's3bucketOwnedByAccountB', 
      p_prefix                    =>  '', 
      p_s3_prefix                 =>  '', 
      p_directory_name            =>  'DATA_PUMP_DIR',
      p_bucket_owner_full_control =>  'FULL_CONTROL',
      p_compression_level         =>  6) 
   AS TASK_ID FROM DUAL;
```

En cada ejemplo, la instrucción `SELECT` devuelve el identificador de la tarea en un tipo de datos `VARCHAR2`.

Para ver el resultado, visualice el archivo de salida de la tarea.

```
SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP','dbtask-task-id.log'));
```

Reemplace *`task-id`* con el ID de tarea devuelto por el procedimiento.

**nota**  
Las tareas se ejecutan de forma asíncrona.

## Descarga de archivos desde un bucket de Amazon S3 en una instancia de base de datos de Oracle
<a name="oracle-s3-integration.using.download"></a>

Para descargar archivos desde un bucket de Amazon S3 en una instancia de RDS para Oracle, use el procedimiento de Amazon RDS `rdsadmin.rdsadmin_s3_tasks.download_from_s3`. 

El procedimiento `download_from_s3` tiene los siguientes parámetros.


****  

| Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | 
|  `p_bucket_name`  |  VARCHAR2  |  –  |  Obligatorio  |  Nombre del bucket de Amazon S3 desde el que descargar archivos.   | 
|  `p_directory_name`  |  VARCHAR2  |  –  |  Obligatorio  |  Nombre del directorio de Oracle en el que descargar archivos. El directorio puede ser cualquier objeto de directorio creado por el usuario o el directorio Data Pump, como `DATA_PUMP_DIR`.   | 
|  `p_error_on_zero_downloads`  |  VARCHAR2  | FALSO |  Opcional  |  Indicador que determina si la tarea genera un error cuando ningún objeto del bucket de Amazon S3 coincide con el prefijo. Si este parámetro no está establecido o se establece en FALSE (predeterminado), la tarea imprime un mensaje en el que se indica que no se ha encontrado ningún objeto, pero no genera ninguna excepción ni se produce un error. Si este parámetro es TRUE, la tarea genera una excepción y se produce un error.  Algunos ejemplos de especificaciones de prefijos que no superan las pruebas de coincidencia son los espacios en los prefijos, como en `' import/test9.log'`, y los desajustes de mayúsculas y minúsculas, como en `test9.log` y `test9.LOG`.  | 
|  `p_s3_prefix`  |  VARCHAR2  |  –  |  Obligatorio  |  Prefijo del nombre de archivo con el que deben coincidir los nombres de archivo para descargarse. Un prefijo vacío descarga todos los archivos de nivel superior en el bucket de Amazon S3 especificado pero no los archivos en las carpetas en el bucket.  El procedimiento descarga objetos de Amazon S3 solo desde la primera carpeta de nivel que coincide con el prefijo. Las estructuras de directorios anidados que coinciden con el prefijo especificado no se descargan. Por ejemplo, supongamos que un bucket de Amazon S3 tiene la estructura de carpetas `folder_1/folder_2/folder_3`. Especifique el prefijo `'folder_1/folder_2/'`. En este caso, solo se descargan los archivos de `folder_2`, no los archivos de `folder_1` ni de `folder_3`. Si, de lo contrario, especifico el prefijo `'folder_1/folder_2'`, se descargan todos los archivos en `folder_1` que coincidan con el prefijo `'folder_2'` y no se descarga ningún archivo en `folder_2`.  | 
|  `p_decompression_format`  |  VARCHAR2  |  –  |  Opcional  |  El formato de compresión. Los valores válidos son `NONE` sin descompresión y `GZIP` para descompresión.  | 

El valor devuelto para el procedimiento `rdsadmin.rdsadmin_s3_tasks.download_from_s3` es un ID de tarea.

En el siguiente ejemplo se descargan todos los archivos del bucket de Amazon S3 denominado `amzn-s3-demo-bucket` en el directorio `DATA_PUMP_DIR`. Los archivos no están comprimidos, por lo que no se aplica descompresión.

```
SELECT rdsadmin.rdsadmin_s3_tasks.download_from_s3(
      p_bucket_name    =>  'amzn-s3-demo-bucket',
      p_directory_name =>  'DATA_PUMP_DIR') 
   AS TASK_ID FROM DUAL;
```

En el siguiente ejemplo se descargan todos los archivos con el prefijo `db` del bucket de Amazon S3 denominado `amzn-s3-demo-bucket` en el directorio `DATA_PUMP_DIR`. Los archivos están comprimidos con GZIP, por lo que se aplica descompresión. El parámetro `p_error_on_zero_downloads` activa la comprobación de errores de prefijos, de modo que si el prefijo no coincide con ningún archivo del bucket, la tarea generará una excepción y fallará.

```
SELECT rdsadmin.rdsadmin_s3_tasks.download_from_s3(
      p_bucket_name               =>  'amzn-s3-demo-bucket', 
      p_s3_prefix                 =>  'db', 
      p_directory_name            =>  'DATA_PUMP_DIR',
      p_decompression_format      =>  'GZIP',
      p_error_on_zero_downloads   =>  'TRUE') 
   AS TASK_ID FROM DUAL;
```

En el siguiente ejemplo se descargan todos los archivos de la carpeta `myfolder/` del bucket de Amazon S3 denominado `amzn-s3-demo-bucket` en el directorio `DATA_PUMP_DIR`. Use el parámetro `p_s3_prefix` para especificar la carpeta de Amazon S3. Los archivos cargados se comprimen con GZIP, pero no se descomprimen durante la descarga. 

```
SELECT rdsadmin.rdsadmin_s3_tasks.download_from_s3(
      p_bucket_name          =>  'amzn-s3-demo-bucket', 
      p_s3_prefix            =>  'myfolder/', 
      p_directory_name       =>  'DATA_PUMP_DIR',
      p_decompression_format =>  'NONE')
   AS TASK_ID FROM DUAL;
```

El siguiente ejemplo descarga el archivo `mydumpfile.dmp` en el bucket de Simple Storage Service (Amazon S3) con el nombre `amzn-s3-demo-bucket` del directorio `DATA_PUMP_DIR`. No se aplica descompresión.

```
SELECT rdsadmin.rdsadmin_s3_tasks.download_from_s3(
      p_bucket_name    =>  'amzn-s3-demo-bucket', 
      p_s3_prefix      =>  'mydumpfile.dmp', 
      p_directory_name =>  'DATA_PUMP_DIR') 
   AS TASK_ID FROM DUAL;
```

En cada ejemplo, la instrucción `SELECT` devuelve el identificador de la tarea en un tipo de datos `VARCHAR2`.

Para ver el resultado, visualice el archivo de salida de la tarea.

```
SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP','dbtask-task-id.log'));
```

Reemplace *`task-id`* con el ID de tarea devuelto por el procedimiento.

**nota**  
Las tareas se ejecutan de forma asíncrona.  
Puede utilizar el procedimiento `UTL_FILE.FREMOVE` de Oracle para eliminar archivos de un directorio. Para más información, consulte [FREMOVE Procedure](https://docs.oracle.com/database/121/ARPLS/u_file.htm#ARPLS70924) en la documentación de Oracle.

## Monitoreo del estado de una transferencia de archivos
<a name="oracle-s3-integration.using.task-status"></a>

Las tareas de transferencia de archivos publican eventos de Amazon RDS al comenzar y al completarse. El mensaje de evento contiene el identificador de la tarea para la transferencia del archivo. Para obtener información acerca de cómo ver los eventos, consulte [Consulta de eventos de Amazon RDS](USER_ListEvents.md).

Puede ver el estado de una tarea continua en un archivo bdump. Los archivos bdump están ubicados en el directorio `/rdsdbdata/log/trace`. El nombre del archivo bdump está en el siguiente formato.

```
dbtask-task-id.log
```

Reemplace `task-id` por el ID de la tarea que desea monitorizar.

**nota**  
Las tareas se ejecutan de forma asíncrona.

Puede utilizar el procedimiento almacenado `rdsadmin.rds_file_util.read_text_file` para ver el contenido de los archivos bdump. Por ejemplo, la siguiente consulta devuelve el contenido del archivo bdump `dbtask-1234567890123-1234.log`.

```
SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP','dbtask-1234567890123-1234.log'));
```

A continuación, se muestra un ejemplo de archivo de registro de una transferencia fallida.

```
TASK_ID                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1234567890123-1234


TEXT                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2023-04-17 18:21:33.993 UTC [INFO ] File #1: Uploading the file /rdsdbdata/datapump/A123B4CDEF567890G1234567890H1234/sample.dmp to Amazon S3 with bucket name amzn-s3-demo-bucket and key sample.dmp.
2023-04-17 18:21:34.188 UTC [ERROR] RDS doesn't have permission to write to Amazon S3 bucket name amzn-s3-demo-bucket and key sample.dmp.
2023-04-17 18:21:34.189 UTC [INFO ] The task failed.
```

## Solución de problemas de la integración de Amazon S3
<a name="oracle-s3-integration.troubleshooting"></a>

Para obtener consejos sobre la solución de problemas, consulte el artículo de AWS re:post [¿Cómo puedo solucionar los problemas al integrar Amazon RDS para Oracle con Amazon S3?](https://repost.aws/en/knowledge-center/rds-oracle-s3-integration)

# Eliminación de la opción de integración con Amazon S3
<a name="oracle-s3-integration.removing"></a>

Puede eliminar la opción de integración con Amazon S3 de una instancia de base de datos. 

Para eliminar la opción de integración con Amazon S3 de una instancia de base de datos, realice una de las siguientes acciones: 
+ Para eliminar la opción de integración con Amazon S3 de varias instancias de base de datos, elimine la opción `S3_INTEGRATION` del grupo de opciones al que pertenecen las instancias de base de datos. Este cambio afecta a todas las instancias de base de datos que utilizan el grupo de opciones. Para obtener más información, consulte [Quitar una opción de un grupo de opciones](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.RemoveOption).

   
+ Para eliminar la opción de integración con Amazon S3 de una sola instancia, modifique la instancia de base de datos y especifique otro grupo de opciones que no incluya la opción `S3_INTEGRATION`. Puede especificar el grupo de opciones predeterminado (vacío) u otro grupo de opciones personalizado. Para obtener más información, consulte [Modificación de una instancia de base de datos de Amazon RDS](Overview.DBInstance.Modifying.md).

# Oracle Application Express
<a name="Appendix.Oracle.Options.APEX"></a>

Amazon RDS es compatible con Oracle Application Express (APEX) mediante el uso de las opciones `APEX` y `APEX-DEV`. Oracle APEX puede implementarse como un entorno de tiempo de ejecución o como un entorno de desarrollo completo para aplicaciones basadas en web. Con Oracle APEX, puede crear aplicaciones de principio a fin en el navegador web. Para obtener más información, consulte [Oracle Application Express](https://apex.oracle.com/) en la documentación de Oracle.

**Topics**
+ [Componentes de Oracle APEX](#Appendix.Oracle.Options.APEX.components)
+ [Requisitos y limitaciones](Appendix.Oracle.Options.APEX.Requirements.md)
+ [Configuración de Oracle APEX y Oracle Rest Data Services (ORDS)](Appendix.Oracle.Options.APEX.settingUp.md)
+ [Configuración de Oracle Rest Data Services (ORDS)](Appendix.Oracle.Options.APEX.ORDSConf.md)
+ [Actualización y eliminación de Oracle APEX](Appendix.Oracle.Options.APEX.UpgradeandRemove.md)

## Componentes de Oracle APEX
<a name="Appendix.Oracle.Options.APEX.components"></a>

Oracle APEX consta de los siguientes componentes principales:
+ Un *repositorio* que almacena los metadatos para las aplicaciones y los componentes de Oracle APEX. El repositorio se compone de tablas, índices y otros objetos que están instalados en la instancia de base de datos de Amazon RDS.
+ Un *agente de escucha* que administra las comunicaciones HTTP con los clientes de Oracle APEX. El oyente está en un host independiente como, por ejemplo, una instancia de Amazon EC2, un servidor en las instalaciones de su empresa o un equipo de escritorio. El agente de escucha acepta las conexiones entrantes de los navegadores web, las reenvía a la instancia de base de datos de Amazon RDS para su procesamiento y, después, envía los resultados del repositorio de vuelta a los navegadores. 

  RDS para Oracle admite los siguientes tipos de oyente:
  + Para Oracle APEX versión 5.0 y posteriores, utilice Oracle REST Data Services (ORDS), versión 19.1 y posteriores. Le recomendamos utilizar la última versión compatible de Oracle APEX y ORDS. Esta documentación describe versiones anteriores solo para compatibilidad con versiones anteriores.
  + Para la versión 4.1.1 de Oracle APEX, puede utilizar Oracle APEX Listener versión 1.1.4.
  + Puede utilizar Oracle HTTP Server y agentes de escucha `mod_plsql`.
**nota**  
Amazon RDS no es compatible con el servidor HTTP de base de datos XML de Oracle con la puerta de enlace PL/SQL integrada como oyente para Oracle APEX. En general, Oracle recomienda evitar el uso de la gateway PL/SQL integrada para las aplicaciones que se ejecutan en Internet.

  Para obtener más información sobre estos tipos de agentes de escucha, consulte [Elección de un agente de escucha web](https://docs.oracle.com/database/apex-5.1/HTMIG/choosing-web-listener.htm#HTMIG29321) en la documentación de Oracle.

Cuando se agregan las opciones de `APEX` y `APEX-DEV` a la instancia de base de datos de RDS para Oracle, Amazon RDS instala solo el repositorio de Oracle APEX. Instale su oyente en un host independiente.

# Requisitos y limitaciones
<a name="Appendix.Oracle.Options.APEX.Requirements"></a>

En el siguiente tema se muestran los requisitos y las limitaciones para Oracle APEX y ORDS.

## Requisitos de versiones de Oracle APEX
<a name="Appendix.Oracle.Options.APEX.versions"></a>

La opción de `APEX` utiliza el almacenamiento en la clase de instancia de base de datos para la instancia de base de datos. Estas son las versiones admitidas y los requisitos de almacenamiento aproximados para Oracle APEX.


****  

| Versión de Oracle APEX | Requisitos de almacenamiento | Versiones de Oracle Database compatibles | Notas | 
| --- | --- | --- | --- | 
|  Oracle APEX versión 24.2.v1  |  114 MiB  |  Todos  |  Esta versión incluye el parche 37885097: PSE BUNDLE FOR APEX 24,2 (PSES ON TOP OF 24,2.0), PATCH\$1VERSION 4.  | 
|  Oracle APEX versión 24.1.v1  |  112 MiB  |  Todos  |  Esta versión incluye el parche 36695709: PSE BUNDLE FOR APEX 24.1 (PSES ON TOP OF 24.1.0), PATCH\$1VERSION 3. Si necesita instalar exactamente la misma versión de imágenes APEX en la instancia EC2, descargue la revisión 37544819: 24.1.3 PAQUETE PSE PARA APEX 24.1 (PSES SOBRE 24.1.0).  | 
|  Oracle APEX versión 23.2.v1  |  110 MiB  |  Todos  |  Esta versión incluye el parche 35895964: PSE BUNDLE FOR APEX 23.2 (PSES ON TOP OF 23.2.0), PATCH\$1VERSION 6. Si necesita instalar exactamente la misma versión de imágenes APEX en la instancia EC2, descargue la revisión 37593125: 23.2.6 PAQUETE PSE PARA APEX 23.2 (PSES SOBRE 23.2.0).  | 
|  Oracle APEX versión 23.1.v1  |  106 MiB  |  Todos  |  Esta versión incluye el parche 35283657: PSE BUNDLE FOR APEX 23.1 (PSES ON TOP OF 23.1.0), PATCH\$1VERSION 2.  | 
|  Oracle APEX, versión 22.2.v1  |  106 MiB  |  Todos  |  Esta versión incluye el parche 34628174: PSE BUNDLE FOR APEX 22,2 (PSES ON TOP OF 22,2.0), PATCH\$1VERSION 4.  | 
|  Oracle APEX, versión 22.1.v1  |  124 MiB  |  Todos  |  Esta versión incluye el parche 34020981: PSE BUNDLE FOR APEX 22.1 (PSES ON TOP OF 22.1.0), PATCH\$1VERSION 6.  | 
|  Oracle APEX, versión 21.2.v1  |  125 MiB  |  Todos  |  Esta versión incluye el parche 33420059: PSE BUNDLE FOR APEX 21,2 (PSES ON TOP OF 21,2.0), PATCH\$1VERSION 8.  | 
|  Oracle APEX, versión 21.1.v1  |  125 MiB  |  Todos  |  Esta versión incluye la revisión 32598392: PSE BUNDLE FOR APEX 21.1, PATCH\$1VERSION 3.  | 
|  Oracle APEX versión 20.2.v1  |  148 MiB  |  Todas excepto Oracle Database 21c  |  Esta versión incluye la revisión 32006852: PSE BUNDLE FOR APEX 20.2, PATCH\$1VERSION 2020.11.12. Puede consultar el número de parche y la fecha ejecutando la siguiente consulta: <pre>SELECT PATCH_VERSION, PATCH_NUMBER <br />FROM   APEX_PATCHES;</pre>  | 
|  Oracle APEX versión 20.1.v1  |  173 MiB  |  Todas excepto Oracle Database 21c  |  Esta versión incluye la revisión 30990551: PSE BUNDLE FOR APEX 20.1, PATCH\$1VERSION 2020.07.15.  | 
|  Oracle APEX versión 19.2.v1  |  149 MiB  |  Todas excepto Oracle Database 21c  |  | 
|  Oracle APEX, versión 19.1.v1  |  148 MiB  |  Todas excepto Oracle Database 21c  |  | 

Para ver los archivos .zip de Oracle APEX descargables, consulte los [archivos de versiones anteriores de Oracle APEX](https://www.oracle.com/tools/downloads/apex-all-archives-downloads.html) en el sitio web de Oracle.

## Requisitos previos para Oracle APEX y ORDS
<a name="Appendix.Oracle.Options.APEX.PreReqs"></a>

Tenga en cuenta los siguientes requisitos previos para Oracle APEX y ORDS:
+ El sistema debe utilizar el entorno de ejecución de Java (JRE).
+ Una instalación de cliente de Oracle debe incluir lo siguiente:
  + SQL\$1Plus o SQL Developer para tareas de administración
  + Oracle Net Services para configurar conexiones a su instancia de base de datos de RDS para Oracle

## Limitaciones de Oracle APEX
<a name="Appendix.Oracle.Options.APEX.limitations"></a>

No puede modificar la cuenta de usuario `APEX_version`, que administra Amazon RDS. Por lo tanto, no puede aplicar perfiles de bases de datos ni imponer reglas de contraseñas a este usuario. Oracle y AWS predefinen la configuración de perfiles y contraseñas para `APEX_version`, que se ha diseñado para cumplir con los requisitos de seguridad de Amazon RDS.

# Configuración de Oracle APEX y Oracle Rest Data Services (ORDS)
<a name="Appendix.Oracle.Options.APEX.settingUp"></a>

En el siguiente tema se muestran los pasos necesarios para configurar Oracle APEX y ORDS

**Topics**
+ [Cómo añadir las opciones de APEX y APEX-DEV a una instancia de base de datos](#Appendix.Oracle.Options.APEX.Add)
+ [Desbloqueo de la cuenta de usuario pública en una instancia de base de datos](#Appendix.Oracle.Options.APEX.PublicUser)
+ [Configuración de los servicios RESTful para Oracle APEX](#Appendix.Oracle.Options.APEX.ConfigureRESTful)
+ [Preparativos para la instalación de ORDS en un host independiente](#Appendix.Oracle.Options.APEX.ORDS.ords-setup)
+ [Configuración del agente de escucha de Oracle APEX](#Appendix.Oracle.Options.APEX.Listener)

## Cómo añadir las opciones de APEX y APEX-DEV a una instancia de base de datos
<a name="Appendix.Oracle.Options.APEX.Add"></a>

Para añadir las opciones `APEX` y `APEX-DEV` a la instancia de base de datos de RDS para Oracle, haga lo siguiente: 

1. Cree un grupo de opciones nuevo o copie o modifique un grupo de opciones existente.

1. Agregue las opciones `APEX` y `APEX-DEV` al grupo de opciones.

1. Asocie el grupo de opciones con la instancia de base de datos.

Cuando se agregan las opciones `APEX` y `APEX-DEV`, se produce una breve interrupción mientras la instancia de base de datos se reinicia automáticamente. 

**nota**  
`APEX_MAIL` está disponible cuando la opción `APEX` está instalada. El privilegio de ejecución del paquete `APEX_MAIL` se concede a `PUBLIC`por lo que no necesita la cuenta administrativa de APEX para usarlo.

**Agregación de las opciones de APEX y APEX-DEV a una instancia de base de datos**

1. Determine el grupo de opciones que desea utilizar. Puede crear un grupo de opciones o utilizar uno existente. Si desea utilizar un grupo de opciones existente, vaya al siguiente paso. De lo contrario, cree un grupo de opciones de base de datos personalizado con las siguientes opciones: 

   1. En **Engine**, elija la edición de Oracle que desea utilizar. Las opciones de `APEX` y `APEX-DEV` se admiten en todas las ediciones. 

   1. En **Major engine version (Versión principal del motor)**, elija la versión de su instancia de base de datos. 

   Para obtener más información, consulte [Creación de un grupo de opciones](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create). 

1. Añada las opciones al grupo de opciones. Si desea implementar únicamente el entorno de tiempo de ejecución de Oracle APEX, añada solo la opción `APEX`. Si desea implementar el entorno de desarrollo completo, añada las opciones `APEX` y `APEX-DEV`.

   Para **Versión**, elija la versión de Oracle APEX que desea utilizar.
**importante**  
Si agrega las opciones de `APEX` y `APEX-DEV` a un grupo de opciones existente que ya se ha adjuntado a una o varias instancias de base de datos, se producirá una breve interrupción. Durante esa interrupción, se reinician automáticamente todas las instancias de base de datos. 

   Para obtener más información acerca de la adición de opciones, consulte [Agregar una opción a un grupo de opciones](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption). 

1. Aplique el grupo de opciones a una instancia de base de datos nueva o existente: 
   + Si se trata de una instancia de base de datos nueva, el grupo de opciones se aplica cuando se lanza la instancia. Para obtener más información, consulte [Creación de una instancia de base de datos de Amazon RDS](USER_CreateDBInstance.md). 
   + Para una instancia de base de datos existente, el grupo de opciones se aplica modificando la instancia y asociando el grupo de opciones nuevo. Cuando se agregan las opciones de `APEX` o `APEX-DEV` a una instancia de base de datos existente, se produce una breve interrupción mientras la instancia de base de datos se reinicia automáticamente. Para obtener más información, consulte [Modificación de una instancia de base de datos de Amazon RDS](Overview.DBInstance.Modifying.md). 

## Desbloqueo de la cuenta de usuario pública en una instancia de base de datos
<a name="Appendix.Oracle.Options.APEX.PublicUser"></a>

Después de instalar las opciones de `APEX` o `APEX-DEV` para la instancia de base de datos, asegúrese de hacer lo siguiente:

1. Cambie la contraseña de la cuenta `APEX_PUBLIC_USER`.

1. Desbloquee la cuenta.

Para ello, puede usar la utilidad de línea de comandos Oracle SQL\$1Plus. Conéctese a la instancia de base de datos como usuario maestro y ejecute los siguientes comandos. Reemplace `new_password` por una contraseña de su elección. 

```
1. ALTER USER APEX_PUBLIC_USER IDENTIFIED BY new_password;
2. ALTER USER APEX_PUBLIC_USER ACCOUNT UNLOCK;
```

## Configuración de los servicios RESTful para Oracle APEX
<a name="Appendix.Oracle.Options.APEX.ConfigureRESTful"></a>

Para configurar los servicios RESTful en Oracle APEX (no es necesario para Oracle APEX 4.1.1.V1), utilice SQL\$1Plus para conectarse a la instancia de base de datos como usuario maestro. Una vez realizado ese paso, ejecute el procedimiento almacenado `rdsadmin.rdsadmin_run_apex_rest_config`. Cuando ejecute el procedimiento almacenado, proporcione contraseñas para los siguientes usuarios:
+ `APEX_LISTENER`
+ `APEX_REST_PUBLIC_USER`

El procedimiento almacenado ejecuta el script `apex_rest_config.sql`, que crea cuentas de base de datos nuevas para estos usuarios.

**nota**  
La configuración no es necesaria para Oracle APEX versión 4.1.1.v1. No es necesario ejecutar el procedimiento almacenado únicamente para esta versión de Oracle APEX.

El comando siguiente ejecuta el procedimiento almacenado.

```
1. EXEC rdsadmin.rdsadmin_run_apex_rest_config('apex_listener_password', 'apex_rest_public_user_password');
```

## Preparativos para la instalación de ORDS en un host independiente
<a name="Appendix.Oracle.Options.APEX.ORDS.ords-setup"></a>

Instale ORDS en un host independiente, como una instancia de Amazon EC2, un servidor en las instalaciones de su empresa o un equipo de escritorio. En los ejemplos de esta sección, se supone que el host ejecuta Linux y tiene el nombre `myapexhost.example.com`.

Antes de poder instalar ORDS, tiene que crear un usuario de SO sin privilegios y, a continuación, descargar y descomprimir el archivo de instalación de Oracle APEX.

**Para prepararse para la instalación de ORDS**

1. Inicie sesión en `myapexhost.example.com` como `root`. 

1. Cree un usuario de SO sin privilegios que sea el propietario de la instalación del agente de escucha. El siguiente comando crea un nuevo usuario llamado *apexuser*. 

   ```
   useradd -d /home/apexuser apexuser
   ```

   El siguiente comando asigna una contraseña al nuevo usuario. 

   ```
   passwd apexuser;
   ```

1. Inicie sesión en `myapexhost.example.com` como `apexuser` y descargue los archivos de instalación de Oracle APEX desde Oracle en su directorio `/home/apexuser`: 
   + [http://www.oracle.com/technetwork/developer-tools/apex/downloads/index.html](http://www.oracle.com/technetwork/developer-tools/apex/downloads/index.html) 
   + [Archivos de liberación previos de Oracle Application Express](http://www.oracle.com/technetwork/developer-tools/apex/downloads/all-archives-099381.html) 

1. Descomprima el archivo en el directorio `/home/apexuser`.

   ```
   unzip apex_version.zip
   ```

   Tras descomprimir el archivo, hay un directorio `apex` en el directorio `/home/apexuser`.

1. Mientras siga con la sesión iniciada en `myapexhost.example.com` como `apexuser`, descargue el archivo de Oracle REST Data Services de Oracle a su directorio:`/home/apexuser` [http://www.oracle.com/technetwork/developer-tools/apex-listener/downloads/index.html](http://www.oracle.com/technetwork/developer-tools/apex-listener/downloads/index.html).

## Configuración del agente de escucha de Oracle APEX
<a name="Appendix.Oracle.Options.APEX.Listener"></a>

**nota**  
Oracle APEX Listener está obsoleto. 

Amazon RDS para Oracle sigue siendo compatible con Oracle APEX versión 4.1.1 y Oracle APEX Listener versión 1.1.4. Se recomienda utilizar las últimas versiones compatibles de Oracle APEX y ORDS.

Instale Oracle APEX Listener en un host independiente, como, por ejemplo, una instancia Amazon EC2, un servidor en las instalaciones en su empresa o un equipo de sobremesa. Suponemos que el nombre del host es `myapexhost.example.com` y que el host ejecuta Linux.

### Preparación para instalar el agente de escucha de Oracle APEX
<a name="Appendix.Oracle.Options.APEX.Listener.preparing"></a>

Antes de instalar Oracle APEX Listener, debe crear un usuario de SO sin privilegios y, a continuación, descargar y descomprimir el archivo de instalación de Oracle APEX.

**Para prepararse para la instalación del agente de escucha de Oracle APEX**

1. Inicie sesión en `myapexhost.example.com` como `root`. 

1. Cree un usuario de SO sin privilegios que sea el propietario de la instalación del agente de escucha. El siguiente comando crea un nuevo usuario llamado *apexuser*. 

   ```
   useradd -d /home/apexuser apexuser
   ```

   El siguiente comando asigna una contraseña al nuevo usuario. 

   ```
   passwd apexuser;
   ```

1. Inicie sesión en `myapexhost.example.com` como `apexuser` y descargue los archivos de instalación de Oracle APEX desde Oracle en su directorio `/home/apexuser`: 
   + [http://www.oracle.com/technetwork/developer-tools/apex/downloads/index.html](http://www.oracle.com/technetwork/developer-tools/apex/downloads/index.html) 
   + [Archivos de liberación previos de Oracle Application Express](http://www.oracle.com/technetwork/developer-tools/apex/downloads/all-archives-099381.html) 

1. Descomprima el archivo en el directorio `/home/apexuser`.

   ```
   unzip apex_<version>.zip                
   ```

   Tras descomprimir el archivo, hay un directorio `apex` en el directorio `/home/apexuser`.

1. Mientras sigue con la sesión iniciada en `myapexhost.example.com` como `apexuser`, descargue el archivo de Oracle APEX Listener desde Oracle a su directorio `/home/apexuser`.

#### Instalación y configuración del agente de escucha de Oracle APEX
<a name="Appendix.Oracle.Options.APEX.Listener.installing"></a>

Antes de poder utilizar Oracle APEX, debe descargar el archivo `apex.war`, usar Java para instalar Oracle APEX Listener y, a continuación, iniciar el oyente.

**Para instalar y configurar el agente de escucha de Oracle APEX**

1. Cree un nuevo directorio basado en Oracle APEX Listener y abra el archivo del agente de escucha.

   Ejecute el siguiente código:

   ```
   mkdir /home/apexuser/apexlistener
   cd /home/apexuser/apexlistener 
   unzip ../apex_listener.version.zip
   ```

1. Ejecute el siguiente código.

   ```
   java -Dapex.home=./apex -Dapex.images=/home/apexuser/apex/images -Dapex.erase -jar ./apex.war
   ```

1. Introduzca la siguiente información que el programa le solicita: 
   + Nombre de usuario del administrador del agente de escucha de APEX. El valor predeterminado es *adminlistener*. 
   + Contraseña del administrador del agente de escucha de APEX. 
   + Nombre de usuario del gestor del agente de escucha de APEX. El valor predeterminado es *managerlistener*. 
   + Contraseña del administrador del agente de escucha de APEX. 

   El programa imprime una dirección URL que se necesita para completar la configuración, tal y como se indica a continuación.

   ```
   INFO: Please complete configuration at: http://localhost:8080/apex/listenerConfigure
   Database is not yet configured
   ```

1. Deje Oracle APEX Listener en ejecución para que pueda utilizar Oracle Application Express. Cuando haya completado este procedimiento de configuración, podrá ejecutar el agente de escucha en segundo plano. 

1. Desde el navegador web, vaya a la dirección URL proporcionada por el programa del oyente de Oracle APEX. Aparece la ventana de administración de Oracle Application Express Listener. Introduzca la información siguiente: 
   + **Username (Nombre de usuario** – `APEX_PUBLIC_USER`
   + **Password (Contraseña)**: la contraseña de *APEX\$1PUBLIC\$1USER*. Esta contraseña es la que especificó antes cuando configuró el repositorio de Oracle APEX. Para obtener más información, consulte [Desbloqueo de la cuenta de usuario pública en una instancia de base de datos](#Appendix.Oracle.Options.APEX.PublicUser). 
   + **Connection Type (Tipo de conexión)**: Basic (Básica) 
   + **Hostname (Nombre de host)**: el punto de enlace de su instancia de base de datos de Amazon RDS, como `mydb.f9rbfa893tft.us-east-1.rds.amazonaws.com`. 
   + **Port (Puerto** – 1521
   + **SID**: el nombre de la base de datos de la instancia de base de datos de Amazon RDS, como `mydb`. 

1. Seleccione **Apply**. Aparece la ventana de administración de Oracle APEX. 

1. Establezca una contraseña para el usuario `admin` de Oracle APEX. Para ello, use SQL\$1Plus para conectarse a la instancia de base de datos como usuario principal y, a continuación, ejecute los siguientes comandos.

   ```
   1. EXEC rdsadmin.rdsadmin_util.grant_apex_admin_role;
   2. grant APEX_ADMINISTRATOR_ROLE to master;
   3. @/home/apexuser/apex/apxchpwd.sql
   ```

   Sustituya `master` por el nombre de usuario maestro. Cuando el script de `apxchpwd.sql` se lo solicite, introduzca una nueva contraseña de `admin`. 

1. Vuelva a la ventana de administración de Oracle APEX en el navegador y elija **Administración**. A continuación, elija **Application Express Internal Administration**. Cuando se le soliciten las credenciales, introduzca la siguiente información: 
   + **User name (Nombre de usuario** – `admin` 
   + **Password (Contraseña)**: la contraseña que se estableció con el script `apxchpwd.sql` 

   Elija **Login** y a continuación defina una nueva contraseña para el usuario `admin`. 

El agente de escucha ya está listo para utilizarse.

# Configuración de Oracle Rest Data Services (ORDS)
<a name="Appendix.Oracle.Options.APEX.ORDSConf"></a>

En el siguiente tema se enumeran las opciones de configuración de ORDS 21 y 22:

**Topics**
+ [Instalación y configuración de ORDS 21 y versiones anteriores](#Appendix.Oracle.Options.APEX.ORDS)
+ [Instalación y configuración de ORDS 22 y versiones posteriores](#Appendix.Oracle.Options.APEX.ORDS22)

## Instalación y configuración de ORDS 21 y versiones anteriores
<a name="Appendix.Oracle.Options.APEX.ORDS"></a>

Ahora está listo para instalar y configurar Oracle Rest Data Services (ORDS) para su uso con Oracle APEX. Para Oracle APEX versión 5.0 y posteriores, utilice las versiones 19.1 a 21 de ORDS. Para obtener información sobre cómo instalar ORDS 22 y versiones posteriores, consulte [Instalación y configuración de ORDS 22 y versiones posteriores](#Appendix.Oracle.Options.APEX.ORDS22).

Instale el agente de escucha en un host independiente como, por ejemplo, una instancia Amazon EC2, un servidor en las instalaciones de su empresa o un equipo de escritorio. Para los ejemplos de esta sección, suponemos que el nombre de su host es `myapexhost.example.com` y que su host está ejecutando Linux.

**Instalación y configuración de ORDS 21 y versiones anteriores para usarse con Oracle APEX**

1. Consulte [Oracle REST data services](https://www.oracle.com/database/technologies/appdev/rest-data-services-downloads-212.html) y examine el archivo Readme. Asegúrese de que tiene instalada la versión de Java necesaria.

1. Cree un nuevo directorio para su instalación de ORDS.

   ```
   mkdir /home/apexuser/ORDS
   cd /home/apexuser/ORDS
   ```

1. Descargue el archivo `ords.version.number.zip` en [Oracle REST data services](https://www.oracle.com/database/technologies/appdev/rest-data-services-downloads-212.html) (Servicios de datos REST de Oracle).

1. Descomprima el archivo en el directorio `/home/apexuser/ORDS`.

1. Si va a instalar ORDS en una base de datos multiusuario, agregue la siguiente línea al archivo:`/home/apexuser/ORDS/params/ords_params.properties`

   ```
   pdb.disable.lockdown=false
   ```

1. Conceda al usuario principal los privilegios necesarios para instalar ORDS.

   Una vez instaladas las opciones para Oracle APEX, conceda al usuario principal los privilegios necesarios para instalar el esquema de ORDS. Para ello, conéctese a la base de datos y ejecute los siguientes comandos. Sustituya `MASTER_USER` por el nombre del usuario principal en mayúsculas.
**importante**  
Al ingresar el nombre de usuario, utilice mayúsculas, a menos que haya creado el usuario con un identificador que distingue entre mayúsculas y minúsculas. Por ejemplo, si ejecuta `CREATE USER myuser` o `CREATE USER MYUSER`, el diccionario de datos almacena `MYUSER`. Sin embargo, si utiliza comillas dobles en `CREATE USER "MyUser"`, el diccionario de datos almacena `MyUser`. Para obtener más información, consulte [Concesión de privilegios SELECT o EXECUTE para objetos SYS](Appendix.Oracle.CommonDBATasks.TransferPrivileges.md).

   ```
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_OBJECTS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_ROLE_PRIVS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_TAB_COLUMNS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('USER_CONS_COLUMNS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('USER_CONSTRAINTS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('USER_OBJECTS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('USER_PROCEDURES', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('USER_TAB_COLUMNS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('USER_TABLES', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('USER_VIEWS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('WPIUTL', 'MASTER_USER', 'EXECUTE', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_SESSION', 'MASTER_USER', 'EXECUTE', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_UTILITY', 'MASTER_USER', 'EXECUTE', true);
   ```
**nota**  
Estos comandos se aplican a las versiones 19.1 y posteriores de ORDS.

1. Instale el esquema de ORDS mediante el archivo ords.war descargado.

   ```
   java -jar ords.war install advanced
   ```

   El programa le pedirá la siguiente información. Los valores predeterminados aparecen entre corchetes. Para obtener más información, consulte [Introduction to Oracle REST Data Services](https://docs.oracle.com/en/database/oracle/oracle-rest-data-services/20.2/aelig/installing-REST-data-services.html#GUID-6F7B4E61-B730-4E73-80B8-F53299123730) en la documentación de Oracle.
   + Escriba la ubicación para almacenar los datos de configuración:

     Ingrese */home/apexuser/ORDS*. Esta es la ubicación de los archivos de configuración ORDS.
   + Especifique el tipo de conexión de base de datos que se va a utilizar. Escriba un número: [1] Basic [2] TNS [3] URL personalizada [1]:

     Elija el tipo de conexión deseado.
   + Escriba el nombre del servidor de la base de datos [localhost]: *punto\$1de\$1enlace\$1de\$1instancia\$1de\$1base\$1de\$1datos*

     Elija el valor predeterminado o introduzca el valor correcto.
   + Escriba el puerto del agente de escucha de la base de datos [1521]: *puerto\$1de\$1instancia\$1de\$1base\$1de\$1datos*

     Elija el valor predeterminado o introduzca el valor correcto.
   + Escriba 1 para especificar el nombre del servicio de base de datos o elija 2 para especificar el SID de la base de datos [1]:

     Elija `2` para especificar el SID de la base de datos. 
   + SID de la base de datos [xe]

     Elija el valor predeterminado o introduzca el valor correcto.
   + Escriba 1 si desea verificar/instalar el esquema de Oracle REST Data Services o escriba 2 para omitir este paso [1]:

     Elija `1`. Este paso crea el usuario del proxy de Oracle REST Data Services denominado ORDS\$1PUBLIC\$1USER.
   + Escriba la contraseña de la base de datos para ORDS\$1PUBLIC\$1USER:

     Escriba la contraseña y, a continuación, confírmela.
   + Es necesario iniciar sesión con privilegios de administrador para verificar el esquema de Oracle REST Data Services.

     Introduzca el nombre del usuario administrador: *master\$1user*

     Introduzca la contraseña de la base de datos para *master\$1user*: *master\$1user\$1password*

     Confirme la contraseña: *master\$1user\$1password*
**nota**  
Especifique una contraseña distinta de la que se muestra aquí como práctica recomendada de seguridad.
   + Introduzca el espacio de tabla predeterminado de ORDS\$1METADATA [SYSAUX].

     Introduzca el espacio de tabla temporal de ORDS\$1METADATA [TEMP].

     Introduzca el espacio de tabla predeterminado de ORDS\$1PUBLIC\$1USER [USERS].

     Introduzca el espacio de tabla temporal de ORDS\$1PUBLIC\$1USER [TEMP].
   + Introduzca 1 si desea utilizar la gateway PL/SQL o 2 para omitir este paso. Si utiliza Oracle Application Express o migra desde mod\$1plsql, debe introducir 1 [1].

     Elija el valor predeterminado.
   + Escriba el nombre de usuario de la base de datos de la gateway PL/SQL [APEX\$1PUBLIC\$1USER]

     Elija el valor predeterminado.
   + Escriba la contraseña de la base de datos para APEX\$1PUBLIC\$1USER:

     Escriba la contraseña y, a continuación, confírmela.
   + Escriba 1 para especificar contraseñas para los usuarios de la base de datos de los servicios RESTful de Application Express (APEX\$1LISTENER, APEX\$1REST\$1PUBLIC\$1USER) o escriba 2 para omitir este paso [1]:

     Elija `2` para APEX 4.1.1.V1; elija `1` para todas las demás versiones de APEX.
   + [No es necesario para APEX 4.1.1.v1] Contraseña de la base de datos para APEX\$1LISTENER

     Escriba la contraseña (si es necesario) y, a continuación, confírmela.
   + [No es necesario para APEX 4.1.1.v1] Contraseña de la base de datos para APEX\$1REST\$1PUBLIC\$1USER

     Escriba la contraseña (si es necesario) y, a continuación, confírmela.
   + Escriba un número para seleccionar una característica para habilitar:

     Escriba `1` para habilitar todas las características: SQL Developer Web, SQL habilitado para REST y API de base de datos.
   + Escriba 1 si desea comenzar en modo autónomo o 2 para salir [1]:

     Escriba `1`.
   + Escriba la ubicación de recursos estáticos de APEX:

     Si descomprimió los archivos de instalación de APEX en `/home/apexuser`, escriba `/home/apexuser/apex/images`. De lo contrario, escriba `unzip_path/apex/images`, donde *unzip\$1path* es el directorio donde descomprimió el archivo.
   + Escriba 1 si usa HTTP o escriba 2 si usa HTTPS [1]:

     Si escribe `1`, especifique el puerto HTTP. Si escribe `2`, especifique el puerto HTTPS y el nombre del host de SSL. La opción HTTPS le pide que especifique cómo proporcionará el certificado:
     + Escriba `1` para usar el certificado autofirmado.
     + Escriba `2` para proporcionar su propio certificado. Si escribe `2`, especifique la ruta de acceso del certificado SSL y la ruta de acceso de la clave privada del certificado SSL.

1. Establezca una contraseña para el usuario `admin` de APEX. Para ello, use SQL\$1Plus para conectarse a la instancia de base de datos como usuario principal y, a continuación, ejecute los siguientes comandos.

   ```
   1. EXEC rdsadmin.rdsadmin_util.grant_apex_admin_role;
   2. grant APEX_ADMINISTRATOR_ROLE to master;
   3. @/home/apexuser/apex/apxchpwd.sql
   ```

   Sustituya `master` por el nombre de usuario maestro. Cuando el script de `apxchpwd.sql` se lo solicite, introduzca una nueva contraseña de `admin`. 

1. Inicie el agente de escucha ORDS. Ejecute el siguiente código.

   ```
   java -jar ords.war
   ```

   La primera vez que inicie ORDS, se le pedirá que proporcione la ubicación de los recursos estáticos de APEX. Esta carpeta de imágenes se encuentra en el directorio `/apex/images` en el directorio de instalación de APEX. 

1. Vuelva a la ventana de administración de Oracle APEX en el navegador y elija **Administración**. A continuación, elija **Application Express Internal Administration**. Cuando se le soliciten las credenciales, introduzca la siguiente información: 
   + **User name (Nombre de usuario** – `admin` 
   + **Password (Contraseña)**: la contraseña que se estableció con el script `apxchpwd.sql` 

   Elija **Login** y a continuación defina una nueva contraseña para el usuario `admin`. 

El agente de escucha ya está listo para utilizarse.

## Instalación y configuración de ORDS 22 y versiones posteriores
<a name="Appendix.Oracle.Options.APEX.ORDS22"></a>

Ahora está listo para instalar y configurar Oracle Rest Data Services (ORDS) para su uso con Oracle APEX. Para los ejemplos de esta sección, suponemos que el nombre del host independiente es `myapexhost.example.com` y que está ejecutando Linux. Las instrucciones de ORDS 22 difieren de las instrucciones de las versiones anteriores.

**Instalación y configuración de ORDS 22 y versiones posteriores para usarse con Oracle APEX**

1. Visite [Oracle REST data services](http://www.oracle.com/technetwork/developer-tools/rest-data-services/downloads/index.html) y examine el archivo Readme de la versión de ORDS que tiene pensado descargar. Asegúrese de que tiene instalada la versión de Java necesaria.

1. Cree un nuevo directorio para su instalación de ORDS.

   ```
   mkdir /home/apexuser/ORDS
   cd /home/apexuser/ORDS
   ```

1. Descargue el archivo `ords.version.number.zip` o `ords-latest.zip` de [Oracle REST data services](http://www.oracle.com/technetwork/developer-tools/rest-data-services/downloads/index.html).

1. Descomprima el archivo en el directorio `/home/apexuser/ORDS`.

1. Conceda al usuario principal los privilegios necesarios para instalar ORDS.

   Una vez instalada la opción `APEX`, conceda al usuario principal los privilegios necesarios para instalar el esquema de ORDS. Puede hacerlo conectándose a la base de datos y ejecutando los siguientes comandos. Sustituya `MASTER_USER` por el nombre del usuario principal en mayúsculas.
**importante**  
Al ingresar el nombre de usuario, utilice mayúsculas, a menos que haya creado el usuario con un identificador que distingue entre mayúsculas y minúsculas. Por ejemplo, si ejecuta `CREATE USER myuser` o `CREATE USER MYUSER`, el diccionario de datos almacena `MYUSER`. Sin embargo, si utiliza comillas dobles en `CREATE USER "MyUser"`, el diccionario de datos almacena `MyUser`. Para obtener más información, consulte [Concesión de privilegios SELECT o EXECUTE para objetos SYS](Appendix.Oracle.CommonDBATasks.TransferPrivileges.md).

   ```
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_OBJECTS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_ROLE_PRIVS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_TAB_COLUMNS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('USER_CONS_COLUMNS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('USER_CONSTRAINTS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('USER_OBJECTS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('USER_PROCEDURES', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('USER_TAB_COLUMNS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('USER_TABLES', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('USER_VIEWS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('WPIUTL', 'MASTER_USER', 'EXECUTE', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_SESSION', 'MASTER_USER', 'EXECUTE', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_UTILITY', 'MASTER_USER', 'EXECUTE', true);
   
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_LOB', 'MASTER_USER', 'EXECUTE', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_ASSERT', 'MASTER_USER', 'EXECUTE', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_OUTPUT', 'MASTER_USER', 'EXECUTE', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_SCHEDULER', 'MASTER_USER', 'EXECUTE', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('HTP', 'MASTER_USER', 'EXECUTE', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('OWA', 'MASTER_USER', 'EXECUTE', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('WPG_DOCLOAD', 'MASTER_USER', 'EXECUTE', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_CRYPTO', 'MASTER_USER', 'EXECUTE', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_METADATA', 'MASTER_USER', 'EXECUTE', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_SQL', 'MASTER_USER', 'EXECUTE', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('UTL_SMTP', 'MASTER_USER', 'EXECUTE', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_NETWORK_ACL_ADMIN', 'MASTER_USER', 'EXECUTE', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('SESSION_PRIVS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_USERS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_NETWORK_ACL_PRIVILEGES', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_NETWORK_ACLS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_REGISTRY', 'MASTER_USER', 'SELECT', true);
   ```
**nota**  
Los comandos anteriores se aplican a las versiones 22 y posteriores de ORDS.

1. Instale el esquema de ORDS mediante el script `ords` descargado. Especifique los directorios que deben contener los archivos de configuración y los archivos de registro. Oracle Corporation recomienda no colocar estos directorios dentro del directorio que contiene el software del producto ORDS.

   ```
   mkdir -p /home/apexuser/ords_config /home/apexuser/ords_logs
   
   /home/apexuser/ORDS/bin/ords \
     --config /home/apexuser/ords_config \
     install --interactive --log-folder /home/apexuser/ords_logs
   ```

   Para las instancias de base de datos que ejecutan la arquitectura de base de datos de contenedores (CDB), utilice ORDS 23.3 o versiones posteriores y pase el argumento `--pdb-skip-disable-lockdown` al instalar ORDS.

   ```
   /home/apexuser/ORDS/bin/ords \
     --config /home/apexuser/ords_config \
     install --interactive --log-folder /home/apexuser/ords_logs --pdb-skip-disable-lockdown
   ```

   El programa le pedirá la siguiente información. Los valores predeterminados aparecen entre corchetes. Para obtener más información, consulte [Introduction to Oracle REST Data Services](https://docs.oracle.com/en/database/oracle/oracle-rest-data-services/20.2/aelig/installing-REST-data-services.html#GUID-6F7B4E61-B730-4E73-80B8-F53299123730) en la documentación de Oracle.
   + `Choose the type of installation:`

     Elija **2** para instalar los esquemas de ORDS en la base de datos y crear un grupo de conexiones de base de datos en los archivos de configuración de ORDS locales.
   + `Specify the database connection type to use. Enter number for [1] Basic [2] TNS [3] Custom URL:`

     Elija el tipo de conexión deseado. En este ejemplo se supone que elige **1**.
   + `Enter the name of the database server [localhost]:` ***DB\$1instance\$1endpoint***

     Elija el valor predeterminado o introduzca el valor correcto.
   + `Enter the database listener port [1521]:` ***DB\$1instance\$1port***

     Elija el valor predeterminado **1521** o introduzca el valor correcto.
   + `Enter the database service name [orcl]:`

     Introduzca el nombre de base de datos que utiliza la instancia de base de datos de RDS para Oracle.
   + `Provide database user name with administrator privileges`

      Introduzca el nombre de usuario maestro para la instancia de base de datos de RDS para Oracle.
   + `Enter the database password for [username]:`

     Introduzca la contraseña de usuario maestro para la instancia de base de datos de RDS para Oracle.
   + `Enter the default tablespace for ORDS_METADATA and ORDS_PUBLIC_USER [SYSAUX]:`
   + `Enter the temporary tablespace for ORDS_METADATA [TEMP]. Enter the default tablespace for ORDS_PUBLIC_USER [USERS]. Enter the temporary tablespace for ORDS_PUBLIC_USER [TEMP].`
   + `Enter a number to select additional feature(s) to enable [1]:`
   + `Enter a number to configure and start ORDS in standalone mode [1]: `

      Elija **2** para omitir inmediatamente el inicio de ORDS en modo independiente.
   + `Enter a number to select the protocol [1] HTTP`
   + `Enter the HTTP port [8080]:`
   + `Enter the APEX static resources location:`

     Ingrese la ruta a los archivos de instalación de Oracle APEX (`/home/apexuser/apex/images`).

1. Establezca una contraseña para el usuario `admin` de Oracle APEX. Para ello, use SQL\$1Plus para conectarse a la instancia de base de datos como usuario principal y, a continuación, ejecute los siguientes comandos.

   ```
   1. EXEC rdsadmin.rdsadmin_util.grant_apex_admin_role;
   2. grant APEX_ADMINISTRATOR_ROLE to master;
   3. @/home/apexuser/apex/apxchpwd.sql
   ```

   Sustituya `master` por el nombre de usuario maestro. Cuando el script de `apxchpwd.sql` se lo solicite, introduzca una nueva contraseña de `admin`. 

1. Ejecute ORDS en modo independiente mediante el script `ords` con el comando `serve`. Para las implementaciones de producción, plantéese la posibilidad de utilizar servidores de aplicaciones Java EE admitidos, como Apache Tomcat u Oracle WebLogic Server. Para obtener información, consulte [Deploying and Monitoring Oracle REST Data Services](https://docs.oracle.com/en/database/oracle/oracle-rest-data-services/23.1/ordig/deploying-and-monitoring-oracle-rest-data-services.html#GUID-6791F5DF-AC67-4885-BFFA-B80964C17EC9) en la documentación de Oracle Database.

   ```
   /home/apexuser/ORDS/bin/ords \
     --config /home/apexuser/ords_config serve \
     --port 8193 \
     --apex-images /home/apexuser/apex/images
   ```

   Si ORDS se está ejecutando pero no puede acceder a la instalación de Oracle APEX, es posible que aparezca el siguiente error, sobre todo en las instancias que no son CDB. 

   ```
   The procedure named apex_admin could not be accessed, it may not be declared, or the user executing this request may not have been granted execute privilege on the procedure, or a function specified by security.requestValidationFunction configuration property has prevented access.
   ```

   Para corregir este error, cambie la función de validación de solicitudes utilizada por ORDS ejecutando el script `ords` con el comando `config`. De forma predeterminada, ORDS usa el procedimiento `ords_util.authorize_plsql_gateway`, que solo se admite en las instancias de CDB. En el caso de las instancias que no son de CDB, puede cambiar este procedimiento por el paquete `wwv_flow_epg_include_modules.authorize`. Consulte la documentación de Oracle Database y Oracle Support para conocer las mejores prácticas a la hora de configurar la función de validación de solicitudes adecuada para su caso de uso.

1. Vuelva a la ventana de administración de Oracle APEX en el navegador y elija **Administración**. A continuación, elija **Application Express Internal Administration**. Cuando se le soliciten las credenciales, introduzca la siguiente información: 
   + **User name (Nombre de usuario** – `admin` 
   + **Password (Contraseña)**: la contraseña que se estableció con el script `apxchpwd.sql` 

   Elija **Login** y a continuación defina una nueva contraseña para el usuario `admin`. 

El agente de escucha ya está listo para utilizarse.

# Actualización y eliminación de Oracle APEX
<a name="Appendix.Oracle.Options.APEX.UpgradeandRemove"></a>

Para actualizar o eliminar Oracle APEX, siga las instrucciones de este tema:

**Topics**
+ [Actualización de la versión de Oracle APEX](#Appendix.Oracle.Options.APEX.Upgrade)
+ [Eliminación de las opciones de APEX y APEX-DEV](#Appendix.Oracle.Options.APEX.Remove)

## Actualización de la versión de Oracle APEX
<a name="Appendix.Oracle.Options.APEX.Upgrade"></a>

**importante**  
Realice una copia de seguridad de la instancia de base de datos antes de actualizar Oracle APEX. Para obtener más información, consulte [Creación de una instantánea de base de datos para una instancia de base de datos single-AZ para Amazon RDS](USER_CreateSnapshot.md) y [Prueba de una actualización de base de datos de Oracle](USER_UpgradeDBInstance.Oracle.UpgradeTesting.md). 

Para actualizar Oracle APEX con la instancia de base de datos, realice lo siguiente: 
+ Cree un nuevo grupo de opciones para la versión actualizada de la instancia de base de datos. 
+ Agregue las versiones actualizadas de `APEX` y `APEX-DEV` al nuevo grupo de opciones. Asegúrese de incluir todas las opciones que utiliza la instancia de base de datos. Para obtener más información, consulte [Consideraciones relativas al grupo de opciones](USER_UpgradeDBInstance.Oracle.OGPG.md#USER_UpgradeDBInstance.Oracle.OGPG.OG). 
+ Al actualizar la instancia de base de datos, especifique el nuevo grupo de opciones para la instancia de base de datos actualizada. 

Después de actualizar la versión de Oracle APEX, el esquema de Oracle APEX de la versión anterior puede seguir en la base de datos. Si ya no lo necesita, puede eliminar el antiguo esquema de Oracle APEX de la base de datos después de actualizar la versión. 

Si actualiza la versión de Oracle APEX, pero los servicios RESTful no se habían configurado en la versión anterior de Oracle APEX, le recomendamos que configure los servicios RESTful. Para obtener más información, consulte [Configuración de los servicios RESTful para Oracle APEX](Appendix.Oracle.Options.APEX.settingUp.md#Appendix.Oracle.Options.APEX.ConfigureRESTful).

En algunos casos, cuando piensa realizar una actualización a la versión principal de la instancia de base de datos, puede que detecte que está usando una versión de OracleAPEX que no es compatible con la versión de base de datos de destino. En esos casos, puede actualizar la versión de Oracle APEX antes de actualizar la instancia de base de datos. Si actualiza Oracle APEX primero, puede reducirse el tiempo necesario para actualizar la instancia de base de datos. 

**nota**  
Tras actualizar Oracle APEX, instale y configure un oyente para usarlo con la versión actualizada. Para obtener instrucciones, consulte [Configuración del agente de escucha de Oracle APEX](Appendix.Oracle.Options.APEX.settingUp.md#Appendix.Oracle.Options.APEX.Listener).

## Eliminación de las opciones de APEX y APEX-DEV
<a name="Appendix.Oracle.Options.APEX.Remove"></a>

Puede eliminar las opciones de `APEX` y `APEX-DEV` de una instancia de base de datos. Para eliminar estas opciones de la instancia de base de datos, realice una de las siguientes operaciones: 
+ Para eliminar las opciones de `APEX` y `APEX-DEV` de varias instancias de bases de datos, elimine las opciones del grupo de opciones al que pertenecen. Este cambio afecta a todas las instancias de base de datos que utilizan el grupo de opciones. Cuando elimine las opciones de un grupo de opciones que esté asociado a varias instancias de base de datos, se producirá una breve interrupción mientras se reinician las instancias de base de datos. 

  Para obtener más información, consulte [Quitar una opción de un grupo de opciones](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.RemoveOption). 
+ Para eliminar las opciones de `APEX` y `APEX-DEV` de una sola instancia de base de datos, modifique la instancia de base de datos y especifique otro grupo de opciones diferente que no incluya estas opciones. Puede especificar el grupo de opciones predeterminado (vacío) u otro grupo de opciones personalizado. Cuando se eliminan las opciones, se produce una breve interrupción mientras la instancia de base de datos se reinicia automáticamente. 

  Para obtener más información, consulte [Modificación de una instancia de base de datos de Amazon RDS](Overview.DBInstance.Modifying.md). 

Al eliminar las opciones de `APEX` y `APEX-DEV` de una instancia de base de datos, el esquema de APEX se elimina de la base de datos. 

# Integración de Amazon EFS
<a name="oracle-efs-integration"></a>

Amazon Elastic File System (Amazon EFS) proporciona un almacenamiento de archivos totalmente elástico y sin servidor para que pueda compartir datos de archivos sin aprovisionar ni administrar la capacidad de almacenamiento ni el rendimiento. Con Amazon EFS, puede crear un sistema de archivos y, a continuación, montarlo en su VPC mediante el protocolo de las versiones 4.0 y 4.1 (NFSv4) de NFS. A continuación, puede utilizar el sistema de archivos EFS como cualquier otro sistema de archivos compatible con POSIX. Para obtener información general, consulte la sección sobre [¿qué es Amazon Elastic File System?](https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html) y la publicación del blog de AWS sobre [integrar Amazon RDS para Oracle con Amazon EFS](https://aws.amazon.com//blogs/database/integrate-amazon-rds-for-oracle-with-amazon-efs/).

**Topics**
+ [Descripción general de la integración de Amazon EFS](#oracle-efs-integration.overview)
+ [Configuración de permisos de red para la integración de RDS para Oracle con Amazon EFS](oracle-efs-integration.network.md)
+ [Configuración de permisos de IAM para la integración de RDS para Oracle con Amazon EFS](oracle-efs-integration.iam.md)
+ [Adición de la opción EFS\$1INTEGRATION](oracle-efs-integration.adding.md)
+ [Configuración de permisos del sistema de archivos Amazon EFS](oracle-efs-integration.file-system.md)
+ [Transferencia de archivos entre RDS para Oracle y un sistema de archivos Amazon EFS](oracle-efs-integration.transferring.md)
+ [Eliminación de la opción EFS\$1INTEGRATION](oracle-efs-integration.removing.md)
+ [Solución de problemas de la integración de Amazon EFS](oracle-efs-integration.troubleshooting.md)

## Descripción general de la integración de Amazon EFS
<a name="oracle-efs-integration.overview"></a>

Amazon EFS le permite transferir archivos entre su instancia de base de datos de RDS para Oracle y un archivo de sistemas EFS. Por ejemplo, puede usar EFS para admitir los siguientes casos de uso:
+ Compartir un sistema de archivos entre aplicaciones y varios servidores de bases de datos.
+ Crear un directorio compartido para los archivos relacionados con la migración, incluidos los archivos de datos transportables del espacio de tablas. Para obtener más información, consulte [Migración mediante espacios de tabla transportables de Oracle](oracle-migrating-tts.md).
+ Almacenar y compartir archivos de registro redo archivados sin asignar espacio de almacenamiento adicional en el servidor.
+ Utilice las utilidades de Oracle Database, por ejemplo, `UTL_FILE`, para leer y escribir archivos.

### Ventajas de la integración con Amazon EFS
<a name="oracle-efs-integration.overview.advantages"></a>

Al elegir un sistema de archivos EFS en lugar de soluciones de transferencia de datos alternativas, obtiene las siguientes ventajas:
+ Puede transferir archivos de Oracle Data Pump entre Amazon EFS y su instancia de base de datos de RDS para Oracle. No necesita copiar estos archivos localmente porque Data Pump los importa directamente desde el sistema de archivos EFS. Para obtener más información, consulte [Importación de datos a Oracle en Amazon RDS](Oracle.Procedural.Importing.md).
+ La migración de datos es más rápida que usar un enlace a una base de datos.
+ Evita asignar espacio de almacenamiento en su instancia de base de datos de RDS para Oracle para retener los archivos.
+ Un sistema de archivos EFS puede escalar automáticamente el almacenamiento sin necesidad de aprovisionarlo.
+ La integración de Amazon EFS no tiene tarifas ni costos de configuración mínimos. Solo paga por lo que utiliza.
+ La integración de Amazon EFS admite dos formas de cifrado: cifrado de datos en tránsito y cifrado en reposo. El cifrado de datos en tránsito se habilita de forma predeterminada mediante TLS versión 1.2. Puede habilitar el cifrado de datos en reposo al crear un sistema de archivos de Amazon EFS. Para obtener más información, consulte [Encrypting data at rest](https://docs.aws.amazon.com/efs/latest/ug/encryption-at-rest.html) (Cifrado de datos en reposo) en la *Guía del usuario de Amazon Elastic File System*.

### Requisitos para la integración de Amazon EFS
<a name="oracle-efs-integration.overview.requirements"></a>

Asegúrese de cumplir los siguientes requisitos:
+ La base de datos debe ejecutar la versión 19.0.0.0.ru-2022-07.rur-2022-07.r1 o una versión posterior.
+ La instancia de base de datos y el sistema de archivos EFS deben estar en la misma Región de AWS, la misma VPC y la misma Cuenta de AWS. RDS para Oracle no admite el acceso entre cuentas y entre regiones para EFS.
+ En la VPC deben estar habilitadas las opciones **Resolución de DNS** y **Nombres de host de DNS**. Para obtener más información, consulte [DNS attributes in your VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html#vpc-dns-support) (Atributos de DNS en su VPC) en la *Guía del usuario de Amazon Virtual Private Cloud*.
+ Si utiliza un nombre de DNS en el comando `mount`, asegúrese de que la VPC esté configurada para utilizar el servidor DNS proporcionado por Amazon. No se admiten servidores DNS personalizados.
+ Debe utilizar soluciones que no son de RDS para hacer copias de seguridad del sistema de archivos EFS. RDS para Oracle no admite copias de seguridad automatizadas ni instantáneas manuales de bases de datos de un sistema de archivos EFS. Para obtener más información, consulte [Backing up your Amazon EFS file systems](https://docs.aws.amazon.com/efs/latest/ug/efs-backup-solutions.html) (Copias de seguridad de los sistemas de archivos Amazon EFS).

# Configuración de permisos de red para la integración de RDS para Oracle con Amazon EFS
<a name="oracle-efs-integration.network"></a>

Para que RDS para Oracle se integre con Amazon EFS, asegúrese de que la instancia de base de datos tenga acceso de red a un sistema de archivos EFS. Para obtener más información, consulte [Control del acceso a la red a los sistemas de archivos Amazon EFS para clientes NFS](https://docs.aws.amazon.com/efs/latest/ug/NFS-access-control-efs.html) en la *Guía del usuario de Amazon Elastic File System*.

**Topics**
+ [Control del acceso a la red con grupos de seguridad](#oracle-efs-integration.network.inst-access)
+ [Control del acceso a la red con políticas de sistema de archivos](#oracle-efs-integration.network.file-system-policy)

## Control del acceso a la red con grupos de seguridad
<a name="oracle-efs-integration.network.inst-access"></a>

Para controlar el acceso a la instancia de base de datos de los sistemas de archivos EFS puede usar mecanismos de seguridad de la capa de red, como los grupos de seguridad de VPC. Para permitir el acceso a un sistema de archivos EFS para la instancia de base de datos, asegúrese de que el sistema de archivos EFS cumpla los siguientes requisitos:
+ Debe existir un destino de montaje EFS en cada zona de disponibilidad que utilice una instancia de base de datos de RDS para Oracle.

  Un *destino de montaje de EFS* proporciona una dirección IP para un punto de conexión de NFSv4 en el que puede montar un sistema de archivos de EFS. Debe montar el sistema de archivos con su nombre de DNS, que se resolverá en la dirección IP del destino de montaje de EFS en la misma zona de disponibilidad que su instancia EC2. 

  Puede configurar instancias de base de datos en diferentes AZ para que utilicen el mismo sistema de archivos EFS. Para multi-AZ, necesita un punto de montaje para cada AZ de su implementación. Puede que tenga que trasladar una instancia de base de datos a una AZ diferente. Por estos motivos, recomendamos que cree un punto de montaje EFS en cada AZ de su VPC. De forma predeterminada, al crear un nuevo sistema de archivos EFS mediante la consola, RDS crea destinos de montaje para todas las AZ.
+ Se debe adjuntar un grupo de seguridad al destino de montaje.
+ El grupo de seguridad tiene una regla de entrada que permite la subred de red o el grupo de seguridad de la instancia de base de datos de RDS para Oracle en TCP/2049 (tipo NFS).

Para obtener más información, consulte [Creación de sistemas de archivos de Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/creating-using-create-fs.html#configure-efs-network-access) y [Creación y administración de objetivos de montaje y grupos de seguridad](https://docs.aws.amazon.com/efs/latest/ug/accessing-fs.html) en la *Guía del usuario de Amazon Elastic File System*.

## Control del acceso a la red con políticas de sistema de archivos
<a name="oracle-efs-integration.network.file-system-policy"></a>

La integración de Amazon EFS con RDS para Oracle funciona con la política del sistema de archivos EFS predeterminada (vacía). La política predeterminada no usa IAM para autenticarse. En su lugar, otorga acceso total a cualquier cliente anónimo que pueda conectarse al sistema de archivos mediante un destino de montaje. La política predeterminada se aplica siempre que no se aplique una política de sistema de archivos configurada por el usuario, incluso al crear el sistema de archivos. Para obtener más información, consulte [Política del sistema de archivos EFS por defecto](https://docs.aws.amazon.com/efs/latest/ug/iam-access-control-nfs-efs.html#default-filesystempolicy) en la *Guía del usuario de Amazon Elastic File System*.

Para reforzar el acceso a su sistema de archivos EFS para todos los clientes, incluido RDS para Oracle, puede configurar los permisos de IAM. En este enfoque, debe crear una política de sistema de archivos. Para obtener más información, consulte [Creación de políticas de sistemas de archivos](https://docs.aws.amazon.com/efs/latest/ug/create-file-system-policy.html) en la *Guía del usuario de Amazon Elastic File System*.

# Configuración de permisos de IAM para la integración de RDS para Oracle con Amazon EFS
<a name="oracle-efs-integration.iam"></a>

De forma predeterminada, la característica de integración de Amazon EFS no utiliza un rol de IAM: la configuración de la opción `USE_IAM_ROLE` es `FALSE`. Para integrar RDS para Oracle con Amazon EFS y un rol de IAM, su instancia de base de datos debe tener permisos de IAM para acceder a un sistema de archivos de Amazon EFS.

**Topics**
+ [Paso 1: crear un rol de IAM para la instancia de base de datos y asociarle la política](#oracle-efs-integration.iam.role)
+ [Paso 2: crear una política de sistema de archivos para su sistema de archivos Amazon EFS](#oracle-efs-integration.iam.policy)
+ [Paso 3: asociar el rol de IAM a la instancia de base de datos de RDS para Oracle](#oracle-efs-integration.iam.instance)

## Paso 1: crear un rol de IAM para la instancia de base de datos y asociarle la política
<a name="oracle-efs-integration.iam.role"></a>

En este paso, creará un rol para su instancia de base de datos de RDS para Oracle para permitir que Amazon RDS acceda a su sistema de archivos EFS.

### Consola
<a name="oracle-efs-integration.iam.role.console"></a>

**Para crear un rol de IAM que permita a Amazon RDS acceder a un sistema de archivos EFS**

1. Abra la [Management Console de IAM](https://console.aws.amazon.com/iam/home?#home).

1. Seleccione **Roles** en el panel de navegación.

1. Elija **Create role (Crear rol)**.

1. Para obtener **el servicio de AWS**, elija **RDS**.

1. En **Select your use case (Seleccionar su caso de uso)**, elija **RDS: Add Role to Database (RDS: Añadir rol a base de datos)**.

1. Elija **Siguiente**.

1. No añada ninguna política de permisos. Elija **Siguiente**.

1. En **Role name (Nombre de rol)**, escriba un nombre para el rol de IAM, por ejemplo, `rds-efs-integration-role`. También puede añadir una descripción opcional en **Description (Descripción)**.

1. Elija **Creación de rol**.

### AWS CLI
<a name="integration.preparing.role.CLI"></a>

Para limitar los permisos del servicio a un recurso específico, le recomendamos que utilice las claves de contexto de condición globales [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) y [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) en las relaciones de confianza basadas en recursos. Esta es la forma más eficaz de protegerse contra el [problema del suplente confuso](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html).

Puede utilizar claves de contexto de condición globales y hacer que el valor de `aws:SourceArn` contenga el ID de cuenta. En estos casos, el valor de `aws:SourceAccount` y la cuenta del valor de `aws:SourceArn` deben utilizar el mismo ID de cuenta cuando se utilizan en la misma instrucción.
+ Use `aws:SourceArn` si quiere acceso entre servicios para un único recurso.
+ Use `aws:SourceAccount` si quiere permitir que cualquier recurso de esa cuenta se asocie al uso entre servicios.

En la relación de confianza, asegúrese de usar la clave de contexto de la condición global `aws:SourceArn` con el nombre de recurso de Amazon (ARN) completo de los recursos que acceden al rol.

El siguiente comando AWS CLI crea el rol nombrado `rds-efs-integration-role` para este propósito.

**Example**  
Para Linux, macOS o Unix:  

```
aws iam create-role \
   --role-name rds-efs-integration-role \
   --assume-role-policy-document '{
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
            "Service": "rds.amazonaws.com"
          },
         "Action": "sts:AssumeRole",
         "Condition": {
             "StringEquals": {
                 "aws:SourceAccount": my_account_ID,
                 "aws:SourceArn": "arn:aws:rds:Region:my_account_ID:db:dbname"
             }
         }
       }
     ]
   }'
```
Para Windows:  

```
aws iam create-role ^
   --role-name rds-efs-integration-role ^
   --assume-role-policy-document '{
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
            "Service": "rds.amazonaws.com"
          },
         "Action": "sts:AssumeRole",
         "Condition": {
             "StringEquals": {
                 "aws:SourceAccount": my_account_ID,
                 "aws:SourceArn": "arn:aws:rds:Region:my_account_ID:db:dbname"
             }
         }
       }
     ]
   }'
```

Para obtener más información, vea [Crear un rol para delegar permisos a un usuario de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html) en *Guía del usuario de IAM. *

## Paso 2: crear una política de sistema de archivos para su sistema de archivos Amazon EFS
<a name="oracle-efs-integration.iam.policy"></a>

En este paso, creará una política de sistema de archivos para su sistema de archivos EFS.

**Para crear o editar una política del sistema de archivos EFS**

1. Abra la [consola de administración de EFS](https://console.aws.amazon.com/efs/home?#home).

1. Elija **File Systems (Sistemas de archivos)**.

1. En la página **File systems** (Sistemas de archivos) elija el sistema de archivos que quiere editar o para el que desea crear una política de sistema de archivos. Aparece la página de detalles de ese sistema de archivos.

1. Seleccione la pestaña **File system policy** (Política del sistema de archivos).

   Si la política está vacía, significa que se está utilizando la política del sistema de archivos EFS predeterminada. Para obtener más información, consulte [Política del sistema de archivos EFS por defecto](https://docs.aws.amazon.com/efs/latest/ug/iam-access-control-nfs-efs.html#default-filesystempolicy ) en la *Guía del usuario de Amazon Elastic File System*.

1. Elija **Edit (Edición de)**. Aparece la página **File system policy (Política del sistema de archivos)**.

1. En **Policy editor** (Editor de políticas), introduzca una política como la siguiente y, a continuación, seleccione **Save** (Guardar).

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Id": "ExamplePolicy01",
       "Statement": [
           {
               "Sid": "ExampleStatement01",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::123456789012:role/rds-efs-integration-role"
               },
               "Action": [
                   "elasticfilesystem:ClientMount",
                   "elasticfilesystem:ClientWrite",
                   "elasticfilesystem:ClientRootAccess"
               ],
               "Resource": "arn:aws:elasticfilesystem:us-east-1:123456789012:file-system/fs-1234567890abcdef0"
           }
       ]
   }
   ```

------

## Paso 3: asociar el rol de IAM a la instancia de base de datos de RDS para Oracle
<a name="oracle-efs-integration.iam.instance"></a>

En este paso, asociará el rol de IAM a su instancia de base de datos. Tenga en cuenta los siguientes requisitos:
+ Debe tener acceso a un rol de IAM con la política de permisos de Amazon EFS requerida adjunta. 
+ Solo puede asociar un rol de IAM a su instancia de base de datos de RDS para Oracle cada vez.
+ El estado de la instancia debe ser **Available** (Disponible).

Para obtener más información, consulte [Identity and access management for Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/auth-and-access-control.html) (Administración de identidades y accesos para Amazon EFS) en la *Guía del usuario de Amazon Elastic File System*.

### Consola
<a name="oracle-efs-integration.iam.instance.console"></a>

**Para asociar su rol de IAM a su instancia de base de datos de RDS para Oracle**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon RDS en [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Seleccione **Bases de datos**.

1. Si la instancia de base de datos no está disponible, elija **Actions (Acciones)** y, a continuación, **Start (Inicio)**. Cuando el estado de la instancia muestre **Started (Iniciada)**, vaya al paso siguiente.

1. Seleccione el nombre de la instancia de base de datos Oracle para mostrar sus detalles.

1. En la pestaña **Connectivity & Security** (Conectividad y seguridad), desplácese hacia abajo hasta la sección **Manage IAM roles** (Administrar roles de IAM) de la parte inferior de la página.

1. Elija el rol que se va a añadir en la sección **Add IAM roles to this instance** (Agregar roles de IAM a esta instancia).

1. En **Feature** (Característica), elija **EFS\$1INTEGRATION**.

1. Seleccione **Add role (Añadir rol)**.

### AWS CLI
<a name="oracle-efs-integration.iam.instance.CLI"></a>

El siguiente comando de la AWS CLI añade el rol a una instancia de base de datos de Oracle denominada `mydbinstance`.

**Example**  
Para Linux, macOS o Unix:  

```
aws rds add-role-to-db-instance \
   --db-instance-identifier mydbinstance \
   --feature-name EFS_INTEGRATION \
   --role-arn your-role-arn
```
Para Windows:  

```
aws rds add-role-to-db-instance ^
   --db-instance-identifier mydbinstance ^
   --feature-name EFS_INTEGRATION ^
   --role-arn your-role-arn
```

Sustituya `your-role-arn` por el ARN del rol anotado en el paso anterior. `EFS_INTEGRATION` debe especificarse para la opción `--feature-name`.

# Adición de la opción EFS\$1INTEGRATION
<a name="oracle-efs-integration.adding"></a>

Para integrar Amazon RDS para Oracle con Amazon EFS, su instancia de base de datos debe estar asociada a un grupo de opciones que incluya la opción `EFS_INTEGRATION`. 

Varias instancias de base de datos de Oracle que pertenecen al mismo grupo de opciones comparten el mismo sistema de archivos EFS. Las distintas instancias de base de datos pueden acceder a los mismos datos, pero el acceso se puede dividir mediante diferentes directorios de Oracle. Para obtener más información, consulte [Transferencia de archivos entre RDS para Oracle y un sistema de archivos Amazon EFS](oracle-efs-integration.transferring.md).

## Consola
<a name="oracle-efs-integration.adding.console"></a>

**Para configurar un grupo de opciones para la integración con Amazon EFS**

1. Cree un nuevo grupo de opciones o identifique uno ya existente al que pueda añadir la opción `EFS_INTEGRATION`.

   Para obtener información acerca de cómo crear un grupo de opciones, consulte [Creación de un grupo de opciones](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create).

1. Agregue la opción `EFS_INTEGRATION` al grupo de opciones. Debe especificar el ID del sistema de archivos `EFS_ID` y configurar el indicador `USE_IAM_ROLE`.

   Para obtener más información, consulte [Agregar una opción a un grupo de opciones](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption).

1. Asocie el grupo de opciones a su instancia de base de datos de cualquiera de las siguientes maneras:
   + Cree una nueva instancia de base de datos de Oracle y asóciele el grupo de opciones. Para obtener información acerca de la creación de una instancia de base de datos, consulte [Creación de una instancia de base de datos de Amazon RDS](USER_CreateDBInstance.md).
   + Modifique la instancia de base de datos de Oracle para asociarle el grupo de opciones. Para obtener información acerca de cómo modificar una instancia de base de datos de Oracle, consulte [Modificación de una instancia de base de datos de Amazon RDS](Overview.DBInstance.Modifying.md).

## AWS CLI
<a name="oracle-efs-integration.adding.cli"></a>

**Para configurar un grupo de opciones para la integración EFS**

1. Cree un nuevo grupo de opciones o identifique uno ya existente al que pueda añadir la opción `EFS_INTEGRATION`.

   Para obtener información acerca de cómo crear un grupo de opciones, consulte [Creación de un grupo de opciones](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create).

1. Añada la opción `EFS_INTEGRATION` al grupo de opciones.

   Por ejemplo, el siguiente comando de la AWS CLI añade la opción `EFS_INTEGRATION` a un grupo de opciones denominado **myoptiongroup**.  
**Example**  

   Para Linux, macOS o:Unix

   ```
   aws rds add-option-to-option-group \
      --option-group-name myoptiongroup \
      --options "OptionName=EFS_INTEGRATION,OptionSettings=\ 
      [{Name=EFS_ID,Value=fs-1234567890abcdef0},{Name=USE_IAM_ROLE,Value=TRUE}]"
   ```

   En:Windows

   ```
   aws rds add-option-to-option-group ^
      --option-group-name myoptiongroup ^
      --options "OptionName=EFS_INTEGRATION,OptionSettings=^
      [{Name=EFS_ID,Value=fs-1234567890abcdef0},{Name=USE_IAM_ROLE,Value=TRUE}]"
   ```

1. Asocie el grupo de opciones a su instancia de base de datos de cualquiera de las siguientes maneras:
   + Cree una nueva instancia de base de datos de Oracle y asóciele el grupo de opciones. Para obtener información acerca de la creación de una instancia de base de datos, consulte [Creación de una instancia de base de datos de Amazon RDS](USER_CreateDBInstance.md).
   + Modifique la instancia de base de datos de Oracle para asociarle el grupo de opciones. Para obtener información acerca de cómo modificar una instancia de base de datos de Oracle, consulte [Modificación de una instancia de base de datos de Amazon RDS](Overview.DBInstance.Modifying.md).

# Configuración de permisos del sistema de archivos Amazon EFS
<a name="oracle-efs-integration.file-system"></a>

De forma predeterminada, solo el usuario raíz (UID `0`) dispone de permisos de lectura, escritura y ejecución para un sistema de archivos EFS creado recientemente. Para que otros usuarios modifiquen el sistema de archivos, el usuario raíz debe concederles acceso de forma explícita. El usuario de la instancia de base de datos de RDS para Oracle tiene la categoría `others`. Para obtener más información, consulte [Trabajar con usuarios, grupos y permisos en el nivel del sistema de archivos de red (NFS)](https://docs.aws.amazon.com/efs/latest/ug/accessing-fs-nfs-permissions.html) en la *Guía del usuario de Amazon Elastic File System*.

Para permitir que su instancia de base de datos de RDS para Oracle pueda leer y escribir archivos en un sistema de archivos EFS, haga lo siguiente:
+ Monte un sistema de archivos EFS localmente en su instancia de Amazon EC2 en las instalaciones.
+ Configure permisos detallados.

Por ejemplo, para conceder a `other` usuarios permisos para escribir en la raíz del sistema de archivos EFS, ejecute `chmod 777` en este directorio. Para obtener más información, consulte [Ejemplos de casos de uso y permisos del sistema de archivos de Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/accessing-fs-nfs-permissions.html#accessing-fs-nfs-permissions-ex-scenarios) en la *Guía del usuario de Amazon Elastic File System*. 

# Transferencia de archivos entre RDS para Oracle y un sistema de archivos Amazon EFS
<a name="oracle-efs-integration.transferring"></a>

Para transferir archivos entre una instancia de RDS para Oracle y un sistema de archivos Amazon EFS, cree al menos un directorio de Oracle y configure los permisos del sistema de archivos EFS para controlar el acceso a la instancia de base de datos.

**Topics**
+ [Creación de un directorio de Oracle](#oracle-efs-integration.transferring.od)
+ [Transferencia de datos hacia y desde un sistema de archivos EFS: ejemplos](#oracle-efs-integration.transferring.upload)

## Creación de un directorio de Oracle
<a name="oracle-efs-integration.transferring.od"></a>

Utilice el procedimiento `rdsadmin.rdsadmin_util.create_directory_efs` para crear un directorio de Oracle. El procedimiento tiene los siguientes parámetros.


****  

| Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | 
|  `p_directory_name`  |  VARCHAR2  |  –  |  Sí  |  Nombre del directorio de Oracle.   | 
|  `p_path_on_efs`  |  VARCHAR2  |  –  |  Sí  |  Ruta al sistema de archivos EFS. El prefijo del nombre de la ruta usa el patrón `/rdsefs-fsid/`, donde *fsid* es un marcador de posición para el ID del sistema de archivos EFS. Por ejemplo, si su sistema de archivos EFS se denomina `fs-1234567890abcdef0` y usted crea un subdirectorio en ese sistema de archivos denominado `mydir`, puede especificar el siguiente valor: <pre>/rdsefs-fs-1234567890abcdef0/mydir</pre>  | 

Suponga que crea un subdirectorio denominado `/datapump1` en el sistema de archivos EFS `fs-1234567890abcdef0`. El siguiente ejemplo crea un directorio de Oracle `DATA_PUMP_DIR_EFS` que apunta al directorio `/datapump1` del sistema de archivos EFS. El valor de la ruta del sistema de archivos para el parámetro `p_path_on_efs` lleva el prefijo de cadena`/rdsefs-`.

```
BEGIN
  rdsadmin.rdsadmin_util.create_directory_efs(
    p_directory_name => 'DATA_PUMP_DIR_EFS', 
    p_path_on_efs    => '/rdsefs-fs-1234567890abcdef0/datapump1');
END;
/
```

## Transferencia de datos hacia y desde un sistema de archivos EFS: ejemplos
<a name="oracle-efs-integration.transferring.upload"></a>

El siguiente ejemplo utiliza Oracle Data Pump para exportar la tabla denominada `MY_TABLE` a un archivo `datapump.dmp`. Este archivo reside en un sistema de archivos EFS.

```
DECLARE
  v_hdnl NUMBER;
BEGIN
  v_hdnl := DBMS_DATAPUMP.OPEN(operation => 'EXPORT', job_mode => 'TABLE', job_name=>null);
  DBMS_DATAPUMP.ADD_FILE(
    handle    => v_hdnl,
    filename  => 'datapump.dmp',
    directory => 'DATA_PUMP_DIR_EFS',
    filetype  => dbms_datapump.ku$_file_type_dump_file);
  DBMS_DATAPUMP.ADD_FILE(
    handle    => v_hdnl,
    filename  => 'datapump-exp.log',
    directory => 'DATA_PUMP_DIR_EFS',
    filetype  => dbms_datapump.ku$_file_type_log_file);
  DBMS_DATAPUMP.METADATA_FILTER(v_hdnl,'NAME_EXPR','IN (''MY_TABLE'')');
  DBMS_DATAPUMP.START_JOB(v_hdnl);
END;
/
```

El siguiente ejemplo utiliza Oracle Data Pump para importar la tabla denominada `MY_TABLE` desde el archivo `datapump.dmp`. Este archivo reside en un sistema de archivos EFS.

```
DECLARE
  v_hdnl NUMBER;
BEGIN
  v_hdnl := DBMS_DATAPUMP.OPEN(
    operation => 'IMPORT',
    job_mode  => 'TABLE',
    job_name  => null);
  DBMS_DATAPUMP.ADD_FILE(
    handle    => v_hdnl,
    filename  => 'datapump.dmp',
    directory => 'DATA_PUMP_DIR_EFS',
    filetype  => dbms_datapump.ku$_file_type_dump_file );
  DBMS_DATAPUMP.ADD_FILE(
    handle    => v_hdnl,
    filename  => 'datapump-imp.log',
    directory => 'DATA_PUMP_DIR_EFS',
    filetype  => dbms_datapump.ku$_file_type_log_file);
  DBMS_DATAPUMP.METADATA_FILTER(v_hdnl,'NAME_EXPR','IN (''MY_TABLE'')');
  DBMS_DATAPUMP.START_JOB(v_hdnl);
END;
/
```

Para obtener más información, consulte [Importación de datos a Oracle en Amazon RDS](Oracle.Procedural.Importing.md).

# Eliminación de la opción EFS\$1INTEGRATION
<a name="oracle-efs-integration.removing"></a>

Los pasos para eliminar la opción `EFS_INTEGRATION` dependen de si se va a eliminar la opción de varias instancias de base de datos o de una sola instancia.


| Número de instancias de base de datos | Acción | Información relacionada | 
| --- | --- | --- | 
| Múltiple | Elimine la opción EFS\$1INTEGRATION del grupo de opciones al que pertenecen las instancias de base de datos. Este cambio afecta a todas las instancias de base de datos que utilizan el grupo de opciones. | [Quitar una opción de un grupo de opciones](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.RemoveOption) | 
| Única | Modifique la instancia de base de datos y especifique otro grupo de opciones que no incluya la opción EFS\$1INTEGRATION. Puede especificar el grupo de opciones predeterminado (vacío) u otro grupo de opciones personalizado. | [Modificación de una instancia de base de datos de Amazon RDS](Overview.DBInstance.Modifying.md) | 

Tras eliminar la opción `EFS_INTEGRATION`, también puede eliminar el sistema de archivos EFS que estaba conectado a las instancias de base de datos.

# Solución de problemas de la integración de Amazon EFS
<a name="oracle-efs-integration.troubleshooting"></a>

Su instancia de base de datos de RDS para Oracle supervisa la conectividad a un sistema de archivos Amazon EFS. Cuando la supervisión detecta un problema, puede intentar corregirlo y publicar un evento en la consola de RDS. Para obtener más información consulte [Consulta de eventos de Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ListEvents.html).

Utilice la información de esta sección como ayuda para diagnosticar y solucionar problemas comunes cuando trabaje con la integración de Amazon EFS.


| Notificación | Descripción | Action | 
| --- | --- | --- | 
|  `The EFS for RDS Oracle instance instance_name isn't available on the primary host. NFS port 2049 of your EFS isn't reachable.`  |  La instancia de base de datos no se puede comunicar con el sistema de archivos EFS.  |  Asegúrese de lo siguiente: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/oracle-efs-integration.troubleshooting.html)  | 
|  `The EFS isn't reachable.`  |  Se ha producido un error al instalar la opción `EFS_INTEGRATION`.  |  Asegúrese de lo siguiente: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/oracle-efs-integration.troubleshooting.html)  | 
|  `The associated role with your DB instance wasn't found.`  |  Se ha producido un error al instalar la opción `EFS_INTEGRATION`.  |  Asegúrese de haber asociado su rol de IAM a su instancia de base de datos de RDS para Oracle.  | 
|  `The associated role with your DB instance wasn't found.`  |  Se ha producido un error al instalar la opción `EFS_INTEGRATION`. RDS para Oracle se restauró a partir de una instantánea de base de datos con la opción `USE_IAM_ROLE` configurada en `TRUE`.  |  Asegúrese de haber asociado su rol de IAM a su instancia de base de datos de RDS para Oracle.  | 
|  `The associated role with your DB instance wasn't found.`  |  Se ha producido un error al instalar la opción `EFS_INTEGRATION`. RDS para Oracle se creó a partir de una plantilla de CloudFormation integral con la opción `USE_IAM_ROLE` configurada en `TRUE`.  |  Como solución alternativa, realice los siguientes pasos: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/oracle-efs-integration.troubleshooting.html)  | 
|  `PLS-00302: component 'CREATE_DIRECTORY_EFS' must be declared`  |  Este error puede producirse cuando utilice una versión de RDS para Oracle que no admite Amazon EFS.  |  Asegúrese de utilizar la instancia de base de datos de RDS para Oracle versión 19.0.0.0.ru-2022-07.rur-2022-07.r1 o posterior.  | 
|  `Read access of your EFS is denied. Check your file system policy.`  |  La instancia de base de datos no puede leer el sistema de archivos EFS.  |  Asegúrese de que su sistema de archivos EFS permita el acceso de lectura a través del rol de IAM o en el nivel del sistema de archivos EFS.   | 
|  N/A  |  La instancia de base de datos no puede escribir el sistema de archivos EFS.  |  Siga estos pasos: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/oracle-efs-integration.troubleshooting.html)  | 

# Máquina virtual Oracle Java
<a name="oracle-options-java"></a>

Amazon RDS admite Oracle Java Virtual Machine (JVM) mediante el uso de la opción `JVM`. Mediante Oracle Java se suministran un esquema SQL y funciones que facilitan el uso de las características de Oracle Java en una base de datos Oracle. Para obtener más información, consulte [ Introduction to Java in Oracle Database](https://docs.oracle.com/database/121/JJDEV/chone.htm) en la documentación de Oracle. Puede utilizar Oracle JVM con todas las versiones de Oracle Database 21c (21.0.0) y Oracle Database 19c (19.0.0).

## Consideraciones para Oracle JVM
<a name="oracle-options-java.considerations"></a>

La implementación de Java en Amazon RDS dispone de un conjunto limitado de permisos. Se concede al usuario maestro el rol `RDS_JAVA_ADMIN`, que proporciona un subconjunto de privilegios gracias al rol `JAVA_ADMIN`. Para enumerar los privilegios concedidos al rol `RDS_JAVA_ADMIN`, ejecute la siguiente consulta en su instancia de base de datos:

```
SELECT * FROM dba_java_policy 
   WHERE grantee IN ('RDS_JAVA_ADMIN', 'PUBLIC') 
   AND enabled = 'ENABLED' 
   ORDER BY type_name, name, grantee;
```

## Requisitos previos para Oracle JVM
<a name="oracle-options-java.prerequisites"></a>

A continuación se indican los requisitos previos para utilizar Oracle Java:
+ Su instancia de base de datos debe ser de una clase suficientemente grande. Oracle Java no es compatible con la clase de instancia de base de datos db.t3.small. Para obtener más información, consulte [Clases de instancia de base de datos de ](Concepts.DBInstanceClass.md).
+ Su instancia de base de datos debe tener **Auto Minor Version Upgrade** habilitada. Esta opción permite que la instancia de base de datos reciba automáticamente las actualizaciones de la versión secundaria del motor de base de datos cuando estén disponibles. Amazon RDS utiliza esta opción para actualizar su instancia de base de datos a la PSU (Patch Set Update) de Oracle más reciente o actualización de la versión (RU). Para obtener más información, consulte [Modificación de una instancia de base de datos de Amazon RDS](Overview.DBInstance.Modifying.md). 

## Prácticas recomendadas para Oracle JVM
<a name="oracle-options-java.best-practices"></a>

A continuación, se indican las prácticas recomendadas para utilizar Oracle Java: 
+ Para que la seguridad sea máxima, use la opción `JVM` con Capa de conexión segura (SSL). Para obtener más información, consulte [Capa de conexión segura de Oracle](Appendix.Oracle.Options.SSL.md). 
+ Configure su instancia de base de datos para restringir el acceso a la red. Para obtener más información, consulte [Escenarios de acceso a una instancia de base de datos en una VPC](USER_VPC.Scenarios.md) y [Uso de una instancia de base de datos en una VPC](USER_VPC.WorkingWithRDSInstanceinaVPC.md). 
+ Actualice la configuración de los puntos de enlace HTTPS para admitir TLSv1.2 si cumple las siguientes condiciones:
  + Utilice la máquina virtual de Oracle Java (JVM) para conectar un punto de enlace HTTPS a través de los protocolos TLSv1 o TLSv1.1.
  + El punto de enlace no admite el protocolo TLSv1.2.
  + No ha aplicado la actualización de la versión de abril de 2021 a Oracle Database.

  Al actualizar la configuración del punto de enlace, se asegura de que la conectividad de la JVM con el punto de enlace HTTPS siga en funcionamiento. Para obtener más información sobre los cambios de TLS en Oracle JRE y JDK, consulte [Plan de desarrollo criptográfico de Oracle JRE y JDK](https://java.com/en/jre-jdk-cryptoroadmap.html).

## Adición de la opción Oracle JVM
<a name="oracle-options-java.add"></a>

A continuación se muestra el proceso general para añadir la opción `JVM` a una instancia de base de datos: 

1. Cree un grupo de opciones nuevo o copie o modifique un grupo de opciones existente.

1. Añada la opción al grupo de opciones.

1. Asocie el grupo de opciones a la instancia de base de datos.

Se produce una breve interrupción mientras se añade la opción `JVM`. Después de añadir la opción , no es necesario reiniciar la instancia de base de datos. En cuanto esté activo el grupo de opciones, Oracle Java estará disponible. 

**nota**  
Durante esta interrupción, las funciones de verificación de contraseña se deshabilitan brevemente. También puede esperar ver eventos relacionados con las funciones de verificación de contraseña durante la interrupción. Las funciones de verificación de contraseña se vuelven a habilitar antes de que la instancia de base de datos de Oracle esté disponible.

**Para añadir la opción JVM a una instancia de base de datos**

1. Determine el grupo de opciones que desea utilizar. Puede crear un grupo de opciones o utilizar uno existente. Si desea utilizar un grupo de opciones existente, vaya al siguiente paso. De lo contrario, cree un grupo de opciones de base de datos personalizado con las siguientes opciones: 
   + Para **Engine (Motor)**, elija el motor de base de datos utilizado por la instancia de base de datos (**oracle-ee**, **oracle-se**, **oracle-se1** o bien **oracle-se2**). 
   + En **Major engine version (Versión principal del motor)**, elija la versión de su instancia de base de datos. 

   Para obtener más información, consulte [Creación de un grupo de opciones](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create). 

1. Añada la opción **JVM** al grupo de opciones. Para obtener más información acerca de la adición de opciones, consulte [Agregar una opción a un grupo de opciones](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption). 

1. Aplique el grupo de opciones a una instancia de base de datos nueva o existente: 
   + Si se trata de una instancia de base de datos nueva, aplique el grupo de opciones al lanzar la instancia. Para obtener más información, consulte [Creación de una instancia de base de datos de Amazon RDS](USER_CreateDBInstance.md).
   + Para una instancia de base de datos existente, el grupo de opciones se aplica modificando la instancia y asociando el grupo de opciones nuevo. Para obtener más información, consulte [Modificación de una instancia de base de datos de Amazon RDS](Overview.DBInstance.Modifying.md).

1. Concesión de permisos necesarios a los usuarios.

   El usuario maestro de Amazon RDS tiene los permisos para usar la opción `JVM` de forma predeterminada. Si otros usuarios necesitan estos permisos, conéctese a la instancia de base de datos como usuario maestro en un cliente SQL y conceda los permisos a los usuarios.

   En el siguiente ejemplo se conceden permisos para usar la opción `JVM` al usuario `test_proc`.

   ```
   create user test_proc identified by password;
   CALL dbms_java.grant_permission('TEST_PROC', 'oracle.aurora.security.JServerPermission', 'LoadClassInPackage.*', '');
   ```
**nota**  
Especifique una contraseña distinta de la que se muestra aquí como práctica recomendada de seguridad.

   Una vez que se conceden los permisos al usuario, la siguiente consulta debería devolver el resultado.

   ```
   select * from dba_java_policy where grantee='TEST_PROC';
   ```
**nota**  
El nombre de usuario de Oracle distingue entre mayúsculas y minúsculas; normalmente todos los caracteres están en mayúsculas.

## Eliminación de la opción Oracle JVM
<a name="oracle-options-java.remove"></a>

Puede quitar la opción `JVM` de una instancia de base de datos. Se produce una breve interrupción mientras se quita la opción. Después de quitar la opción `JVM`, no es necesario reiniciar la instancia de base de datos. 

**aviso**  
 La eliminación de la opción `JVM` puede dar lugar a la pérdida de datos si la instancia de base de datos usa los tipos de datos habilitados como parte de la opción. Realice copias de seguridad de los datos antes de continuar. Para obtener más información, consulte [Copia de seguridad, restauración y exportación de datos](CHAP_CommonTasks.BackupRestore.md). 

Para quitar la opción `JVM` de una instancia de base de datos, realice una de las siguientes operaciones: 
+ Quite la opción `JVM` del grupo de opciones al que pertenece. Este cambio afecta a todas las instancias de base de datos que utilizan el grupo de opciones. Para obtener más información, consulte [Quitar una opción de un grupo de opciones](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.RemoveOption). 
+ Modifique la instancia de base de datos y especifique otro grupo de opciones que no incluya la opción `JVM`. Este cambio afecta a una única instancia de base de datos. Puede especificar el grupo de opciones predeterminado (vacío) u otro grupo de opciones personalizado. Para obtener más información, consulte [Modificación de una instancia de base de datos de Amazon RDS](Overview.DBInstance.Modifying.md). 

# Oracle Enterprise Manager
<a name="Oracle.Options.OEM"></a>

Amazon RDS es compatible con Oracle Enterprise Manager (OEM). OEM es la línea de productos de Oracle para la administración integrada de tecnología de la información empresarial. 

Amazon RDS solo admite OEM en Oracle Database 19c (CDB o no CDB). En la tabla siguiente se describen las opciones de OEM admitidas.


****  

| Opción | ID de la opción | Versiones OEM compatibles | 
| --- | --- | --- | 
|  [OEM Database Express](Appendix.Oracle.Options.OEM_DBControl.md)  |  `OEM`  |  OEM Database Express 19c  | 
|  [OEM Management Agent](Oracle.Options.OEMAgent.md)  |  `OEM_AGENT`  |  OEM Cloud Control for 13c  | 

**nota**  
Puede utilizar OEM Database u OEM Management Agent, pero no ambos.

# Oracle Enterprise Manager Database Express
<a name="Appendix.Oracle.Options.OEM_DBControl"></a>

Amazon RDS es compatible con Oracle Enterprise Manager Database Express (EM Express) mediante la opción OEM. Amazon RDS admite EM Express para Oracle Database 19c tanto con la arquitectura de CDB como con una arquitectura que no sea de CDB.

EM Express es una herramienta web de administración de bases de datos que está incluida en su base de datos y que solo está disponible cuando está abierta. Es compatible con las funciones clave de administración del rendimiento y de administración básica de bases de datos. Para obtener más información, consulte [Introduction to Oracle Enterprise Manager Database Express](https://docs.oracle.com/en/database/oracle/oracle-database/19/admqs/getting-started-with-database-administration.html#GUID-BA75AD46-D22E-4914-A31E-C395CD6A2BBA) en la documentación de Oracle Database.

**nota**  
No se admite EM Express para la clase de instancia de base de datos db.t3.small. Para obtener más información sobre las clases de instancias de bases de datos, consulte [Clases de instancias de base de datos de RDS para Oracle](Oracle.Concepts.InstanceClasses.md).

## Configuración de la opción OEM
<a name="Appendix.Oracle.Options.OEM_DBControl.Options"></a>

Amazon RDS admite los siguientes valores para las opciones de OEM. 


****  

| Ajuste de la opción | Valores válidos | Descripción | 
| --- | --- | --- | 
| **Puerto** | Un valor entero |  El puerto en la instancia de base de datos de RDS para Oracle que escucha para EM Express. El valor predeterminado es 5500.  | 
| **Grupos de seguridad de** | — |  Un grupo de seguridad que tiene acceso a **Port**.   | 

## Paso 1: añadir la opción OEM
<a name="Appendix.Oracle.Options.OEM_DBControl.Add"></a>

El proceso general para añadir la opción OEM a una instancia de base de datos es el siguiente: 

1. Cree un grupo de opciones nuevo o copie o modifique un grupo de opciones existente.

1. Añada la opción al grupo de opciones.

1. Asocie el grupo de opciones con la instancia de base de datos.

Cuando se agrega la opción OEM, se produce una breve interrupción mientras la instancia de base de datos se reinicia automáticamente. 

**Para añadir la opción OEM a una instancia de base de datos**

1. Determine el grupo de opciones que desea utilizar. Puede crear un grupo de opciones o utilizar uno existente. Si desea utilizar un grupo de opciones existente, vaya al siguiente paso. De lo contrario, cree un grupo de opciones de base de datos personalizado con las siguientes opciones: 

   1. En **Engine**, elija la edición de Oracle que corresponda a la instancia de base de datos. 

   1. En **Major engine version (Versión principal del motor)**, elija la versión de su instancia de base de datos. 

   Para obtener más información, consulte [Creación de un grupo de opciones](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create). 

1. Añada la opción OEM al grupo de opciones y ajuste la configuración de opciones. Para obtener más información acerca de la adición de opciones, consulte [Agregar una opción a un grupo de opciones](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption). Para obtener más información acerca de cada opción, consulte [Configuración de la opción OEM](#Appendix.Oracle.Options.OEM_DBControl.Options). 
**nota**  
Si agrega la opción OEM a un grupo de opciones existente que ya se ha adjuntado a una o varias instancias de base de datos, se producirá una breve interrupción mientras reinician todas las instancias de base de datos. 

1. Aplique el grupo de opciones a una instancia de base de datos nueva o existente:
   + Si se trata de una instancia de base de datos nueva, aplique el grupo de opciones al lanzar la instancia. Para obtener más información, consulte [Creación de una instancia de base de datos de Amazon RDS](USER_CreateDBInstance.md). 
   + Para una instancia de base de datos existente, el grupo de opciones se aplica modificando la instancia y asociando el grupo de opciones nuevo. Cuando se agrega la opción OEM, se produce una breve interrupción mientras la instancia de base de datos se reinicia automáticamente. Para obtener más información, consulte [Modificación de una instancia de base de datos de Amazon RDS](Overview.DBInstance.Modifying.md). 

**nota**  
También puede utilizar la AWS CLI para agregar la opción OEM. Para ver ejemplos, consulte [Agregar una opción a un grupo de opciones](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption).

## Paso 2 (solo CDB): desbloquear la cuenta de usuario de DBSNMP
<a name="Appendix.Oracle.Options.OEM_DBControl.DBSNMP"></a>

Si su instancia de base de datos utiliza la arquitectura de CDB, debe iniciar sesión en EM Express como `DBSNMP`. En una CDB, `DBSNMP` es un usuario común. De forma predeterminada, esta cuenta está bloqueada. Si la instancia de base de datos no utiliza la arquitectura de CDB, omita este paso.

**Desbloqueo de la cuenta de usuario de DBSNMP en una instancia de CDB**

1. En SQL\$1Plus u otra aplicación de Oracle SQL, inicie sesión como usuario maestro en su instancia de base de datos.

1. Ejecute el siguiente procedimiento almacenado para desbloquear la cuenta de `DBSNMP`:

   ```
   1. EXEC rdsadmin.rdsadmin_util.reset_oem_agent_password('new_password');
   ```

   Si recibe un error que indica que el procedimiento no existe, reinicie la instancia de CDB para instalarla automáticamente. Para obtener más información, consulte [Reinicio de una instancia de base de datos ](USER_RebootInstance.md).

## Paso 3: acceder a EM Express a través del navegador
<a name="Appendix.Oracle.Options.OEM_DBControl.Using"></a>

Cuando se accede a EM Express desde un navegador web, aparece una ventana de inicio de sesión que solicita un nombre de usuario y una contraseña.

**Acceso a EM Express a través del navegador**

1. Identifique el punto de conexión y el puerto de EM Express de su instancia de base de datos de Amazon RDS. Para obtener información acerca de cómo encontrar el punto de enlace de su instancia de base de datos de Amazon RDS, consulte [Búsqueda del punto de conexión de la instancia de base de datos de RDS para Oracle](USER_Endpoint.md).

1. Introduzca una URL en la barra de localización del navegador con el siguiente formato. 

   ```
   https://endpoint.rds.amazonaws.com:port/em
   ```

   Por ejemplo, si el punto de conexión de la instancia de base de datos de Amazon RDS es `mydb.a1bcde234fgh.us-east-1.rds.amazonaws.com` y el puerto de EM Express es `1158`, use la siguiente URL para acceder a EM Express.

   ```
   1. https://mydb.f9rbfa893tft.us-east-1.rds.amazonaws.com:1158/em
   ```

1. Cuando se le pida la información de inicio de sesión, lleve a cabo alguna de las siguientes acciones, dependiendo de la arquitectura de la base de datos:  
**La base de datos no es de CDB.**  
Escriba el nombre de usuario maestro y la contraseña maestra para la instancia de base de datos.  
**La base de datos es de CDB.**  
Introduzca `DBSNMP` como usuario y la contraseña de `DBSNMP`. Deje vacío el campo `Container`.

## Modificación de la configuración de OEM Database
<a name="Appendix.Oracle.Options.OEM_DBControl.ModifySettings"></a>

Después de activar OEM Database, puede modificar la configuración de grupos de seguridad de la opción. 

No se puede modificar el número de puerto de OEM después de asociar el grupo de opciones una instancia de base de datos. Para cambiar el número de puerto de OEM de una instancia de base de datos, haga lo siguiente: 

1. Cree un nuevo grupo de opciones.

1. Añada la opción OEM con el nuevo número de puerto al grupo de opciones. 

1. Elimine el grupo de opciones existente de la instancia de base de datos.

1. Añada el grupo de opciones nuevo a la instancia de base de datos.

Para obtener más información acerca de cómo modificar la configuración de las opciones, consulte [Modificación de una configuración de opciones](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.ModifyOption). Para obtener más información acerca de cada opción, consulte [Configuración de la opción OEM](#Appendix.Oracle.Options.OEM_DBControl.Options). 

## Ejecución de tareas OEM Database Express
<a name="Appendix.Oracle.Options.OEM_DBControl.DBTasks"></a>

Puede utilizar los procedimientos de Amazon RDS para ejecutar determinadas tareas de OEM Database Express. Al ejecutar estos procedimientos, puede hacer las tareas que se enumeran a continuación.

**nota**  
Las tareas de OEM Database Express se ejecutan de forma asíncrona.

**Topics**
+ [Cambio del front-end del sitio web para OEM Database Express a Adobe Flash](#Appendix.Oracle.Options.OEM_DBControl.DBTasks.FrontEndToFlash)
+ [Cambio del front-end del sitio web para OEM Database Express a Oracle JET](#Appendix.Oracle.Options.OEM_DBControl.DBTasks.FrontEndToOracleJET)

### Cambio del front-end del sitio web para OEM Database Express a Adobe Flash
<a name="Appendix.Oracle.Options.OEM_DBControl.DBTasks.FrontEndToFlash"></a>

**nota**  
Esta tarea solo está disponible para Oracle Database 19c no CDB.

A partir de Oracle Database 19c, Oracle ha dado de baja la antigua interfaz de usuario de OEM Database Express, que se basaba en Adobe Flash. En su lugar, OEM Database Express utiliza ahora una interfaz creada con Oracle JET. Si tiene dificultades con la nueva interfaz, puede volver a la interfaz basada en Flash obsoleta. Las dificultades que puede tener con la nueva interfaz incluyen quedarse atascado en una pantalla `Loading` después de iniciar sesión en OEM Database Express. También puede perder ciertas características que estaban presentes en la versión basada en Flash de OEM Database Express.

Para cambiar el front-end del sitio web de OEM Database Express a Adobe Flash, ejecute el procedimiento de Amazon RDS `rdsadmin.rdsadmin_oem_tasks.em_express_frontend_to_flash`. Este procedimiento es equivalente al comando `execemx emx` de SQL.

Las prácticas recomendadas de seguridad desalientan el uso de Adobe Flash. Aunque puede volver a OEM Database Express basado en Flash, se recomienda el uso de los sitios web de OEM Database Express basados en JET si es posible. Si vuelve a utilizar Adobe Flash y desea volver a Oracle JET, utilice el procedimiento `rdsadmin.rdsadmin_oem_tasks.em_express_frontend_to_jet`. Después de una actualización de la base de datos Oracle, una versión más reciente de Oracle JET podría resolver problemas relacionados con JET en OEM Database Express. Para obtener más información sobre cómo cambiar a Oracle JET, consulte [Cambio del front-end del sitio web para OEM Database Express a Oracle JET](#Appendix.Oracle.Options.OEM_DBControl.DBTasks.FrontEndToOracleJET).

**nota**  
La ejecución de esta tarea desde la instancia de base de datos de origen para una réplica de lectura también hace que la réplica de lectura cambie sus front-ends del sitio web de OEM Database Express a Adobe Flash.

La siguiente invocación del procedimiento crea una tarea para cambiar el sitio web de OEM Database Express a Adobe Flash y devuelve el ID de la tarea.

```
SELECT rdsadmin.rdsadmin_oem_tasks.em_express_frontend_to_flash() as TASK_ID from DUAL;
```

Para ver el resultado, visualice el archivo de salida de la tarea.

```
SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP','dbtask-task-id.log'));
```

Reemplace *`task-id`* con el ID de tarea devuelto por el procedimiento. Si necesita más información sobre el procedimiento `rdsadmin.rds_file_util.read_text_file` de Amazon RDS, consulte [Lectura de archivos de un directorio de instancia de base de datos](Appendix.Oracle.CommonDBATasks.Misc.md#Appendix.Oracle.CommonDBATasks.ReadingFiles) 

También puede ver el contenido del archivo de salida de la tarea en la Consola de administración de AWS buscando las entradas de registro en las sección **Logs & events (Registros y eventos)** de la `task-id`.

### Cambio del front-end del sitio web para OEM Database Express a Oracle JET
<a name="Appendix.Oracle.Options.OEM_DBControl.DBTasks.FrontEndToOracleJET"></a>

**nota**  
Esta tarea solo está disponible para Oracle Database 19c no CDB.

Para cambiar el front-end del sitio web de OEM Database Express a Oracle JET, ejecute el procedimiento de Amazon RDS `rdsadmin.rdsadmin_oem_tasks.em_express_frontend_to_jet`. Este procedimiento es equivalente al comando `execemx omx` de SQL.

De forma predeterminada, los sitios web de OEM Database Express para instancias de base de datos Oracle que ejecutan 19c o versiones posteriores utilizan Oracle JET. Si ha utilizado el procedimiento `rdsadmin.rdsadmin_oem_tasks.em_express_frontend_to_flash` para cambiar el front-end del sitio web de OEM Database Express a Adobe Flash, puede cambiar de nuevo a Oracle JET. Para hacer esto, utilice el procedimiento `rdsadmin.rdsadmin_oem_tasks.em_express_frontend_to_jet`. Para obtener más información sobre cómo cambiar a Adobe Flash, consulte [Cambio del front-end del sitio web para OEM Database Express a Adobe Flash](#Appendix.Oracle.Options.OEM_DBControl.DBTasks.FrontEndToFlash).

**nota**  
La ejecución de esta tarea desde la instancia de base de datos de origen para una réplica de lectura también hace que la réplica de lectura cambie sus front-ends del sitio web de OEM Database Express a Oracle JET.

La siguiente invocación del procedimiento crea una tarea para cambiar el sitio web de OEM Database Express a Oracle JET y devuelve el ID de la tarea.

```
SELECT rdsadmin.rdsadmin_oem_tasks.em_express_frontend_to_jet() as TASK_ID from DUAL;
```

Para ver el resultado, visualice el archivo de salida de la tarea.

```
SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP','dbtask-task-id.log'));
```

Reemplace *`task-id`* con el ID de tarea devuelto por el procedimiento. Si necesita más información sobre el procedimiento `rdsadmin.rds_file_util.read_text_file` de Amazon RDS, consulte [Lectura de archivos de un directorio de instancia de base de datos](Appendix.Oracle.CommonDBATasks.Misc.md#Appendix.Oracle.CommonDBATasks.ReadingFiles) 

También puede ver el contenido del archivo de salida de la tarea en la Consola de administración de AWS buscando las entradas de registro en las sección **Logs & events (Registros y eventos)** de la `task-id`.

## Eliminación de la opción OEM Database
<a name="Appendix.Oracle.Options.OEM_DBControl.Remove"></a>

Puede eliminar la opción OEM de una instancia de base de datos. Cuando se elimina las opción OEM, se produce una breve interrupción mientras la instancia se reinicia automáticamente. Por lo tanto, después de eliminar la opción OEM, no es necesario reiniciar la instancia de base de datos.

Para eliminar la opción OEM de una instancia de base de datos, realice una de las siguientes operaciones:
+ Elimine la opción OEM del grupo de opciones al que pertenece. Este cambio afecta a todas las instancias de base de datos que utilizan el grupo de opciones. Para obtener más información, consulte [Quitar una opción de un grupo de opciones](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.RemoveOption). 
+ Modifique la instancia de base de datos y especifique otro grupo de opciones que no incluya la opción OEM. Este cambio afecta a una única instancia de base de datos. Puede especificar el grupo de opciones predeterminado (vacío) u otro grupo de opciones personalizado. Para obtener más información, consulte [Modificación de una instancia de base de datos de Amazon RDS](Overview.DBInstance.Modifying.md). 

# Oracle Management Agent para Enterprise Manager Cloud Control
<a name="Oracle.Options.OEMAgent"></a>

Oracle Enterprise Manager (OEM) Management Agent es un componente de software que monitoriza destinos que se ejecutan en hosts y comunica esa información al nivel intermedio de Oracle Management Service (OMS). Amazon RDS es compatible con Management Agent mediante el uso de la opción `OEM_AGENT`. 

Para obtener más información, consulte [Overview of Oracle Enterprise Manager Cloud Control 12c](http://docs.oracle.com/cd/E24628_01/doc.121/e25353/overview.htm) y [Overview of Oracle Enterprise Manager Cloud Control 13c](http://docs.oracle.com/cd/E63000_01/EMCON/overview.htm#EMCON109) en la documentación de Oracle.

**Topics**
+ [Requisitos de Management Agent](#Oracle.Options.OEMAgent.PreReqs)
+ [Requisitos previos de comunicación del host de OMS](#Oracle.Options.OEMAgent.PreReqs.host)
+ [Limitaciones de Management Agent](#Oracle.Options.OEMAgent.limitations)
+ [Configuración de opción de Management Agent](#Oracle.Options.OEMAgent.Options)
+ [Habilitación de la opción del agente de gestión a la instancia de base de datos](#Oracle.Options.OEMAgent.Enable)
+ [Eliminar la opción de Management Agent](#Oracle.Options.OEMAgent.Remove)
+ [Realización de tareas de base de datos con Management Agent](#Oracle.Options.OEMAgent.DBTasks)

## Requisitos de Management Agent
<a name="Oracle.Options.OEMAgent.PreReqs"></a>

A continuación, se indican los requisitos generales para utilizar Management Agent: 
+ Su instancia de base de datos debe ejecutar Oracle Database 19c (19.0.0.0). Puede utilizar la arquitectura de CDB o no CDB.
+ Debe utilizar un Oracle Management Service (OMS) configurado para conectarse a su instancia de base de datos. Tenga en cuenta los siguientes requisitos de OMS:
  + Las versiones 13.5.0.0.v2 y 13.5.0.0.v3 del agente de gestión requieren la versión 13.5.0.23 o 24.1 de OMS.
  + La versión 13.5.0.0.v1 del agente de gestión requiere la versión 13.5.0.0 o 24.1 de OMS.
  + Las versiones 13.4.0.9.v1 y 13.4.0.9.v2 del agente de gestiones requieren la versión 13.4.0.9 o posterior de OMS y el parche 32198287.
+ En la mayoría de los casos, debe configurar la VPC para permitir conexiones desde OMS a su instancia de base de datos. Si no está familiarizado con Amazon Virtual Private Cloud (Amazon VPC), le recomendamos que antes de seguir realice los pasos que aparecen en [Tutorial: Creación de una VPC para utilizarla con una instancia de base de datos (solo IPv4)](CHAP_Tutorials.WebServerDB.CreateVPC.md). 
+ Puede utilizar Management Agent con Oracle Enterprise Manager Cloud Control para 12c y 13c. Asegúrese de que dispone de suficiente espacio de almacenamiento para su versión de OEM:
  + Al menos 8,5 GiB para OEM 13c versión 5
  + Al menos 8,5 GiB para OEM 13c versión 4
  + Al menos 8,5 GiB para OEM 13c versión 3
  + Al menos 5,5 GiB para OEM 13c versión 2
  + Al menos 4,5 GiB para OEM 13c versión 1
  + Al menos 2,5 GiB para OEM 12c
+ Si utiliza las versiones `OEM_AGENT 13.2.0.0.v3` y `13.3.0.0.v2` de Management Agent y desea utilizar la conectividad de TCPS, siga las instrucciones de [Configuración de certificados de entidades de certificación externas para la comunicación con las bases de datos de destino](https://docs.oracle.com/cd/E73210_01/EMSEC/GUID-8337AD48-1A32-4CD5-84F3-256FAE93D043.htm#EMSEC15996) que figura en la documentación de Oracle. Además, actualice el JDK en su OMS siguiendo las instrucciones en el documento de Oracle con el Doc ID 2241358.1 de Oracle. Este paso garantiza que OMS sea compatible con todos los conjuntos de cifrado compatibles con la base de datos.
**nota**  
La conectividad TCPS entre Management Agent y la instancia de base de datos solo es compatible para las versiones `OEM_AGENT 13.2.0.0.v3`, `13.3.0.0.v2`, `13.4.0.9.v1` y posteriores de Management Agent.

## Requisitos previos de comunicación del host de OMS
<a name="Oracle.Options.OEMAgent.PreReqs.host"></a>

Asegúrese de que su host de OMS y su instancia de base de datos de Amazon RDS puedan comunicarse. Haga lo siguiente: 
+ Para conectarse desde Management Agent al host de OMS cuando este se encuentre detrás de un firewall, agregue las direcciones IP de las instancias de base de datos al firewall. Asegúrese de que el firewall del OMS permita el siguiente tráfico de red:  
Desde el host de OMS a la instancia de base de datos  
Configure una regla de firewall unidireccional que permita el tráfico del host de OMS al puerto del oyente de base de datos (valor predeterminado 1521) y el puerto de OEM Agent (valor predeterminado 3872).  
Desde la instancia de base de datos al host de OMS  
Configure una regla de firewall unidireccional que permita el tráfico desde la instancia de base de datos al puerto HTTP de OMS (el valor predeterminado es 4903).
+ Para conectarse desde OMS a Management Agent, si OMS tiene un nombre de host que se pueda resolver públicamente, debe agregar la dirección de OMS a un grupo de seguridad. El grupo de seguridad debe tener reglas de entrada que permitan el acceso al puerto del agente de escucha de base de datos y al puerto de Management Agent. Para ver un ejemplo de cómo crear una regla de seguridad y agregar reglas de entrada, consulte [Tutorial: Creación de una VPC para utilizarla con una instancia de base de datos (solo IPv4)](CHAP_Tutorials.WebServerDB.CreateVPC.md). 
+ Para conectarse desde OMS a Management Agent, si OMS no tiene un nombre de host que se pueda resolver públicamente, utilice uno de los siguientes: 
  + Si OMS se hospeda en una instancia de Amazon Elastic Compute Cloud (Amazon EC2) en una VPC privada, puede configurar la interconexión de VPC para conectarse desde OMS a Management Agent. Para obtener más información, consulte [Acceso a una instancia de base de datos en una VPC desde una instancia EC2 de otra VPC](USER_VPC.Scenarios.md#USER_VPC.Scenario3). 
  + Si OMS se hospeda localmente, puede configurar una conexión de VPN para permitir el acceso desde OMS a Management Agent. Para obtener más información, consulte [Acceso a una instancia de base de datos en una VPC desde una aplicación cliente a través de internet](USER_VPC.Scenarios.md#USER_VPC.Scenario4) o [Conexiones de VPN](https://docs.aws.amazon.com/vpc/latest/userguide/vpn-connections.html). 
+ Para conectar la versión 13.5.0.0 (v1-v3) del agente de gestión de OEM a un host de OMS 24.1, configure `MINIMUM_TLS_VERSION` para usar el protocolo de TLS 1.2 `TLSv1.2` en las opciones de configuración.

## Limitaciones de Management Agent
<a name="Oracle.Options.OEMAgent.limitations"></a>

A continuación se indican algunas limitaciones al utilizar Management Agent: 
+ No puede proporcionar imágenes personalizadas de Oracle Management Agent.
+ No se admiten las tareas administrativas, como la ejecución de tareas y la aplicación de parches a la base de datos, que requieren credenciales de host. 
+ No se garantiza que las métricas de host y la lista de procesos reflejen el estado real del sistema. Por lo tanto, no debe utilizar OEM para monitorear el sistema de archivos raíz o el sistema de archivos de punto de montaje. Para obtener más información acerca de cómo monitorear el sistema operativo, consulte [Supervisión de las métricas del sistema operativo con Supervisión mejorada](USER_Monitoring.OS.md).
+ La detección automática es incompatible. Los destinos de base de datos deben agregarse manualmente. 
+ La disponibilidad del módulo OMS depende de la edición de su base de datos. Por ejemplo, el módulo de ajuste y diagnóstico de desempeño de la base de datos solo está disponible para Oracle Database Enterprise Edition. 
+ Management Agent consume memoria adicional y recursos informáticos. Si tiene problemas de rendimiento después de habilitar la opción `OEM_AGENT`, recomendamos que realice una ampliación a una clase de instancia de base de datos más grande. Para obtener más información, consulte [Clases de instancia de base de datos de ](Concepts.DBInstanceClass.md) y [Modificación de una instancia de base de datos de Amazon RDS](Overview.DBInstance.Modifying.md). 
+ El usuario que ejecuta `OEM_AGENT` en el host de Amazon RDS no tiene acceso de sistema operativo al registro de alertas. Por lo tanto, no puede recopilar métricas para `DB Alert Log` y `DB Alert Log Error Status` en OEM.

## Configuración de opción de Management Agent
<a name="Oracle.Options.OEMAgent.Options"></a>

Amazon RDS admite la siguiente configuración para la opción de Management Agent.


| Ajuste de la opción | Obligatorio | Valores válidos | Descripción | 
| --- | --- | --- | --- | 
|  **Version** (`AGENT_VERSION`)  |  Sí  |  `13.5.0.0.v3` `13.5.0.0.v2` `13.5.0.0.v1` `13.4.0.9.v2` `13.4.0.9.v1` `13.3.0.0.v2` `13.3.0.0.v1` `13.2.0.0.v3` `13.2.0.0.v2` `13.2.0.0.v1` `13.1.0.0.v1`  |  La versión del software Management Agent. La versión mínima compatible es `13.1.0.0.v1`. El nombre de la opción de la AWS CLI es `OptionVersion`.  En las regiones AWS GovCloud (US), las versiones 13.1 no están disponibles.   | 
|  **Port** (`AGENT_PORT`)  |  Sí  |  Un valor entero  |  El puerto en la instancia de base de datos que escucha el host de OMS. El valor predeterminado es 3872. El host de OMS debe pertenecer a un grupo de seguridad que tenga acceso a este puerto.  El nombre de la opción de la AWS CLI es `Port`.  | 
|  **Grupos de seguridad de**  |  Sí  |  Grupos de seguridad existentes  |  Un grupo de seguridad que tiene acceso a **Port**. El host de OMS debe pertenecer a este grupo de seguridad.  El nombre de la opción de la AWS CLI es `VpcSecurityGroupMemberships` o `DBSecurityGroupMemberships`.  | 
|  **OMS\$1HOST**  |  Sí  |  Un valor de cadena, por ejemplo *my.example.oms*   |  El nombre de host accesible públicamente o la dirección IP de OMS.  El nombre de la opción de la AWS CLI es `OMS_HOST`.  | 
|  **OMS\$1PORT**  |  Sí  |  Un valor entero  |  El puerto de carga HTTPS en el host de OMS que escucha el Management Agent.  Para determinar el puerto de carga HTTPS, conéctese al host de OMS y ejecute el siguiente comando (que requiere la contraseña de `SYSMAN`): emctl status oms -details  El nombre de la opción de la AWS CLI es `OMS_PORT`.  | 
|  **AGENT\$1REGISTRATION\$1PASSWORD**  |  Sí  |  Un valor de cadena  |  La contraseña que Management Agent utiliza para autenticarse en OMS. Recomendamos que cree una contraseña persistente en OMS antes de habilitar la opción `OEM_AGENT`. Con una contraseña persistente puede compartir un grupo de opción de Management Agent individual entre múltiples bases de datos de Amazon RDS.  El nombre de la opción de la AWS CLI es `AGENT_REGISTRATION_PASSWORD`.  | 
|  **ALLOW\$1TLS\$1ONLY**  |  No  |  `true`, `false` (predeterminado)  |  Un valor que configura el agente de OEM para que solo admita el protocolo `TLSv1` mientras el agente escucha como un servidor. Este ajuste ya no es compatible. Las versiones 13.1.0.0.v1 y superiores de Management Agent admiten seguridad de la capa de transporte (TLS) de forma predeterminada.   | 
|  **MINIMUM\$1TLS\$1VERSION**  |  No  |  `TLSv1` (predeterminado), `TLSv1.2`  |  Un valor que especifica la versión mínima de TLS admitida por el agente de OEM mientras el agente escucha como un servidor. Las versiones que ya no son compatibles del agente solo admiten la configuración `TLSv1`. Para conectar la versión 13.5.0.0 (v1-v3) a un host de OMS 24.1, configúrelo en `TLSv1.2`.  | 
|  **TLS\$1CIPHER\$1SUITE**  |  No  |  Consulte [Configuración de opción de Management Agent](#Oracle.Options.OEMAgent.Options).  |  Un valor que especifica el conjunto de cifrado TLS utilizado por el agente de OEM mientras el agente escucha como un servidor.   | 

La siguiente tabla muestra los conjuntos de cifrado TLS que admite la opción Management Agent.


| Conjunto de cifrado | Versión del agente admitida | Conforme con FedRAMP | 
| --- | --- | --- | 
| TLS\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA | Todos | No | 
| TLS\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA256 | 13.1.0.0.v1 y versiones posteriores | No | 
| TLS\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA | 13.2.0.0.v3 y versiones posteriores | No | 
| TLS\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA256 | 13.2.0.0.v3 y versiones posteriores | No | 
| TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA | 13.2.0.0.v3 y versiones posteriores | Sí | 
| TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA | 13.2.0.0.v3 y versiones posteriores | Sí | 
| TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA256 | 13.2.0.0.v3 y versiones posteriores | Sí | 
| TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA384 | 13.2.0.0.v3 y versiones posteriores | Sí | 
| TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384 | 13.4.0.9.v1 y versiones posteriores | Sí | 
| TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1256\$1CBC\$1SHA384 | 13.4.0.9.v1 y versiones posteriores | Sí | 

### Compatibilidad de certificados con conjuntos de cifrado
<a name="Oracle.Options.OEMAgent.CertificateCompatibility"></a>

RDS para Oracle admite certificados RSA y de algoritmo de firma digital de curva elíptica (ECDSA). Al configurar la opción de OEM Agent para la instancia de base de datos, debe asegurarse de que los conjuntos de cifrado que especifique en la configuración de la opción `TLS_CIPHER_SUITE` sean compatibles con el tipo de certificado utilizado por la instancia de base de datos.

En la siguiente tabla, se muestra la compatibilidad entre los tipos de certificados y los conjuntos de cifrado:


| Tipo de certificado | Conjuntos de cifrado compatibles | Conjuntos de cifrado incompatibles | 
| --- | --- | --- | 
| Certificados RSA (rds-ca-2019, rds-ca-rsa2048-g1, rds-ca-rsa4096-g1) |  TLS\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA TLS\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA256 TLS\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA TLS\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA256 TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA256 TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA384  |  TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384 TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1256\$1CBC\$1SHA384  | 
| Certificados de ECDSA (rds-ca-ecc384-g1) |  TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384 TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1256\$1CBC\$1SHA384  |  TLS\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA TLS\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA256 TLS\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA TLS\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA256 TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA256 TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA384  | 

Al especificar un conjunto de cifrado en la configuración de la opción `TLS_CIPHER_SUITE`, asegúrese de que sea compatible con el tipo de certificado utilizado por la instancia de base de datos. Si intenta asociar un grupo de opciones a una opción de OEM Agent que contenga un conjunto de cifrado incompatible con el tipo de certificado de una instancia de base de datos, la operación producirá un error y aparecerá un mensaje de error que indica la incompatibilidad.

## Habilitación de la opción del agente de gestión a la instancia de base de datos
<a name="Oracle.Options.OEMAgent.Enable"></a>

Para habilitar la opción del agente de gestión, utilice los pasos siguientes:

**Topics**
+ [Paso 1: agregar la opción de agente de gestión a la instancia de base de datos](#Oracle.Options.OEMAgent.Add)
+ [Paso 2: desbloquear la cuenta de usuario de DBSNMP](#Oracle.Options.OEMAgent.DBSNMP)
+ [Paso 3: añadir los destinos a la consola de Management Agent](#Oracle.Options.OEMAgent.Using)

### Paso 1: agregar la opción de agente de gestión a la instancia de base de datos
<a name="Oracle.Options.OEMAgent.Add"></a>

Para añadir la opción Management Agent a una instancia de base de datos, haga lo siguiente:

1. Cree un grupo de opciones nuevo o copie o modifique un grupo de opciones existente.

1. Añada la opción al grupo de opciones.

1. Asocie el grupo de opciones a la instancia de base de datos.

Si se produce algún error, consulte los documentos de [My Oracle Support](https://support.oracle.com/) para obtener información sobre cómo solucionar determinados problemas.

Después de agregar la opción de Management Agent, no es necesario reiniciar la instancia de base de datos. En cuanto esté activo el grupo de opciones, OEM Agent también lo estará. 

Si el host OMS usa un certificado de terceros que no es de confianza, Amazon RDS devolverá el error siguiente.

```
You successfully installed the OEM_AGENT option. Your OMS host is using an untrusted third party certificate. 
Configure your OMS host with the trusted certificates from your third party.
```

Si se devuelve este error, la opción de Management Agent no se habilitará hasta que se haya solucionado el problema. Para obtener información acerca de cómo corregir el problema, consulte el documento de soporte de My Oracle [2202569.1](https://support.oracle.com/epmos/faces/DocContentDisplay?id=2202569.1).

#### Consola
<a name="Oracle.Options.OEMAgent.Add.Console"></a>

**Adición de la opción Management Agent a una instancia de base de datos**

1. Determine el grupo de opciones que desea utilizar. Puede crear un grupo de opciones o utilizar uno existente. Si desea utilizar un grupo de opciones existente, vaya al siguiente paso. De lo contrario, cree un grupo de opciones de base de datos personalizado con las siguientes opciones: 

   1. En **Engine**, elija la edición de Oracle que corresponda a la instancia de base de datos. 

   1. En **Major engine version (Versión principal del motor)**, elija la versión de su instancia de base de datos. 

   Para obtener más información, consulte [Creación de un grupo de opciones](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create). 

1. Agregue la opción **OEM\$1AGENT** al grupo de opciones y establezca la configuración de opción. Para obtener más información acerca de la adición de opciones, consulte [Agregar una opción a un grupo de opciones](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption). Para obtener más información acerca de cada opción, consulte [Configuración de opción de Management Agent](#Oracle.Options.OEMAgent.Options). 

1. Aplique el grupo de opciones a una instancia de base de datos nueva o existente: 
   + Si se trata de una instancia de base de datos nueva, el grupo de opciones se aplica cuando se lanza la instancia. Para obtener más información, consulte [Creación de una instancia de base de datos de Amazon RDS](USER_CreateDBInstance.md). 
   + Para una instancia de base de datos existente, el grupo de opciones se aplica modificando la instancia y asociando el grupo de opciones nuevo. Para obtener más información, consulte [Modificación de una instancia de base de datos de Amazon RDS](Overview.DBInstance.Modifying.md). 

#### AWS CLI
<a name="Oracle.Options.OEMAgent.Add.CLI"></a>

En el ejemplo siguiente se usa el comando de la AWS CLI [add-option-to-option-group](https://docs.aws.amazon.com/cli/latest/reference/rds/add-option-to-option-group.html) para añadir la opción `OEM_AGENT` a un grupo de opciones llamado `myoptiongroup`. 

Para Linux, macOS o Unix:

```
aws rds add-option-to-option-group \
    --option-group-name "myoptiongroup" \
    --options OptionName=OEM_AGENT,OptionVersion=13.1.0.0.v1,Port=3872,VpcSecurityGroupMemberships=sg-1234567890,OptionSettings=[{Name=OMS_HOST,Value=my.example.oms},{Name=OMS_PORT,Value=4903},{Name=AGENT_REGISTRATION_PASSWORD,Value=password}] \
    --apply-immediately
```

Para Windows:

```
aws rds add-option-to-option-group ^
    --option-group-name "myoptiongroup" ^
    --options OptionName=OEM_AGENT,OptionVersion=13.1.0.0.v1,Port=3872,VpcSecurityGroupMemberships=sg-1234567890,OptionSettings=[{Name=OMS_HOST,Value=my.example.oms},{Name=OMS_PORT,Value=4903},{Name=AGENT_REGISTRATION_PASSWORD,Value=password}] ^
    --apply-immediately
```

### Paso 2: desbloquear la cuenta de usuario de DBSNMP
<a name="Oracle.Options.OEMAgent.DBSNMP"></a>

Management Agent utiliza la cuenta de usuario de `DBSNMP` para conectarse a la base de datos y notificar los problemas a Oracle Enterprise Manager. En una CDB, `DBSNMP` es un usuario común. Esta cuenta de usuario es necesaria tanto para Management Agent como para OEM Database Express. De forma predeterminada, esta cuenta está bloqueada. El procedimiento para desbloquear esta cuenta varía en función de si la base de datos utiliza una arquitectura de CDB o no de CDB.

**Para desbloquear la cuenta de usuario de DBSNMP**

1. En SQL\$1Plus u otra aplicación de Oracle SQL, inicie sesión como usuario maestro en su instancia de base de datos.

1. Lleve a cabo una de las siguientes acciones, dependiendo de la arquitectura de base de datos:  
**La base de datos no es de CDB.**  
Ejecute la siguiente instrucción de SQL:  

   ```
   1. ALTER USER dbsnmp IDENTIFIED BY new_password ACCOUNT UNLOCK;
   ```  
**La base de datos es de CDB.**  
Ejecute el siguiente procedimiento almacenado para desbloquear la cuenta de `DBSNMP`:  

   ```
   1. EXEC rdsadmin.rdsadmin_util.reset_oem_agent_password('new_password');
   ```
Si recibe un error que indica que el procedimiento no existe, reinicie la instancia de CDB para instalarla automáticamente. Para obtener más información, consulte [Reinicio de una instancia de base de datos ](USER_RebootInstance.md).

### Paso 3: añadir los destinos a la consola de Management Agent
<a name="Oracle.Options.OEMAgent.Using"></a>

Para añadir una instancia de base de datos como destino, debe conocer el punto de conexión y el puerto. Para obtener información acerca de cómo encontrar el punto de enlace de su instancia de base de datos de Amazon RDS, consulte [Búsqueda del punto de conexión de la instancia de base de datos de RDS para Oracle](USER_Endpoint.md). Si su base de datos utiliza la arquitectura de CDB, añada el contenedor `CDB$ROOT` por separado como destino.

**Adición de destinos a la consola de Management Agent**

1. En consola de OMS, elija **Setup**, **Add Target** y, a continuación, **Add Targets Manually**. 

1. Elija **Add Targets Declaratively by Specifying Target Monitoring Properties**.

1. En **Target Type**, elija **Target Type**.

1. En **Monitoring Agent (Monitorización del agente)**, elija el agente con el mismo identificador que su identificador de instancia de base de datos de RDS. 

1. Elija **Add Manually**.

1. Introduzca el punto de conexión de la instancia de base de datos de Amazon RDS o selecciónelo en la lista de nombres de host. Asegúrese de que el nombre de host especificado coincide con el punto de enlace de la instancia de base de datos de Amazon RDS.

1. Especifique las siguientes propiedades para la base de datos:
   + En **Target name (Nombre de destino)**, escriba un nombre. 
   + En **Database system name (Nombre de sistema de base de datos)**, escriba un nombre.
   + En **Monitor username (Nombre de usuario de monitor)**, escriba **dbsnmp**. 
   + En **Monitor password**, escriba la contraseña de [Paso 2: desbloquear la cuenta de usuario de DBSNMP](#Oracle.Options.OEMAgent.DBSNMP). 
   + En **Role (Rol)**, escriba **normal**. 
   + En **Oracle home path (Ruta de inicio de Oracle)**, escriba **/oracle**. 
   + En **Listener Machine name**, el identificador del agente ya aparece. 
   + En **Port (Puerto)**, escriba el puerto de base de datos. El puerto predeterminado de RDS es 1521. 
   + En **Database name (Nombre de base de datos)**, escriba el nombre de la base de datos. Si la base de datos es de CDB, este nombre es `RDSCDB`. 

1. Elija **Test Connection**. 

1. Elija **Next (Siguiente)**. La base de datos de destino aparece en su lista de recursos monitorizados. 

## Eliminar la opción de Management Agent
<a name="Oracle.Options.OEMAgent.Remove"></a>

Puede eliminar OEM Agent de una instancia de base de datos. Después de eliminar OEM Agent, no es necesario reiniciar la instancia de base de datos. 

Para eliminar OEM Agent de una instancia de base de datos, realice una de las siguientes operaciones: 
+ Elimine la opción de OEM Agent del grupo de opciones al que pertenece. Este cambio afecta a todas las instancias de base de datos que utilizan el grupo de opciones. Para obtener más información, consulte [Quitar una opción de un grupo de opciones](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.RemoveOption). 
+ Modifique la instancia de base de datos y especifique otro grupo de opciones que no incluya la opción de OEM Agent. Este cambio afecta a una única instancia de base de datos. Puede especificar el grupo de opciones predeterminado (vacío) u otro grupo de opciones personalizado. Para obtener más información, consulte [Modificación de una instancia de base de datos de Amazon RDS](Overview.DBInstance.Modifying.md). 

## Realización de tareas de base de datos con Management Agent
<a name="Oracle.Options.OEMAgent.DBTasks"></a>

Puede utilizar procedimientos de Amazon RDS para ejecutar determinados comandos de EMCTL en Management Agent. Al ejecutar estos procedimientos, puede hacer las tareas que se enumeran a continuación.

**nota**  
Las tareas se ejecutan de forma asíncrona.

**Topics**
+ [Protección del agente de gestión](#Oracle.Options.OEMAgent.DBTasks.SecureAgent)
+ [Obtención del estado del agente de administración](#Oracle.Options.OEMAgent.DBTasks.GetAgentStatus)
+ [Reinicio del Management Agent](#Oracle.Options.OEMAgent.DBTasks.RestartAgent)
+ [Descripción de los objetivos monitoreados por el Management Agent](#Oracle.Options.OEMAgent.DBTasks.ListTargets)
+ [Descripción de los subprocesos de recopilación monitoreados por Management Agent](#Oracle.Options.OEMAgent.DBTasks.ListCollectionThreads)
+ [Borrado del estado de Management Agent](#Oracle.Options.OEMAgent.DBTasks.ClearState)
+ [Hacer que Management Agent cargue su OMS](#Oracle.Options.OEMAgent.DBTasks.ForceUploadOMS)
+ [Hacer ping al OMS](#Oracle.Options.OEMAgent.DBTasks.PingOMS)
+ [Visualización del estado de una tarea en curso](#Oracle.Options.OEMAgent.DBTasks.ViewTaskStatus)

### Protección del agente de gestión
<a name="Oracle.Options.OEMAgent.DBTasks.SecureAgent"></a>

Para proteger el agente de gestión, ejecute el procedimiento `rdsadmin.rdsadmin_oem_agent_tasks.secure_oem_agent` de Amazon RDS. Este procedimiento es equivalente a ejecutar el comando `emctl secure agent`.

El siguiente procedimiento crea una tarea para proteger el agente de gestión y devuelve el ID de la tarea:

```
SELECT rdsadmin.rdsadmin_oem_agent_tasks.secure_oem_agent as TASK_ID from DUAL;
```

Para mostrar el archivo de salida de la tarea y ver el resultado, consulte [Visualización del estado de una tarea en curso](#Oracle.Options.OEMAgent.DBTasks.ViewTaskStatus).

### Obtención del estado del agente de administración
<a name="Oracle.Options.OEMAgent.DBTasks.GetAgentStatus"></a>

Para obtener el estado del agente de administración, ejecute el procedimiento de Amazon RDS `rdsadmin.rdsadmin_oem_agent_tasks.get_status_oem_agent`. Este procedimiento es equivalente al comando `emctl status agent`.

El siguiente procedimiento crea una tarea para obtener el estado del agente de gestión y devuelve el ID de la tarea.

```
SELECT rdsadmin.rdsadmin_oem_agent_tasks.get_status_oem_agent() as TASK_ID from DUAL;
```

Para mostrar el archivo de salida de la tarea y ver el resultado, consulte [Visualización del estado de una tarea en curso](#Oracle.Options.OEMAgent.DBTasks.ViewTaskStatus).

### Reinicio del Management Agent
<a name="Oracle.Options.OEMAgent.DBTasks.RestartAgent"></a>

Para reiniciar el Management Agent, ejecute el procedimiento de Amazon RDS `rdsadmin.rdsadmin_oem_agent_tasks.restart_oem_agent`. Este procedimiento es equivalente a ejecutar los comandos `emctl stop agent` y `emctl start agent`.

El siguiente procedimiento crea una tarea para reiniciar Management Agent y devuelve el ID de la tarea.

```
SELECT rdsadmin.rdsadmin_oem_agent_tasks.restart_oem_agent as TASK_ID from DUAL;    
```

Para mostrar el archivo de salida de la tarea y ver el resultado, consulte [Visualización del estado de una tarea en curso](#Oracle.Options.OEMAgent.DBTasks.ViewTaskStatus).

### Descripción de los objetivos monitoreados por el Management Agent
<a name="Oracle.Options.OEMAgent.DBTasks.ListTargets"></a>

Para enumerar los objetivos monitorizados por el Management Agent, ejecute el procedimiento de Amazon RDS `rdsadmin.rdsadmin_oem_agent_tasks.list_targets_oem_agent`. Este procedimiento es equivalente a ejecutar el comando `emctl config agent listtargets`.

El siguiente procedimiento crea una tarea para mostrar los destinos monitoreados por Management Agent y devuelve el ID de la tarea.

```
SELECT rdsadmin.rdsadmin_oem_agent_tasks.list_targets_oem_agent as TASK_ID from DUAL;
```

Para mostrar el archivo de salida de la tarea y ver el resultado, consulte [Visualización del estado de una tarea en curso](#Oracle.Options.OEMAgent.DBTasks.ViewTaskStatus).

### Descripción de los subprocesos de recopilación monitoreados por Management Agent
<a name="Oracle.Options.OEMAgent.DBTasks.ListCollectionThreads"></a>

Para mostrar todos los subprocesos de recopilación en ejecución, listos y programados monitoreados por Management Agent, ejecute el procedimiento de Amazon RDS `rdsadmin.rdsadmin_oem_agent_tasks.list_clxn_threads_oem_agent`. Este procedimiento es equivalente al comando `emctl status agent scheduler`.

El siguiente procedimiento crea una tarea para enumerar los subprocesos de recopilación y devuelve el ID de la tarea.

```
SELECT rdsadmin.rdsadmin_oem_agent_tasks.list_clxn_threads_oem_agent() as TASK_ID from DUAL;          
```

Para mostrar el archivo de salida de la tarea y ver el resultado, consulte [Visualización del estado de una tarea en curso](#Oracle.Options.OEMAgent.DBTasks.ViewTaskStatus).

### Borrado del estado de Management Agent
<a name="Oracle.Options.OEMAgent.DBTasks.ClearState"></a>

Para borrar el estado de Management Agent, ejecute el procedimiento de Amazon RDS `rdsadmin.rdsadmin_oem_agent_tasks.clearstate_oem_agent`. Este procedimiento es equivalente a ejecutar el comando `emctl clearstate agent`.

El siguiente procedimiento crea una tarea que borra el estado de Management Agent y devuelve el ID de la tarea.

```
SELECT rdsadmin.rdsadmin_oem_agent_tasks.clearstate_oem_agent() as TASK_ID from DUAL;
```

Para mostrar el archivo de salida de la tarea y ver el resultado, consulte [Visualización del estado de una tarea en curso](#Oracle.Options.OEMAgent.DBTasks.ViewTaskStatus).

### Hacer que Management Agent cargue su OMS
<a name="Oracle.Options.OEMAgent.DBTasks.ForceUploadOMS"></a>

Para que Management Agent cargue el Oracle Management Server (OMS) asociado al mismo, ejecute el procedimiento de Amazon RDS `rdsadmin.rdsadmin_oem_agent_tasks.upload_oem_agent`. Este procedimiento es equivalente a ejecutar el comando `emclt upload agent`.

El procedimiento siguiente crea una tarea que hace que Management Agent cargue su OMS asociado y devuelva el ID de la tarea.

```
SELECT rdsadmin.rdsadmin_oem_agent_tasks.upload_oem_agent() as TASK_ID from DUAL;
```

Para mostrar el archivo de salida de la tarea y ver el resultado, consulte [Visualización del estado de una tarea en curso](#Oracle.Options.OEMAgent.DBTasks.ViewTaskStatus).

### Hacer ping al OMS
<a name="Oracle.Options.OEMAgent.DBTasks.PingOMS"></a>

Para hacer ping al OMS del Management Agent, ejecute el procedimiento de Amazon RDS `rdsadmin.rdsadmin_oem_agent_tasks.ping_oms_oem_agent`. Este procedimiento es equivalente a ejecutar el comando `emctl pingOMS`.

El siguiente procedimiento crea una tarea que realiza ping al OMS de Management Agent y devuelve el ID de la tarea.

```
SELECT rdsadmin.rdsadmin_oem_agent_tasks.ping_oms_oem_agent() as TASK_ID from DUAL;
```

Para mostrar el archivo de salida de la tarea y ver el resultado, consulte [Visualización del estado de una tarea en curso](#Oracle.Options.OEMAgent.DBTasks.ViewTaskStatus).

### Visualización del estado de una tarea en curso
<a name="Oracle.Options.OEMAgent.DBTasks.ViewTaskStatus"></a>

Puede ver el estado de una tarea continua en un archivo bdump. Los archivos bdump están ubicados en el directorio `/rdsdbdata/log/trace`. El nombre del archivo bdump está en el siguiente formato.

```
dbtask-task-id.log 
```

Si desea monitorizar una tarea, reemplace `task-id` por el ID de la tarea que desea monitorizar.

Para ver el contenido de los archivos bdump, ejecute el procedimiento de Amazon RDS `rdsadmin.rds_file_util.read_text_file`. Por ejemplo, la siguiente consulta devuelve el contenido del archivo bdump `dbtask-1546988886389-2444.log`. 

```
SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP','dbtask-1546988886389-2444.log'));
```

Si necesita más información sobre el procedimiento `rdsadmin.rds_file_util.read_text_file` de Amazon RDS, consulte [Lectura de archivos de un directorio de instancia de base de datos](Appendix.Oracle.CommonDBATasks.Misc.md#Appendix.Oracle.CommonDBATasks.ReadingFiles).

# Oracle Label Security
<a name="Oracle.Options.OLS"></a>

Amazon RDS es compatible con Oracle Label Security para Enterprise Edition de Oracle Database con la opción OLS.

La mayoría de los sistemas de seguridad de bases de datos controlan el acceso en el nivel de objeto. Oracle Label Security proporciona un control de acceso muy preciso a cada una de las filas de las tablas. Por ejemplo, puede utilizar Label Security para imponer el cumplimiento de las normativas mediante un modelo de administración basado en políticas. Puede utilizar las políticas de Label Security para controlar el acceso a la información confidencial y restringirlo únicamente a los usuarios con el nivel adecuado. Para obtener más información, consulte [Introduction to Oracle Label Security](https://docs.oracle.com/database/121/OLSAG/intro.htm#OLSAG001) en la documentación de Oracle.

**Topics**
+ [Requisitos de Oracle Label Security](#Oracle.Options.OLS.PreReqs)
+ [Factores importantes al utilizar Oracle Label Security](#Oracle.Options.OLS.Using)
+ [Adición de la opción Oracle Label Security](#Oracle.Options.OLS.Add)
+ [Solución de problemas](#Oracle.Options.OLS.Troubleshooting)

## Requisitos de Oracle Label Security
<a name="Oracle.Options.OLS.PreReqs"></a>

Familiarícese con los siguientes requisitos para Oracle Label Security: 
+ La instancia de base de datos debe utilizar el modelo Bring Your Own License (BYOL, "Traiga su propia licencia"). Para obtener más información, consulte [Opciones de licencias de RDS para Oracle](Oracle.Concepts.Licensing.md). 
+ Debe tener una licencia válida de Oracle Enterprise Edition con Software Update License and Support. 
+ La licencia de Oracle debe incluir la opción Label Security.

## Factores importantes al utilizar Oracle Label Security
<a name="Oracle.Options.OLS.Using"></a>

Para utilizar Oracle Label Security, debe crear políticas que controlen el acceso a determinadas filas de las tablas. Para obtener más información, consulte [Creating an Oracle Label Security Policy](https://docs.oracle.com/database/121/OLSAG/getstrtd.htm#OLSAG3096) en la documentación de Oracle. 

Considere lo siguiente:
+ Oracle Label Security es una opción permanente y persistente. Puesto que la opción es permanente no se puede quitar de un grupo de opciones. Si agrega Oracle Label Security a un grupo de opciones y lo asocia a su instancia de base de datos, más adelante podrá asociar un grupo de opciones diferente a su instancia de base de datos, pero este grupo también deberá contener la opción Oracle Label Security.
+ Cuando se utiliza Label Security, todas las acciones se realizan con el rol `LBAC_DBA`. Al usuario maestro de la instancia de base de datos se le concede el rol `LBAC_DBA`. Es posible conceder el rol `LBAC_DBA` a otros usuarios para que puedan administrar las políticas de Label Security.
+ Asegúrese de conceder acceso al paquete `OLS_ENFORCEMENT` a cualquier usuario nuevo que requiera acceso a Oracle Label Security. Para conceder acceso al paquete `OLS_ENFORCEMENT`, conéctese a la instancia de base de datos como usuario maestro y ejecute la siguiente instrucción SQL:

  ```
  GRANT ALL ON LBACSYS.OLS_ENFORCEMENT TO username;
  ```
+ Puede configurar Label Security a través de Oracle Enterprise Manager (OEM) Cloud Control. Amazon RDS es compatible con OEM Cloud Control mediante la opción Management Agent. Para obtener más información, consulte [Oracle Management Agent para Enterprise Manager Cloud Control](Oracle.Options.OEMAgent.md). 

## Adición de la opción Oracle Label Security
<a name="Oracle.Options.OLS.Add"></a>

El proceso general para añadir la opción Oracle Label Security a una instancia de base de datos es el siguiente: 

1. Cree un grupo de opciones nuevo o copie o modifique un grupo de opciones existente.

1. Añada la opción al grupo de opciones.
**importante**  
Oracle Label Security es una opción permanente y persistente.

1. Asocie el grupo de opciones a la instancia de base de datos.

Después de añadir la opción Label Security, esta se activará en cuanto se active el grupo de opciones. 

**Para agregar la opción Label Security a una instancia de base de datos**

1. Determine el grupo de opciones que desea utilizar. Puede crear un grupo de opciones o utilizar uno existente. Si desea utilizar un grupo de opciones existente, vaya al siguiente paso. De lo contrario, cree un grupo de opciones de base de datos personalizado con las siguientes opciones: 

   1. En **Engine**, elija **oracle-ee**. 

   1. En **Major engine version (Versión principal del motor)**, elija la versión de su instancia de base de datos. 

   Para obtener más información, consulte [Creación de un grupo de opciones](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create). 

1. Añada la opción **OLS** al grupo de opciones. Para obtener más información acerca de la adición de opciones, consulte [Agregar una opción a un grupo de opciones](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption). 
**importante**  
Si añade Label Security a un grupo de opciones existente que ya está asociado a una o varias instancias de bases de datos, se reinician todas las instancias de bases de datos. 

1. Aplique el grupo de opciones a una instancia de base de datos nueva o existente: 
   + Si se trata de una instancia de base de datos nueva, el grupo de opciones se aplica cuando se lanza la instancia. Para obtener más información, consulte [Creación de una instancia de base de datos de Amazon RDS](USER_CreateDBInstance.md). 

      
   + Para una instancia de base de datos existente, el grupo de opciones se aplica modificando la instancia y asociando el grupo de opciones nuevo. Cuando se añade la opción Label Security a una instancia de base de datos existente, se produce una breve interrupción mientras la instancia de base de datos se reinicia automáticamente. Para obtener más información, consulte [Modificación de una instancia de base de datos de Amazon RDS](Overview.DBInstance.Modifying.md).

## Solución de problemas
<a name="Oracle.Options.OLS.Troubleshooting"></a>

A continuación se muestran los problemas que pueden presentarse al utilizar Oracle Label Security. 


****  

| Problema | Sugerencias para la solución de problemas | 
| --- | --- | 
|  Al intentar crear una política, ve un mensaje de error similar al siguiente: `insufficient authorization for the SYSDBA package`.   |  Un problema conocido de la característica Oracle Label Security impide que los usuarios cuyos nombres tienen 16 o 24 caracteres ejecuten comandos de Label Security. Puede crear otro usuario con un número de caracteres distinto, conceder el rol LBAC\$1DBA a dicho usuario, iniciar sesión con las credenciales de ese usuario y ejecutar los comandos de OLS con ellas. Para obtener más información, póngase en contacto con el servicio de soporte de Oracle.   | 

# Oracle Locator
<a name="Oracle.Options.Locator"></a>

Amazon RDS admite Oracle Locator a través del uso de la opción `LOCATOR`. Oracle Locator proporciona capacidades que suelen ser necesarias para admitir aplicaciones basadas en servicio de Internet e inalámbricas y soluciones de Sistemas de información geográfica (SIG) basadas en el partner. Oracle Locator es una subred limitada de Oracle Spatial. Para obtener más información, consulte [Oracle Locator](https://docs.oracle.com/database/121/SPATL/sdo_locator.htm#SPATL340) en la documentación de Oracle. 

**importante**  
Si usa Oracle Locator, Amazon RDS actualiza automáticamente su instancia de base de datos a la versión más reciente de Oracle PSU si hay vulnerabilidades de seguridad con una puntuación del Common Vulnerability Scoring System (CVSS) superior a 9 u otras vulnerabilidades de seguridad anunciadas. 

## Versiones de bases de datos compatibles con Oracle Locator
<a name="Oracle.Options.Locator.Releases"></a>

RDS para Oracle es compatible con Oracle Locator para Oracle Database 19c. Oracle Locator no es compatible con Oracle Database 21c, pero su funcionalidad está disponible en la opción Oracle Spatial. Antes, la opción Spatial requería licencias adicionales. Oracle Locator representaba un subconjunto de funciones de Oracle Spatial y no requería licencias adicionales. En 2019 Oracle anunció que todas las características de Oracle Spatial se incluían en las licencias Enterprise Edition y Standard Edition 2 sin costo adicional. En consecuencia, la opción Oracle Spatial ya no requiere licencias adicionales. Para obtener más información, consulte el tema sobre [Machine Learning, Spacial y Graph, sin licencia necesaria](https://blogs.oracle.com/database/post/machine-learning-spatial-and-graph-no-license-required) en el blog de Oracle Database Insider.

## Requisitos previos para Oracle Locator
<a name="Oracle.Options.Locator.PreReqs"></a>

A continuación, se indican los requisitos previos para utilizar Oracle Locator: 
+ Su instancia de base de datos debe ser de clase suficiente. No se admite Oracle Locator para las clases de instancia de base de datos db.t3.small. Para obtener más información, consulte [Clases de instancias de base de datos de RDS para Oracle](Oracle.Concepts.InstanceClasses.md). 
+ Su instancia de base de datos debe tener **Auto Minor Version Upgrade** habilitada. Esta opción permite que la instancia de base de datos reciba actualizaciones de la versión secundaria del motor de base de datos automáticamente cuando estén disponibles y es necesaria para cualquier opción que instale la máquina virtual Java (JVM) de Oracle Amazon RDS utiliza esta opción para actualizar su instancia de base de datos a la PSU (Patch Set Update) de Oracle más reciente o actualización de la versión (RU). Para obtener más información, consulte [Modificación de una instancia de base de datos de Amazon RDS](Overview.DBInstance.Modifying.md). 

## Prácticas recomendadas para Oracle Locator
<a name="Oracle.Options.Locator.BestPractces"></a>

A continuación, se indican las prácticas recomendadas para utilizar Oracle Locator: 
+ Para que la seguridad sea máxima, use la opción `LOCATOR` con Capa de conexión segura (SSL). Para obtener más información, consulte [Capa de conexión segura de Oracle](Appendix.Oracle.Options.SSL.md). 
+ Configure su instancia de base de datos para restringir el acceso a la misma. Para obtener más información, consulte [Escenarios de acceso a una instancia de base de datos en una VPC](USER_VPC.Scenarios.md) y [Uso de una instancia de base de datos en una VPC](USER_VPC.WorkingWithRDSInstanceinaVPC.md). 

## Adición de la opción Oracle Locator
<a name="Oracle.Options.Locator.Add"></a>

A continuación se muestra el proceso general para añadir la opción `LOCATOR` a una instancia de base de datos: 

1. Cree un grupo de opciones nuevo o copie o modifique un grupo de opciones existente.

1. Añada la opción al grupo de opciones.

1. Asocie el grupo de opciones a la instancia de base de datos.

Si la máquina virtual Java (JVM) de Oracle *no* está instalada en la instancia de base de datos, se produce una breve interrupción mientras se agrega la opción `LOCATOR`. No hay interrupción si la máquina virtual Java (JVM) de Oracle ya está instalada en la instancia de base de datos. Después de añadir la opción , no es necesario reiniciar la instancia de base de datos. En cuanto esté activo el grupo de opciones, Oracle Locator estará disponible. 

**nota**  
Durante esta interrupción, las funciones de verificación de contraseña se deshabilitan brevemente. También puede esperar ver eventos relacionados con las funciones de verificación de contraseña durante la interrupción. Las funciones de verificación de contraseña se vuelven a habilitar antes de que la instancia de base de datos de Oracle esté disponible.

**Para añadir la opción `LOCATOR` a una instancia de base de datos**

1. Determine el grupo de opciones que desea utilizar. Puede crear un grupo de opciones o utilizar uno existente. Si desea utilizar un grupo de opciones existente, vaya al siguiente paso. De lo contrario, cree un grupo de opciones de base de datos personalizado con las siguientes opciones: 

   1. En **Engine**, elija la edición de Oracle que corresponda a la instancia de base de datos. 

   1. En **Major engine version (Versión principal del motor)**, elija la versión de su instancia de base de datos. 

   Para obtener más información, consulte [Creación de un grupo de opciones](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create). 

1. Añada la opción **LOCATOR** al grupo de opciones. Para obtener más información acerca de la adición de opciones, consulte [Agregar una opción a un grupo de opciones](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption). 

1. Aplique el grupo de opciones a una instancia de base de datos nueva o existente: 
   + Si se trata de una instancia de base de datos nueva, el grupo de opciones se aplica cuando se lanza la instancia. Para obtener más información, consulte [Creación de una instancia de base de datos de Amazon RDS](USER_CreateDBInstance.md). 
   + Para una instancia de base de datos existente, el grupo de opciones se aplica modificando la instancia y asociando el grupo de opciones nuevo. Para obtener más información, consulte [Modificación de una instancia de base de datos de Amazon RDS](Overview.DBInstance.Modifying.md). 

## Uso de Oracle Locator
<a name="Oracle.Options.Locator.Using"></a>

Una vez que habilite la opción Oracle Locator, podrá empezar a usarla. Solo debe usar características de Oracle Locator. No use ninguna característica de Oracle Spatial a menos que tenga una licencia para Oracle Spatial. 

Para obtener una lista de características compatibles con Oracle Locator, consulte [Features Included with Locator](https://docs.oracle.com/database/121/SPATL/sdo_locator.htm#GUID-EC6DEA23-8FD7-4109-A0C1-93C0CE3D6FF2__CFACCEEG) en la documentación de Oracle. 

Para obtener una lista de características no compatibles con Oracle Locator, consulte [Features Not Included with Locator](https://docs.oracle.com/database/121/SPATL/sdo_locator.htm#GUID-EC6DEA23-8FD7-4109-A0C1-93C0CE3D6FF2__CFABACEA) en la documentación de Oracle. 

## Eliminación de la opción Oracle Locator
<a name="Oracle.Options.Locator.Remove"></a>

Después de eliminar todos los objetos que utilizan los tipos de datos proporcionados por la opción `LOCATOR`, puede quitar la opción de una instancia de base de datos. Si la máquina virtual Java (JVM) de Oracle *no* está instalada en la instancia de base de datos, se produce una breve interrupción mientras se elimina la opción `LOCATOR`. No hay interrupción si la máquina virtual Java (JVM) de Oracle ya está instalada en la instancia de base de datos. Después de quitar la opción `LOCATOR`, no es necesario reiniciar la instancia de base de datos. 

**Para eliminar la opción `LOCATOR`**

1. Haga una copia de seguridad de sus datos.
**aviso**  
Si la instancia utiliza tipos de datos habilitados como parte de la opción y si elimina la opción `LOCATOR`, puede perder datos. Para obtener más información, consulte [Copia de seguridad, restauración y exportación de datos](CHAP_CommonTasks.BackupRestore.md).

1. Compruebe si los objetos existentes hacen referencia a los tipos de datos o a las características de la opción `LOCATOR`. 

   Si existen opciones `LOCATOR`, la instancia puede quedarse atascada al aplicar el nuevo grupo de opciones que no tiene la opción `LOCATOR`. Puede identificar los objetos mediante las siguientes consultas:

   ```
   SELECT OWNER, SEGMENT_NAME, TABLESPACE_NAME, BYTES/1024/1024 mbytes
   FROM   DBA_SEGMENTS
   WHERE  SEGMENT_TYPE LIKE '%TABLE%'
   AND    (OWNER, SEGMENT_NAME) IN
          (SELECT DISTINCT OWNER, TABLE_NAME 
           FROM   DBA_TAB_COLUMNS
           WHERE  DATA_TYPE='SDO_GEOMETRY'
           AND    OWNER <> 'MDSYS')
   ORDER BY 1,2,3,4;
   
   SELECT OWNER, TABLE_NAME, COLUMN_NAME
   FROM   DBA_TAB_COLUMNS 
   WHERE  DATA_TYPE = 'SDO_GEOMETRY' 
   AND    OWNER <> 'MDSYS' 
   ORDER BY 1,2,3;
   ```

1. Suelte los objetos que hagan referencia a los tipos de datos o a las características de la opción `LOCATOR`.

1. Aplique alguna de las siguientes acciones:
   + Quite la opción `LOCATOR` del grupo de opciones al que pertenece. Este cambio afecta a todas las instancias de base de datos que utilizan el grupo de opciones. Para obtener más información, consulte [Quitar una opción de un grupo de opciones](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.RemoveOption).
   + Modifique la instancia de base de datos y especifique otro grupo de opciones que no incluya la opción `LOCATOR`. Este cambio afecta a una única instancia de base de datos. Puede especificar el grupo de opciones predeterminado (vacío) u otro grupo de opciones personalizado. Para obtener más información, consulte [Modificación de una instancia de base de datos de Amazon RDS](Overview.DBInstance.Modifying.md). 

# Oracle Native Network Encryption
<a name="Appendix.Oracle.Options.NetworkEncryption"></a>

Amazon RDS es compatible con el cifrado de red nativo (NNE, Native Network Encryption) de Oracle. Con la opción `NATIVE_NETWORK_ENCRYPTION`, puede cifrar datos durante su tránsito hacia y desde una instancia de base de datos. Amazon RDS es compatible con NNE para todas las ediciones de Oracle Database.

Esta guía no tiene el propósito de ofrecerle una descripción detallada del cifrado de red nativo de Oracle, pero sí que debe comprender los puntos fuertes y los puntos débiles de cada algoritmo y cada clave antes de decidirse por una solución para su implementación. Para obtener información acerca de los algoritmos y las claves disponibles a través del cifrado de red nativo de Oracle, consulte [Configuring Network Data Encryption](http://www.oracle.com/webfolder/technetwork/tutorials/obe/db/11g/r2/prod/security/network_encrypt/ntwrkencrypt.htm) en la documentación de Oracle. Para obtener más información sobre la seguridad de AWS, consulte el [centro de seguridad de AWS](https://aws.amazon.com/security).

**nota**  
Es posible utilizar Native Network Encryption o Secure Sockets Layer, pero no ambas opciones. Para obtener más información, consulte [Capa de conexión segura de Oracle](Appendix.Oracle.Options.SSL.md). 

**Topics**
+ [Configuración de la opción NATIVE\$1NETWORK\$1ENCRYPTION](Oracle.Options.NNE.Options.md)
+ [Adición de la opción NATIVE\$1NETWORK\$1ENCRYPTION](Oracle.Options.NNE.Add.md)
+ [Establecimiento de valores de NNE en sqlnet.ora](Oracle.Options.NNE.Using.md)
+ [Modificación de la configuración de la opción NATIVE\$1NETWORK\$1ENCRYPTION](Oracle.Options.NNE.ModifySettings.md)
+ [Eliminación de la opción NATIVE\$1NETWORK\$1ENCRYPTION](Oracle.Options.NNE.Remove.md)

# Configuración de la opción NATIVE\$1NETWORK\$1ENCRYPTION
<a name="Oracle.Options.NNE.Options"></a>

Puede especificar requisitos de cifrado tanto en el servidor como en el cliente. La instancia de base de datos puede actuar como cliente cuando, por ejemplo, utiliza un vínculo de base de datos para conectarse a otra base de datos. Es posible que desee evitar forzar el cifrado en el lado del servidor. Por ejemplo, es posible que no desee forzar todas las comunicaciones del cliente para que utilicen el cifrado porque el servidor lo requiera. En este caso, puede forzar el cifrado en el lado del cliente mediante las opciones de `SQLNET.*CLIENT`.

Amazon RDS admite las siguientes configuraciones para la opción `NATIVE_NETWORK_ENCRYPTION`.

**nota**  
Cuando utilice comas para separar valores para una configuración de opción, no coloque un espacio después de la coma.


****  

| Ajuste de la opción | Valores válidos | Valores predeterminados | Descripción | 
| --- | --- | --- | --- | 
|  `SQLNET.ALLOW_WEAK_CRYPTO_CLIENTS`  |  `TRUE`, `FALSE`  |  `TRUE`  |  El comportamiento del servidor cuando un cliente que utiliza un cifrado que no está protegido intenta conectarse a la base de datos. Si es `TRUE`, los clientes pueden conectarse incluso si no cuentan con revisiones de PSU de julio de 2021.  Si el ajuste es `FALSE`, los clientes pueden conectarse a la base de datos solo cuando cuenten con las revisiones de PSU de julio de 2021. Antes de configurar `SQLNET.ALLOW_WEAK_CRYPTO_CLIENTS` a `FALSE`, asegúrese de que se cumplan las siguientes condiciones: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/Oracle.Options.NNE.Options.html)  | 
|  `SQLNET.ALLOW_WEAK_CRYPTO`  |  `TRUE`, `FALSE`  |  `TRUE`  |  El comportamiento del servidor cuando un cliente que utiliza un cifrado que no está protegido intenta conectarse a la base de datos. Los siguientes cifrados no se consideran seguros: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/Oracle.Options.NNE.Options.html) Si la configuración es `TRUE`, los clientes pueden conectarse cuando utilizan los cifrados anteriores que no estén protegidos. Si la configuración es `FALSE`, la base de datos evita que los clientes se conecten cuando utilizan los cifrados anteriores que no estén protegidos. Antes de configurar `SQLNET.ALLOW_WEAK_CRYPTO` a `FALSE`, asegúrese de que se cumplan las siguientes condiciones: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/Oracle.Options.NNE.Options.html)  | 
|  `SQLNET.CRYPTO_CHECKSUM_CLIENT`  |  `Accepted`, `Rejected`, `Requested`, `Required`   |  `Requested`  |  Comportamiento de integridad de datos cuando una instancia de base de datos se conecta al cliente o cuando un servidor actúa como un cliente. Cuando una instancia de base de datos utiliza un enlace de base de datos, esta actúa como cliente. `Requested` indica que el cliente no requiere que la instancia de base de datos haga la suma de comprobación.  | 
|  `SQLNET.CRYPTO_CHECKSUM_SERVER`  |  `Accepted`, `Rejected`, `Requested`, `Required`   |  `Requested`  |  Comportamiento de integridad de datos cuando un cliente o un servidor que actúa como cliente se conecta a la instancia de base de datos. Cuando una instancia de base de datos utiliza un enlace de base de datos, esta actúa como cliente. `Requested` indica que la instancia de base de datos no requiere que el cliente haga la suma de comprobación.  | 
|  `SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT`  |  `SHA256`, `SHA384`, `SHA512`, `SHA1`, `MD5`  |  `SHA256`, `SHA384`, `SHA512`  |  Una lista de algoritmos de suma de comprobación. Puede especificar un valor o una lista de valores separada por comas. Si utiliza una coma, no inserte un espacio después de la coma; de lo contrario, recibirá un error `InvalidParameterValue`. Este parámetro y `SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER ` deben tener un cifrado común.  | 
|  `SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER`  |  `SHA256`, `SHA384`, `SHA512`, `SHA1`, `MD5`  |  `SHA256`, `SHA384`, `SHA512`, `SHA1`, `MD5`  |  Una lista de algoritmos de suma de comprobación. Puede especificar un valor o una lista de valores separada por comas. Si utiliza una coma, no inserte un espacio después de la coma; de lo contrario, recibirá un error `InvalidParameterValue`. Este parámetro y `SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT` deben tener un cifrado común.  | 
|  `SQLNET.ENCRYPTION_CLIENT`  |  `Accepted`, `Rejected`, `Requested`, `Required`   |  `Requested`  |  Comportamiento de cifrado del cliente cuando un cliente o un servidor que actúa como cliente se conecta a la instancia de base de datos. Cuando una instancia de base de datos utiliza un enlace de base de datos, esta actúa como cliente. `Requested` indica que el cliente no requiere que el tráfico del servidor esté cifrado.  | 
|  `SQLNET.ENCRYPTION_SERVER`  |  `Accepted`, `Rejected`, `Requested`, `Required`   |  `Requested`  |  Comportamiento de cifrado del servidor cuando un cliente o un servidor que actúa como cliente se conecta a la instancia de base de datos. Cuando una instancia de base de datos utiliza un enlace de base de datos, esta actúa como cliente. `Requested` indica que la instancia de base de datos no requiere que el tráfico del cliente esté cifrado.  | 
|  `SQLNET.ENCRYPTION_TYPES_CLIENT`  |  `RC4_256`, `AES256`, `AES192`, `3DES168`, `RC4_128`, `AES128`, `3DES112`, `RC4_56`, `DES`, `RC4_40`, `DES40`  |  `RC4_256`, `AES256`, `AES192`, `3DES168`, `RC4_128`, `AES128`, `3DES112`, `RC4_56`, `DES`, `RC4_40`, `DES40`  |  Lista de algoritmos de cifrado utilizados por el cliente. El cliente utiliza cada algoritmo, por orden, para intentar descifrar la entrada del servidor hasta que un algoritmo tenga éxito o hasta que se llegue al final de la lista.  Amazon RDS utiliza la siguiente lista predeterminada de Oracle. RDS comienza con `RC4_256` y continúa con la lista por orden. Es posible cambiar el orden o limitar los algoritmos que aceptará la instancia de base de datos.  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/Oracle.Options.NNE.Options.html) Puede especificar un valor o una lista de valores separada por comas. Si utiliza una coma, no inserte un espacio después de la coma; de lo contrario, recibirá un error `InvalidParameterValue`. Este parámetro y `SQLNET.SQLNET.ENCRYPTION_TYPES_SERVER` deben tener un cifrado común.  | 
|  `SQLNET.ENCRYPTION_TYPES_SERVER`  |  `RC4_256`, `AES256`, `AES192`, `3DES168`, `RC4_128`, `AES128`, `3DES112`, `RC4_56`, `DES`, `RC4_40`, `DES40`  |  `RC4_256`, `AES256`, `AES192`, `3DES168`, `RC4_128`, `AES128`, `3DES112`, `RC4_56`, `DES`, `RC4_40`, `DES40`  |  Lista de algoritmos de cifrado utilizados por la instancia de base de datos. La instancia de base de datos utiliza cada algoritmo, por orden, para intentar descifrar la entrada del cliente hasta que un algoritmo tenga éxito o hasta que se llegue al final de la lista.  Amazon RDS utiliza la siguiente lista predeterminada de Oracle. Es posible cambiar el orden o limitar los algoritmos que aceptará el cliente.  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/Oracle.Options.NNE.Options.html) Puede especificar un valor o una lista de valores separada por comas. Si utiliza una coma, no inserte un espacio después de la coma; de lo contrario, recibirá un error `InvalidParameterValue`. Este parámetro y `SQLNET.SQLNET.ENCRYPTION_TYPES_SERVER` deben tener un cifrado común.  | 

# Adición de la opción NATIVE\$1NETWORK\$1ENCRYPTION
<a name="Oracle.Options.NNE.Add"></a>

El proceso general para agregar la opción `NATIVE_NETWORK_ENCRYPTION` a una instancia de base de datos es el siguiente: 

1. Cree un grupo de opciones nuevo o copie o modifique un grupo de opciones existente.

1. Añada la opción al grupo de opciones.

1. Asocie el grupo de opciones a la instancia de base de datos.

En cuanto esté activo el grupo de opciones, NNE también estará activo. 

**Adición de la opción NATIVE\$1NETWORK\$1ENCRYPTION a una instancia de base de datos mediante la Consola de administración de AWS**

1. En **Engine**, elija la edición de Oracle que desea utilizar. NNE se admite en todas las ediciones. 

1. En **Major engine version (Versión principal del motor)**, elija la versión de su instancia de base de datos. 

   Para obtener más información, consulte [Creación de un grupo de opciones](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create). 

1. Agregue la opción **NATIVE\$1NETWORK\$1ENCRYPTION** al grupo de opciones. Para obtener más información acerca de la adición de opciones, consulte [Agregar una opción a un grupo de opciones](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption).
**nota**  
Después de agregar la opción **NATIVE\$1NETWORK\$1ENCRYPTION**, no es necesario reiniciar las instancias de base de datos. En cuanto esté activo el grupo de opciones, NNE también lo estará. 

1. Aplique el grupo de opciones a una instancia de base de datos nueva o existente: 
   + Si se trata de una instancia de base de datos nueva, el grupo de opciones se aplica cuando se lanza la instancia. Para obtener más información, consulte [Creación de una instancia de base de datos de Amazon RDS](USER_CreateDBInstance.md).
   + Para una instancia de base de datos existente, el grupo de opciones se aplica modificando la instancia y asociando el grupo de opciones nuevo. Después de agregar la opción **NATIVE\$1NETWORK\$1ENCRYPTION**, no es necesario reiniciar la instancia de base de datos. En cuanto esté activo el grupo de opciones, NNE también lo estará. Para obtener más información, consulte [Modificación de una instancia de base de datos de Amazon RDS](Overview.DBInstance.Modifying.md). 

# Establecimiento de valores de NNE en sqlnet.ora
<a name="Oracle.Options.NNE.Using"></a>

Con el cifrado de red nativo de Oracle, también puede especificar el cifrado de red en lado del cliente y el lado del servidor. El cliente es el ordenador que se utiliza para conectarse a la instancia de base de datos. Puede especificar la siguiente configuración del cliente en el archivo sqlnet.ora: 
+ `SQLNET.ALLOW_WEAK_CRYPTO`
+ `SQLNET.ALLOW_WEAK_CRYPTO_CLIENTS`
+ `SQLNET.CRYPTO_CHECKSUM_CLIENT`
+ `SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT`
+ `SQLNET.ENCRYPTION_CLIENT`
+ `SQLNET.ENCRYPTION_TYPES_CLIENT`

Para obtener más información, consulte [Configuring Network Data Encryption and Integrity for Oracle Servers and Clients](http://docs.oracle.com/cd/E11882_01/network.112/e40393/asoconfg.htm) en la documentación de Oracle.

A veces, la instancia de base de datos rechaza una solicitud de conexión de una aplicación. Por ejemplo, puede producirse un rechazo cuando los algoritmos de cifrado en el cliente y en el servidor no coinciden. Para probar el cifrado de red nativo de Oracle, agregue las siguientes líneas al archivo sqlnet.ora en el cliente: 

```
DIAG_ADR_ENABLED=off
TRACE_DIRECTORY_CLIENT=/tmp
TRACE_FILE_CLIENT=nettrace
TRACE_LEVEL_CLIENT=16
```

Cuando se intenta establecer la conexión, estas líneas generan un archivo de seguimiento en el cliente denominado `/tmp/nettrace*`. El archivo de seguimiento contiene información sobre la conexión. Para obtener más información sobre problemas relacionados con la conexión cuando utiliza el cifrado de red nativo de Oracle, consulte[Acerca de la negociación del cifrado y la integridad](http://docs.oracle.com/cd/E11882_01/network.112/e40393/asoconfg.htm#autoId12) en la documentación de la base de datos de Oracle.

# Modificación de la configuración de la opción NATIVE\$1NETWORK\$1ENCRYPTION
<a name="Oracle.Options.NNE.ModifySettings"></a>

Después de habilitar la opción `NATIVE_NETWORK_ENCRYPTION`, puede modificar su configuración. Actualmente, solo puede modificar la configuración de las opciones de `NATIVE_NETWORK_ENCRYPTION` con la AWS CLI o la API de RDS. No puede utilizar la consola. En el siguiente ejemplo, se modifican dos ajustes de la opción.

```
aws rds add-option-to-option-group \
    --option-group-name my-option-group \
    --options "OptionName=NATIVE_NETWORK_ENCRYPTION,OptionSettings=[{Name=SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER,Value=SHA256},{Name=SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER,Value=SHA256}]" \
    --apply-immediately
```

Para obtener más información acerca de cómo modificar la configuración de las opciones con la CLI, consulte [AWS CLI](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.ModifyOption.CLI). Para obtener más información acerca de cada opción, consulte [Configuración de la opción NATIVE\$1NETWORK\$1ENCRYPTION](Oracle.Options.NNE.Options.md).

**Topics**
+ [Modificación de los valores CRYPTO\$1CHECKSUM\$1\$1](#Oracle.Options.NNE.ModifySettings.checksum)
+ [Modificación de la configuración ALLOW\$1WEAK\$1CRYPTO\$1](#Oracle.Options.NNE.ModifySettings.encryption)

## Modificación de los valores CRYPTO\$1CHECKSUM\$1\$1
<a name="Oracle.Options.NNE.ModifySettings.checksum"></a>

Si modifica la configuración de la opción de **NATIVE\$1NETWORK\$1ENCRYPTION**, asegúrese de que la siguiente configuración de la opción tenga al menos un cifrado común:
+ `SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER`
+ `SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT`

En el siguiente ejemplo, se muestra un escenario en el que se modifica `SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER`. La configuración es válida porque tanto `CRYPTO_CHECKSUM_TYPES_CLIENT` y `CRYPTO_CHECKSUM_TYPES_SERVER` usan `SHA256`.


| Ajuste de la opción | Valores antes de la modificación | Valores tras la modificación | 
| --- | --- | --- | 
|  `SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT`  |  `SHA256`, `SHA384`, `SHA512`  |  Sin cambios  | 
|  `SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER`  |  `SHA256`, `SHA384`, `SHA512`, `SHA1`, `MD5`  | SHA1,MD5,SHA256 | 

Por otro ejemplo, suponga que desea modificar `SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER` de su configuración predeterminada a `SHA1,MD5`. En este caso, asegúrese de establecer uno de estos valores para `SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT`: `SHA1` o `MD5`. Estos algoritmos no se incluyen en los valores predeterminados para `SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT`.

## Modificación de la configuración ALLOW\$1WEAK\$1CRYPTO\$1
<a name="Oracle.Options.NNE.ModifySettings.encryption"></a>

Para configurar las opciones `SQLNET.ALLOW_WEAK_CRYPTO*` del valor predeterminado a `FALSE`, asegúrese de que se cumplan las siguientes condiciones:
+ `SQLNET.ENCRYPTION_TYPES_SERVER` y `SQLNET.ENCRYPTION_TYPES_CLIENT` deben tener un método de cifrado seguro coincidente. Un método se considera seguro si no es `DES`, `3DES`, o bien `RC4` (todas las longitudes de clave).
+ `SQLNET.CHECKSUM_TYPES_SERVER` y `SQLNET.CHECKSUM_TYPES_CLIENT` deben tener un método de suma de comprobación seguro coincidente. Un método se considera seguro si no es `MD5`.
+ El cliente cuenta con la revisión de PSU de julio de 2021. Si el cliente no cuenta con la revisión, el cliente pierde la conexión y recibe el erorr `ORA-12269`.

El siguiente ejemplo muestra configuraciones NNE de muestra. Supongamos que desea configurar `SQLNET.ENCRYPTION_TYPES_SERVER` y `SQLNET.ENCRYPTION_TYPES_CLIENT` a FALSE, bloqueando así las conexiones no seguras. La configuración de la opción de suma de comprobación cumple los requisitos previos porque ambos tienen `SHA256`. Sin embargo, `SQLNET.ENCRYPTION_TYPES_CLIENT` y `SQLNET.ENCRYPTION_TYPES_SERVER` usan los métodos de cifrado no seguro `DES`, `3DES`, y `RC4`. Por lo tanto, para establecer las opciones `SQLNET.ALLOW_WEAK_CRYPTO*` en `FALSE`, primero establezca `SQLNET.ENCRYPTION_TYPES_SERVER` y `SQLNET.ENCRYPTION_TYPES_CLIENT` en un método de cifrado seguro como `AES256`.


| Ajuste de la opción | Valores | 
| --- | --- | 
|  `SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT`  |  `SHA256`, `SHA384`, `SHA512`  | 
|  `SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER`  | SHA1,MD5,SHA256 | 
|  `SQLNET.ENCRYPTION_TYPES_CLIENT`  |  `RC4_256`, `3DES168`, `DES40`  | 
|  `SQLNET.ENCRYPTION_TYPES_SERVER`  |  `RC4_256`, `3DES168`, `DES40`  | 

# Eliminación de la opción NATIVE\$1NETWORK\$1ENCRYPTION
<a name="Oracle.Options.NNE.Remove"></a>

Puede eliminar NNE de una instancia de base de datos. 

Para quitar la opción `NATIVE_NETWORK_ENCRYPTION` de una instancia de base de datos, realice una de las siguientes operaciones: 
+ Para eliminar la opción de varias instancias de bases de datos, elimine la opción `NATIVE_NETWORK_ENCRYPTION` del grupo de opciones al que pertenecen. Este cambio afecta a todas las instancias de base de datos que utilizan el grupo de opciones. Después de eliminar la opción `NATIVE_NETWORK_ENCRYPTION`, no es necesario reiniciar las instancias de base de datos. Para obtener más información, consulte [Quitar una opción de un grupo de opciones](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.RemoveOption). 
+ Para eliminar la opción de una sola instancia de base de datos, modifique la instancia y especifique otro grupo de opciones que no incluya la opción `NATIVE_NETWORK_ENCRYPTION`. Puede especificar el grupo de opciones predeterminado (vacío) u otro grupo de opciones personalizado. Después de quitar la opción `NATIVE_NETWORK_ENCRYPTION`, no es necesario reiniciar la instancia de base de datos. Para obtener más información, consulte [Modificación de una instancia de base de datos de Amazon RDS](Overview.DBInstance.Modifying.md). 

# Oracle OLAP
<a name="Oracle.Options.OLAP"></a>

Amazon RDS admite Oracle OLAP mediante el uso de la opción `OLAP`. Esta opción proporciona procesamiento analítico en línea (OLAP) para las instancias de base de datos de Oracle. Puede utilizar Oracle OLAP para analizar grandes cantidades de datos mediante la creación de cubos y objetos dimensionales de acuerdo con el estándar OLAP. Para obtener más información, consulte [la documentación de Oracle](https://docs.oracle.com/en/database/oracle/oracle-database/19/olaug/index.html). 

**importante**  
Si usa Oracle OLAP, Amazon RDS actualiza automáticamente la instancia de base de datos a la versión más reciente de Oracle PSU si hay vulnerabilidades de seguridad con una puntuación CVSS (Common Vulnerability Scoring System) superior a 9 u otras vulnerabilidades de seguridad anunciadas. 

Amazon RDS admite Oracle OLAP en Enterprise Edition de Oracle Database 19c y versiones posteriores.

## Requisitos previos para Oracle OLAP
<a name="Oracle.Options.OLAP.PreReqs"></a>

A continuación se indican los requisitos previos para utilizar Oracle OLAP: 
+ Debe tener una licencia de Oracle OLAP. Para obtener más información, consulte la [información sobre licencias](https://docs.oracle.com/en/database/oracle/oracle-database/19/dblic/Licensing-Information.html#GUID-B6113390-9586-46D7-9008-DCC9EDA45AB4) en la documentación de Oracle. 
+ Su instancia de base de datos debe ser de una clase de instancia suficiente. Oracle OLAP no es compatible con la clase de instancia de base de datos db.t3.small. Para obtener más información, consulte [Clases de instancias de base de datos de RDS para Oracle](Oracle.Concepts.InstanceClasses.md). 
+ Su instancia de base de datos debe tener **Auto Minor Version Upgrade** habilitada. Esta opción permite que la instancia de base de datos reciba actualizaciones de la versión secundaria del motor de base de datos automáticamente cuando estén disponibles y es necesaria para cualquier opción que instale la máquina virtual Java (JVM) de Oracle Amazon RDS utiliza esta opción para actualizar su instancia de base de datos a la PSU (Patch Set Update) de Oracle más reciente o actualización de la versión (RU). Para obtener más información, consulte [Modificación de una instancia de base de datos de Amazon RDS](Overview.DBInstance.Modifying.md). 
+ La instancia de base de datos no debe tener un usuario llamado `OLAPSYS`. Si lo hace, se produce un error en la instalación de la opción OLAP.

## Prácticas recomendadas para Oracle OLAP
<a name="Oracle.Options.OLAP.BestPractces"></a>

A continuación, se indican las prácticas recomendadas para utilizar Oracle OLAP: 
+ Para que la seguridad sea máxima, use la opción `OLAP` con Capa de conexión segura (SSL). Para obtener más información, consulte [Capa de conexión segura de Oracle](Appendix.Oracle.Options.SSL.md). 
+ Configure su instancia de base de datos para restringir el acceso a la misma. Para obtener más información, consulte [Escenarios de acceso a una instancia de base de datos en una VPC](USER_VPC.Scenarios.md) y [Uso de una instancia de base de datos en una VPC](USER_VPC.WorkingWithRDSInstanceinaVPC.md). 

## Adición de la opción Oracle OLAP
<a name="Oracle.Options.OLAP.Add"></a>

A continuación se muestra el proceso general para añadir la opción `OLAP` a una instancia de base de datos: 

1. Cree un grupo de opciones nuevo o copie o modifique un grupo de opciones existente.

1. Añada la opción al grupo de opciones.

1. Asocie el grupo de opciones a la instancia de base de datos.

Si la máquina virtual Java (JVM) de Oracle *no* está instalada en la instancia de base de datos, se produce una breve interrupción mientras se agrega la opción `OLAP`. No hay interrupción si la máquina virtual Java (JVM) de Oracle ya está instalada en la instancia de base de datos. Después de añadir la opción , no es necesario reiniciar la instancia de base de datos. En cuanto esté activo el grupo de opciones, Oracle OLAP estará disponible. 

**Para agregar la opción OLAP a una instancia de base de datos**

1. Determine el grupo de opciones que desea utilizar. Puede crear un grupo de opciones o utilizar uno existente. Si desea utilizar un grupo de opciones existente, vaya al siguiente paso. De lo contrario, cree un grupo de opciones de base de datos personalizado con las siguientes opciones: 
   + En **Engine (Motor)**, elija la edición de Oracle que corresponda a la instancia de base de datos. 
   + En **Major engine version (Versión principal del motor)**, elija la versión de su instancia de base de datos. 

   Para obtener más información, consulte [Creación de un grupo de opciones](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create). 

1. Agregue la opción **OLAP** al grupo de opciones. Para obtener más información acerca de la adición de opciones, consulte [Agregar una opción a un grupo de opciones](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption). 

1. Aplique el grupo de opciones a una instancia de base de datos nueva o existente: 
   + Si se trata de una instancia de base de datos nueva, aplique el grupo de opciones al lanzar la instancia. Para obtener más información, consulte [Creación de una instancia de base de datos de Amazon RDS](USER_CreateDBInstance.md). 
   + Para una instancia de base de datos existente, el grupo de opciones se aplica modificando la instancia y asociando el grupo de opciones nuevo. Para obtener más información, consulte [Modificación de una instancia de base de datos de Amazon RDS](Overview.DBInstance.Modifying.md). 

## Uso de Oracle OLAP
<a name="Oracle.Options.OLAP.Using"></a>

Una vez que habilite la opción Oracle OLAP, podrá empezar a usarla. Para obtener una lista de características compatibles con Oracle OLAP, consulte [la documentación de Oracle](https://docs.oracle.com/en/database/oracle/oracle-database/19/olaug/overview.html#GUID-E2056FE4-C623-4D29-B7D8-C4762F941966). 

## Eliminación de la opción Oracle OLAP
<a name="Oracle.Options.OLAP.Remove"></a>

Después de eliminar todos los objetos que utilizan los tipos de datos proporcionados por la opción `OLAP`, puede quitar la opción de una instancia de base de datos. Si la máquina virtual Java (JVM) de Oracle *no* está instalada en la instancia de base de datos, se produce una breve interrupción mientras se elimina la opción `OLAP`. No hay interrupción si la máquina virtual Java (JVM) de Oracle ya está instalada en la instancia de base de datos. Después de quitar la opción `OLAP`, no es necesario reiniciar la instancia de base de datos.

**Para eliminar la opción `OLAP`**

1. Haga una copia de seguridad de sus datos.
**aviso**  
Si la instancia utiliza tipos de datos habilitados como parte de la opción y si elimina la opción `OLAP`, puede perder datos. Para obtener más información, consulte [Copia de seguridad, restauración y exportación de datos](CHAP_CommonTasks.BackupRestore.md).

1. Compruebe si los objetos existentes hacen referencia a los tipos de datos o a las características de la opción `OLAP`. 

1. Suelte los objetos que hagan referencia a los tipos de datos o a las características de la opción `OLAP`.

1. Aplique alguna de las siguientes acciones:
   + Quite la opción `OLAP` del grupo de opciones al que pertenece. Este cambio afecta a todas las instancias de base de datos que utilizan el grupo de opciones. Para obtener más información, consulte [Quitar una opción de un grupo de opciones](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.RemoveOption).
   + Modifique la instancia de base de datos y especifique otro grupo de opciones que no incluya la opción `OLAP`. Este cambio afecta a una única instancia de base de datos. Puede especificar el grupo de opciones predeterminado (vacío) u otro grupo de opciones personalizado. Para obtener más información, consulte [Modificación de una instancia de base de datos de Amazon RDS](Overview.DBInstance.Modifying.md). 

# Capa de conexión segura de Oracle
<a name="Appendix.Oracle.Options.SSL"></a>

A fin de habilitar el cifrado SSL para una instancia de base de datos de RDS para Oracle, añada la opción Oracle SSL al grupo de opciones asociado a la instancia de base de datos. Amazon RDS utiliza un segundo puerto, según lo requiera Oracle, para las conexiones SSL. Este enfoque permite que se produzca la comunicación cifrada de SSL y de texto sin cifrar al mismo tiempo entre una instancia de base de datos y SQL\$1Plus. Por ejemplo, es posible utilizar el puerto con la comunicación de texto sin cifrar para ponerse en contacto con otros recursos dentro de una VPC mientras se utiliza el puerto con comunicación cifrada SSL para ponerse en contacto con recursos situados fuera de la VPC.

**nota**  
Se puede utilizar SSL o Native Network Encryption (NNE) en la misma instancia de base de datos de RDS para Oracle, pero no ambos. Si se utiliza el cifrado SSL, se debe desactivar cualquier otro cifrado de conexión. Para obtener más información, consulte [Oracle Native Network Encryption](Appendix.Oracle.Options.NetworkEncryption.md).

SSL/TLS y NNE ya no forman parte de Oracle Advanced Security. En RDS para Oracle, el cifrado SSL puede utilizarse con las ediciones con licencia de las siguientes versiones:
+ Oracle Database 21c (21.0.0)
+ Oracle Database 19c (19.0.0)

**Topics**
+ [Versiones de TLS para la opción Oracle SSL](#Appendix.Oracle.Options.SSL.TLS)
+ [Conjuntos de cifrado para la opción Oracle SSL](#Appendix.Oracle.Options.SSL.CipherSuites)
+ [Compatibilidad FIPS](#Appendix.Oracle.Options.SSL.FIPS)
+ [Compatibilidad de certificados con conjuntos de cifrado](#Appendix.Oracle.Options.SSL.CertificateCompatibility)
+ [Adición de la opción SSL](Appendix.Oracle.Options.SSL.OptionGroup.md)
+ [Configuración de SQL\$1Plus para utilizar SSL con una instancia de base de datos de RDS para Oracle](Appendix.Oracle.Options.SSL.ClientConfiguration.md)
+ [Conexión a una instancia de base de datos de RDS para Oracle mediante SSL](Appendix.Oracle.Options.SSL.Connecting.md)
+ [Configuración de una conexión SSL a través de JDBC](Appendix.Oracle.Options.SSL.JDBC.md)
+ [Obligatoriedad de la coincidencia del DN con una conexión SSL](Appendix.Oracle.Options.SSL.DNMatch.md)
+ [Solución de problemas de las conexiones SSL](Appendix.Oracle.Options.SSL.troubleshooting.md)

## Versiones de TLS para la opción Oracle SSL
<a name="Appendix.Oracle.Options.SSL.TLS"></a>

Amazon RDS para Oracle supports Transport Layer Security (TLS) versiones 1.0 y 1.2. Cuando añada una nueva opción Oracle SSL, establezca `SQLNET.SSL_VERSION` explícitamente en un valor válido. Los siguientes valores están permitidos para esta continuación de opciones:
+ `"1.0"`: los clientes pueden conectarse a la instancia de base de datos utilizando TLS versión 1.0 solo. Para las opciones de Oracle SSL existentes, `SQLNET.SSL_VERSION` se establece en `"1.0"` automáticamente. Puede cambiar la configuración si es necesario.
+ `"1.2"`: los clientes pueden conectarse a la instancia de base de datos utilizando TLS 1.2 solo.
+ `"1.2 or 1.0"`: los clientes pueden conectarse a la instancia de base de datos utilizando TLS 1.2 o 1.0.

## Conjuntos de cifrado para la opción Oracle SSL
<a name="Appendix.Oracle.Options.SSL.CipherSuites"></a>

Amazon RDS para Oracle es compatible con múltiples conjuntos de cifrado SSL. De manera predeterminada, la opción Oracle SSL está configurada para utilizar el conjunto de cifrado `SSL_RSA_WITH_AES_256_CBC_SHA`. Para especificar un conjunto de cifrado diferente para utilizarlo en las conexiones SSL, utilice la configuración de opciones `SQLNET.CIPHER_SUITE`.

Puede especificar varios valores para `SQLNET.CIPHER_SUITE`. Esta técnica resulta útil si tiene enlaces de bases de datos entre sus instancias de base de datos y decide actualizar los conjuntos de cifrado.

En la siguiente tabla se resume la compatibilidad de SSL para RDS para Oracle en todas las ediciones de Oracle Database 19c y 21c.


| Conjunto de cifrado (SQLNET.CIPHER\$1SUITE) | Compatibilidad de la versión de TLS (SQLNET.SSL\$1VERSION) | Compatibilidad FIPS | Conforme con FedRAMP | 
| --- | --- | --- | --- | 
| SSL\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA (predeterminado) | 1.0 y 1.2 | Sí | No | 
| SSL\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA256 | 1.2 | Sí | No | 
| SSL\$1RSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384 | 1.2 | Sí | No | 
| TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384 | 1.2 | Sí | Sí | 
| TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1GCM\$1SHA256 | 1.2 | Sí | Sí | 
| TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA384 | 1.2 | Sí | Sí | 
| TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA256 | 1.2 | Sí | Sí | 
| TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA | 1.2 | Sí | Sí | 
| TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA | 1.2 | Sí | Sí | 
| TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384 | 1.2 | Sí | Sí | 
| TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1256\$1CBC\$1SHA384 | 1.2 | Sí | Sí | 

## Compatibilidad FIPS
<a name="Appendix.Oracle.Options.SSL.FIPS"></a>

RDS para Oracle le permite usar el estándar federal de procesamiento de la información (FIPS) para 140-2. FIPS 140-2 es un estándar del gobierno estadounidense que define los requisitos de seguridad de los módulos criptográficos. Para activar el estándar FIPS, establezca el valor `FIPS.SSLFIPS_140` en `TRUE` para la opción SSL de Oracle. Cuando FIPS 140-2 se configura para SSL, las bibliotecas criptográficas cifran los datos entre el cliente y la instancia de base de datos de RDS para Oracle.

Los clientes deben usar el conjunto de cifrado compatible con FIPS. Al establecer una conexión, el cliente y la instancia de base de datos de RDS para Oracle negocian qué conjunto de cifrado utilizar al transmitir mensajes entre ellos. La tabla en [Conjuntos de cifrado para la opción Oracle SSL](#Appendix.Oracle.Options.SSL.CipherSuites) muestra los conjuntos de cifrado SSL compatibles con FIPS para cada versión de TLS. Para obtener más información, consulte [Oracle Database FIPS 140-2 Settings](https://docs.oracle.com/en/database/oracle/oracle-database/12.2/dbseg/oracle-database-fips-140-settings.html#GUID-DDBEB3F9-B216-44BB-8C18-43B5E468CBBB) en la documentación de Oracle.

## Compatibilidad de certificados con conjuntos de cifrado
<a name="Appendix.Oracle.Options.SSL.CertificateCompatibility"></a>

RDS para Oracle admite certificados RSA y de algoritmo de firma digital de curva elíptica (ECDSA). Al configurar SSL para la instancia de base de datos, debe asegurarse de que los conjuntos de cifrado que especifique en la configuración de la opción `SQLNET.CIPHER_SUITE` sean compatibles con el tipo de certificado utilizado por la instancia de base de datos.

En la siguiente tabla, se muestra la compatibilidad entre los tipos de certificados y los conjuntos de cifrado:


| Tipo de certificado | Conjuntos de cifrado compatibles | Conjuntos de cifrado incompatibles | 
| --- | --- | --- | 
| Certificados RSA (rds-ca-2019, rds-ca-rsa2048-g1, rds-ca-rsa4096-g1) |  SSL\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA SSL\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA256 SSL\$1RSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384 TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384 TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1GCM\$1SHA256 TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA384 TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA256 TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA  |  TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384 TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1256\$1CBC\$1SHA384  | 
| Certificados de ECDSA (rds-ca-ecc384-g1) |  TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384 TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1256\$1CBC\$1SHA384  |  SSL\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA SSL\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA256 SSL\$1RSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384 TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384 TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1GCM\$1SHA256 TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA384 TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA256 TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA  | 

Al especificar varios conjuntos de cifrado en la configuración de la opción `SQLNET.CIPHER_SUITE`, asegúrese de incluir al menos un conjunto de cifrado que sea compatible con el tipo de certificado utilizado por la instancia de base de datos. Si utiliza un grupo de opciones con varias instancias de base de datos que tienen distintos tipos de certificados, incluya al menos un conjunto de cifrado para cada tipo de certificado.

Si intenta asociar un grupo de opciones a una opción de SSL que contenga solo conjuntos de cifrado incompatibles con el tipo de certificado de una instancia de base de datos, la operación producirá un error y aparecerá un mensaje de error que indica la incompatibilidad.

# Adición de la opción SSL
<a name="Appendix.Oracle.Options.SSL.OptionGroup"></a>

Para usar SSL, su instancia de base de datos de RDS para Oracle debe estar asociada a un grupo de opciones que incluya la opción `SSL`.

## Consola
<a name="Appendix.Oracle.Options.SSL.OptionGroup.Console"></a>

**Para agregar la opción SSL a un grupo de opciones, realice el siguiente procedimiento:**

1. Cree un nuevo grupo de opciones o identifique uno ya existente al que pueda añadir la opción `SSL`.

   Para obtener información acerca de cómo crear un grupo de opciones, consulte [Creación de un grupo de opciones](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create).

1. Agregue la opción `SSL` al grupo de opciones.

   Si solo desea utilizar conjuntos de cifrado verificados por FIPS para las conexiones SSL, establezca la opción `FIPS.SSLFIPS_140` en `TRUE`. Para obtener información sobre el estándar FIPS, consulte [Compatibilidad FIPS](Appendix.Oracle.Options.SSL.md#Appendix.Oracle.Options.SSL.FIPS).

   Para obtener información acerca de cómo añadir una opción a un grupo de opciones, consulte [Agregar una opción a un grupo de opciones](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption).

1. Cree una nueva instancia de base de datos de RDS para Oracle y asocie el grupo de opciones a ella, o bien modifique una instancia de base de datos de RDS para Oracle para asociarla al grupo de opciones.

   Para obtener información acerca de la creación de una instancia de base de datos, consulte [Creación de una instancia de base de datos de Amazon RDS](USER_CreateDBInstance.md).

   Para obtener información acerca de la modificación de una instancia de base de datos, consulte [Modificación de una instancia de base de datos de Amazon RDS](Overview.DBInstance.Modifying.md).

## AWS CLI
<a name="Appendix.Oracle.Options.SSL.OptionGroup.CLI"></a>

**Para agregar la opción SSL a un grupo de opciones, realice el siguiente procedimiento:**

1. Cree un nuevo grupo de opciones o identifique uno ya existente al que pueda añadir la opción `SSL`.

   Para obtener información acerca de cómo crear un grupo de opciones, consulte [Creación de un grupo de opciones](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create).

1. Añada la opción `SSL` al grupo de opciones.

   Especifique las siguientes opciones de configuración:
   + `Port`: el número de puerto SSL.
   + `VpcSecurityGroupMemberships`: el grupo de seguridad de VPC para el que se ha habilitado la opción.
   + `SQLNET.SSL_VERSION`: la versión TLS que el cliente puede utilizar para conectarse a la instancia de base de datos.

   Por ejemplo, el siguiente comando de la AWS CLI añade la opción `SSL` a un grupo de opciones denominado `ora-option-group`.  
**Example**  

   Para Linux, macOS o:Unix

   ```
   aws rds add-option-to-option-group --option-group-name ora-option-group \
     --options 'OptionName=SSL,Port=2484,VpcSecurityGroupMemberships="sg-68184619",OptionSettings=[{Name=SQLNET.SSL_VERSION,Value=1.0}]'
   ```

   En:Windows

   ```
   aws rds add-option-to-option-group --option-group-name ora-option-group ^
     --options 'OptionName=SSL,Port=2484,VpcSecurityGroupMemberships="sg-68184619",OptionSettings=[{Name=SQLNET.SSL_VERSION,Value=1.0}]'
   ```

1. Cree una nueva instancia de base de datos de RDS para Oracle y asocie el grupo de opciones a ella, o bien modifique una instancia de base de datos de RDS para Oracle para asociarla al grupo de opciones.

   Para obtener información acerca de la creación de una instancia de base de datos, consulte [Creación de una instancia de base de datos de Amazon RDS](USER_CreateDBInstance.md).

   Para obtener información acerca de la modificación de una instancia de base de datos, consulte [Modificación de una instancia de base de datos de Amazon RDS](Overview.DBInstance.Modifying.md).

# Configuración de SQL\$1Plus para utilizar SSL con una instancia de base de datos de RDS para Oracle
<a name="Appendix.Oracle.Options.SSL.ClientConfiguration"></a>

Para poder conectarse a una instancia de base de datos de RDS para Oracle que utilice la opción Oracle SSL, deberá configurar SQL\$1Plus antes de conectarse.

**nota**  
Para permitir el acceso a la instancia de base de los clientes adecuados, asegúrese de que configuren los grupos de seguridad correctamente. Para obtener más información, consulte [Control de acceso con grupos de seguridad](Overview.RDSSecurityGroups.md). Estas instrucciones también son para SQL\$1Plus y otros clientes que usan directamente un sistema interno de Oracle. Para las conexiones JDBC, consulte [Configuración de una conexión SSL a través de JDBC](Appendix.Oracle.Options.SSL.JDBC.md).

**Para configurar SQL\$1Plus para que use SSL para conectarse a una instancia de base de datos de RDS para Oracle**

1. Establezca la variable de entorno `ORACLE_HOME` en la ubicación del directorio principal de Oracle.

   La ruta al directorio principal de Oracle depende de cada instalación. En el ejemplo siguiente, se establece la variable de entorno `ORACLE_HOME`.

   ```
   prompt>export ORACLE_HOME=/home/user/app/user/product/19.0.0/dbhome_1
   ```

   Para obtener más información sobre cómo establecer variables de entorno de Oracle, consulte [SQL\$1Plus Environment Variables](http://docs.oracle.com/database/121/SQPUG/ch_two.htm#SQPUG331) en la documentación de Oracle y vea además la guía de instalación de Oracle correspondiente a su sistema operativo.

1. Agregue `$ORACLE_HOME/lib` a la variable de entorno `LD_LIBRARY_PATH`.

   En el ejemplo siguiente, se establece la variable de entorno LD\$1LIBRARY\$1PATH.

   ```
   prompt>export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib 
   ```

1. Cree un directorio para el wallet de Oracle en `$ORACLE_HOME/ssl_wallet`.

   En el ejemplo siguiente, se crea el directorio del wallet de Oracle.

   ```
   prompt>mkdir $ORACLE_HOME/ssl_wallet
   ```

1. Descargue el archivo de paquete de certificados .pem que funciona con todas las Regiones de AWS y coloque el archivo en el directorio ssl\$1wallet. Para obtener más información, consulte [Uso de SSL/TLS para cifrar una conexión a una instancia o un clúster de base de datos](UsingWithRDS.SSL.md).

1. En el directorio `$ORACLE_HOME/network/admin`, modifique o cree el archivo `tnsnames.ora` e incluya la siguiente entrada.

   ```
   net_service_name = 
     (DESCRIPTION = 
       (ADDRESS_LIST = 
         (ADDRESS = 
           (PROTOCOL = TCPS) 
           (HOST = endpoint) 
           (PORT = ssl_port_number)
         )
       )
       (CONNECT_DATA = 
         (SID = database_name)
       )
       (SECURITY = 
         (SSL_SERVER_CERT_DN = "C=US,ST=Washington,L=Seattle,O=Amazon.com,OU=RDS,CN=endpoint")
       )
     )
   ```

1. En el mismo directorio, modifique o cree el archivo sqlnet.ora e incluya los siguientes parámetros.
**nota**  
Para comunicarse con entidades a través de una conexión segura TLS, Oracle requiere un wallet con los certificados necesarios para la autenticación. Puede usar la utilidad ORAPKI de Oracle para crear y mantener los wallets de Oracle, tal y como se muestra en el paso 7. Para obtener más información, consulte [Setting Up Oracle Wallet Using ORAPKI (Configuración de wallet de Oracle mediante ORAPKI)](https://docs.oracle.com/cd/E92519_02/pt856pbr3/eng/pt/tsvt/task_SettingUpOracleWalletUsingORAPKI.html) en la documentación de Oracle.

   ```
   WALLET_LOCATION = (SOURCE = (METHOD = FILE) (METHOD_DATA = (DIRECTORY = $ORACLE_HOME/ssl_wallet))) 
   SSL_CLIENT_AUTHENTICATION = FALSE 
   SSL_VERSION = 1.0 
   SSL_CIPHER_SUITES = (SSL_RSA_WITH_AES_256_CBC_SHA) 
   SSL_SERVER_DN_MATCH = ON
   ```
**nota**  
Puede establecer `SSL_VERSION` en un valor superior si su instancia de base de datos es compatible.

1. Ejecute el siguiente comando para crear el wallet de Oracle.

   ```
   prompt>orapki wallet create -wallet $ORACLE_HOME/ssl_wallet -auto_login_only
   ```

1. Extraiga cada certificado del archivo de paquete .pem en un archivo .pem independiente mediante una utilidad del sistema operativo.

1. Agregue cada certificado a su wallet mediante comandos `orapki` independientes y sustituya `certificate-pem-file` por el nombre absoluto del archivo .pem.

   ```
   prompt>orapki wallet add -wallet $ORACLE_HOME/ssl_wallet -trusted_cert -cert
         certificate-pem-file -auto_login_only
   ```

   Para obtener más información, consulte [Rotar certificados SSL/TLS](UsingWithRDS.SSL-certificate-rotation.md).

# Conexión a una instancia de base de datos de RDS para Oracle mediante SSL
<a name="Appendix.Oracle.Options.SSL.Connecting"></a>

Después de configurar SQL\$1Plus para utilizar SSL tal como se ha descrito anteriormente, puede conectarse a la instancia de base de datos de RDS para Oracle con la opción SSL. Opcionalmente, puede primero exportar el valor `TNS_ADMIN` que apunta al directorio que contiene los archivos tnsnames.ora y sqlnet.ora. Si realiza este procedimiento, se asegurará de que SQL\$1Plus puede detectar estos archivos sistemáticamente. En el siguiente ejemplo se exporta el valor `TNS_ADMIN`.

```
export TNS_ADMIN = ${ORACLE_HOME}/network/admin          
```

Conéctese a la instancia de base de datos. Por ejemplo, puede conectarse utilizando SQL\$1Plus y un *<net\$1service\$1name>* en un archivo tnsnames.ora.

```
sqlplus mydbuser@net_service_name          
```

También puede conectar a la instancia de base de datos mediante SQL\$1Plus sin utilizar un archivo tnsnames.ora utilizando el siguiente comando.

```
sqlplus 'mydbuser@(DESCRIPTION = (ADDRESS = (PROTOCOL = TCPS)(HOST = endpoint) (PORT = ssl_port_number))(CONNECT_DATA = (SID = database_name)))'          
```

También puede conectarse a la instancia de base de datos de RDS para Oracle sin utilizar SSL. Por ejemplo, el siguiente comando se conecta a la instancia de base de datos a través del puerto de texto sin cifrar que no utiliza el cifrado SSL.

```
sqlplus 'mydbuser@(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = endpoint) (PORT = port_number))(CONNECT_DATA = (SID = database_name)))'          
```

Si desea cerrar el acceso al puerto TCP (Protocolo de control de transmisión), cree un grupo de seguridad sin entradas de dirección IP y añádalo a la instancia. Esta adición cierra las conexiones a través del puerto TCP, pero permite las conexiones a través del puerto SSL que se realizan desde las direcciones IP incluidas en el rango permitido por el grupo de seguridad de la opción SSL.

# Configuración de una conexión SSL a través de JDBC
<a name="Appendix.Oracle.Options.SSL.JDBC"></a>

Para utilizar una conexión SSL a través de JDBC, debe crear un almacén de claves, confiar en el certificado de CA raíz de Amazon RDS y utilizar el siguiente fragmento de código especificado.

Para crear el almacén de claves con formato JKS, puede utilizar el siguiente comando. Para obtener más información acerca de la creación del almacén de claves, consulte [Creating a keystore](https://docs.oracle.com/cd/E35822_01/server.740/es_admin/src/tadm_ssl_jetty_keystore.html) en la documentación de Oracle. Para obtener información de referencia, consulte [keytool](https://docs.oracle.com/javase/8/docs/technotes/tools/windows/keytool.html) en la *Referencia de herramientas de la plataforma Java, edición estándar*.

```
keytool -genkey -alias client -validity 365 -keyalg RSA -keystore clientkeystore         
```

Siga estos pasos para confiar en el certificado de CA raíz de Amazon RDS.

**Para confiar en el certificado de CA raíz de Amazon RDS**

1. Descargue el archivo de paquete de certificados .pem que funciona con todas las Regiones de AWS y coloque el archivo en el directorio ssl\$1wallet.

   Para obtener más información acerca de cómo descargar certificados, consulte [Uso de SSL/TLS para cifrar una conexión a una instancia o un clúster de base de datos](UsingWithRDS.SSL.md).

1. Extraiga cada certificado del archivo .pem en un archivo independiente mediante una utilidad del sistema operativo.

1. Convierta cada certificado al formato .der mediante un comando `openssl` independiente y sustituya *certificate-pem-file* por el nombre del archivo .pem del certificado (sin la extensión .pem).

   ```
   openssl x509 -outform der -in certificate-pem-file.pem -out certificate-pem-file.der                
   ```

1. Importe cada certificado al almacén de claves utilizando el siguiente comando.

   ```
   keytool -import -alias rds-root -keystore clientkeystore.jks -file certificate-pem-file.der                
   ```

   Para obtener más información, consulte [Rotar certificados SSL/TLS](UsingWithRDS.SSL-certificate-rotation.md).

1. Confirme que el almacén de claves se haya creado correctamente.

   ```
   keytool -list -v -keystore clientkeystore.jks                                            
   ```

   Especifique la contraseña del almacén de claves cuando se le solicite.

El siguiente ejemplo de código muestra cómo configurar la conexión SSL mediante JDBC.

```
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
 
public class OracleSslConnectionTest {
    private static final String DB_SERVER_NAME = "dns-name-provided-by-amazon-rds";
    private static final Integer SSL_PORT = "ssl-option-port-configured-in-option-group";
    private static final String DB_SID = "oracle-sid";
    private static final String DB_USER = "user-name";
    private static final String DB_PASSWORD = "password";
    // This key store has only the prod root ca.
    private static final String KEY_STORE_FILE_PATH = "file-path-to-keystore";
    private static final String KEY_STORE_PASS = "keystore-password";
 
    public static void main(String[] args) throws SQLException {
        final Properties properties = new Properties();
        final String connectionString = String.format(
                "jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCPS)(HOST=%s)(PORT=%d))(CONNECT_DATA=(SID=%s)))",
                DB_SERVER_NAME, SSL_PORT, DB_SID);
        properties.put("user", DB_USER);
        properties.put("password", DB_PASSWORD);
        properties.put("oracle.jdbc.J2EE13Compliant", "true");
        properties.put("javax.net.ssl.trustStore", KEY_STORE_FILE_PATH);
        properties.put("javax.net.ssl.trustStoreType", "JKS");
        properties.put("javax.net.ssl.trustStorePassword", KEY_STORE_PASS);
        final Connection connection = DriverManager.getConnection(connectionString, properties);
        // If no exception, that means handshake has passed, and an SSL connection can be opened
    }
}
```

**nota**  
Especifique una contraseña distinta de la que se muestra aquí como práctica recomendada de seguridad.

# Obligatoriedad de la coincidencia del DN con una conexión SSL
<a name="Appendix.Oracle.Options.SSL.DNMatch"></a>

Puede utilizar el parámetro de Oracle `SSL_SERVER_DN_MATCH` para hacer que sea obligatorio que el nombre distinguido (DN) del servidor de bases de datos coincida con su nombre de servicio. Si la verificación de coincidencia es obligatoria, SSL se asegura de que el certificado sea el del servidor. Si la verificación de coincidencia no es obligatoria, SSL realiza la comprobación, pero permite la conexión, independientemente de que haya o no una coincidencia. Si no se hace obligatoria la coincidencia, el servidor podría falsificar su identidad.

Para hacer obligatoria la coincidencia del DN, añada la propiedad de coincidencia del DN y utilice la cadena de conexión especificada a continuación.

Añada la propiedad a la conexión del cliente para hacer obligatoria la coincidencia del DN.

```
properties.put("oracle.net.ssl_server_dn_match", "TRUE");            
```

Utilice la siguiente cadena de conexión para hacer obligatoria la coincidencia del DN al utilizar SSL.

```
final String connectionString = String.format(
    "jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCPS)(HOST=%s)(PORT=%d))" +
    "(CONNECT_DATA=(SID=%s))" +
    "(SECURITY = (SSL_SERVER_CERT_DN = 
\"C=US,ST=Washington,L=Seattle,O=Amazon.com,OU=RDS,CN=%s\")))",
    DB_SERVER_NAME, SSL_PORT, DB_SID, DB_SERVER_NAME);
```

# Solución de problemas de las conexiones SSL
<a name="Appendix.Oracle.Options.SSL.troubleshooting"></a>

Puede consultar la base de datos y recibir el error `ORA-28860`.

```
ORA-28860: Fatal SSL error
28860. 00000 - "Fatal SSL error"
*Cause: An error occurred during the SSL connection to the peer. It is likely that this side sent data which the peer rejected.
*Action: Enable tracing to determine the exact cause of this error.
```

Este error se produce cuando el cliente intenta conectarse mediante una versión de TLS que el servidor no admite. Para evitar este error, edite sqlnet.ora y establezca `SSL_VERSION` en la versión de TLS correcta. Para obtener más información, consulte el [documento de soporte de Oracle 2748438.1](https://support.oracle.com/epmos/faces/DocumentDisplay?id=2748438.1) en My Oracle Support.

# Oracle Spatial
<a name="Oracle.Options.Spatial"></a>

Amazon RDS admite Oracle Spatial mediante el uso de la opción `SPATIAL`. Oracle Spatial proporciona un esquema y funciones SQL que facilitan el almacenamiento, la recuperación, la actualización y la consulta de colecciones de datos espaciales en una base de datos de Oracle. Para obtener más información, consulte [Spatial Concepts](http://docs.oracle.com/database/121/SPATL/spatial-concepts.htm#SPATL010) en la documentación de Oracle. Amazon RDS admite Oracle Spatial en todas las ediciones de todas las versiones compatibles.

## Funcionamiento de las agrupaciones de revisiones espaciales (SPB)
<a name="Oracle.Options.Spatial.SPBs"></a>

Cada trimestre, RDS para Oracle lanza nuevas versiones de motor secundarias para cada motor principal compatible. Una versión de motor de actualización de revisión (RU) incorpora correcciones de errores de Oracle al incluir las revisiones de RU para el trimestre especificado. Una versión de motor de agrupación de revisiones espaciales (SPB) contiene revisiones de RU más revisiones específicas de Oracle Spatial. Por ejemplo, 19.0.0.0.ru-2025-01.spb-1.r1 es una versión de motor secundaria que contiene las revisiones RU en la versión de motor 19.0.0.0.ru-2025-01.rur-2025-01.r1 más revisiones espaciales. Las SPB solo son compatibles con Oracle Database 19c.

Las SPB funcionan de la misma manera que las RU, aunque se llaman de manera diferente. Una RU utiliza el formato de nomenclatura 19.0.0.0.ru-2025-01.rur-2025-01.r1. Un nombre de SPB incluye el texto “spb”, como en 19.0.0.0.ru-2025-01.spb-1.r1. Por lo general, una SPB se publica entre dos y tres semanas después de la RU trimestral correspondiente. Por ejemplo, 19.0.0.0.ru-2025-01.spb-1.r1 se publica después de 19.0.0.0.ru-2025-01.rur-2025-01.r1.

RDS para Oracle tiene rutas separadas para actualizaciones automáticas de versiones secundarias de las RU y SPB. Si la instancia de base de datos utiliza una RU, RDS la actualiza automáticamente a una RU. Si la instancia de base de datos utiliza una SPB, RDS la actualiza a una SPB.

Para obtener más información acerca de las RU y SPB, consulte [Actualizaciones de la versión secundaria de Oracle](USER_UpgradeDBInstance.Oracle.Minor.md). Para obtener una lista de las RU y SPB compatibles con Oracle Database 19c, consulte [Amazon RDS para Oracle Database 19c (19.0.0.0)](https://docs.aws.amazon.com/AmazonRDS/latest/OracleReleaseNotes/oracle-version-19-0.html) en *Notas de la versión de Amazon RDS para Oracle*.

## Requisitos previos de Oracle Spatial
<a name="Oracle.Options.Spatial.PreReqs"></a>

A continuación, se indican los requisitos previos para utilizar Oracle Spatial: 
+ Asegúrese de que su instancia de base de datos sea de una clase de instancia suficiente. Oracle Spatial no es compatible con las clases de instancia de base de datos db.t3.small. Para obtener más información, consulte [Clases de instancias de base de datos de RDS para Oracle](Oracle.Concepts.InstanceClasses.md). 
+ Asegúrese de que su instancia de base de datos tiene habilitada la **Actualización automática de la versión menor**. Esta opción permite que la instancia de base de datos reciba actualizaciones de la versión secundaria del motor de base de datos automáticamente cuando estén disponibles y es necesaria para cualquier opción que instale la máquina virtual Java (JVM) de Oracle Amazon RDS utiliza esta opción para actualizar su instancia de base de datos a la PSU (Patch Set Update) de Oracle más reciente o actualización de la versión (RU). Para obtener más información, consulte [Modificación de una instancia de base de datos de Amazon RDS](Overview.DBInstance.Modifying.md). 

## Prácticas recomendadas de Oracle Spatial
<a name="Oracle.Options.Spatial.BestPractces"></a>

A continuación, se indican las prácticas recomendadas para utilizar Oracle Spatial: 
+ Para que la seguridad sea máxima, use la opción `SPATIAL` con Capa de conexión segura (SSL). Para obtener más información, consulte [Capa de conexión segura de Oracle](Appendix.Oracle.Options.SSL.md). 
+ Configure su instancia de base de datos para restringir el acceso a la misma. Para obtener más información, consulte [Escenarios de acceso a una instancia de base de datos en una VPC](USER_VPC.Scenarios.md) y [Uso de una instancia de base de datos en una VPC](USER_VPC.WorkingWithRDSInstanceinaVPC.md). 

## Adición de la opción Oracle Spatial
<a name="Oracle.Options.Spatial.Add"></a>

A continuación se muestra el proceso general para añadir la opción `SPATIAL` a una instancia de base de datos: 

1. Cree un grupo de opciones nuevo o copie o modifique un grupo de opciones existente.

1. Añada la opción al grupo de opciones.

1. Asocie el grupo de opciones a la instancia de base de datos.

Si la máquina virtual Java (JVM) de Oracle *no* está instalada en la instancia de base de datos, se produce una breve interrupción mientras se agrega la opción `SPATIAL`. No hay interrupción si la máquina virtual Java (JVM) de Oracle ya está instalada en la instancia de base de datos. Después de añadir la opción , no es necesario reiniciar la instancia de base de datos. En cuanto esté activo el grupo de opciones, Oracle Spatial estará disponible. 

**nota**  
Durante esta interrupción, las funciones de verificación de contraseña se deshabilitan brevemente. También puede esperar ver eventos relacionados con las funciones de verificación de contraseña durante la interrupción. Las funciones de verificación de contraseña se vuelven a habilitar antes de que la instancia de base de datos de Oracle esté disponible.

**Para añadir la opción `SPATIAL` a una instancia de base de datos**

1. Determine el grupo de opciones que desea utilizar. Puede crear un grupo de opciones o utilizar uno existente. Si desea utilizar un grupo de opciones existente, vaya al siguiente paso. De lo contrario, cree un grupo de opciones de base de datos personalizado con las siguientes opciones: 

   1. En **Engine (Motor)**, elija la edición de Oracle que corresponda a la instancia de base de datos. 

   1. En **Major engine version (Versión principal del motor)**, elija la versión de su instancia de base de datos. 

   Para obtener más información, consulte [Creación de un grupo de opciones](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create). 

1. Añada la opción **SPATIAL** al grupo de opciones. Para obtener más información acerca de la adición de opciones, consulte [Agregar una opción a un grupo de opciones](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption). 

1. Aplique el grupo de opciones a una instancia de base de datos nueva o existente: 
   + Si se trata de una instancia de base de datos nueva, el grupo de opciones se aplica cuando se lanza la instancia. Para obtener más información, consulte [Creación de una instancia de base de datos de Amazon RDS](USER_CreateDBInstance.md). 
   + Para una instancia de base de datos existente, el grupo de opciones se aplica modificando la instancia y asociando el grupo de opciones nuevo. Para obtener más información, consulte [Modificación de una instancia de base de datos de Amazon RDS](Overview.DBInstance.Modifying.md). 

## Eliminación de la opción Oracle Spatial
<a name="Oracle.Options.Spatial.Remove"></a>

Después de eliminar todos los objetos que utilizan los tipos de datos proporcionados por la opción `SPATIAL`, puede eliminar la opción de una instancia de base de datos. Si la máquina virtual Java (JVM) de Oracle *no* está instalada en la instancia de base de datos, se produce una breve interrupción mientras se elimina la opción `SPATIAL`. No hay interrupción si la máquina virtual Java (JVM) de Oracle ya está instalada en la instancia de base de datos. Después de quitar la opción `SPATIAL`, no es necesario reiniciar la instancia de base de datos.

**Para eliminar la opción `SPATIAL`**

1. Haga una copia de seguridad de sus datos.
**aviso**  
Si la instancia utiliza tipos de datos habilitados como parte de la opción y si elimina la opción `SPATIAL`, puede perder datos. Para obtener más información, consulte [Copia de seguridad, restauración y exportación de datos](CHAP_CommonTasks.BackupRestore.md).

1. Compruebe si los objetos existentes hacen referencia a los tipos de datos o a las características de la opción `SPATIAL`. 

   Si existen opciones `SPATIAL`, la instancia puede quedarse atascada al aplicar el nuevo grupo de opciones que no tiene la opción `SPATIAL`. Puede identificar los objetos mediante las siguientes consultas:

   ```
   SELECT OWNER, SEGMENT_NAME, TABLESPACE_NAME, BYTES/1024/1024 mbytes
   FROM   DBA_SEGMENTS
   WHERE  SEGMENT_TYPE LIKE '%TABLE%'
   AND    (OWNER, SEGMENT_NAME) IN
          (SELECT DISTINCT OWNER, TABLE_NAME 
           FROM   DBA_TAB_COLUMNS
           WHERE  DATA_TYPE='SDO_GEOMETRY'
           AND    OWNER <> 'MDSYS')
   ORDER BY 1,2,3,4;
   
   SELECT OWNER, TABLE_NAME, COLUMN_NAME
   FROM   DBA_TAB_COLUMNS 
   WHERE  DATA_TYPE = 'SDO_GEOMETRY' 
   AND    OWNER <> 'MDSYS' 
   ORDER BY 1,2,3;
   ```

1. Suelte los objetos que hagan referencia a los tipos de datos o a las características de la opción `SPATIAL`.

1. Aplique alguna de las siguientes acciones:
   + Quite la opción `SPATIAL` del grupo de opciones al que pertenece. Este cambio afecta a todas las instancias de base de datos que utilizan el grupo de opciones. Para obtener más información, consulte [Quitar una opción de un grupo de opciones](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.RemoveOption).
   + Modifique la instancia de base de datos y especifique otro grupo de opciones que no incluya la opción `SPATIAL`. Este cambio afecta a una única instancia de base de datos. Puede especificar el grupo de opciones predeterminado (vacío) u otro grupo de opciones personalizado. Para obtener más información, consulte [Modificación de una instancia de base de datos de Amazon RDS](Overview.DBInstance.Modifying.md). 

# Oracle SQLT
<a name="Oracle.Options.SQLT"></a>

Amazon RDS admite Oracle SQLTXPLAIN (SQLT) mediante el uso de la opción SQLT. Puede utilizar SQLT con cualquier edición de Oracle Database 19c y versiones posteriores.

El enunciado `EXPLAIN PLAN` de Oracle puede determinar el plan de ejecución de una instrucción SQL. Puede verificar si el optimizador de Oracle elige un plan de ejecución determinado, como una combinación de bucles anidados. También le ayuda a comprender las decisiones del optimizador, p. ej. por qué elige una combinación de bucles anidados sobre una combinación hash. Así pues, `EXPLAIN PLAN` le ayuda a comprender el desempeño de la instrucción.

SQLT es una utilidad de Oracle que produce un informe. En el informe se incluyen estadísticas de objetos, metadatos de objetos, parámetros de inicialización relacionados con el optimizador y otra información que puede usar un administrador de base de datos para ajustar una instrucción SQL y obtener un desempeño óptimo. SQLT produce un informe HTML con hipervínculos a todas las secciones del informe.

A diferencia de los informes de Automatic Workload Repository o Statspack, SQLT funciona en instrucciones SQL individuales. SQLT es un conjunto de archivos SQL, PL/SQL y SQL\$1Plus que recopilan, almacenan y muestran datos de desempeño. 

A continuación se encuentran las versiones compatibles de Oracle para cada versión de SQLT.


****  

| Versión de SQLT | Oracle Database 21c | Oracle Database 19c | 
| --- | --- | --- | 
|  2018-07-25.v1  |  Soportado  |  Soportado  | 
|  2018-03-31.v1  |  No admitido  |  No admitido  | 
|  2016-04-29.v1  |  No admitido  |  No admitido  | 

Para descargar SQLT y acceder a sus instrucciones de uso, haga lo siguiente:
+ Inicie sesión en su cuenta de My Oracle Support y abra los siguientes documentos:
+ Para descargar SQLT: [documento 215187.1](https://support.oracle.com/epmos/faces/DocumentDisplay?id=215187.1)
+ Para obtener instrucciones de uso de SQLT: [documento 1614107.1](https://support.oracle.com/epmos/faces/DocumentDisplay?id=1614107.1)
+ Para consultar las preguntas frecuentes acerca de SQLT: [documento 1454160.1](https://support.oracle.com/epmos/faces/DocumentDisplay?id=1454160.1)
+ Para obtener información acerca de la lectura de la salida SQLT: [documento 1456176.1](https://support.oracle.com/epmos/main/downloadattachmentprocessor?parent=DOCUMENT&sourceId=1456176.1&attachid=1456176.1:58&clickstream=yes)
+ Para interpretar el informe principal: [documento 1922234.1](https://support.oracle.com/epmos/faces/DocumentDisplay?parent=DOCUMENT&sourceId=215187.1&id=1922234.1)

Amazon RDS no admite los siguientes métodos SQLT: 
+ `XPLORE` 
+ `XHUME` 

## Requisitos previos para SQLT
<a name="Oracle.Options.SQLT.PreReqs"></a>

A continuación se indican los requisitos previos para utilizar SQLT:
+ Debe quitar los usuarios y funciones requeridos por SQLT, si existen.

  La opción SQLT crea los siguientes usuarios y funciones en una instancia de base de datos: 
  + `SQLTXPLAIN` usuario
  + `SQLTXADMIN` usuario
  + `SQLT_USER_ROLE` rol

  Si su instancia de base de datos tiene cualquiera de estos usuarios o funciones, inicie sesión en la instancia de base de datos mediante un cliente SQL y suéltelos mediante las siguientes instrucciones:

  ```
  DROP USER SQLTXPLAIN CASCADE;
  DROP USER SQLTXADMIN CASCADE;   
  DROP ROLE SQLT_USER_ROLE CASCADE;
  ```
+ Debe quitar los espacios de tablas requeridos por SQLT, si existen.

  La opción SQLT crea los siguientes espacios de tablas en una instancia de base de datos: 
  + `RDS_SQLT_TS`
  + `RDS_TEMP_SQLT_TS`

  Si su instancia de base de datos tiene estos espacios de tablas, inicie sesión en la instancia de base de datos mediante un cliente SQL y suéltelos.

## Configuración de la opción SQLT
<a name="Oracle.Options.SQLT.Options"></a>

 SQLT puede trabajar con características con licencia proporcionadas por los paquetes Oracle Tuning Pack y Oracle Diagnostics Pack. El paquete Oracle Tuning Pack incluye SQL Tuning Advisor, mientras que Oracle Diagnostics Pack incluye Automatic Workload Repository. La configuración de SQLT habilita o deshabilita el acceso a estas características desde SQLT. 

Amazon RDS admite los siguientes valores para las opciones de SQLT. 


****  

| Ajuste de la opción | Valores válidos | Valor predeterminado | Descripción | 
| --- | --- | --- | --- | 
|  `LICENSE_PACK`  |  `T`, `D`, `N`  |  `N`   |  Los paquetes Oracle Management Pack a los que desea obtener acceso con SQLT. Escriba uno de los siguientes valores: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/Oracle.Options.SQLT.html)  Amazon RDS no proporciona licencias para estos paquetes Oracle Management Pack. Si indica que desea usar un paquete que no se incluye en su instancia de base de datos, puede usar SQLT con la instancia de base de datos. Sin embargo, SQLT no puede obtener acceso al paquete y en el informe de SQLT no se incluyen los datos del mismo. Por ejemplo, si especifica `T`, pero la instancia de base de datos no incluye el paquete Oracle Tuning Pack, SQLT trabaja en la instancia de base de datos, pero el informe que genera no contiene datos relacionados con el paquete Oracle Tuning Pack.   | 
|  `VERSION`  |  `2016-04-29.v1` `2018-03-31.v1` `2018-07-25.v1`  |  `2016-04-29.v1`   |  La versión de SQLT que desea instalar.  Para la base de datos Oracle 19c y 21c, la única versión compatible es `2018-07-25.v1`. Esta versión es la predeterminada para estas versiones.   | 

## Adición de la opción SQLT
<a name="Oracle.Options.SQLT.Add"></a>

A continuación se muestra el proceso general para añadir la opción SQLT a una instancia de base de datos: 

1. Cree un grupo de opciones nuevo o copie o modifique un grupo de opciones existente.

1. Añada la opción SQLT al grupo de opciones.

1. Asocie el grupo de opciones a la instancia de base de datos.

Después de añadir la opción SQLT, esta se activará en cuanto se active el grupo de opciones. 

**Para añadir la opción SQLT a una instancia de base de datos**

1. Determine el grupo de opciones que desea utilizar. Puede crear un grupo de opciones o utilizar uno existente. Si desea utilizar un grupo de opciones existente, vaya al siguiente paso. De lo contrario, cree un grupo de opciones de base de datos personalizado con las siguientes opciones: 

   1. En **Engine**, elija la edición de Oracle que desea utilizar. La opción SQLT se admite en todas las ediciones. 

   1. En **Major engine version (Versión principal del motor)**, elija la versión de su instancia de base de datos. 

   Para obtener más información, consulte [Creación de un grupo de opciones](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create). 

1. Añada la opción **SQLT** al grupo de opciones. Para obtener más información acerca de la adición de opciones, consulte [Agregar una opción a un grupo de opciones](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption). 

1. Aplique el grupo de opciones a una instancia de base de datos nueva o existente: 
   + Si se trata de una instancia de base de datos nueva, el grupo de opciones se aplica cuando se lanza la instancia. Para obtener más información, consulte [Creación de una instancia de base de datos de Amazon RDS](USER_CreateDBInstance.md). 

      
   + Para una instancia de base de datos existente, el grupo de opciones se aplica modificando la instancia y asociando el grupo de opciones nuevo. Para obtener más información, consulte [Modificación de una instancia de base de datos de Amazon RDS](Overview.DBInstance.Modifying.md). 

1. (Opcional) Verifique la instalación de SQLT en cada instancia de base de datos con la opción SQLT. 

   1. Use un cliente SQL para conectarse a la instancia de base de datos como usuario maestro.

      Para obtener información acerca de la conexión a su base de datos Oracle mediante un cliente SQL, consulte [Conexión a una instancia de base de datos de Oracle](USER_ConnectToOracleInstance.md).

   1. Ejecute la siguiente consulta:

      ```
      SELECT sqltxplain.sqlt$a.get_param('tool_version') sqlt_version FROM DUAL;                        
      ```

      La consulta devuelve la versión actual de la opción SQLT en Amazon RDS. `12.1.160429` es un ejemplo de una versión de SQLT que está disponible en Amazon RDS.

1. Cambie las contraseñas de los usuarios que crea la opción SQLT.

   1. Use un cliente SQL para conectarse a la instancia de base de datos como usuario maestro.

   1. Ejecute la siguiente instrucción SQL para cambiar la contraseña del usuario `SQLTXADMIN`:

      ```
      ALTER USER SQLTXADMIN IDENTIFIED BY new_password ACCOUNT UNLOCK;                         
      ```
**nota**  
Especifique una contraseña distinta de la que se muestra aquí como práctica recomendada de seguridad.

   1. Ejecute la siguiente instrucción SQL para cambiar la contraseña del usuario `SQLTXPLAIN`:

      ```
      ALTER USER SQLTXPLAIN IDENTIFIED BY new_password ACCOUNT UNLOCK;                         
      ```
**nota**  
Especifique una contraseña distinta de la que se muestra aquí como práctica recomendada de seguridad.

**nota**  
La actualización de SQLT requiere la desinstalación de una versión anterior de SQLT para, a continuación, instalar la versión nueva. Así pues, todos los metadatos SQLT se pueden perder al actualizar SQLT. Una actualización de versión principal de una base de datos también desinstala y vuelve a instalar SQLT. Un ejemplo de una actualización de versión principal es una actualización de Oracle Database 19c a Oracle Database 21c.

## Uso de SQLT
<a name="Oracle.Options.SQLT.Using"></a>

SQLT funciona con la utilidad Oracle SQL\$1Plus. 

**Para usar SQLT**

1.  Descargue el archivo .zip SQLT en el [documento 215187.1](https://support.oracle.com/epmos/faces/DocumentDisplay?id=215187.1) del sitio de My Oracle Support. 
**nota**  
No se puede descargar SQLT 12.1.160429 del sitio de My Oracle Support. Oracle ha retirado esta versión antigua.

1.  Descomprima el archivo .zip SQLT. 

1.  En un símbolo del sistema, cambie al directorio `sqlt/run` de su sistema de archivos. 

1.  En el símbolo del sistema, abra SQL\$1Plus y conéctese a la instancia de base de datos como usuario maestro. 

   Para obtener más información acerca de la conexión a una instancia de base de datos mediante SQL\$1Plus, consulte [Conexión a una instancia de base de datos de Oracle](USER_ConnectToOracleInstance.md).

1.  Obtenga el ID de SQL de una instrucción SQL: 

   ```
   SELECT SQL_ID FROM V$SQL WHERE SQL_TEXT='sql_statement';                               
   ```

   Su resultado es similar al siguiente: 

   ```
   SQL_ID
   -------------
   chvsmttqjzjkn
   ```

1. Analice una instrucción SQL con SQLT: 

   ```
   START sqltxtract.sql sql_id sqltxplain_user_password                    
   ```

   Por ejemplo, para el ID de SQL `chvsmttqjzjkn`, escriba lo siguiente:

   ```
   START sqltxtract.sql chvsmttqjzjkn sqltxplain_user_password                    
   ```

   SQLT genera el informe HTML y recursos relacionados como un archivo .zip del directorio de ejecución del comando SQLT.

1.  (Opcional) Para permitir a los usuarios de la aplicación diagnosticar instrucciones SQL con SQLT, conceda `SQLT_USER_ROLE` a cada usuario de la aplicación con la siguiente instrucción: 

   ```
   GRANT SQLT_USER_ROLE TO application_user_name;                
   ```
**nota**  
Oracle no recomienda ejecutar SQLT con el usuario `SYS` o con usuarios que tienen la función `DBA`. Es una práctica recomendada ejecutar SQLT Diagnostics mediante la cuenta del usuario de la aplicación, concediendo `SQLT_USER_ROLE` a este.

## Actualización de la opción de SQLT
<a name="Oracle.Options.SQLT.Upgrading"></a>

Con Amazon RDS for Oracle, puede actualizar la opción de SQLT de su versión existente a una versión superior. Para actualizar la opción de SQLT, complete los pasos 1–3 de [Uso de SQLT](#Oracle.Options.SQLT.Using) para obtener la nueva versión de SQLT. Además, si concedió privilegios para la versión anterior de SQLT en el paso 7 de esa sección, vuelva a conceder los privilegios para la nueva versión de SQLT. 

La actualización de la opción de SQLT da lugar a la pérdida de los metadatos de la versión más antigua de SQLT. El esquema y los objetos relacionados con la versión más antigua de SQLT se borran y se instala la versión más reciente de SQLT. Para obtener más información acerca de los cambios en la última versión de SQLT, consulte el [documento 1614201.1](https://support.oracle.com/epmos/faces/DocumentDisplay?parent=DOCUMENT&sourceId=215187.1&id=1614201.1) en el sitio de My Oracle Support.

**nota**  
No se admiten las versiones de nivel inferior.

## Modificación de la configuración de SQLT
<a name="Oracle.Options.SQLT.ModifySettings"></a>

Después de habilitar SQLT, puede modificar la configuración de `LICENSE_PACK` y `VERSION` de la opción.

Para obtener más información acerca de cómo modificar la configuración de las opciones, consulte [Modificación de una configuración de opciones](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.ModifyOption). Para obtener más información acerca de cada opción, consulte [Configuración de la opción SQLT](#Oracle.Options.SQLT.Options). 

## Eliminación de la opción de SQLT
<a name="Oracle.Options.SQLT.Remove"></a>

Puede eliminar SQLT de una instancia de base de datos. 

Para quitar SQLT de una instancia de base de datos, realice una de las siguientes operaciones: 
+ Para quitar SQLT de varias instancias de base de datos, quite la opción SQLT del grupo de opciones al que pertenecen las instancias de base de datos. Este cambio afecta a todas las instancias de base de datos que utilizan el grupo de opciones. Para obtener más información, consulte [Quitar una opción de un grupo de opciones](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.RemoveOption). 

   
+ Para quitar SQLT de una única instancia de base de datos, modifique la instancia y especifique un grupo de opciones distinto que no incluya la opción SQLT. Puede especificar el grupo de opciones predeterminado (vacío) u otro grupo de opciones personalizado. Para obtener más información, consulte [Modificación de una instancia de base de datos de Amazon RDS](Overview.DBInstance.Modifying.md). 

# Oracle Statspack
<a name="Appendix.Oracle.Options.Statspack"></a>

La opción Oracle Statspack instala y activa la característica de estadísticas de desempeño Oracle Statspack. Oracle Statspack es un conjunto de scripts SQL, PL/SQL y SQL\$1Plus que recopilan, almacenan y muestran datos de desempeño. Para obtener información acerca del uso de Oracle Statspack, consulte [Oracle Statspack](http://docs.oracle.com/cd/E13160_01/wli/docs10gr3/dbtuning/statsApdx.html) en la documentación de Oracle.

**nota**  
Oracle ha dejado de dar soporte para Oracle Statspack y lo ha reemplazado por una característica más avanzada: Automatic Workload Repository (AWR). AWR solo está disponible para los clientes de Oracle Enterprise Edition que han adquirido el paquete de diagnósticos. Puede utilizar Oracle Statspack con cualquier motor de base de datos de Oracle en Amazon RDS. No puede ejecutar Oracle Statspack en réplicas de lectura de Amazon RDS. 

## Configuración de Oracle Statspack
<a name="Appendix.Oracle.Options.Statspack.setting-up"></a>

Para ejecutar scripts Statspack, debe agregar la opción Statspack.

**Para configurar Oracle Statspack**

1. En un cliente SQL, inicie sesión en Oracle DB con una cuenta administrativa.

1. Realice una de las siguientes acciones, dependiendo de si Statspack está instalado:
   + Si Statspack está instalado y la cuenta `PERFSTAT` está asociada con Statspack, vaya al Paso 4.
   + Si Statspack no está instalado y la cuenta `PERFSTAT` existe, elimínela de la siguiente manera:

     ```
     DROP USER PERFSTAT CASCADE;
     ```

     De lo contrario, al intentar agregar la opción Statspack se genera un error y `RDS-Event-0058`.

1. Agregue la opción Statspack a un grupo de opciones. Consulte [Agregar una opción a un grupo de opciones](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption).

   Amazon RDS instala de forma automática los scripts de Statspack en la instancia de base de datos y luego configura la cuenta `PERFSTAT`.

1. Restablezca la contraseña usando la siguiente instrucción SQL, reemplazando *pwd* por su nueva contraseña:

   ```
   ALTER USER PERFSTAT IDENTIFIED BY pwd ACCOUNT UNLOCK;
   ```

   Puede iniciar sesión con la cuenta de usuario `PERFSTAT` y ejecutar los scripts de Statspack.

1. Otorgue el privilegio `CREATE JOB` a la cuenta `PERFSTAT` mediante la siguiente instrucción:

   ```
   GRANT CREATE JOB TO PERFSTAT;
   ```

1. Asegúrese de que los eventos de espera inactiva de la tabla `PERFSTAT.STATS$IDLE_EVENT` se rellenan.

   Debido al error de Oracle 28523746, es posible que los eventos de espera inactiva en `PERFSTAT.STATS$IDLE_EVENT` no se rellenen. Para asegurarse de que todos los eventos inactivos están disponibles, ejecute la siguiente instrucción:

   ```
   INSERT INTO PERFSTAT.STATS$IDLE_EVENT (EVENT)
   SELECT NAME FROM V$EVENT_NAME WHERE WAIT_CLASS='Idle'
   MINUS
   SELECT EVENT FROM PERFSTAT.STATS$IDLE_EVENT;
   COMMIT;
   ```

## Generación de informes de Statspack
<a name="Appendix.Oracle.Options.Statspack.generating-reports"></a>

Un informe Statspack compara dos instantáneas.

**Para generar informes de Statspack**

1. En un cliente SQL, inicie sesión en Oracle DB con la cuenta de `PERFSTAT`.

1. Cree una instantánea utilizando cualquiera de las siguientes técnicas:
   + Cree manualmente una instantánea de Statspack.
   + Cree un trabajo que tome una instantánea de Statspack después de un intervalo de tiempo determinado. Por ejemplo, el trabajo siguiente crea una instantánea de Statspack cada hora:

     ```
     VARIABLE jn NUMBER;
     exec dbms_job.submit(:jn, 'statspack.snap;',SYSDATE,'TRUNC(SYSDATE+1/24,''HH24'')');
     COMMIT;
     ```

1. Vea las instantáneas mediante la siguiente consulta:

   ```
   SELECT SNAP_ID, SNAP_TIME FROM STATS$SNAPSHOT ORDER BY 1;
   ```

1. Ejecute el procedimiento de Amazon RDS `rdsadmin.rds_run_spreport`, reemplazando *begin\$1snap* y *end\$1snap* por los ID de instantánea:

   ```
   exec rdsadmin.rds_run_spreport(begin_snap,end_snap);
   ```

   Por ejemplo, el siguiente comando crea un informe basado en el intervalo entre las instantáneas 1 y 2 de Statspack:

   ```
   exec rdsadmin.rds_run_spreport(1,2);
   ```

   El nombre de archivo del informe de Statspack incluye el número de las dos instantáneas. Por ejemplo, un archivo de informe creado con las instantáneas 1 y 2 de Statspack se llamaría `ORCL_spreport_1_2.lst`.

1. Monitorice la salida en busca de errores.

   Oracle Statspack realiza comprobaciones antes de ejecutar el informe. Por lo tanto, también puede ver mensajes de error en la salida del comando. Por ejemplo, puede intentar generar un informe basado en un rango no válido, donde el valor de instantánea de Statspack inicial es mayor que el valor final. En este caso, la salida muestra el mensaje de error, pero el motor de base de datos no genera un archivo de error.

   ```
   exec rdsadmin.rds_run_spreport(2,1);
   *
   ERROR at line 1:
   ORA-20000: Invalid snapshot IDs. Find valid ones in perfstat.stats$snapshot.
   ```

   Si utiliza un número no válido de instantánea de Statspack, la salida muestra un error. Por ejemplo, si intenta generar un informe para las instantáneas 1 y 50, pero la instantánea 50 no existe, el resultado muestra un error.

   ```
   exec rdsadmin.rds_run_spreport(1,50);
   *
   ERROR at line 1:
   ORA-20000: Could not find both snapshot IDs
   ```

1. (Opcional) 

   Para recuperar el informe, llame a los procedimientos del archivo de seguimiento, como se explica en [Uso de los archivos de seguimiento de Oracle](USER_LogAccess.Concepts.Oracle.md#USER_LogAccess.Concepts.Oracle.WorkingWithTracefiles). 

   También puede descargar el informe de Statspack desde la consola de RDS. Vaya a la sección **Registro** de los detalles de la instancia de base de datos y elija **Descargar**: El siguiente ejemplo muestra `trace/ORCL_spreport_1_2.lst`  
![\[Muestra una lista de los archivos de registro de Oracle en la consola de RDS. El siguiente archivo de seguimiento está marcado con un círculo: trace/ORCL_spreport_1_2.lst.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/statspack1.png)

   Si hay un error al generar un informe, el motor de base de datos utiliza las mismas convenciones de nomenclatura que para un informe, pero con una extensión `.err`. Por ejemplo, si se produce un error al crear un informe con las instantáneas 1 y 7 de Statspack, el archivo de informe se denominaría `ORCL_spreport_1_7.err`. Puede descargar el informe de errores mediante las mismas técnicas que para un informe de instantáneas estándar.

## Eliminación de instantáneas de Statspack
<a name="Appendix.Oracle.Options.Statspack.removing-files"></a>

Para eliminar una variedad de instantáneas de Oracle Statspack, utilice el siguiente comando:

```
exec statspack.purge(begin snap, end snap); 
```

# Zona horaria Oracle
<a name="Appendix.Oracle.Options.Timezone"></a>

Puede usar la opción de zona horaria para cambiar la zona horaria del sistema empleada por la instancia de base de datos Oracle. Por ejemplo, puede cambiar la zona horaria de una instancia de base de datos para que sea compatible con un entorno on-premises o con una aplicación heredada. Esta opción cambia la zona horaria al nivel del host. El cambio de la zona horaria afecta a todas las columnas y valores de fecha, como `SYSDATE` y `SYSTIMESTAMP`.

La opción de zona horaria es distinta del comando `rdsadmin_util.alter_db_time_zone`. El comando `alter_db_time_zone` solo cambia la zona horaria para determinados tipos de datos. La opción de zona horaria afecta a todas las columnas y valores de fecha. Para obtener más información acerca de `alter_db_time_zone`, consulte [Configuración de la zona horaria de la base de datos](Appendix.Oracle.CommonDBATasks.TimeZoneSupport.md). Para obtener información acerca de las consideraciones de actualización, consulte [Consideraciones sobre la zona horaria](USER_UpgradeDBInstance.Oracle.OGPG.md#USER_UpgradeDBInstance.Oracle.OGPG.DST).

## Restricciones para configurar la zona horaria
<a name="Appendix.Oracle.Options.Timezone.Restrictions"></a>

La opción de zona horaria es permanente y persistente. Por lo tanto, no puede hacer lo siguiente:
+ Elimine la opción de un grupo de opciones después de agregar la opción de zona horaria.
+ eliminar el grupo de opciones de una instancia de base de datos después de agregarlo
+ cambiar el ajuste de zona horaria en la opción por una zona horaria distinta

## Recomendaciones para configurar la zona horaria
<a name="Appendix.Oracle.Options.Timezone.PreReqs"></a>

Antes de añadir la opción de zona horaria a una base de datos de producción, le recomendamos que haga lo siguiente:
+ Cree una instantánea de su instancia de base de datos. Si configura por accidente la zona horaria de forma incorrecta, debe devolver la instancia de base de datos a su configuración de zona horaria anterior. Para obtener más información, consulte [Creación de una instantánea de base de datos para una instancia de base de datos single-AZ para Amazon RDS](USER_CreateSnapshot.md).
+ Añada la opción de zona horaria a una instancia de base de datos de prueba. Al añadir la opción de zona horaria, puede haber problemas en las tablas que utilizan la fecha del sistema para sumar fechas u horas. Le recomendamos que analice sus datos y aplicaciones en la instancia de prueba. De esta forma, puede evaluar el impacto que puede tener cambiar la zona horaria en la instancia de producción.

Si su instancia de base de datos usa el grupo de opciones predeterminado, siga estos pasos:

1. Cree una instantánea de su instancia de base de datos.

1. Añada la opción de zona horaria a una instancia de base de datos.

Si su instancia de base de datos usa un grupo de opciones no predeterminado, siga estos pasos:

1. Cree una instantánea de su instancia de base de datos.

1. Cree un nuevo grupo de opciones.

1. Añada la opción de zona horaria junto con todas las demás opciones que estén asociadas actualmente al grupo de opciones existente.

   Esto evita que se desinstalen las opciones existentes y, al mismo tiempo, se habilita la opción de zona horaria.

1. Añada el grupo de opciones a la instancia de base de datos.

## Configuración de la opción de zona horaria
<a name="Appendix.Oracle.Options.Timezone.Options"></a>

Amazon RDS admite los siguientes valores para las opciones de zona horaria. 


****  

| Ajuste de la opción | Valores válidos | Descripción | 
| --- | --- | --- | 
| `TIME_ZONE` |  Una de las zonas horarias disponibles. Puede consultar la lista completa e [Zonas horarias disponibles](#Appendix.Oracle.Options.Timezone.Zones).   |  Nueva zona horaria para la instancia de base de datos.   | 

## Adición de la opción de zona horaria
<a name="Appendix.Oracle.Options.Timezone.Add"></a>

Siga los pasos indicados a continuación para agregar la opción de zona horaria a su instancia de base de datos:

1. (Recomendado) Cree una instantánea de su instancia de base de datos.

1. Realice una de las siguientes tareas siguientes:
   + Cree un nuevo grupo de opciones desde cero. Para obtener más información, consulte [Creación de un grupo de opciones](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create).
   + Copie un grupo de opciones existente con la AWS CLI o la API. Para obtener más información, consulte [Copia de un grupo de opciones](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Copy).
   + Reutilice un grupo de opciones existente que no sea predeterminado. Se recomienda utilizar un grupo de opciones que no esté asociado actualmente a ninguna instancia de base de datos o instantánea.

1. Agregue la nueva opción al grupo de opciones del paso anterior.

1. Si el grupo de opciones que está actualmente asociado a la instancia de base de datos tiene opciones habilitadas, agregue estas opciones al nuevo grupo de opciones. Esta estrategia evita que se desinstalen las opciones existentes y, al mismo tiempo, se habilita la nueva opción.

1. Añada el nuevo grupo de opciones a la instancia de base de datos.

Cuando se añade la opción de zona horaria, se produce una breve interrupción mientras la instancia de base de datos se reinicia automáticamente. 

### Consola
<a name="Appendix.Oracle.Options.Timezone.Console"></a>

**Adición de la opción de zona horaria a un grupo de opciones y asociarla a una instancia de base de datos**

1. En la consola de RDS, elija **Grupos de opciones**.

1. Elija el nombre del grupo de opciones al que desea agregar la opción.

1. Elija **Agregar opción**.

1. En **Nombre de la opción**, elija **Zona horaria** y, a continuación, configure los ajustes de la opción. 

1. Asocie el grupo de opciones a una instancia de base de datos nueva o ya existente: 
   + Si se trata de una instancia de base de datos nueva, aplique el grupo de opciones al lanzar la instancia. Para obtener más información, consulte [Creación de una instancia de base de datos de Amazon RDS](USER_CreateDBInstance.md). 
   + Para una instancia de base de datos existente, el grupo de opciones se aplica modificando la instancia y asociando el grupo de opciones nuevo. Cuando se agrega la nueva opción a una instancia de base de datos existente, se produce una breve interrupción mientras la instancia de base de datos se reinicia automáticamente. Para obtener más información, consulte [Modificación de una instancia de base de datos de Amazon RDS](Overview.DBInstance.Modifying.md). 

### AWS CLI
<a name="Appendix.Oracle.Options.Timezone.CLI"></a>

En el ejemplo siguiente, se usa el comando [add-option-to-option-group](https://docs.aws.amazon.com/cli/latest/reference/rds/add-option-to-option-group.html) de la AWS CLI para añadir la opción `Timezone` y la opción de configuración `TIME_ZONE` a un grupo de opciones denominado `myoptiongroup`. La zona horaria establecida es `Africa/Cairo`. 

Para Linux, macOS o Unix:

```
aws rds add-option-to-option-group \
    --option-group-name "myoptiongroup" \
    --options "OptionName=Timezone,OptionSettings=[{Name=TIME_ZONE,Value=Africa/Cairo}]" \
    --apply-immediately
```

Para Windows:

```
aws rds add-option-to-option-group ^
    --option-group-name "myoptiongroup" ^
    --options "OptionName=Timezone,OptionSettings=[{Name=TIME_ZONE,Value=Africa/Cairo}]" ^
    --apply-immediately
```

## Modificación de la configuración de la zona horaria
<a name="Appendix.Oracle.Options.Timezone.ModifySettings"></a>

La opción de zona horaria es permanente y persistente. Una vez agregada a un grupo de opciones, no es posible retirarla de nuevo. Una vez agregado el grupo de opciones a una instancia de base de datos, no es posible retirarlo de nuevo. El valor de zona horaria de la opción no puede cambiarse por una zona horaria distinta. Si establece una zona horaria incorrecta, restaure una instantánea de la instancia de base de datos obtenida antes de añadir la opción de zona horaria. 

## Eliminación de la opción de zona horaria
<a name="Appendix.Oracle.Options.Timezone.Remove"></a>

La opción de zona horaria es permanente y persistente. Una vez agregada a un grupo de opciones, no es posible retirarla de nuevo. Una vez agregado el grupo de opciones a una instancia de base de datos, no es posible retirarlo de nuevo. Para eliminar la opción de zona horaria, restaure una instantánea de la instancia de base de datos obtenida antes de añadir la opción de zona horaria. 

## Zonas horarias disponibles
<a name="Appendix.Oracle.Options.Timezone.Zones"></a>

Los siguientes son los valores que pueden elegirse para la opción de zona horaria. 


****  

| Zona | Time zone (Zona horarioa) | 
| --- | --- | 
|  África  |  África/Casablanca, África/El Cairo, África/Harare, África/Lagos, África/Luanda, África/Monrovia, África/Nairobi, África/Trípoli, África/Windhoek   | 
|  América  |  América/Araguaína, América/Argentina/Buenos\$1Aires, América/Asunción, América/Bogotá, América/Caracas, América/Chicago, América/Chihuahua, América/Cuiaba, América/Denver, América/Detroit, América/Fortaleza, América/Godthab, América/Guatemala, América/Halifax, América/Lima, América/Los\$1Ángeles, América/Manaos, América/Matamoros, América/Ciudad\$1de\$1México, América/Monterrey, América/Montevideo, América/Nueva\$1York, América/Phoenix, América/Santiago, América/São\$1Paulo, América/Tijuana, América/Toronto   | 
|  Asia  |  Asia/Amán, Asia/Asjabad, Asia/Bagdad, Asia/Bakú, Asia/Bangkok, Asia/Beirut, Asia/Calcuta, Asia/Daca, Asia/Damasco, Asia/Ereván, Asia/Hong\$1Kong, Asia/Irkutsk, Asia/Jerusalén, Asia/Kabul, Asia/Karachi, Asia/Katmandú, Asia/Kolkata, Asia/Krasnoyarsk, Asia/Magadán, Asia/Manila, Asia/Mascate, Asia/Novosibirsk, Asia/Rangún, Asia/Riad, Asia/Seúl, Asia/Shanghái, Asia/Singapur, Asia/Taipéi, Asia/Teherán, Asia/Tokio, Asia/Ulán\$1Bator, Asia/Vladivostok, Asia/Yakarta, Asia/Yakutsk   | 
|  Atlántico  |  Atlántico/Azores, Atlántico/Cabo\$1Verde   | 
|  Australia  |  Australia/Adelaida, Australia/Brisbane, Australia/Darwin, Australia/Eucla, Australia/Hobart, Australia/Lord\$1Howe, Australia/Perth, Australia/Sídney   | 
|  Brasil  |  Brasil/DeNoronha, Brasil/Este   | 
|  Canadá  |  Canadá/Terranova, Canadá/Saskatchewan   | 
|  etc  |  Etc/GMT-3  | 
|  Europa  |  Europa/Ámsterdam, Europa/Atenas, Europa/Berlín, Europa/Dublín, Europa/Helsinki, Europa/Kaliningrado, Europa/Londres, Europa/Madrid, Europa/Moscú, Europa/París, Europa/Praga, Europa/Roma, Europa/Sarajevo   | 
|  Pacífico  |  Pacífico/Apia, Pacífico/Auckland, Pacífico/Chatham, Pacífico/Fiyi, Pacífico/Guam, Pacífico/Honolulu, Pacífico/Kiritimati, Pacífico/Marquesas, Pacífico/Samoa, Pacífico/Tongatapu, Pacífico/Wake   | 
|  EE. UU.  |  EE. UU./Alaska, EE. UU./Central, EE. UU./Indiana-Este, EE. UU./Este, EE. UU./Pacífico   | 
|  UTC  |  UTC  | 

# Actualización automática del archivo de zona horaria de Oracle
<a name="Appendix.Oracle.Options.Timezone-file-autoupgrade"></a>

Con la opción `TIMEZONE_FILE_AUTOUPGRADE`, puede actualizar el archivo de zona horaria actual a la versión más reciente de su instancia de base de datos de RDS for Oracle.

**Topics**
+ [Información general sobre los archivos de zona horaria de Oracle](Appendix.Oracle.Options.Timezone-file-autoupgrade.tz-overview.md)
+ [Estrategias para actualizar el archivo de zona horaria](Appendix.Oracle.Options.Timezone-file-autoupgrade.strategies.md)
+ [Tiempo de inactividad durante la actualización del archivo de zona horaria](Appendix.Oracle.Options.Timezone-file-autoupgrade.considerations.md)
+ [Preparación para actualizar el archivo de zona horaria](Appendix.Oracle.Options.Timezone-file-autoupgrade.preparing.md)
+ [Adición de la opción de actualización automática del archivo de zona horaria](Appendix.Oracle.Options.Timezone-file-autoupgrade.adding.md)
+ [Verificación de los datos después de la actualización del archivo de zona horaria](Appendix.Oracle.Options.Timezone-file-autoupgrade.checking.md)

# Información general sobre los archivos de zona horaria de Oracle
<a name="Appendix.Oracle.Options.Timezone-file-autoupgrade.tz-overview"></a>

Un *archivo de zona horaria* de Oracle Database almacena la siguiente información:
+ Desfase con respecto a la hora universal coordinada (UTC)
+ Horas de transición para el horario de verano (DST)
+ Abreviaturas de hora estándar y DST

Oracle Database proporciona varias versiones de los archivos de zonas horarias. Cuando se crea una base de datos Oracle en un entorno local, se elige la versión del archivo de zona horaria. Para obtener más información, consulte [Choosing a Time Zone File](https://docs.oracle.com/en/database/oracle/oracle-database/19/nlspg/datetime-data-types-and-time-zone-support.html#GUID-805AB986-DE12-4FEA-AF56-5AABCD2132DF) (Selección de un archivo de zona horaria) en la *Oracle Database Globalization Support Guide* (Guía de soporte de globalización de Oracle Database).

Si las reglas cambian en lo referente al DST, Oracle publica nuevos archivos de zona horaria. Oracle publica estos nuevos archivos de zona horaria con independencia del calendario de actualizaciones de versiones (RU) y revisiones de actualizaciones de versiones (RUR). Los archivos de zona horaria residen en el host de la base de datos en el directorio `$ORACLE_HOME/oracore/zoneinfo/`. Los nombres de archivo de zona horaria utilizan el formato DSTv *version*, como en DSTv35.

## Cómo afecta el archivo de zona horaria a la transferencia de datos
<a name="Appendix.Oracle.Options.Timezone-file-autoupgrade.data-transfer"></a>

En Oracle Database, el tipo de datos `TIMESTAMP WITH TIME ZONE` almacena datos de marca temporal y zona horaria. Datos con el tipo de datos `TIMESTAMP WITH TIME ZONE` utiliza las reglas de la versión del archivo de zona horaria asociada. Por lo tanto, cuando se actualiza el archivo de zona horaria, eso afecta a los datos `TIMESTAMP WITH TIME ZONE` existentes.

Se pueden producir problemas al transferir datos entre bases de datos que utilizan diferentes versiones del archivo de zona horaria. Por ejemplo, si importa datos de una base de datos de origen con una versión de archivo de zona horaria más alta que la base de datos de destino, la base de datos devuelve el error `ORA-39405`. Anteriormente, tenía que evitar el error utilizando cualquiera de las siguientes técnicas:
+ Crear una instancia de RDS para Oracle DB con el archivo de zona horaria deseado, exportar datos de la base de datos de origen y, a continuación, importarlos a la nueva base de datos.
+ Usar AWS DMS o replicación lógica para migrar los datos.

## Actualizaciones automáticas mediante la opción TIMEZONE\$1FILE\$1AUTOUPGRADE
<a name="Appendix.Oracle.Options.Timezone-file-autoupgrade.option-overview"></a>

Cuando el grupo de opciones adjunto a su instancia de base de datos de RDS para Oracle incluye la opción `TIMEZONE_FILE_AUTOUPGRADE`, RDS actualiza los archivos de zona horaria de manera automática. Al garantizar que las bases de datos de Oracle utilicen la misma versión del archivo de zona horaria, evita tener que recurrir a técnicas manuales que consumen mucho tiempo para mover datos entre diferentes entornos. Tanto las bases de datos de contenedores (CDB) como las que no lo son admiten la opción `TIMEZONE_FILE_AUTOUPGRADE`.

Al añadir la opción `TIMEZONE_FILE_AUTOUPGRADE` al grupo de opciones, puede elegir si desea añadir la opción inmediatamente o durante el período de mantenimiento. Una vez que la instancia de base de datos aplique la nueva opción, RDS comprueba si puede instalar un archivo de *versión* DSTv más reciente. La *versión* de DStv de destino depende de lo siguiente:
+ La versión secundaria del motor que su instancia de base de datos está ejecutando actualmente
+ La versión secundaria del motor a la que desea actualizar la instancia de base de datos

Por ejemplo, la versión actual del archivo de zona horaria podría ser DSTv33. Cuando RDS aplique la actualización al grupo de opciones, podría determinar que DSTv34 ya está disponible en su sistema de archivos de la instancia de base de datos. RDS actualizará entonces su archivo de zona horaria a DSTv34 de manera automática.

Para buscar las versiones de DST disponibles en las actualizaciones de las versiones de RDS compatibles, consulte las revisiones en [Release notes for Amazon Relational Database Service (Amazon RDS) for Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/OracleReleaseNotes/Welcome.html) (Notas de versión de Amazon Relational Database Service [Amazon RDS] para Oracle). Por ejemplo, la [versión 19.0.0.0.ru-2022-10.rur-2022-10.r1](https://docs.aws.amazon.com/AmazonRDS/latest/OracleReleaseNotes/oracle-version-19-0.html#oracle-version-RU-RUR.19.0.0.0.ru-2022-10.rur-2022-10.r1) incluye la revisión 34533061: RDBMS - DSTV39 UPDATE - TZDATA2022C.

# Estrategias para actualizar el archivo de zona horaria
<a name="Appendix.Oracle.Options.Timezone-file-autoupgrade.strategies"></a>

La actualización del motor de base de datos y la adición de la opción `TIMEZONE_FILE_AUTOUPGRADE` a un grupo de opciones son operaciones independientes. Al agregar la opción `TIMEZONE_FILE_AUTOUPGRADE`, se inicia la actualización del archivo de zona horaria si hay uno más actual disponible. Ejecute los siguientes comandos (solo se muestran las opciones relevantes) inmediatamente o en el siguiente período de mantenimiento:
+ Actualice el motor de base de datos únicamente mediante el siguiente comando de la CLI de RDS:

  ```
  modify-db-instance --engine-version name ...
  ```
+ Para ello, agregue la opción `TIMEZONE_FILE_AUTOUPGRADE` únicamente mediante el siguiente comando de la CLI: 

  ```
  add-option-to-option-group --option-group-name name --options OptionName=TIMEZONE_FILE_AUTOUPGRADE ...
  ```
+ Actualice el motor de base de datos y agregue un nuevo grupo de opciones a la instancia mediante el siguiente comando de la CLI:

  ```
  modify-db-instance --engine-version name --option-group-name name ...
  ```

La estrategia de actualización depende de si desea actualizar la base de datos y el archivo de zona horaria de manera conjunta o realizar solo una de estas operaciones. Tenga en cuenta que si actualiza el grupo de opciones y, a continuación, el motor de base de datos en operaciones de API independientes, es posible que se esté realizando una actualización del archivo de zona horaria cuando actualice el motor de base de datos.

Los ejemplos de esta sección suponen lo siguiente:
+ Aún no ha agregado `TIMEZONE_FILE_AUTOUPGRADE` al grupo de opciones asociado actualmente a su instancia de base de datos.
+ Su instancia de base de datos utiliza la versión de base de datos 19.0.0.0.ru-2019-07.rur-2019-07.r1 y el archivo de zona horaria DSTv33.
+ Su sistema de archivos de instancia de base de datos incluye el archivo DSTv34. 
+ La actualización de la versión 19.0.0.0.ru-2022-10.rur-2022-10.r1 incluye DSTv35. 

Para actualizar el archivo de zona horaria, utilice las siguientes estrategias.

**Topics**
+ [Actualice el archivo de zona horaria sin actualizar el motor](#Appendix.Oracle.Options.Timezone-file-autoupgrade.strategies.no-upgrade)
+ [Actualice el archivo de zona horaria y la versión del motor de base de datos](#Appendix.Oracle.Options.Timezone-file-autoupgrade.strategies.upgrade)
+ [Actualice la versión del motor de base de datos sin actualizar el archivo de zona horaria.](#Appendix.Oracle.Options.Timezone-file-autoupgrade.strategies.upgrade-only)

## Actualice el archivo de zona horaria sin actualizar el motor
<a name="Appendix.Oracle.Options.Timezone-file-autoupgrade.strategies.no-upgrade"></a>

En este escenario, la base de datos utiliza DSTv33, pero el sistema de archivos de instancias de base de datos dispone de DSTv34. Desea actualizar el archivo de zona horaria que utiliza la instancia de base de datos de DSTv33 a DSTv34, pero no desea actualizar el motor a una versión nueva secundaria, que incluye DSTv35. 

En un comando `add-option-to-option-group`, agregue `TIMEZONE_FILE_AUTOUPGRADE` al grupo de opciones que utiliza su instancia de base de datos. Especifique si desea añadir la opción inmediatamente o aplazarlo hasta el período de mantenimiento. Tras aplicar la opción `TIMEZONE_FILE_AUTOUPGRADE`, RDS hace lo siguiente:

1. Comprueba si hay una nueva versión de DST.

1. Determina que el DSTv34 está disponible en el sistema de archivos.

1. Actualiza el archivo de zona horaria inmediatamente.

## Actualice el archivo de zona horaria y la versión del motor de base de datos
<a name="Appendix.Oracle.Options.Timezone-file-autoupgrade.strategies.upgrade"></a>

En este escenario, la base de datos utiliza DSTv33, pero el sistema de archivos de instancias de base de datos dispone de DSTv34. Desea actualizar su motor de base de datos a la versión secundaria 19.0.0.0.ru-2022-10.rur-2022-10.r1, que incluye DSTv35, y actualizar su archivo de zona horaria a DSTv35 durante la actualización del motor. Por lo tanto, su objetivo es omitir DSTv34 y actualizar sus archivos de zona horaria directamente a DSTv35. 

Para actualizar el motor y el archivo de zona horaria al mismo tiempo, ejecute `modify-db-instance` con las opciones `--option-group-name` y `--engine-version`. Puede ejecutar el comando inmediatamente o aplazarlo hasta el período de mantenimiento. `In --option-group-name`, especifique un grupo de opciones que incluya la opción `TIMEZONE_FILE_AUTOUPGRADE`. Por ejemplo:

```
aws rds modify-db-instance 
    --db-instance-identifier my-instance \
    --engine-version new-version \
    ----option-group-name og-with-timezone-file-autoupgrade \    
    --apply-immediately
```

RDS comienza a actualizar su motor a 19.0.0.0.ru-2022-10.rur-2022-10.r1. Una vez aplicada la opción `TIMEZONE_FILE_AUTOUPGRADE`, RDS comprueba si hay una nueva versión de DST, ve que DSTv35 está disponible en 19.0.0.0.ru-2022-10.rur-2022-10.r1 e inicia inmediatamente la actualización a DSTv35.

Para actualizar el motor inmediatamente y, a continuación, actualizar el archivo de zona horaria, lleve a cabo las siguientes operaciones en esta secuencia:

1. Actualice el motor de base de datos únicamente mediante el siguiente comando de la CLI:

   ```
   aws rds modify-db-instance \
       --db-instance-identifier my-instance \
       --engine-version new-version \
       --apply-immediately
   ```

1. Agregue la opción `TIMEZONE_FILE_AUTOUPGRADE` al grupo de opciones adjunto a su instancia mediante el siguiente comando de la CLI: 

   ```
   aws rds add-option-to-option-group \
       --option-group-name og-in-use-by-your-instance \
       --options OptionName=TIMEZONE_FILE_AUTOUPGRADE \
       --apply-immediately
   ```

## Actualice la versión del motor de base de datos sin actualizar el archivo de zona horaria.
<a name="Appendix.Oracle.Options.Timezone-file-autoupgrade.strategies.upgrade-only"></a>

En este escenario, la base de datos utiliza DSTv33, pero el sistema de archivos de instancias de base de datos dispone de DSTv34. Desea actualizar su motor de base de datos a la versión 19.0.0.0.ru-2022-10.rur-2022-10.r1, que incluye DSTv35, pero retener el archivo de zona horaria DSTv33. Puede elegir esta estrategia por las razones siguientes:
+ Sus datos no utilizan el tipo de datos `TIMESTAMP WITH TIME ZONE`.
+ Sus datos utilizan el tipo de datos `TIMESTAMP WITH TIME ZONE`, pero los datos no se ven afectados por los cambios de zona horaria.
+ Desea posponer la actualización del archivo de zona horaria porque no puede tolerar el tiempo de inactividad adicional.

La estrategia depende de cuál de las siguientes posibilidades se dé:
+ Su instancia de base de datos no está asociada a un grupo de opciones que incluya `TIMEZONE_FILE_AUTOUPGRADE`. En su comando `modify-db-instance`, no especifique un nuevo grupo de opciones para que RDS no actualice el archivo de zona horaria.
+ Su instancia de base de datos está asociada actualmente a un grupo de opciones que incluye `TIMEZONE_FILE_AUTOUPGRADE`. Dentro de un único comando `modify-db-instance`, asocie su instancia de base de datos a un grupo de opciones que no incluya `TIMEZONE_FILE_AUTOUPGRADE` y, a continuación, actualice su motor de base de datos a 19.0.0.0.ru-2022-10.rur-2022-10.r1.

# Tiempo de inactividad durante la actualización del archivo de zona horaria
<a name="Appendix.Oracle.Options.Timezone-file-autoupgrade.considerations"></a>

Cuando RDS actualiza el archivo de zona horaria, los datos que utiliza `TIMESTAMP WITH TIME ZONE` podrían cambiar. En este caso, su principal preocupación es el tiempo de inactividad.

**aviso**  
Si añade la opción `TIMEZONE_FILE_AUTOUPGRADE`, la actualización del motor podría haber prolongado el tiempo de inactividad. La actualización de datos de zona horaria para una base de datos grande puede tardar horas o incluso días.

La duración de la actualización del archivo de zona horaria depende de factores como los siguientes:
+ La cantidad de datos de `TIMESTAMP WITH TIME ZONE` de la base de datos
+ La configuración de la instancia de la base de datos
+ La clase de instancia de base de datos
+ La configuración de almacenamiento
+ La configuración de las bases de datos
+ La configuración de parámetros de base de datos

Se puede producir un tiempo de inactividad adicional cuando hace lo siguiente:
+ Añada la opción al grupo de opciones si la instancia de base de datos utiliza un archivo de zona horaria obsoleto
+ Actualice el motor de base de datos Oracle cuando la nueva versión del motor contiene una nueva versión del archivo de zona horaria

**nota**  
Durante la actualización del archivo de zona horaria, RDS para Oracle llama a `PURGE DBA_RECYCLEBIN`.

# Preparación para actualizar el archivo de zona horaria
<a name="Appendix.Oracle.Options.Timezone-file-autoupgrade.preparing"></a>

Una actualización de archivos de zona horaria tiene dos fases separadas: preparación y actualización. Si bien no es necesario, recomendamos encarecidamente que realice el paso de preparación. En este paso, descubrirá qué datos se verán afectados al ejecutar el procedimiento PL/SQL `DBMS_DST.FIND_AFFECTED_TABLES`. Para obtener más información sobre la ventana de preparación, consulte [Actualización del archivo de zona horaria y la marca de hora con datos de zona horaria](https://docs.oracle.com/en/database/oracle/oracle-database/19/nlspg/datetime-data-types-and-time-zone-support.html#GUID-B0ACDB2E-4B49-4EB4-B4CC-9260DAE1567A) en la Documentación de la base de datos de Oracle.

**Para preparar la actualización del archivo de zona horaria**

1. Conecte el cliente SQL a la base de datos de Oracle utilizando el cliente SQL.

1. Determine la versión actual del archivo de zona horaria utilizada.

   ```
   SELECT * FROM V$TIMEZONE_FILE;
   ```

1. Determine la última versión del archivo de zona horaria disponible en su instancia de base de datos.

   ```
   SELECT DBMS_DST.GET_LATEST_TIMEZONE_VERSION FROM DUAL;
   ```

1. Determine el tamaño total de las tablas que tienen columnas de tipo `TIMESTAMP WITH LOCAL TIME ZONE` o `TIMESTAMP WITH TIME ZONE`.

   ```
   SELECT SUM(BYTES)/1024/1024/1024 "Total_size_w_TSTZ_columns_GB"
   FROM   DBA_SEGMENTS
   WHERE  SEGMENT_TYPE LIKE 'TABLE%'
   AND    (OWNER, SEGMENT_NAME) IN
            (SELECT OWNER, TABLE_NAME
             FROM   DBA_TAB_COLUMNS
             WHERE  DATA_TYPE LIKE 'TIMESTAMP%TIME ZONE');
   ```

1. Determine los nombres y tamaños de los segmentos que tienen columnas de tipo `TIMESTAMP WITH LOCAL TIME ZONE` o `TIMESTAMP WITH TIME ZONE`.

   ```
   SELECT OWNER, SEGMENT_NAME, SUM(BYTES)/1024/1024/1024 "SEGMENT_SIZE_W_TSTZ_COLUMNS_GB"
   FROM   DBA_SEGMENTS
   WHERE  SEGMENT_TYPE LIKE 'TABLE%'
   AND    (OWNER, SEGMENT_NAME) IN
            (SELECT OWNER, TABLE_NAME
             FROM   DBA_TAB_COLUMNS
             WHERE  DATA_TYPE LIKE 'TIMESTAMP%TIME ZONE')
   GROUP BY OWNER, SEGMENT_NAME;
   ```

1. Ejecute el paso de preparación. 
   + El procedimiento `DBMS_DST.CREATE_AFFECTED_TABLE` crea una tabla para almacenar cualquier dato afectado. Se pasa el nombre de esta tabla al procedimiento `DBMS_DST.FIND_AFFECTED_TABLES`. Para obtener más información, consulte el [Procedimiento CREATE\$1AFFECTED\$1TABLE](https://docs.oracle.com/en/database/oracle/oracle-database/19/arpls/DBMS_DST.html#GUID-C53BAABA-914A-404C-9CD5-823257BE0B00) en la Documentación de la base de datos de Oracle.
   + Este procedimiento `CREATE_ERROR_TABLE` crea una tabla para registrar errores. Para obtener más información, consulte el [Procedimiento CREATE\$1ERROR\$1TABLE](https://docs.oracle.com/en/database/oracle/oracle-database/19/arpls/DBMS_DST.html#GUID-6A7EA024-B02D-4486-B1D6-EF6ABF5DE507) en la Documentación de la base de datos de Oracle.

   En el siguiente ejemplo se crean los datos afectados y las tablas de errores, y se buscan todas las tablas afectadas.

   ```
   EXEC DBMS_DST.CREATE_ERROR_TABLE('my_error_table')
   EXEC DBMS_DST.CREATE_AFFECTED_TABLE('my_affected_table')
   
   EXEC DBMS_DST.BEGIN_PREPARE(new_version);
   EXEC DBMS_DST.FIND_AFFECTED_TABLES('my_affected_table', TRUE, 'my_error_table');
   EXEC DBMS_DST.END_PREPARE;
   
   SELECT * FROM my_affected_table;
   SELECT * FROM my_error_table;
   ```

1. Consulte las tablas afectadas y de error.

   ```
   SELECT * FROM my_affected_table;
   SELECT * FROM my_error_table;
   ```

# Adición de la opción de actualización automática del archivo de zona horaria
<a name="Appendix.Oracle.Options.Timezone-file-autoupgrade.adding"></a>

Al añadir la opción a un grupo de opciones, este se encuentra en uno de los siguientes estados:
+ Actualmente hay un grupo de opciones asociado al menos a una instancia de base de datos. Al añadir la opción, todas las instancias de base de datos que utilizan este grupo de opciones se reinician automáticamente. Esto provoca una breve interrupción.
+ No hay ningún grupo de opciones asociado a ninguna instancia de base de datos. Tiene previsto añadir la opción y, a continuación, asociar el grupo de opciones existente a las instancias de base de datos existentes o a una instancia de base de datos nueva.
+ Crea un nuevo grupo de opciones y luego añade la opción. Tiene previsto asociar el nuevo grupo de opciones a instancias de base de datos ya existentes o a una nueva.

## Consola
<a name="Appendix.Oracle.Options.Timezone-file-autoupgrade.console"></a>

**Para agregar la opción de actualización del archivo de zona horaria a una instancia de base de datos**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon RDS en [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. En el panel de navegación, elija **Option groups** (Grupos de opciones).

1. Determine el grupo de opciones que desea utilizar. Puede crear un grupo de opciones o utilizar uno existente. Si desea utilizar un grupo de opciones existente, vaya al siguiente paso. De lo contrario, cree un grupo de opciones de base de datos personalizado con las siguientes opciones: 

   1. En **Engine** (Motor), elija la edición de Oracle Database que corresponda a la instancia de base de datos. 

   1. En **Major engine version (Versión principal del motor)**, elija la versión de su instancia de base de datos. 

   Para obtener más información, consulte [Creación de un grupo de opciones](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create). 

1. Elija el grupo de opciones que desea modificar y, a continuación, elija **Add option (Agregar opción)**.

1. En la ventana **Add option** (Añadir opción), haga lo siguiente: 

   1. Elija **TIMEZONE\$1FILE\$1AUTOUPGRADE**.

   1. Para habilitar la opción en todas las instancias de base de datos asociadas en cuanto la agregue, en **Apply Immediately**, elija **Yes**. Si elige **No** (valor predeterminado), la opción se habilita para cada instancia de base de datos asociada durante su siguiente período de mantenimiento.

1. Cuando los ajustes sean los deseados, elija **Add Option (Agregar opción)**.

## AWS CLI
<a name="Appendix.Oracle.Options.Timezone-file-autoupgrade.CLI"></a>

En el ejemplo siguiente se usa el comando de la AWS CLI [add-option-to-option-group](https://docs.aws.amazon.com/cli/latest/reference/rds/add-option-to-option-group.html) para añadir la opción `TIMEZONE_FILE_AUTOUPGRADE` a un grupo de opciones llamado `myoptiongroup`.

Para Linux, macOS o Unix:

```
aws rds add-option-to-option-group \
    --option-group-name "myoptiongroup" \
    --options "OptionName=TIMEZONE_FILE_AUTOUPGRADE" \
    --apply-immediately
```

Para Windows:

```
aws rds add-option-to-option-group ^
    --option-group-name "myoptiongroup" ^
    --options "OptionName=TIMEZONE_FILE_AUTOUPGRADE" ^
    --apply-immediately
```

# Verificación de los datos después de la actualización del archivo de zona horaria
<a name="Appendix.Oracle.Options.Timezone-file-autoupgrade.checking"></a>

Le recomendamos que verifique los datos después de actualizar el archivo de zona horaria. Durante el paso de preparación, RDS para Oracle crea automáticamente las siguientes tablas:
+ `rdsadmin.rds_dst_affected_tables`: enumera las tablas que contienen datos afectados por la actualización
+ `rdsadmin.rds_dst_error_table`: muestra los errores generados durante la actualización

Estas tablas son independientes de las tablas que se crean en la ventana de preparación. Para ver los resultados de la actualización, consulte las tablas de la siguiente manera.

```
SELECT * FROM rdsadmin.rds_dst_affected_tables;
SELECT * FROM rdsadmin.rds_dst_error_table;
```

Para obtener más información sobre el esquema de los datos afectados y las tablas de errores, consulte el [Procedimiento FIND\$1AFFECTED\$1TABLES](https://docs.oracle.com/en/database/oracle/oracle-database/19/arpls/DBMS_DST.html#GUID-1F977505-671C-4D5B-8570-86956F136199) en la documentación de Oracle.

# Cifrado de datos transparente de Oracle
<a name="Appendix.Oracle.Options.AdvSecurity"></a>

Amazon RDS es compatible con el cifrado de datos transparente (TDE) de Oracle, una característica de la opción Oracle Advanced Security disponible en Oracle Enterprise Edition. Esta característica cifra automáticamente los datos antes de que se escriban en el sistema de almacenamiento y los descifra automáticamente cuando se leen. Esta opción solo se admite el modelo “traiga su propia licencia” (BYOL).

El TDE es útil en situaciones en las que es necesario cifrar información confidencial por si un tercero obtiene los archivos de datos y las copias de seguridad. El TDE también es útil cuando se necesita cumplir con las normas relacionadas con la seguridad. 

Esta guía no tiene el propósito de ofrecerle una descripción detallada del TDE en Oracle Database. Para obtener información, consulte los siguientes recursos de Oracle Database:
+ [Introducción al cifrado de datos transparente](https://docs.oracle.com/en/database/oracle/oracle-database/19/asoag/introduction-to-transparent-data-encryption.html#GUID-62AA9447-FDCD-4A4C-B563-32DE04D55952) en la documentación de Oracle Database
+ [Oracle advanced security](https://www.oracle.com/security/database-security/) en la documentación de Oracle Database
+ [Oracle advanced security Transparent Data Encryption best practices](https://www.oracle.com/br/a/tech/docs/technical-resources/twp-transparent-data-encryption-bestpractices.pdf), que es un documento técnico de Oracle

Para obtener más información acerca del uso del TDE con RDS para Oracle, consulte los siguientes blogs:
+ [Opciones de cifrado de bases de datos Oracle en Amazon RDS](https://aws.amazon.com/blogs/apn/oracle-database-encryption-options-on-amazon-rds/)
+ [Migre una instancia de base de datos de Amazon RDS para Oracle multicuenta con TDE y reduzca el tiempo de inactividad mediante AWS DMS](https://aws.amazon.com/blogs/database/migrate-a-cross-account-tde-enabled-amazon-rds-for-oracle-db-instance-with-reduced-downtime-using-aws-dms/)

## Modos de cifrado de TDE
<a name="Appendix.Oracle.Options.AdvSecurity.Modes"></a>

El cifrado de datos transparente de Oracle admite dos modos de cifrado: el cifrado de espacios de tabla de TDE y el cifrado de columnas de TDE. El cifrado de espacios de tabla de TDE se utiliza para cifrar tablas de aplicaciones completas. El cifrado de columnas de TDE se utiliza para cifrar elementos de datos individuales que contienen información confidencial. También es posible aplicar una solución de cifrado híbrida que utilice tanto el cifrado de espacios de tabla como el cifrado de columnas de TDE. 

**nota**  
Amazon RDS administra la clave maestra de TDE y de Oracle Wallet para la instancia de base de datos. No es necesario configurar la clave de cifrado con el comando `ALTER SYSTEM set encryption key`. 

Una vez activada la opción `TDE`, puede comprobar el estado del wallet de Oracle mediante el siguiente comando: 

```
SELECT * FROM v$encryption_wallet;
```

Para crear un espacio de tabla cifrado, utilice el siguiente comando:

```
CREATE TABLESPACE encrypt_ts ENCRYPTION DEFAULT STORAGE (ENCRYPT);
```

Para especificar el algoritmo de cifrado, utilice el comando siguiente:

```
CREATE TABLESPACE encrypt_ts ENCRYPTION USING 'AES256' DEFAULT STORAGE (ENCRYPT);
```

Las instrucciones anteriores para cifrar un espacio de tablas son las mismas que se utilizarían en una base de datos de Oracle en las instalaciones.

## Restricciones para la opción TDE
<a name="Appendix.Oracle.Options.Timezone.Restrictions"></a>

La opción TDE es persistente y permanente. Después de asociar su instancia de base de datos con un grupo de opciones que tiene la opción TDE habilitada, no puede realizar las siguientes acciones:
+ Deshabilitar la opción `TDE` en el grupo de opciones actualmente asociado.
+ Asociar la instancia de base de datos a un grupo de opciones diferente que no incluya la opción `TDE`.
+ Compartir una instantánea de base de datos que utilice la opción `TDE`. Para obtener más información sobre el uso compartido de instantáneas de base de datos, consulte [Uso compartido de una instantánea manual de base de datos de Amazon RDS](USER_ShareSnapshot.md).

Para obtener más información sobre las opciones persistentes y permanentes, consulte [Opciones permanentes y persistentes](USER_WorkingWithOptionGroups.md#Overview.OptionGroups.Permanent).

## Determinación de si su instancia de base de datos utiliza TDE
<a name="Appendix.Oracle.Options.AdvSecurity.Querying"></a>

Puede que quiera determinar si la instancia de base de datos está asociada a un grupo de opciones que tenga la opción `TDE` habilitada. Para ver el grupo de opciones al que está asociada una instancia de base de datos, utilice la consola de RDS, el comando [describe-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html) de la AWS CLI o la operación [DescribeDBInstances](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBInstances.html) de la API.

## Adición de la opción TDE
<a name="Appendix.Oracle.Options.AdvSecurity.Add"></a>

Para agregar la opción `TDE` a su instancia de base de datos, siga los pasos que se describen a continuación:

1. (Recomendado) Cree una instantánea de su instancia de base de datos.

1. Realice una de las siguientes tareas siguientes:
   + Cree un nuevo grupo de opciones desde cero. Para obtener más información, consulte [Creación de un grupo de opciones](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create).
   + Copie un grupo de opciones existente con la AWS CLI o la API. Para obtener más información, consulte [Copia de un grupo de opciones](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Copy).
   + Reutilice un grupo de opciones existente que no sea predeterminado. Se recomienda utilizar un grupo de opciones que no esté asociado actualmente a ninguna instancia de base de datos o instantánea.

1. Agregue la nueva opción al grupo de opciones del paso anterior.

1. Si el grupo de opciones que está actualmente asociado a la instancia de base de datos tiene opciones habilitadas, agregue estas opciones al nuevo grupo de opciones. Esta estrategia evita que se desinstalen las opciones existentes y, al mismo tiempo, se habilita la nueva opción.

1. Añada el nuevo grupo de opciones a la instancia de base de datos.

### Consola
<a name="Appendix.Oracle.Options.TDE.Console"></a>

**Añadido de la opción TDE a un grupo de opciones y asociarla a su instancia de base de datos**

1. En la consola de RDS, elija **Grupos de opciones**.

1. Elija el nombre del grupo de opciones al que desea agregar la opción.

1. Elija **Agregar opción**.

1. En **Nombre de la opción**, elija **TDE** y, a continuación, configure los ajustes de la opción. 

1. Elija **Agregar opción**.
**importante**  
Si agrega la opción **TDE** a un grupo de opciones existente que ya se ha adjuntado a una o varias instancias de base de datos, se producirá una breve interrupción mientras se reinician todas las instancias de base de datos. 

   Para obtener más información acerca de la adición de opciones, consulte [Agregar una opción a un grupo de opciones](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption).

1. Asocie el grupo de opciones a una instancia de base de datos nueva o ya existente: 
   + Si se trata de una instancia de base de datos nueva, aplique el grupo de opciones al lanzar la instancia. Para obtener más información, consulte [Creación de una instancia de base de datos de Amazon RDS](USER_CreateDBInstance.md). 
   + Para una instancia de base de datos existente, el grupo de opciones se aplica modificando la instancia y asociando el grupo de opciones nuevo. La instancia de base de datos no se reinicia como parte de esta operación. Para obtener más información, consulte [Modificación de una instancia de base de datos de Amazon RDS](Overview.DBInstance.Modifying.md). 

### AWS CLI
<a name="Appendix.Oracle.Options.TDE.CLI"></a>

En el ejemplo siguiente, se usa el comando de la AWS CLI [add-option-to-option-group](https://docs.aws.amazon.com/cli/latest/reference/rds/add-option-to-option-group.html) para añadir la opción `TDE` a un grupo de opciones llamado `myoptiongroup`. Para obtener más información, consulte [Introducción: Flink 1.13.2 ](https://docs.aws.amazon.com/managed-flink/latest/java/earlier.html#getting-started-1-13).

Para Linux, macOS o Unix:

```
aws rds add-option-to-option-group \
    --option-group-name "myoptiongroup" \
    --options "OptionName=TDE" \
    --apply-immediately
```

Para Windows:

```
aws rds add-option-to-option-group ^
    --option-group-name "myoptiongroup" ^
    --options "OptionName=TDE" ^
    --apply-immediately
```

## Copia de los datos a una instancia de base de datos que no incluye la opción TDE
<a name="Appendix.Oracle.Options.AdvSecurity.Remove"></a>

No puede eliminar la opción de TDE de una instancia de base de datos ni asociarla a un grupo de opciones que no incluya la opción de TDE. Para migrar los datos a una instancia que no incluya la opción de TDE, haga lo siguiente: 

1.  Descifre los datos en la instancia de base de datos. 

1.  Copie los datos en una nueva instancia de base de datos que no esté asociada a un grupo de opciones con la opción `TDE` habilitada. 

1.  Elimine la instancia de base de datos original.

Puede usar para la instancia nueva el mismo nombre que la instancia de base de datos anterior.

## Consideraciones al usar TDE con Oracle Data Pump
<a name="Appendix.Oracle.Options.AdvSecurity.Pump"></a>

Puede utilizar Oracle Data Pump para importar o exportar archivos de volcado cifrados. Amazon RDS admite el modo de cifrado de contraseñas `(ENCRYPTION_MODE=PASSWORD)` para Oracle Data Pump. Amazon RDS no admite el modo de cifrado transparente `(ENCRYPTION_MODE=TRANSPARENT)` para Oracle Data Pump. Para obtener más información, consulte [Importación mediante Oracle Data Pump](Oracle.Procedural.Importing.DataPump.md). 

# Oracle UTL\$1MAIL
<a name="Oracle.Options.UTLMAIL"></a>

Amazon RDS es compatible con Oracle UTL\$1MAIL mediante el uso de la opción UTL\$1MAIL y de servidores SMTP. Puede enviar un email directamente desde su base de datos mediante el paquete UTL\$1MAIL. Amazon RDS admite UTL\$1MAIL para las siguientes versiones de Oracle: 
+ Oracle Database 21c (21.0.0.0), todas las versiones
+ Oracle Database 19c (19.0.0.0), todas las versiones

A continuación se indican algunas limitaciones que afectan al uso de UTL\$1MAIL: 
+ UTL\$1MAIL no es compatible con Transport Layer Security (TLS) y, por lo tanto, los mensajes de correo electrónico se cifran. 

  Para conectarse de forma segura a recursos SSL/TLS remotos creando y cargando wallets de Oracle personalizados, siga las instrucciones que se proporcionan en [Configuración del acceso UTL\$1HTTP mediante certificados y un wallet de Oracle.](Oracle.Concepts.ONA.md).

  Los certificados específicos que se requieren para el wallet varían en función del servicio. Para los servicios de AWS, estos se puedan encontrar normalmente en el [repositorio de Amazon Trust Services](https://www.amazontrust.com/repository/).
+ UTL\$1MAIL no admite la autenticación con servidores SMTP. 
+ Solo se puede enviar un único archivo adjunto en un correo electrónico. 
+ No se pueden enviar archivos adjuntos de más de 32 K. 
+ Solo se pueden utilizar las codificaciones de caracteres ASCII y Extended Binary Coded Decimal Interchange Code (EBCDIC). 
+ El puerto SMTP (25) se limita en base a las políticas del propietario de la interfaz de red elástica. 

Cuando se activa UTL\$1MAIL, solo se le concede el privilegio execute al usuario maestro de la instancia de base de datos. Si es necesario, el usuario maestro puede conceder el privilegio execute a otros usuarios para que puedan utilizar UTL\$1MAIL. 

**importante**  
Recomendamos que active la característica de auditoría integrada de Oracle para realizar un seguimiento del uso de los procedimientos de UTL\$1MAIL. 

## Requisitos previos para Oracle UTL\$1MAIL
<a name="Oracle.Options.UTLMAIL.PreReqs"></a>

A continuación se indican los requisitos previos para utilizar Oracle UTL\$1MAIL:
+ Uno o varios servidores SMTP, con sus correspondientes direcciones IP o nombres de servidores de nombres de dominio (DNS) públicos o privados. Para obtener más información acerca de los nombres de DNS privados resueltos a través de un servidor DNS personalizado, consulte [Configuración de un servidor DNS personalizado](Appendix.Oracle.CommonDBATasks.System.md#Appendix.Oracle.CommonDBATasks.CustomDNS). 

## Adición de la opción Oracle UTL\$1MAIL
<a name="Oracle.Options.UTLMAIL.Add"></a>

El proceso general para añadir la opción Oracle UTL\$1MAIL a una instancia de base de datos es el siguiente: 

1. Cree un grupo de opciones nuevo o copie o modifique un grupo de opciones existente.

1. Añada la opción al grupo de opciones.

1. Asocie el grupo de opciones a la instancia de base de datos.

Después de añadir la opción UTL\$1MAIL, esta se activará en cuanto se active el grupo de opciones. 

**Para añadir la opción UTL\$1MAIL a una instancia de base de datos**

1. Determine el grupo de opciones que desea utilizar. Puede crear un grupo de opciones o utilizar uno existente. Si desea utilizar un grupo de opciones existente, vaya al siguiente paso. De lo contrario, cree un grupo de opciones de base de datos personalizado con las siguientes opciones: 

   1. En **Engine**, elija la edición de Oracle que desea utilizar. 

   1. En **Major engine version (Versión principal del motor)**, elija la versión de su instancia de base de datos. 

   Para obtener más información, consulte [Creación de un grupo de opciones](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create). 

1. Añada la opción **UTL\$1MAIL** al grupo de opciones. Para obtener más información acerca de la adición de opciones, consulte [Agregar una opción a un grupo de opciones](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption). 

1. Aplique el grupo de opciones a una instancia de base de datos nueva o existente: 
   + Si se trata de una instancia de base de datos nueva, el grupo de opciones se aplica cuando se lanza la instancia. Para obtener más información, consulte [Creación de una instancia de base de datos de Amazon RDS](USER_CreateDBInstance.md). 
   + Para una instancia de base de datos existente, el grupo de opciones se aplica modificando la instancia y asociando el grupo de opciones nuevo. Para obtener más información, consulte [Modificación de una instancia de base de datos de Amazon RDS](Overview.DBInstance.Modifying.md). 

## Uso de Oracle UTL\$1MAIL
<a name="Oracle.Options.UTLMAIL.Using"></a>

Después de activar la opción UTL\$1MAIL, debe configurar el servidor SMTP para poder empezar a utilizarlo. 

Puede configurar el servidor SMTP estableciendo el parámetro SMTP\$1OUT\$1SERVER como una dirección IP o como un nombre de DNS público válido. Para el parámetro SMTP\$1OUT\$1SERVER, puede especificar una lista separada por comas con las direcciones de varios servidores. Si el primer servidor no está disponible, UTL\$1MAIL intenta usar el servidor siguiente, y así sucesivamente. 

Puede configurar el servidor SMTP predeterminado SMTP\$1OUT\$1SERVER para una instancia de base de datos mediante un [grupo de parámetros de base de datos](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html). Puede establecer el parámetro SMTP\$1OUT\$1SERVER para una sesión ejecutando el siguiente código en la base de datos mediante la instancia de base de datos. 

```
1. ALTER SESSION SET smtp_out_server = mailserver.domain.com:25;
```

Después de activar la opción UTL\$1MAIL y configurar SMTP\$1OUT\$1SERVER, puede enviar un correo electrónico utilizando el procedimiento `SEND`. Para obtener más información, consulte [UTL\$1MAIL](http://docs.oracle.com/cd/B19306_01/appdev.102/b14258/u_mail.htm#BABFJJBD) en la documentación de Oracle. 

## Eliminación de la opción Oracle UTL\$1MAIL
<a name="Oracle.Options.UTLMAIL.Remove"></a>

Puede eliminar Oracle UTL\$1MAIL de una instancia de base de datos. 

Para eliminar UTL\$1MAIL de una instancia de base de datos, realice una de las siguientes operaciones: 
+ Para eliminar UTL\$1MAIL de varias instancias de bases de datos, elimine la opción UTL\$1MAIL del grupo de opciones al que pertenecen. Este cambio afecta a todas las instancias de base de datos que utilizan el grupo de opciones. Para obtener más información, consulte [Quitar una opción de un grupo de opciones](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.RemoveOption). 
+ Para eliminar UTL\$1MAIL de una única instancia de base de datos, modifique la instancia y especifique un grupo de opciones distinto que no incluya la opción UTL\$1MAIL. Puede especificar el grupo de opciones predeterminado (vacío) u otro grupo de opciones personalizado. Para obtener más información, consulte [Modificación de una instancia de base de datos de Amazon RDS](Overview.DBInstance.Modifying.md). 

## Solución de problemas
<a name="Oracle.Options.UTLMAIL.Troubleshooting"></a>

A continuación se indican los problemas que se puede encontrar al utilizar UTL\$1MAIL con Amazon RDS. 
+ Limitación controlada. El puerto SMTP (25) se limita en base a las políticas del propietario de la interfaz de red elástica. Si puede enviar correo electrónico correctamente utilizando UTL\$1MAIL y se muestra el error `ORA-29278: SMTP transient error: 421 Service not available`, es posible que esté aplicándose una limitación controlada. Si experimenta una limitación controlada en la entrega de correo electrónico, recomendamos implementar un algoritmo de retardo. Para obtener más información sobre los algoritmos de retroceso, consulte [Reintentos de error y retroceso exponencial en AWS](https://docs.aws.amazon.com/general/latest/gr/api-retries.html) y la publicación sobre [cómo manejar un error "throttling Maximum sending rate exceeded" (velocidad de envío de limitación controlada excedida)](https://aws.amazon.com/blogs/ses/how-to-handle-a-throttling-maximum-sending-rate-exceeded-error/). 

  Puede solicitar que se elimine dicho límite. Para obtener más información, consulte [¿Cómo quito el límite en el puerto 25 de mi instancia EC2?](https://aws.amazon.com/premiumsupport/knowledge-center/ec2-port-25-throttle/)

# Oracle XML DB
<a name="Appendix.Oracle.Options.XMLDB"></a>

Oracle XML DB añade soporte XML nativo a una instancia de base de datos. Con XML DB, puede almacenar y recuperar XML estructurado o no estructurado y datos relacionales. El protocolo de servidores de XML DB no se admite en RDS para Oracle.

XML DB está preinstalado en Oracle Database 12c y versiones posteriores. Por lo tanto, no es necesario utilizar un grupo de opciones para instalar explícitamente XML DB como característica adicional. 

Para obtener información sobre cómo configurar y utilizar XML DB, consulte [Oracle XML DB Developer's Guide](https://docs.oracle.com/en/database/oracle/oracle-database/19/adxdb/) en la documentación de Oracle Database.

# Actualización del motor de base de datos de RDS para Oracle
<a name="USER_UpgradeDBInstance.Oracle"></a>

Cuando Amazon RDS admite una nueva versión de Oracle Database, es posible actualizar sus instancias de bases de datos a la nueva versión. Para obtener información acerca de las versiones de Oracle disponibles en Amazon RDS, consulte las [https://docs.aws.amazon.com/AmazonRDS/latest/OracleReleaseNotes/Welcome.html](https://docs.aws.amazon.com/AmazonRDS/latest/OracleReleaseNotes/Welcome.html).

**importante**  
Ya no se admite RDS para Oracle Databases 11g, 12c y 18c. Si mantiene instantáneas de Oracle Database 11g, 12c o 18c, puede actualizarlas a una versión posterior. Para obtener más información, consulte [Actualización de una instantánea de base de datos de Oracle](USER_UpgradeDBSnapshot.Oracle.md).

**Topics**
+ [Información general sobre las actualizaciones del motor de RDS para Oracle](USER_UpgradeDBInstance.Oracle.Overview.md)
+ [Actualizaciones principales de versiones de Oracle](USER_UpgradeDBInstance.Oracle.Major.md)
+ [Actualizaciones de la versión secundaria de Oracle](USER_UpgradeDBInstance.Oracle.Minor.md)
+ [Consideraciones de las actualizaciones de base de datos de Oracle](USER_UpgradeDBInstance.Oracle.OGPG.md)
+ [Prueba de una actualización de base de datos de Oracle](USER_UpgradeDBInstance.Oracle.UpgradeTesting.md)
+ [Actualización de la versión de una instancia de base de datos de RDS para Oracle](USER_UpgradeDBInstance.Oracle.Upgrading.md)
+ [Actualización de una instantánea de base de datos de Oracle](USER_UpgradeDBSnapshot.Oracle.md)

# Información general sobre las actualizaciones del motor de RDS para Oracle
<a name="USER_UpgradeDBInstance.Oracle.Overview"></a>

Antes de actualizar una instancia de base de datos de RDS para Oracle, es necesario familiarizarse con los siguientes conceptos clave.

**Topics**
+ [Actualizaciones de versiones principales y secundarias](#USER_UpgradeDBInstance.Oracle.Overview.versions)
+ [Fechas de soporte y actualizaciones obligatorias para RDS para Oracle](#Aurora.VersionPolicy.MajorVersionLifetime)
+ [Administración de versiones del motor de base de datos Oracle](#Oracle.Concepts.Patching)
+ [Instantáneas automáticas durante las actualizaciones de motor](#USER_UpgradeDBInstance.Oracle.Overview.snapshots)
+ [Actualizaciones de Oracle en una implementación Multi-AZ](#USER_UpgradeDBInstance.Oracle.Overview.multi-az)
+ [Actualizaciones de réplicas de lectura de Oracle](#USER_UpgradeDBInstance.Oracle.Overview.read-replicas)

## Actualizaciones de versiones principales y secundarias
<a name="USER_UpgradeDBInstance.Oracle.Overview.versions"></a>

Las versiones principales son las principales versiones de Oracle Database que se publican cada 1 o 2 años. Oracle Database 19c y Oracle 21c son versiones principales. 

Cada trimestre, RDS para Oracle lanza nuevas versiones de motor secundarias para cada motor principal compatible. Una versión de motor de actualización de revisión (RU) incorpora correcciones de errores de Oracle al incluir las revisiones de RU para el trimestre especificado. Por ejemplo, 21.0.0.0.ru-2024-10.rur-2024-10.r1 es una versión secundaria de Oracle Database 21c que incorpora la RU de octubre de 2024.

Una versión de motor de agrupación de revisiones espaciales (SPB) contiene revisiones de RU y revisiones específicas de Oracle Spatial. Por ejemplo, 19.0.0.0.ru-2025-01.spb-1.r1 es una versión de motor secundaria que contiene las revisiones RU en la versión de motor 19.0.0.0.ru-2025-01.rur-2025-01.r1 más revisiones espaciales. Normalmente, RDS para Oracle lanza las SPB dos o tres semanas después de la RU correspondiente. Para obtener una explicación de las diferencias entre las RU y las SPB, consulte [Actualizaciones de versión (RU) y agrupaciones de revisiones espaciales (SPB)](USER_UpgradeDBInstance.Oracle.Minor.md#RUs-and-SPBs). Para obtener información sobre las RU y las SPB admitidas, consulte [Notas de la versión de Amazon Relational Database Service (Amazon RDS) para Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/OracleReleaseNotes).

RDS para Oracle admite las siguientes actualizaciones de una instancia de base de datos.


| Tipo de actualización | Compatibilidad de las aplicaciones | Métodos de actualización | Ruta de actualización de ejemplo | 
| --- | --- | --- | --- | 
| Versión principal | Una actualización de versión principal puede introducir cambios que no sean compatibles con las aplicaciones existentes. | Solo manual | De Oracle Database 19c a Oracle Database 21c | 
| Versión secundaria | Una actualización de una versión secundaria solo incluye cambios compatibles con las versiones anteriores de las aplicaciones. | Automática o manual | De 21.0.0.0.ru-2023-07.rur-2022-07.r1 a 21.0.0.0.ru-2023-10.rur-2022-10.r1 | 

**importante**  
Cuando actualiza el motor de base de datos, se produce una interrupción. La duración de la interrupción depende de la versión del motor y del tamaño de la instancia de la base de datos.   
Pruebe exhaustivamente cualquier actualización para comprobar que las aplicaciones funcionen correctamente antes de aplicar la actualización a sus bases de datos de producción. Para obtener más información, consulte [Prueba de una actualización de base de datos de Oracle](USER_UpgradeDBInstance.Oracle.UpgradeTesting.md).

## Fechas de soporte y actualizaciones obligatorias para RDS para Oracle
<a name="Aurora.VersionPolicy.MajorVersionLifetime"></a>

Las versiones de base de datos de RDS para Oracle tienen fechas de soporte previstas. Cuando una versión principal o secundaria de un motor de base de datos de RDS para Oracle se acerca a su fecha de fin de soporte, RDS inicia las actualizaciones obligatorias, también conocidas como *actualizaciones forzadas*. RDS publica la siguiente información:
+ Una recomendación para que comience a actualizar manualmente las instancias de las versiones obsoletas a las versiones compatibles
+ Una fecha a partir de la cual ya no se pueden crear instancias en las versiones no compatibles
+ Una fecha en la que RDS comienza a actualizar automáticamente las instancias a las versiones compatibles durante los periodos de mantenimiento
+ Una fecha en la que RDS comienza a actualizar automáticamente las instancias a las versiones compatibles fuera de los periodos de mantenimiento

**importante**  
Las actualizaciones forzadas pueden tener consecuencias inesperadas para las pilas de CloudFormation. Si confía en RDS para actualizar automáticamente las instancias de base de datos, es posible que encuentre problemas con CloudFormation.

Esta sección contiene los siguientes temas:

**Topics**
+ [Fechas de soporte de las versiones principales de RDS para Oracle](#oracle-major-support-dates)
+ [Fechas de soporte para versiones secundarias de RDS para Oracle](#oracle-minor-support-dates)

### Fechas de soporte de las versiones principales de RDS para Oracle
<a name="oracle-major-support-dates"></a>

Las versiones principales de RDS para Oracle seguirán estando disponibles al menos hasta la fecha de final de soporte para la versión correspondiente de Oracle Database. Puede utilizar las siguientes fechas para planificar sus ciclos de prueba y actualización. Estas fechas representan la fecha más temprana en la que podría requerirse una actualización a una versión más reciente. Si Amazon amplía la compatibilidad con una versión de RDS para Oracle durante más tiempo de lo previsto originalmente, esta tabla se actualizará para reflejar la fecha posterior. 

**nota**  
Puede ver las versiones principales de las bases de datos de Oracle ejecutando el comando [describe-db-major-engine-versions](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-major-engine-versions.html) de la AWS CLI o mediante la operación de la API de RDS [DescribeDBMajorEngineVersions](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBMajorEngineVersions.html).


| Versión principal de Oracle Database  | Fecha prevista para la actualización a una versión más reciente | 
| --- | --- | 
|  Oracle Database 19c  |  31 de diciembre de 2029 con soporte de BYOL Premier (no se aplican cargos para el soporte extendido) 31 de diciembre de 2032 con soporte extendido de BYOL (coste adicional) o un acuerdo de licencia ilimitada 31 de diciembre de 2029 con licencia incluida (LI)  | 
|  Oracle Database 21c  | 31 de julio de 2027 (no disponible para soporte extendido) | 

RDS le notifica al menos 12 meses antes de que necesite actualizar a una versión principal más reciente. La notificación describe el proceso de actualización, incluido el calendario de hitos importantes, el efecto en las instancias de base de datos y las acciones recomendadas. Le recomendamos que pruebe minuciosamente las aplicaciones con las nuevas versiones de RDS for Oracle antes de actualizar la base de datos a una versión principal.

Después de este período de notificación previa, podría aplicarse una actualización automática de la versión principal posterior a cualquier instancia base de datos de RDS para Oracle que aún esté ejecutando la versión anterior. Si es así, la actualización se inicia durante las ventanas de mantenimiento programadas. 

Para obtener más información, consulte [Release Schedule of Current Database Releases](https://support.oracle.com/knowledge/Oracle%20Database%20Products/742060_1.html) en My Oracle Support.

### Fechas de soporte para versiones secundarias de RDS para Oracle
<a name="oracle-minor-support-dates"></a>

En algunos casos, finalizamos el soporte para las versiones secundarias de las versiones principales en RDS para Oracle. RDS le notifica al menos 6 meses antes de que necesite actualizar a una versión secundaria más reciente. La notificación describe el proceso de actualización, incluido el calendario de hitos importantes, el efecto en las instancias de base de datos que ejecutan la versión secundaria obsoleta y las acciones recomendadas. Le recomendamos que pruebe minuciosamente las aplicaciones con las nuevas versiones de RDS para Oracle antes de actualizar la base de datos a una versión secundaria.

Para obtener más información sobre versiones secundarias obsoletas y sin compatibilidad, consulte [Notas de la versión de Amazon Relational Database Service (Amazon RDS) para Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/OracleReleaseNotes/Welcome.html).

## Administración de versiones del motor de base de datos Oracle
<a name="Oracle.Concepts.Patching"></a>

Con la administración de versiones del motor de base de datos, se controla cuándo y cómo se parchea y actualiza el motor de base de datos. De esta manera, se obtiene la flexibilidad necesaria para mantener la compatibilidad con las versiones de parche del motor de base de datos. También puede probar nuevas versiones de parches de RDS para Oracle para asegurarse de que funcionan eficazmente con la aplicación antes de implementarlas en producción. Además, se actualizan las versiones según los términos y plazos de cada usuario.

**nota**  
Amazon RDS agrega periódicamente los parches oficiales de Oracle Database utilizando una versión específica del motor de base de datos para Amazon RDS. Para ver una lista de los parches de Oracle incluidos en una versión específica del motor de base de datos de Amazon RDS Oracle, vaya a [https://docs.aws.amazon.com/AmazonRDS/latest/OracleReleaseNotes/Welcome.html](https://docs.aws.amazon.com/AmazonRDS/latest/OracleReleaseNotes/Welcome.html).

## Instantáneas automáticas durante las actualizaciones de motor
<a name="USER_UpgradeDBInstance.Oracle.Overview.snapshots"></a>

Cuando se actualiza una instancia de base de datos de Oracle, las instantáneas ofrecen protección contra problemas de actualización. Si el período de retención de copia de seguridad de la instancia de base de datos es mayor que 0, Amazon RDS toma las siguientes instantáneas de base de datos durante la actualización:

1. Una instantánea de la instancia de base de datos antes de que se haya llevado a cabo ningún cambio. Si la actualización falla, puede restaurar esta instantánea para crear una instancia de base de datos que ejecute la versión anterior.

1. Una instantánea de la instancia de base de datos una vez finalizada la actualización.

**nota**  
Para cambiar el periodo de retención de copia de seguridad, consulte [Modificación de una instancia de base de datos de Amazon RDS](Overview.DBInstance.Modifying.md). 

Después de una actualización, no se puede volver a la versión anterior del motor. Sin embargo, se puede crear una nueva instancia de base de datos de Oracle restaurando la instantánea previa a la actualización.

## Actualizaciones de Oracle en una implementación Multi-AZ
<a name="USER_UpgradeDBInstance.Oracle.Overview.multi-az"></a>

Si la instancia de base de datos está en una implementación Multi-AZ, Amazon RDS actualiza las réplicas principal y de reserva. Si no se requieren actualizaciones del sistema operativo, las actualizaciones principal y en espera se producen simultáneamente. Las instancias no estarán disponibles hasta que se complete la actualización.

Si se requieren actualizaciones del sistema operativo en una implementación Multi-AZ, Amazon RDS aplica las actualizaciones cuando solicite la actualización de la base de datos. Amazon RDS realiza los siguientes pasos:

1. Actualiza el sistema operativo en la instancia de base de datos de reserva actual.

1. Conmuta por error la instancia de base de datos principal a la instancia de base de datos de reserva.

1. Actualiza la versión de la base de datos en la nueva instancia principal de la base de datos, que antes era la instancia de reserva. La base de datos principal no está disponible durante la actualización.

1. Actualiza el sistema operativo en la nueva instancia de base de datos de reserva, que anteriormente era la instancia de base de datos principal.

1. Actualiza la versión de base de datos de la nueva instancia de base de datos de reserva.

1. Realiza una conmutación por error de la nueva instancia de base de datos principal a la instancia de base de datos principal original, y de la nueva instancia de base de datos de reserva a la instancia de base de datos de reserva original. Por lo tanto, Amazon RDS devuelve la configuración de réplica a su estado original.

## Actualizaciones de réplicas de lectura de Oracle
<a name="USER_UpgradeDBInstance.Oracle.Overview.read-replicas"></a>

La versión del motor de base de datos Oracle de la instancia de base de datos de origen y todas sus réplicas de lectura deben ser iguales. Amazon RDS realiza la actualización en las siguientes etapas:

1. Actualiza la instancia de base de datos de origen. Las réplicas de lectura están disponibles durante esta etapa.

1. Actualiza las réplicas de lectura en paralelo, independientemente del período de mantenimiento de las réplicas. La base de datos de origen está disponible durante esta etapa.

Para las actualizaciones de la versión principal de réplicas de lectura entre regiones, Amazon RDS realiza acciones adicionales:
+ Genera automáticamente un grupo de opciones para la versión de destino
+ Copia todas las opciones y configuraciones de opciones del grupo de opciones original al nuevo grupo de opciones
+ Asocia la réplica de lectura entre regiones actualizada con el nuevo grupo de opciones

# Actualizaciones principales de versiones de Oracle
<a name="USER_UpgradeDBInstance.Oracle.Major"></a>

Para realizar una actualización de versión principal, modifique la instancia de base de datos a mano. Las actualizaciones de la versión principal no se realizan automáticamente. 

**importante**  
Pruebe exhaustivamente cualquier actualización para comprobar que las aplicaciones funcionen correctamente antes de aplicar la actualización a sus bases de datos de producción. Para obtener más información, consulte [Prueba de una actualización de base de datos de Oracle](USER_UpgradeDBInstance.Oracle.UpgradeTesting.md).

**Topics**
+ [Versiones compatibles para actualizaciones principales](#USER_UpgradeDBInstance.Oracle.Major.supported-versions)
+ [Clases de instancias admitidas para actualizaciones principales](#USER_UpgradeDBInstance.Oracle.Major.instance-classes)
+ [Recopilación de estadísticas antes de las actualizaciones principales](#USER_UpgradeDBInstance.Oracle.Major.gathering-stats)
+ [Permiso para actualizaciones principales](#USER_UpgradeDBInstance.Oracle.Major.allowing-upgrades)

## Versiones compatibles para actualizaciones principales
<a name="USER_UpgradeDBInstance.Oracle.Major.supported-versions"></a>

Amazon RDS es compatible con las siguientes actualizaciones de versión principal.


****  

| Versión actual | Actualización compatible | 
| --- | --- | 
|  19.0.0.0 con arquitectura CDB  |  21.0.0.0  | 

La actualización de una versión principal de Oracle Database debe ser una actualización de versión (RU) publicada el mismo mes o posterior. No se puede actualizar a versiones inferiores de ninguna versión de Oracle Database.

## Clases de instancias admitidas para actualizaciones principales
<a name="USER_UpgradeDBInstance.Oracle.Major.instance-classes"></a>

Su instancia de base de datos Oracle actual podría estar ejecutándose en una clase de instancia de base de datos no compatible con la versión a la que está actualizando. En este caso, antes de actualizar, migre la instancia de base de datos a una clase de instancia de base de datos compatible. Para obtener más información sobre las clases de instancias de base de datos compatibles para cada versión y edición de Amazon RDS for Oracle, consulte [Clases de instancia de base de datos de ](Concepts.DBInstanceClass.md).

## Recopilación de estadísticas antes de las actualizaciones principales
<a name="USER_UpgradeDBInstance.Oracle.Major.gathering-stats"></a>

Antes de realizar una actualización de versión principal, Oracle recomienda que recopile estadísticas del optimizador en la instancia de base de datos que esté actualizando. Esta acción puede reducir el tiempo de inactividad de la instancia de base de datos durante la actualización.

Para recopilar estadísticas del optimizador, conéctese a la instancia de base de datos como usuario maestro y ejecute el procedimiento `DBMS_STATS.GATHER_DICTIONARY_STATS`, como se muestra en el siguiente ejemplo.

```
EXEC DBMS_STATS.GATHER_DICTIONARY_STATS;
```

Para obtener más información, consulte [ GATHER\$1DICTIONARY\$1STATS Procedure](https://docs.oracle.com/en/database/oracle/oracle-database/19/arpls/DBMS_STATS.html?source=%3Aso%3Atw%3Aor%3Aawr%3Aodv%3A%3A#GUID-867989C7-ADFC-4464-8981-437CEA7F331E) en la documentación de Oracle.

## Permiso para actualizaciones principales
<a name="USER_UpgradeDBInstance.Oracle.Major.allowing-upgrades"></a>

Una actualización principal de la versión del motor es posible que sea incompatible con la aplicación. La actualización es irreversible. Si especifica una versión principal para el parámetro EngineVersion que sea diferente de la versión principal actual, debe permitir actualizaciones de versiones principales.

Si actualiza una versión principal mediante el comando de la interfaz de línea de comandos (CLI) [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html), especifique `--allow-major-version-upgrade`. Esta configuración no es persistente, por lo que debe especificar `--allow-major-version-upgrade` cada vez que realice una actualización principal. Este parámetro no afecta a las actualizaciones de versiones secundarias del motor. Para obtener más información, consulte [Actualización de una versión del motor de una instancia de base de datos ](USER_UpgradeDBInstance.Upgrading.md).

Si actualiza una versión principal mediante la consola, no es necesario que elija una opción para permitir la actualización. En su lugar, la consola muestra una advertencia de que las actualizaciones principales son irreversibles.

# Actualizaciones de la versión secundaria de Oracle
<a name="USER_UpgradeDBInstance.Oracle.Minor"></a>

En RDS para Oracle, una actualización de versión secundaria es una actualización a una versión principal del motor de base de datos. En RDS, una versión secundaria del motor es una actualización de versión (RU) o una agrupación de revisiones espaciales (SPB). Por ejemplo, si la instancia de base de datos ejecuta la versión principal Oracle Database 19c y la versión secundaria 19.0.0.0.ru-2025-10.rur-2025-10.r1, puede actualizar el motor de base de datos a la versión secundaria 19.0.0.0.ru-2026-01.rur-2026-01.r1. RDS para Oracle no admite versiones secundarias de nivel inferior.

Puede actualizar su motor de base de datos a una versión secundaria de forma manual o automática. Para obtener información sobre cómo realizar la actualización de forma manual, consulte [Actualización manual de la versión del motor](USER_UpgradeDBInstance.Upgrading.md#USER_UpgradeDBInstance.Upgrading.Manual). Para obtener información sobre cómo configurar las actualizaciones automáticas, consulte [Actualización automática de la versión secundaria del motor](USER_UpgradeDBInstance.Upgrading.md#USER_UpgradeDBInstance.Upgrading.AutoMinorVersionUpgrades). Tanto en la actualización manual o automática, la actualización de la versión secundaria implica un tiempo de inactividad. Tenga en cuenta este tiempo de inactividad cuando planifique las actualizaciones.

Amazon RDS también admite la política de implementación de actualizaciones para administrar las actualizaciones automáticas de versiones secundarias en varios recursos de bases de datos y Cuentas de AWS. Para obtener más información, consulte [Uso de la política de implementación de actualizaciones de AWS Organizations para actualizaciones de versiones secundarias automáticas](RDS.Maintenance.AMVU.UpgradeRollout.md).

**importante**  
Pruebe exhaustivamente cualquier actualización para comprobar que las aplicaciones funcionen correctamente antes de aplicar la actualización a sus bases de datos de producción. Para obtener más información, consulte [Prueba de una actualización de base de datos de Oracle](USER_UpgradeDBInstance.Oracle.UpgradeTesting.md).

**Topics**
+ [Actualizaciones de versión (RU) y agrupaciones de revisiones espaciales (SPB)](#RUs-and-SPBs)
+ [Activación de las actualizaciones automáticas de versiones secundarias para Oracle](#oracle-minor-version-upgrade-tuning-on)
+ [Uso de la política de implementación de actualizaciones de AWS Organizations para actualizaciones de versiones secundarias automáticas](#oracle-minor-version-upgrade-rollout)
+ [Notificación de actualizaciones de versiones secundarias automáticas en RDS para Oracle](#oracle-minor-version-upgrade-advance)
+ [Cómo programa Amazon RDS las actualizaciones automáticas de versiones menores](#oracle-minor-version-upgrade-scheduled)
+ [Administración de una actualización de la versión secundaria automática en RDS para Oracle](#oracle-minor-version-upgrade-managing)

## Actualizaciones de versión (RU) y agrupaciones de revisiones espaciales (SPB)
<a name="RUs-and-SPBs"></a>

En RDS, la actualización de versión (RU) es una versión de motor secundaria trimestral que incluye correcciones de seguridad, correcciones de errores y nuevas características para Oracle Database. Una agrupación de revisiones espaciales (SPB) es una versión de motor de RU que incluye revisiones diseñadas para la opción Oracle Spatial. Por ejemplo, la SPB denominada 19.0.0.0.ru-2025-01.spb-1.r1 incluye todas las revisiones de la RU correspondiente 19.0.0.0.ru-2025-01.rur-2025-01.r1, además de las revisiones específicas de Spatial. Las SPB solo son compatibles con Oracle Database 19c. 

Cuando la instancia está configurada para actualizaciones automáticas de versiones secundarias, las RU y las SPB se encuentran en rutas de actualización separadas. Por lo general, una SPB se publica entre dos y tres semanas después de la RU correspondiente. En la siguiente tabla se muestra un ejemplo de versiones secundarias para Oracle Database 19c. 


| Ruta de actualización de RU estándar | Ruta de actualización de SPB | 
| --- | --- | 
| 19.0.0.0.ru-2025-01.rur-2025-01.r1 | 19.0.0.0.ru-2025-01.spb-1.r1 | 
| 19.0.0.0.ru-2025-04.rur-2025-04.r1 | 19.0.0.0.ru-2025-04.spb-1.r1 | 
| 19.0.0.0.ru-2025-07.rur-2025-07.r1 | 19.0.0.0.ru-2025-07.spb-1.r1 | 
| 19.0.0.0.ru-2025-10.rur-2025-10.r1 | 19.0.0.0.ru-2025-10.spb-1.r1 | 

Si la instancia de base de datos está configurada para actualizaciones automáticas, la instancia se encuentra en la ruta de actualización correspondiente a la versión actual. Por ejemplo, si la instancia de base de datos ejecuta la versión 19.0.0.0.ru-2025-01.rur-2025-01.r1, cuando se publique la versión 19.0.0.0.ru-2025-04.rur-2025-04.r1, la instancia se actualizará automáticamente a esta RU. Del mismo modo, si la instancia de base de datos ejecuta 19.0.0.0.ru-2025-01.spb-1.r1, cuando se publique 19.0.0.0.ru-2025-04.spb-1.r1, la instancia se actualizará automáticamente a esta SPB. Una instancia que ejecute 19.0.0.0.ru-2025-01.rur-2025-01.r1, que es una RU, no se actualizará automáticamente a 19.0.0.0.ru-2025-04.spb-1.r1, que es una SPB en una ruta de actualización independiente. 

Puede actualizar la instancia de base de datos a las SPB incluso si la instancia no utiliza Spatial, pero las revisiones de Spatial se aplican solo a Oracle Spatial. Puede actualizar manualmente de una RU a una SPB con la misma versión de motor o superior. Por ejemplo, puede actualizar la instancia de 19.0.0.0.ru-2025-01.rur-2025-01.r1 a cualquiera de las siguientes versiones de motor:
+ 19.0.0.0.ru-2025-01.spb-1.r1
+ 19.0.0.0.ru-2025-04.spb-1.r1

Puede actualizar la instancia de SPB a RU solo si la RU es una versión de motor superior. Por ejemplo, puede actualizar de la SPB versión 19.0.0.0.ru-2025-04. spb-1.r1 a una versión de RU superior 19.0.0.0.ru-2025-07.rur-2025-07.r1, pero no a la misma versión de RU 19.0.0.0.ru-2025-04.rur-2025-04.r1. 

Si la instancia de base de datos está configurada para actualizaciones automáticas de versiones secundarias y actualiza manualmente de una RU a una SPB o de una SPB a una RU, la ruta de actualización automática cambia. Suponga que actualiza manualmente de la RU versión 19.0.0.0.ru-2025-01.rur-2025-01.r1 a la SPB versión 19.0.0.0.ru-2025-01.spb-1.r1. La próxima actualización automática de versión secundaria será a la SPB versión 19.0.0.0.ru-2025-04.spb-1.r1.

Debido a que las SPB funcionan como las RU, las API de RDS para actualizar la instancia a las RU y SPB son idénticas. Los siguientes comandos muestran cómo actualizar a una RU y a una SPB.

```
aws rds modify-db-instance \
    --db-instance-identifier mydbinstance \
    --engine-version 19.0.0.0.ru-2025-01.rur-2025-01.r1

aws rds modify-db-instance \
    --db-instance-identifier mydbinstance \
    --engine-version 19.0.0.0.ru-2025-01.spb-1.r1
```

Para obtener más información sobre la opción Oracle Spatial, consulte [Funcionamiento de las agrupaciones de revisiones espaciales (SPB)](Oracle.Options.Spatial.md#Oracle.Options.Spatial.SPBs). Para obtener información sobre las RU y SPB compatibles con Oracle Database 19c, consulte [Amazon RDS para Oracle Database 19c (19.0.0.0)](https://docs.aws.amazon.com/AmazonRDS/latest/OracleReleaseNotes/oracle-version-19-0.html).

## Activación de las actualizaciones automáticas de versiones secundarias para Oracle
<a name="oracle-minor-version-upgrade-tuning-on"></a>

En una actualización automática de la versión secundaria, RDS aplica la última versión secundaria disponible a la base de datos Oracle sin intervención manual. Una instancia de base de datos de Amazon RDS para Oracle programa la actualización durante el siguiente periodo de mantenimiento en las siguientes circunstancias:
+ La instancia de base de datos tiene activada la opción **Actualización automática de versión secundaria**.
+ La instancia de base de datos no está ejecutando ya la última versión secundaria del motor de base de datos.

Para obtener información sobre cómo activar las actualizaciones automáticas, consulte [Actualización automática de la versión secundaria del motor](USER_UpgradeDBInstance.Upgrading.md#USER_UpgradeDBInstance.Upgrading.AutoMinorVersionUpgrades).

## Uso de la política de implementación de actualizaciones de AWS Organizations para actualizaciones de versiones secundarias automáticas
<a name="oracle-minor-version-upgrade-rollout"></a>

Amazon RDS para Oracle admite la política de implementación de actualizaciones de AWS Organizations para administrar las actualizaciones automáticas de versiones secundarias en varios recursos de bases de datos y Cuentas de AWS. Esta política elimina los gastos generales operativos que supone coordinar las actualizaciones automáticas de versiones menores, ya sea manualmente o mediante herramientas personalizadas, al tiempo que garantiza que las actualizaciones se apliquen primero en entornos que no sean de producción antes de implementarlas en producción. Cuando hay disponible una nueva versión menor del motor, Amazon RDS actualiza sus instancias de base de datos según el orden de implementación de actualizaciones configurado: 


| Orden de implementación de actualización | Caso de uso típico | Cuándo comienza la actualización | 
| --- | --- | --- | 
| Primero | Entornos de desarrollo y pruebas | Lo más temprano posible: ideal para validar nuevas versiones | 
| Segundo | Fases de ensayo y entornos de producción no críticos | Una vez completada la “primera” fase | 
| Último | Entornos de producción críticos | Una vez completada la “segunda” fase | 

**importante**  
Si no configura un orden de implementación de actualizaciones para su instancia de base de datos, el valor predeterminado será el segundo.

Para obtener información detallada sobre la sincronización y la duración de las fases, consulte [Cómo programa Amazon RDS las actualizaciones automáticas de versiones menores](#oracle-minor-version-upgrade-scheduled). Para obtener información sobre cómo configurar las políticas de implementación de actualizaciones en las organizaciones de AWS, consulte [Uso de la política de implementación de actualizaciones de AWS Organizations para actualizaciones de versiones secundarias automáticas](RDS.Maintenance.AMVU.UpgradeRollout.md).

## Notificación de actualizaciones de versiones secundarias automáticas en RDS para Oracle
<a name="oracle-minor-version-upgrade-advance"></a>

Si la actualización automática de versiones menores está habilitada en su instancia de base de datos, RDS para Oracle crea acciones de mantenimiento pendientes para notificárselo antes de aplicar las actualizaciones. Puede ver estas acciones de mantenimiento pendientes en la pestaña **Mantenimiento y copias de seguridad** de la página de detalles de la base de datos en la consola de Amazon RDS.

Cuando hay una nueva versión menor disponible, RDS para Oracle publica una notificación previa (acción de mantenimiento pendiente). La notificación anticipada tiene el siguiente formato:

```
An automatic minor version upgrade to engine-version will be applied during your maintenance window on apply-date based on the upgrade rollout order rollout-order. You can change the upgrade rollout order or apply this upgrade manually at any time before the scheduled date through the AWS console or AWS CLI.
```

`apply-date` en la notificación anticipada es la fecha en la que Amazon RDS actualizará su instancia de base de datos. `rollout-order` es su orden de implementación de la actualización (primero, segundo o último). Si no ha configurado una política de implementación de actualizaciones, este valor es el segundo por defecto. Para obtener más información, consulte [Uso de la política de implementación de actualizaciones de AWS Organizations para actualizaciones de versiones secundarias automáticas](RDS.Maintenance.AMVU.UpgradeRollout.md).

Cuando comienza la fase de implementación de la actualización, el mensaje de acción de mantenimiento pendiente cambia al siguiente formato:

```
Automatic minor version upgrade to engine-version
```

Este mensaje indica que la actualización se ha programado y se aplicará durante su periodo de mantenimiento en la fecha de aplicación programada. Puede consultar la fecha de aplicación programada en la pestaña **Mantenimiento y copias de seguridad** de la página de detalles de la base de datos en la consola de Amazon RDS o en el campo `CurrentApplyDate` de la respuesta de la API `describe-pending-maintenance-actions`.

El siguiente ejemplo muestra que puede obtener los detalles sobre las acciones de mantenimiento pendientes usando el comando `describe-pending-maintenance-actions` de la CLI de AWS:

```
aws rds describe-pending-maintenance-actions 

    "PendingMaintenanceActions": [
        {
            "ResourceIdentifier": "arn:aws:rds:us-east-1:123456789012:db:orclinst1",
            "PendingMaintenanceActionDetails": [
                {
                    "Action": "db-upgrade",
                    "Description": "Automatic minor version upgrade to 21.0.0.0.ru-2024-07.rur-2024-07.r1",
                    "CurrentApplyDate": "2024-12-02T08:10:00Z"
                }
            ]
        }, ...
```

Para obtener más información sobre [describe-pending-maintenance-actions](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-pending-maintenance-actions.html), consulte *AWS CLI Command Reference* (Referencia de comandos de la CLI).

## Cómo programa Amazon RDS las actualizaciones automáticas de versiones menores
<a name="oracle-minor-version-upgrade-scheduled"></a>

Cuando usa la política de implementación de actualizaciones de organizaciones de AWS, Amazon RDS actualiza las instancias de base de datos por fases según el orden de implementación configurado. En esta sección se describen el tiempo y la duración de cada fase.

**Fase 0: Notificación anticipada**

Cuando RDS para Oracle lanza una nueva versión menor (normalmente entre tres y cuatro semanas después del lanzamiento trimestral de RU de Oracle), todas las instancias de base de datos con la actualización automática de versiones menores habilitada reciben una notificación previa. Esta notificación aparece en la pestaña **Mantenimiento y copias de seguridad** de la página de detalles de la base de datos en la consola de Amazon RDS y en la respuesta de la API `describe-pending-maintenance-actions`. La fase de notificación anticipada dura dos semanas. Durante esta fase no se realizan actualizaciones automáticas.

**Fase 1: orden de actualización de la implementación primero**

Al final de la fase de notificación anticipada, RDS para Oracle comienza a actualizar las instancias de base de datos siguiendo el orden de implementación de la actualización primero. Esta fase dura entre dos y tres semanas para las versiones menores trimestrales de enero, abril y julio, y entre siete y ocho semanas para la versión menor trimestral de octubre. El periodo ampliado para la versión menor de octubre proporciona tiempo suficiente para probar la nueva versión menor durante las vacaciones de fin de año. Las nuevas instancias de base de datos creadas durante esta fase con el orden de implementación de la actualización primero se actualizarán automáticamente.

**Fase 2: orden de implementación de la actualización segundo**

Al final de la fase 1, RDS para Oracle comienza a actualizar las instancias de la base de datos con el orden de implementación de la actualización segundo. Esta fase dura dos semanas para todas las versiones menores trimestrales. Las nuevas instancias de base de datos creadas con el orden de implementación de la actualización primero o segundo durante esta fase se actualizarán automáticamente.

**Fase 3: orden de implementación de la actualización último**

Al final de la fase 2, RDS para Oracle comienza a actualizar las instancias de base de datos con el orden de implementación de la actualización último. Esta fase dura hasta el lanzamiento de la próxima versión menor trimestral. Las nuevas instancias de base de datos creadas con el orden de implementación de la actualización primero, segundo o último durante esta fase se actualizarán automáticamente.


| Phase (Fase) | Cuándo se inicia | Duración | Mensaje de acción de mantenimiento pendiente | 
| --- | --- | --- | --- | 
| Fase 0: Notificación anticipada | Cuando RDS para Oracle lanza una nueva versión menor | 2 semanas | Se aplicará una actualización automática de la versión menor a engine-version durante su periodo de mantenimiento en la fecha de aplicación, según el orden de implementación de la actualización rollout-order. Puede cambiar el orden de implementación de la actualización o aplicar esta actualización manualmente en cualquier momento antes de la fecha programada a través de la consola de AWS o la CLI de AWS. | 
| Fase 1: orden de actualización de la implementación primero | Fin de la fase de notificación temprana | De dos a cuatro semanas para las versiones menores de enero, abril y julio, y de siete a nueve semanas para la versión menor de octubre. | Actualización automática de la versión secundaria a la versión del motor | 
| Fase 2: orden de implementación de la actualización segundo | Fin de la fase 1 | 2 semanas | Actualización automática de la versión secundaria a la versión del motor | 
| Fase 3: orden de implementación de la actualización último | Fin de la fase 2 | Hasta el próximo lanzamiento trimestral de la versión menor | Actualización automática de la versión secundaria a la versión del motor | 

## Administración de una actualización de la versión secundaria automática en RDS para Oracle
<a name="oracle-minor-version-upgrade-managing"></a>

Cuando la actualización automática de la versión menor está habilitada en su instancia de base de datos, Amazon RDS actualiza automáticamente su instancia de base de datos a la última versión menor durante su periodo de mantenimiento. No obstante, puede optar por aplicar la actualización manualmente antes de la fecha programada usando la CLI de AWS o en la pestaña **Mantenimiento y copias de seguridad** de la página de detalles de la base de datos.

Para actualizar su instancia de base de datos inmediatamente en lugar de esperar al periodo de mantenimiento programado:

```
aws rds apply-pending-maintenance-action \
    --resource-identifier arn:aws:rds:us-east-1:123456789012:db:orclinst1 \
    --apply-action db-upgrade \
    --opt-in-type immediate
```

Para aplicar la actualización durante su próximo periodo de mantenimiento en lugar de en la fecha de aplicación programada:

```
aws rds apply-pending-maintenance-action \
    --resource-identifier arn:aws:rds:us-east-1:123456789012:db:orclinst1 \
    --apply-action db-upgrade \
    --opt-in-type next-maintenance
```

Para excluirse de una actualización automática de la versión menor, modifique su instancia de base de datos y desactive la opción de actualización automática de versiones menores. Esto cancela la programación de cualquier actualización automática pendiente.

Para obtener más información sobre cómo desactivar la actualización automática de versiones menores, consulte [Actualización automática de la versión secundaria del motor](USER_UpgradeDBInstance.Upgrading.md#USER_UpgradeDBInstance.Upgrading.AutoMinorVersionUpgrades). Si necesita ayuda para desactivar la actualización automática de versiones menores, póngase en contacto con el servicio de asistencia de AWS.

A veces, aparece una nueva versión secundaria antes de que RDS aplique una versión secundaria anterior. Por ejemplo, su instancia se está ejecutando en `21.0.0.0.ru-2025-07.rur-2025-07.r1` cuando `both 21.0.0.0.ru-2025-10.rur-2025-10.r1` y `21.0.0.0.ru-2026-01.rur-2026-01.r1` están disponibles como destinos de actualización. En esta situación, para evitar tiempos de inactividad innecesarios para las instancias de base de datos, RDS programa la actualización automática de la versión secundaria a la versión más reciente y omite la actualización a la versión anterior. En este ejemplo, RDS actualiza la instancia de `21.0.0.0.ru-2025-07.rur-2025-07.r1` directamente a `21.0.0.0.ru-2026-01.rur-2026-01.r1`.

# Consideraciones de las actualizaciones de base de datos de Oracle
<a name="USER_UpgradeDBInstance.Oracle.OGPG"></a>

Antes de actualizar la instancia de Oracle, lea la siguiente información.

**Topics**
+ [Consideraciones sobre Oracle Multitenant](#USER_UpgradeDBInstance.Oracle.multi)
+ [Consideraciones relativas al grupo de opciones](#USER_UpgradeDBInstance.Oracle.OGPG.OG)
+ [Consideraciones relativas al grupo de parámetros](#USER_UpgradeDBInstance.Oracle.OGPG.PG)
+ [Consideraciones sobre la zona horaria](#USER_UpgradeDBInstance.Oracle.OGPG.DST)
+ [Consideraciones sobre la agrupación de revisiones espaciales (SPB)](#USER_UpgradeDBInstance.Oracle.SPB)

## Consideraciones sobre Oracle Multitenant
<a name="USER_UpgradeDBInstance.Oracle.multi"></a>

En la tabla siguiente se describen las arquitecturas de Oracle Database admitidas en las distintas versiones.


| Versión de Oracle Database | Estado de compatibilidad de RDS | Arquitectura | 
| --- | --- | --- | 
|  Oracle Database 21c  | Compatible |  CDB solamente  | 
|  Oracle Database 19c  | Compatible |  CDB o no CDB  | 

En la tabla siguiente se describen las rutas de actualización admitidas y no admitidas.


| Ruta de actualización | ¿Se admite? | 
| --- | --- | 
|  De CDB a CDB  |  Sí  | 
|  De no CDB a CDB  |  No, pero se puede convertir de una que no sea CDB a una CDB y, a continuación, actualizarla  | 
|  De CDB a no CDB  |  No  | 

Para obtener más información acerca de Oracle Multitenant en RDS para Oracle, consulte [Configuración de un solo inquilino de la arquitectura CDB](Oracle.Concepts.CDBs.md#Oracle.Concepts.single-tenant).

## Consideraciones relativas al grupo de opciones
<a name="USER_UpgradeDBInstance.Oracle.OGPG.OG"></a>

Si su instancia de base de datos utiliza un grupo de opciones personalizado, a veces, Amazon RDS no puede asignar automáticamente un nuevo grupo de opciones. Por ejemplo, esta situación ocurre cuando se actualiza a una nueva versión principal. En tales casos, especifique un nuevo grupo de opciones al actualizar. Recomendamos que cree un grupo de opciones nuevo y que le añada las mismas opciones que tiene el grupo de opciones personalizado existente. 

Para obtener más información, consulte [Creación de un grupo de opciones](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create) o [Copia de un grupo de opciones](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Copy). 

Si la instancia de base de datos utiliza un grupo de opciones personalizado que contiene las opciones de `APEX` y `APEX-DEV`, a veces puede reducir el tiempo de actualización. Para ello, actualice la versión de Oracle APEX al mismo tiempo que la instancia de base de datos. Para obtener más información, consulte [Actualización de la versión de Oracle APEX](Appendix.Oracle.Options.APEX.UpgradeandRemove.md#Appendix.Oracle.Options.APEX.Upgrade). 

## Consideraciones relativas al grupo de parámetros
<a name="USER_UpgradeDBInstance.Oracle.OGPG.PG"></a>

Si la instancia de base de datos utiliza un grupo de parámetros personalizado, en algunos casos Amazon RDS no puede asignar a su instancia de base de datos un grupo de parámetros nuevo. Por ejemplo, esta situación ocurre cuando se actualiza a una nueva versión principal. En estos casos, asegúrese de especificar un nuevo grupo de parámetros al actualizar. Recomendamos que cree un grupo de parámetros nuevo y que configure en él los mismos parámetros que tiene el grupo de parámetros personalizado existente.

Para obtener más información, consulte [Creación de un grupo de parámetros de base de datos en Amazon RDS](USER_WorkingWithParamGroups.Creating.md) o [Copia de un grupo de parámetros de base de datos en Amazon RDS](USER_WorkingWithParamGroups.Copying.md). 

## Consideraciones sobre la zona horaria
<a name="USER_UpgradeDBInstance.Oracle.OGPG.DST"></a>

Puede usar la opción de zona horaria para cambiar la *zona horaria del sistema* empleada por la instancia de base de datos Oracle. Por ejemplo, puede cambiar la zona horaria de una instancia de base de datos para que sea compatible con un entorno on-premises o con una aplicación heredada. Esta opción cambia la zona horaria al nivel del host. Amazon RDS for Oracle actualiza la zona horaria del sistema automáticamente durante el año. Para obtener más información sobre la zona horaria del sistema, consulte [Zona horaria Oracle](Appendix.Oracle.Options.Timezone.md).

Al crear una instancia de base de datos de Oracle, la base de datos establece automáticamente la *zona horaria de la base de datos*. La zona horaria de la base de datos también se conoce como la zona horaria de horario de verano (DST). La zona horaria de la base de datos es distinta de la zona horaria del sistema.

Entre versiones de Oracle Database, juegos de parches o parches individuales pueden incluir nuevas versiones de DST. Estos parches reflejan los cambios en las reglas de transición para diversas regiones de zona horaria. Por ejemplo, un gobierno podría cambiar cuando entra en vigor el horario de verano. Los cambios en las reglas de DST pueden afectar a los datos existentes del tipo de datos `TIMESTAMP WITH TIME ZONE`.

Si actualiza una instancia de RDS for Oracle, Amazon RDS no actualiza automáticamente el archivo de zona horaria de la base de datos. Para actualizar automáticamente el archivo de zona horaria, puede incluir la opción `TIMEZONE_FILE_AUTOUPGRADE` en el grupo de opciones asociado a su instancia de base de datos durante o después de la actualización de la versión del motor. Para obtener más información, consulte [Actualización automática del archivo de zona horaria de Oracle](Appendix.Oracle.Options.Timezone-file-autoupgrade.md).

Alternativamente, para actualizar manualmente el archivo de zona horaria de la base de datos, cree una nueva instancia de base de datos de Oracle que tenga el parche de DST deseado. Sin embargo, le recomendamos que actualice el archivo de zona horaria de la base de datos con la opción `TIMEZONE_FILE_AUTOUPGRADE`.

Después de actualizar el archivo de zona horaria, migre los datos de la instancia actual a la nueva instancia. Puede migrar los datos mediante varias técnicas, entre las que se incluyen las siguientes:
+ AWS Database Migration Service
+ Oracle GoldenGate
+ Oracle Data Pump
+ Exportación e importación originales (no compatible para uso general)

**nota**  
Al migrar datos mediante Oracle Data Pump, la utilidad genera el error ORA-39405 cuando la versión de zona horaria de destino es inferior a la versión de zona horaria de origen.

Para obtener más información, consulte [TIMESTAMP WITH TIMEZONE Restrictions](https://docs.oracle.com/en/database/oracle/oracle-database/19/sutil/oracle-data-pump-overview.html#GUID-9B6C92EE-860E-43DD-9728-735B17B9DA89) en la documentación de Oracle. 

## Consideraciones sobre la agrupación de revisiones espaciales (SPB)
<a name="USER_UpgradeDBInstance.Oracle.SPB"></a>

En RDS para Oracle, la actualización de versión (RU) es una versión de motor secundaria que incluye correcciones de seguridad, correcciones de errores y nuevas características para Oracle Database. Una agrupación de revisiones espaciales (SPB) es una versión de motor secundaria que también incluye revisiones diseñadas para la opción Oracle Spatial. Por ejemplo, 19.0.0.0.ru-2025-01.spb-1.r1 es una versión de motor secundaria que contiene las revisiones RU en la versión de motor 19.0.0.0.ru-2025-01.rur-2025-01.r1 más revisiones espaciales.

Cuando actualice la base de datos a SPB, tenga en cuenta lo siguiente:
+ Las SPB solo son compatibles con Oracle Database 19c.
+ Por lo general, una SPB se publica entre dos y tres semanas después de la RU trimestral correspondiente.
+ Puede actualizar la instancia de base de datos a una SPB incluso si la instancia no utiliza la opción Oracle Spatial, pero las revisiones espaciales de la versión de motor se aplican solo a Oracle Spatial. Puede crear una nueva instancia en una SPB e instalar la opción Oracle Spatial más adelante.
+ Si habilita la actualización automática de la versión secundaria para la instancia de base de datos, la ruta de actualización dependerá de si la instancia utiliza actualmente una SPB o una RU. Si la instancia utiliza una SPB, RDS la actualiza automáticamente a la SPB más reciente. Si la instancia utiliza una RU, RDS la actualiza automáticamente a la RU más reciente.
+ Puede actualizar manualmente la instancia de base de datos de una RU a una SPB solo si la SPB tiene la misma versión de motor o una superior a la de la RU actual.
+ Puede actualizar manualmente la instancia de base de datos de SPB a RU solo si la RU es una versión superior.

# Prueba de una actualización de base de datos de Oracle
<a name="USER_UpgradeDBInstance.Oracle.UpgradeTesting"></a>

Antes de realizar una actualización de versión principal en su instancia de base de datos, realice una comprobación exhaustiva de su base de datos y de todas las aplicaciones que tienen acceso a ella, para determinar la compatibilidad con la versión nueva. Le recomendamos que utilice el siguiente procedimiento. 

**Para probar una actualización de versión principal**

1. Lea la documentación de actualización de Oracle de la nueva versión del motor de base de datos para ver si existen problemas de compatibilidad que pudieran afectar a su base de datos o sus aplicaciones. Para obtener más información, consulte la [Database Upgrade Guide](https://docs.oracle.com/database/121/UPGRD/toc.htm) en la documentación de Oracle. 

1. Si la instancia de base de datos utiliza un grupo de opciones personalizado, cree un grupo de opciones nuevo compatible con la versión nueva a la que va a actualizar. Para obtener más información, consulte [Consideraciones relativas al grupo de opciones](USER_UpgradeDBInstance.Oracle.OGPG.md#USER_UpgradeDBInstance.Oracle.OGPG.OG). 

1. Si la instancia de base de datos utiliza un grupo de parámetros personalizado, cree un grupo de parámetros nuevo compatible con la versión nueva a la que va a actualizar. Para obtener más información, consulte [Consideraciones relativas al grupo de parámetros](USER_UpgradeDBInstance.Oracle.OGPG.md#USER_UpgradeDBInstance.Oracle.OGPG.PG). 

1. Cree una instantánea de base de datos de la instancia de base de datos que se va a actualizar. Para obtener más información, consulte [Creación de una instantánea de base de datos para una instancia de base de datos single-AZ para Amazon RDS](USER_CreateSnapshot.md). 

1. Restaure la instantánea de base de datos para crear una nueva instancia de base de datos de prueba. Para obtener más información, consulte [Restauración a una instancia de base de datos](USER_RestoreFromSnapshot.md). 

1. Modifique esta instancia de base de datos de prueba nueva para actualizarla a la nueva versión, utilizando uno de los siguientes métodos: 
   + [Consola](USER_UpgradeDBInstance.Upgrading.md#USER_UpgradeDBInstance.Upgrading.Manual.Console)
   + [AWS CLI](USER_UpgradeDBInstance.Upgrading.md#USER_UpgradeDBInstance.Upgrading.Manual.CLI)
   + [API de RDS](USER_UpgradeDBInstance.Upgrading.md#USER_UpgradeDBInstance.Upgrading.Manual.API)

1. Haga pruebas: 
   + Ejecute tantas pruebas de control de calidad en la instancia de base de datos actualizada como necesite para asegurarse de que la base de datos y la aplicación funcionan correctamente con la versión nueva. 
   + Implemente las pruebas nuevas que sean necesarias para evaluar el impacto de cualquier problema de compatibilidad que haya identificado en el paso 1. 
   + Pruebe todos los procedimientos, las funciones y los disparadores. 
   + Dirija las versiones de prueba de sus aplicaciones a la instancia de base de datos actualizada. Compruebe que las aplicaciones funcionan correctamente con la versión nueva. 
   + Evalúe el almacenamiento utilizado por la instancia actualizada para determinar si la actualización necesita almacenamiento adicional. Es posible que deba cambiar a una clase de instancia más grande para admitir la nueva versión de producción. Para obtener más información, consulte [Clases de instancia de base de datos de ](Concepts.DBInstanceClass.md). 

1. Si se superan todas las pruebas, actualice su instancia de base de datos de producción. Se recomienda que confirme que la instancia de base de datos funciona correctamente antes de permitir operaciones de escritura en la instancia de base de datos.

# Actualización de la versión de una instancia de base de datos de RDS para Oracle
<a name="USER_UpgradeDBInstance.Oracle.Upgrading"></a>



Para actualizar manualmente la versión del motor de base de datos de una instancia de base de datos de RDS para Oracle, puede utilizar la Consola de administración de AWS, la AWS CLI o la API de RDS. Para obtener información general acerca de las actualizaciones de bases de datos, consulte [Actualización de la versión de una instancia de base de datos de RDS para Oracle](#USER_UpgradeDBInstance.Oracle.Upgrading). Para obtener objetivos de actualización válidos, utilice el comando [describe-db-engine-versions](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-engine-versions.html) de la AWS CLI.

## Consola
<a name="USER_UpgradeDBInstance.Oracle.Upgrading.Manual.Console"></a>

**Actualización de la versión del motor de una instancia de base de datos de RDS para Oracle con la consola**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon RDS en [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. En el panel de navegación, elija **Databases (Bases de datos)** y, a continuación, elija la instancia de base de datos que desea actualizar. 

1. Elija **Modify**.

1. Para **la versión del motor de base de datos**, elija una versión de base de datos superior.

1. Elija **Continue** (Continuar) y consulte el resumen de las modificaciones. Asegúrese de entender las implicaciones de actualizar una versión de base de datos. No puede convertir una instancia de base de datos actualizada a la versión anterior. Asegúrese de haber probado la base de datos y la aplicación con la nueva versión antes de continuar. 

1. Decida cuándo programar la actualización de la instancia de base de datos. Para aplicar los cambios inmediatamente, elija **Apply immediately**. Si se selecciona esta opción, puede producirse una interrupción en algunos casos. Para obtener más información, consulte [Uso de la configuración de la programación de modificaciones](USER_ModifyInstance.ApplyImmediately.md). 

1. En la página de confirmación, revise los cambios. Si son correctos, elija **Modify DB instance (Modificar instancia de base de datos)** para guardar los cambios. 

   O bien, elija **Back** para editar los cambios o **Cancel** para cancelarlos. 

## AWS CLI
<a name="USER_UpgradeDBInstance.Oracle.Upgrading.Manual.CLI"></a>

Para actualizar la versión del motor de una instancia de base de datos de RDS para Oracle, puede utilizar el comando [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) de la CLI. Especifique los siguientes parámetros: 
+ `--db-instance-identifier`: el nombre de la instancia de base de datos de RDS para Oracle. 
+ `--engine-version`: número de versión del motor de base de datos al que se va a actualizar. 

  Para obtener información sobre versiones de motores válidas, utilice el comando [ describe-db-engine-versions](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-engine-versions.html) de la AWS CLI.
+ `--allow-major-version-upgrade`: para actualizar la versión del motor de base de datos. 
+ `--no-apply-immediately`–: para aplicar los cambios en el siguiente periodo de mantenimiento. Para aplicar los cambios inmediatamente, use `--apply-immediately`. 

**Example**  
En el siguiente ejemplo, se actualiza una instancia de CDB nombrada `myorainst` de su versión actual de `19.0.0.0.ru-2024-01.rur-2024-01.r1` a la versión `21.0.0.0.ru-2024-04.rur-2024-04.r1`.  
Para Linux, macOS o Unix:  

```
1. aws rds modify-db-instance \
2.     --db-instance-identifier myorainst \
3.     --engine-version 21.0.0.0.ru-2024-04.rur-2024-04.r1 \
4.     --allow-major-version-upgrade \
5.     --no-apply-immediately
```
Para Windows:  

```
1. aws rds modify-db-instance ^
2.     --db-instance-identifier myorainst ^
3.     --engine-version 21.0.0.0.ru-2024-04.rur-2024-04.r1 ^
4.     --allow-major-version-upgrade ^
5.     --no-apply-immediately
```

## API de RDS
<a name="USER_UpgradeDBInstance.Oracle.Upgrading.Manual.API"></a>

Para actualizar una instancia de base de datos de RDS para Oracle, utilice la acción [ModifyDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html). Especifique los siguientes parámetros: 
+ `DBInstanceIdentifier` – nombre de la instancia de base de datos, por ejemplo *`myorainst`*. 
+ `EngineVersion`: número de versión del motor de base de datos al que se va a actualizar. Para obtener información sobre versiones de motores válidas, utilice la operación [DescribeDBEngineVersions](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBEngineVersions.html).
+ `AllowMajorVersionUpgrade`: si se permite una actualización de versión principal. Para ello, defina el valor en `true`. 
+ `ApplyImmediately`: indica si se deben aplicar los cambios inmediatamente o en la siguiente ventana de mantenimiento. Para aplicar los cambios inmediatamente, establezca el valor en `true`. Para aplicar los cambios en el siguiente periodo de mantenimiento, establezca el valor en `false`. 

# Actualización de una instantánea de base de datos de Oracle
<a name="USER_UpgradeDBSnapshot.Oracle"></a>

La actualización de las instantáneas de base de datos de Oracle en Amazon RDS garantiza que la base de datos siga siendo segura y totalmente compatible. A medida que las versiones anteriores de Oracle vayan dejando de recibir soporte de parches, podrá actualizar cualquier instantánea de base de datos manual vinculada a estas versiones para evitar posibles vulnerabilidades o limitaciones del servicio. Para obtener más información, consulte [Administración de versiones del motor de base de datos Oracle](USER_UpgradeDBInstance.Oracle.Overview.md#Oracle.Concepts.Patching).

Amazon RDS es compatible con la actualización de instancias en todas las Regiones de AWS.

## Consola
<a name="USER_UpgradeDBSnapshot.Oracle.Console"></a>

**Para actualizar una instantánea de base de datos de Oracle**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon RDS en [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. En el panel de navegación, elija **Snapshots** y, a continuación, seleccione la instantánea de base de datos que desea actualizar.

1. En **Actions (Acciones)**, seleccione **Upgrade Snapshot (Actualizar instantánea)**. Aparece la página **Upgrade snapshot**.

1. Elija la **Nueva versión del motor** a la que actualizar la instantánea.

1. (Opcional) En **Option group**, elija el grupo de opciones para la instantánea de base de datos actualizada. Las mismas consideraciones del grupo de opciones se aplican al actualizar una instantánea de base de datos que al actualizar una instancia de base de datos. Para obtener más información, consulte [Consideraciones relativas al grupo de opciones](USER_UpgradeDBInstance.Oracle.OGPG.md#USER_UpgradeDBInstance.Oracle.OGPG.OG). 

1. Para guardar los cambios, elija **Guardar cambios**.

   Durante el proceso de actualización, todas las acciones están deshabilitadas para esta instantánea de base de datos. Además, el estado de la instantánea de base de datos cambia de **available** a **upgrading** y después cambia a **active** al completarse. Si la instantánea de base de datos no se puede actualizar porque se ha dañado, el estado cambia a **unavailable**. No puede recuperar el snapshot desde este estado. 
**nota**  
Si la actualización de la base de datos falla, la instantánea se revierte al estado original con la versión original.

## AWS CLI
<a name="USER_UpgradeDBSnapshot.Oracle.CLI"></a>

Para actualizar una instantánea de base de datos de Oracle con la AWS CLI, llame al comando [modify-db-snapshot](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-snapshot.html) con los siguientes parámetros: 
+ `--db-snapshot-identifier`: nombre de la instantánea de base de datos. 
+ `--engine-version`: versión a la que se va a actualizar la instantánea. 

También puede ser necesario incluir el siguiente parámetro. Las mismas consideraciones del grupo de opciones se aplican al actualizar una instantánea de base de datos que al actualizar una instancia de base de datos. Para obtener más información, consulte [Consideraciones relativas al grupo de opciones](USER_UpgradeDBInstance.Oracle.OGPG.md#USER_UpgradeDBInstance.Oracle.OGPG.OG). 
+ `--option-group-name`: grupo de opciones de la instantánea de base de datos actualizada. 

**Example**  
En el siguiente ejemplo se actualiza una instantánea de base de datos.   
Para Linux, macOS o:Unix  

```
aws rds modify-db-snapshot \
    --db-snapshot-identifier mydbsnapshot \
    --engine-version 19.0.0.0.ru-2020-10.rur-2020-10.r1 \
    --option-group-name default:oracle-se2-19
```
En:Windows  

```
aws rds modify-db-snapshot ^
    --db-snapshot-identifier mydbsnapshot ^
    --engine-version 19.0.0.0.ru-2020-10.rur-2020-10.r1 ^
    --option-group-name default:oracle-se2-19
```

## API de RDS
<a name="USER_UpgradeDBSnapshot.Oracle.API"></a>

Para actualizar una instantánea de base de datos de Oracle con la API de Amazon RDS , llame a la operación [ModifyDBSnapshot](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBSnapshot.html) con los siguientes parámetros: 
+ `DBSnapshotIdentifier`: nombre de la instantánea de base de datos. 
+ `EngineVersion`: versión a la que se va a actualizar la instantánea. 

Es posible que también deba incluir el parámetro `OptionGroupName`. Las mismas consideraciones del grupo de opciones se aplican al actualizar una instantánea de base de datos que al actualizar una instancia de base de datos. Para obtener más información, consulte [Consideraciones relativas al grupo de opciones](USER_UpgradeDBInstance.Oracle.OGPG.md#USER_UpgradeDBInstance.Oracle.OGPG.OG).

# Uso de software de terceros con la instancia de base de datos de RDS for Oracle
<a name="Oracle.Resources"></a>

Puede alojar una instancia de base de datos de RDS para Oracle que sea compatible con herramientas y software de terceros.

**Topics**
+ [Uso de Oracle GoldenGate con Amazon RDS para Oracle‎‎‏‏‎](Appendix.OracleGoldenGate.md)
+ [Uso de Oracle Repository Creation Utility en RDS para Oracle](Oracle.Resources.RCU.md)
+ [Configuración de Oracle Connection Manager en una instancia de Amazon EC2](oracle-cman.md)
+ [Instalación de una base de datos de Siebel en Oracle en Amazon RDS](Oracle.Resources.Siebel.md)

# Uso de Oracle GoldenGate con Amazon RDS para Oracle‎‎‏‏‎
<a name="Appendix.OracleGoldenGate"></a>

Oracle GoldenGate recopila, replica y administra datos transaccionales entre bases de datos. Se trata de un paquete de software de replicación y de captura de datos de cambios (CDC, por sus siglas en inglés) basada en registros que se utiliza con bases de datos para sistemas de procesamiento de transacciones online (OLTP, por sus siglas en inglés). Oracle GoldenGate crea archivos de seguimiento que contienen los datos cambiados más recientes de la base de datos de origen. A continuación, envía estos archivos al servidor, donde un proceso convierte el archivo de seguimiento en SQL estándar para aplicarlo a la base de datos de destino.

Oracle GoldenGate con RDS para Oracle admite las siguientes características:
+ Reproducción de bases de datos activa a activa
+ Recuperación de desastres
+ Protección de los datos
+ Replicación dentro y fuera de la región
+ Migración y actualizaciones sin tiempo de inactividad
+ Replicación de datos entre una instancia de base de datos de RDS para Oracle y una base de datos que no es de Oracle
**nota**  
Para obtener una lista de baSes de datos compatibles, consulte [Oracle Fusion Middleware Supported System Configurations](https://www.oracle.com/middleware/technologies/fusion-certification.html) (Configuraciones de sistemas compatibles con Oracle Fusion Middleware) en la documentación de Oracle.

Puede usar Oracle GoldenGate con RDS para Oracle para actualizar a las principales versiones de base de datos de Oracle. Por ejemplo, puede usar Oracle GoldenGate para actualizar una base de datos Oracle Database 11g en las instalaciones a Oracle Database 19c en una instancia de base de datos de Amazon RDS.

**Topics**
+ [Versiones y opciones de licencia compatibles con Oracle GoldenGate](#Appendix.OracleGoldenGate.licensing)
+ [Requisitos y limitaciones de Oracle GoldenGate](#Appendix.OracleGoldenGate.requirements)
+ [Arquitectura de Oracle GoldenGate](Appendix.OracleGoldenGate.Overview.md)
+ [Configuración de Oracle GoldenGate](Appendix.OracleGoldenGate.setting-up.md)
+ [Uso de las utilidades EXTRACT y REPLICAT de Oracle GoldenGate](Appendix.OracleGoldenGate.ExtractReplicat.md)
+ [Supervisión de Oracle GoldenGate](Appendix.OracleGoldenGate.Monitoring.md)
+ [Solución de problemas de Oracle GoldenGate](Appendix.OracleGoldenGate.Troubleshooting.md)

## Versiones y opciones de licencia compatibles con Oracle GoldenGate
<a name="Appendix.OracleGoldenGate.licensing"></a>

Puede utilizar Standard Edition 2 (SE2) o Enterprise Edition (EE) de RDS para Oracle con Oracle GoldenGate versión 12c y posteriores. Puede utilizar las siguientes características de Oracle GoldenGate:
+ Se admite la captura remota (extracción) de Oracle GoldenGate.
+ Las instancias de base de datos de RDS para Oracle que utilizan la arquitectura de base de datos tradicional que no es de CDB admiten la captura (extracción). La captura de PDB remota de Oracle GoldenGate es compatible con las CDB que ejecuten Oracle Database 21c u Oracle Database 19c versión 19.0.0.0.ru-2024-04.rur-2024-04.r1 o superior.
+ La entrega remota (replicación) de Oracle GoldenGate es compatible con instancias de bases de datos de RDS para Oracle que utilizan arquitecturas de CDB o que no son de CDB. La entrega remota admite las funciones Replicación integrada, Replicación paralela, Replicación coordenada y Replicación clásica.
+ RDS para Oracle es compatible con las arquitecturas clásica y de microservicios de Oracle GoldenGate.
+ Se admite la replicación de valores de Oracle GoldenGate DDL y Sequence cuando se utiliza el modo de captura integrado.

El usuario es responsable de administrar las licencias de GoldenGate (BYOL) para usarlas con Amazon RDS en todas las Regiones de AWS. Para obtener más información, consulte [Opciones de licencias de RDS para Oracle](Oracle.Concepts.Licensing.md).

## Requisitos y limitaciones de Oracle GoldenGate
<a name="Appendix.OracleGoldenGate.requirements"></a>

Cuando trabaje con Oracle GoldenGate y RDS para Oracle, tenga en cuenta los siguientes requisitos y limitaciones: 
+ Es responsable de configurar y administrar Oracle GoldenGate para usarlo con RDS para Oracle. 
+ Es responsable de configurar una versión de Oracle GoldenGate que esté certificada con las bases de datos de origen y destino. Para obtener más información, consulte [Oracle Fusion Middleware Supported System Configurations](https://www.oracle.com/middleware/technologies/fusion-certification.html) (Configuraciones de sistemas compatibles con Oracle Fusion Middleware) en la documentación de Oracle.
+ Puede utilizar Oracle GoldenGate en muchos entornos diferentes de AWS para muchos casos de uso diferentes. Si tiene algún problema relacionado con el soporte de Oracle GoldenGate, póngase en contacto con los servicios de soporte de Oracle.
+ Puede utilizar Oracle GoldenGate en RDS para Oracle para instancias de base de datos de Oracle que utilicen el cifrado de datos transparente (TDE, por sus siglas en inglés) de Oracle. Para mantener la integridad de los datos replicados, configure el cifrado en el centro de Oracle GoldenGate con volúmenes cifrados de Amazon EBS o el cifrado de archivos de trazado. Configure también el cifrado de los datos enviados entre el centro de Oracle GoldenGate y las instancias de base de datos de origen y destino. Las instancias de base de datos de RDS for Oracle admiten el cifrado con [Capa de conexión segura de Oracle](Appendix.Oracle.Options.SSL.md) o [Oracle Native Network Encryption](Appendix.Oracle.Options.NetworkEncryption.md).

# Arquitectura de Oracle GoldenGate
<a name="Appendix.OracleGoldenGate.Overview"></a>

La arquitectura de Oracle GoldenGate para su uso con Amazon RDS consta de los siguientes módulos desacoplados:

Base de datos de origen  
La base de datos de origen puede ser una base de datos de Oracle en las instalaciones, una base de datos de Oracle en una instancia de Amazon EC2 o una base de datos de Oracle en una instancia de base de datos de Amazon RDS.

Hub de Oracle GoldenGate  
Un hub de Oracle GoldenGate mueve la información de las transacciones desde la base de datos de origen a la base de datos de destino. El hub puede ser cualquiera de los siguientes:  
+ Una instancia de Amazon EC2 con la base de datos de Oracle y con Oracle GoldenGate instalado
+ Una instalación de Oracle en las instalaciones
Puede tener más de un hub de Amazon EC2. Le recomendamos que use dos hubs si utiliza Oracle GoldenGate para la replicación entre regiones.

Bases de datos de destino  
La base de datos de destino puede residir en una instancia de base de datos de Amazon RDS, en una instancia Amazon EC2 o en una ubicación en las instalaciones.

Las siguientes secciones describen escenarios comunes de Oracle GoldenGate en Amazon RDS.

**Topics**
+ [Base de datos de origen en las instalaciones y hub de Oracle GoldenGate](#Appendix.OracleGoldenGate.on-prem-source-gg-hub)
+ [Base de datos de origen en las instalaciones y hub de Amazon EC2](#Appendix.OracleGoldenGate.on-prem-source-ec2-hub)
+ [Base de datos de origen de Amazon RDS y hub de Amazon EC2](#Appendix.OracleGoldenGate.rds-source-ec2-hub)
+ [Base de datos de origen de Amazon EC2 y hub de Amazon EC2](#Appendix.OracleGoldenGate.ec2-source-ec2-hub)
+ [Hubs de Amazon EC2 en diferentes regiones de AWS](#Appendix.OracleGoldenGate.cross-region-hubs)

## Base de datos de origen en las instalaciones y hub de Oracle GoldenGate
<a name="Appendix.OracleGoldenGate.on-prem-source-gg-hub"></a>

En este escenario, una base de datos de origen Oracle en las instalaciones y un hub de Oracle GoldenGate en las instalaciones proporcionan datos a una instancia de base de datos de Amazon RDS de destino. 

![\[Configuración de Oracle GoldenGate 0 con Amazon RDS\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/oracle-gg0.png)


## Base de datos de origen en las instalaciones y hub de Amazon EC2
<a name="Appendix.OracleGoldenGate.on-prem-source-ec2-hub"></a>

En este escenario, una base de datos Oracle local actúa como base de datos de origen. Está conectada a un hub de instancias de Amazon EC2. Este hub proporciona datos a una instancia de base de datos RDS for Oracle de destino.

![\[Configuración de Oracle GoldenGate 1 con Amazon RDS\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/oracle-gg1.png)


## Base de datos de origen de Amazon RDS y hub de Amazon EC2
<a name="Appendix.OracleGoldenGate.rds-source-ec2-hub"></a>

En este escenario, una instancia de base de datos RDS for Oracle actúa como base de datos de origen. Está conectada a un hub de instancia de Amazon EC2. Este hub proporciona datos a una instancia de base de datos RDS for Oracle de destino.

![\[Configuración de Oracle GoldenGate 2 con Amazon RDS\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/oracle-gg2.png)


## Base de datos de origen de Amazon EC2 y hub de Amazon EC2
<a name="Appendix.OracleGoldenGate.ec2-source-ec2-hub"></a>

En este escenario, una base de datos Oracle en una instancia de Amazon EC2 actúa como base de datos de origen. Está conectada a un hub de instancia de Amazon EC2. Este hub proporciona datos a una instancia de base de datos RDS for Oracle de destino.

![\[Configuración de Oracle GoldenGate 3 con Amazon RDS\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/oracle-gg3.png)


## Hubs de Amazon EC2 en diferentes regiones de AWS
<a name="Appendix.OracleGoldenGate.cross-region-hubs"></a>

En este escenario, una base de datos Oracle en una instancia de base de datos de Amazon RDS está conectada a un hub de instancias de Amazon EC2 en la misma región de AWS. El hub está conectado a un hub de instancias de Amazon EC2 en una región de AWS diferente. Este segundo hub proporciona datos a la instancia de base de datos de RDS for Oracle de destino en la misma región de AWS que el segundo hub de instancias de Amazon EC2.

![\[Configuración de Oracle GoldenGate 4 con Amazon RDS\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/oracle-gg4.png)


**nota**  
Cualquier problema que afecte a la ejecución de Oracle GoldenGate en un entorno en las instalaciones también afecta a la ejecución de Oracle GoldenGate en AWS. Le recomendamos que supervise el hub de Oracle GoldenGate para asegurarse de que `EXTRACT` y `REPLICAT` se reanudan si se produce una conmutación por error. Dado que el hub de Oracle GoldenGate se ejecuta en una instancia de Amazon EC2, Amazon RDS no administra el hub de Oracle GoldenGate y no puede garantizar que se esté ejecutando.

# Configuración de Oracle GoldenGate
<a name="Appendix.OracleGoldenGate.setting-up"></a>

Para configurar Oracle GoldenGate mediante Amazon RDS, tiene que configurar el hub en la instancia de Amazon EC2 y, a continuación, configurar las bases de datos de origen y de destino. Las siguientes secciones muestran un ejemplo de cómo configurar Oracle GoldenGate para usarlo con Amazon RDS para Oracle.

**Topics**
+ [Configuración de un hub de Oracle GoldenGate en Amazon EC2](#Appendix.OracleGoldenGate.Hub)
+ [Configuración de una base de datos de origen para usarla con Oracle GoldenGate en Amazon RDS](#Appendix.OracleGoldenGate.Source)
+ [Configuración de una base de datos de destino para Oracle GoldenGate en Amazon RDS](#Appendix.OracleGoldenGate.Target)

## Configuración de un hub de Oracle GoldenGate en Amazon EC2
<a name="Appendix.OracleGoldenGate.Hub"></a>

Para crear un hub de Oracle GoldenGate en una instancia de Amazon EC2, cree en primer lugar una instancia de Amazon EC2 con una instalación completa de cliente de Oracle DBMS. La instancia de Amazon EC2 también debe tener instalado el software GoldenGate de Oracle. Las versiones del software de Oracle GoldenGate dependen de las versiones de la base de datos de origen y destino. Para obtener más información acerca de la instalación de Oracle GoldenGate, consulte la [documentación de Oracle GolgenGate](https://docs.oracle.com/en/middleware/goldengate/core/index.html).

La instancia de Amazon EC2 que actúa de hub de Oracle GoldenGate almacena y procesa la información de las transacciones de la base de datos de origen a los archivos de trazado. Para admitir este proceso, asegúrese de que cumpla los siguientes requisitos:
+ Haber asignado suficiente espacio de almacenamiento para los archivos de seguimiento.
+ La instancia de Amazon EC2 tiene suficiente potencia de procesamiento para administrar la cantidad de datos.
+ La instancia EC2 tiene suficiente memoria para almacenar la información de transacción antes de que se escriba en el archivo de seguimiento.

**Para configurar un hub de arquitectura clásica de Oracle GoldenGate en una instancia Amazon EC2**

1. Cree los subdirectorios en el directorio de Oracle GoldenGate.

   En el shell de la línea de comandos de Amazon EC2, lance `ggsci`, el intérprete del comando de Oracle GoldenGate. El comando `CREATE SUBDIRS` crea subdirectorios bajo el directorio `/gg` para los archivos de parámetros, informes y puntos de comprobación.

   ```
   prompt$ cd /gg
   prompt$ ./ggsci
   
   GGSCI> CREATE SUBDIRS
   ```

1. Configure el archivo `mgr.prm`.

   El siguiente ejemplo añade líneas al archivo `$GGHOME/dirprm/mgr.prm`.

   ```
   PORT 8199
   PurgeOldExtracts ./dirdat/*, UseCheckpoints, MINKEEPDAYS 5
   ```

1. Inicie el administrador.

   En el siguiente ejemplo se lanza `ggsci` y se ejecuta el comando `start mgr`.

   ```
   GGSCI> start mgr
   ```

El hub de Oracle GoldenGate ya se puede utilizar.

## Configuración de una base de datos de origen para usarla con Oracle GoldenGate en Amazon RDS
<a name="Appendix.OracleGoldenGate.Source"></a>

Complete las siguientes tareas para configurar una base de datos de origen con el fin de utilizarla con Oracle GoldenGate.

**Topics**
+ [Paso 1: activar el registro suplementario en la base de datos de origen](#Appendix.OracleGoldenGate.Source.Logging)
+ [Paso 2: establecer el parámetro de inicialización ENABLE\$1GOLDENGATE\$1REPLICATION en verdadero](#Appendix.OracleGoldenGate.Source.enable-gg-rep)
+ [Paso 3: establecer el período de retención del registro en la base de datos de origen](#Appendix.OracleGoldenGate.Source.Retention)
+ [Paso 4: crear una cuenta de usuario de Oracle GoldenGate en la base de datos de origen](#Appendix.OracleGoldenGate.Source.Account)
+ [Paso 5: conceder privilegios al usuario en la base de datos de origen](#Appendix.OracleGoldenGate.Source.Privileges)
+ [Paso 6: agregar un alias de TNS para la base de datos de origen](#Appendix.OracleGoldenGate.Source.TNS)

### Paso 1: activar el registro suplementario en la base de datos de origen
<a name="Appendix.OracleGoldenGate.Source.Logging"></a>

Para activar el registro suplementario mínimo en el nivel de la base de datos, ejecute el siguiente procedimiento PL/SQL: 

```
EXEC rdsadmin.rdsadmin_util.alter_supplemental_logging(p_action => 'ADD')
```

### Paso 2: establecer el parámetro de inicialización ENABLE\$1GOLDENGATE\$1REPLICATION en verdadero
<a name="Appendix.OracleGoldenGate.Source.enable-gg-rep"></a>

Al establecer el parámetro de inicialización `ENABLE_GOLDENGATE_REPLICATION` en `true`, permite que los servicios de bases de datos admitan la replicación lógica. Si la base de datos de origen está en una instancia de base de datos de Amazon RDS, asegúrese de asignar un grupo de parámetros a dicha instancia de base de datos con el parámetro de inicialización `ENABLE_GOLDENGATE_REPLICATION` establecido en `true`. Para obtener más información acerca del parámetro de inicialización `ENABLE_GOLDENGATE_REPLICATION`, consulte la [documentación de la base de datos de Oracle](https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/ENABLE_GOLDENGATE_REPLICATION.html).

### Paso 3: establecer el período de retención del registro en la base de datos de origen
<a name="Appendix.OracleGoldenGate.Source.Retention"></a>

Asegúrese de configurar la base de datos de origen para retener los registros redo archivados. Tenga en cuenta estas directrices:
+ Especifique la duración de la retención de registros en horas. El valor mínimo es una hora.
+ Establezca la duración de manera que supere cualquier posible periodo de inactividad de la instancia de base de datos de origen, cualquier posible periodo de comunicación y cualquier posible periodo de problemas de red para dicha instancia de origen. Dicha duración permite a Oracle GoldenGate recuperar registros de la instancia de origen según sea necesario.
+ Asegúrese de que dispone de suficiente almacenamiento en la instancia para los archivos.

Por ejemplo, establezca el período de retención para los registros REDO archivados en 24 horas.

```
EXEC rdsadmin.rdsadmin_util.set_configuration('archivelog retention hours',24)
```

Si no tiene la retención de registros habilitada, o bien si el valor de retención es demasiado pequeño, recibirá un mensaje de error similar al siguiente.

```
2022-03-06 06:17:27  ERROR   OGG-00446  error 2 (No such file or directory) 
opening redo log /rdsdbdata/db/GGTEST3_A/onlinelog/o1_mf_2_9k4bp1n6_.log for sequence 1306 
Not able to establish initial position for begin time 2022-03-06 06:16:55.
```

Dado que la instancia de base de datos conserva los registros redo archivados, asegúrese de tener suficiente espacio para los archivos. Para ver cuánto espacio ha utilizado en las últimas *num\$1hours* horas, utilice la siguiente consulta, sustituyendo *num\$1hours* por el número de horas.

```
SELECT SUM(BLOCKS * BLOCK_SIZE) BYTES FROM V$ARCHIVED_LOG 
   WHERE NEXT_TIME>=SYSDATE-num_hours/24 AND DEST_ID=1;
```

### Paso 4: crear una cuenta de usuario de Oracle GoldenGate en la base de datos de origen
<a name="Appendix.OracleGoldenGate.Source.Account"></a>

Oracle GoldenGate se ejecuta como usuario de base de datos y requiere los privilegios de base de datos apropiados para obtener acceso a los registros redo y redo archivados para la base de datos de origen. Para proporcionarlos, cree una cuenta de usuario en la base de datos de origen. Para obtener más información sobre los permisos para una cuenta de usuario de Oracle GoldenGate, consulte la [documentación de Oracle](https://docs.oracle.com/en/middleware/goldengate/core/19.1/oracle-db/establishing-oracle-goldengate-credentials.html#GUID-79122058-27B0-4FB6-B3DC-B7D1B67EB053).

Las siguientes instrucciones crean una cuenta de usuario llamada `oggadm1`. 

```
CREATE TABLESPACE administrator;
CREATE USER oggadm1  IDENTIFIED BY "password"
   DEFAULT TABLESPACE ADMINISTRATOR TEMPORARY TABLESPACE TEMP;
ALTER USER oggadm1 QUOTA UNLIMITED ON administrator;
```

**nota**  
Especifique una contraseña distinta de la que se muestra aquí como práctica recomendada de seguridad.

### Paso 5: conceder privilegios al usuario en la base de datos de origen
<a name="Appendix.OracleGoldenGate.Source.Privileges"></a>

En esta tarea, concederá los privilegios de cuenta necesarios a los usuarios de la base de datos de la base de datos de origen.

**Para conceder privilegios a la cuenta en la base de datos de origen**

1. Conceda los privilegios necesarios a la cuenta de usuario de Oracle GoldenGate mediante el comando SQL `grant` y el procedimiento `grant_sys_object` de `rdsadmin.rdsadmin_util`. Las siguientes instrucciones conceden privilegios a un usuario llamado `oggadm1`.

   ```
   GRANT CREATE SESSION, ALTER SESSION TO oggadm1;
   GRANT RESOURCE TO oggadm1;
   GRANT SELECT ANY DICTIONARY TO oggadm1;
   GRANT FLASHBACK ANY TABLE TO oggadm1;
   GRANT SELECT ANY TABLE TO oggadm1;
   GRANT SELECT_CATALOG_ROLE TO rds_master_user_name WITH ADMIN OPTION;
   EXEC rdsadmin.rdsadmin_util.grant_sys_object ('DBA_CLUSTERS', 'OGGADM1');
   GRANT EXECUTE ON DBMS_FLASHBACK TO oggadm1;
   GRANT SELECT ON SYS.V_$DATABASE TO oggadm1;
   GRANT ALTER ANY TABLE TO oggadm1;
   ```

1. Otorgue los privilegios necesarios para que una cuenta de usuario sea administrador de Oracle GoldenGate. Ejecute el siguiente programa PL/SQL.

   ```
   EXEC rdsadmin.rdsadmin_dbms_goldengate_auth.grant_admin_privilege (
       grantee                 => 'OGGADM1',
       privilege_type          => 'capture',
       grant_select_privileges => true, 
       do_grants               => TRUE);
   ```

   Para revocar privilegios, utilice el procedimiento `revoke_admin_privilege` en el mismo paquete.

### Paso 6: agregar un alias de TNS para la base de datos de origen
<a name="Appendix.OracleGoldenGate.Source.TNS"></a>

Agregue la siguiente entrada a `$ORACLE_HOME/network/admin/tnsnames.ora` en el directorio raíz de Oracle que utilizará el proceso `EXTRACT`. Para obtener más información sobre el archivo `tnsnames.ora`, consulte la [documentación de Oracle](https://docs.oracle.com/en/database/oracle/oracle-database/19/netrf/local-naming-parameters-in-tns-ora-file.html#GUID-7F967CE5-5498-427C-9390-4A5C6767ADAA).

```
OGGSOURCE=
   (DESCRIPTION= 
        (ENABLE=BROKEN)
        (ADDRESS_LIST= 
            (ADDRESS=(PROTOCOL=TCP)(HOST=goldengate-source.abcdef12345.us-west-2.rds.amazonaws.com)(PORT=8200)))
        (CONNECT_DATA=(SERVICE_NAME=ORCL))
    )
```

## Configuración de una base de datos de destino para Oracle GoldenGate en Amazon RDS
<a name="Appendix.OracleGoldenGate.Target"></a>

En esta tarea, debe configurar una instancia de base de datos de destino para usarla con Oracle GoldenGate.

**Topics**
+ [Paso 2: establecer el parámetro de inicialización ENABLE\$1GOLDENGATE\$1REPLICATION en verdadero](#Appendix.OracleGoldenGate.Target.enable-gg-rep)
+ [Paso 2: crear una cuenta de usuario de Oracle GoldenGate en la base de datos de destino](#Appendix.OracleGoldenGate.Target.User)
+ [Paso 3: otorgar privilegios de cuenta en la base de datos de destino](#Appendix.OracleGoldenGate.Target.Privileges)
+ [Paso 4: agregar un alias de TNS para la base de datos de destino](#Appendix.OracleGoldenGate.Target.TNS)

### Paso 2: establecer el parámetro de inicialización ENABLE\$1GOLDENGATE\$1REPLICATION en verdadero
<a name="Appendix.OracleGoldenGate.Target.enable-gg-rep"></a>

Al establecer el parámetro de inicialización `ENABLE_GOLDENGATE_REPLICATION` en `true`, permite que los servicios de bases de datos admitan la replicación lógica. Si la base de datos de origen está en una instancia de base de datos de Amazon RDS, asegúrese de asignar un grupo de parámetros a dicha instancia de base de datos con el parámetro de inicialización `ENABLE_GOLDENGATE_REPLICATION` establecido en `true`. Para obtener más información acerca del parámetro de inicialización `ENABLE_GOLDENGATE_REPLICATION`, consulte la [documentación de la base de datos de Oracle](https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/ENABLE_GOLDENGATE_REPLICATION.html).

### Paso 2: crear una cuenta de usuario de Oracle GoldenGate en la base de datos de destino
<a name="Appendix.OracleGoldenGate.Target.User"></a>

Oracle GoldenGate se ejecuta como usuario de base de datos y requiere los privilegios de base de datos apropiados. Para asegurarse de que los tiene, cree una cuenta de usuario en la base de datos de destino.

La siguiente instrucción crea una cuenta de usuario llamada `oggadm1`.

```
CREATE TABLESPSACE administrator;
CREATE USER oggadm1  IDENTIFIED BY "password" 
   DEFAULT TABLESPACE administrator 
   TEMPORARY TABLESPACE temp;
ALTER USER oggadm1 QUOTA UNLIMITED ON administrator;
```

**nota**  
Especifique una contraseña distinta de la que se muestra aquí como práctica recomendada de seguridad.

### Paso 3: otorgar privilegios de cuenta en la base de datos de destino
<a name="Appendix.OracleGoldenGate.Target.Privileges"></a>

En esta tarea, concederá los privilegios de cuenta necesarios a los usuarios de la base de datos en la base de datos de destino.

**Para otorgar privilegios de cuenta en la base de datos de destino**

1. Otorgue los privilegios necesarios a la cuenta de usuario de Oracle GoldenGate en la base de datos de destino. En el siguiente ejemplo, otorgará privilegios a `oggadm1`.

   ```
   GRANT CREATE SESSION        TO oggadm1;
   GRANT ALTER SESSION         TO oggadm1;
   GRANT CREATE CLUSTER        TO oggadm1;
   GRANT CREATE INDEXTYPE      TO oggadm1;
   GRANT CREATE OPERATOR       TO oggadm1;
   GRANT CREATE PROCEDURE      TO oggadm1;
   GRANT CREATE SEQUENCE       TO oggadm1;
   GRANT CREATE TABLE          TO oggadm1;
   GRANT CREATE TRIGGER        TO oggadm1;
   GRANT CREATE TYPE           TO oggadm1;
   GRANT SELECT ANY DICTIONARY TO oggadm1;
   GRANT CREATE ANY TABLE      TO oggadm1;
   GRANT ALTER ANY TABLE       TO oggadm1;
   GRANT LOCK ANY TABLE        TO oggadm1;
   GRANT SELECT ANY TABLE      TO oggadm1;
   GRANT INSERT ANY TABLE      TO oggadm1;
   GRANT UPDATE ANY TABLE      TO oggadm1;
   GRANT DELETE ANY TABLE      TO oggadm1;
   ```

1. Otorgue los privilegios necesarios para que una cuenta de usuario sea administrador de Oracle GoldenGate. Ejecute el siguiente programa PL/SQL.

   ```
   EXEC rdsadmin.rdsadmin_dbms_goldengate_auth.grant_admin_privilege (
       grantee                 => 'OGGADM1',
       privilege_type          => 'apply',
       grant_select_privileges => true, 
       do_grants               => TRUE);
   ```

   Para revocar privilegios, utilice el procedimiento `revoke_admin_privilege` en el mismo paquete.

### Paso 4: agregar un alias de TNS para la base de datos de destino
<a name="Appendix.OracleGoldenGate.Target.TNS"></a>

Agregue la siguiente entrada a `$ORACLE_HOME/network/admin/tnsnames.ora` en el directorio raíz de Oracle que utilizará el proceso `REPLICAT`. Para las bases de datos Oracle Multitenant, asegúrese de que el alias TNS apunte hacia el nombre del servicio de la PDB. Para obtener más información sobre el archivo `tnsnames.ora`, consulte la [documentación de Oracle](https://docs.oracle.com/en/database/oracle/oracle-database/19/netrf/local-naming-parameters-in-tns-ora-file.html#GUID-7F967CE5-5498-427C-9390-4A5C6767ADAA).

```
OGGTARGET=
    (DESCRIPTION= 
        (ENABLE=BROKEN)
        (ADDRESS_LIST= 
            (ADDRESS=(PROTOCOL=TCP)(HOST=goldengate-target.abcdef12345.us-west-2.rds.amazonaws.com)(PORT=8200)))
        (CONNECT_DATA=(SERVICE_NAME=ORCL))
    )
```

# Uso de las utilidades EXTRACT y REPLICAT de Oracle GoldenGate
<a name="Appendix.OracleGoldenGate.ExtractReplicat"></a>

Las utilidades de Oracle GoldenGate `EXTRACT` y `REPLICAT` trabajan juntas para mantener las bases de datos de origen y de destino sincronizadas mediante la replicación incremental de transacciones utilizando archivos de seguimiento. Todos los cambios que se producen en la base de datos de origen son detectados automáticamente por `EXTRACT` y, a continuación, se formatean y transfieren a los archivos de seguimiento en el hub de instancias de EC2 o en Oracle GoldenGate en las instalaciones. Una vez finalizada la carga inicial, se leen los datos de estos archivos y se replican en la base de datos de destino mediante la utilidad `REPLICAT`.

## Ejecución de la utilidad EXTRACT de Oracle GoldenGate
<a name="Appendix.OracleGoldenGate.Extract"></a>

La utilidad `EXTRACT` recupera, convierte y devuelve datos de la base de datos de origen a los archivos de seguimiento. El procedimiento básico es el siguiente:

1. `EXTRACT` pone en cola detalles de la transacción en la memoria o en el almacenamiento del disco temporal.

1. La base de datos de origen confirma la transacción.

1. `EXTRACT` escribe los detalles de la transacción en un archivo de seguimiento.

1. El archivo de seguimiento dirige estos detalles hacia el hub de instancias de EC2 o en las instalaciones de Oracle GoldenGate y, a continuación, hacia la base de datos de destino.

Los siguientes pasos inician la utilidad `EXTRACT`, capturan los datos de `EXAMPLE.TABLE` en la base de datos `OGGSOURCE` de origen y crean los archivos de seguimiento. 

**Para ejecutar la utilidad EXTRACT**

1. Configure el archivo de parámetros `EXTRACT` en el hub de Oracle GoldenGate (instancia en las instalaciones o de Amazon EC2). El siguiente listado muestra un archivo de parámetros `EXTRACT` de ejemplo denominado `$GGHOME/dirprm/eabc.prm`.

   ```
   EXTRACT EABC
    
   USERID oggadm1@OGGSOURCE, PASSWORD "my-password"
   EXTTRAIL /path/to/goldengate/dirdat/ab 
    
   IGNOREREPLICATES
   GETAPPLOPS
   TRANLOGOPTIONS EXCLUDEUSER OGGADM1
   	 
   TABLE EXAMPLE.TABLE;
   ```

1. En el hub de Oracle GoldenGate, inicie sesión en la base de datos de origen y lance la interfaz de la línea de comandos de Oracle GoldenGate `ggsci`. En el siguiente ejemplo, se muestra el formato para iniciar sesión.

   ```
   dblogin oggadm1@OGGSOURCE
   ```

1. Agregue datos transaccionales para activar el registro complementario para la tabla de base de datos.

   ```
   add trandata EXAMPLE.TABLE
   ```

1. Con la línea de comandos `ggsci`, habilite la utilidad `EXTRACT` mediante los siguientes comandos.

   ```
   add extract EABC tranlog, INTEGRATED tranlog, begin now
   add exttrail /path/to/goldengate/dirdat/ab 
      extract EABC, 
      MEGABYTES 100
   ```

1. Registre la utilidad `EXTRACT` con la base de datos de manera que no se eliminen los archivos de registro. Esta tarea le permite recuperar, si fuera necesario, transacciones antiguas sin confirmar. Para registrar la utilidad `EXTRACT` en la base de datos, utilice el siguiente comando.

   ```
   register EXTRACT EABC, DATABASE
   ```

1. Inicie la utilidad `EXTRACT` con el siguiente comando.

   ```
   start EABC
   ```

## Ejecución de la utilidad REPLICAT de Oracle GoldenGate
<a name="Appendix.OracleGoldenGate.Replicat"></a>

La utilidad `REPLICAT` "inserta" información sobre transacciones de los archivos de seguimiento en la base de datos de destino.

Los siguientes pasos habilitan e inician la utilidad `REPLICAT` para que pueda replicar los datos capturados en la tabla `EXAMPLE.TABLE` de la base de datos de destino `OGGTARGET`.

**Para ejecutar la utilidad REPLICATE**

1. Configure el archivo de parámetros `REPLICAT` en el hub de Oracle GoldenGate (instancia local o de EC2). El siguiente listado muestra un archivo de parámetros `REPLICAT` de ejemplo denominado `$GGHOME/dirprm/rabc.prm`.

   ```
   REPLICAT RABC
    
   USERID oggadm1@OGGTARGET, password "my-password"
    
   ASSUMETARGETDEFS
   MAP EXAMPLE.TABLE, TARGET EXAMPLE.TABLE;
   ```
**nota**  
Especifique una contraseña distinta de la que se muestra aquí como práctica recomendada de seguridad.

1. Inicie sesión en la base de datos de destino y lance la interfaz de la línea de comandos de Oracle GoldenGate (`ggsci`). En el siguiente ejemplo, se muestra el formato para iniciar sesión.

   ```
   dblogin userid oggadm1@OGGTARGET
   ```

1. Con la línea de comandos `ggsci`, agregue una tabla de punto de comprobación. El usuario indicado debe ser la cuenta de usuario de Oracle GoldenGate, no el propietario del esquema de la tabla de destino. En el siguiente ejemplo, se crea una tabla de punto de comprobación llamada `gg_checkpoint`.

   ```
   add checkpointtable oggadm1.oggchkpt
   ```

1. Para habilitar la utilidad `REPLICAT`, utilice el siguiente comando.

   ```
   add replicat RABC EXTTRAIL /path/to/goldengate/dirdat/ab CHECKPOINTTABLE oggadm1.oggchkpt 
   ```

1. Inicie la utilidad `REPLICAT` con el siguiente comando.

   ```
   start RABC
   ```

# Supervisión de Oracle GoldenGate
<a name="Appendix.OracleGoldenGate.Monitoring"></a>

Cuando utilice Oracle GoldenGate para la replicación, asegúrese de que el proceso de Oracle GoldenGate esté activo y en ejecución y que las bases de datos de origen y destino estén sincronizadas. Puede utilizar las siguientes herramientas de supervisión:
+ [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) es un servicio de supervisión que se utiliza en este patrón para supervisar los registros de errores de GoldenGate.
+ [Amazon SNS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/US_SetupSNS.html) es un servicio de notificación de mensajes que se utiliza en este patrón para enviar notificaciones por correo electrónico.

Para obtener instrucciones detalladas, consulte [Monitor Oracle GoldenGate logs by using Amazon CloudWatch](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/monitor-oracle-goldengate-logs-by-using-amazon-cloudwatch.html) (Supervisión de los registros de Oracle GoldenGate mediante Amazon CloudWatch).

# Solución de problemas de Oracle GoldenGate
<a name="Appendix.OracleGoldenGate.Troubleshooting"></a>

Esta sección explica los problemas más habituales al usar Oracle GoldenGate con Amazon RDS para Oracle.

**Topics**
+ [Error al abrir un registro redo en línea](#Appendix.OracleGoldenGate.Troubleshooting.Logs)
+ [Oracle GoldenGate parece estar configurado correctamente, pero la replicación no está funcionando](#Appendix.OracleGoldenGate.Troubleshooting.Replication)
+ [La REPLICAT integrada es lenta debido a la consulta en SYS."\$1DBA\$1APPLY\$1CDR\$1INFO"](#Appendix.OracleGoldenGate.IR)

## Error al abrir un registro redo en línea
<a name="Appendix.OracleGoldenGate.Troubleshooting.Logs"></a>

Asegúrese de configurar las bases de datos para que retengan los registros redo archivados. Tenga en cuenta estas directrices:
+ Especifique la duración de la retención de registros en horas. El valor mínimo es una hora.
+ Establezca la duración de manera que supere cualquier posible periodo de inactividad de la instancia de base de datos de origen, cualquier posible periodo de comunicación y cualquier posible periodo de problemas de red para la instancia de base de datos de origen. Dicha duración permite a Oracle GoldenGate recuperar registros de la instancia de base de datos de origen según sea necesario.
+ Asegúrese de que dispone de suficiente almacenamiento en la instancia para los archivos.

Si no tiene la retención de registros habilitada, o bien si el valor de retención es demasiado pequeño, recibirá un mensaje de error similar al siguiente.

```
2022-03-06 06:17:27  ERROR   OGG-00446  error 2 (No such file or directory) 
opening redo log /rdsdbdata/db/GGTEST3_A/onlinelog/o1_mf_2_9k4bp1n6_.log for sequence 1306 
Not able to establish initial position for begin time 2022-03-06 06:16:55.
```

## Oracle GoldenGate parece estar configurado correctamente, pero la replicación no está funcionando
<a name="Appendix.OracleGoldenGate.Troubleshooting.Replication"></a>

Para tablas preexistentes, debe especificar el SCN desde el que trabaja Oracle GoldenGate.

**Para solucionar este problema**

1. Inicie sesión en la base de datos de origen y lance la interfaz de la línea de comandos de Oracle GoldenGate (`ggsci`). En el siguiente ejemplo, se muestra el formato para iniciar sesión.

   ```
   dblogin userid oggadm1@OGGSOURCE
   ```

1. Con la línea de comandos `ggsci`, configure el SCN de inicio para el proceso `EXTRACT`. En el siguiente ejemplo, se establece el SCN en 223274 para `EXTRACT`.

   ```
   ALTER EXTRACT EABC SCN 223274
   start EABC
   ```

1. Inicie sesión en la base de datos de destino. En el siguiente ejemplo, se muestra el formato para iniciar sesión.

   ```
   dblogin userid oggadm1@OGGTARGET
   ```

1. Con la línea de comandos `ggsci`, configure el SCN de inicio para el proceso `REPLICAT`. En el siguiente ejemplo, se establece el SCN en 223274 para `REPLICAT`.

   ```
   start RABC atcsn 223274
   ```

## La REPLICAT integrada es lenta debido a la consulta en SYS."\$1DBA\$1APPLY\$1CDR\$1INFO"
<a name="Appendix.OracleGoldenGate.IR"></a>

Con la detección y resolución de conflictos (CDR) de Oracle GoldenGate se ofrecen rutinas básicas de resolución de conflictos. Por ejemplo, con la CDR se puede resolver un conflicto distintivo de una instrucción `INSERT`.

Cuando la CDR resuelve una colisión, puede insertar registros en la tabla de excepciones `_DBA_APPLY_CDR_INFO` temporalmente. La `REPLICAT` integrada elimina estos registros después. En un escenario raro, la `REPLICAT` integrada puede procesar un gran número de colisiones, pero una `REPLICAT` integrada nueva no la reemplaza. En lugar de eliminarse, las filas que ya están en `_DBA_APPLY_CDR_INFO` quedan huérfanas. Los procesos `REPLICAT` integrados nuevos se ralentizan, pues están consultando filas huérfanas en `_DBA_APPLY_CDR_INFO`.

Para eliminar todas las filas de `_DBA_APPLY_CDR_INFO`, utilice el procedimiento `rdsadmin.rdsadmin_util.truncate_apply$_cdr_info` de Amazon RDS. Este procedimiento se publica como parte de la versión y actualización de parche de octubre de 2020. El procedimiento está disponible en las siguientes versiones de base de datos:
+ [ Versión 21.0.0.0.ru-2022-01.rur-2022-01.r1](https://docs.aws.amazon.com/AmazonRDS/latest/OracleReleaseNotes/oracle-version-21-0.html#oracle-version-RU-RUR.21.0.0.0.ru-2022-01.rur-2022-01.r1) y posteriores
+ [ Versión 19.0.0.0.ru-2020-10.rur-2020-10.r1](https://docs.aws.amazon.com/AmazonRDS/latest/OracleReleaseNotes/oracle-version-19-0.html#oracle-version-RU-RUR.19.0.0.0.ru-2020-10.rur-2020-10.r1) y posteriores

En el ejemplo siguiente se trunca la tabla `_DBA_APPLY_CDR_INFO`.

```
SET SERVEROUTPUT ON SIZE 2000
EXEC rdsadmin.rdsadmin_util.truncate_apply$_cdr_info;
```

# Uso de Oracle Repository Creation Utility en RDS para Oracle
<a name="Oracle.Resources.RCU"></a>

Puede usar Amazon RDS para alojar una instancia de base de datos RDS for Oracle que contenga los esquemas para admitir los componentes de Oracle Fusion Middleware. Antes de poder utilizar los componentes de Fusion Middleware, cree y rellene los esquemas para ellos en su base de datos. Los esquemas se crean y se rellenan con Oracle Repository Creation Utility (RCU).

## Versiones y opciones de licencia compatibles con la RCU
<a name="Oracle.Resources.RCU.Versions"></a>

Amazon RDS solo es compatible con Oracle Repository Creation Utility (RCU) versión 12c. Puede usar RCU en las siguientes configuraciones: 
+ RCU 12c con Oracle Database 21c
+ RCU 12c con Oracle Database 19c

Para poder usar RCU, asegúrese de que hace lo siguiente:
+ Obtenga una licencia de Oracle Fusion Middleware.
+ Siga las directrices sobre licencias de Oracle para la base de datos de Oracle que aloja el repositorio. Para obtener más información, consulte el [Manual del usuario de información de licencias de Oracle Fusion Middleware ](https://docs.oracle.com/en/middleware/fusion-middleware/fmwlc/) en la documentación de Oracle.

Fusion MiddleWare admite los repositorios de Oracle Database Enterprise Edition y Standard Edition 2. Oracle recomienda usar Enterprise Edition para las instalaciones de producción que requieren particiones y las instalaciones en las que es necesario reconstruir índices online.

Antes de crear su instancia de base de datos de RDS for Oracle, confirme la versión de Oracle Database que necesita para usar los componentes que desea implementar. Para encontrar los requisitos de los componentes y versiones de Fusion Middleware que desea desplegar, utilice la matriz de certificación. Para obtener más información, consulte [Oracle Fusion Middleware Supported System Configurations](http://www.oracle.com/technetwork/middleware/ias/downloads/fusion-certification-100350.html) (Configuraciones de sistemas compatibles con Oracle Fusion Middleware) en la documentación de Oracle. 

Amazon RDS admite actualizaciones de las versiones de Oracle Database cuando sean necesarias. Para obtener más información, consulte [Actualización de una versión del motor de una instancia de base de datos ](USER_UpgradeDBInstance.Upgrading.md). 

## Requisitos y limitaciones de la RCU
<a name="Oracle.Resources.RCU.BeforeYouBegin"></a>

Para usar la RCU, necesita una Amazon VPC. Su instancia de base de datos de Amazon RDS debe estar disponible únicamente para los componentes de Fusion Middleware y no para la Internet pública. Por lo tanto, aloje la instancia de base de datos de Amazon RDS en una subred privada, que proporciona mayor seguridad. También necesita una instancia de base de datos de RDS for Oracle. Para obtener más información, consulte [Creación y conexión a una instancia de base de datos de Oracle](CHAP_GettingStarted.CreatingConnecting.Oracle.md).

Puede almacenar los esquemas de cualquier componente de Fusion Middleware en su instancia de base de datos de Amazon RDS. Se verificó que los siguientes esquemas se instalan correctamente: 
+ Analytics (ACTIVITIES)
+ Audit Services (IAU)
+ Audit Services Append (IAU\$1APPEND)
+ Audit Services Viewer (IAU\$1VIEWER)
+ Discussions (DISCUSSIONS)
+ Metadata Services (MDS)
+ Oracle Business Intelligence (BIPLATFORM)
+ Oracle Platform Security Services (OPSS)
+ Portal and Services (WEBCENTER)
+ Portlet Producers (PORTLET)
+ Service Table (STB)
+ SOA Infrastructure (SOAINFRA)
+ User Messaging Service (UCSUMS)
+ WebLogic Services (WLS)

## Pautas para el uso de la RCU
<a name="Oracle.Resources.RCU.Recommendations"></a>

A continuación se detallan algunas recomendaciones para trabajar con una instancia de base de datos en esta situación: 
+ Es recomendable usar Multi-AZ para las cargas de trabajo de producción. Para obtener más información acerca del uso de varias zonas de disponibilidad, consulte [Regiones, zonas de disponibilidad y Local Zones](Concepts.RegionsAndAvailabilityZones.md). 
+ Para mayor seguridad, Oracle recomienda usar Cifrado de datos transparente (TDE) para cifrar los datos en reposo. Si tiene una licencia de Enterprise Edition que incluye Advanced Security Option, puede habilitar el cifrado en reposo usando la opción TDE. Para obtener más información, consulte [Cifrado de datos transparente de Oracle](Appendix.Oracle.Options.AdvSecurity.md). 

  Amazon RDS también proporciona una opción de cifrado en reposo para todas las ediciones de la base de datos. Para obtener más información, consulte [Cifrado de recursos de Amazon RDS](Overview.Encryption.md). 
+ Configure sus grupos de seguridad de VPC para permitir la comunicación entre los servidores de su aplicación y su instancia de base de datos de Amazon RDS. Los servidores de aplicación que alojan los componentes de Fusion Middleware pueden estar en Amazon EC2 o instalados localmente. 

## Ejecución de la RCU
<a name="Oracle.Resources.RCU.Installing"></a>

Para crear y rellenar los esquemas que admiten los componentes de Fusion Middleware, use la utilidad de creación de repositorios de Oracle (RCU). Puede ejecutar la RCU de distintas formas.

**Topics**
+ [Ejecución de RCU a través de la línea de comando en un paso](#Oracle.Resources.RCU.SilentSingle)
+ [Ejecución de RCU a través de la línea de comando en varios pasos](#Oracle.Resources.RCU.SilentMulti)
+ [Ejecución de RCU en modo interactivo](#Oracle.Resources.RCU.Interactive)

### Ejecución de RCU a través de la línea de comando en un paso
<a name="Oracle.Resources.RCU.SilentSingle"></a>

Si no necesita editar ninguno de sus esquemas antes de rellenarlos, puede ejecutar RCU en un solo paso. De lo contrario, consulte la siguiente sección para ejecutar RCU en varios pasos. 

Puede ejecutar RCU en modo silencioso usando el parámetro de línea de comando `-silent`. Cuando se ejecuta la RCU en modo silencioso, se puede evitar introducir contraseñas en la línea de comandos mediante la creación de un archivo de texto que contiene las contraseñas. Cree un archivo de texto con la contraseña de `dbUser` en la primera línea y la contraseña de cada componente en las líneas siguientes. Debe especificar el nombre del archivo de contraseñas como último parámetro del comando de RCU. 

**Example**  
En el siguiente ejemplo se crean y se rellenan esquemas para el componente SOA Infrastructure (y sus dependencias) en un solo paso.   
Para Linux, macOS o Unix:  

```
export ORACLE_HOME=/u01/app/oracle/product/12.2.1.0/fmw
export JAVA_HOME=/usr/java/jdk1.8.0_65
${ORACLE_HOME}/oracle_common/bin/rcu \
-silent \
-createRepository \
-connectString ${dbhost}:${dbport}:${dbname} \
-dbUser ${dbuser} \
-dbRole Normal \
-honorOMF \
-schemaPrefix ${SCHEMA_PREFIX} \
-component MDS \
-component STB \
-component OPSS \
-component IAU \
-component IAU_APPEND \
-component IAU_VIEWER \
-component UCSUMS \
-component WLS \
-component SOAINFRA \
-f < /tmp/passwordfile.txt
```

Para obtener más información, consulte [ Running Repository Creation Utility from the Command Line](https://docs.oracle.com/middleware/1221/core/RCUUG/GUID-0D3A2959-7CC8-4001-997E-718ADF04C5F2.htm#RCUUG248) en la documentación de Oracle. 

### Ejecución de RCU a través de la línea de comando en varios pasos
<a name="Oracle.Resources.RCU.SilentMulti"></a>

Para editar de forma manual los scripts de sus esquemas, ejecute la RCU en varios pasos: 

1. Ejecute RCU en el modo **Prepare Scripts for System Load** usando el parámetro de línea de comando `-generateScript` para crear los scripts de sus esquemas. 

1. Edite y ejecute manualmente el script generad `script_systemLoad.sql`. 

1. Ejecute RCU de nuevo en el modo **Perform Product Load** usando el parámetro de línea de comando `-dataLoad` para rellenar los esquemas. 

1. Ejecute el script de limpieza creado `script_postDataLoad.sql`.

Para ejecutar la RCU en modo silencioso, especifique el parámetro de línea de comandos `-silent`. Cuando se ejecuta la RCU en modo silencioso, se puede evitar escribir contraseñas en la línea de comandos mediante la creación de un archivo de texto que contiene las contraseñas. Cree un archivo de texto con la contraseña de `dbUser` en la primera línea y la contraseña de cada componente en las líneas siguientes. Especifique el nombre del archivo de contraseñas como último parámetro del comando de la RCU. 

**Example**  
El siguiente ejemplo crea scripts de esquema para el componente SOA Infrastructure y sus dependencias.   
Para Linux, macOS o Unix:  

```
export ORACLE_HOME=/u01/app/oracle/product/12.2.1.0/fmw
export JAVA_HOME=/usr/java/jdk1.8.0_65
${ORACLE_HOME}/oracle_common/bin/rcu \
-silent \
-generateScript \
-connectString ${dbhost}:${dbport}:${dbname} \
-dbUser ${dbuser} \
-dbRole Normal \
-honorOMF \
[-encryptTablespace true] \
-schemaPrefix ${SCHEMA_PREFIX} \
-component MDS \
-component STB \
-component OPSS \
-component IAU \
-component IAU_APPEND \
-component IAU_VIEWER \
-component UCSUMS \
-component WLS \
-component SOAINFRA \
-scriptLocation /tmp/rcuscripts \
-f < /tmp/passwordfile.txt
```
Ahora puede editar el script generado, conectarse a su instancia de base de datos de Oracle y ejecutar el script. El script generado se llama `script_systemLoad.sql`. Para obtener información acerca de la conexión a su instancia de base de datos de Oracle, consulte [Paso 3: conectar el cliente de SQL a una instancia de base de datos de Oracle](CHAP_GettingStarted.CreatingConnecting.Oracle.md#CHAP_GettingStarted.Connecting.Oracle).   
En el siguiente ejemplo se rellenan los esquemas para el componente SOA Infrastructure (y sus dependencias).   
Para Linux, macOS o Unix:  

```
export JAVA_HOME=/usr/java/jdk1.8.0_65
${ORACLE_HOME}/oracle_common/bin/rcu \
-silent \
-dataLoad \
-connectString ${dbhost}:${dbport}:${dbname} \
-dbUser ${dbuser} \
-dbRole Normal \
-honorOMF \
-schemaPrefix ${SCHEMA_PREFIX} \
-component MDS \
-component STB \
-component OPSS \
-component IAU \
-component IAU_APPEND \
-component IAU_VIEWER \
-component UCSUMS \
-component WLS \
-component SOAINFRA \
-f < /tmp/passwordfile.txt
```
Para terminar, conéctese a su instancia de base de datos de Oracle y ejecute el script de limpieza. El script se llama `script_postDataLoad.sql`. 

Para obtener más información, consulte [ Running Repository Creation Utility from the Command Line](https://docs.oracle.com/middleware/1221/core/RCUUG/GUID-0D3A2959-7CC8-4001-997E-718ADF04C5F2.htm#RCUUG248) en la documentación de Oracle. 

### Ejecución de RCU en modo interactivo
<a name="Oracle.Resources.RCU.Interactive"></a>

Para usar la interfaz gráfica de usuario de la RCU, ejecute la RCU en modo interactivo. Incluya el parámetro `-interactive` y omita el parámetro `-silent`. Para obtener más información, consulte [Understanding Repository Creation Utility Screens](https://docs.oracle.com/middleware/1213/core/RCUUG/rcu_screens.htm#RCUUG143) en la documentación de Oracle. 

**Example**  
En el siguiente ejemplo, RCU se inicia en modo interactivo y la información de la conexión se rellena automáticamente.   
Para Linux, macOS o Unix:  

```
export ORACLE_HOME=/u01/app/oracle/product/12.2.1.0/fmw
export JAVA_HOME=/usr/java/jdk1.8.0_65
${ORACLE_HOME}/oracle_common/bin/rcu \
-interactive \
-createRepository \
-connectString ${dbhost}:${dbport}:${dbname} \
-dbUser ${dbuser} \
-dbRole Normal
```

## Solución de problemas de la RCU
<a name="Oracle.Resources.RCU.KnownIssues"></a>

Tenga en cuenta los siguientes problemas.

**Topics**
+ [Oracle Managed Files (OMF)](#Oracle.Resources.RCU.KnownIssues.OMF)
+ [Privilegios de objeto](#Oracle.Resources.RCU.KnownIssues.object-privs)
+ [Enterprise Scheduler Service](#Oracle.Resources.RCU.KnownIssues.Scheduler)

### Oracle Managed Files (OMF)
<a name="Oracle.Resources.RCU.KnownIssues.OMF"></a>

Amazon RDS usa archivos de datos de OMF para simplificar la administración del almacenamiento. Puede personalizar los atributos del espacio de tabla, como la administración del tamaño y la extensión. Sin embargo, si se especifica un nombre de archivo de datos cuando se ejecuta RCU, el código del espacio de tabla falla con `ORA-20900`. Puede utilizar RCU con OMF de las siguientes formas: 
+ En RCU 12.2.1.0 y versiones posteriores, use el parámetro de línea de comando `-honorOMF`. 
+ En RCU 12.1.0.3 y versiones posteriores, use varios pasos y edite el script generado. Para obtener más información, consulte [Ejecución de RCU a través de la línea de comando en varios pasos](#Oracle.Resources.RCU.SilentMulti). 

### Privilegios de objeto
<a name="Oracle.Resources.RCU.KnownIssues.object-privs"></a>

Dado que Amazon RDS es un servicio administrado, no tiene acceso `SYSDBA` completo a la instancia de base de datos de RDS for Oracle. Sin embargo, RCU 12c admite usuarios con privilegios más bajos. En la mayoría de los casos, el privilegio de usuario maestro es suficiente para crear repositorios. 

La cuenta maestra puede conceder directamente los privilegios que ya se le han concedido a `WITH GRANT OPTION`. En algunos casos, RCU puede generar el error con `ORA-01031` cuando se intenta conceder a `SYS` privilegios de objeto. Puede volver a intentar ejecutar el procedimiento almacenado `rdsadmin_util.grant_sys_object`, como se muestra en el ejemplo siguiente:

```
BEGIN
  rdsadmin.rdsadmin_util.grant_sys_object('GV_$SESSION','MY_DBA','SELECT');
END;
/
```

Si intenta conceder privilegios `SYS` en el objeto `SCHEMA_VERSION_REGISTRY`, la operación podría fallar con `ORA-20199: Error in rdsadmin_util.grant_sys_object`. Puede calificar la tabla `SCHEMA_VERSION_REGISTRY$` y la vista `SCHEMA_VERSION_REGISTRY` con el nombre del propietario del esquema, que es `SYSTEM`, y volver a intentar la operación. O bien, puede crear un sinónimo. Inicie sesión como usuario maestro y ejecute las siguientes instrucciones:

```
CREATE OR REPLACE VIEW SYSTEM.SCHEMA_VERSION_REGISTRY 
  AS SELECT * FROM SYSTEM.SCHEMA_VERSION_REGISTRY$;
CREATE OR REPLACE PUBLIC SYNONYM SCHEMA_VERSION_REGISTRY FOR SYSTEM.SCHEMA_VERSION_REGISTRY;
CREATE OR REPLACE PUBLIC SYNONYM SCHEMA_VERSION_REGISTRY$ FOR SCHEMA_VERSION_REGISTRY;
```

### Enterprise Scheduler Service
<a name="Oracle.Resources.RCU.KnownIssues.Scheduler"></a>

Cuando se usa la RCU para eliminar un repositorio de Enterprise Scheduler Service, la RCU puede fallar con `Error: Component drop check failed`.

# Configuración de Oracle Connection Manager en una instancia de Amazon EC2
<a name="oracle-cman"></a>

Oracle Connection Manager (CMAN) es un servidor proxy que reenvía las peticiones de conexión a los servidores de bases de datos o a otros servidores proxy. Puede utilizar CMAN para configurar lo siguiente:

Control de acceso  
Puede crear reglas que filtren las solicitudes de los clientes especificadas por el usuario y acepten otras.

Multiplexación de sesiones  
Puede canalizar varias sesiones de cliente a través de una conexión de red a un destino de servidor compartido.

Normalmente, CMAN reside en un host separado del servidor de la base de datos y de los hosts de los clientes. Para más información, consulte [Configuring Oracle Connection Manager](https://docs.oracle.com/en/database/oracle/oracle-database/19/netag/configuring-oracle-connection-manager.html#GUID-AF8A511E-9AE6-4F4D-8E58-F28BC53F64E4) (Configuración de Oracle Connection Manager) en la documentación de Oracle Database.

**Topics**
+ [Versiones y opciones de licencia compatibles con CMAN](#oracle-cman.Versions)
+ [Requisitos y limitaciones para CMAN](#oracle-cman.requirements)
+ [Configuración de CMAN](#oracle-cman.configuring-cman)

## Versiones y opciones de licencia compatibles con CMAN
<a name="oracle-cman.Versions"></a>

CMAN es compatible con la edición Enterprise de todas las versiones de Oracle Database que admite Amazon RDS. Para obtener más información, consulte [Versiones de RDS para Oracle](Oracle.Concepts.database-versions.md).

Puede instalar Oracle Connection Manager en un host distinto del host donde está instalada Oracle Database. No necesita una licencia independiente para el host que ejecuta CMAN.

## Requisitos y limitaciones para CMAN
<a name="oracle-cman.requirements"></a>

Para proporcionar una experiencia completamente administrada, Amazon RDS restringe el acceso al sistema operativo. No se pueden modificar los parámetros de la base de datos que requieren acceso al sistema operativo. Por lo tanto, Amazon RDS no es compatible con las características de CMAN que requieren que inicie sesión en el sistema operativo.

## Configuración de CMAN
<a name="oracle-cman.configuring-cman"></a>

Cuando se configura CMAN, se realiza la mayor parte del trabajo fuera de la base de datos de RDS for Oracle.

**Topics**
+ [Paso 1: configurar CMAN en una instancia de Amazon EC2 en la misma VPC que la instancia de RDS for Oracle](#oracle-cman.configuring-cman.vpc)
+ [Paso 2: configurar los parámetros de la base de datos para CMAN](#oracle-cman.configuring-cman.parameters)
+ [Paso 3: asociar la instancia de base de datos con el grupo de parámetros](#oracle-cman.configuring-cman.parameter-group)

### Paso 1: configurar CMAN en una instancia de Amazon EC2 en la misma VPC que la instancia de RDS for Oracle
<a name="oracle-cman.configuring-cman.vpc"></a>

Para saber cómo configurar CMAN, siga las instrucciones detalladas en la publicación del blog [Configuring and using Oracle Connection Manager on Amazon EC2 for Amazon RDS for Oracle](https://aws.amazon.com/blogs/database/configuring-and-using-oracle-connection-manager-on-amazon-ec2-for-amazon-rds-for-oracle/) (Configurar y utilizar Oracle Connection Manager en Amazon EC2 para Amazon RDS for Oracle).

### Paso 2: configurar los parámetros de la base de datos para CMAN
<a name="oracle-cman.configuring-cman.parameters"></a>

Para las funciones de CMAN, como el modo de director de tráfico y la multiplexación de sesiones, establezca el parámetro `REMOTE_LISTENER` en la dirección de la instancia de CMAN en un grupo de parámetros de base de datos. Veamos la siguiente situación:
+ La instancia CMAN reside en un host con la dirección IP `10.0.159.100` y utiliza el puerto `1521`.
+ Las bases de datos `orcla`, `orclb` y `orclc` residen en instancias de base de datos de RDS for Oracle separadas.

La siguiente tabla muestra cómo establecer el valor de `REMOTE_LISTENER`. El valor de `LOCAL_LISTENER` lo establece automáticamente Amazon RDS.


| Nombre de instancia de base de datos | IP de la instancia de la base de datos | Valor del oyente local (establecido automáticamente) | Valor de la escucha remota (establecida por el usuario) | 
| --- | --- | --- | --- | 
| orcla | 10.0.159.200 |  <pre>( address=<br />  (protocol=tcp)<br />  (host=10.0.159.200)<br />  (port=1521)<br />)</pre>  | 10.0.159.100:1521 | 
| orclb | 10.0.159.300 |  <pre>( address=<br />  (protocol=tcp)<br />  (host=10.0.159.300)<br />  (port=1521)<br />)</pre>  | 10.0.159.100:1521 | 
| orclc | 10.0.159.400 |  <pre>( address=<br />  (protocol=tcp)<br />  (host=10.0.159.400)<br />  (port=1521)<br />)</pre>  | 10.0.159.100:1521 | 

### Paso 3: asociar la instancia de base de datos con el grupo de parámetros
<a name="oracle-cman.configuring-cman.parameter-group"></a>

Cree o modifique la instancia de base de datos para utilizar el grupo de parámetros que configuró en [Paso 2: configurar los parámetros de la base de datos para CMAN](#oracle-cman.configuring-cman.parameters). Para obtener más información, consulte [Asociación de un grupo de parámetros de base de datos con una instancia de base de datos en Amazon RDS](USER_WorkingWithParamGroups.Associating.md).

# Instalación de una base de datos de Siebel en Oracle en Amazon RDS
<a name="Oracle.Resources.Siebel"></a>

Puede utilizar Amazon RDS para alojar una base de datos de Siebel en una instancia de base de datos de Oracle. La base de datos de Siebel forma parte de la arquitectura de aplicaciones Siebel Customer Relationship Management (CRM). Para ver una ilustración, consulte [ Generic Architecture of Siebel Business Application](https://docs.oracle.com/cd/E63029_01/books/PerformTun/performtun_archinfra.htm#i1043361). 

Utilice el siguiente tema para configurar una base de datos de Siebel en una instancia de base de datos de Oracle en Amazon RDS. También puede aprender cómo utilizar Amazon Web Services con los demás componentes que requiere la arquitectura de aplicaciones Siebel CRM. 

**nota**  
Para instalar una base de datos de Siebel en Oracle en Amazon RDS, debe utilizar la cuenta de usuario maestro. No necesita el privilegio `SYSDBA`, ya que el privilegio de usuario maestro es suficiente. Para obtener más información, consulte [Privilegios de la cuenta de usuario maestro](UsingWithRDS.MasterAccounts.md). 

## Licencias y versiones
<a name="Oracle.Resources.Siebel.Versions"></a>

Para instalar una base de datos de Siebel en Amazon RDS, debe utilizar su propia licencia de Oracle Database y su propia licencia de Siebel. Debe tener la licencia de Oracle Database adecuada (con Software Update License and Support) para la clase de instancia de base de datos y la edición de Oracle Database. Para obtener más información, consulte [Opciones de licencias de RDS para Oracle](Oracle.Concepts.Licensing.md). 

Oracle Database Enterprise Edition es la única edición certificada por Siebel para esta situación. Amazon RDS es compatible con las versiones 15.0 o 16.0 de Siebel CRM.

Amazon RDS admite actualizaciones de las versiones de los motores de bases de datos. Para obtener más información, consulte [Actualización de una versión del motor de una instancia de base de datos ](USER_UpgradeDBInstance.Upgrading.md). 

## Antes de empezar
<a name="Oracle.Resources.Siebel.BeforeYouBegin"></a>

Antes de comenzar, necesita una Amazon VPC. Como la instancia de base de datos de Amazon RDS únicamente debe estar disponible para Siebel Enterprise Server y no para la red pública de Internet, la instancia de base de datos de Amazon RDS se aloja en una subred privada, lo que proporciona mayor seguridad. Para obtener información acerca de cómo crear una Amazon VPC para usarla con Siebel CRM, consulte [Creación y conexión a una instancia de base de datos de Oracle](CHAP_GettingStarted.CreatingConnecting.Oracle.md). 

Antes de comenzar, necesitará también una instancia de base de datos de Oracle. Para obtener información acerca de cómo crear una instancia de base de datos de Oracle para utilizarla con Siebel CRM, consulte [Creación de una instancia de base de datos de Amazon RDS](USER_CreateDBInstance.md). 

## Instalación y configuración de una base de datos de Siebel
<a name="Oracle.Resources.Siebel.Database.Siebel"></a>

Una vez que haya creado la instancia de base de datos de Oracle, puede instalar la base de datos de Siebel. La base de datos se instala creando las cuentas del propietario y del administrador de tablas, instalando las funciones y los procedimientos almacenados, y ejecutando el asistente para la configuración de bases de datos de Siebel. Para obtener más información, consulte [ Installing the Siebel Database on the RDBMS](https://docs.oracle.com/cd/E63029_01/books/SiebInstWIN/SiebInstCOM_ConfigDB.html). 

Para ejecutar el asistente para la configuración de bases de datos de Siebel, debe utilizar la cuenta de usuario maestro. No necesita el privilegio `SYSDBA`, ya que el privilegio de usuario maestro es suficiente. Para obtener más información, consulte [Privilegios de la cuenta de usuario maestro](UsingWithRDS.MasterAccounts.md). 

## Uso de otras características de Amazon RDS con una base de datos de Siebel
<a name="Oracle.Resources.Siebel.Miscellaneous"></a>

Una vez que haya creado la instancia de base de datos de Oracle, puede utilizar características adicionales de Amazon RDS que le ayudarán a personalizar la base de datos de Siebel.

### Recopilación de estadísticas con la opción Oracle Statspack
<a name="Oracle.Resources.Siebel.Options"></a>

Puede añadir características a la instancia de base de datos utilizando opciones en los grupos de opciones de base de datos. Cuando creó la instancia de base de datos de Oracle, utilizó el grupo de opciones de base de datos predeterminado. Si desea añadir características a la base de datos, puede crear un grupo de opciones nuevo para la instancia de base de datos. 

Si desea recopilar estadísticas de desempeño de la base de datos de Siebel, puede añadir la característica Oracle Statspack. Para obtener más información, consulte [Oracle Statspack](Appendix.Oracle.Options.Statspack.md). 

Algunos cambios realizados en las opciones se aplican inmediatamente, mientras que otros se aplican durante el siguiente periodo de mantenimiento de la instancia de base de datos. Para obtener más información, consulte [Trabajo con grupos de opciones](USER_WorkingWithOptionGroups.md). Una vez que haya creado un grupo de opciones personalizado, modifique la instancia de base de datos para adjuntarlo. Para obtener más información, consulte [Modificación de una instancia de base de datos de Amazon RDS](Overview.DBInstance.Modifying.md). 

### Ajuste del rendimiento mediante parámetros
<a name="Oracle.Resources.Siebel.Parameters"></a>

Puede administrar la configuración del motor de base de datos mediante el uso de los parámetros de un grupo de parámetros de base de datos. Cuando creó la instancia de base de datos de Oracle, utilizó el grupo de parámetros de base de datos predeterminado. Si desea personalizar la configuración de la base de datos, puede crear un grupo de parámetros nuevo para la instancia de base de datos. 

Al cambiar un parámetro, dependiendo del tipo de parámetro, los cambios se aplican inmediatamente o después de reiniciar manualmente la instancia de base de datos. Para obtener más información, consulte [Grupos de parámetros para Amazon RDS](USER_WorkingWithParamGroups.md). Una vez que haya creado un grupo de parámetros personalizado, modifique la instancia de base de datos para adjuntarlo. Para obtener más información, consulte [Modificación de una instancia de base de datos de Amazon RDS](Overview.DBInstance.Modifying.md). 

Para optimizar la instancia de base de datos de Oracle para Siebel CRM, puede personalizar determinados parámetros. En la siguiente tabla se muestran algunos valores de parámetros recomendados. Si quiere obtener más información para ajustar el rendimiento de Siebel CRM, consulte la [guía de ajuste de rendimiento de Siebel CRM](https://docs.oracle.com/cd/E63029_01/books/PerformTun/toc.htm). 


****  

| Nombre del parámetro | Valor predeterminado | Valor aconsejado para optimizar el rendimiento de Siebel CRM | 
| --- | --- | --- | 
| \$1always\$1semi\$1join | `CHOOSE` | `OFF`  | 
| \$1b\$1tree\$1bitmap\$1plans | `TRUE` | `FALSE`  | 
| \$1like\$1with\$1bind\$1as\$1equality | `FALSE` | `TRUE`  | 
| \$1no\$1or\$1expansion | `FALSE` | `FALSE`  | 
| \$1optimizer\$1join\$1sel\$1sanity\$1check | `TRUE` | `TRUE`  | 
| \$1optimizer\$1max\$1permutations | 2000 | 100  | 
| \$1optimizer\$1sortmerge\$1join\$1enabled | `TRUE` | `FALSE`  | 
| \$1partition\$1view\$1enabled | `TRUE` | `FALSE`  | 
| open\$1cursors | `300` | Como mínimo **2000**.  | 

### Creación de instantáneas
<a name="Oracle.Resources.Siebel.Snapshots"></a>

Una vez que haya creado la base de datos de Siebel, puede copiarla utilizando las características de instantáneas de Amazon RDS. Para obtener más información, consulte [Creación de una instantánea de base de datos para una instancia de base de datos single-AZ para Amazon RDS](USER_CreateSnapshot.md) y [Restauración a una instancia de base de datos](USER_RestoreFromSnapshot.md). 

## Otros componentes compatibles de Siebel CRM
<a name="Oracle.Resources.Siebel.OtherComponents"></a>

Además de la base de datos de Siebel, también puede utilizar Amazon Web Services con los demás componentes de la arquitectura de aplicaciones Siebel CRM. Puede encontrar más información acerca de la compatibilidad de Amazon AWS con componentes adicionales de Siebel CRM en la siguiente tabla. 


****  

| Componente de Siebel CRM | Soporte de Amazon AWS | 
| --- | --- | 
| Siebel Enterprise(con uno o varios servidores Siebel) |  Puede alojar los servidores Siebel en instancias de Amazon Elastic Compute Cloud (Amazon EC2). Puede utilizar Amazon EC2 para lanzar tantos servidores virtuales como necesite. Utilizando Amazon EC2, puede escalar hacia arriba o hacia abajo fácilmente para afrontar los cambios que se produzcan en los requisitos. Para obtener más información, consulte [¿Qué es Amazon EC2?](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html)  Puede colocar los servidores en la misma VPC que la instancia de base de datos y utilizar el grupo de seguridad de VPC para obtener acceso a la base de datos. Para obtener más información, consulte [Uso de una instancia de base de datos en una VPC](USER_VPC.WorkingWithRDSInstanceinaVPC.md).   | 
| Servidores web(con Siebel Web Server Extensions) |  Puede instalar varios servidores web en varias instancias EC2. A continuación, puede utilizar Elastic Load Balancing para distribuir el tráfico entrante entre las instancias. Para obtener más información, consulte [¿Qué es Elastic Load Balancing?](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/elastic-load-balancing.html)   | 
| Siebel Gateway Name Server |  Puede alojar el servidor de nombres Siebel Gateway Name Server en una instancia EC2. A continuación, puede colocar el servidor en la misma VPC que la instancia de base de datos y utilizar el grupo de seguridad de VPC para obtener acceso a la base de datos. Para obtener más información, consulte [Uso de una instancia de base de datos en una VPC](USER_VPC.WorkingWithRDSInstanceinaVPC.md).   | 

# Notas de la versión del motor de Oracle Database
<a name="USER_Oracle_Releases"></a>

Las actualizaciones en sus instancias de base de datos de Amazon RDS for Oracle las mantienen al día. Si aplica actualizaciones, tendrá la seguridad de que su instancia de base de datos está ejecutando una versión del software de la base de datos que han probado tanto Oracle como Amazon. No se permite aplicar parches únicos a instancias de base de datos de RDS para Oracle.

Puede especificar cualquier versión de Oracle Database compatible actualmente al crear una nueva instancia de base de datos. Puede especificar las versiones principales, como Oracle Database 19c y cualquier versión secundaria admitida para la versión principal especificada. Si no se especifica ninguna versión, Amazon RDS cambia de forma predeterminada a una versión admitida, normalmente la más reciente. Si se especifica una versión principal pero no una versión secundaria, Amazon RDS usa de manera predeterminada una versión reciente de la versión principal especificada. Para ver una lista de las versiones admitidas y de las versiones predeterminadas para instancias de bases de datos recién creadas, utilice el comando [https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-engine-versions.html](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-engine-versions.html) de la AWS CLI.

Para obtener más información sobre las versiones de Oracle Database compatibles con Amazon RDS, consulte las [https://docs.aws.amazon.com/AmazonRDS/latest/OracleReleaseNotes/Welcome.html](https://docs.aws.amazon.com/AmazonRDS/latest/OracleReleaseNotes/Welcome.html).