Maison base de données tutoriel mysql 使用Procwatcher监控Oracle数据库锁定Contention

使用Procwatcher监控Oracle数据库锁定Contention

Jun 07, 2016 pm 04:49 PM
oracle数据库

数据库锁定Contention是我们在实际中经常遇到的问题。严重的Contention可能会引起整体数据库性能衰减,乃至连接失败。实际生产如

数据库锁定Contention是我们在实际中经常遇到的问题。严重的Contention可能会引起整体数据库性能衰减,乃至连接失败。实际生产如果出现Contention,通常是比较紧急的情况,快速定位错误问题,解决问题是运维人员的挑战。
 
Contention出现的原因很多,但总的来说有两个大的类型,一个是数据库本身后台进程之间协调故障,另一个是应用程序或者用户操作导致的等待锁定。前者通常是由于Oracle Bug引起的,后者是由于不成熟的设计开发引起的。
 
Contention锁定通常是进程之间的关系,所以解决问题的通法常常是利用oradebug和操作系统本身携带的Trace监控工具。对初学者而言,在紧急情况下使用这些工具常常是比较困难的。所以,Oracle推出了Procwatcher工具脚本,来进行统一的锁定分析工作。
 
Procwatcher可以从MOS官方网站进行下载,对应的文档ID为:459694.1。本篇主要介绍Procwatcher工具安装和使用。

--------------------------------------分割线 --------------------------------------

 CentOS 5.2 x86 安装Oracle 11g R2 笔记

在CentOS 6.4下安装Oracle 11gR2(x64)

Oracle 11gR2 在VMWare虚拟机中安装步骤

--------------------------------------分割线 --------------------------------------

1、环境介绍

 

我们使用的操作系统环境是Red Hat Linux 6.5。

 

[root@SimpleLinux /]# uname -r

2.6.32-431.el6.i686

 

2、Procwatcher安装配置

 

从MOS上下载的脚本是一个zip包,笔者版本为:prw_12.1.13.11.1.zip。在Linux中,创建专门目录进行上传。

 

[root@SimpleLinux ~]# cd /

[root@SimpleLinux /]# mkdir prw

[root@SimpleLinux /]# chown oracle:oinstall prw

[root@SimpleLinux /]# ls -l | grep prw

drwxr-xr-x.  2 oracle oinstall  4096 Apr 30 09:12 prw

 

使用sftp客户端上传zip包。

 

[root@SimpleLinux prw]# ls -l

total 36

-rw-r--r--. 1 root root 36203 Apr 30 09:16 prw_12.1.13.11.1.zip

[root@SimpleLinux prw]# unzip prw_12.1.13.11.1.zip

Archive:  prw_12.1.13.11.1.zip

  inflating: prw.sh                 

[root@SimpleLinux prw]# ls -l

total 220

-rw-r--r--. 1 root root  36203 Apr 30 09:16 prw_12.1.13.11.1.zip

-rwxr-xr-x. 1 root root 187245 Nov 26 23:12 prw.sh

[root@SimpleLinux prw]# chown oracle:oinstall *

[root@SimpleLinux prw]# ls -l

total 220

-rw-r--r--. 1 oracle oinstall  36203 Apr 30 09:16 prw_12.1.13.11.1.zip

-rwxr-xr-x. 1 oracle oinstall 187245 Nov 26 23:12 prw.sh

 

prw.sh就是工具的唯一实体,,可以执行脚本来进行操作。

使用Procwatcher是需要操作系统环境检查,首先要求执行用户PATH中包括/usr/bin和/bin目录。

 

 

[oracle@SimpleLinux ~]$ env | grep PATH

PATH=/usr/lib/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oracle/bin:/u01/app/oracle/bin
 
MODULEPATH=/usr/share/Modules/modulefiles:/etc/modulefiles

 

环境变量中包括标准的$ORACLE_系列。

 

[oracle@SimpleLinux ~]$ env | grep ORA

ORACLE_SID=ora11g

ORACLE_BASE=/u01/app

ORACLE_HOME=/u01/app/oracle

 

执行用户要求是Oracle owner用户。如果是cluster(RAC)或者多个oracle user的情况,可以使用root来执行。

操作系统中必须包括系统调试工具。列表如下:

 

Linux - /usr/bin/gdb

HP-UX and HP Itanium - /opt/langtools/bin/gdb64 or /usr/ccs/bin/gdb64

Sun - /usr/bin/pstack

IBM AIX - /bin/procstack or /bin/dbx

HP Tru64 - /bin/ladebug

 

 

[oracle@SimpleLinux ~]$ rpm -qa | grep gdb

gdb-7.2-60.el6_4.1.i686

gdbm-1.8.0-36.el6.i686

eggdbus-0.6-3.el6.i686

gdbm-devel-1.8.0-36.el6.i686

 

执行脚本prw.sh,可以自动的进行进程级别的数据收集。可以调用参数help来进行帮助信息。

 

[oracle@SimpleLinux prw]$ ./prw.sh help

 

Usage:  prw.sh

Verbs are:

 

start [all] - Start Procwatcher on local node, if 'all' is specified, start on all nodes
 
stop [all] - Stop Procwatcher on local node, if 'all' is specified, stop on all nodes
 
stat - Check the current status of Procwatcher

pack - Package up Procwatcher files (on all nodes) to upload to support

param - Check current Procwatcher parameters

log [number] - See the last [number] lines of the procwatcher log file

log [runtime] - See contiuous procwatcher log file info - use Cntrl-C to break

help - What you are looking at...

 

参数调用是比较简单的,通过帮助信息可以了解使用的方法。相对于oradebug和操作系统层面的调用,易用性要好得多。使用stat参数,可以来查看脚本当前运行情况。
 
 

[oracle@SimpleLinux prw]$ ./prw.sh stat

Wed Apr 30 09:25:46 CST 2014: PROCWATCHER VERSION: 12.1.13.11.1

Wed Apr 30 09:25:46 CST 2014: ### Parameters ###

Wed Apr 30 09:25:46 CST 2014: EXAMINE_CLUSTER=false

Wed Apr 30 09:25:46 CST 2014: EXAMINE_BG=true

Wed Apr 30 09:25:46 CST 2014: PRWPERM=777

Wed Apr 30 09:25:46 CST 2014: RETENTION=7

Wed Apr 30 09:25:46 CST 2014: WARNINGEMAIL=

Wed Apr 30 09:25:46 CST 2014: INTERVAL=60

Wed Apr 30 09:25:46 CST 2014: THROTTLE=5

Wed Apr 30 09:25:46 CST 2014: IDLECPU=3

Wed Apr 30 09:25:46 CST 2014: SIDLIST=

Wed Apr 30 09:25:46 CST 2014: ### Advanced Parameters (non-default) ###

Wed Apr 30 09:25:46 CST 2014: ### End Parameters ###

 

Wed Apr 30 09:25:46 CST 2014: Procwatcher is not running on local node SimpleLinux
 
Wed Apr 30 09:25:46 CST 2014: Procwatcher files are be written to: /prw

更多详情见请继续阅读下一页的精彩内容:

linux

Déclaration de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment vérifier à quel espace table appartient une table dans Oracle Comment vérifier à quel espace table appartient une table dans Oracle Jul 06, 2023 pm 01:31 PM

Comment vérifier à quel espace table appartient une table dans Oracle : 1. Utilisez l'instruction "SELECT" et spécifiez le nom de la table pour trouver l'espace table auquel appartient la table spécifiée. 2. Utilisez les outils de gestion de base de données fournis par Oracle pour vérifier ; l'espace table auquel appartient la table. Les outils fournissent généralement une interface graphique, rendant l'opération plus intuitive et plus pratique ; 3. Dans SQL*Plus, vous pouvez afficher l'espace table auquel appartient la table en entrant la commande "DESCRIBEyour_table_name ;" .

Comment se connecter à la base de données Oracle à l'aide de PDO Comment se connecter à la base de données Oracle à l'aide de PDO Jul 28, 2023 pm 12:48 PM

Présentation de l'utilisation de PDO pour se connecter à la base de données Oracle : PDO (PHPDataObjects) est une bibliothèque d'extension pour exploiter des bases de données en PHP. Elle fournit une API unifiée pour accéder à plusieurs types de bases de données. Dans cet article, nous verrons comment utiliser PDO pour se connecter à une base de données Oracle et effectuer certaines opérations courantes sur la base de données. Étape : Installez l'extension du pilote de base de données Oracle. Avant d'utiliser PDO pour vous connecter à la base de données Oracle, nous devons installer l'Oracle correspondant.

Comment récupérer un seul élément de données en double dans Oracle Comment récupérer un seul élément de données en double dans Oracle Jul 06, 2023 am 11:45 AM

Étapes permettant à Oracle de récupérer un seul élément de données en double : 1. Utilisez l'instruction SELECT combinée avec les clauses GROUP BY et HAVING pour rechercher les données en double ; 2. Utilisez ROWID pour supprimer les données en double afin de garantir que les enregistrements de données en double précis sont supprimés ; ou utilisez la fonction "ROW_NUMBER" ()" pour supprimer les données en double, ce qui supprimera tous les enregistrements sauf le premier enregistrement de chaque ensemble de données en double ; 3. Utilisez l'instruction "select count(*) from" pour renvoyer le nombre d'enregistrements supprimés à assurer le résultat.

Implémenter l'importation de données dans les bases de données PHP et Oracle Implémenter l'importation de données dans les bases de données PHP et Oracle Jul 12, 2023 pm 06:46 PM

Implémentation de l'importation de données dans les bases de données PHP et Oracle Dans le développement Web, l'utilisation de PHP comme langage de script côté serveur permet d'exploiter facilement la base de données. En tant que système de gestion de base de données relationnelle commun, la base de données Oracle dispose de puissantes capacités de stockage et de traitement des données. Cet article explique comment utiliser PHP pour importer des données dans une base de données Oracle et donne des exemples de code correspondants. Tout d'abord, nous devons nous assurer que les bases de données PHP et Oracle ont été installées et que PHP a été configuré pour

Comment utiliser php pour étendre PDO afin de se connecter à la base de données Oracle Comment utiliser php pour étendre PDO afin de se connecter à la base de données Oracle Jul 29, 2023 pm 07:21 PM

Comment utiliser PHP pour étendre PDO afin de se connecter à la base de données Oracle Introduction : PHP est un langage de programmation côté serveur très populaire et Oracle est un système de gestion de base de données relationnelle couramment utilisé. Cet article explique comment utiliser l'extension PHP PDO (PHPDataObjects) pour se connecter à la base de données Oracle. 1. Installez l'extension PDO_OCI. Pour vous connecter à la base de données Oracle, vous devez d'abord installer l'extension PDO_OCI. Voici les étapes pour installer l'extension PDO_OCI : Assurez-vous

La base de données Oracle nécessite-t-elle JDK ? La base de données Oracle nécessite-t-elle JDK ? Jun 05, 2023 pm 05:06 PM

La base de données Oracle nécessite JDK. Les raisons sont les suivantes : 1. Lors de l'utilisation de logiciels ou de fonctions spécifiques, d'autres logiciels ou bibliothèques inclus dans le JDK sont requis 2. Java JDK doit être installé pour exécuter des programmes Java dans la base de données Oracle ; fournit Développer et compiler des fonctions d'application Java ; 4. Répondre aux exigences d'Oracle en matière de fonctions Java pour aider à implémenter et à mettre en œuvre des fonctions spécifiques.

Comment utiliser efficacement les pools de connexions aux bases de données PHP et Oracle Comment utiliser efficacement les pools de connexions aux bases de données PHP et Oracle Jul 12, 2023 am 10:07 AM

Comment utiliser efficacement le pool de connexions dans les bases de données PHP et Oracle Introduction : Lors du développement d'applications PHP, l'utilisation d'une base de données est un élément essentiel. Lors de l'interaction avec les bases de données Oracle, l'utilisation de pools de connexions est cruciale pour améliorer les performances et l'efficacité des applications. Cet article explique comment utiliser efficacement le pool de connexions à la base de données Oracle en PHP et fournit des exemples de code correspondants. 1. Le concept et les avantages du pooling de connexions Le pooling de connexions est une technologie de gestion des connexions aux bases de données. Il crée un lot de connexions à l'avance et maintient un lot de connexions.

Comment interroger la taille de l'espace table dans Oracle Comment interroger la taille de l'espace table dans Oracle Jul 06, 2023 pm 01:45 PM

Étapes pour interroger la taille de l'espace table dans Oracle : 1. Connectez-vous à la base de données Oracle à l'aide d'un compte d'administrateur de base de données ; 2. Utilisez l'instruction "SELECT" pour afficher la liste des espaces ; 3. Il existe trois méthodes pour interroger la taille de l'espace table ; : utilisez le package dbms_utility pour interroger et utilisez la requête de vue dba_segments, utilisez la requête de vue dba_data_files ; 4. Utilisez la fonction "DBMS_OUTPUT.PUT_LINE" ou d'autres méthodes pour afficher les résultats de la requête.

See all articles