Solución de problemas en Aurora DSQL
nota
En los siguientes temas se proporcionan consejos para la solución de problemas y errores que puede encontrar al utilizar Aurora DSQL. Si encuentra un problema que no figura en esta lista, póngase en contacto con el servicio de asistencia de AWS
Solución de problemas de errores de conexión
error: código de error SSL no reconocido: 6 o no se puede aceptar la conexión, no se recibió sni
Puede que esté utilizando una versión de psql anterior a la versión 14
Puede comprobar la versión de cliente con psql --version.
error: NetworkUnreachable
Es posible que un error NetworkUnreachable durante los intentos de conexión indique que el cliente no admite conexiones IPv6, en lugar de señalar un problema real de red. Este error suele producirse en instancias que solo utilizan IPv4 debido a la forma en que los clientes de PostgreSQL gestionan las conexiones de doble pila. Cuando un servidor admite el modo de doble pila, estos clientes primero resuelven los nombres de host a direcciones IPv4 e IPv6. Primero intentan establecer una conexión IPv4 y, a continuación, prueban con IPv6 si la conexión inicial produce un error. Si el sistema no es compatible con IPv6, verá un error general NetworkUnreachable en lugar de un mensaje claro que diga “IPv6 no es compatible”.
Solución de problemas de errores de autenticación
Error de autenticación de IAM para el usuario "..."
Cuando genera un token de autenticación de IAM de Aurora DSQL, la duración máxima que puede establecer es de una semana. Después de una semana, no podrá autenticarse con ese token.
Además, Aurora DSQL rechaza la solicitud de conexión si el rol asumido ha caducado. Por ejemplo, si intenta conectarse con un rol de IAM temporal aunque el token de autenticación no haya caducado, Aurora DSQL rechazará la solicitud de conexión.
Para obtener más información sobre cómo funciona IAM con Aurora DSQL, consulte Descripción de la autenticación y autorización para Aurora DSQL y AWS Identity and Access Management en Aurora DSQL.
An error occurred (InvalidAccessKeyId) when calling the GetObject operation: The AWS Access Key ID you provided does not exist in our records
IAM ha rechazado la solicitud. Para obtener más información, consulte Por qué se firman las solicitudes.
IAM role <role> does not exist
Aurora DSQL no ha podido encontrar el rol de IAM. Para obtener más información, consulte Roles de IAM.
IAM role must look like an IAM ARN
Consulte Identificadores IAM: ARN de IAM para obtener más información.
Asignación incorrecta entre usuario y acción
Este error se produce cuando el tipo de token de autenticación no coincide con el rol de la base de datos. Aurora DSQL utiliza dos tipos de tokens: DbConnectAdmin para el rol de admin y DbConnect para roles de base de datos personalizados.
-
Si ve
Wrong user to action mapping. user: admin, action: DbConnect, usegenerate-db-connect-admin-auth-tokenen lugar degenerate-db-connect-auth-token. -
Si ve
Wrong user to action mapping. user:, usemyusername, action: DbConnectAdmingenerate-db-connect-auth-tokenen lugar degenerate-db-connect-admin-auth-token.
Solución de problemas de errores de autorización
Role <role> not supported
Aurora DSQL no admite la operación GRANT. Consulte Subconjuntos de comandos SQL admitidos en Aurora DSQL.
Cannot establish trust with role <role>
Aurora DSQL no admite la operación GRANT. Consulte Subconjuntos de comandos SQL admitidos en Aurora DSQL.
El rol <rol> no existe
Aurora DSQL no ha podido encontrar el usuario de base de datos especificado. Consulte Autorización de roles personalizados de base de datos para conectarse a un clúster.
ERROR: permission denied to grant IAM trust with role <role>
Para conceder acceso a un rol de base de datos, debe estar conectado al clúster con el rol de administrador. Para obtener más información, consulte Autorización de roles de base de datos para utilizar SQL en una base de datos.
ERROR: role <role> must have the LOGIN attribute
Todos los roles de base de datos que cree deben tener el permiso LOGIN.
Para solucionar este error, asegúrese de que ha creado el rol de PostgreSQL con el permiso LOGIN. Para obtener más información, consulte CREATE ROLE
ERROR: role <role> cannot be dropped because some objects depend on it
Aurora DSQL devuelve un error si descarta un rol de base de datos con una relación de IAM hasta que revoque la relación mediante AWS IAM REVOKE. Para obtener más información, consulte Revocación de la autorización.
Solución de errores de SQL
Error: Not supported
Aurora DSQL no admite todos los dialectos basados en PostgreSQL. Para saber lo que se admite, consulte Características de PostgreSQL admitidas en Aurora DSQL.
Error: use CREATE INDEX ASYNC instead
Para crear un índice en una tabla con filas existentes, debe utilizar el comando CREATE INDEX
ASYNC. Para obtener más información, consulte Creación de índices de forma asíncrona en Aurora DSQL.
Error: el servidor no está disponible (SQLSTATE XX000)
Un error de servidor no disponible indica una condición de servicio temporal. La conexión permanece activa, por lo que puede volver a intentarlo sin volver a conectarse.
Vuelva a intentar realizar siempre toda la transacción desde el principio, incluido el comando COMMIT, con un retroceso exponencial y una fluctuación.
Resultado de confirmación incierto
Si el error se produce al confirmar una transacción, es posible que la transacción se haya confirmado aunque la aplicación haya recibido un error.
Diseñe las transacciones para que sean idempotentes siempre que sea posible. En el caso de las transacciones no idempotentes, confirme si Aurora DSQL aplicó la escritura antes de volver a intentar la transacción.
Supervise la tasa de errores de no disponibilidad del servidor. Espere reintentos ocasionales. Si los errores se mantienen o afectan al rendimiento de la aplicación, póngase en contacto con AWS Support.
Solución de problemas de respuestas de control de simultaneidad
OC000 “ERROR: cambie conflictos con otra transacción (OC000)”
Esta transacción intentó modificar las mismas tuplas que otra transacción simultánea. Esto indica que hay contención en las tuplas modificadas. Para obtener más información, consulte Control de simultaneidad en Aurora DSQL.
OC001 “ERROR: otra transacción ha actualizado el esquema (OC001)”
La sesión tenía una copia en caché del catálogo de esquemas en la versión V1, cargada en el tiempo T1.
Una transacción independiente actualizó el catálogo a la versión V2 en el tiempo T2.
El tiempo T3, cuando la sesión ejecuta una consulta, detecta que está atrasada e intenta rebasarla en los nuevos cambios del catálogo. En algunas situaciones, el rebase no se puede realizar correctamente y Aurora DSQL devuelve una respuesta OC001 40001. El tiempo entre T2 y T3 puede oscilar entre milisegundos y minutos, ya que los procesadores de consultas detectan los cambios en el catálogo de forma reactiva en lugar de recibir actualizaciones proactivas.
Cuando se reintenta desde la misma sesión, Aurora DSQL actualiza la memoria caché del catálogo. La transacción reintentada utiliza el catálogo V2 y se realiza correctamente siempre que no se hayan producido más cambios en el catálogo desde T2.
Solución de problemas de las conexiones SSL/TLS
Error de SSL: no se pudo verificar el certificado
Este error indica que el cliente no puede verificar el certificado del servidor. Asegúrese de que:
-
El certificado Amazon Root CA 1 está instalado correctamente. Consulte Configuración de certificados SSL/TLS para conexiones de Aurora DSQL para obtener instrucciones sobre cómo validar e instalar este certificado.
-
La variable de entorno
PGSSLROOTCERTapunta al archivo de certificado correcto. -
El archivo de certificado tiene los permisos correctos.
Código de error SSL no reconocido: 6
Este error se produce con los clientes de PostgreSQL anteriores a la versión 14. Actualice el cliente de PostgreSQL a la versión 17 para resolver este problema.
Error de SSL: esquema no registrado (Windows)
Este es un problema conocido con el cliente psql de Windows cuando se utilizan certificados del sistema. Utilice el método del archivo de certificado descargado que se describe en las instrucciones de Conexión desde Windows.
Solución de problemas de métricas faltantes en la consola de Información sobre las bases de datos de Amazon CloudWatch
El clúster de Aurora DSQL no aparece en la consola de Información sobre las bases de datos de Amazon CloudWatch
Información sobre las bases de datos de Amazon CloudWatch completa su selector de clústeres con los datos de actividad de información de bases de datos de Aurora DSQL. Para obtener más información acerca de la información de base de datos de Aurora DSQL consulte Supervisión de los clústeres de Aurora DSQL con información de base de datos de Aurora DSQL. Un clúster se vuelve visible en la información de base de datos solo después de que el clúster haya generado una carga en los últimos ocho días capturada por el muestreador del historial de sesiones activas (DASH) de Aurora DSQL.
DASH utiliza un muestreo de 1 segundo, lo que puede pasar por alto transacciones rápidas y poco frecuentes que se completan en milisegundos.
Siga estos pasos para confirmar si esto explica lo que está viendo:
-
Confirme que ha realizado transacciones en el clúster en los últimos ocho días. Un clúster que ha estado inactivo durante más tiempo no aparece en la información de base de datos, independientemente de cómo lo haya utilizado anteriormente. Para comprobar la actividad reciente, consulte la métrica
TotalTransactionsdel clúster en CloudWatch. Para obtener más información sobre esta métrica, consulte Observabilidad y rendimiento. -
Ejecute una carga de trabajo sostenida en el clúster para que al menos una sesión permanezca activa. Los ejemplos incluyen un script de prueba de carga, un lote de inserciones o una consulta de larga duración. Como DASH toma muestras una vez por segundo, es posible que no se capture una carga de trabajo breve, por lo que cuanto más continua sea la actividad, más probabilidades hay de que aparezca.
-
Espere unos minutos después de ejecutar esa carga de trabajo y, a continuación, actualice la consola de información de base de datos.
-
Compruebe que está viendo la misma región de AWS y cuenta en las que se creó el clúster. La selección de una región o cuenta incorrectas es una razón común por la que parece que falta un clúster.