Como configuro instâncias de banco de dados Oracle do Amazon RDS para funcionar com servidores compartilhados?

4 minuto de leitura
0

Como configuro instâncias de banco de dados Oracle do Amazon Relational Database Service (Amazon RDS) para funcionar com servidores compartilhados?

Breve descrição

Os usuários da Oracle podem se conectar às instâncias de banco de dados do RDS usando processos de servidores dedicados ou compartilhados. Antes de usar servidores compartilhados, considere o seguinte:

  • O uso de servidores compartilhados gera sobrecarga de CPU, o que pode causar problemas de desempenho.
  • Usar um servidor compartilhado significa que a alocação de UGA é alocada dentro de um grupo grande. Certifique-se de ter espaço livre suficiente dentro do SGA para acomodar servidores compartilhados. Espaço livre insuficiente pode fazer com que erros de “grupo grande livre” apareçam no log de alertas e nos arquivos de rastreamento da instância.
  • O uso de servidores compartilhados pode causar uma realocação dinâmica mais frequente da memória SGA, o que pode causar problemas de desempenho.
  • Durante a reinicialização ou o failover do banco de dados, um grande aumento nas conexões da aplicação pode sobrecarregar os despachantes se o parâmetro DISPATCHERS não estiver definido como alto o suficiente em relação ao throughput da conexão.
  • A execução de processos em lote, consultas de longa duração, cargas pesadas ou tarefas de DBA de longa execução em servidores compartilhados pode fazer com que outros trabalhos sejam adicionados à fila, o que pode causar problemas de desempenho. Use servidores dedicados para trabalhos grandes.

Para obter mais informações sobre o servidor compartilhado e a arquitetura de servidor dedicado do Oracle Database, consulte a documentação da Oracle Compreensão da arquitetura de servidor compartilhado.

Resolução

Para equilibrar os benefícios e as limitações do uso de servidores compartilhados:

  • Use servidores compartilhados para um grande número de sessões OLTP que se conectam e se desconectam com frequência e realizam operações leves.
  • Use servidores dedicados para operações em lote de longa duração e tarefas administrativas pesadas, como a criação de índices.

Observação: os exemplos a seguir são fornecidos como base para habilitar servidores compartilhados com o tamanho de instância especificado (instância db.r3.large). Os administradores devem aplicar configurações de grupos de parâmetros que otimizem a memória com base em seus casos de uso. Para obter mais informações, consulte Oracle no Amazon RDS.

1.    Modifique o grupo de parâmetros personalizados para definir os seguintes parâmetros para o valor máximo permitido ou para um valor que atenda ao seu caso de uso:

dispatchers=(PROTOCOL=TCP)(DISPATCHERS=30)
max_dispatchers=30

2.    Faça login na instância e, em seguida, visualize o valor padrão de SESSIONS do tamanho do host. Se você não estiver usando as configurações padrão, teste a instância com o grupo de parâmetros padrão:

SQL> show parameter sessions
2428

3.    Defina SHARED_SERVERS e MAX_SHARED_SERVERS como 10% desse valor:

sessions=2428
shared_servers=243
max_shared_servers=243

4.    Defina LARGE_POOL_SIZE igual ao valor SHARED_SERVERS * 1 MB (243 * 1048576 bytes neste caso).

large_pool_size= 254803968

5.    Consulte v$sgastat para large_pool_size “memória livre” para garantir que o grupo grande tenha o tamanho adequado.

SQL> select name, pool, bytes/1024/1024 megs from v$sgastat where name='free memory' and pool='large pool';
Name           POOL        Megs
-------------- ----------- -------
free memory    large pool  243

6.    Visualize as configurações do grupo de parâmetros que são aplicadas a uma instância Oracle em execução e, em seguida, execute a seguinte consulta SQL a partir da instância:

select name, value from v$parameter where name in ('processes', 'sessions', 'shared_servers', 'dispatchers', 'memory_target', 'memory_max_target', 'large_pool_size');

7.    Execute a seguinte consulta SQL em sua instância Oracle para ver se as sessões estão se conectando como compartilhadas:

SQL> select decode(server,'NONE','SHARED',server), count(*) from v$session
group by decode(server,'NONE','SHARED',server);

Para habilitar o acesso ao servidor dedicado e compartilhado à mesma instância Oracle, use duas entradas tnsnames.ora, como no exemplo a seguir:

# make the default shared

  dbname =
  (DESCRIPTION=
      (ADDRESS_LIST=
          (ADDRESS=(PROTOCOL=TCP)(HOST=dbname.endpoint.amazonaws.com)(PORT=1521))
      )
      (CONNECT_DATA=
          (SID=dbname)
      )
  )

  # use the dedicated one for batch processes and dba tasks such as creating indexes

  dbname_d=
  (DESCRIPTION=
      (ADDRESS_LIST=
          (ADDRESS=(PROTOCOL=TCP)(HOST=dbname.endpoint.amazonaws.com)(PORT=1521))
      )
      (CONNECT_DATA=
          (SID=dbname)
          (SERVER=DEDICATED)
      )
  )

Informações relacionadas

Parâmetros de nomenclatura local no arquivo tnsnames.ora

Trabalhando com grupos de parâmetros do banco de dados

Exibição de valores de parâmetros de um grupo de parâmetros de banco de dados

Como reinicializar uma instância de banco de dados

AWS OFICIAL
AWS OFICIALAtualizada há 4 anos