星期六 二月 08, 2014

Oracle诊断工具 - ORA-2730x Troubleshooting Tool


通常情况下,ORA-27300 ORA-27301 ORA-27302错误的原因是操作系统的系统调用错误或者操作系统配置问题,错误格式:
ORA-27300: OS system dependent operation:%s  failed with status: %s
ORA-27301: OS failure message: %s
ORA-27302: failure occurred at: %s

Oracle support网站提供ORA-2730x错误诊断工具:ORA-2730x  Troubleshooting Tool


ORA-2730x Troubleshooting Tool根据分析上传的日志文件,提供ORA-2730x的分析解决方案。
如果符合已知的解决方案,那么ORA-2730x Troubleshooting Tool提供错误原因和解决方案。
如果没有符合的已知解决方案,那么ORA-2730x Troubleshooting Tool会导向ORA-2730x有关的Notes,详细解释ORA-2730x错误,并提供已知的bug信息。

使用ORA-2730x Troubleshooting Tool好处:


- 分析上传的文件,对于一个已知的问题,提供错误的原因和解决方案。
- 提供诊断分析报告。
- 可选择创建SR,会自动填入许多SR的项目。

访问ORA-2730x Troubleshooting Tool2种方法:


方法1:创建SR时使用ORA-2730x Troubleshooting Tool访问Support网站
    步骤1:上传文件
    步骤2:浏览推荐

方法2 直接访问ORA-2730x Troubleshooting Tool (访问URL)
    步骤1:分析新的问题
    步骤2:上传文件
    步骤3:浏览推荐
    步骤4:浏览诊断报告(可选)

了解更多ORA-2730x错误的note,请参考:


ORA-2730x Troubleshooting Tool (Doc ID  1541106.1)
Troubleshooting ORA-27300 ORA-27301  ORA-27302 errors (Doc ID 579365.1)



了解最新数据库技术资讯请关注:Oracle数据库技术支持通讯(Doc ID 1529795.1)
















星期三 一月 08, 2014

Oracle诊断工具 - ORA-1578 Troubleshooting Tool


Oracle support网站提供ORA-1578错误诊断工具:ORA-1578 Troubleshooting Tool。

ORA-1578 Troubleshooting Tool根据分析上传的日志文件,提供ORA-1578的分析解决方案。

如果符合一个已知的问题,那么ORA-1578 Troubleshooting Tool提供错误原因和解决方案。

如果没有符合的已知问题,那么ORA-1578 Troubleshooting Tool会导向ORA-1578 master note,详细介绍ORA-1578错误。



ORA-1578是一个常见的坏块错误信息,说明数据库检测到数据坏块(block corruption),并且打印出坏块信息:相对文件号和块号。

例如:

ORA-01578: ORACLE 数据块损坏 (文件号 17, 块号 1862743)



使用ORA-1578 Troubleshooting Tool好处:

- 分析上传的文件后,对于一个已知的问题,提供错误的原因和解决方案。

- 如果没有已知问题,会导向ORA-1578 master note。

- 提供诊断分析报告。

- 可选择创建SR,会自动填入许多SR的项目。



访问ORA-1578 Troubleshooting Tool有2种方法:


方法1:创建SR时使用ORA-1578 Troubleshooting Tool(访问Support网站

    步骤1:上传文件

    步骤2:浏览推荐

方法2: 直接访问ORA-1578 Troubleshooting Tool (访问URL)

    步骤1:分析新的问题

    步骤2:上传文件

    步骤3:浏览推荐

    步骤4:浏览诊断向导

更多ORA-1578 Troubleshooting Tool介绍,请参考:

ORA-1578 Troubleshooting Tool (Doc ID 1567169.1)

OERR: ORA-1578 "ORACLE data block corrupted (file # %s, block # %s)" Master Note (Doc ID 1578.1)

星期四 十一月 21, 2013

RACcheck-RAC健康检查好帮手


     RACcheck 是在RAC系统上进行健康检查的一个专用工具,这个工具主要用来检查RAC相关软件的配置是否符合要求以及一些最佳实践是否被应用了。通过这个工具,用户可以很方便地、自动化地对自己的系统进行健康检查和评估。

    RACcheck 能够检查的软件主要有:OS、Oracle Clusterware (CRS)、 Grid Infrastructure environment(GI)、Automatic Storage Management (ASM)以及Real Application Clusters (RAC)。


    检查的项目包括:
      o OS kernel 参数
      o OS 包/补丁
      o OS上其它和RAC相关的配置
      o CRS/Grid Infrastructure
      o RDBMS
      o ASM
      o 数据库参数
      o 对于RAC数据库影响较大的设置
      o 升级到11.2.0.3/11.2.0.4/12c时的升级检查

    目前支持的平台:
       o Linux x86-64* (Enterprise Linux, RedHat and SuSE 9, SuSE 10 & SuSE 11)
       o Oracle Solaris SPARC (64-bit)(Solaris 10 and 11)
       o Oracle Solaris x86-64 (Solaris 10 and 11)
       o IBM AIX on POWER Systems (64-bit) **
       o HP-UX PA-RISC (64-bit)**
       o HP-UX Itanium **

       *  不支持32位平台,不支持 Linux Itanium
       ** 需要安装BASH Shell 3.2 或之上

    目前支持的数据库版本:

       o 10gR2
       o 11gR1
       o 11gR2
       o 12cR1

    注:自版本 2.2.0 起,RACcheck 支持单实例、Oracle Restart 以及 RAC(包括 RAC One)  


    我们推荐使用最新版本的RACcheck,这是因为RACcheck基于最佳实践,这些最佳实践会不断更新,另一方面RACcheck会检查补丁的安装情况,PSU 是按季度推出的,所以RACcheck也会至少每两到三个月更新一次。

    1.首先看一下如何下载和安装RACcheck


     RACcheck是从下面的My Oracle Support 文档中下载:
    RACcheck - RAC Configuration Audit Tool (Doc ID 1268927.1)

    对于RAC环境,只需要在任意一个节点执行RACcheck就可以,会通过SSH连接到别的节点收集数据,由于它会以sysdba身份登录到数据库中做很多检查,所以要求用数据库软件的属主来执行RACcheck,而且要对oracle用户配置用户等效性,使它能够无需密码就连接到远程节点

    下载之后的文件为raccheck.zip。 将这个文件用数据库软件属主上传到RAC集群的任一节点,比如节点1的一个目录:
su - oracle  <=======用数据库属主执行
$cd /home/oracle
$mkdir racheck
$cd raccheck

$pwd
/home/oracle/raccheck <==本例中把raccheck.zip上传到了这个目录

$ls -l raccheck
-rw-r--r-- 1 oracle oinstall 3822755 Nov 10 18:45 raccheck.zip

$unzip  raccheck.zip <==解压这个文件

$ls -l
total 25852
-rw-rw-r-- 1 oracle oinstall 17036921 Oct  7 15:42 collections.dat
-rwxr-xr-x 1 oracle oinstall  1152273 Oct  7 15:42 raccheck <============这个文件的权限为755,属主是oracle
-rw-r--r-- 1 oracle oinstall  3822755 Nov 10 18:45 raccheck.zip
-rw-r--r-- 1 oracle oinstall     2231 Oct  7 15:42 readme.txt
-rw-rw-r-- 1 oracle oinstall  4398080 Oct  7 15:42 rules.dat
-rw-r--r-- 1 oracle oinstall      304 Oct  7 15:42 UserGuide.txt

   2. 接下来看一下如何执行raccheck

   它的执行也是非常简单的,用oracle用户执行:
[oracle-AT-rac1 raccheck]$ ./raccheck

CRS stack is running and CRS_HOME is not set. Do you want to set CRS_HOME to /u01/app/11.2.0.4/grid?[y/n][y]y <==确认CRS_HOME是否正确

Checking ssh user equivalency settings on all nodes in cluster
Node rac2 is configured for ssh user equivalency for oracle user

Searching for running databases . . . . .
. .
List of running databases registered in OCR
1. RACDB
2. None of above

Select databases from list for checking best practices. For multiple databases, select 1 for All or comma separated number
like 1,2 etc [1-2][1].1 《===========选择要进行检查的数据库
. .

Checking Status of Oracle Software Stack - Clusterware, ASM, RDBMS
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
-------------------------------------------------------------------------------------------------------
                                                Oracle Stack Status
-------------------------------------------------------------------------------------------------------
Host Name  CRS Installed  ASM HOME       RDBMS Installed  CRS UP    ASM UP    RDBMS UP  DB Instance Name
-------------------------------------------------------------------------------------------------------
rac1        Yes             Yes             Yes             Yes        Yes      Yes      RACDB1  
rac2        Yes             Yes             Yes             Yes        Yes      Yes      RACDB2  
-------------------------------------------------------------------------------------------------------
Copying plug-ins
. . . . . . . . . . . . . . . . . .
. . . . . .

113 of the included audit checks require root privileged data collection . If sudo is not configured or the root password is
not available, audit checks which  require root privileged data collection can be skipped.

1. Enter 1 if you will enter root password for each  host when prompted
2. Enter 2 if you have sudo configured for oracle user to execute root_raccheck.sh script
3. Enter 3 to skip the root privileged collections
4. Enter 4 to exit and work with the SA to configure sudo  or to arrange for root access and run the tool later.

Please indicate your selection from one of the above options for root access[1-4][1]:-1 <=========root密码输入方式,选择1表示手工输入

注:
选项1:在执行阶段根据提示输入root密码
选项2:表示为oracle用户配置了sudo。
选项3:跳过需要使用root权限进行的检查,不推荐。
选项4:退出RACcheck来进行root权限相关的配置。


Is root password same on all nodes?[y/n][y]y 《===root的密码是否在所有节点都一致
Enter root password :  <==输入root用户的密码
Verifying root password.
. . .

*** Checking Best Practice Recommendations (PASS/WARNING/FAIL) *** 《========开始进行检查

Collections and audit checks log file is
/home/oracle/raccheck/raccheck_rac1_RACDB_111013_185118/log/raccheck.log

Checking for prompts in /home/oracle/.bash_profile on rac1 for oracle user...

Checking for prompts in /home/oracle/.bash_profile on rac2 for oracle user...

Starting to run raccheck in background on rac2 <==========对远程节点也进行检查

=============================================================
                    Node name - rac1
=============================================================

Collecting - ASM DIsk I/O stats
Collecting - ASM Disk Groups
Collecting - ASM Diskgroup Attributes
Collecting - ASM disk partnership imbalance
Collecting - ASM diskgroup attributes
Collecting - ASM initialization parameters

完成后,将显示以下(或类似)内容:
Detailed report (html) - /home/oracle/raccheck/raccheck_rac1_RACDB_111013_185118/raccheck_rac1_RACDB_111013_185118.html
UPLOAD(if required) - /home/oracle/raccheck/raccheck_rac1_RACDB_111013_185118.zip

    两个节点的RACcheck一般需要运行10多分钟,每个节点大概需要5分钟。RACcheck 占用的资源很少,在我的测试库上大概占用了10%左右的CPU。另外,RACcheck生成的结果一般在5M左右,自动压缩生成的.zip文件大概几百K。

  3. 再看一下RACcheck生成的报告


   RACcheck 检查完成之后会生成一个html报告,这个报告的命名为:racheck_节点名_数据库名_时间.html,比如raccheck_rac1_RACDB_111013_185118.html。同时,它还会把所有的输出文件都打包为一个.zip文件,比如raccheck_rac1_RACDB_111013_185118.zip,可以把这个.zip文件从RAC服务器上下载到本地的windows,解压后查看其中的生成的racheck_节点名_数��库名_时间.html 这一个文件就可以。

   生成的报告也非常
简单、清晰,在报告最上部会列出这次检查的分数,满分是100分。



   在html报告中会列出下面的内容:

Findings Needing Attention  <==检查失败的项目,分别为FAIL、WARNING、INFO
   On Database Server
MAA Scorecard               <==MAXIMUM AVAILABILITY ARCHITECTURE,也就是最大可用架构
Findings Passed             <==通过的项目
   On Database Server
   Cluster Wide
GRID and RDBMS patch recommendation Summary report   <==补丁检查结果
GRID and RDBMS patch recommendation Detailed report <==推荐打的补丁

    对于每一项失败的项目,点击对应的“View"按钮会,会列出这项检查为何失败、这个问题会导致的影响、 推荐的解决方案,相关文档等。





   4. RACcheck 升级检查功能


   RACcheck 还有一个很赞的功能就是升级前和升级后的检查,当前的RACcheck版本2.2.3_20131007已经支持升级到版本11.2.0.3/11.2.0.4/12c时的升级检查。进行升级检查的目的是为了保障集群和RAC升级的过程尽量平稳和顺利,尽量避免遇到已知的问题。使用RACcheck进行升级检查的好处是它整合了许多升级方面常用的文档,这样就可以统一入口,用RACcheck这个工具进行检查就可以。


   升级检查分两个阶段:
o 升级前:
    $./raccheck -u -o pre 
  o 升级后:
    $./raccheck -u -o post


  5. 什么时候适宜运行RACcheck呢?

  o 在系统负载较低的时候运行,这样系统影响最小。RACcheck 不会对系统的性能状况进行分析,因此不需要在系统发生性能情况时执行。
  o 另外在RAC环境部署完毕之后推荐运行一下来检查一下系统的配置健康情况。
  o 还推荐在计划内的维护前和维护后都执行一下
  o 在升级前和升级后也要执行
  o 在日常维护中,至少每三个月执行一次,因为RACcheck每两到三个月会更新一次

   默认方式执行 ./raccheck 后只会执行一次,但是可以在执行RACcheck时以自动任务的方式让它定期执行,并发送邮件通知。具体的配置方式请参考RACcheck的用户手册章节“How to Run RACcheck Using the RACcheck Daemon”(也是在MOS文档 1268927.1中下载)。

   比如:
首先设置自动任务的参数:
$ ./raccheck -set "AUTORUN_INTERVAL=1d;AUTORUN_FLAGS= -o v;NOTIFICATION_EMAIL=firstname.lastname@company-DOT-com;PASSWORD_CHECK_INTERVAL=1"

用daemon方式启动RACcheck:
$ ./raccheck –d start

   RACcheck 不会像OSWatcher一样自动维护它的输出文件,需要手工清除或者设置cron等自动任务来清除。
   另外,不可以在一台server上同时启动多个RACcheck,同一时刻只能执行一个RACcheck。

   需要注意的是,RACcheck不是诊断工具,不是性能调优工具,也不是数据收集工具,比如RAC节点发生了重启,那么RACcheck不能告诉你重启的原因,它也不会收集诊断重启问题的数据,所以它不能代替RDA ,diagcollection等工具。另外,RACcheck也不能代替cluster verification utility,这是因为他们两个工具是互补的CVU 是集群自带的工具,而且GI会定时调用CVU来进行一些RAC的检查,但是CVU的版本是确定的,不像RACcheck会定期被更新。

  RACcheck 的支持是通过MOS的社区来进行的,在RAC/Scalability 这个社区中有一个专门用于RACcheck的帖子RAC/Scalability Community Forum,如果有RACcheck的问题,可以在这个帖子提问,注意这个帖子是英文的。还可以在中文数据库社区进行讨论。


  我们在2013年11月份进行了一个关于RACcheck的网上讲座,讲座的录像和讲义可以在在MOS文档1456176.1=》“Archived 2013”=》使用RACCheck诊断和预防RAC问题=》点击Recording 或者 .pdf 进行下载。

  附:我用目前最新的RACcheck版本进行了测试,单实例上也可以运行RACcheck,下面是在AIX上利用RACcheck对10.2.0.5的单实例数据库进行检查的过程:


$ ./raccheck
This computer is for [S]ingle instance database or part of a [C]luster to run RAC database [S|C] [C]:S

raccheck did not find the RDBMS binaries on nascds5 from environment.
Please set RAT_ORACLE_HOME to ORACLE_HOME in current shell to override and re-run it.
eg export RAT_ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1

$export RAT_ORACLE_HOME=/opt/oracle/products/10.2.0.5

$ ./raccheck
This computer is for [S]ingle instance database or part of a [C]luster to run RAC database [S|C] [C]:S
RDBMS binaries found at /opt/oracle/products/10.2.0.5 and ORACLE_HOME not set. Do you want to set ORACLE_HOME to
/opt/oracle/products/10.2.0.5?[y/n][y]y

Checking Status of Oracle Software Stack - Clusterware, ASM, RDBMS
. . . . . . . . .
-------------------------------------------------------------------------------------------------------
                                                 Oracle Stack Status                            
-------------------------------------------------------------------------------------------------------
Host Name  CRS Installed  ASM HOME       RDBMS Installed  CRS UP    ASM UP    RDBMS UP  DB Instance Name
-------------------------------------------------------------------------------------------------------
nascds5    No             ./raccheck: line 9508: [: -eq: unary operator expected
Yes            Yes              No        No        No                                 
-------------------------------------------------------------------------------------------------------
raccheck did not find the Clusterware version from environment.
Please set RAT_DB to cluster version in current shell to override and re- run it.
eg export RAT_DB=112020

$ export RAT_DB=102050

$ ./raccheck
This computer is for [S]ingle instance database or part of a [C]luster to run RAC database [S|C] [C]:S
RDBMS binaries found at /opt/oracle/products/10.2.0.5 and ORACLE_HOME not set. Do you want to set ORACLE_HOME to
/opt/oracle/products/10.2.0.5?[y/n][y]y

Checking Status of Oracle Software Stack - Clusterware, ASM, RDBMS

. . . . . . . . .
-------------------------------------------------------------------------------------------------------
                                                 Oracle Stack Status                            
-------------------------------------------------------------------------------------------------------
Host Name  CRS Installed  ASM HOME       RDBMS Installed  CRS UP    ASM UP    RDBMS UP  DB Instance Name
-------------------------------------------------------------------------------------------------------
nascds5    No             ./raccheck: line 9508: [: -eq: unary operator expected
Yes            Yes              No        No        No                                 
-------------------------------------------------------------------------------------------------------

Copying plug-ins
. . . . . . . . . . . . . . . . . .
. . . . . .

*** Checking Best Practice Recommendations (PASS/WARNING/FAIL) ***

Collections and audit checks log file is
/home/oracle/raccheck/raccheck_nascds5_112113_094623/log/raccheck.log
Checking for prompts in /home/oracle/.profile on nascds5 for oracle user...
=============================================================
                    Node name - nascds5                                
=============================================================

Collecting - AIX Packages
Collecting - CPU Information
Collecting - Disk Information
Collecting - Memory Information
Collecting - Network tunable parameters
Collecting - OS fixes or patches
Collecting - Patches for RDBMS Home
Collecting - System and Kernel Settings

Data collections completed. Checking best practices on nascds5.
--------------------------------------------------------------------------------------
 WARNING => OS Patch IZ97457 is recommended but not installed
 FAIL =>    OS Patch IZ89165 is recommended but not installed
 FAIL =>    OS Patch IZ41855 is recommended but not installed
 FAIL =>    OS Patch IZ52319 is recommended but not installed
 FAIL =>    OS Patch IZ51456 is recommended but not installed
 WARNING => kernel paramater tcp_ephemeral_low is not set to recommended value of 9000
 WARNING => kernel paramater udp_ephemeral_low is not set to recommended value of 9000
 WARNING => kernel paramater maxuproc is not set to recommended value of 13684
 WARNING => kernel paramater maxreqs is not set to recommended value of 65536

Best Practice checking completed.Checking recommended patches on nascds5.
---------------------------------------------------------------------------------
---------------------------------------------------------------------------------
---------------------------------------------------------------------------------
              RDBMS homes patches summary report
---------------------------------------------------------------------------------
Total patches  Applied on RDBMS Applied on ASM ORACLE_HOME         
---------------------------------------------------------------------------------
---------------------------------------------------------------------------------
---------------------------------------------------------------------------------
Detailed report (html) - /home/oracle/raccheck/raccheck_nascds5_112113_094623/raccheck_nascds5_112113_094623.html

UPLOAD(if required) - /home/oracle/raccheck/raccheck_nascds5_112113_094623.zip

星期四 六月 13, 2013

TFA Collector 介绍

1.TFA的目的:
TFA是个11.2版本上推出的用来收集Grid Infrastructure/RAC环境下的诊断日志的工具,它可以用非常简单的命令协助用户收集RAC里的日志,以便进一步进行诊断;TFA是类似diagcollection的一个oracle 集群日志收集器,而且TFA比diagcollection集中和自动化的诊断信息收集能力更强大。TFA有以下几个特点:
1.    TFA可以在一台机器上执行一条简单的命令把所有节点的日志进行打包,封装;
2.    TFA可以在收集的过程中对日志进行”trim”操作,减少数据的收集量;
3.    TFA可以收集用来诊断用的“一段时间内”的数据;
4.    TFA可以把所有节点的日志收集并封装好放在某一个节点上以便传输阅读;
5.    TFA可以指定Cluster中的某一部分组件进行日志收集,如:ASM ,RDBMS,Clusterware
6.    TFA可以根据条件配置对告警日志进行实时扫描(DB Alert Logs, ASM Alert Logs, Clusterware Alert Logs, etc);
7.    TFA可以根据实时扫描的结果自动的收集诊断日志;
8.    TFA可以根据指定的错误进行对告警日志的扫描;
9.    TFA可以根据指定的错误扫描后的结果收集诊断日志;    
2.    TFA的安装要求:

平台:

目前TFA支持以下几种平台:    
Intel Linux(Enterprise Linux, RedHat Linux, SUSE Linux)
Linux Itanium
Oracle Solaris SPARC
Oracle Solaris x86-64
AIX (requires bash shell version 3.2 or higher installed)
HPUX Itanium
HPUX PA-RISC

2.支持的数据库版本:

TFA目前的设计是脱离RDBMS和CRS进行设计的,所以设计的初衷是针对所有的版本而设计的,不受RDBMS或者CRS的版本限制;

下载 TFA Collector:

该版本的TFA和相关TFA用户指南可以通过点击下面的相关下载链接。

TFA 收集器:

https://mosemp.us.oracle.com/epmos/main/downloadattachmentprocessor?attachid=1513912.1:TFA_NOJRE&clickstream=no
TFA 用户手册:
https://mosemp.us.oracle.com/epmos/main/downloadattachmentprocessor?attachid=1513912.1:TFA_USER_GUIDE&clickstream=no

3.    TFA快速安装指南:

安装:

注意:在安装之前请确保您的环境上已经安装了JRE1.6或者是更高版本的JRE,如果没有,请先安装JRE1.6
1.    请使用root用户登录系统
2.    在所有的节点上为TFA准备一个安装的位置,注意这个位置不要放在Cluster file system中;
3.    在节点1上执行installTFALite.sh来启动安装过程:
---------------------------------
[root@rac1 tmp]# ./installTFALite.sh
Starting TFA installation
---------------------------------
4.    当系统提示安装位置,输入在第2步中选择的位置的TFA安装,:
---------------------------------
Enter a location for installing TFA [/opt/oracle/tfa]:/opt/oracle/tfa
Checking for available space in /opt/oracle/tfa/
---------------------------------
5.    请输入之前安装了JRE1.6的JAVA_HOME,注意这个位置需要在所有的节点上都相同:
---------------------------------
Enter a Java Home that contains Java 1.6 or later : /usr/java/jre1.7.0_11
Running Auto Setup for TFA as user root...
---------------------------------
6.    按照以下说明完成安装:
------------------------------------------------------------------
Would you like to do a [L]ocal only or [C]lusterwide installation ? [L|l|C|c] [C] :
The following installation requires temporary use of SSH.
If SSH is not configured already then we will remove SSH
when complete.
  Do you wish to Continue ? [Y|y|N|n] [N] Y
Installing TFA at /opt/oracle/tfa in all hosts
Discovering Nodes and Oracle resources
Checking whether CRS is up and running

Getting list of nodes in cluster

Checking ssh user equivalency settings on all nodes in cluster

Node rac2 is configured for ssh user equivalency for root user


Searching for running databases . . . . .

.
List of running databases registered in OCR
1. ORCL
. .

Checking Status of Oracle Software Stack - Clusterware, ASM, RDBMS

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

TFA Will be Installed on the Following Nodes
++++++++++++++++++++++++++++++++++++++++++++

Install Nodes
=============
rac1
rac2
Do you wish to make changes to the Node List ? [Y/y/N/n] [N]

TFA will scan the following Directories
++++++++++++++++++++++++++++++++++++++++++++

.----------------------------------------------------------------.
|                             rac2                               |
+-----------------------------------------------------+----------+
| Trace Directory                                     | Resource |
+-----------------------------------------------------+----------+
| /u01/app/11.2.0/grid/cfgtoollogs                    | INSTALL  |
| /u01/app/11.2.0/grid/crs/log                        | CRS      |
| /u01/app/11.2.0/grid/css/log                        | CRS      |
| /u01/app/11.2.0/grid/cv/log                         | CRS      |
| /u01/app/11.2.0/grid/evm/admin/log                  | CRS      |
| /u01/app/11.2.0/grid/evm/admin/logger               | CRS      |
| /u01/app/11.2.0/grid/evm/log                        | CRS      |
| /u01/app/11.2.0/grid/install                        | INSTALL  |
| /u01/app/11.2.0/grid/log/                           | CRS      |
| /u01/app/11.2.0/grid/network/log                    | CRS      |
| /u01/app/11.2.0/grid/oc4j/j2ee/home/log             | CRSOC4J  |
| /u01/app/11.2.0/grid/opmn/logs                      | CRS      |
| /u01/app/11.2.0/grid/racg/log                       | CRS      |
| /u01/app/11.2.0/grid/rdbms/log                      | ASM      |
| /u01/app/11.2.0/grid/scheduler/log                  | CRS      |
| /u01/app/11.2.0/grid/srvm/log                       | CRS      |
| /u01/app/oraInventory/ContentsXML                   | INSTALL  |
| /u01/app/oraInventory/logs                          | INSTALL  |
| /u01/app/oracle/cfgtoollogs                         | CFGTOOLS |
| /u01/app/oracle/diag/asm/+asm/+ASM2/trace           | ASM      |
| /u01/app/oracle/diag/rdbms/orcl/ORCL2/trace         | RDBMS    |
| /u01/app/oracle/diag/tnslsnr                        | TNS      |
| /u01/app/oracle/diag/tnslsnr/rac2/listener/trace    | TNS      |
| /u01/app/oracle/product/11.2.0/dbhome_1/cfgtoollogs | INSTALL  |
| /u01/app/oracle/product/11.2.0/dbhome_1/install     | INSTALL  |
'-----------------------------------------------------+----------'

.----------------------------------------------------------------.
|                             rac1                               |
+-----------------------------------------------------+----------+
| Trace Directory                                     | Resource |
+-----------------------------------------------------+----------+
| /u01/app/11.2.0/grid/cfgtoollogs                    | INSTALL  |
| /u01/app/11.2.0/grid/crs/log                        | CRS      |
| /u01/app/11.2.0/grid/css/log                        | CRS      |
| /u01/app/11.2.0/grid/cv/log                         | CRS      |
| /u01/app/11.2.0/grid/evm/admin/log                  | CRS      |
| /u01/app/11.2.0/grid/evm/admin/logger               | CRS      |
| /u01/app/11.2.0/grid/evm/log                        | CRS      |
| /u01/app/11.2.0/grid/install                        | INSTALL  |
| /u01/app/11.2.0/grid/log/                           | CRS      |
| /u01/app/11.2.0/grid/network/log                    | CRS      |
| /u01/app/11.2.0/grid/oc4j/j2ee/home/log             | CRSOC4J  |
| /u01/app/11.2.0/grid/opmn/logs                      | CRS      |
| /u01/app/11.2.0/grid/racg/log                       | CRS      |
| /u01/app/11.2.0/grid/rdbms/log                      | ASM      |
| /u01/app/11.2.0/grid/scheduler/log                  | CRS      |
| /u01/app/11.2.0/grid/srvm/log                       | CRS      |
| /u01/app/oraInventory/ContentsXML                   | INSTALL  |
| /u01/app/oraInventory/logs                          | INSTALL  |
| /u01/app/oracle/cfgtoollogs                         | CFGTOOLS |
| /u01/app/oracle/diag/asm/+asm/+ASM1/trace           | ASM      |
| /u01/app/oracle/diag/rdbms/orcl/ORCL1/trace         | RDBMS    |
| /u01/app/oracle/diag/tnslsnr                        | TNS      |
| /u01/app/oracle/diag/tnslsnr/rac1/listener/trace    | TNS      |
| /u01/app/oracle/product/11.2.0/dbhome_1/cfgtoollogs | INSTALL  |
| /u01/app/oracle/product/11.2.0/dbhome_1/install     | INSTALL  |
'-----------------------------------------------------+----------'

Do you wish to change the Trace Directory List ? [Y/y/N/n] [N]
Installing TFA on rac1
Installing TFA on rac2
TFA is running
Successfully added host: rac2
.--------------------------------.
| Host   | Status of TFA | PID   |
+--------+---------------+-------+
| rac1 | RUNNING         | 11685 |
| rac2 | RUNNING         |  5081 |
'--------+---------------+-------'
Setting TFA cookie in all nodes
Successfully set cookie=77411b8fff446d2954d5c080225052ac
TFA Cookie: 77411b8fff446d2954d5c080225052ac
Summary of TFA Installation
.-----------------------------------------------------------.
|                           rac1                            |
+---------------------+-------------------------------------+
| Parameter           | Value                               |
+---------------------+-------------------------------------+
| Install location    | /opt/oracle/tfa/tfa_home            |
| Repository location | /opt/oracle/tfa/tfa_home/repository |
| Repository usage    | 0 MB out of 10240 MB                |
'---------------------+-------------------------------------'

.-----------------------------------------------------------.
|                           rac2                            |
+---------------------+-------------------------------------+
| Parameter           | Value                               |
+---------------------+-------------------------------------+
| Install location    | /opt/oracle/tfa/tfa_home            |
| Repository location | /opt/oracle/tfa/tfa_home/repository |
| Repository usage    | 0 MB out of 10240 MB                |
'---------------------+-------------------------------------'

TFA is successfully installed..
------------------------------------------------------------------

4.TFA启动和停止:

TFA运行在Linux和Unix平台上的init,所以,这将是在服务器启动时自动启动。
默认的情况我们把这个脚本命名为init.tfa;
所在位置取决于不同平台,如:
Linux and Solaris: /etc/init.d/init.tfa
Aix: /etc/init.tfa
HP-UX: /sbin/init.d/init.tfa
以下命令式在Linux平台下作为例子:
启动:
# /etc/init.d/init.tfa start
停止:
# /etc/init.d/init.tfa stop
重启:
# /etc/init.d/init.tfa restart

5.手动收集诊断信息:

我们通过调用tfactl的命令和诊断动词diagnostic来控制TFA收集我们期望的诊断信息。Tfactl 提供给用户多种可选择的模式进行收集,如 ,收集一个时间段内的日志信息来减少我们收集日志的量;
具体操作的命令您可以通过以下方式看到:
--------------------------------------------------------------
#$TFA_HOME/bin/tfactl diagcollect -h
Usage: /u01/app/tfa/tfa_home/bin/tfactl diagcollect [-all | -database | -asm | -crs | -os | -install | -node | -tag ]
        [-since <n><h|d>| -from <time> -to <time> | -for <time>]
        [-copy | -nocopy] [-symlink][-notrim]

Options:
  -all       Collect logs of all types
  -crs        Collect only CRS logs
  -asm        Collect only ASM logs
  -database  Collect only database logs from databases specified
  -os         Collect only OS files
  -install    Collect only INSTALL files
  -node       Specify comma separated list of host names for collection.
  -copy       Copy back the zip files to master node from all nodes
  -nocopy    Does not copy back the zip files to master node from all nodes
  -notrim     Does not trim the files collected
  -symlink    This option should be used with -for.
              Creates symlinks for files which are updated during the input time.
  -since <n><h|d>   Files from past 'n' [d]ays or 'n' [h]ours
  -from <time>        From time
  -to <time>         To time
  -for <time>        Specify a incident time.
  -z <file>           Output file name
  -tag <description>  Enter a tag for the zip(s) created

--------------------------------------------------------------


在下面的例子中,我们使用了 -all,并告诉TFA收集诊断所有类型的日志,从午夜1月21日至1月21日13:00 进行收集。该命令将启动指定的诊断在后台收集所有群集节点上,压缩成zip文件放置在每个节点的TFA_HOME中:


--------------------------------------------------------------


# $TFA_HOME/bin/tfactl diagcollect -all -from "Jan/21/2013" -to "Jan/21/2013 13:00:00"


time: Jan/21/2013
Valid pattern
Month : 1
time: Jan/21/2013 13:00:00
Valid pattern
Month : 1
rac1:startdiagcollection: -database -asm -crs -os -install -from Jan/21/2013 -to Jan/21/2013 13:00:00 -z Mon_Jan_21_11_52_20_EST_2013 -node all -copy
Logs are collected to:
/opt/oracle/tfa/tfa_home/repository/rac1.Mon_Jan_21_11_52_20_EST_2013.zip
/opt/oracle/tfa/tfa_home/repository/rac2.Mon_Jan_21_11_52_20_EST_2013.zip

--------------------------------------------------------------
6.诊断问题or上传诊断信息给Oracle Support工程师:

无论我们用哪种方法对诊断信息进行收集,日志信息都会被打包好放置在$TFA_HOME/repository的目录下,以便您上传该文件给Oracle的support工程师

7.推荐参考文档:
TFA Collector- The Preferred Tool for Automatic or ADHOC Diagnostic Gathering Across All Cluster Nodes [ID 1513912.1]

星期四 十二月 13, 2012

systemstate dump 介绍

        当数据库出现严重的性能问题或者hang了的时候,我们非常需要通过systemstate dump来知道进程在做什么,在等待什么,谁是资源的持有者,谁阻塞了别人。在出现上述问题时,及时收集systemstate dump非常有助于问题原因的分析。

       在一些情况下,数据库会自动生成systemstate dump, 比如出现了“WAITED TOO LONG FOR A ROW CACHE ENQUEUE LOCK”。
        systemstate dump大部分时候需要手工生成,具体的命令为:

如果连接很多,比如几千个连接,那么生成dump可能需要几十分钟,而且会占用几百M磁盘空间)
1. 用sysdba登录到数据库上:
$sqlplus / as sysdba
或者
$sqlplus -prelim / as sysdba <==当数据库已经很慢或者hang到无法连接

SQL>oradebug setmypid
SQL>oradebug unlimit;
SQL>oradebug dump systemstate 266;
等1~2分钟
SQL>oradebug dump systemstate 266;
等1~2分钟
SQL>oradebug dump systemstate 266;
SQL>oradebug tracefile_name;==>这是生成的文件名


2. 通常除了systemstate dump,最好同时生成hang analyze来直观地了解数据库进程间的等待关系。

$sqlplus / as sysdba
或者
$sqlplus -prelim / as sysdba <==当数据库已经很慢或者hang到无法连接

SQL>oradebug setmypid
SQL>oradebug unlimit;
SQL>oradebug dump hanganalyze 3
等1~2分钟
SQL>oradebug dump hanganalyze 3
等1~2分钟
SQL>oradebug dump hanganalyze 3
SQL>oradebug tracefile_name;==>这是生成的文件名

对于RAC数据库,需要各个实例在同一时间的systemstate dump,那么登录到任意一个实例(无需在所有实例执行):

$sqlplus / as sysdba
或者
$sqlplus -prelim / as sysdba <==当数据库已经很慢或者hang到无法连接

SQL>oradebug setmypid
SQL>oradebug unlimit
SQL>oradebug -g all dump systemstate 266  <==-g all 表示针对所有实例生成dump
等1~2分钟
SQL>oradebug -g all dump systemstate 266
等1~2分钟
SQL>oradebug -g all dump systemstate 266

在RAC上生成hang analyze:
SQL>oradebug setmypid
SQL>oradebug unlimit
SQL>oradebug -g all hanganalyze 3
等1~2分钟
SQL>oradebug -g all hanganalyze 3
等1~2分钟
SQL>oradebug -g all hanganalyze 3

上面的命令执行后会在每个实例都生成systemstate dump,生成的信息放到了每个实例的backgroud_dump_dest下的diag trace文件中。

上面的这些命令执行三次是为了比较进程的变化情况,查看是真的hang了,还是很慢。

systemstate dump有多个级别:

2:     dump (不包括lock element)
10:   dump
11:   dump + global cache of RAC
256: short stack (函数堆栈)
258: 256+2   -->short stack +dump(不包括lock element)
266: 256+10 -->short stack+ dump
267: 256+11 -->short stack+ dump + global cache of RAC

level 11和 267会 dump global cache, 会生成较大的trace 文件,一般情况下不推荐。

一般情况下,如果进程不是太多,推荐用266,因为这样可以dump出来进程的函数堆栈,可以用来分析进程在执行什么操作。
但是生成short stack比较耗时,如果进程非常多,比如2000个进程,那么可能耗时30分钟以上。这种情况下,可以生成level 10
或者 level 258, level 258 比 level 10会多收集short short stack, 但比level 10少收集一些lock element data.


另外对于RAC系统,请关注Bug 11800959 - A SYSTEMSTATE dump with level >= 10 in RAC dumps huge BUSY GLOBAL CACHE ELEMENTS - can hang/crash instances (Doc ID 11800959.8)。这个Bug在11.2.0.3上被修复,对于<=11.2.0.2的RAC,当系统中的lock element 很多的时候,如果执行level 10、266或者 267的systemstate dump时,可能会导致数据库hang或者crash,这种情况下可以采用level 258。

下面是生成systemstate dump的测试,用来查看每个level占用的空间:

这个例子中有37个进程:

-rw-r----- 1 oracle oinstall    72721 Aug 31 21:50 rac10g2_ora_31092.trc==>256 (short stack, 每个进程2K)

-rw-r----- 1 oracle oinstall  2724863 Aug 31 21:52 rac10g2_ora_31654.trc==>10    (dump,每个进程72K )
-rw-r----- 1 oracle oinstall  2731935 Aug 31 21:53 rac10g2_ora_32214.trc==>266 (dump + short stack ,每个进程72K)

RAC:
-rw-r----- 1 oracle oinstall 55873057 Aug 31 21:49 rac10g2_ora_30658.trc ==>11   (dump+global cache,每个进程1.4M)
-rw-r----- 1 oracle oinstall 55879249 Aug 31 21:48 rac10g2_ora_28615.trc ==>267 (dump+global cache+short stack,每个进程1.4M)


所以,可以看出如果dump global cache(level 11和267,那么占用的空间比其他级别大很多)。

对于这个问题的讨论,请访问中文社区帖子systemstate dump 介绍

星期二 四月 10, 2012

利器OSW (OSWatcher Black Box) 之简介篇

   OSWatcher Black Box, 简称OSW,是oracle提供的一个小但是非常有用的工具,它通过调用OS自己提供的命令来记录OS运行时的一些性能参数,比如CPU/Memory/Swap/Network IO/Disk IO相关的信息。


+++ 为什么一定要部署OSW?

OSW并不是强制要部署的,并且有很多工具可以提供一样的功能,比如说mrtg, cacti, sar, nmon, enterprise manger grid control.


但是部署OSW有很多好处:


1. 它比较容易部署,并且容易删除。
2. 资源消耗比较小,不管是从CPU,内存还是磁盘空间来说。
3. 平时不需要维护,并且在发生问题时可以帮我们迅速定位问题是否发生在OS端


数据库是运行在OS之上的,如果OS发生了异常,那么数据库肯定也会受到影响;如果我们仅仅从数据库的角度去分析这样的问题时,很难有个好结果.


在平时的工作中,有一类问题很常见:在过去的某个时间段,数据库发生了一些问题,我们往往要找到问题的原因(root cause),之后才能做某些改动来避免它再次发生。对于这样的问题,OSW是非常有用的,举几个小例子:


1. 发生的问题并不是由于OS的异常引起的。这时候如果我们有在发生问题的时候收集的OSW数据,我们就可以立刻排除OS方面,把注意力投向DB/应用层。

2. 对于ORACLE Database Performance的问题,我们往往第一个方向就是排除OS的问题。
比如OS在某个时间段发生了很频繁的Swapping,那么内存相关的操作就会受到影响,数据库性能也会下降,表现在AWR中就会发现数据库有latch/mutex相关的等待。

3. 应用在某个时间段响应非常慢。AWR显示数据库非常的空闲,top5等待事件也都是很正常;从CPU,内存,Swap, Disk IO方面看也都很正常。后来发现OSW中关于网络的数据显示,发生问题时有非常多的丢包现象。如果当时没有收集到OSW的数据,那么基本上是不可能找到原因了。

4. 又比如某些ORA-04030的错误或者CJQ0, P00X, J00X进程不能启动的问题,如果我们部署了OSW,那么我们就能立刻知道这些错误是不是由于OS的内存短缺引起的。

5. 如果某个server process莫名hung住,我们可以通过OSW的信息来看当时这个进程是不是出于suspend的状态,是不是占用了太多的CPU/Memory。

6. 某些Listener hung的问题,我们也需要OSW的历史信息来进行下一步的分析。

7. Login Storm问题:客户的数据库系统突然变慢,从应用端,数据库的ASH,AWR报告中没有发现任何异常。但是通过OSW的ps的输出发现,在发生问题时, oracle 的server process比平时多了上千个。

实际上,OSW对于我们分析问题是非常有帮助的。如果当前OS上并没有部署任何的监控软件,那么强烈建议DBA来部署OSW。很多重要的生产环境都部署了OSW,在有关于DB Performance的问题时,他们往往会先提交OSW的输出。


+++ 大家对部署OSW的顾虑往往是:

1. 生产环境已经正常运行了很久了,基于稳妥的考虑,不能随便安装软件

2. OSW会不会带来副作用


OSW的工作机制是每隔一段时间调用OS提供的一些工具,比如ps, vmstat, netstat, mpstat, top;然后把这些工具的输出打印到文件里。 它不可避免的会消耗CPU, Disk IO, Disk Space, Memory;但是这些消耗的资源都是非常少的,在大部分的系统里都是可以忽略的。只有在某些极端情况下,部署OSW才会带来负面影响:系统已经是非常的忙,CPU使用率在90%以上;磁盘的free space已经没有了。所以大家的顾虑在大部分的情况下都是不必要的,部署OSW是没有什么风险的。




+++ 下面讲一下如何在UNIX/LINUX上安装/部署OSW:


1. 从文档301137.1上下载OSW

2. 随便放在某个地方(/tmp除外),然后解压缩。不需要用root权限
$ tar xvf osw.tar

3.启动:
nohup ./startOSWbb.sh 15 120 &
==>会每隔15秒搜集一次数据,将结果保留120 小时(5 天)。
==>生成的结果会存储在一个叫archive的目录中。
==>请确保您的磁盘空间足够容纳这些数据。
==>如果您想自动压缩生成的文件,请使用下面的命令来启动OSWatcher:
nohup ./startOSWbb.sh 15 120 gzip &

4. 设置私网间通讯检查:
1) 拷贝Exampleprivate.net 为 private.net 到同一个目录下。
2).在private.net中找到您对应的系统平台,替换下面的private_nodename1  , private_nodename2  为具体的私网IP或者主机名
traceroute -r -F private_nodename1
traceroute -r -F private_nodename2
3). 将private.net中其它的平台部分删除。
4). 千万不要删除下面的内容:**************************
rm locks/lock.file

下面是HP平台上配置好的一个private.net 的例子:

######################################################################
#HP Example
######################################################################
echo "zzz ***"`date`
traceroute -r -F 192.168.1.1
traceroute -r -F 192.168.1.2
######################################################################
rm locks/lock.file

5. 如何关闭?
$ ./stopOSWbb.sh

 怎么样?简单吧?至于如何解析这些数据还有OSW的一些高级用法,且听下回分解。






 


星期四 一月 19, 2012

Oracle原厂免费网上培训2012年3月份(中文):ORA-4031诊断工具


     我们将要在2012年3月份提供两次免费的中文网上培训,内容是关于如何使用ORA-4031 Troubleshooting Tool来诊断下面的这种错误:
    ORA-04031 "unable to allocate %s bytes of shared memory ( "%s","%s","%s" )"

    请点击下面的链接进行报名:


报名 2012年3月1日下午3:00 Diagnosing ORA-4031 errors with the new ORA-4031 Troubleshooting Tool 


报名 2012年3月8日下午3:00 Diagnosing ORA-4031 errors with the new ORA-4031 Troubleshooting Tool 


    本研讨会推荐给可能遇到ORA-4031 问题,而且想知道如何解决这些问题的DBA。这个研讨会大概用时一个小时,将会介绍如何使用一个基于网页的ORA-4031诊断工具。通过使用这个工具,用户不必创建SR就可以诊断这种问题。Oracle技术支持专家将演示如何使用ORA-4031诊断工具,并回答听众的问题。内容将包括:


    * 介绍ORA-4031 诊断工具
    * 解释ORA-4031错误
    * 使用这个工具需要哪些信息?
    * 演示如何使用这个工具
    * 诊断ORA-4031错误的一些其它资源

星期一 九月 26, 2011

SQL调优工具SQLT简介(一)

背景

    SQLTXPLAIN (简称SQLT) Oracle提供的一种用来诊断SQL语句调优问题的工具。通常,当用户遇到一个SQL语句调优问题时,Oracle Support会要求提供很多的信息,比如SQL语句,10046/10053 trace,对象统计信息,optimizer信息等等。这些信息的收集是非常繁琐的事情,而且需要用户具有深入的产品知识。由于信息收集不全,或者客户不知道如何收集,导致一些问题最终无法解决。Oracle提供了SQLT这个工具来解决这个问题。

功能

  • 收集单条SQL语句的信息,包括:
  • SQL文本
  • 执行计划(explain)
  • 真实执行计划(row source operation)
  • 运行时的信息(时间,记录数等等)
  • 10046/10053 trace
  • 收集影响optimizer的统计信息(包括SYSTEM statisticsObject statistics)
  • 收集所有可能会影响optimizer计算的参数:
  • 平台
  • 版本
  • NLS信息
  • 初始化参数
  • fix_control
  • gather_statistics_job
  • 如果Oracle Tuning Packs是可以使用的话,自动调用SQL Tuning Advisor来生成优化报告。
  • 自动导出相关数据以方便客户/Oracle Support/Oracle Development创建test case来重现客户的问题,加速问题的处理。
  • 自动生成SQL Profile的脚本,来固定SQL的执行计划。

特点

  • SQLT是用SQLPL/SQL编写的,可以运行在各种不同版本操作系统的数据库。
  • 代码都是非加密的,可以清楚的看到操作的内容。
  • 不会泄露用户敏感数据。比如Column的最大/最小值还有histogram可以选择隐藏起来。
  • 安装在自己的schema下,不会影响用户数据。
  • 免费下载和使用,只需有一个可用的My Oracle Support license

下载及使用

  • 下载:下载文档 ID:215187.1中的附件需登陆My Oracle Support)。目前SQLT有两个不同的版本,一个是基于9.2/10.1的,另一个是基于10.2以后的。
  • 使用说明:解压缩文件夹中的sqlt_instructions.html或者SQLTXPLAIN.pdf。在解压缩文件夹下的doc目录下也可以找到相同的信息(PPT)

    在绝大多数的情况下,SQLT包含了诊断SQL语句调优问题的所有必要信息。因此推荐客户尽可能安装并用它来收集信息,以便于问题更有效率的解决。

         如果您在使用SQLT的过程中遇到问题,或者是有任何改进的建议或意见,可以在文档ID:215187.1下添加英文评论,您的评论会直接反馈给作者。

星期四 九月 15, 2011

Oracle 11g 诊断新特性——ADR 简介


    ADR(Automatic Diagnostic Repository)是一个基于文件的档案库,用于存放数据库的诊断信息,例如跟踪文件,意外dump文件,IPS包,警告日志文件,健康监控报告,核心dump文件以及其它诊断信息。ADR的根目录叫做ADR base, 位置通过参数DIAGNOSTIC_DEST设置。ADR拥有统一的目录结构,在数据库之外存储多个产品和实例的诊断信息,因此即使在数据库关闭时仍然可以进行问题诊断。
    从Oracle 11gR1 开始,ADR用于存储数据库,ASM,CRS和其它产品或组件(如listener)的诊断信息。每一个实例或者产品拥有各自的ADR home路径。例如在一个RAC环境下,ASM, 数据库实例拥有单独的ADR home。

名词解释
严重错误(Critical Error)是指会产生跟踪文件的Oracle内部错误。Oracle把他们划分为不同的类别,内部错误(ORA-600),系统访问异常(ora-7445,ora-3113),锁相关的错误,坏块(ORA-1578)和内存不足(ORA-4030/4031)等。
事件(Incident)是指一次严重错误,每出现一次严重错误,就会产生一次事件。ADR会跟踪每一个事件并产生唯一的事件ID。
问题(Problem)是一组严重错误,他们拥有一组共同的属性。ADR跟踪每一个问题,并且给每一个问题产生一个唯一的问题ID.

改变
    从11gR1开始,所有的诊断信息都保存在ADR中。ADR是一个外部的,迷你的XML数据库。
跟踪文件和进程的1:1对应不再存在。虽然进程跟踪文件仍然存在,但是它只记录每个事件的trc和trm文件的位置。Oracle为每一个事件产生一对儿文件——trc和trm文件。trc文件存放诊断信息,而trm文件存放元数据。
另外,文件的内部结构也发生了改变。例如一个XML格式的文件被引入,存放在ADR home的alert路径下(ADR_BASE/diag/rdbms/<db_name>/<SID>/alert/log.xml)。trc文件由若干个标记过的XML记录构成,每个记录都是分层排序过的。这种改变更加容易找到文件中我们感兴趣的部分的信息。

Diagnostic Frame Work(DFW)是如何工作的

1.    当一个严重错误发生时,DDE(diagnostic data extractor)被出发,并将相应的诊断信息写入到事件跟踪文件。
2.    ADR中的诊断信息可以通过ADRCI(命令行工具)或者SWB(Support WorkBench,图形界面)被访问。
3.    通过ADRCI或SWB从ADR中抽取诊断信息并创建包,这称之为事件打包服务(IPS)。查看诊断信息或上传IPS包到MOS。IPS包包含对应事件的所有诊断信息。

使用ADRCI或SWB创建IPS包的步骤
ADRCI
1. 进入ADRCI
# adrci
2.  显示存在的ADR home
adrci>show home
4.  设定ADR home
adrci>set home
5.  显示所有问题
adrci>show problem
6.  显示所有事件
adrci>show incident
7.  打包事件的诊断信息
adrci>ips pack incident <incident id>
SWB
1.  登录到企业管理器
2.  单击链接‘support workbench’
3.  选择‘all active’的问题
4.  单击‘问题id’查看对应的事件
5.  选择相应的事件
6.  单击 ‘quick package’
7.  输入包名,描述信息,选择是否上传到oracle support
8.  查看包中的信息
9. 选择‘立即’创建包,并单击按钮‘submit’

更多信息
请阅读下面的note获得更多的信息。
Note 422893.1 - 11g Understanding Automatic Diagnostic Repository.
Note 1091653.1 - "11g Quick Steps - How to create an IPS package using Support Workbench" [Video]
Note 443529.1 - 11g Quick Steps to Package and Send Critical Error Diagnostic Information to Support[Video]

您还可以在MOS上下载相关的中文培训录音:
Note 1268733.1 - Database Manageability: Diagnosibility archived Webcasts

星期三 八月 31, 2011

ORA-600/ORA-7445 Error Look-up Tool 功能简介

ORA-600/ORA-7445 Error Look-up Tool Oracle公司提供的一个用来诊断ORA-600 ORA-7445错误的一个方便、快捷的工具。

ORA-600ORA-7445错误是一类很常见的问题,一般是由内部错误或者是BUG引起的。ORA-600/7445错误中的参数很重要,一般来说,如果第一个参数不同,错误的类型就是不同的。

比如,下面的错误是'UGA Spack Leak'

ORA-00600: internal error code, arguments: [729], [560], [space leak], [], [], [], [], []

下面的错误则是"Fatal Two-Task Protocol Violation"

ORA-600: internal error code, arguments: [12333], [0], [0], [0], [], [], [], []

这个诊断工具使用起来非常简单,您只需登录到Oracle 技术支持网站(https://support.oracle.com,以下简称MOS),然后按照文档号进行搜索600.1 7445.1或者153788.1,就可以将这个工具展现出来。在这个工具中输入ORA-600/ORA-7445的错误信息,进行搜索之后,一篇针对这个错误的解释说明文档就会显示出来,您可以按照这篇文档的指导来诊断并解决这个问题。

下面是一个具体的例子:

比如,您在数据库的alert log中看到了下面的错误:

ORA-07445: exception encountered: core dump [kggibr()+0034] [SIGSEGV] [ADDR:0x0] [PC:0x100198D74] [Invalid permissions for mapped object] []

登录到MOS后,按文档号进行搜索:600.1 ,这个工具就会展现出来:

Error Code First Argument中输入完整的错误信息,然后点击Look-up Error按钮:

接下来就会显示出一篇文章号,点击这篇文章号上面的链接,就会列出一篇针对这个错误的解释、说明文档。文档中一般会包括这个错误的描述、参数的解释、影响、建议的解决方案、已知的Bug等。

如果您想对这个工具有更进一步地了解,您可以下载相关的培训录音。这个培训中讲解并演示了如何使用ORA-600/7445 Lookup Utility,主要包括下面的内容:

- 新工具增强功能更新

- 解释工具的最佳实践

- 我已经找到一个BUG!下一步怎么办?

- 如果这个工具没有找到BUG怎么办?

- 我应该如何更进一步研究这个错误?

- 我应该提供哪些信息给Oracle支持?

请在MOS中下面的文档中下载“Troubleshooting ORA-600/7445 Errors Using the New ORA-600/7445 Lookup Utility(中文版)”对应的录音:

- Advisor Webcasts: Using My Oracle Support with Oracle Database Products (Doc ID 1300014.1)

- Advisor Webcast Archived Recordings (Doc ID 740964.1)

如果您想了解MOS上未来会有哪些免费的客户培训,请参考下面的文档:

- Advisor Webcast Current Schedule (Doc ID 740966.1)

About

本博客由Oracle全球技术支持中国区的工程师维护。为中文用户提供数据库相关的技术支持信息,包括常用的诊断工具、诊断方法、产品新特性、案例分析等。此外,MOS也陆续推出各类中文内容:技术通讯统一发布在Note 1529795.1 中,中文文档列表更新在Note 1533057.1 中,网上讲座请查看MOS文档 1456176.1,在"Archived"中可以下载历史的录音和文档。

Search

Archives
« 四月 2014
星期日星期一星期二星期三星期四星期五星期六
  
1
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
今天