Maison  >  Article  >  base de données  >  Comment définir le délai d'attente dans la base de données Oracle

Comment définir le délai d'attente dans la base de données Oracle

PHPz
PHPzoriginal
2023-04-04 09:11:444726parcourir

La base de données Oracle est une base de données relationnelle très populaire, mais lors de son utilisation, nous rencontrons souvent le problème du délai d'expiration de la connexion à la base de données. Ce problème peut provoquer une série de problèmes tels qu'une interruption de la transmission des données et une dégradation des performances. Alors, comment définir le délai d’attente dans la base de données Oracle ? Cet article vous présentera la méthode spécifique.

1. Principe du réglage du délai d'attente

Dans Oracle, le délai d'attente est implémenté via les paramètres de délai d'attente de lecture et d'écriture SQLnet. SQLnet est un composant réseau d'Oracle Database qui prend en charge la communication entre les clients et les serveurs. Lors de l'exécution d'un délai d'attente, le client émet une requête. Lorsque le serveur ne répond pas, le client attend le temps spécifié. Si le temps d'attente dépasse le délai d'attente spécifié, la connexion sera déconnectée.

Normalement, il existe deux types de paramètres de délai d'expiration Oracle :

1. Délai d'expiration au niveau de la session

Le délai d'expiration au niveau de la session est valide pour une seule session et est défini via la commande ALTER SESSION.

2.Délai d'expiration du niveau SQLNET

Le délai d'expiration du niveau SQLNET est valable pour toutes les sessions de l'ensemble de la connexion SQLNET et est défini en modifiant le fichier SQLNET.ORA. SQLNET.ORA est le fichier de configuration réseau d'Oracle, dans lequel les paramètres au niveau SQLNET peuvent être définis.

Vous pouvez choisir la méthode de réglage du délai d'attente appropriée en fonction de la situation réelle.

2. Paramètre de délai d'expiration au niveau de la session

Dans Oracle, vous pouvez utiliser la commande ALTER SESSION pour définir le délai d'expiration au niveau de la session. La syntaxe est la suivante :

ALTER SESSION SET SQL_TRACE = TRUE | FALSE ;

Parmi eux, SQL_TRACE = TRUE signifie activer le mode de suivi. Dans ce mode, la base de données Oracle enregistrera l'exécution de toutes les instructions SQL.

ALTER SESSION SET SQL_TRACE = FALSE;

SQL_TRACE = FALSE signifie désactiver le mode de traçage.

Vous pouvez définir le paramètre TIMED_STATISTICS sur true lorsque SQL_TRACE = TRUE pour activer la sortie d'informations statistiques en mode de suivi, comme indiqué ci-dessous :

ALTER SESSION SET TIMED_STATISTICS = TRUE ;

Pour le délai d'expiration au niveau de la session, vous pouvez définir SQLNET Ceci est réalisé en définissant le paramètre .ALLOWED_LOGON_VERSION sur 10 ou plus.

SQLNET.ALLOWED_LOGON_VERSION est un paramètre SQLNET.ORA qui définit quelles versions de base de données Oracle peuvent être authentifiées. Par exemple, lorsque vous autorisez l'authentification Oracle 10g, vous pouvez définir ce paramètre :

SQLNET.ALLOWED_LOGON_VERSION_CLIENT = 10

Cela permettra aux clients connectés à la base de données Oracle 10g de se connecter.

3. Paramètre de délai d'expiration au niveau SQLNET

Le délai d'expiration au niveau SQLNET est implémenté en fonction des paramètres du fichier SQLNET.ORA. Le fichier SQLNET.ORA se trouve généralement dans un répertoire spécifique sur le client ou le serveur Oracle.

Dans le fichier SQLNET.ORA, vous pouvez contrôler le délai d'expiration du niveau SQLNET en définissant deux paramètres, à savoir SQLNET.INBOUND_CONNECT_TIMEOUT et SQLNET.OUTBOUND_CONNECT_TIMEOUT.

SQLNET.INBOUND_CONNECT_TIMEOUT est un paramètre côté serveur, utilisé pour contrôler l'heure à laquelle le serveur accepte les sessions client.

SQLNET.OUTBOUND_CONNECT_TIMEOUT est un paramètre du client, utilisé pour contrôler l'heure à laquelle le client se connecte au serveur.

En définissant ces deux paramètres, vous pouvez éviter les longues connexions entre le client et le serveur, évitant ainsi de perdre trop de temps et de ressources sur la connexion.

Ajoutez les paramètres suivants dans le fichier SQLNET.ORA pour définir SQLNET.INBOUND_CONNECT_TIMEOUT :

INBOUND_CONNECT_TIMEOUT_LISTENER = 120

Définissez le délai d'attente pour que le serveur accepte les sessions client sur 120 secondes.

Ajoutez les paramètres suivants dans le fichier SQLNET.ORA pour définir SQLNET.OUTBOUND_CONNECT_TIMEOUT :

SQLNET.OUTBOUND_CONNECT_TIMEOUT=10

Définissez le délai d'attente pour que le client se connecte au serveur Oracle sur 10 secondes.

Il est à noter que lors de la modification des paramètres en modifiant le fichier SQLNET.ORA, vous devez redémarrer la base de données Oracle ou l'écouteur Oracle pour que les paramètres prennent effet.

4. Comment vérifier si le paramètre de délai d'attente est efficace

Après avoir terminé le réglage du délai d'attente Oracle, comment vérifier s'il est efficace ? Cela peut être vérifié via la vue dynamique v$session d'Oracle ou en traçant les instructions SQL.

  1. Vérifié par v$session view

Vous pouvez afficher la session en cours de l'utilisateur via l'instruction SQL suivante :

SELECT * FROM v$session WHERE sid = '&sid';

Le &sid ici est le SID de l'utilisateur actuel, peut être obtenu via la requête d'instruction SQL suivante :

SELECT sid, Serial# FROM v$session WHERE username = '&username';

Lorsque la SESSION spécifiée est trouvée, les paramètres CONNECT_TIME et IDLE_TIME de la SESSION peut être interrogé pour déterminer si Prendre effet.

  1. Tracer les instructions SQL

Si vous avez besoin de tracer les instructions SQL de la base de données Oracle, vous pouvez définir le paramètre TRACEFILE_IDENTIFIER de SESSION et utiliser l'outil Oracle Trace pour tracer les instructions SQL. Il convient de noter ici que vous avez besoin des autorisations SYSDBA ou SYSOPER pour effectuer des opérations de suivi.

Vous pouvez vérifier si les paramètres de délai d'attente Oracle sont valides via les deux méthodes ci-dessus. Si vous constatez que les paramètres ne sont pas valides, vous pouvez résoudre le problème en vérifiant si le fichier SQLNET.ORA est entièrement configuré et correct.

Résumé

Dans la base de données Oracle, étant donné que les connexions à long terme affecteront les performances du système et d'autres facteurs, les connexions doivent être contrôlées. Grâce à la commande ALTER SESSION et aux paramètres du fichier SQLNET.ORA présentés dans cet article, vous pouvez définir le délai d'expiration de la base de données Oracle. Bien entendu, en utilisation réelle, il est nécessaire de choisir la méthode de réglage du délai d'attente appropriée en fonction des différents environnements et des besoins réels.

Remarque : cet article fait référence à de nombreux excellents documents. En cas de violation, veuillez nous contacter pour le supprimer.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Comment supprimer Oracle RACArticle suivant:Comment supprimer Oracle RAC