Vidéo: Introduction à Oracle sur macOS avec Docker 2024
La gestion de la mémoire est un composant important du travail avec les instances de votre base de données. Oracle 12c vous offre trois façons de gérer la mémoire dans votre instance:
-
automatiquement en laissant Oracle effectuer tout le travail
-
manuellement en réglant des paramètres individuels pour les différentes zones de mémoire
-
Combinaison automatique et le manuel en utilisant votre connaissance de la façon dont les choses fonctionnent, en utilisant l'infrastructure de conseil d'Oracle, et en laissant Oracle prendre en charge certaines zones
Une note rapide sur l'automatisation Oracle. Au cours des dernières versions d'Oracle, la base de données est devenue plus automatisée dans des domaines auparavant manuels et parfois fastidieux. Cela ne veut pas dire que bientôt, il ne faudra pas de compétences particulières pour gérer une base de données Oracle. Exactement le contraire: lorsque des opérations plus banales sont automatisées, cela vous libère en tant que DBA pour se concentrer sur les fonctionnalités les plus avancées.
Nous avons eu beaucoup de succès dans la mise en place de fonctionnalités automatisées pour les clients. Cela libère nos ressources pour se concentrer sur des choses telles que la haute disponibilité et la sécurité, domaines qui nécessitent une attention presque à plein temps. Heureusement, vous n'avez pas besoin de passer des heures à regarder les instructions SQL vieillir hors du pool partagé prématurément, ce qui entraîne des problèmes de performances.
Nous vous recommandons de gérer la mémoire automatiquement dans Oracle 12c.
Lorsque vous créez votre base de données, vous pouvez définir un nouveau paramètre qui supprime presque tous les réglages de la mémoire: MEMORY_TARGET. En réglant ce paramètre, toutes les zones de mémoire sont automatiquement dimensionnées et gérées. Après avoir entré show parameter memory_target dans SQL * Plus (l'interface de ligne de commande SQL disponible dans Oracle), vous voyez cette sortie à l'écran:
NAME TYPE VALUE -------- ---------------------------- ----------- ----------- ------------------- memory_target big integer 756M
La gestion automatique de la mémoire vous permet de saisir la quantité de mémoire sur le système, puis de décider combien vous voulez utiliser pour la base de données.
La valeur que vous devez choisir comme point de départ n'est jamais évidente. Répondez à ces questions pour aider à définir la valeur:
-
Combien de mémoire est disponible?
-
Combien de bases de données seront finalement sur la machine?
-
Combien d'utilisateurs seront sur la machine? (Si vous en avez plusieurs, vous allouez 4 Mo par utilisateur pour la surcharge du processus.)
-
Quelles autres applications sont en cours d'exécution sur la machine?
Avant de mettre les utilisateurs sur la machine, pensez à ne pas utiliser plus de 40% de la mémoire pour les bases de données Oracle.Utilisez cette formule:
(Go de mémoire × 40) / Nombre de bases de données éventuelles = Go pour MEMORY_TARGET par base de données
Par exemple, si votre machine dispose de 8 Go de mémoire et abritera deux bases de données similaires 100 utilisateurs chacun, vous auriez cette équation: (8 ×. 40) / 2 = 1. 6 Go pour MEMORY_TARGET par base de données.
Pour vous aider à déterminer si vous avez suffisamment de mémoire, Oracle vous donne des indications si vous savez où chercher. C'est ce qu'on appelle le Memory Target Advisor. Trouvez le depuis la ligne de commande sous la forme de la vue V $ MEMORY_TARGET_ADVICE. Vous pouvez le trouver dans la page d'accueil Contrôle de la base de données en cliquant sur Advisor Central> Conseillers en mémoire> Conseils.
Quoi que vous choisissiez pour le paramètre MEMORY_TARGET, ce n'est pas toute la mémoire qu'utilise Oracle. C'est pourquoi vous devriez avoir une idée du nombre de séances qu'il y aura avant que vous preniez la décision finale.
Par exemple, ce paramètre ne couvre que la mémoire utilisée par le SGA et le PGA. Chaque session qui se connecte à la base de données nécessite de la mémoire associée à son système d'exploitation ou à son processus serveur. Cette exigence de mémoire s'additionne. Un de nos clients a près de 3 000 connexions simultanées consommant environ 16 Go de mémoire en dehors du SGA et du PGA. La machine du client a 64 Go de mémoire et le paramètre MEMORY_TARGET est réglé sur 16 Go.