View a markdown version of this page

Ejecución de comprobaciones previas de actualizaciones de versiones secundarias en Amazon RDS para Oracle - Amazon Relational Database Service

Ejecución de comprobaciones previas de actualizaciones de versiones secundarias en Amazon RDS para Oracle

Antes de que Amazon RDS para Oracle realice una actualización de la versión secundaria de la base de datos, comprueba que la instancia de base de datos se encuentra en un estado que permite finalizar la actualización. Si una comprobación detecta un problema, no se puede continuar con la actualización hasta que se resuelva.

Puede realizar estas comprobaciones usted mismo en cualquier momento sin necesidad de iniciar una actualización. De esta forma, podrá encontrar y corregir los problemas antes del periodo de mantenimiento. Para ejecutar las comprobaciones, utilice el procedimiento de Amazon RDS rdsadmin.rdsadmin_precheck_tasks.precheck_minor_upgrade. La comprobación previa es de solo lectura. No cambia los datos ni la configuración.

El procedimiento devuelve un ID de tarea. La comprobación previa escribe sus resultados en un archivo de registro llamado dbtask-task_id.log en el directorio BDUMP. Para descargar el archivo de registro, consulte Descarga de un archivo de registro de base de datos.

nota

Ejecute la comprobación previa en la instancia de base de datos principal. No se admite la ejecución de comprobaciones previas en una réplica de lectura.

Ejecución de comprobaciones previas de actualización de una versión secundaria

Para comprobar si la instancia de base de datos está lista para una actualización de una versión secundaria de base de datos, ejecute el procedimiento rdsadmin.rdsadmin_precheck_tasks.precheck_minor_upgrade. El procedimiento no acepta parámetros. La siguiente consulta inicia la comprobación previa y devuelve el ID de tarea.

SQL> SELECT rdsadmin.rdsadmin_precheck_tasks.precheck_minor_upgrade() AS task_id FROM DUAL; TASK_ID ------------------ 1784924903020-9

También puede almacenar el ID de la tarea en una variable de cliente SQL y utilizar la variable en otras instrucciones.

SQL> VAR task_id VARCHAR2(80); SQL> EXEC :task_id := rdsadmin.rdsadmin_precheck_tasks.precheck_minor_upgrade(); PL/SQL procedure successfully completed.

La comprobación previa se ejecuta en segundo plano. Finaliza cuando la última línea del registro es The task finished successfully. o The task failed.

Visualización de los resultados de verificación previa

Para leer el archivo de registro, ejecute el procedimiento rdsadmin.rds_file_util.read_text_file de Amazon RDS. Incluya el ID de la tarea en el nombre de archivo. El ejemplo siguiente muestra una comprobación previa en la que ninguna comprobación encontró ningún problema.

SQL> SELECT * FROM TABLE(rdsadmin.rds_file_util.read_text_file('BDUMP', 'dbtask-'||:task_id||'.log')); TEXT ------------------------------------------------------------------------------------------------------------------------- 2026-08-28 18:30:20.461 UTC [INFO ] Starting minor version upgrade precheck... 2026-08-28 18:30:20.461 UTC [INFO ] NOTE: This precheck validates against the current engine version's known checks. Target-version-specific checks (e.g., autoupgrade) are not included. 2026-08-28 18:30:20.470 UTC [INFO ] CHECK: FreeStorageSpace - PASSED 2026-08-28 18:30:20.515 UTC [INFO ] CHECK: SystemTablespace - PASSED 2026-08-28 18:30:20.523 UTC [INFO ] CHECK: AuditTablespace - PASSED 2026-08-28 18:30:20.541 UTC [INFO ] CHECK: RedoApplyLag - SKIPPED: the DB instance has no read replicas 2026-08-28 18:30:20.612 UTC [INFO ] CHECK: MdsysUser - PASSED 2026-08-28 18:30:20.688 UTC [INFO ] CHECK: ConflictingSynonyms - PASSED 2026-08-28 18:30:20.731 UTC [INFO ] CHECK: WorkspaceManager - PASSED 2026-08-28 18:30:20.790 UTC [INFO ] CHECK: SchemaVersionRegistry - PASSED 2026-08-28 18:30:20.846 UTC [INFO ] CHECK: XmlDbSchema - PASSED 2026-08-28 18:30:20.903 UTC [INFO ] CHECK: ApexStatus - PASSED 2026-08-28 18:30:20.955 UTC [INFO ] CHECK: CtxsysSequences - PASSED 2026-08-28 18:30:21.304 UTC [INFO ] CHECK: InvalidSystemObjects - PASSED 2026-08-28 18:30:21.549 UTC [INFO ] CHECK: InvalidTriggers - PASSED 2026-08-28 18:30:21.601 UTC [INFO ] CHECK: PendingDistributedTransactions - PASSED 2026-08-28 18:30:21.602 UTC [INFO ] Summary: 13 passed, 1 skipped, 0 warnings, 0 errors, 0 blockers 2026-08-28 18:30:21.602 UTC [INFO ] Result: PASSED 2026-08-28 18:30:21.602 UTC [INFO ] The task finished successfully.

Para mostrar los archivos en el directorio de BDUMP, ejecute la consulta siguiente.

SELECT * FROM table(rdsadmin.rds_file_util.listdir('BDUMP')) order by mtime;

Si necesita más información sobre el procedimiento de rdsadmin.rds_file_util.read_text_file, consulte Lectura de archivos de un directorio de instancia de base de datos.

Interpretación de los resultados de verificación previa

El registro tiene una línea CHECK: para cada comprobación, seguida de una línea Summary: y una línea Result:. Las comprobaciones que se ejecuten dependen de la versión del motor, la arquitectura de la base de datos y la configuración de la instancia de base de datos. En cada comprobación, se obtendrá uno de los siguientes resultados.

PASSED

La comprobación no encontró ningún problema.

FAILED [BLOCKER]

La comprobación detectó un problema que debe solucionarse antes de actualizar la versión secundaria de la base de datos. La línea describe el problema y qué hacer.

WARN

La comprobación encontró algo que debería revisar. Una advertencia no bloquea la actualización.

SKIPPED

La comprobación no se aplica a la instancia de base de datos. La línea da el motivo.

ERROR

La comprobación no ha podido terminar. Vuelva a ejecutar la comprobación previa.

Todas las comprobaciones se ejecutan, incluso cuando una comprobación anterior produce un error, por lo que una ejecución informa de todos los problemas detectados en la comprobación previa. Si alguna comprobación informa de FAILED [BLOCKER] o ERROR, el registro muestra Result: FAILED. De lo contrario, muestra Result: PASSED.

El ejemplo siguiente muestra una comprobación previa que encontró un problema.

SQL> SELECT * FROM TABLE(rdsadmin.rds_file_util.read_text_file('BDUMP', 'dbtask-'||:task_id||'.log')); TEXT ------------------------------------------------------------------------------------------------------------------------- 2026-08-28 18:57:39.105 UTC [INFO ] Starting minor version upgrade precheck... 2026-08-28 18:57:39.105 UTC [INFO ] NOTE: This precheck validates against the current engine version's known checks. Target-version-specific checks (e.g., autoupgrade) are not included. 2026-08-28 18:57:39.112 UTC [INFO ] CHECK: FreeStorageSpace - PASSED 2026-08-28 18:57:39.125 UTC [INFO ] CHECK: SystemTablespace - PASSED 2026-08-28 18:57:39.133 UTC [INFO ] CHECK: AuditTablespace - PASSED 2026-08-28 18:57:39.150 UTC [INFO ] CHECK: RedoApplyLag - SKIPPED: the DB instance has no read replicas 2026-08-28 18:57:39.221 UTC [INFO ] CHECK: MdsysUser - PASSED 2026-08-28 18:57:39.297 UTC [INFO ] CHECK: ConflictingSynonyms - PASSED 2026-08-28 18:57:39.340 UTC [INFO ] CHECK: WorkspaceManager - PASSED 2026-08-28 18:57:39.399 UTC [INFO ] CHECK: SchemaVersionRegistry - PASSED 2026-08-28 18:57:39.455 UTC [INFO ] CHECK: XmlDbSchema - PASSED 2026-08-28 18:57:39.512 UTC [INFO ] CHECK: ApexStatus - PASSED 2026-08-28 18:57:39.564 UTC [INFO ] CHECK: CtxsysSequences - PASSED 2026-08-28 18:57:39.913 UTC [INFO ] CHECK: InvalidSystemObjects - PASSED 2026-08-28 18:57:40.097 UTC [ERROR] CHECK: InvalidTriggers - FAILED [BLOCKER]: The DB instance has triggers that aren't valid. Fix or disable them. 2026-08-28 18:57:40.151 UTC [INFO ] CHECK: PendingDistributedTransactions - PASSED 2026-08-28 18:57:40.152 UTC [INFO ] Summary: 12 passed, 1 skipped, 0 warnings, 0 errors, 1 blocker 2026-08-28 18:57:40.152 UTC [INFO ] RDS can't upgrade the DB instance. Resolve the blockers listed above, and then try again. 2026-08-28 18:57:40.152 UTC [INFO ] Result: FAILED 2026-08-28 18:57:40.152 UTC [INFO ] The task failed.

Corrija todos los problemas que el registro informa y, a continuación, vuelva a ejecutar la comprobación previa para confirmar que la instancia de base de datos es correcta.

Qué comprueba la comprobación previa

En la siguiente tabla se muestra cada comprobación y la condición que la hace producir un error. Cuando se produce un error en una comprobación, su línea del registro describe el problema y cómo solucionarlo.

Check Produce un error cuando
FreeStorageSpace La instancia de base de datos tiene menos de 768 MB de almacenamiento libre.
SystemTablespace El espacio de tablas SYSTEM o SYSAUX tiene menos de 300 MB de espacio libre o no se puede extender automáticamente. En el caso de un CDB, la comprobación previa comprueba cada contenedor.
AuditTablespace El espacio de tablas de auditoría tiene menos de 300 MB de espacio libre o no se puede extender automáticamente.
RedoApplyLag El retraso de reaplicación de una réplica de lectura es de más de 5 minutos. Se omite si la instancia de base de datos no tiene réplicas de lectura.
MdsysUser El usuario de MDSYS no está mantenido por Oracle.
ConflictingSynonyms Los sinónimos utilizan nombres que reserva la nueva versión de Oracle.
WorkspaceManager Existen objetos de Workspace Manager (WMSYS).
SchemaVersionRegistry Una o más vistas de SCHEMA_VERSION_REGISTRY no son válidas.
XmlDbSchema Uno o más objetos de esquema de base de datos de XML no son válidos.
ApexStatus El componente APEX no se encuentra en un estado VALID.
CtxsysSequences El esquema CTXSYS no tiene las tres secuencias de Oracle Text (DR_ID_SEQ, MESG_ID_SEQ, THS_SEQ). Se saltó por un CDB.
InvalidSystemObjects Los objetos mantenidos por Oracle no son válidos.
InvalidTriggers Los desencadenantes no son válidos.
PendingDistributedTransactions Las transacciones distribuidas no se han resuelto.

Cuándo ejecutar la comprobación previa

Algunas condiciones cambian con el tiempo, como el almacenamiento gratuito y el retraso en la réplica de lectura. Ejecute la comprobación previa poco antes de realizar la actualización. Si la instancia de base de datos utiliza actualizaciones automáticas de versiones secundarias, ejecute la comprobación previa tras recibir la notificación de mantenimiento pendiente y antes del periodo de mantenimiento.

Si realiza un cambio que afecta a una condición comprobada, vuelva a ejecutar la comprobación previa. Por ejemplo, vuelva a ejecutarla después de agregar almacenamiento, cambiar un espacio de tabla, eliminar o volver a compilar objetos o resolver transacciones distribuidas. Los cambios que no afecten a estas condiciones no modifican el resultado. Por ejemplo, realizar una copia de seguridad o cambiar la clase de la instancia de base de datos no cambia el resultado.

nota

La comprobación previa ejecuta las comprobaciones de la versión actual del motor. No incluye comprobaciones que dependan de la versión a la que se actualice.