

# Solución de problemas en Aurora DSQL
<a name="troubleshooting"></a>

**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

**Topics**
+ [Solución de problemas de errores de conexión](#troubleshooting-connections)
+ [Solución de problemas de errores de autenticación](#troubleshooting-authentication)
+ [Solución de problemas de errores de autorización](#troubleshooting-authorization)
+ [Solución de errores de SQL](#troubleshooting-sql)
+ [Solución de problemas de respuestas de control de simultaneidad](#troubleshooting-occ)
+ [Solución de problemas de las conexiones SSL/TLS](#troubleshooting-ssl-tls)

## Solución de problemas de errores de conexión
<a name="troubleshooting-connections"></a>

**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](https://www.postgresql.org/docs/release/14.0/), que no admite la indicación de nombre de servidor (SNI). La SNI es necesaria cuando se conecta a Aurora DSQL.

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
<a name="troubleshooting-authentication"></a>

**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](https://docs.aws.amazon.com/aurora-dsql/latest/userguide/authentication-authorization.html) y [AWS Identity and Access Management en Aurora DSQL](https://docs.aws.amazon.com/aurora-dsql/latest/userguide/security-iam.html).

** 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html#why-requests-are-signed).

**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](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html).

**IAM role must look like an IAM ARN**

Consulte [Identificadores IAM: ARN de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns) 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`, use `generate-db-connect-admin-auth-token` en lugar de `generate-db-connect-auth-token`.
+ Si ve `Wrong user to action mapping. user: {{myusername}}, action: DbConnectAdmin`, use `generate-db-connect-auth-token` en lugar de `generate-db-connect-admin-auth-token`.

## Solución de problemas de errores de autorización
<a name="troubleshooting-authorization"></a>

**Role <role> not supported**

Aurora DSQL no admite la operación `GRANT`. Consulte [Subconjuntos de comandos SQL admitidos en Aurora DSQL](https://docs.aws.amazon.com/aurora-dsql/latest/userguide/working-with-postgresql-compatibility-supported-sql-subsets.html).

**Cannot establish trust with role <role>**

Aurora DSQL no admite la operación `GRANT`. Consulte [Subconjuntos de comandos SQL admitidos en Aurora DSQL](https://docs.aws.amazon.com/aurora-dsql/latest/userguide/working-with-postgresql-compatibility-supported-sql-subsets.html).

**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](https://docs.aws.amazon.com/aurora-dsql/latest/userguide/using-database-and-iam-roles.html#using-database-and-iam-roles-custom-database-roles).

**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](https://docs.aws.amazon.com/aurora-dsql/latest/userguide/using-database-and-iam-roles.html#using-database-and-iam-roles-custom-database-roles-sql).

**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](https://www.postgresql.org/docs/current/sql-createrole.html) y [ALTER ROLE](https://www.postgresql.org/docs/current/sql-alterrole.html) en la documentación de PostgreSQL.

**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](authentication-authorization.md#authentication-authorization-revoke).

## Solución de errores de SQL
<a name="troubleshooting-sql"></a>

**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](https://docs.aws.amazon.com/aurora-dsql/latest/userguide/working-with-postgresql-compatibility-supported-sql-features.html).

**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](https://docs.aws.amazon.com/aurora-dsql/latest/userguide/working-with-create-index-async.html).

## Solución de problemas de respuestas de control de simultaneidad
<a name="troubleshooting-occ"></a>

**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](https://docs.aws.amazon.com/aurora-dsql/latest/userguide/working-with-concurrency-control.html).

**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
<a name="troubleshooting-ssl-tls"></a>

**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:

1. El certificado Amazon Root CA 1 está instalado correctamente. Consulte [Configuración de certificados SSL/TLS para conexiones de Aurora DSQL](configure-root-certificates.md) para obtener instrucciones sobre cómo validar e instalar este certificado. 

1. La variable de entorno `PGSSLROOTCERT` apunta al archivo de certificado correcto.

1. 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](configure-root-certificates.md#connect-windows).