Conectar-se a uma instância de banco de dados Oracle - Amazon Relational Database Service

Conectar-se a uma instância de banco de dados Oracle

Depois que o Amazon RDS provisiona a sua instância de banco de dados Oracle, você pode usar qualquer aplicativo cliente padrão SQL para se conectar à instância de banco de dados. Neste tópico, você se conecta a uma instância de banco de dados que está executando o mecanismo de banco de dados Oracle por meio do Oracle SQL Developer ou SQL*Plus.

Consulte e veja um exemplo do processo de criação e conexão com uma instância de banco de dados de amostr Criar uma instância de banco de dados Oracle e conectar a um banco de dados em uma instância Oracle.

Como encontrar o endpoint da sua instância de banco de dados Oracle

Cada instância de banco de dados do Amazon RDS tem um endpoint, e cada ponto final possui o nome DNS e o número da porta para a instância de banco de dados. Para se conectar à sua instância de banco de dados usando um aplicativo cliente SQL, você precisa do nome DNS e do número da porta para sua instância de banco de dados.

Você pode encontrar o endpoint de uma instância de banco de dados usando o console do Amazon RDS ou a AWS CLI.

nota

Se você estiver usando a autenticação Kerberos, consulte Conectar-se ao Oracle com a autenticação Kerberos.

Console

Para localizar o endpoint usando o console

  1. Faça login no AWS Management Console e abra o console do Amazon RDS em https://console.aws.amazon.com/rds/.

  2. No canto superior direito do console do, escolha a região AWS para a instância de banco de dados.

  3. Encontre o nome DNS e o número da porta da instância de banco de dados.

    1. Escolha Databases (Bancos de dados) para exibir a lista das instâncias de banco de dados.

    2. Escolha o nome da instância de banco de dados Oracle para exibir os detalhes da instância.

    3. Na guia Connectivity & security (Conectividade e segurança), copie o endpoint. Além disso, anote o número da porta. Você precisará do endpoint e do número da porta para conectar-se à instância de banco de dados.

      
                                Localizar o endpoint e a porta da instância de banco de dados

AWS CLI

Para encontrar o endpoint de uma instância de banco de dados Oracle usando a AWS CLI, chame o comando describe-db-instances.

exemplo Para localizar o endpoint usando a AWS CLI

aws rds describe-db-instances

Procure o Endpoint na saída para encontrar o nome DNS e o número da porta da sua instância de banco de dados. A linha Address na saída contém o nome DNS. Este é um exemplo da saída de endpoint JSON.

"Endpoint": { "HostedZoneId": "Z1PVIF0B656C1W", "Port": 3306, "Address": "myinstance.123456789012.us-west-2.rds.amazonaws.com" },
nota

A saída pode conter informações de várias instâncias de banco de dados.

Conectar-se à sua instância de banco de dados usando o Oracle SQL Developer

Neste procedimento, você se conectará à sua instância de banco de dados usando o Oracle SQL Developer. Para fazer download de uma versão independente desse utilitário, consulte a página de downloads do Oracle SQL Developer.

Para se conectar à sua instância de banco de dados, você precisa do nome DNS e do número da porta. Para obter informações sobre como encontrar o nome DNS e o número da porta de uma instância de banco de dados, consulte Como encontrar o endpoint da sua instância de banco de dados Oracle.

Como conectar-se a uma instância de banco de dados usando o SQL Developer

  1. Inicie o Oracle SQL Developer.

  2. Na guia Connections (Conexões), escolha o ícone add (+) (adicionar (+)).

    
                        Oracle SQL Developer com ícone de adição em destaque
  3. Na caixa de diálogo New/Select Database Connection (Nova/selecionar conexão de banco de dados), forneça as informações da sua instância de banco de dados:

    • Em Connection Name (Nome da conexão), digite um nome que descreva a conexão, como Oracle-RDS.

    • Em Username (Nome do usuário), digite o nome do administrador do banco de dados da instância de banco de dados.

    • Em Password (Senha), digite a senha do administrador do banco de dados.

    • Em Hostname (Nome do host), digite o nome DNS da instância de banco de dados.

    • Em Port (Porta), digite o número da porta.

    • Em SID, digite o SID do banco de dados Oracle.

    A caixa de diálogo preenchida deve ser semelhante à seguinte.

    
                        Criar uma nova conexão no Oracle SQL Developer
  4. Selecione Conectar.

  5. Agora, você pode começar a criar seus próprios bancos de dados e executar consultas em instâncias de banco de dados e bancos de dados como de costume. Para executar uma consulta de teste na sua instância de banco de dados, faça o seguinte:

    1. Na guia Worksheet (Planilha) da conexão, digite a consulta SQL a seguir.

      SELECT NAME FROM V$DATABASE;
    2. Escolha o ícone execute (execução) para executar a consulta.

      
                                Executar uma consulta no Oracle SQL Developer usando o ícone de execução

      O SQL Developer retorna o nome do banco de dados.

      
                                Resultados da consulta no Oracle SQL Developer

Conectar-se à sua instância de banco de dados do Linux usando o SQL*Plus

Você pode usar um utilitário como SQL*Plus para se conectar a uma instância de banco de dados do Amazon RDS executando o Oracle. Para fazer o download do Oracle Instant Client, que inclui uma versão independente do SQL*Plus, consulte Downloads do Oracle Instant Client.

Para se conectar à sua instância de banco de dados, você precisa do nome DNS e do número da porta. Para obter informações sobre como encontrar o nome DNS e o número da porta de uma instância de banco de dados, consulte Como encontrar o endpoint da sua instância de banco de dados Oracle.

exemplo Para conectar-se a uma instância de banco de dados Oracle usando o SQL*Plus

Nos exemplos a seguir, substitua o nome de usuário do administrador de sua instância de banco de dados. Além disso, substitua o nome do DNS da instância de banco de dados e inclua o número da porta e o Oracle SID. O valor de SID é o nome do banco de dados da instância de banco de dados que você especificou quando a criou, e não o nome da instância de banco de dados.

Para Linux, macOS ou Unix:

sqlplus 'user_name@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dns_name)(PORT=port))(CONNECT_DATA=(SID=database_name)))'

Para Windows:

sqlplus user_name@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dns_name)(PORT=port))(CONNECT_DATA=(SID=database_name)))

Você deve ver saída semelhante a.

SQL*Plus: Release 12.1.0.2.0 Production on Mon Aug 21 09:42:20 2017

Depois que você inserir a senha de usuário, o prompt do SQL será exibido.

SQL>
nota

A string de conexão de formato mais curto (Easy connect ou EZCONNECT), como sqlplus USER/PASSWORD@LONGER-THAN-63-CHARS-RDS-ENDPOINT-HERE:1521/DATABASE_IDENTIFIER, pode encontrar um limite máximo de caracteres e não deve ser usada para conexão.

Considerações para grupos de segurança

Para se conectar à sua instância de banco de dados, ela deve estar associada a um grupo de segurança que contenha os endereços IP e a configuração de rede que você usa para acessá-la. Sua instância de banco de dados pode usar o grupo de segurança padrão. Se você atribuiu um grupo de segurança padrão não configurado quando criou a instância de banco de dados, o firewall dessa instância impedirá conexões.

Para criar um novo grupo de segurança, o grupo criado depende da plataforma do Amazon EC2 para sua instância de banco de dados. Para determinar sua plataforma, consulte Determinar se você está usando a plataforma EC2-VPC ou EC2-Classic. Geralmente, se sua instância de banco de dados encontra-se na plataforma EC2-Classic, você criará um grupo de segurança de banco de dados. Se sua instância de banco de dados encontra-se na plataforma VPC, você criará um grupo de segurança de VPC. Para obter informações sobre como criar um novo security group, consulte Controlar acesso com grupos de segurança.

Depois de criar o novo security group, você modifica sua instância de banco de dados para associá-la a esse security group. Para obter mais informações, consulte Modificar uma instância de banco de dados do Amazon RDS.

Você pode aprimorar a segurança usando o SSL para criptografar conexões com sua a instância de banco de dados. Para obter mais informações, consulte Oracle Secure Sockets Layer.

Considerações para arquitetura de processo

Os processos do servidor lidam com as conexões do usuário em uma instância de banco de dados Oracle. Por padrão, a instância de banco de dados Oracle usa processos de servidores dedicados. Com os processos de servidores dedicados, cada processo de servidor lida somente com um processo de usuário. Se preferir, você pode configurar processos de servidores compartilhados. Com os processos de servidores compartilhados, cada processo de servidor lida com vários processos de usuário.

Você pode considerar processos de servidores compartilhados quando uma quantidade elevada de sessões de usuários estiver consumindo muita memória no servidor. Você também pode considerar os processos do servidores compartilhados quando as sessões se conectarem e desconectarem com muita frequência, resultando em problemas de desempenho. Há também desvantagens na utilização de processos de servidores compartilhados. Por exemplo, eles podem prejudicar os recursos da CPU e são mais complexos para configurar e administrar.

Para obter mais informações sobre processos de servidores dedicados e compartilhados, consulte Sobre os processos de servidores dedicados e compartilhados na documentação do Oracle. Para obter mais informações sobre como configurar processos de servidores compartilhados em uma instância de banco de dados Oracle, consulte How do I configure Amazon RDS for Oracle database to work with shared servers? na Central de Conhecimento.

Solução de problema de conexão com a instância de banco de dados Oracle

Veja a seguir os problemas que você pode encontrar ao tentar se conectar à sua instância de banco de dados Oracle.

Problema Sugestões de solução de problemas

Não é possível conectar-se à sua instância de banco de dados.

Uma instância de banco de dados recém-criada fica com o status creating (criando) até que ela esteja pronta para uso. Quando o status muda para available (disponível), você pode se conectar à instância de banco de dados. Dependendo da classe da instância de banco de dados e da quantidade de armazenamento, pode levar até 20 minutos para que a nova instância de banco de dados esteja disponível.

Não é possível conectar-se à sua instância de banco de dados.

Se você não pode enviar ou receber comunicações através da porta que especificou quando criou a instância de banco de dados, não poderá se conectar à instância de banco de dados. Verifique com o administrador da rede para verificar se a porta que você especificou para a sua instância de banco de dados permite comunicação de entrada e saída.

Não é possível conectar-se à sua instância de banco de dados.

As regras de acesso aplicadas pelo seu firewall local e os endereços IP autorizados para acessar sua instância de banco de dados no security group para a instância de banco de dados podem não corresponder. O problema está provavelmente com as regras de saída ou de entrada no seu firewall.

É possível adicionar ou editar uma regra de entrada no grupo de segurança. Em Source (Origem), selecione My IP (Meu IP). Isso concede acesso à instância de banco de dados do endereço IP detectado no navegador. Para obter mais informações, consulte VPCs da Amazon Virtual Private Cloud e do Amazon RDS.

Para obter mais informações sobre security groups, consulte Controlar acesso com grupos de segurança.

Para orientação pelo processo de configuração de regras para o seu security group, consulte Tutorial: criar uma Amazon VPC para usar com uma instância de banco de dados (somente IPv4).

Connect failed because target host or object does not exist – Oracle, Error: ORA-12545 (A conexão falhou pois o host de destino ou o objeto não existe – Oracle, erro: ORA-12545

Verifique se você especificou o nome do servidor e o número da porta corretamente. Em Server name (Nome do servidor), digite o nome DNS no console.

Para obter informações sobre como encontrar o nome DNS e o número da porta de uma instância de banco de dados, consulte Como encontrar o endpoint da sua instância de banco de dados Oracle.

Invalid username/password; logon denied – Oracle, Error: ORA-01017 (Nome de usuário/senha inválidos; login negado – Oracle, erro: ORA-01017

Você conseguiu acessar a instância de banco de dados, mas a conexão foi recusada. Isso geralmente é causado pelo fornecimento de nome de usuário ou senha incorretos. Verifique o nome do usuário e a senha e tente novamente.

No momento, TNS:listener não conhece o SID fornecido no descritor de conexão - Oracle, ERRO: ORA-12505

Certifique-se de que o SID correto esteja inserido. O SID equivale ao nome do seu banco de dados. Encontre o nome do banco de dados na guia Configuration (Configuração) da página Databases (Bancos de dados) para sua instância. Você também pode encontrar o nome do banco de dados utilizando a AWS CLI: aws rds describe-db-instances --query 'DBInstances[*].[DBInstanceIdentifier,DBName]' --output text

Para obter mais informações sobre problemas de conexão, consulte Não é possível conectar-se à instância de banco de dados do Amazon RDS.

Modificação das propriedades de conexão usando parâmetros sqlnet.ora

O arquivo sqlnet.ora inclui os parâmetros que configuram os recursos do Oracle Net em servidores e clientes de banco de dados Oracle. Usando os parâmetros no arquivo sqlnet.ora, você pode modificar propriedades para conexões dentro e fora do banco de dados.

Para obter mais informações sobre por que convém definir parâmetros do sqlnet.ora, consulte Configurar parâmetros do perfil na documentação da Oracle.

Configurar parâmetros do sqlnet.ora

Os grupos de parâmetros do Amazon RDS for Oracle incluem um subconjunto de parâmetros sqlnet.ora. Você os configura da mesma forma que configura outros parâmetros do Oracle. O prefixo sqlnetora. identifica quais parâmetros são parâmetros do sqlnet.ora. Por exemplo, em um parameter group Oracle no Amazon RDS, o parâmetro default_sdu_size do sqlnet.ora é sqlnetora.default_sdu_size.

Para obter informações sobre como gerenciar parameter groups e definir valores de parâmetros, consulte Trabalhar com grupos de parâmetros.

Parâmetros do sqlnet.ora compatíveis

O Amazon RDS oferece suporte aos seguintes parâmetros do sqlnet.ora. As alterações nos parâmetros dinâmicos do sqlnet.ora entram em vigor imediatamente.

Parâmetro Valores válidos Estático/dinâmico Descrição

sqlnetora.default_sdu_size

Oracle 12c – 512 até 2097152

Dinâmico

O tamanho da unidade de dados da sessão (SDU), em bytes.

A SDU é a quantidade de dados que são armazenados em um buffer e enviados pela rede ao mesmo tempo.

sqlnetora.diag_adr_enabled

ON, OFF

Dinâmico

Um valor que ativa e desativa o rastreamento do Repositório de Diagnóstico Automático (ADR).

ON especifica que é usado o rastreamento de arquivos de ADR.

OFF especifica que é usado o rastreamento de arquivos que não são de ADR.

sqlnetora.recv_buf_size

8192 para 268435456

Dinâmico

O limite de espaço de buffer para receber operações de sessões, compatíveis com os protocolos TCP/IP, TCP/IP com SSL e SDP.

sqlnetora.send_buf_size

8192 para 268435456

Dinâmico

O limite de espaço de buffer para enviar operações de sessões, compatíveis com os protocolos TCP/IP, TCP/IP com SSL e SDP.

sqlnetora.sqlnet.allowed_logon_version_client

8, 10, 11, 12

Dinâmico

A versão mínima do protocolo de autenticação permite que clientes e servidores atuando como clientes estabeleçam uma conexão com instâncias de bancos de dados Oracle.

sqlnetora.sqlnet.allowed_logon_version_server

8, 9, 10, 11, 12, 12a

Dinâmico

A versão mínima do protocolo de autenticação permite estabelecer uma conexão com instâncias de bancos de dados Oracle.

sqlnetora.sqlnet.expire_time

0 para 1440

Dinâmico

Intervalo de tempo, em minutos, para enviar uma verificação para conferir se as conexões cliente/servidor estão ativas.

sqlnetora.sqlnet.inbound_connect_timeout

0 ou 10 a 7200

Dinâmico

Tempo, em segundos, para um cliente se conectar ao servidor de banco de dados e fornecer as informações de autenticação necessárias.

sqlnetora.sqlnet.outbound_connect_timeout

0 ou 10 a 7200

Dinâmico

Tempo, em segundos, para um cliente estabelecer uma conexão do Oracle Net com a instância de banco de dados.

sqlnetora.sqlnet.recv_timeout

0 ou 10 a 7200

Dinâmico

Tempo, em segundos, para um servidor de banco de dados aguardar os dados do cliente depois de estabelecer uma conexão.

sqlnetora.sqlnet.send_timeout

0 ou 10 a 7200

Dinâmico

Tempo, em segundos, para um servidor de banco de dados concluir uma operação de envio para os clientes depois de estabelecer uma conexão.

sqlnetora.tcp.connect_timeout

0 ou 10 a 7200

Dinâmico

Tempo, em segundos, para um cliente estabelecer uma conexão TCP com o servidor de banco de dados.

sqlnetora.trace_level_server

0, 4, 10, 16, OFF, USER, ADMIN, SUPPORT

Dinâmico

Para rastreamento que não abrange arquivos de ADR, ativa o rastreamento do servidor em um nível especificado ou o desativa.

O valor padrão para cada parâmetro do sqlnet.ora compatível é o padrão do Oracle para a versão. Para obter informações sobre os valores padrão do Oracle Database 12c, consulte Parâmetros para o arquivo sqlnet.ora na documentação do Oracle Database 12c.

Exibir parâmetros do sqlnet.ora

Você pode exibir os parâmetros do sqlnet.ora e suas configurações usando o AWS Management Console, a AWS CLI ou um cliente SQL.

Exibir parâmetros do sqlnet.ora usando o console

Para obter informações sobre como exibir parâmetros em um parameter group, consulte Trabalhar com grupos de parâmetros.

Nos parameter groups do Oracle, o prefixo sqlnetora. identifica quais parâmetros são parâmetros do sqlnet.ora.

Exibir parâmetros do sqlnet.ora usando a AWS CLI

Para exibir os parâmetros do sqlnet.ora que foram configurados em um parameter group do Oracle, use o comando describe-db-parameters da AWS CLI.

Para exibir todos os parâmetros do sqlnet.ora para uma instância de banco de dados Oracle, chame o comando download-db-log-file-portion da AWS CLI. Especifique o DB instance identifier, o nome do arquivo de log e o tipo de saída.

exemplo

O código a seguir lista todos os parâmetros do sqlnet.ora par mydbinstance.

Para Linux, macOS ou Unix:

aws rds download-db-log-file-portion \ --db-instance-identifier mydbinstance \ --log-file-name trace/sqlnet-parameters \ --output text

Para Windows:

aws rds download-db-log-file-portion ^ --db-instance-identifier mydbinstance ^ --log-file-name trace/sqlnet-parameters ^ --output text

Exibir parâmetros do sqlnet.ora usando um cliente SQL

Depois de se conectar à instância de banco de dados Oracle em um cliente SQL, a consulta a seguir lista os parâmetros do sqlnet.ora.

SELECT * FROM TABLE (rdsadmin.rds_file_util.read_text_file( p_directory => 'BDUMP', p_filename => 'sqlnet-parameters'));

Para obter informações sobre como se conectar a uma instância de banco de dados Oracle em um cliente SQL, consulte Conectar-se a uma instância de banco de dados Oracle.