Instalando e usando o Remote Diagnostic Agent (RDA) - Linux/Unix

O Oracle Remote Diagnostics Agent (RDA) é uma ferramenta de suporte, composta por um conjunto de aplicativos e scripts para análise e diagnóstico de produtos Oracle. Tendo como principal objetivo o auxilio na coleta de informações (SO, rede, database, etc ) do ambiente, para diagnóstico e solução de problemas.

Uma grande vantagem da utilização do RDA é minimizar o tempo para inicio do atendimento e resolução de um chamado My Oracle Support, uma vez que permite o envio de informações completas, evitando a constante troca de informações com o suporte técnico da Oracle.

O RDA é bastante útil, principalmente em chamados tipo: 
  • Acquired company product issues
  • Developer issues
  • Installation/configuration issues
  • ORA-600, ORA-7445, ORA-3113, ORA-4030 and ORA-4031 errors
  • Oracle Database issues
  • Oracle Application Server/Fusion Middleware issues
  • Oracle Collaboration products (Oracle Collaboration Suite and Oracle Beehive) issues
  • Oracle Application issues
  • Other corrective issues
  • Performance issues
  • Upgrade, migration, and linking issues
O download do RDA, bem como a documentação detalhada pode ser realizado através do my oracle support - Doc ID 314422.1 e Doc ID 250262.1.

Atualmente o RDA é suportado pelas seguintes plataformas:

  • Apple Mac OS X/Darwin
  • HP OpenVMS Alpha 7.3-2 and above
  • HP OpenVMS Itanium
  • HP Tru64 UNIX
  • HP-UX Itanium
  • HP-UX PA-RISC (32 and 64 bit)
  • IBM AIX on POWER Systems(32 and 64 bit)
  • IBM Dynix/Ptx
  • IBM Linux on POWER
  • IBM zSeries Based Linux
  • Linux Itanium
  • Linux x86 (32 and 64 bit)
  • Microsoft Windows 7
  • Microsoft Windows 2000 Workstation and Server
  • Microsoft Windows 2003 Server
  • Microsoft Windows 2008
  • Microsoft Windows 2012
  • Microsoft Windows Vista
  • Microsoft Windows XP Professional
  • Sun Solaris Intel
  • Sun Solaris SPARC (32 and 64 bit)
Plataforma não suportada:
  • IBM Z/OS (OS/390)
Neste artigo abordarei exemplos das plataformas Unix e executarei o processo com o usuário de SO que foi utilizado para a instalação do Oracle. Em meu caso o usuário é Oracle.

Feito o download da instalação, o mesmo será enviado ao servidor onde será descompactado.
 [oracle@lamimtst Lamim]$ unzip p21769913_81015128_Linux-x86-64.zip
Archive:  p21769913_81015128_Linux-x86-64.zip
  inflating: readme.txt
   creating: rda/
   creating: rda/Convert/
   creating: rda/Convert/Common/
   creating: rda/Convert/DB/
  .
  .
  .
[oracle@lamimtst Lamim]$
No exemplo acima, devido a quantidade de informação gerado no output da descompactação, apresentei apenas as primeiras linhas.

Realizada a descompactação, podemos acessar o diretório rda, que foi criado no processo de descompactação e executar o comando ./<rda> -cv para validar o processo de instalação.
 [oracle@lamimtst Lamim]$ cd rda/
[oracle@lamimtst rda]$ ./rda.
rda.cmd  rda.com  rda.pl   rda.sh
[oracle@lamimtst rda]$ ./rda.
rda.cmd  rda.com  rda.pl   rda.sh
[oracle@lamimtst rda]$ ./rda.sh -cv
Loading the file list ...
Checking the directory [D_RDA] . ...
Checking the directory [D_RDA] engine ...
Checking the directory [D_RDA_ADM] model ...
Checking the directory [D_RDA_CHK] APPS ...
Checking the directory [D_RDA_CHK] BI ...
Checking the directory [D_RDA_CHK] CGBU ...
Checking the directory [D_RDA_CHK] DB ...
Checking the directory [D_RDA_CHK] EM ...
Checking the directory [D_RDA_CHK] OFM ...
Checking the directory [D_RDA_CHK] TEST ...
Checking the directory [D_RDA_COL] APPS ...
Checking the directory [D_RDA_COL] BI ...
Checking the directory [D_RDA_COL] CGBU ...
Checking the directory [D_RDA_COL] DA ...
Checking the directory [D_RDA_COL] DB ...
Checking the directory [D_RDA_COL] EM ...
Checking the directory [D_RDA_COL] EXPLORER ...
Checking the directory [D_RDA_COL] OFM ...
Checking the directory [D_RDA_COL] OS ...
Checking the directory [D_RDA_COL] PGBU ...
Checking the directory [D_RDA_COL] RDA ...
Checking the directory [D_RDA_COL] SAMPLE ...
Checking the directory [D_RDA_COL] TOOL ...
Checking the directory [D_RDA_CSS] . ...
Checking the directory [D_RDA_DAT] . ...
Checking the directory [D_RDA_DFW] cv0200 ...
Checking the directory [D_RDA_INC] Convert/Common ...
Checking the directory [D_RDA_INC] Convert/DB/LOG ...
Checking the directory [D_RDA_INC] Convert/OFM/OIM ...
Checking the directory [D_RDA_INC] Convert/OS/INST ...
Checking the directory [D_RDA_INC] Convert/OS/OS ...
Checking the directory [D_RDA_INC] Convert/RDA/CONFIG ...
Checking the directory [D_RDA_INC] Convert/TOOL/ALERT ...
Checking the directory [D_RDA_INC] Convert/TOOL/COMPLY ...
Checking the directory [D_RDA_INC] IRDA ...
Checking the directory [D_RDA_INC] IRDA/CV0200 ...
Checking the directory [D_RDA_INC] RDA ...
Checking the directory [D_RDA_INC] RDA/Agent ...
Checking the directory [D_RDA_INC] RDA/Driver ...
Checking the directory [D_RDA_INC] RDA/Handle ...
Checking the directory [D_RDA_INC] RDA/Library ...
Checking the directory [D_RDA_INC] RDA/Limit ...
Checking the directory [D_RDA_INC] RDA/Local ...
Checking the directory [D_RDA_INC] RDA/Object ...
Checking the directory [D_RDA_INC] RDA/Operator ...
Checking the directory [D_RDA_INC] RDA/Request ...
Checking the directory [D_RDA_INC] RDA/SDCL ...
Checking the directory [D_RDA_INC] RDA/SDSL ...
Checking the directory [D_RDA_INC] RDA/Target ...
Checking the directory [D_RDA_INC] RDA/Token ...
Checking the directory [D_RDA_INC] RDA/UI ...
Checking the directory [D_RDA_INC] RDA/Value ...
Checking the directory [D_RDA_INC] RDA/Web ...
Checking the directory [D_RDA_MSG] charset ...
Checking the directory [D_RDA_MSG] desc ...
Checking the directory [D_RDA_MSG] en ...
Checking the directory [D_RDA_MSG] fr ...
Checking the directory [D_RDA_POD] en ...

No issues found
[oracle@lamimtst rda]$ 
Na execução acima, é possível constatar que tudo transcorreu normalmente. Agora, vamos executar o RDA com a opção <rda> -T hcve, esta opção apresentará um menu no qual podemos escolher o tipo de execução desejada. Neste exemplo estarei selecionando a opção 4.  Oracle Database 11g R2 (11.2.0) Preinstall (Linux).
 [oracle@lamimtst rda]$ ./rda.sh  -T hcve
Processing HCVE tests ...
Available Pre-Installation Rule Sets:
   1.  Oracle Database 10g R1 (10.1.0) Preinstall (Linux)
   2.  Oracle Database 10g R2 (10.2.0) Preinstall (Linux)
   3.  Oracle Database 11g R1 (11.1) Preinstall (Linux)
   4.  Oracle Database 11g R2 (11.2.0) Preinstall (Linux)
   5.  Oracle Database 12c R1 (12.1.0) Preinstallation (Linux)
   6.  Oracle Identity and Access Management PreInstall Check: Oracle Identity
       and Access Management 11g Release 2 (11.1.2) Linux
   7.  Oracle JDeveloper PreInstall Check: Oracle JDeveloper 11g Release 2
       (11.1.2.4) Linux
   8.  Oracle JDeveloper PreInstall Check: Oracle JDeveloper 12c (12.1.3)
       Linux
   9.  OAS PreInstall Check: Application Server 10g R2 (10.1.2) Linux
  10.  OAS PreInstall Check: Application Server 10g R3 (10.1.3) Linux
  11.  OFM PreInstall Check: Oracle Fusion Middleware 11g R1 (11.1.1) Linux
  12.  OFM PreInstall Check: Oracle Fusion Middleware 12c (12.1.3) Linux
  13.  Oracle Forms and Reports PreInstall Check: Oracle Forms and Reports 11g
       Release 2 (11.1.2) Linux
  14.  Portal PreInstall Check: Oracle Portal Generic
  15.  IDM PreInstall Check: Identity Management 10g (10.1.4) Linux
  16.  BIEE PreInstall Check: Business Intelligence Enterprise Edition 11g
       (11.1.1) Generic
  17.  EPM PreInstall Check: Enterprise Performance Management Server (11.1.2)
       Generic
  18.  Oracle Enterprise Manager Cloud Control PreInstall Check: Oracle
       Enterprise Manager Cloud Control 12c Release 4 (12.1.0.4) Linux
  19.  Oracle E-Business Suite Release 11i (11.5.10) Preinstall (Linux x86 and
       x86_64)
  20.  Oracle E-Business Suite Release 12 (12.1.1) Preinstall (Linux x86 and
       x86_64)
  21.  Oracle E-Business Suite Release 12 (12.2.0) Preinstall (Linux x86_64)

Available Post-Installation Rule Sets:
  22.  RAC 10G DB and OS Best Practices (Linux)
  23.  Data Guard Postinstall (Generic)
  24.  WLS PostInstall Check: WebLogic Server 11g (10.3.x) Generic
  25.  WLS PostInstall Check: WebLogic Server 12c (12.x) Generic
  26.  Portal PostInstall Check: Oracle Portal Generic
  27.  OC4J PostInstall Check: Oracle Containers for J2EE 10g (10.1.x) Generic
  28.  SOA PostInstall Check: Service-Oriented Architecture 11g and Later
       Generic
  29.  OSB PostInstall Check: Service Bus 11g and Later Generic
  30.  Oracle Forms 11g Post Installation (Generic)
  31.  Oracle Enterprise Manager Agent 12c Post Installation (Generic)
  32.  Oracle Management Server 12c Post Installation (Generic)
  33.  Network Charging and Control Database Post Installation (Generic)

Enter the HCVE rule set number or 0 to cancel the test
Press Return to accept the default (0)
> 4

Performing HCVE checks ...
Enter value for < Planned ORACLE_HOME location >
Press Return to accept the default (/oracle/product/11.2.0/db)
>

Enter value for < JDK Home >
> $JAVA_HOME


Test "Oracle Database 11g R2 (11.2.0) Preinstall (Linux)" executed at 15-Feb-2016 21:46:07

Test Results
~~~~~~~~~~~~

ID     NAME                 RESULT  VALUE
====== ==================== ======= ==========================================
A00010 OS Certified?        WARNING 11.2.0.3+
A00020 User in /etc/passwd? PASSED  userOK
A00040 Group in /etc/group? PASSED  GroupOK
A00050 Enter ORACLE_HOME    RECORD  /oracle/product/11.2.0/db
A00060 ORACLE_HOME Valid?   PASSED  OHexists
A00070 O_H Permissions OK?  PASSED  CorrectPerms
A00080 oraInventory Permiss PASSED  oraInventoryOK
A00090 Got Software Tools?  PASSED  ld_nm_ar_make_found
A00100 Umask Set to 022?    PASSED  UmaskOK
A00120 Limits Processes     PASSED  Adequate
A00125 Limits Stacksize     FAILED  HardHigh
A00130 Limits Descriptors   PASSED  Adequate
A00140 LDLIBRARYPATH Unset? FAILED  IsSet
A00180 JAVA_HOME Unset?     PASSED  UnSet
A00190 Enter JDK Home       RECORD
A00200 JDK Version          FAILED  JDK home is missing
A00210 Other O_Hs in PATH?  FAILED  OratabEntryInPath
A00220 Other OUI Up?        PASSED  NoOtherOUI
A00230 Temp Adequate?       PASSED  TempSpaceOK
A00240 Disk Space OK?       PASSED  DiskSpaceOK
A00250 Swap (in MB)         RECORD  18055
A00260 RAM (in MB)          PASSED  15943
A00270 Swap OK?             PASSED  SwapToRamOK
A00280 Network              PASSED  Connected
A00290 IP Address           RECORD  10.7.1.19
A00300 Domain Name          RECORD  marfrig.com.br
A00310 DNS Lookup           PASSED  Host correctly registered in DNS
A00320 /etc/hosts Format    FAILED  No entry found
A00330 Kernel Parameters OK FAILED  AIOMAXTooSmall RMEM_DEFAULTTooSmall R...
A00380 Tainted Kernel?      PASSED  NotVerifiable
A00400 ip_local_port_range  FAILED  LowValue HighValue
A00480 OL4 RPMs OK?         SKIPPED NotOracle
A00490 OL5 RPMs OK?         SKIPPED NotOracle
A00500 OL6 RPMs OK?         SKIPPED NotOracle
A00510 OL7 RPMs OK?         SKIPPED NotOracle
A00530 RHEL4 RPMs OK?       SKIPPED NotRHEL4
A00540 RHEL5 RPMs OK?       SKIPPED NotRHEL5
A00550 RHEL6 RPMs OK?       FAILED  [compat-libstdc++-33(i686)] not insta...
A00560 RHEL7 RPMs OK?       SKIPPED NotRHEL7
A00570 SLES10 RPMs OK?      SKIPPED NotSuSE
A00580 SLES11 RPMs OK?      SKIPPED NotSuSE
Result file: output/collect/DB_HCVE_A_DB11R2_lin_res.htm
[oracle@lamimtst rda]$
Ao termino da execução do processo, temos um resumo dos resultados dos testes realizados, além do nome e diretório onde está localizado o arquivo HTML que foi gerado pelo processo. Este é o arquivo que deve ser anexado aos chamados com a Oracle.

Também é possivel realizar uma coleta mais detalhada e profunda de todo o ambiente e o aquivo gerado é bastante útil ao analisarmos um ambiente. Para isso basta termos o perl habilitado no PATH do usuário e executar o comando perl rda.pl -v. Este comando questionara vários aspectos do ambiente que devem ser respondidos para que a análise seja realizada. Abaixo mostro as primeiras linhas desta execução.
 [oracle@lamimtst rda]$ perl -V
Summary of my perl5 (revision 5 version 10 subversion 1) configuration:

  Platform:
    osname=linux, osvers=2.6.18-308.16.1.el5, archname=x86_64-linux-thread-multi
    uname='linux x86-022.build.eng.bos.redhat.com 2.6.18-308.16.1.el5 #1 smp tue sep 18 07:21:07 edt 2012 x86_64 x86_64 x86_64 gnulinux '
    config_args='-des -Doptimize=-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -DDEBUGGING=-g -Dversion=5.10.1 -Dmyhostname=localhost -Dperladmin=root@localhost -Dcc=gcc -Dcf_by=Red Hat, Inc. -Dprefix=/usr -Dvendorprefix=/usr -Dsiteprefix=/usr/local -Dsitelib=/usr/local/share/perl5 -Dsitearch=/usr/local/lib64/perl5 -Dprivlib=/usr/share/perl5 -Darchlib=/usr/lib64/perl5 -Dvendorlib=/usr/share/perl5/vendor_perl -Dvendorarch=/usr/lib64/perl5/vendor_perl -Dinc_version_list=5.10.0 -Darchname=x86_64-linux-thread-multi -Dlibpth=/usr/local/lib64 /lib64 /usr/lib64 -Duseshrplib -Dusethreads -Duseithreads -Duselargefiles -Dd_dosuid -Dd_semctl_semun -Di_db -Ui_ndbm -Di_gdbm -Di_shadow -Di_syslog -Dman3ext=3pm -Duseperlio -Dinstallusrbinperl=n -Ubincompat5005 -Uversiononly -Dpager=/usr/bin/less -isr -Dd_gethostent_r_proto -Ud_endhostent_r_proto -Ud_sethostent_r_proto -Ud_endprotoent_r_proto -Ud_setprotoent_r_proto -Ud_endservent_r_proto -Ud_setservent_r_proto -Dscriptdir=/usr/bin -Dusesitecustomize'
    hint=recommended, useposix=true, d_sigaction=define
    useithreads=define, usemultiplicity=define
    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
    use64bitint=define, use64bitall=define, uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='gcc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
    optimize='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic',
    cppflags='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include'
    ccversion='', gccversion='4.4.6 20120305 (Red Hat 4.4.6-4)', gccosandvers=''
    intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
    ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
    alignbytes=8, prototype=define
  Linker and Libraries:
    ld='gcc', ldflags =' -fstack-protector'
    libpth=/usr/local/lib64 /lib64 /usr/lib64
    libs=-lresolv -lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lpthread -lc
    perllibs=-lresolv -lnsl -ldl -lm -lcrypt -lutil -lpthread -lc
    libc=, so=so, useshrplib=true, libperl=libperl.so
    gnulibc_version='2.12'
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E -Wl,-rpath,/usr/lib64/perl5/CORE'
    cccdlflags='-fPIC', lddlflags='-shared -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic'


Characteristics of this binary (from libperl):
  Compile-time options: MULTIPLICITY PERL_DONT_CREATE_GVSV
                        PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP USE_64_BIT_ALL
                        USE_64_BIT_INT USE_ITHREADS USE_LARGE_FILES
                        USE_PERLIO USE_REENTRANT_API USE_SITECUSTOMIZE
  Built under linux
  Compiled at Dec  4 2012 12:05:58
  @INC:
    /usr/local/lib64/perl5
    /usr/local/share/perl5
    /usr/lib64/perl5/vendor_perl
    /usr/share/perl5/vendor_perl
    /usr/lib64/perl5
    /usr/share/perl5
    .
[oracle@lamimtst rda]$ perl rda.pl
------------------------------------------------------------------------------
RDA.BEGIN: Initializes the Data Collection
------------------------------------------------------------------------------
Enter the Oracle home to be used for data analysis
Press Return to accept the default (/oracle/product/11.2.0/db)
>

------------------------------------------------------------------------------
RDA.CONFIG: Collects Key Configuration Information
------------------------------------------------------------------------------
------------------------------------------------------------------------------
SAMPLE.SAMPLE: Controls Sampling
------------------------------------------------------------------------------
------------------------------------------------------------------------------
RDA.CCR: Collects OCM Diagnostic Information
------------------------------------------------------------------------------
Do you want to diagnose OCM installations (Y/N)?
Press Return to accept the default (N)
>

------------------------------------------------------------------------------
RDA.CUST: Collects Customer-Specific Information
------------------------------------------------------------------------------
------------------------------------------------------------------------------
OS.OS: Collects the Operating System Information
------------------------------------------------------------------------------
Se você deseja agilizar a resolução de um chamado, é importante sempre fornecer um RDA e TFA (veja aqui) do ambiente.

Fonte:
https://support.oracle.com/epmos/faces/SearchDocDisplay?_adf.ctrl-state=1b5ovzp6ig_4&_afrLoop=237918110345119#install
http://guors.com.br/documentos_2005/Oracle%20RDA%204.pdf
https://docs.oracle.com/cd/E48292_02/en/E40554/html/rda.htm

Comentários