Comment configurer Amazon Relational Database Service (Amazon RDS) for Oracle pour une utilisation avec des serveurs partagés ?

Les utilisateurs Oracle peuvent se connecter aux instances de base de données à l'aide de processus de serveur dédié ou partagé. Avant d'utiliser des serveurs partagés, prenez en compte les points suivants :

  • L'utilisation de serveurs partagés entraîne une surcharge du processeur, ce qui peut entraîner des problèmes de performance.
  • L'utilisation d'un serveur partagé signifie que l'allocation UGA (User Global Area) est allouée à l'intérieur d'un grand groupe. Assurez-vous d'avoir suffisamment d'espace libre dans la SGA ( System Global Area) pour accueillir des serveurs partagés. Le manque d'espace libre peut entraîner l'apparition d'erreurs « large pool free » dans le journal d'alertes et les fichiers de trace de l'instance.
  • L'utilisation de serveurs partagés peut entraîner une réaffectation dynamique plus fréquente de la mémoire SGA, ce qui peut entraîner des problèmes de performance.
  • ²Pendant le redémarrage ou le basculement de la base de données, une forte augmentation des connexions d’applications peut submerger les répartiteurs si le paramètre DISPATCHERS n'est pas réglé suffisamment haut par rapport au débit de la connexion.
  • L'exécution de processus par lots, les requêtes de longue durée, les charges lourdes et les tâches d'administration de base de données de longue durée sur des serveurs partagés peuvent causer la mise en file d'attente d'autres tâches, ce qui peut entraîner des problèmes de performance. Utilisez des serveurs dédiés pour les tâches volumineuses.

Pour en savoir plus sur l'architecture de serveurs partagé et serveur dédié Oracle Database, consultez la page Comprendre l'architecture de serveur partagé.

Pour concilier les avantages et limites de l'utilisation de serveurs partagés :

  • Utilisez des serveurs partagés pour un grand nombre de sessions de traitement transactionnel en ligne (OLTP) qui se connectent et se déconnectent souvent, et exécutent des opérations légères.
  • Utilisez des serveurs dédiés pour les opérations par lots de longue durée et les tâches administratives lourdes, telles que la création d'index.

Remarque : Les exemples suivants sont fournis comme base de référence pour l'activation des serveurs partagés avec la taille d'instance spécifiée (instance db.r3.large). Les administrateurs doivent configurer les groupes de paramètres et les groupes de sécurité afin d'optimiser la mémoire en fonction de leurs cas d'utilisation. Pour en savoir plus, consultez la page Oracle sur Amazon RDS.

1.   Définissez DISPATCHERS à la valeur maximale autorisée :

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

2.   Connectez-vous à l'instance et affichez la valeur par défaut de SESSIONS pour la taille de l'hôte. Si vous n'utilisez pas les paramètres par défaut, testez l'instance avec le groupe de paramètres par défaut :

  SQL> show parameter sessions
  2428

3.   Définissez SHARED_SERVERS et MAX_SHARED_SERVERS à 10% de cette valeur :

  sessions=2428
  shared_servers=243
  max_shared_servers=243

4.   Définissez LARGE_POOL_SIZE comme égal à la valeur SHARED_SERVERS * 1 Mo (243 * 1 048 576 octets dans ce cas).

large_pool_size= 254803968

5.   Effectuez une requête large_pool_size '‘free memory'’ sur v$sgastat pour être sûr que le grand groupe est de taille adéquate.

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.   Affichez les réglages de groupe de paramètres qui sont appliqués à une instance Oracle en cours d'exécution, puis exécutez la requête SQL suivante depuis l'instance :

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

7.   Exécutez la requête SQL suivante depuis votre instance Oracle pour voir si les sessions se connectent comme partagées :

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

Pour activer l'accès aux serveurs dédiés et partagés à la même instance Oracle, utilisez deux entrées tnsnames.ora, comme dans l'exemple suivant :

  # 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)
      )
  )

Cette page vous a-t-elle été utile ? Oui | Non

Retour au Centre de connaissances AWS Support

Vous avez besoin d'aide ? Consultez le site du Centre AWS Support

Date de publication : 11/11/2016

Date de mise à jour : 22/05/2018