IPS简单使用方法:
IPS(incident packaging service)是11G的新特性,其目的是查看某个错误相关的所有dump文件和trace文件,并可以很方便的打成一个包,我认为这个特性极大的方便了DBA进行远程诊断。
PRE:使用前首先设置好ORACLE_HOME和PATH环境变量。
进入adrci控制台:
$adrci
adrci tool is started.
列出ADR HOME:
adrci> show home
diag/rdbms/v11/V11
设置ADRhome path:
adrci> set homepath diag/rdbms/v11/V11
列出problem:
adrci> show problem
--将会列出ORA-600, ORA-7445, ORA-1578,并伴随PROBLEM_ID , Problem_key和错误发生日期。
把错误trace文件打包
adrci> ips pack problem <problem id> in /tmp
--该操作根据PROBLEM_ID将错误相关的trc文件打包到/tmp.
附一: ADR How to Package Diagnostic Information in 11g
Invoke adrci and set ADR_HOME.
You can create a logical package based on an incident number, a problem number, a problem key, or a time interval. Create a logical package such that it will be most useful to diagnose the error of your concern.
I) Creating package based on incident.
Select correct incident if there are many incidents.
adrci>SHOW INCIDENT
adrci>IPS CREATE PACKAGE INCIDENT incident_number
II) Creating Empty package.
adrci>IPS CREATE PACKAGE
This creates an empty package. You must use the IPS ADD INCIDENT or IPS ADD FILE commands to add diagnostic data to the package before generating it.
III) Creating package based on problem ID
adrci>IPS CREATE PACKAGE PROBLEM problem_ID
This creates a package and includes diagnostic information for incidents that reference the specified
problem ID. (Problem IDs are integers.) You can obtain the problem ID for an incident from the
report displayed by the SHOW INCIDENT -MODE BRIEF command. Because there can be many incidents with the same problem ID, ADRCI adds to the package the diagnostic information for the first three incidents ("early incidents") that occurred and last three incidents ("late incidents") that
occurred with this problem ID, excluding any incidents that are older than 90 days.
IV) Creating package based on problem key
adrci>IPS CREATE PACKAGE PROBLEMKEY "problem_key"
The problem key must be enclosed in single quotes (') or double quotes (") if it contains spaces or quotes.
V)Creating package based on time interval.
This creates a package and includes diagnostic information for all incidents that occurred from sec
seconds ago until now. sec must be an integer.
adrci>IPS CREATE PACKAGE SECONDS sec
adrci>IPS CREATE PACKAGE TIME 'start_time' TO 'end_time'
This creates a package and includes diagnostic information for all incidents that occurred within the
specified time range. start_time and end_time must be in the format 'YYYY-MM-DD HH24:MI:SS.FF TZR'.
This is a valid string for the NLS_TIMESTAMP_TZ_FORMAT initialization parameter. The fraction (FF) portion of the time is optional, and the HH24:MI:SS delimiters can be colons or periods.
Adding Incidents and files to the logical package :
You can add more files or more incidents to the package.
adrci>IPS ADD INCIDENT incident_number PACKAGE package_number
adrci>IPS ADD FILE filespec PACKAGE package_number
filespec is the complete path and name of the trace file to add .
package_number is the package id.
Generate a physical incident package :
Once you have created a logical package using one of the above methods, next step is to generate a physical package.
adrci>IPS GENERATE PACKAGE package_number IN path
This generates a complete physical package (zip file) in the designated path. For example, the
following command creates a complete physical package in the directory /home/steve/diagnostics
from logical package number 2:
adrci>IPS GENERATE PACKAGE 2 IN /home/steve/diagnostics
Upload this package to the SR for diagnosing the problem.
You can also create and generate package with one command : IPS Pack .
adrci>IPS PACK INCIDENT incident_id IN path
All the methods discussed above apply to 'IPS pack' as well.
附二:Database 11g: Quick Steps to Package and Send Critical Error Diagnostic Information to Support :
Oracle11g provides tools and methods to automatically identify and gather trace files related to a problem (a critical error in the database environment) or an incident (an occurrence of a problem). This facility is known as the Incident Packaging Services (IPS). The Support Workbench (GUI) and ADRCI (command line) utilities are the two interfaces to the Incident Packaging Services. Every occurrence of a critical error (problem) in the database creates an incident.
Steps in identifying and sending files to support.
1. You are notified of a critical error reported in the database environment:
SQL> select * from atab;
select * from atab
*
ERROR at line 1:
ORA-01578: ORACLE data block corrupted (file # 6, block # 11)
ORA-01110: data file 6: '/opt/oracle/oradata/db11g/tt.dbf'
2. Check for the error reported in the instance alert file and in the ADR.
To check for the error reported in the ADR:
With the 11g environment being set, from the OS command prompt invoke the ADRCI utility:
$ adrci
Let ADRCI know which Oracle environment to investigate:
adrci> show home
--show home will list all the ADR homes. Set the proper database ADR home for use with ADRCI.
adrci> set homepath database_home
Check for the problems reported:
adrci> show problem
ADR Home = /opt/oracle/diag/rdbms/db11g/db11g:
*************************************************************************
PROBLEM_ID PROBLEM_KEY LAST_INCIDENT LASTINC_TIME
------------ -------------- --------------- ---------------------------------
1 ORA 1578 18104 2009-06-01 22:06:19.501207 +10:00
1 rows fetched
You can have multiple problems reported. Create a package for the one which needs to be investigated.
3. Check for the incidents reported for the problem which needs to be packaged
Each occurrence of the problem is called an 'incident'. The instance alert file will show all the incidents reported. Each incident will be associated with a unique incident id in the ADR.
From the ADRCI prompt, execute the SHOW INCIDENT command for the problem to be investigated, by specifying the associated problem key. You can get the problem key from the SHOW PROBLEM command:
adrci> show incident -p "problem_key='ORA 1578'"
ADR Home = /opt/oracle/diag/rdbms/db11g/db11g:
*************************************************************************
INCIDENT_ID PROBLEM_KEY CREATE_TIME
--------------- ------------------------ ----------------------------------
18147 ORA 1578 2009-06-01 22:02:08.805002 +10:00
1 rows fetched
You can see multiple incidents reported for the same problem.
Note the incident number for which you need to create a package.
4. Package the trace files invoking IPS.
Generate the package using the IPS PACK command and store the generated package in a directory of your choice. The example below shows the package for the incident will be created in the /tmp directory.
adrci> ips pack incident 18147 in /tmp
Generated package 9 in file /tmp/ORA1578_20090602113045_COM_1.zip, mode complete
If at this step the ADRCI utility complains that the incident was flood-controlled and that no package can be generated for it, then instead of choosing the most recent incident to be packaged, choose the first incident that occurred after an instance startup.
Examples of IPS PACK include:
ips pack problem 100 in /tmp
--Generates the package for the problem id 100 in /tmp
ips pack incident 6439 in /tmp
--Generates the package for the incident id 6439 in /tmp
ips pack problemkey "ORA 1578"
--Generates the package for the problem with the problem_key 'ORA 1578'
ips pack seconds 8
--Generates the package with the incidents occurred in last 8 seconds.
ips pack time '2007-05-01 10:00:00.00' to '2007-05-01 23:00:00.00'
--Generates the package with the incidents occurred between the times '2007-05-01 10:00:00.00' and '2007-05-01 23:00:00.00'
Upload the ZIP file generated to the Service Request you created on the My Oracle Support website . This file will include all the trace files, instance alert file and other diagnostic information for the critical error. Make sure that the ZIP file is uploaded WITHOUT any post processing (such as TAR).
附三:11g Understanding Automatic Diagnostic Repository
What is New in 11g?
In 11g, RDBMS diagnostic data has been reorganized and is stored inside a common directory structure, the Automatic Diagnostic Repository (ADR). An ADR is a centralized directory structure where one can find trace files, alert messages, incident dumps, core files, etc.
Automatic Diagnostic Repository ( ADR ) :
All trace files, core files, and the alert files are now organized into a directory structure comprising the Automatic Diagnostic Repository (ADR).
The ADR is a file-based repository for database diagnostic data. It has a unified directory structure across multiple instances and multiple products.
Beginning with Release 11g, the database, Automatic Storage Management (ASM), Cluster Ready Services (CRS), and other Oracle products or components store all diagnostic data in the ADR. Each instance of each product stores diagnostic data underneath its own ADR home directory.
For example, in an Oracle Real Application Clusters environment with shared storage and ASM, each database instance and each ASM instance has a home directory within the ADR. ADR's unified directory structure, consistent diagnostic data formats across products and instances, and a unified set of tools enable customers and Oracle Support to correlate and analyze diagnostic data across multiple instances.
Problems and Incidents :
Problem : is a critical error in the database
Eg : ora-600 , ora-7445 , ora-4031 etc.
Problem key : Every problem has a problem key, which is a text string that includes an error code (such as ORA 600) and in some cases, one or more error parameters.
Eg: ??ORA 4030?? , ??ORA 600 [ktfacht1-0]
Incident : is a single occurance of a problem . Each incident has a numeric incident id.
Where is ADR located :
The location of the ADR is controlled by the Oracle "diagnostic_dest" parameter.
Path specified in the 'diagnostic_dest' parameter defines the ADR root directory,ADR BASE.
The first subdirectory inside an ADR (under the <adr_base> directory) is always named "diag"
For example, if the 'diagnostic_dest' and thus the <adr_base> is specified as "$ORACLE_HOME/log", then expect to find the subdirectory "$ORACLE_HOME/log/diag". Below this will be <adr_home> .
Any number of instances/components can share same ADR BASE. Under ADR BASE there will be individual ADR HOMES.
Under ADR BASE ,the address of an <adr_home> will be similar to :
diag/<product_type>/<prod_id>/<instance_id>.
Inside each ADR home, you can find several subdirectories, each for storing a specific type of diagnostic data. Among the subdirectories, you should be able to find TRACE, ALERT, INCIDENT, CDUMP etc.
ADR HOME contents :
You will find the following directories under ADR HOME -
Alert : The alert directory contains the XML alert log
Cdump : core dumps are stored in this directory
Trace : Process trace files and Alert.log are stored in the trace directory. 'Background_dump_dest' and 'user_dump_dest' are now ignored in 11g. Now all the trace files will be generated in 'trace' directory.
Incident : The incident directory stores dump files created when critical errors are encountered.
Each occurrence of a critical error( incident ) is given its own incident directory, with the incident ID used to form the directory name.
Metadata : The metadata directory stores a series of files that contain diagnostic metadata.
HM : The hm directory stores reports for health checks
Incpkg, ir, lck, sweep : These directories contain internal diagnosability framework state.
DIAGNOSTIC_DEST - Default value :
If environment variable ORACLE_BASE is set, DIAGNOSTIC_DEST is set to the directory designated by ORACLE_BASE.
If environment variable ORACLE_BASE is not set, DIAGNOSTIC_DEST is set to ORACLE_HOME/log
V$DIAG_INFO :
For each database , you can query v$diag_info to check its ADR locations.
This shows us the ADR BASE , ADR home , trace file locations , XML Alert location , incident dump locations , core dump and health monitor reports.
Also gives us the default session trace ( for the current session ) and number of problems , incidents reported in the database.
ADR Command Interpreter (ADRCI) :
ADRCI is the command line utility using which ADR is accessed.
Enter the following command at the operating system command prompt:
%]ADRCI
The utility starts and displays the following prompt:
adrci>
There are various commands that can be executed from 'adrci' to view Alert log , trace files , incidents reported , etc.
There is no need to log in to ADRCI, because the data in ADR is just for diagnostic purposes and not intended to be secure. ADR data is secured only by operating system permissions on the ADR directories.
IPS(incident packaging service)是11G的新特性,其目的是查看某个错误相关的所有dump文件和trace文件,并可以很方便的打成一个包,我认为这个特性极大的方便了DBA进行远程诊断。
PRE:使用前首先设置好ORACLE_HOME和PATH环境变量。
进入adrci控制台:
$adrci
adrci tool is started.
列出ADR HOME:
adrci> show home
diag/rdbms/v11/V11
设置ADRhome path:
adrci> set homepath diag/rdbms/v11/V11
列出problem:
adrci> show problem
--将会列出ORA-600, ORA-7445, ORA-1578,并伴随PROBLEM_ID , Problem_key和错误发生日期。
把错误trace文件打包
adrci> ips pack problem <problem id> in /tmp
--该操作根据PROBLEM_ID将错误相关的trc文件打包到/tmp.
附一: ADR How to Package Diagnostic Information in 11g
Invoke adrci and set ADR_HOME.
You can create a logical package based on an incident number, a problem number, a problem key, or a time interval. Create a logical package such that it will be most useful to diagnose the error of your concern.
I) Creating package based on incident.
Select correct incident if there are many incidents.
adrci>SHOW INCIDENT
adrci>IPS CREATE PACKAGE INCIDENT incident_number
II) Creating Empty package.
adrci>IPS CREATE PACKAGE
This creates an empty package. You must use the IPS ADD INCIDENT or IPS ADD FILE commands to add diagnostic data to the package before generating it.
III) Creating package based on problem ID
adrci>IPS CREATE PACKAGE PROBLEM problem_ID
This creates a package and includes diagnostic information for incidents that reference the specified
problem ID. (Problem IDs are integers.) You can obtain the problem ID for an incident from the
report displayed by the SHOW INCIDENT -MODE BRIEF command. Because there can be many incidents with the same problem ID, ADRCI adds to the package the diagnostic information for the first three incidents ("early incidents") that occurred and last three incidents ("late incidents") that
occurred with this problem ID, excluding any incidents that are older than 90 days.
IV) Creating package based on problem key
adrci>IPS CREATE PACKAGE PROBLEMKEY "problem_key"
The problem key must be enclosed in single quotes (') or double quotes (") if it contains spaces or quotes.
V)Creating package based on time interval.
This creates a package and includes diagnostic information for all incidents that occurred from sec
seconds ago until now. sec must be an integer.
adrci>IPS CREATE PACKAGE SECONDS sec
adrci>IPS CREATE PACKAGE TIME 'start_time' TO 'end_time'
This creates a package and includes diagnostic information for all incidents that occurred within the
specified time range. start_time and end_time must be in the format 'YYYY-MM-DD HH24:MI:SS.FF TZR'.
This is a valid string for the NLS_TIMESTAMP_TZ_FORMAT initialization parameter. The fraction (FF) portion of the time is optional, and the HH24:MI:SS delimiters can be colons or periods.
Adding Incidents and files to the logical package :
You can add more files or more incidents to the package.
adrci>IPS ADD INCIDENT incident_number PACKAGE package_number
adrci>IPS ADD FILE filespec PACKAGE package_number
filespec is the complete path and name of the trace file to add .
package_number is the package id.
Generate a physical incident package :
Once you have created a logical package using one of the above methods, next step is to generate a physical package.
adrci>IPS GENERATE PACKAGE package_number IN path
This generates a complete physical package (zip file) in the designated path. For example, the
following command creates a complete physical package in the directory /home/steve/diagnostics
from logical package number 2:
adrci>IPS GENERATE PACKAGE 2 IN /home/steve/diagnostics
Upload this package to the SR for diagnosing the problem.
You can also create and generate package with one command : IPS Pack .
adrci>IPS PACK INCIDENT incident_id IN path
All the methods discussed above apply to 'IPS pack' as well.
附二:Database 11g: Quick Steps to Package and Send Critical Error Diagnostic Information to Support :
Oracle11g provides tools and methods to automatically identify and gather trace files related to a problem (a critical error in the database environment) or an incident (an occurrence of a problem). This facility is known as the Incident Packaging Services (IPS). The Support Workbench (GUI) and ADRCI (command line) utilities are the two interfaces to the Incident Packaging Services. Every occurrence of a critical error (problem) in the database creates an incident.
Steps in identifying and sending files to support.
1. You are notified of a critical error reported in the database environment:
SQL> select * from atab;
select * from atab
*
ERROR at line 1:
ORA-01578: ORACLE data block corrupted (file # 6, block # 11)
ORA-01110: data file 6: '/opt/oracle/oradata/db11g/tt.dbf'
2. Check for the error reported in the instance alert file and in the ADR.
To check for the error reported in the ADR:
With the 11g environment being set, from the OS command prompt invoke the ADRCI utility:
$ adrci
Let ADRCI know which Oracle environment to investigate:
adrci> show home
--show home will list all the ADR homes. Set the proper database ADR home for use with ADRCI.
adrci> set homepath database_home
Check for the problems reported:
adrci> show problem
ADR Home = /opt/oracle/diag/rdbms/db11g/db11g:
*************************************************************************
PROBLEM_ID PROBLEM_KEY LAST_INCIDENT LASTINC_TIME
------------ -------------- --------------- ---------------------------------
1 ORA 1578 18104 2009-06-01 22:06:19.501207 +10:00
1 rows fetched
You can have multiple problems reported. Create a package for the one which needs to be investigated.
3. Check for the incidents reported for the problem which needs to be packaged
Each occurrence of the problem is called an 'incident'. The instance alert file will show all the incidents reported. Each incident will be associated with a unique incident id in the ADR.
From the ADRCI prompt, execute the SHOW INCIDENT command for the problem to be investigated, by specifying the associated problem key. You can get the problem key from the SHOW PROBLEM command:
adrci> show incident -p "problem_key='ORA 1578'"
ADR Home = /opt/oracle/diag/rdbms/db11g/db11g:
*************************************************************************
INCIDENT_ID PROBLEM_KEY CREATE_TIME
--------------- ------------------------ ----------------------------------
18147 ORA 1578 2009-06-01 22:02:08.805002 +10:00
1 rows fetched
You can see multiple incidents reported for the same problem.
Note the incident number for which you need to create a package.
4. Package the trace files invoking IPS.
Generate the package using the IPS PACK command and store the generated package in a directory of your choice. The example below shows the package for the incident will be created in the /tmp directory.
adrci> ips pack incident 18147 in /tmp
Generated package 9 in file /tmp/ORA1578_20090602113045_COM_1.zip, mode complete
If at this step the ADRCI utility complains that the incident was flood-controlled and that no package can be generated for it, then instead of choosing the most recent incident to be packaged, choose the first incident that occurred after an instance startup.
Examples of IPS PACK include:
ips pack problem 100 in /tmp
--Generates the package for the problem id 100 in /tmp
ips pack incident 6439 in /tmp
--Generates the package for the incident id 6439 in /tmp
ips pack problemkey "ORA 1578"
--Generates the package for the problem with the problem_key 'ORA 1578'
ips pack seconds 8
--Generates the package with the incidents occurred in last 8 seconds.
ips pack time '2007-05-01 10:00:00.00' to '2007-05-01 23:00:00.00'
--Generates the package with the incidents occurred between the times '2007-05-01 10:00:00.00' and '2007-05-01 23:00:00.00'
Upload the ZIP file generated to the Service Request you created on the My Oracle Support website . This file will include all the trace files, instance alert file and other diagnostic information for the critical error. Make sure that the ZIP file is uploaded WITHOUT any post processing (such as TAR).
附三:11g Understanding Automatic Diagnostic Repository
What is New in 11g?
In 11g, RDBMS diagnostic data has been reorganized and is stored inside a common directory structure, the Automatic Diagnostic Repository (ADR). An ADR is a centralized directory structure where one can find trace files, alert messages, incident dumps, core files, etc.
Automatic Diagnostic Repository ( ADR ) :
All trace files, core files, and the alert files are now organized into a directory structure comprising the Automatic Diagnostic Repository (ADR).
The ADR is a file-based repository for database diagnostic data. It has a unified directory structure across multiple instances and multiple products.
Beginning with Release 11g, the database, Automatic Storage Management (ASM), Cluster Ready Services (CRS), and other Oracle products or components store all diagnostic data in the ADR. Each instance of each product stores diagnostic data underneath its own ADR home directory.
For example, in an Oracle Real Application Clusters environment with shared storage and ASM, each database instance and each ASM instance has a home directory within the ADR. ADR's unified directory structure, consistent diagnostic data formats across products and instances, and a unified set of tools enable customers and Oracle Support to correlate and analyze diagnostic data across multiple instances.
Problems and Incidents :
Problem : is a critical error in the database
Eg : ora-600 , ora-7445 , ora-4031 etc.
Problem key : Every problem has a problem key, which is a text string that includes an error code (such as ORA 600) and in some cases, one or more error parameters.
Eg: ??ORA 4030?? , ??ORA 600 [ktfacht1-0]
Incident : is a single occurance of a problem . Each incident has a numeric incident id.
Where is ADR located :
The location of the ADR is controlled by the Oracle "diagnostic_dest" parameter.
Path specified in the 'diagnostic_dest' parameter defines the ADR root directory,ADR BASE.
The first subdirectory inside an ADR (under the <adr_base> directory) is always named "diag"
For example, if the 'diagnostic_dest' and thus the <adr_base> is specified as "$ORACLE_HOME/log", then expect to find the subdirectory "$ORACLE_HOME/log/diag". Below this will be <adr_home> .
Any number of instances/components can share same ADR BASE. Under ADR BASE there will be individual ADR HOMES.
Under ADR BASE ,the address of an <adr_home> will be similar to :
diag/<product_type>/<prod_id>/<instance_id>.
Inside each ADR home, you can find several subdirectories, each for storing a specific type of diagnostic data. Among the subdirectories, you should be able to find TRACE, ALERT, INCIDENT, CDUMP etc.
ADR HOME contents :
You will find the following directories under ADR HOME -
Alert : The alert directory contains the XML alert log
Cdump : core dumps are stored in this directory
Trace : Process trace files and Alert.log are stored in the trace directory. 'Background_dump_dest' and 'user_dump_dest' are now ignored in 11g. Now all the trace files will be generated in 'trace' directory.
Incident : The incident directory stores dump files created when critical errors are encountered.
Each occurrence of a critical error( incident ) is given its own incident directory, with the incident ID used to form the directory name.
Metadata : The metadata directory stores a series of files that contain diagnostic metadata.
HM : The hm directory stores reports for health checks
Incpkg, ir, lck, sweep : These directories contain internal diagnosability framework state.
DIAGNOSTIC_DEST - Default value :
If environment variable ORACLE_BASE is set, DIAGNOSTIC_DEST is set to the directory designated by ORACLE_BASE.
If environment variable ORACLE_BASE is not set, DIAGNOSTIC_DEST is set to ORACLE_HOME/log
V$DIAG_INFO :
For each database , you can query v$diag_info to check its ADR locations.
This shows us the ADR BASE , ADR home , trace file locations , XML Alert location , incident dump locations , core dump and health monitor reports.
Also gives us the default session trace ( for the current session ) and number of problems , incidents reported in the database.
ADR Command Interpreter (ADRCI) :
ADRCI is the command line utility using which ADR is accessed.
Enter the following command at the operating system command prompt:
%]ADRCI
The utility starts and displays the following prompt:
adrci>
There are various commands that can be executed from 'adrci' to view Alert log , trace files , incidents reported , etc.
There is no need to log in to ADRCI, because the data in ADR is just for diagnostic purposes and not intended to be secure. ADR data is secured only by operating system permissions on the ADR directories.