

# 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).