

# 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)
+ [Solução de problemas de respostas de controle de concorrência](#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).

## Solução de problemas de respostas de controle de concorrência
<a name="troubleshooting-occ"></a>

**OC000 “ERROR: change conflicts with another transaction (OC000)”**

Essa transação tentou modificar as mesmas tuplas que outra transação concorrente. Isso indica contenção nas tuplas modificadas. Para saber mais, consulte [Concurrency control in 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 (OC001)”**

A sessão tinha uma cópia em cache do catálogo de esquema na versão V1, carregada no momento T1.

Uma transação separada atualizou o catálogo para a versão V2 no momento T2.

No momento T3, quando a sessão executa uma consulta, ela detecta que está desatualizada e tenta fazer o rebase nas novas alterações do catálogo. Em algumas situações, o rebase não pode ser concluído, e o Aurora DSQL retorna uma resposta `40001` OC001. O tempo entre T2 e T3 pode variar de milissegundos a minutos, porque os processadores de consulta detectam alterações no catálogo de forma reativa, em vez de receber atualizações proativas.

Ao tentar novamente a partir da mesma sessão, o Aurora DSQL atualiza o cache do catálogo. A transação repetida utiliza o catálogo V2 e é bem-sucedida, desde que nenhuma outra alteração no catálogo tenha ocorrido desde 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).