

# Solução de problemas no Aurora DSQL
<a name="troubleshooting"></a>

**nota**  
Os tópicos a seguir fornecem orientações para a solução de erros e problemas com os quais você pode se deparar ao usar o Aurora DSQL. Se encontrar um problema que não esteja listado aqui, entre em contato com o AWS Support.

**Topics**
+ [Solução de problemas de erros de conexão](#troubleshooting-connections)
+ [Solucionar erros de autenticação](#troubleshooting-authentication)
+ [Solucionar erros de autorização](#troubleshooting-authorization)
+ [Solucionar de erros de SQL](#troubleshooting-sql)
+ [Solucionar erros de OCC](#troubleshooting-occ)
+ [Solucionar problemas em conexões SSL/TLS](#troubleshooting-ssl-tls)

## Solução de problemas de erros de conexão
<a name="troubleshooting-connections"></a>

**erro: código de erro SSL não reconhecido: 6** ou **não foi possível aceitar a conexão, o sni não foi recebido**.

Você pode estar usando uma versão do psql anterior à [versão 14](https://www.postgresql.org/docs/release/14.0/), que não permite indicação de nome de servidor (SNI). O SNI é necessário para entrar no Aurora DSQL.

Você pode verificar a versão do cliente com `psql --version`.

**erro: NetworkUnreachable**

Um erro `NetworkUnreachable` durante as tentativas de conexão pode indicar que seu cliente não permite conexões IPv6, em vez de sinalizar um problema real na rede. Esse erro geralmente ocorre em instâncias somente IPv4 devido à forma como os clientes PostgreSQL lidam com conexões de pilha dupla. Quando um servidor permite o modo de pilha dupla, esses clientes primeiro resolvem os nomes de host para endereços IPv4 e IPv6. Eles tentam primeiro uma conexão IPv4 e, se a conexão inicial falhar, tentam IPv6. Se o seu sistema não permitir IPv6, você verá um erro geral `NetworkUnreachable` em vez de uma mensagem clara de “IPv6 not supported”.

## Solucionar erros de autenticação
<a name="troubleshooting-authentication"></a>

**IAM authentication failed for user "..."**

Quando você gera um token de autenticação do IAM para o Aurora DSQL, a duração máxima que você pode definir é uma semana. Após uma semana, você não pode se autenticar com esse token.

Além disso, o Aurora DSQL rejeitará sua solicitação de conexão se o perfil assumido tiver expirado. Por exemplo, se você tentar se conectar com um perfil temporário do IAM, mesmo que o token de autenticação não tenha expirado, o Aurora DSQL rejeitará a solicitação de conexão.

Para saber mais sobre como o IAM funciona com o Aurora DSQL, consulte [Understanding authentication and authorization for Aurora DSQL](https://docs.aws.amazon.com/aurora-dsql/latest/userguide/authentication-authorization.html) e [AWS Identity and Access Management in 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**

O IAM rejeitou sua solicitação. Para ter mais informações, consulte [Why requests are signed](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html#why-requests-are-signed).

**IAM role <role> does not exist**

O Aurora DSQL não conseguiu encontrar seu perfil do IAM. Para obter mais informações, consulte os [perfis do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html).

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

Consulte [Identificadores do IAM e ARNs do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns) para obter mais informações.

**Mapeamento incorreto de usuário para ação**

Esse erro ocorre quando o tipo de token de autenticação não corresponde ao perfil do banco de dados. O Aurora DSQL usa dois tipos de token: `DbConnectAdmin` para o perfil `admin` e `DbConnect` para perfis personalizados do banco de dados.
+ Se você ver `Wrong user to action mapping. user: admin, action: DbConnect`, use `generate-db-connect-admin-auth-token` em vez de `generate-db-connect-auth-token`.
+ Se você ver `Wrong user to action mapping. user: myusername, action: DbConnectAdmin`, use `generate-db-connect-auth-token` em vez de `generate-db-connect-admin-auth-token`.

## Solucionar erros de autorização
<a name="troubleshooting-authorization"></a>

**Role <role> not supported**

O Aurora DSQL não aceita a operação `GRANT`. Consulte [Subconjuntos de comandos SQL compatíveis no 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>**

O Aurora DSQL não aceita a operação `GRANT`. Consulte [Subconjuntos de comandos SQL compatíveis no Aurora DSQL](https://docs.aws.amazon.com/aurora-dsql/latest/userguide/working-with-postgresql-compatibility-supported-sql-subsets.html).

**Role <role> does not exist**

O Aurora DSQL não conseguiu encontrar o usuário do banco de dados especificado. Consulte [ Authorize custom database roles to connect to a cluster](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 acesso a um perfil de banco de dados, você deve se conectar ao cluster com o perfil de administrador. Para saber mais, consulte [ Authorize database roles to use SQL in a database](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**

Você deve ter permissão para criar perfis de `LOGIN`.

Para resolver esse erro, você deve criar o perfil do PostgreSQL com a permissão `LOGIN`. Para ter mais informações, consulte [CREATE ROLE](https://www.postgresql.org/docs/current/sql-createrole.html) e [GRANT](https://www.postgresql.org/docs/current/sql-alterrole.html) na documentação do PostgreSQL.

**ERROR: role <role> cannot be dropped because some objects depend on it**

Se você eliminar um perfil de banco de dados que tenha uma relação com o IAM, o Aurora DSQL exibirá um erro enquanto você não revogar essa relação usando `AWS IAM REVOKE`. Para saber mais, consulte [Revoking authorization](authentication-authorization.md#authentication-authorization-revoke).

## Solucionar de erros de SQL
<a name="troubleshooting-sql"></a>

**Error: Not supported**

O Aurora DSQL não oferece suporte a todos os dialetos baseados em PostgreSQL. Para saber mais sobre o que é possível usar, consulte [Supported PostgreSQL features in 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 criar um índice em uma tabela com linhas existentes, você deve usar o comando `CREATE INDEX ASYNC`. Para saber mais, consulte [Creating indexes asynchronously in Aurora DSQL](https://docs.aws.amazon.com/aurora-dsql/latest/userguide/working-with-create-index-async.html).

## Solucionar erros de OCC
<a name="troubleshooting-occ"></a>

**OC000 “ERROR: mutation conflicts with another transaction, retry as needed”**

Essa transação tentou modificar as mesmas tuplas que de outra transação simultânea. Isso indica contenção nas tuplas modificadas. Para saber mais, consulte [Controle de simultaneidade no Aurora DSQL](https://docs.aws.amazon.com/aurora-dsql/latest/userguide/working-with-concurrency-control.html).

**OC001 “ERROR: schema has been updated by another transaction, retry as needed”**

Sua sessão do PostgreSQL tinha uma cópia em cache do catálogo de esquemas. Essa cópia em cache era válida no momento em que foi carregada. Vamos chamar o momento T1 e a versão V1.

Outra transação atualiza o catálogo no momento T2. Vamos chamar isso de V2.

Quando a sessão original tenta ler do armazenamento no momento T2, ela ainda está usando a versão V1 do catálogo. A camada de armazenamento do Aurora DSQL rejeita a solicitação porque a versão mais recente do catálogo em T2 é V2.

Quando você tenta novamente no momento T3 usando a sessão original, o Aurora DSQL atualiza o cache do catálogo. A transação em T3 está usando o catálogo V2. O Aurora DSQL concluirá a transação desde que nenhuma outra alteração no catálogo tenha ocorrido desde o momento T2.

## Solucionar problemas em conexões SSL/TLS
<a name="troubleshooting-ssl-tls"></a>

**SSL error: certificate verify failed**

Esse erro indica que o cliente não consegue verificar o certificado do servidor. Verifique se:

1. O certificado Amazon Root CA 1 está instalado corretamente. Consulte [Configurar certificados SSL/TLS para conexões do Aurora DSQL](configure-root-certificates.md) para obter instruções sobre como validar e instalar esse certificado. 

1. A variável de ambiente `PGSSLROOTCERT` aponta para o arquivo de certificado correto.

1. O arquivo de certificado tem as permissões corretas.

**Unrecognized SSL error code: 6**

Esse erro ocorre com clientes PostgreSQL abaixo da versão 14. Para resolver esse problema, atualize seu cliente PostgreSQL para a versão 17.

**SSL error: unregistered scheme (Windows)**

Esse é um problema conhecido com o cliente psql do Windows ao usar certificados do sistema. Use o método de arquivo de certificado baixado descrito nas instruções em [Conectar-se pelo Windows](configure-root-certificates.md#connect-windows).