RDA是Remote Diagnostic Agent 的简称,是oracle用来收集、分析数据库的工具,运行该工具不会改变系统的任何参数,RDA收集的相关数据非常全面,可以简化我们日常监控、分析数据库的工作,Oracle Support也建议我们在反馈相关问题时,提供RDA收集的数据,这样可以为快速解决问题提供一个有力的保证。
一、支持的操作系统
IBM AIX
Intel Linux (RedHat and SuSE)
HP-UX (10.* and 11.*)
HP Tru64
Sequent Dynix/Ptx
Sun Solaris (2.6 - 2.10)
Windows XP Professional
Windows 2000 Workstation and Server
Windows 2003 Server
二、支持的Oracle产品
Oracle RDBMS Server (Standard and Enterprise Editions)
Oracle RAC Cluster (Single Node Collection)
Oracle Application Server (iAS 1.0.2.x/9.0.x/10.1.2.x, HTTP Server)
Oracle Management Server and Intelligent Agent (Grid Server, Agent Server, DB Control)
OLAP Products (Express Server, Financial Analyzer, and Demand Planning Server)
Oracle Developer (Forms and Reports)
Oracle Collaboration Suites (Email Server and Internet Directory)
Oracle Networking products
三、主要用于诊断数据库的以下方面的问题
性能、安装、配置、升级、移植以及内部错误问题。
四、RDA的安装(版本4.12-080530)
工具下载: metalink上(需要metalink账号)
在Unix操作系统的安装说明:
1、工具下载完后不要在window操作系统下做解压缩,脚本的文件格式会破坏。
2、ftp上传是采用二进制方式。
3、执行解压缩命令
$ gunzip rda.tar.gz
$ tar xvf rda.tar
4、测试是否正常
$ cd rda
$ ./rda.sh -c
五、RDA的使用
在Unix操作系统中,oracle推荐在数据库创建用户下执行(一般即为oracle用户),第一次使用需要做一个采集的初始配置。
执行命令:
$ ./rda.sh -S
执行命令后,会有个向导化的界面让你根据当前数据库的实际安装的产品完成初始配置。 完成配置后rda目录下会生成配置文件 setup.cfg、setup.bak, 如果需要重新调整配置参数,可以直接修改该文件。
配置过程一般是默认值,或者按照提示输入参数,特殊地方如下:
---------------------------------------------------------------------
Enter an Oracle User ID (userid only) to view DBA_ and V$ tables
If RDA will be run under the Oracle software owner's ID, enter a '/' here,
and select Y at the SYSDBA prompt to avoid being prompted for the database
password at runtime.
Hit 'Return' to accept the default (system):/
Is '/' a sysdba user (will connect as sysdba) (Y/N)?
Hit 'Return' to accept the default (N):
> Y
---------------------------------------------------------------------
初始配置完毕后要采集数据,执行命令:
$ ./rda.sh
如果要看到详细的采集过程,可以执行命令:
$ ./rda.sh -v
Enter sysman user password:
Please re-enter it to confirm:
在采集过程中有可能需要你输入数据库相关用户的密码。
采集完成后,在rda目录下根据初始配置文件会生成格式为zip的报告文件以及采集日志, 默认文件位置 ./output/RDA.$machine_name.zip。
解压缩该文件,访问 <report_group>__start.htm,就可以看到这次采集的数据的详细信息。
$ cd output
$ ls -l *zip
-rw-r--r-- 1 oracle oinstall 1911090 11月 28 14:49 RDA.RDA_game.zip
$ sz RDA.RDA_game.zip
使用时的注意点:
1、有时不能生成zip格式的报告文件,这跟客户端是否安装压缩工具有关,需要自行解压缩相关报告文件。
2、如果需要安装已生成的配置再次采集,删除已生成的报告文件,然后执行命令:
$ ./rda.sh -Svf
重新设置后再执行采集命令:
$ ./rda.sh -v
六、采集数据分析
报告文件主要包括数据库对应机器的操作系统软、硬件环境、用户设置以及数据库详细的信息(初始参数、运行事件、日常监控等)。
在日常的维护当中,我们主要关注点:
1、关注RDBMS下的几个统计信息
Database SPFile Parameters spfile中数据库相关初始参数的设置
SGA Information 查看系统全局区当前内存信息
Sessions and Processes 采集时间内的数据库会话相关信息
V$System_Event 数据库实例整个运行期间所有进程事件的等待统计视图
V$Session_Wait 会话等待事件以及相关定位信息数据
Latch Information 竞争相关信息(翻译不是很准确)
Tablespaces 数据库表空间信息(表空间类型、对应数据文件使用率、是否可扩展等等)
Database Files 数据库对应数据文件信息(文件位置、使用率等)
Invalid Objects 失效的数据库对象,日常监控如果发现有失效,需要维护人员手工重新编译
all errors 日常执行的数据库错误
在 V$System_Event、 V$Session_Wait 主要关注(buffer busy waits、db file scattered read、db file sequential read、enqueue、free buffer waits、latch free、log file sync、log file paralle write 这些事件。
2、RDBMS Log/Trace Files 的信息
alert.log 数据库系统级日志
last errors 数据库最近的异常日志、根据trace文件位置,可以查看详细错误信息
========================================================================
使用RDA(Remote Diagnostic Agent)工具对数据库进行健康检查
RDA英文全称叫做“Oracle Remote Diagnostic Agent”。
这个Oracle诊断工具是用perl编写的,包含非常丰富的诊断脚本,使用它可以非常便利的采集到Oracle数据库服务器系统配置和数据库的详细信息。
如果您在向Oracle支持人员寻求帮助时能够提供一份RDA报告,将会大大的缩短问题处理的周期,避免信息的反复采集。
RDA不会更改数据库服务器的任何配置,仅仅是采集信息,了解系统。大家可以放心使用RDA工具。
这篇文章给大家介绍一下这个RDA工具的使用方法,供参考。
1.下载RDA安装包
2.在数据库服务器上创建一个RDA目录
3.将下载到的安装文件上传到服务器上
4.解压文件
5.验证RDA工具安装是否成功
6.配置并运行RDA
1)验证perl是否可用
$ perl -V
2)保证rda.sh和rda.pl两个文件具有执行权限
$ chmod +x rda.sh rda.pl
3)使用“-L modules”选项列出所有可供采集的模块
通过下面的这个列表体现出了RDA在数据库采集方面的强大优势。
$./rda.sh -L modules
Available data collection modules are:
ACFS Collects ASM Cluster File System Information
ACT Collects Oracle E-Business Suite Application Information
ADBA Collects ACS Oracle Database Assessment
ADX Collects AutoConfig and Rapid Clone Information
AGT Collects Enterprise Manager Agent Information
APEX Collects APEX Information
ASAP Collects Oracle Communications ASAP Information
ASBR Collects Application Server Backup and Recovery Information
ASG Collects Application Server Guard Information
ASIT Collects Oracle Application Server Installation Information
ASM Collects Automatic Storage Management Information
B2B Collects Oracle Business to Business Information
BAM Collects Business Activity Monitoring Information
BEE Collects Beehive Information
BI Collects Oracle Business Intelligence Enterprise Edition Info.
BPEL Collects Oracle BPEL Process Manager Information
BR Collects Database Backup and Recovery Information
BRM Collects Oracle Communications BRM Information
CCR Collects OCM Diagnostic Information
CFG Collects Key Configuration Information
COHR Collects Oracle Coherence Information
CONT Collects Oracle Content Services Information
CRID Collects Oracle Access Manager (COREid) Information
D2PC Collects Distributed Transaction Information
DB Controls RDBMS Data Collection
DBA Collects RDBMS Information
DBC Collects Database Control Information
DBM Collects RDBMS Memory Information
DEV Collects Oracle Developer Information
DG Collects Data Guard Information
DNFS Collects Direct NFS Information
DSCS Collects Discussions Information
DSCV Collects Oracle Discoverer Information
ECM Controls Oracle Enterprise Content Management 11g Data Collection
EM Collects Enterprise Manager OMS and Repository Info (Obsolete)
END Finalizes the Data Collection
EPMA Collects Enterprise Performance Management Architect Information
ESB Collects Enterprise Service Bus Information
ESS Collects Oracle Essbase Information
ESSO Collects Oracle Enterprise Single Sign-On Information
EXA Collects Exadata Information
FLTR Controls Report Content Filtering
GRDN Collects Oracle Guardian Information
GRID Controls Grid Control Data Collection
GTW Collects Transparent/Procedural Gateway Information
HFM Collects Oracle Hyperion Financial Management information
HPL Collects Oracle Hyperion Planning Information
IA Collects Intelligent Agent Information
IAS Collects Web Server Information
IFS Collects iFS (iFS, CMSDK, Files) Information
INI Initializes the Data Collection
INST Collects the Oracle Installation Information
IPSA Collects Oracle Communications IP Service Activator Information
J2EE Collects J2EE/OC4J Information
JDBC Collects Oracle Java DB Connectivity (JDBC) Information
JDEV Collects Oracle JDeveloper Information
JIVE Collects Jive Information
LANG Collects Oracle Language Information
LOAD Produces the External Collection Reports
LOG Collects Database Trace and Log Files
MAIL Collects Oracle Collaboration Suite Mail Information
MSLG Collects Microsoft Languages Information
ND Collects Oracle Communications Network Discovery Information
NET Collects Network Information
NM Collects Oracle Communications Network Mediation Information
NPRF Samples Performance Information (root not required)
OCAL Collects Oracle Calendar Information
OCFS Collects Oracle Cluster File System Information
OCM Setting up Configuration Manager Interface
OCS Controls Oracle Collaboration Suite Data Collection
ODI Collects Oracle Data Integrator Information
ODM Collects Oracle Data Mining Information
OES Collects Oracle Express Server Information
OID Collects Oracle Internet Directory Information
OIM Collects Oracle Identity Manager Information
OLAP Collects OLAP Information
OMM Collects Oracle Multimedia or Oracle interMedia Information
OMS Collects Oracle Management Server Information (obsolete)
ONET Collects Oracle Net Information
OS Collects the Operating System Information
OVD Collects Oracle Virtual Directory Information
OVMM Collects Oracle VM Manager Information
OVMS Collects Oracle VM Server Information
OWB Collects Oracle Warehouse Builder Information
OWSM Collects Oracle Web Services Manager Information
PDA Collects Oracle Portal Information
PDBA Collects PeopleSoft Information from an Oracle Database
PERF Collects Performance Information
PLNC Collects Oracle PL/SQL Native Compilation Information
PROF Collects the User Profile
PS Collects Oracle Communications Policy Services Information
PWEB Collects PeopleSoft Information from Web Application Server
RAC Collects Cluster Information
RACD Performs a Database Hang Analysis
RDSP Produces the Remote Data Collection Reports
RET Collects Oracle Retail Information
REXE Performs the Remote Data Collections
RPRF Samples Performance Information (root privileges required)
RSRC Collects Database Resource Manager Information
RTC Collects Real Time Communication Information
SEBL Collects Siebel Information
SES Collects Oracle Secure Enterprise Search Information
SMPL Controls Sampling
SOA Collects Oracle SOA Suite Information
SP Collects SQL*Plus/iSQL*Plus Information
SSO Collects Single Sign-On Information
STC Collects Streams Configuration Information
STM Collects Streams Monitoring Information
TOPL Collects Oracle TopLink Information
TTEN Collects Oracle TimesTen In-Memory Database Information
UCM Collects Oracle Universal Content Management Information
UOA Collects Oracle Universal Online Archive 11g Information
WAC Collects Web Access Client Information
WCI Collects Oracle WebCenter Information
WEBC Collects Oracle Web Cache Information
WKSP Collects Workspaces Information
WLS Collects Oracle WebLogic Server Information
WMC Collects Webmail Client Information
WRLS Collects Wireless Information
XDB Collects XDB Information
XSMP Samples User Defined Data
XTRA Collects User Defined Data
4)我们选择四个模块(OS DB DBA INST)配置一下
只要按照提示的信息进行配置即可,基本上都可以使用默认设置的内容。
需要注意的是最后两步我们这里输入“/”和“Y”,目的是在运行RDA采集信息的过程中不需要输入密码,避免交互操作。
$ ./rda.sh -S OS DB DBA INST
配置完成后,会在当前目录下生成output目录和配置文件setup.cfg(如果再次执行配置过程,会生成备份文件setup.bak,只保存一份备份文件。)。
配置文件setup.cfg是可编辑的,可以直接对其进行调整。
5)此时再使用“-L modules”选项查看,如果模块名前有“*”号表示已经配置过。
6)我们使用“-vCRP OS DB DBA INST”选项运行RDA对系统进行信息采集
$ ./rda.sh -vCRP OS DB DBA INST
Collecting diagnostic data ...
-------------------------------------------------------------------------------
RDA Data Collection Started 19-Mar-2010 23:57:23
-------------------------------------------------------------------------------
Processing Initialization module ...
Enter the password for 'SYSTEM as SYSDBA':
Please re-enter it to confirm:
Processing OCM module ...
Processing CFG module ...
Processing OS module ...
Processing Oracle installation module ...
Processing RDBMS module ...
Processing RDSP module ...
Processing LOAD module ...
Processing End module ...
-------------------------------------------------------------------------------
RDA Data Collection Ended 19-Mar-2010 23:58:52
-------------------------------------------------------------------------------
Generating the reports ...
- RDA_DBA_dba_registry.txt ...
- RDA_INST_oratab.txt ...
- RDA_OS_tracing.txt ...
- RDA_DBA_vcompatibility.txt ...
- RDA_DBA_vsession_wait.txt ...
- RDA_END_files.txt ...
- RDA_OS_memory_info.txt ...
- RDA_OS_nls_env.txt ...
- RDA_OS_kernel_info.txt ...
- RDA_INST_L00011_oh_inv.txt ...
- RDA_DBA_services.txt ...
- RDA_DBA_ses_procs.txt ...
- RDA_DBA_vresource_limit.txt ...
- RDA_OS_services.txt ...
- RDA_DBA_vlicense.txt ...
- RDA_OS_hugepage.txt ...
- RDA_OS_linux_release.txt ...
- RDA_END_system.txt ...
- RDA_CFG_database.txt ...
- RDA_DBA_invalids.txt ...
- RDA_DBA_CPU_Statistic.txt ...
- RDA_DBA_nls_parms.txt ...
- RDA_OS_system_error_log.txt ...
- RDA_DBA_text.txt ...
- RDA_INST_make_report.txt ...
- RDA_DBA_voption.txt ...
- RDA_DBA_vcontrolfile.txt ...
- RDA_DBA_vparameters.txt ...
- RDA_INST_orainst_loc.txt ...
- RDA_INST_oracle_install.txt ...
- RDA_DBA_tablespace.txt ...
- RDA_DBA_jvm_info.txt ...
- RDA_DBA_datafile.txt ...
- RDA_INST_inventory_xml.txt ...
- RDA_DBA_versions.txt ...
- RDA_OS_java_version.txt ...
- RDA_DBA_undo_info.txt ...
- RDA_CFG_homes.txt ...
- RDA_INST_orainventory_logdir.txt ...
- RDA_OS_cpu_info.txt ...
- RDA_INST_L00010_homes.txt ...
- RDA_DBA_vsystem_event.txt ...
- RDA_DBA_vHWM_Statistic.txt ...
- RDA_OS_disk_info.txt ...
- RDA_DBA_security_files.txt ...
- RDA_DBA_spatial.txt ...
- RDA_OS_numactl.txt ...
- RDA_DBA_vfeatureusage.txt ...
- RDA_DBA_partition_data.txt ...
- RDA_DBA_database_properties.txt ...
- RDA_DBA_aq_data.txt ...
- RDA_END_report.txt ...
- RDA_OS_sysdef.txt ...
- RDA_DBA_sga_info.txt ...
- RDA_DBA_vspparameters.txt ...
- RDA_INST_oracle_home.txt ...
- RDA_DBA_replication.txt ...
- RDA_DBA_init_ora.txt ...
- RDA_OS_packages.txt ...
- RDA_DBA_vfeatureinfo.txt ...
- RDA_DBA_security.txt ...
- RDA_OS_etc_conf.txt ...
- RDA_OS_misc_linux_info.txt ...
- RDA_DBA_latch_info.txt ...
- RDA_CFG_oh_inv.txt ...
- RDA_DBA_sequences.txt ...
- RDA_DBA_mts.txt ...
- RDA_OS_libc.txt ...
- RDA_DBA_jobs.txt ...
- RDA_DBA_log_info.txt ...
- RDA_INST_comps_xml.txt ...
- Report index ...
Packaging the reports ...
RDA.RDA_rh.zip created
Updating the setup file ...
解释一下用到的选项含义。
v选项含义:详细显示报告生成过程,如果不加这个选项,仅会显示上面输出的第一部分内容;
C选项含义:采集诊断信息;
R选项含义:生成HTML格式的报告;
P选项还以:对生成的报告文件打包,压缩成zip格式。
7.获得RDA的帮助信息
演示过程中我们使用了v、C、R和P选项,如何获得更多选项的说明信息呢?方法有两种。
1)获得简略的帮助信息
使用“-h”选项查看详细的帮助文档。
初始配置完毕后要采集数据,执行命令:
$ ./rda.sh
如果要看到详细的采集过程,可以执行命令:
$ ./rda.sh -v
Enter sysman user password:
Please re-enter it to confirm:
在采集过程中有可能需要你输入数据库相关用户的密码。
采集完成后,在rda目录下根据初始配置文件会生成格式为zip的报告文件以及采集日志, 默认文件位置 ./output/RDA.$machine_name.zip。
解压缩该文件,访问 <report_group>__start.htm,就可以看到这次采集的数据的详细信息。
$ ./rda.sh -h
Usage: rda.pl [-bcdflntvwxy] [-ABCDEHIKLMPQRSTV] [-e list] [-m dir]
[-s name] [-o out] [-p prof] arg ...
-A Authentify user through the setup file
-B Start background collection
-C Collect diagnostic information
-D Delete specified modules from the setup
-E Explain specified error numbers
-H Halt background collection
-I Regenerate the index
-K Kill background collection
-L List the modules available
-M Display the related manual pages
-O Render output specifications from STDIN
-P Package the reports (tar or zip)
-Q Display the related setup questions
-R Generate specified reports
-S Setup specified modules
-T Execute test modules
-V Display component version numbers
-b Don't backup setup file before saving
-c Check the RDA installation and exit
-d Set debug mode
-e list Specify a list of alternate setting definitions (var=val,...)
-f Set force mode
-h Display the command usage and exit
-l Use a lock file to prevent concurrent usage of a setup file
-m dir Specify the module directory ('modules' by default)
-n Start a new data collection
-o out Specify the file for background collection output redirection
-p prof Specify the setup profile ('Default' by default)
-q Set quiet mode
-s name Specify the setup name ('setup' by default)
-t Set trace mode
-v Set verbose mode
-w Wait as long as the background collection daemon is active
-x Produce module cross reference
-y Accept all defaults and skip all pauses
2)获得详细的帮助信息
使用“-M”选项查看详细的帮助文档。
内容非常详细,这里不做展示。
如果做进一步的查找,这个详细帮助文档内容是由下面rda.pod文件格式化后生成的。
$ ls -l ./modules/rda.pod
8.查看RDA生成的报告
内容简洁实用,查询方便。
9.小结
RDA工具对于数据库健康检查的意义是重大的,使用RDA可以快速准确的获取数据库的基本信息(数据采集整体时间最常一般不会超过15分钟),对于数据库的故障亦有裨益。
RDA的强大的数据采集功能不限于本文的演示内容,建议朋友们对细节参数进行研究。