Actualización de una instancia de base de datos para Amazon RDS Custom for Oracle - Amazon Relational Database Service

Actualización de una instancia de base de datos para Amazon RDS Custom for Oracle

Puede actualizar una instancia de base de datos personalizada de Amazon RDS Custom al modificarla para utilizar una nueva versión del motor personalizada (CEV). Para obtener información general acerca de las actualizaciones, consulte Actualización de una versión del motor de una instancia de base de datos.

Información general sobre las actualizaciones en RDS Custom para Oracle

Con RDS Custom para Oracle, puede aplicar parches a la base de datos de Oracle o al sistema operativo (SO) de la instancia de base de datos; para ello, cree nuevas CEV y modifique la instancia para que utilice la nueva CEV.

Opciones de actualización de CEV

A la hora de crear una CEV para una actualización, tiene las siguientes opciones mutuamente excluyentes:

Solo base de datos

Reutilice la imagen de máquina de Amazon (AMI) que su instancia de base de datos esté usando actualmente, pero especifique diferentes binarios de base de datos. RDS Custom asigna un nuevo volumen binario y lo adjunta a la instancia de Amazon EC2 existente. RDS Custom reemplaza todo el volumen de la base de datos por un nuevo volumen que utiliza la versión de la base de datos de destino.

Solo sistema operativo

Reutilice los binarios de base de datos que utiliza actualmente su instancia de base de datos, pero especifique una AMI distinta. RDS Custom asigna una nueva instancia de Amazon EC2 y adjunta el volumen binario existente a la nueva instancia. Se conserva el volumen de base de datos existente.

Si desea actualizar el sistema operativo y la base de datos, debe actualizar la CEV dos veces. Puede actualizar primero el sistema operativo y, luego, la base de datos o viceversa.

aviso

Al parchear el sistema operativo, se pierden los datos del volumen raíz y cualquier personalización existente del sistema operativo. Por lo tanto, le recomendamos encarecidamente que no utilice el volumen raíz para las instalaciones ni para almacenar datos o archivos permanentes. También le recomendamos que haga una copia de seguridad de los datos antes de la actualización.

Aplicación de parches sin CEV

Le recomendamos encarecidamente que actualice la instancia de base de datos de RDS Custom para Oracle mediante CEV. La automatización de RDS Custom para Oracle sincroniza los metadatos del parche con el binario de base de datos en la instancia de base de datos.

En circunstancias especiales, RDS Custom admite la aplicación de un parche “único” de base de datos directamente en la instancia subyacente de Amazon EC2, mediante la utilidad OPatch. Un caso de uso válido podría ser cuando desea aplicar de inmediato un parche de base de datos, pero el equipo de RDS Custom está actualizando la característica de CEV, lo que provoca un retraso. Para aplicar un parche de forma manual, siga estos pasos:

  1. Pausa la automatización de RDS Custom.

  2. Aplique el parche a los binarios de base de datos de la instancia de Amazon EC2.

  3. Reanudar la automatización personalizada de RDS.

Una desventaja de la técnica anterior es que debe aplicar el parche de base de datos manualmente a cada instancia que quiera actualizar. Por el contrario, cuando crea una nueva CEV, puede crear o actualizar varias instancias de base de datos con la misma CEV.

Pasos generales para parchear la instancia de base de datos con una CEV

Tanto si aplica parches al SO como a la base de datos, siga estos pasos básicos:

  1. Cree una CEV que contenga uno de los siguientes elementos, en función de si va a aplicar parches a la base de datos o al sistema operativo:

    • La actualización de la versión de la base de datos de Oracle que desea aplicar en la instancia de base de datos

    • Una AMI diferente (la última disponible o una que usted especifique) y una CEV existente para usar como fuente

    Siga los pasos de Creación de una CEV.

  2. (Opcional para la aplicación de parches en las bases de datos) Compruebe las actualizaciones de versión de motor disponibles ejecutando describe-db-engine-versions.

  3. Inicie el proceso de aplicación de parches ejecutando modify-db-instance.

    El estado de la instancia que se está parcheando varía de la siguiente manera:

    • Mientras RDS aplica parches en la base de datos, el estado de la instancia de base de datos cambia a Actualización.

    • Mientras RDS aplica parches en el SO, el estado de la instancia de base de datos cambia a Modificación.

    Cuando la instancia de base de datos tiene el estado Disponible, la aplicación de parches ha finalizado.

  4. Confirme que su instancia de base de datos utiliza la nueva CEV ejecutando describe-db-instances.

Requisitos de las actualizaciones de RDS Custom para Oracle

Al actualizar su instancia de base de datos de RDS Custom para Oracle a una CEV de destino, asegúrese de cumplir los siguientes requisitos:

  • La CEV de destino a la que va a realizar la actualización debe existir.

  • Debe actualizar el sistema operativo o la base de datos en una sola operación. No es posible actualizar el sistema operativo y la base de datos en una sola llamada a la API.

  • La CEV de destino debe utilizar los ajustes de los parámetros de instalación que figuran en el manifiesto de la CEV actual. Por ejemplo, no puede actualizar una base de datos que use el directorio raíz de Oracle predeterminado por una CEV que use un directorio raíz de Oracle no predeterminado.

  • La CEV de destino debe usar una nueva versión secundaria de la base de datos, no una nueva versión principal. Por ejemplo, no puede actualizar de una CEV de Oracle Database 12c a una CEV de Oracle Database 19c. Sin embargo, puede actualizar de la versión 21.0.0.0.ru-2023-04.rur-2023-04.r1 a la versión 21.0.0.0.ru-2023-07.rur-2023-07.r1.

  • Para las actualizaciones del sistema operativo, la CEV de destino debe usar una AMI diferente, pero tener la misma versión principal.

Consideraciones de las actualizaciones de base de datos de RDS Custom for Oracle

Si tiene previsto actualizar la base de datos, tenga en cuenta lo siguiente:

  • Al actualizar los binarios de base de datos en la instancia de base de datos principal, RDS Custom para Oracle actualiza las réplicas de lectura automáticamente. Al actualizar el sistema operativo, debe actualizar las réplicas de lectura manualmente.

  • Al actualizar una base de datos de contenedores (CDB) a una nueva versión de base de datos, RDS Custom for Oracle comprueba que todas las PDB estén abiertas o puedan abrirse. Si no se cumplen estas condiciones, RDS Custom detiene la comprobación y devuelve la base de datos a su estado original sin intentar la actualización. Si se cumplen las condiciones, RDS Custom aplica el parche primero a la raíz de CDB y, a continuación, a todas las demás PDB (incluida PDB$SEED) en paralelo.

    Una vez finalizada la aplicación de parches, RDS Custom intenta abrir todas las PDB. Si alguna PDB no se abre, recibirá el siguiente evento: The following PDBs failed to open: list-of-PDBs. Si RDS Custom no logra aplicar el parche a la raíz de CDB ni a ninguna PDB, la instancia pasa al estado PATCH_DB_FAILED.

  • Es posible que desee realizar, al mismo tiempo, una actualización de versión de base de datos importante y una conversión de una versión que no sea de CDB a CDB. En este caso, le recomendamos que proceda de la siguiente manera:

    1. Cree una nueva instancia de base de datos de RDS Custom for Oracle que utilice la arquitectura multitenencia de Oracle.

    2. Conecte una base de datos que no sea CDB a su raíz de CDB y créela como PDB. Asegúrese de que la versión que no es de CDB sea la misma que la de su CDB.

    3. Convierta la PDB ejecutando el script SQL noncdb_to_pdb.sql de Oracle.

    4. Valide su instancia de CDB.

    5. Actualice su instancia de CDB.

Consideraciones de las actualizaciones del sistema operativo de RDS Custom for Oracle

Al planificar una actualización del sistema operativo, tenga en cuenta lo siguiente:

  • No puede proporcionar su propia AMI para utilizarla en una CEV de RDS Custom for Oracle. Puede especificar o bien la AMI predeterminada o bien una AMI que haya utilizado anteriormente una CEV de RDS Custom for Oracle.

    nota

    RDS Custom for Oracle lanza una nueva AMI predeterminada cuando se descubren vulnerabilidades y exposiciones comunes. No hay un cronograma fijo disponible ni garantizado. RDS Custom for Oracle suele publicar una nueva AMI predeterminada cada 30 días.

  • Al actualizar el sistema operativo en la instancia de base de datos principal, debe actualizar las réplicas de lectura asociadas de forma manual.

  • Reserve suficiente capacidad de computación de Amazon EC2 para el tipo de instancia en su zona de disponibilidad antes de empezar a aplicar los parches al sistema operativo.

    Al crear una reserva de capacidad, se especifica la zona de disponibilidad, el número de instancias y los atributos de la instancia (lo que incluye el tipo de instancia). Por ejemplo, si su instancia de base de datos utiliza la instancia de EC2 subyacente de tipo r5.large, le recomendamos que reserve la capacidad de EC2 para r5.large en su zona de disponibilidad. Durante la aplicación de parches al sistema operativo, RDS Custom crea un nuevo host de tipo db.r5.large, que puede quedarse atascado si la zona de disponibilidad carece de capacidad de EC2 para este tipo de instancia. Al reservar la capacidad de EC2, se reduce el riesgo de bloqueo de parches por las limitaciones de capacidad. Para obtener más información, consulte On-Demand Capacity Reservations en la Guía del usuario de Amazon EC2.

  • Realice una copia de seguridad de la instancia de base de datos antes de actualizar su sistema operativo. La actualización elimina los datos del volumen raíz y cualquier personalización del sistema operativo existente.

  • En el modelo de responsabilidad compartida, usted es responsable de mantener su sistema operativo actualizado. RDS Custom for Oracle no exige qué parches debe aplicar a su sistema operativo. Si su RDS Custom for Oracle funciona, puede utilizar la AMI asociada a este CEV de forma indefinida.

Visualización de los destinos de actualización de CEV válidos para las instancias de base de datos de RDS Custom para Oracle

Puede ver las CEV existentes en la página Custom engine versions (Versiones del motor personalizadas) de la AWS Management Console.

También puede utilizar el comando describe-db-engine-versions de la AWS CLI para buscar CEV válidas y usarlas al actualizar las instancias de base de datos, como se muestra en el siguiente ejemplo. En este ejemplo, se da por sentado que ha creado una instancia de base de datos con la versión 19.my_cev1 del motor y que existen las versiones de actualización 19.my_cev2 y 19.my_cev.

aws rds describe-db-engine-versions --engine custom-oracle-ee --engine-version 19.my_cev1

La salida se parece a la siguiente. El campo ImageId muestra el ID de la AMI.

{ "DBEngineVersions": [ { "Engine": "custom-oracle-ee", "EngineVersion": "19.my_cev1", ... "Image": { "ImageId": "ami-2345", "Status": "active" }, "DBEngineVersionArn": "arn:aws:rds:us-west-2:123456789012:cev:custom-oracle-ee/19.my_cev1/12a34b5c-67d8-90e1-2f34-gh56ijk78lm9" "ValidUpgradeTarget": [ { "Engine": "custom-oracle-ee", "EngineVersion": "19.my_cev2", "Description": "19.my_cev2 description", "AutoUpgrade": false, "IsMajorVersionUpgrade": false }, { "Engine": "custom-oracle-ee", "EngineVersion": "19.my_cev3", "Description": "19.my_cev3 description", "AutoUpgrade": false, "IsMajorVersionUpgrade": false } ] ...

Actualización de una instancia de base de datos de RDS Custom para Oracle

A fin de actualizar su instancia de base de datos para RDS Custom para Oracle, modifíquela para utilizar una nueva CEV. Esta CEV puede contener binarios de base de datos nuevos o una AMI nueva. Si desea actualizar la base de datos y el sistema operativo, debe llevar a cabo dos actualizaciones independientes.

nota

Si actualiza la base de datos, RDS Custom actualiza automáticamente las réplicas de lectura después de actualizar la instancia de base de datos principal. Al actualizar el sistema operativo, debe actualizar las réplicas manualmente.

Antes de empezar, revise Requisitos de las actualizaciones de RDS Custom para Oracle y Consideraciones de las actualizaciones de base de datos de RDS Custom for Oracle.

Para modificar una instancia de base de datos de RDS Custom para Oracle
  1. Inicie sesión en la AWS Management Console y abra la consola de Amazon RDS en https://console.aws.amazon.com/rds/.

  2. En el panel de navegación, elija Bases de datos y, luego, elija la instancia de base de datos de RDS Custom para Oracle que desea actualizar.

  3. Elija Modify (Modificar). Aparece la página Modify DB instance (Modificar instancia de base de datos).

  4. En Versión del motor de base de datos, elija una CEV diferente. Haga lo siguiente:

    • Si va a aplicar parches a la base de datos, asegúrese de que la CEV especifique binarios de base de datos distintos de los que utiliza la instancia de base de datos; además, compruebe que no especifique una AMI distinta de la AMI que utiliza actualmente la instancia de base de datos.

    • Si va a aplicar parches al sistema operativo, asegúrese de que la CEV especifique una AMI distinta de la que utiliza actualmente la instancia de base de datos; además, compruebe que no especifique binarios distintos de base de datos.

      aviso

      Al parchear el sistema operativo, se pierden los datos del volumen raíz y cualquier personalización existente del sistema operativo.

  5. Elija Continue (Continuar) para ver el resumen de las modificaciones.

    Para aplicar los cambios inmediatamente, elija Apply immediately (Aplicar inmediatamente).

  6. Si los cambios son correctos, elija Modify DB instance (Modificar instancia de base de datos). O bien, elija Back (Atrás) para editar los cambios o Cancel (Cancelar) para cancelarlos.

En los siguientes ejemplos, se muestran posibles situaciones de actualización. En los ejemplos, se da por sentado que ha creado una instancia de base de datos de RDS Custom para Oracle con las siguientes características:

  • Instancia de base de datos denominada my-custom-instance

  • CEV con el nombre 19.my_cev1

  • Oracle Database 19c con arquitectura no CDB

  • Oracle Linux 7.9 con AMI ami-1234

La última AMI proporcionada por el servicio es ami-2345. Puede encontrar las AMI ejecutando el comando de la CLI describe-db-engine-versions:

Actualización del SO

En este ejemplo, desea actualizar ami-1234 a ami-2345, que es la AMI más reciente proporcionada por el servicio. Como se trata de una actualización del sistema operativo, los binarios de base de datos para ami-1234 y ami-2345 deben ser los mismos. Se crea una nueva CEV con el nombre 19.my_cev2, basada en 19.my_cev1.

Para Linux, macOS o Unix:

aws rds create-custom-db-engine-version \ --engine custom-oracle-ee \ --engine-version 19.my_cev2 \ --description "Non-CDB CEV based on ami-2345" \ --kms-key-id key-name \ --source-custom-db-engine-version-identifer arn:aws:rds:us-west-2:123456789012:cev:custom-oracle-ee/19.my_cev1/12345678-ab12-1234-cde1-abcde123456789 \ --image-id ami-2345

En Windows:

aws rds create-custom-db-engine-version ^ --engine custom-oracle-ee ^ --engine-version 19.my_cev2 ^ --description "Non-CDB CEV based on ami-2345" ^ --kms-key-id key-name ^ --source-custom-db-engine-version-identifer arn:aws:rds:us-west-2:123456789012:cev:custom-oracle-ee/19.my_cev1/12345678-ab12-1234-cde1-abcde123456789 ^ --image-id ami-2345

Para actualizar una instancia de base de datos de RDS Custom, utilice el comando de la AWS CLI modify-db-instance con los siguientes parámetros:

  • --db-instance-identifier: especifique la instancia de base de datos de RDS Custom para Oracle que se va a actualizar.

  • --engine-version: especifique la CEV que tiene la nueva AMI.

  • --no-apply-immediately | --apply-immediately: especifique si desea realizar la actualización inmediatamente o esperar hasta el periodo de mantenimiento programado

En el siguiente ejemplo se actualiza my-custom-instance a la versión 19.my_cev2. Solo se actualiza el sistema operativo.

Para Linux, macOS o Unix:

aws rds modify-db-instance \ --db-instance-identifier my-custom-instance \ --engine-version 19.my_cev2 \ --apply-immediately

En Windows:

aws rds modify-db-instance ^ --db-instance-identifier my-custom-instance ^ --engine-version 19.my_cev2 ^ --apply-immediately

Actualización de la base de datos

En este ejemplo, desea aplicar el parche p35042068 de Oracle a su instancia de base de datos para RDS para Oracle. Como ha actualizado su sistema operativo en Actualización del SO, la instancia de base de datos está utilizando actualmente 19.my_cev2, que se basa en ami-2345. Ha creado una nueva CEV con el nombre 19.my_cev3 que también utiliza ami-2345, pero especifica un nuevo manifiesto JSON en la variable de entorno $MANIFEST. Por lo tanto, solo los binarios de la base de datos son diferentes en la nueva CEV y en la CEV que la instancia está utilizando actualmente.

Para Linux, macOS o Unix:

aws rds create-custom-db-engine-version \ --engine custom-oracle-ee \ --engine-version 19.my_cev3 \ --description "Non-CDB CEV with p35042068 based on ami-2345" \ --kms-key-id key-name \ --image-id ami-2345 \ --manifest $MANIFEST

En Windows:

aws rds create-custom-db-engine-version ^ --engine custom-oracle-ee ^ --engine-version 19.my_cev3 ^ --description "Non-CDB CEV with p35042068 based on ami-2345" ^ --kms-key-id key-name ^ --image-id ami-2345 ^ --manifest $MANIFEST

En el siguiente ejemplo, my-custom-instance se actualiza a la versión de motor 19.my_cev3. Solo se actualiza la base de datos.

Para Linux, macOS o Unix:

aws rds modify-db-instance \ --db-instance-identifier my-custom-instance \ --engine-version 19.my_cev3 \ --apply-immediately

En Windows:

aws rds modify-db-instance ^ --db-instance-identifier my-custom-instance ^ --engine-version 19.my_cev3 ^ --apply-immediately

Visualización de actualizaciones de base de datos pendientes para instancias de base de datos de RDS Custom

Puede ver las actualizaciones pendientes de base de datos para sus instancias de base de datos de Amazon RDS Custom; para ello, utilice el comando describe-db-instances o describe-pending-maintenance actions de la AWS CLI.

Sin embargo, este enfoque no funciona si utilizó la opción --apply-immediately o si la actualización está en curso.

El siguiente comando describe-db-instances muestra las actualizaciones pendientes de base de datos para my-custom-instance.

aws rds describe-db-instances --db-instance-identifier my-custom-instance

La salida se parece a la siguiente.

{ "DBInstances": [ { "DBInstanceIdentifier": "my-custom-instance", "EngineVersion": "19.my_cev1", ... "PendingModifiedValues": { "EngineVersion": "19.my_cev3" ... } } ] }

Solución de problemas del error de actualización de una instancia de base de datos de RDS Custom para Oracle

Si hay errores en la actualización de una instancia de base de datos de RDS Custom, se genera un evento de RDS y el estado de la instancia de base de datos pasa a upgrade-failed.

Puede ver este estado mediante el comando de la AWS CLI describe-db-instances, como se muestra en el ejemplo siguiente.

aws rds describe-db-instances --db-instance-identifier my-custom-instance

La salida se parece a la siguiente.

{ "DBInstances": [ { "DBInstanceIdentifier": "my-custom-instance", "EngineVersion": "19.my_cev1", ... "PendingModifiedValues": { "EngineVersion": "19.my_cev3" ... } "DBInstanceStatus": "upgrade-failed" } ] }

Tras un error de actualización, se bloquean todas las acciones de la base de datos, excepto aquellas con el fin de modificar la instancia de base de datos para llevar a cabo las siguientes tareas:

  • Volver a intentar la misma actualización

  • Pausa y reanudación de la automatización de RDS Custom

  • Recuperación a un momento dado (PITR)

  • Eliminación de una instancia de base de datos

nota

Si se ha pausado la automatización de la instancia de base de datos de RDS Custom, no puede volver a intentar la actualización hasta que reanude la automatización.

Las mismas acciones se aplican a un error de actualización tanto para una réplica de lectura administrada por RDS como para la principal.

Para obtener más información, consulte Solución de problemas de actualización de RDS Custom para Oracle.