使用Procwatcher监控Oracle数据库锁定Contention
数据库锁定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
更多详情见请继续阅读下一页的精彩内容:

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Oracle에서 테이블이 속한 테이블스페이스를 확인하는 방법: 1. "SELECT" 문을 사용하고 테이블 이름을 지정하여 지정된 테이블이 속한 테이블스페이스를 찾습니다. 2. Oracle에서 제공하는 데이터베이스 관리 도구를 사용하여 확인합니다. 3. SQL*Plus에서는 "DESCRIBEyour_table_name" 명령을 입력하여 테이블이 속한 테이블스페이스를 볼 수 있습니다. .

PDO를 사용하여 Oracle 데이터베이스에 연결하는 방법 개요: PDO(PHPDataObjects)는 PHP에서 데이터베이스를 운영하기 위한 확장 라이브러리로 여러 유형의 데이터베이스에 액세스할 수 있는 통합 API를 제공합니다. 이 기사에서는 PDO를 사용하여 Oracle 데이터베이스에 연결하고 몇 가지 일반적인 데이터베이스 작업을 수행하는 방법에 대해 설명합니다. 단계: Oracle 데이터베이스 드라이버 확장 설치 PDO를 사용하여 Oracle 데이터베이스에 연결하기 전에 해당 Oracle을 설치해야 합니다.

Oracle이 중복 데이터 중 하나만 가져오는 단계: 1. GROUP BY 및 HAVING 절과 결합된 SELECT 문을 사용하여 중복 데이터를 찾습니다. 2. ROWID를 사용하여 중복 데이터를 삭제하여 정확한 중복 데이터 레코드가 삭제되도록 합니다. 중복 데이터를 삭제하려면 "ROW_NUMBER" ()" 함수를 사용하세요. 그러면 각 중복 데이터 집합의 첫 번째 레코드를 제외한 모든 레코드가 삭제됩니다. 3. "select count(*) from" 문을 사용하여 삭제된 레코드 수를 반환합니다. 결과를 보장합니다.

PHP를 사용하여 PDO를 확장하여 Oracle 데이터베이스에 연결하는 방법 소개: PHP는 매우 널리 사용되는 서버 측 프로그래밍 언어이고 Oracle은 일반적으로 사용되는 관계형 데이터베이스 관리 시스템입니다. 이 문서에서는 PHP 확장 PDO(PHPDataObjects)를 사용하여 Oracle 데이터베이스에 연결하는 방법을 소개합니다. 1. PDO_OCI 확장을 설치합니다. Oracle 데이터베이스에 연결하려면 먼저 PDO_OCI 확장을 설치해야 합니다. PDO_OCI 확장을 설치하는 단계는 다음과 같습니다.

PHP 및 Oracle 데이터베이스로 데이터 가져오기 구현 웹 개발에서 PHP를 서버측 스크립트 언어로 사용하면 데이터베이스를 편리하게 운영할 수 있습니다. 일반적인 관계형 데이터베이스 관리 시스템인 Oracle 데이터베이스는 강력한 데이터 저장 및 처리 기능을 갖추고 있습니다. 이 기사에서는 PHP를 사용하여 Oracle 데이터베이스로 데이터를 가져오는 방법을 소개하고 해당 코드 예제를 제공합니다. 먼저, PHP와 Oracle 데이터베이스가 설치되어 있는지, 그리고 PHP가 다음과 같이 구성되었는지 확인해야 합니다.

PHP 및 Oracle 데이터베이스에서 연결 풀링을 효율적으로 사용하는 방법 소개: PHP 애플리케이션을 개발할 때 데이터베이스 사용은 필수적인 부분입니다. Oracle 데이터베이스와 상호 작용할 때 연결 풀을 사용하는 것은 애플리케이션 성능과 효율성을 향상시키는 데 매우 중요합니다. 이 기사에서는 PHP에서 Oracle 데이터베이스 연결 풀을 효율적으로 사용하는 방법을 소개하고 해당 코드 예제를 제공합니다. 1. 커넥션 풀링의 개념과 장점 커넥션 풀링은 데이터베이스의 커넥션을 미리 생성하여 유지하는 기술이다.

oracle 데이터베이스에는 jdk가 필요합니다. 1. 특정 소프트웨어나 기능을 사용하는 경우 JDK에 포함된 다른 소프트웨어나 라이브러리가 필요합니다. 2. Oracle 데이터베이스에서 Java 프로그램을 실행하려면 Java JDK를 설치해야 합니다. Java 애플리케이션 기능 개발 및 컴파일을 제공합니다. 4. 특정 기능을 구현하고 구현하는 데 도움이 되는 Java 기능에 대한 Oracle의 요구 사항을 충족합니다.

Oracle에서 테이블 공간 크기를 쿼리하는 단계: 1. 데이터베이스 관리자 계정을 사용하여 Oracle 데이터베이스에 로그인합니다. 2. "SELECT" 문을 사용하여 공간 목록을 봅니다. 3. 테이블 공간 크기를 쿼리하는 방법에는 세 가지가 있습니다. : dbms_utility 패키지를 사용하여 쿼리하고, dba_segments 뷰 쿼리를 사용하고, dba_data_files 뷰 쿼리를 사용합니다. 4. "DBMS_OUTPUT.PUT_LINE" 함수 또는 기타 방법을 사용하여 쿼리 결과를 표시합니다.
