¿Qué factores debo tener en cuenta al llevar a cabo una actualización de versión principal en Amazon RDS for Oracle?
Tengo una instancia de base de datos de Amazon Relational Database Service (Amazon RDS) que ejecuta Oracle. Quiero saber los factores que debo tener en cuenta cuando haga una actualización de versión principal.
Descripción breve
Cuando Amazon RDS comience a admitir una nueva versión de la base de datos Oracle, puede actualizar la versión existente de la base de datos Oracle al elegir una versión superior y, a continuación, actualizar a la versión principal. Una versión principal puede incluir actualizaciones, nuevas características, correcciones de seguridad, mejoras del optimizador y mejoras de rendimiento. Se recomienda probar la funcionalidad, la compatibilidad y el rendimiento de la aplicación en comparación con la nueva versión de la base de datos Oracle en entornos que no sean de producción antes de actualizar la base de datos de producción.
Nota: si recibe errores al ejecutar comandos de AWS CLI, asegúrese de que utiliza la versión más reciente de AWS CLI.
Resolución
Antes de la actualización
Estas son algunos aspectos que debe tener en cuenta antes de realizar la actualización de la versión principal:
Ruta de actualización: compruebe la ruta de actualización admitida de la versión actual de la base de datos Oracle a la versión principal deseada de la base de datos Oracle. Para verificar las rutas de actualización válidas, ejecute el siguiente comando de AWS Command Line Interface (AWS CLI).
Para Windows:
aws rds describe-db-engine-versions --engine engine-edition --engine-version current-engine-version --query "DBEngineVersions[*].ValidUpgradeTarget[?IsMajorVersionUpgrade==`true`].EngineVersion"
Para Linux, macOS o Unix:
aws rds describe-db-engine-versions --engine engine-edition --engine-version current-engine-version --query 'DBEngineVersions[*].ValidUpgradeTarget[?IsMajorVersionUpgrade==`true`].EngineVersion'
Asegúrese de sustituir los siguientes valores en los comandos anteriores:
- engine-edition por la modificación del motor de base de datos.
- current-engine-version por la versión actual del motor de base de datos.
Supongamos que tiene una instancia de Amazon RDS for Oracle 12.1.0.2.v10. Para obtener información sobre todas las versiones principales válidas a las que puede actualizar sus instancias de RDS for Oracle, ejecute el siguiente comando.
Para Windows:
aws rds describe-db-engine-versions --engine oracle-ee --engine-version 12.1.0.2.v10 --query "DBEngineVersions[*].ValidUpgradeTarget[?IsMajorVersionUpgrade==`true`].EngineVersion"
Para Linux, macOS o Unix:
aws rds describe-db-engine-versions --engine oracle-ee --engine-version 12.1.0.2.v10 --query 'DBEngineVersions[*].ValidUpgradeTarget[?IsMajorVersionUpgrade==`true`].EngineVersion'
Clase de instancia: compruebe que la clase de instancia actual es compatible con la versión principal que va a actualizar. Para obtener información sobre las clases de instancias admitidas por RDS for Oracle, consulte Clases de instancias de bases de datos Oracle admitidas. También puede verificar la clase de instancia admitida mediante la ejecución del siguiente comando de AWS CLI.
Para Windows:
aws rds describe-orderable-db-instance-options --engine engine-edition --engine-version new-engine-version --region example-region --query "OrderableDBInstanceOptions[*].DBInstanceClass"
Para Linux, macOS o Unix:
aws rds describe-orderable-db-instance-options --engine engine-edition --engine-version new-engine-version --region example-region --query 'OrderableDBInstanceOptions[*].DBInstanceClass'
Asegúrese de sustituir los siguientes valores en los comandos anteriores:
- engine-edition por la modificación del motor de base de datos.
- new-engine-version por la nueva versión a la que tenga previsto actualizar.
- example-region por la región que esté utilizando.
Por ejemplo, supongamos que quiere actualizar a una instancia de RDS for Oracle 12.2.0.1.ru-2020-10.r1. Para obtener información sobre las clases de instancia compatibles con la versión principal de una región específica, ejecute el siguiente comando:
aws rds describe-orderable-db-instance-options --engine oracle-ee --engine-version 12.2.0.1.ru-2020-10.rur-2020-10.r1 --region us-east-1 --query "OrderableDBInstanceOptions[*].DBInstanceClass"
Asegúrese de sustituir us-east-1 en el comando por la región de su elección.
Compatibilidad del cliente: compruebe que las versiones cliente o controlador de Oracle son compatibles con la nueva versión principal. Verifique si los controladores deben actualizarse junto con la actualización de la versión principal. Para obtener información sobre la interoperabilidad, consulte la documentación de Oracle Oracle Database Client and Oracle Database Interoperability.
Método de actualización: puede realizar la actualización de la versión principal de cualquiera de las siguientes formas:
- Modificar la instancia de RDS y aplicar la nueva versión principal.
Nota: este método implica cierto tiempo de inactividad. - Crear una nueva instancia de RDS con la versión principal y migrar los datos mediante AWS Data Migration Service (AWS DMS).
Nota: AWS DMS utiliza un enfoque minimalista para migrar datos y crea solo los objetos necesarios para migrar los datos de forma eficiente. AWS DMS crea tablas, claves principales y, en algunos casos, índices únicos, pero no crea ningún otro objeto que no sea necesario para migrar eficientemente los datos desde la fuente. Por ejemplo, AWS DMS no crea índices secundarios, restricciones de clave no primaria ni valores predeterminados de datos. Para obtener más información, consulte Vista general de AWS DMS.
Elija uno de estos métodos para realizar la actualización según su caso de uso.
Grupo de parámetros personalizados: si la instancia tiene un grupo de parámetros personalizados, cree un nuevo grupo de parámetros para la nueva versión principal y establezca los parámetros personalizados de forma adecuada. Para identificar los parámetros personalizados que utiliza actualmente, compare el grupo de parámetros personalizados existente con el grupo de parámetros predeterminados de la versión actual.
Grupo de opciones personalizadas: si la instancia tiene un grupo de opciones personalizados, cree un nuevo grupo de opciones personalizadas para la versión principal. Si tiene opciones persistentes o permanentes, como zona horaria o Cifrado de datos transparente de Oracle, del grupo de opciones, las mismas opciones persistentes o permanentes deben incluirse en el nuevo grupo de opciones personalizadas. Para actualizar la versión del archivo de zona horaria a la última versión disponible en la instancia de base de datos junto con la actualización de la versión principal, agregue la opción TIMEZONE_FILE_AUTOUPGRADE al nuevo grupo de opciones personalizadas.
Estadísticas de diccionario: la recopilación de estadísticas de diccionario y las estadísticas de objetos fijos puede reducir el tiempo de inactividad de la instancia durante la actualización. Para recopilar las estadísticas, ejecute las siguientes consultas:
SQL> EXEC DBMS_STATS.GATHER_DICTIONARY_STATS; SQL> EXEC DBMS_STATS.GATHER_FIXED_OBJECTS_STATS;
Objetos no válidos: compruebe y asegúrese de que la base de datos no contenga objetos no válidos. Para hacerlo, ejecute la siguiente consulta:
SQL> SELECT OWNER, STATUS, COUNT (*) FROM DBA_OBJECTS GROUP BY OWNER, STATUS;
Si se encuentran objetos no válidos, verifique qué objeto no es válido mediante la ejecución de la siguiente consulta:
SQL> SELECT OWNER, OBJECT_NAME, OBJECT_TYPE FROM DBA_OBJECTS WHERE STATUS != 'VALID';
Para compilar todos los objetos no válidos del esquema, ejecute la siguiente consulta:
SQL> EXEC DBMS_UTILITY.compile_schema(schema => 'ADMIN', compile_all => false);
Asegúrese de sustituir ADMIN en la consulta por el nombre del esquema.
Seguimientos de auditoría: asegúrese de que los seguimientos de auditoría no sean prolongados. Las verificaciones y actualizaciones previas a la actualización pueden tardar más tiempo con seguimientos de auditoría prolongados. Para truncar los seguimientos de auditoría, consulte ¿Cómo trunco la tabla sys.aud$ en mi instancia de base de datos de Amazon RDS que ejecuta Oracle? También puede utilizar el procedimiento DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL para eliminar los seguimientos de auditoría.
Contraseñas: compruebe que no esté utilizando una versión anterior de contraseñas mediante la ejecución de la siguiente consulta:
SQL> SELECT USERNAME,PASSWORD_VERSIONS FROM DBA_USERS;
En los resultados de la consulta, si descubre que un usuario utiliza solo la versión 10g de las contraseñas, verifique si se puede volver a crear el usuario con una versión más reciente de la contraseña. Si no puede corregir la versión de la contraseña de usuario, defina el parámetro SQLNET.ALLOWED_LOGON_VERSION_SERVER de forma adecuada para evitar errores de conexión.
Cuando se define el parámetro sqlnetora.sqlnet.allowed_logon_version_server en una instancia de RDS for Oracle, el parámetro indica la versión mínima del protocolo de autenticación permitida al conectarse al servidor de base de datos. Una configuración de 8 permite la mayoría de las versiones de contraseñas y permite cualquier combinación de los valores DBA_USERS.PASSWORD_VERSIONS 10G, 11G y 12C.
Cuando se define el parámetro sqlnetora.sqlnet.allowed_logon_version_client en una instancia de RDS for Oracle, el parámetro indica el protocolo de autenticación mínimo que debe utilizarse cuando la base de datos actúa como cliente.
Para obtener más información, consulte la documentación de Oracle sobre Verificación de cuentas que utilizan una versión de contraseña que no distingue entre mayúsculas y minúsculas.
DBMS_JOB: el paquete DBMS_JOB se suspende con la actualización de la base de datos Oracle 12c versión 2. Si va a actualizar a la versión 19c, se recomienda convertir todos los trabajos DBMS_JOB en trabajos DBMS_SCHEDULER antes de la actualización. Durante la actualización, Oracle convierte los trabajos DBMS_JOB en trabajos DBMS_SCHEDULER. Para obtener más información, consulte la documentación de Oracle para Soporte para DBMS_JOB. Si tiene un gran número de entradas de DBMS_JOB, la actualización puede tardar más.
FreeStorageSpace: compruebe que la instancia no esté cerca de su capacidad de almacenamiento. Asegúrese de tener suficiente espacio de almacenamiento libre disponible para que la actualización se complete correctamente mediante la verificación de la métrica de CloudWatch de FreeStorageSpace. Para obtener más información, consulte ¿Cómo puedo crear alarmas de CloudWatch para monitorear el espacio de almacenamiento libre de Amazon RDS y prevenir problemas de almacenamiento completo?
Acciones de mantenimiento: verifique si la instancia tiene alguna acción de mantenimiento pendiente en la consola de Amazon RDS. Estas acciones se aplican durante la ventana de actualización. En el caso de las instancias Multi-AZ, si no se necesitan actualizaciones del sistema operativo, las actualizaciones principales y en espera se producen al mismo tiempo. Si se requieren actualizaciones del sistema operativo, Amazon RDS aplica la actualización tal y como se describe en Actualizaciones de Oracle en una implementación Multi-AZ.
Instantánea manual: cree una instantánea manual de la instancia de la base de datos de RDS for Oracle por los siguientes motivos:
- La instantánea se puede utilizar para volver a la versión anterior, siempre y cuando la versión sea compatible con Amazon RDS.
- Por lo general, se crea una instantánea automatizada como parte del proceso de actualización de la versión principal. Dado que las instantáneas de Amazon Elastic Block Store (Amazon EBS) son progresivas, la nueva instantánea tiene menos cambios en la copia de seguridad. Por lo tanto, la creación de una instantánea manual podría reducir el tiempo necesario para crear la instantánea automatizada y el tiempo total dedicado a completar la actualización.
Configuración actual: ejecute la siguiente consulta para ver la configuración actual de la instancia y guardar el resultado. El resultado proporciona información sobre el grupo de opciones, el grupo de parámetros, los grupos de seguridad y las etiquetas adjuntos a la instancia actual de RDS for Oracle. Para revertir y realizar una restauración a partir de una instantánea o realizar una recuperación a un momento dado, utilice la información que obtenga de este comando:
> aws rds describe-db-instances --db-instance-identifier example-instance-name --region example-region
Asegúrese de sustituir los siguientes valores en la consulta:
- example-instance-name por el nombre de la instancia de RDS for Oracle.
- example-region por la región de su elección.
Deshacer el espacio de tabla: asegúrese de que Deshacer espacio de tabla esté configurado con el tamaño correcto para evitar operaciones de cambio de tamaño durante la actualización.
Desencadenadores: ejecute la siguiente consulta para enumerar los desencadenadores de inicio de sesión, cierre de sesión e inicio:
SQL> SELECT OWNER, TRIGGER_NAME, TRIGGER_TYPE, TRIGGERING_EVENT, TABLE_OWNER, STATUS, ACTION_TYPE, TRIGGER_BODY FROM DBA_TRIGGERS WHERE TRIGGERING_EVENT LIKE '%LOGO%' or TRIGGERING_EVENT LIKE '%STARTUP%';
Verifique si los desencadenadores son válidos y funcionales. Aunque el desencadenador sea válido y se compile correctamente, puede generar un error en tiempo de ejecución e interferir con el reinicio de la base de datos. Verifique si hay desencadenadores de inicio de sesión, cierre de sesión o inicio que generen un error cuando se ejecutan. Para desactivar estos desencadenadores, ejecute las siguientes consultas:
SQL> ALTER TRIGGER EXAMPLE-OWNER.EXAMPLE-TRIGGER DISABLE;
Asegúrese de sustituir los siguientes valores en la consulta:
- EXAMPLE-OWNER por el nombre del esquema en el que creó el desencadenador.
- EXAMPLE-TRIGGER por el nombre del desencadenador.
Por ejemplo:
--To disable AUDIT_USERS trigger in MYADMIN schema SQL> ALTER TRIGGER MYADMIN.AUDIT_USERS DISABLE;
Durante la actualización
Después de iniciar la actualización, para monitorear el progreso de la actualización, verifique lo siguiente en la consola de Amazon RDS:
- Registro de alertas ubicado en la pestaña Registros y eventos de la instancia
- Eventos recientes que se encuentran en la pestaña Registros y eventos de la instancia
Tras la actualización
- Ejecute las siguientes consultas para comprobar la versión del parche después de conectarse a la base de datos:
SQL> SELECT * FROM sys.registry$history; SQL> SELECT INSTALL_ID,PATCH_ID,ACTION,STATUS,ACTION_TIME,DESCRIPTION FROM DBA_REGISTRY_SQLPATCH;
- Amazon RDS actualiza los archivos lsinventory-dbv.txt una hora después de aplicar el parche. Puede descargar este archivo desde la pestaña Registros y eventos de la instancia de la consola de Amazon RDS. Compruebe los parches aplicados mediante la lectura del archivo Isinventory-dbv.txt.
- Ejecute las siguientes consultas para recopilar estadísticas de diccionario y estadísticas de objetos fijos:
SQL> EXEC DBMS_STATS.GATHER_DICTIONARY_STATS; SQL> EXEC DBMS_STATS.GATHER_FIXED_OBJECTS_STATS;
- Ejecute la siguiente consulta para comprobar que el número de objetos válidos y no válidos coincida con los objetos anteriores a la actualización:
SQL> SELECT OWNER, STATUS, COUNT(*) from DBA_OBJECTS GROUP BY OWNER, STATUS;
- Ejecute la siguiente consulta para compilar todos los objetos no válidos del esquema:
SQL> EXEC DBMS_UTILITY.compile_schema(schema => 'ADMIN', compile_all => false);
- Si tiene problemas de rendimiento de las consultas después de la actualización debido a las características del optimizador de la nueva versión principal, considere la posibilidad de utilizar el parámetro OPTIMIZER_FEATURES_ENABLE. Puede modificar este parámetro por sesión y sistema. Por ejemplo, si actualiza la base de datos de la versión 18.1 a la versión 19.1, pero desea mantener el comportamiento del optimizador de la versión 18.1, puede hacerlo al establecer el valor del parámetro OPTIMIZER_FEATURES_ENABLE en 18.1.0.
Información relacionada
Contenido relevante
- OFICIAL DE AWSActualizada hace 2 años
- OFICIAL DE AWSActualizada hace 3 años
- OFICIAL DE AWSActualizada hace 3 años
- ¿Qué factores afectan a mi tiempo de inactividad o al rendimiento de mi base de datos en Amazon RDS?OFICIAL DE AWSActualizada hace 3 años