orachk - validação do ambiente Oracle

O oracle orachk é uma ferramenta desenvolvida pela própria Oracle para validação de produtos Oracle (database e middleware). Anteriormente conhecido como raccheck, o orachk foi aprimorado e projetado para atender tando as versões Single instance quanto RAC, gerando um relatório detalhado sobre os pontos de riscos encontrados. Além de emitir uma pontuação do ambiente, que vai de 0 a 100.


Atualmente o orachk realiza uma validação dos seguintes produtos:


  • Oracle Database
Standalone Database
Grid Infrastructure & RAC
Maximum Availability Architecture (MAA) Validation
Upgrade Readiness Validation
Golden Gate
Application Continuity

  • Enterprise Manager Cloud Control (12c & 13.1)

Repository
Agents
OMS (version 12.1.0.1 and above on Linux only)

  • E-Business Suite

Oracle Payables (R12 only)
Oracle Workflow
Oracle Purchasing (R12 only)
Oracle Order Management (R12 only)
Oracle Process Manufacturing (R12 only)
Oracle Fixed Assets (R12 only)
Oracle Human Resources (R12 only)
Oracle Receivables (R12 only)
Oracle Customer Relationship Management
Oracle Project Billing

  • Oracle Hardware Systems

Oracle Solaris
Oracle Solaris Cluster
Oracle Systems configuration for Oracle Database, Oracle Middleware & Oracle Applications
ZFS Storage Appliance
Oracle Virtual Networking

  • Oracle Identity and Access Management

Oracle Identity Manager (11.1.2.2.x and 11.1.2.3.x)
Oracle Access Manager (11.1.2.2.x and 11.1.2.3.x)
Oracle Unified Directory (11.1.2.2.x and 11.1.2.3.x)

  • Oracle Siebel

Oracle Siebel verification of the database configuration for stability, best practices and performance optimization (Siebel 8.1.1.11 connecting to Oracle Database 11.2.0.4.)

  • Oracle PeopleSoft

Oracle PeopleSoft verification of the database best practices

As principais características que podemos destacar do ORAchk são:

  • Verificação proativa de problemas conhecidos e de maior impacto para o sistema.
  • Simplifica e agiliza a investigação e análise de problemas conhecidos que representam um risco ao ambiente.
  • É uma ferramenta leve, não precisa de instalação e a execução ocorre isolada (os dados não trafegam pela rede nem são enviados para a Oracle)
  • Possuí relatório de alto nível possibilitando identificação clara dos riscos existentes no ambiente.
  • Permite o possibilidade de configuração de envio de email quando um problema é detectado.

Agora que já conhecemos um pouco do ORAchk e seus benefícios, vamos a um exemplo prático de instalação", execução e verificação do relatório gerado em um ambiente de testes single instance.
O donwload da versão mais atual pode ser realizado no My Oracle Support através do Doc ID 1268927.2.

Apos efetuar o download do ORAchk e envia-lo ao servidor que estaremos avaliando, basta descompacta-lo dentro de um diretório específico.
No teste efetuado, criei o diretório orachk, e descompactei o arquivo dentro do mesmo.
[oracle@ora12c discos]$ mkdir orachk
[oracle@ora12c discos]$ mv orachk.zip orachk
[oracle@ora12c discos]$ cd orachk
[oracle@ora12c orachk]$ ls
orachk.zip
[oracle@ora12c orachk]$ unzip orachk.zip
Archive:  orachk.zip
  inflating: sample_user_defined_checks.xml
  inflating: collections.dat
  inflating: CollectionManager_App.sql
  inflating: UserGuide.txt
  inflating: rules.dat
  inflating: orachk
   creating: .cgrep/
  inflating: .cgrep/exalogic_zfs_checks_el_extensive.aksh
  inflating: .cgrep/OVMMCheckChannels.py
  inflating: .cgrep/scnhealthcheck.sql
  inflating: .cgrep/checkDiskFGMapping.sh
  inflating: .cgrep/pxhcdr.sql
  inflating: .cgrep/lcgrep4
  inflating: .cgrep/lcgreps9
  inflating: .cgrep/zonecores.sh
  inflating: .cgrep/cgrepwin61
  inflating: .cgrep/profile_collections.pl
  inflating: .cgrep/checkHiddenParams.sh
  inflating: .cgrep/registry_validation.sql
  inflating: .cgrep/ggdiscovery.sh
  inflating: .cgrep/zfssa_checks.aksh
  inflating: .cgrep/psqlplus
  inflating: .cgrep/ogghc_12101.sql
  inflating: .cgrep/load_checks_attributes.pl
  inflating: .cgrep/parse_index.pl
  inflating: .cgrep/oracle-upstarttmpl.conf
  inflating: .cgrep/acchk.jar
  inflating: .cgrep/rack_comparison.py
  inflating: .cgrep/discoverdbasm.pl
  inflating: .cgrep/create_small_file.pl
  inflating: .cgrep/preupgrd.sql
  inflating: .cgrep/diff_checks.pl
  inflating: .cgrep/scgrep
  inflating: .cgrep/diff_collections.pl
  inflating: .cgrep/lcgreps11
  inflating: .cgrep/hiacgrep
  inflating: .cgrep/ogghc_11203.sql
  inflating: .cgrep/ogghc_11204.sql
  inflating: .cgrep/isc_summary.pl
  inflating: .cgrep/ofm_client.sh
  inflating: .cgrep/rac_lib.pm
  inflating: .cgrep/mineocr.pm
  inflating: .cgrep/validatePassword.sh
  inflating: .cgrep/check_sysctl.awk
  inflating: .cgrep/zlcgrep6
  inflating: .cgrep/auto_upgrade.pl
  inflating: .cgrep/vmpscan.sh
  inflating: .cgrep/scgrepx86
  inflating: .cgrep/checkFlashCache.sh
  inflating: .cgrep/checkDiskScheduler.sh
  inflating: .cgrep/profile_only.dat
  inflating: .cgrep/discover_java_home.sh
  inflating: .cgrep/create_version.pl
  inflating: .cgrep/raw_data_browser.pl
  inflating: .cgrep/show_file_in_html.pl
 extracting: .cgrep/zfs_basic_check.akwf
   creating: .cgrep/profiles/
  inflating: .cgrep/profiles/D49B218473787400E0431EC0E50A0BB9.prf
 extracting: .cgrep/profiles/2A2FC945D720BAB8E0530C98EB0AC02F.prf
  inflating: .cgrep/profiles/12B66730A5161437E05312C0E50AABAB.prf
  inflating: .cgrep/profiles/0A82EA8BF9646097E05313C0E50A26D6.prf
  inflating: .cgrep/profiles/F9ED0179CCD8256BE04312C0E50A5399.prf
  inflating: .cgrep/profiles/1B0907A7BA8DA932E0530C98EB0A0947.prf
  inflating: .cgrep/profiles/F6AFECA37F177C3FE04313C0E50A56BF.prf
  inflating: .cgrep/profiles/09DC8AC7C7974BDDE05313C0E50A2339.prf
  inflating: .cgrep/profiles/177BBFEE0215240AE0530E98EB0AEBF7.prf
  inflating: .cgrep/profiles/D49BDC2EC9E624AEE0431EC0E50A3E12.prf
 extracting: .cgrep/profiles/21A3C08B67727E6AE0530E98EB0AE59C.prf
  inflating: .cgrep/profiles/165CCF84D4FE0342E0530A98EB0AAE6E.prf
 extracting: .cgrep/profiles/1A5008BEC8B612BCE0530E98EB0AA998.prf
  inflating: .cgrep/profiles/D49C0AB26A6D45A8E0431EC0E50ADE06.prf
  inflating: .cgrep/profiles/D49C4F9F48735396E0431EC0E50A9A0B.prf
  inflating: .cgrep/profiles/DFE9C207A8F2428CE04313C0E50A6B0A.prf
  inflating: .cgrep/profiles/271BD73C756AE5EDE0530B98EB0A6A13.prf
  inflating: .cgrep/profiles/DF65D0F7FB6F1014E04312C0E50A7808.prf
  inflating: .cgrep/profiles/1B0907A7BA8CA932E0530C98EB0A0947.prf
  inflating: .cgrep/profiles/270F37922A89B520E0530B98EB0ADDE9.prf
  inflating: .cgrep/profiles/178E758EB8CA06D8E0530D98EB0A7AC9.prf
 extracting: .cgrep/profiles/F13E11974A282AB3E04312C0E50ABCBF.prf
  inflating: .cgrep/profiles/EF6C016813C51366E04313C0E50AE11F.prf
  inflating: .cgrep/profiles/DA94919CD0DE0913E04312C0E50A7996.prf
  inflating: .cgrep/profiles/D49C0FBF8FBF4B1AE0431EC0E50A0F24.prf
  inflating: .cgrep/profiles/06889D8BB65E575CE05313C0E50ADFD3.prf
  inflating: .cgrep/profiles/D8367AD6754763FEE04312C0E50A6FCB.prf
  inflating: .cgrep/profiles/DF65D6117CB41054E04312C0E50A69D1.prf
  inflating: .cgrep/profiles/06702DE980726771E05313C0E50ACF83.prf
 extracting: .cgrep/profiles/2A302D96CCE5F8B2E0530A98EB0A71EE.prf
  inflating: .cgrep/profiles/1B0907A7BA8EA932E0530C98EB0A0947.prf
  inflating: .cgrep/profiles/20E3DAB976AD7377E0530A98EB0A9BCA.prf
  inflating: .cgrep/profiles/E1BF012E8F210839E04313C0E50A7B68.prf
  inflating: .cgrep/profiles/D462A6F7E9C340FDE0431EC0E50ABE12.prf
  inflating: .cgrep/profiles/069273EAA9873FD1E05312C0E50A8953.prf
  inflating: .cgrep/profiles/EA5EE324E7E05128E04313C0E50A4B2A.prf
  inflating: .cgrep/profiles/3194E615F4BBEDD0E0530A98EB0A046E.prf
  inflating: .cgrep/profiles/1C6E4AC8EF3674D0E0530D98EB0ACEC1.prf
  inflating: .cgrep/profiles/E8DF76E07DD82E0DE04313C0E50AA55D.prf
  inflating: .cgrep/profiles/206B850D83B1CE54E0530C98EB0A5C89.prf
  inflating: .cgrep/profiles/F32F44CE0BCD662FE04312C0E50AB058.prf
  inflating: .cgrep/profiles/E2E972DDE1E14493E04312C0E50A1AB1.prf
  inflating: .cgrep/profiles/D49AD88F8EE75CD8E0431EC0E50A0BC3.prf
  inflating: .cgrep/lcgrep5
  inflating: .cgrep/idmhc_get_check_status.pl
  inflating: .cgrep/switch_multirack.sh
  inflating: .cgrep/utlu112i.sql
  inflating: .cgrep/parse_user_defined_checks.pl
  inflating: .cgrep/rac_file_checker.pl
  inflating: .cgrep/detect_custom_rpms.sh
  inflating: .cgrep/checkLocalDisks.sh
  inflating: .cgrep/lcgreps10
  inflating: .cgrep/get_zfs_checks.pl
  inflating: .cgrep/filechecker.sh
  inflating: .cgrep/check_reblance_free_space.sql
  inflating: .cgrep/merge_collections.pl
  inflating: .cgrep/append_merge_collections.pl
  inflating: .cgrep/lcgrep6s
  inflating: .cgrep/utluppkg.sql
  inflating: .cgrep/host_specific_collections.pl
  inflating: .cgrep/reset_crshome.pl
  inflating: .cgrep/wallet2.pl
  inflating: .cgrep/cgrepwin63
  inflating: .cgrep/asrexacheck
  inflating: .cgrep/init.tmpl
  inflating: .cgrep/readreg.pl
  inflating: .cgrep/utlusts.sql
  inflating: .cgrep/rac_main.pl
  inflating: .cgrep/acgrep
  inflating: .cgrep/exalogic_zfs_checks.aksh
  inflating: .cgrep/profiles.dat
  inflating: .cgrep/lcgrep6
  inflating: .cgrep/checkvg.sh
  inflating: .cgrep/run_individual_checks.pl
  inflating: .cgrep/combine_collections.pl
  inflating: .cgrep/versions.dat
  inflating: readme.txt
  inflating: user_defined_checks.xsd
   creating: .cgrep/zfschecks/
  inflating: .cgrep/zfschecks/Cluster
  inflating: .cgrep/zfschecks/ZSCPU
  inflating: .cgrep/zfschecks/ExtMirrorProfile
  inflating: .cgrep/zfschecks/ExtShareDedup
  inflating: .cgrep/zfschecks/Shadows
  inflating: .cgrep/zfschecks/ExtShadows
  inflating: .cgrep/zfschecks/ZSServices
  inflating: .cgrep/zfschecks/NFSDomain
  inflating: .cgrep/zfschecks/NFS4LockObjectLeak
  inflating: .cgrep/zfschecks/ShareQuota
  inflating: .cgrep/zfschecks/ZSILOM
  inflating: .cgrep/zfschecks/ShareDedup
  inflating: .cgrep/zfschecks/ExtShareQuota
  inflating: .cgrep/zfschecks/SnapshotVisibility
  inflating: .cgrep/zfschecks/ZSFan
  inflating: .cgrep/zfschecks/Lock
  inflating: .cgrep/zfschecks/BlockSize
  inflating: .cgrep/zfschecks/SoftringWorkflow
  inflating: .cgrep/zfschecks/DiskTimeoutWarning
  inflating: .cgrep/zfschecks/HeadStatus
  inflating: .cgrep/zfschecks/ZSRouting
  inflating: .cgrep/zfschecks/Maintenance
  inflating: .cgrep/zfschecks/AnalyticsRetentionPolicy
  inflating: .cgrep/zfschecks/ZSVersion
  inflating: .cgrep/zfschecks/ZSIPMP
  inflating: .cgrep/zfschecks/L2ARCHeader
  inflating: .cgrep/zfschecks/ZSSlot
  inflating: .cgrep/zfschecks/Datasets
  inflating: .cgrep/zfschecks/DNSConfiguration
  inflating: .cgrep/zfschecks/ZSDIMM
  inflating: .cgrep/zfschecks/ZSPrivateNetworkInterface
  inflating: .cgrep/zfschecks/MirrorProfile
  inflating: .cgrep/zfschecks/Backend
  inflating: .cgrep/zfschecks/ZSNTP
  inflating: .cgrep/zfschecks/NFSDelegation
  inflating: .cgrep/zfschecks/CommonCode
  inflating: .cgrep/zfschecks/StorageMemSize
  inflating: .cgrep/zfschecks/ZSPowerSupply
  inflating: .cgrep/zfschecks/ExtBlockSize
  inflating: .cgrep/zfschecks/ZSPool
  inflating: .cgrep/zfschecks/ZSZillas
   creating: exadiscover/
  inflating: exadiscover/list_master_node.sql
  inflating: exadiscover/list_ovmm.sql
  inflating: exadiscover/list_all_ips_vars.sql
  inflating: exadiscover/exadiscover.py
  inflating: exadiscover/exadiscover.sh
  inflating: exadiscover/CHANGELOG
  inflating: exadiscover/README
  inflating: exadiscover/list_all_ips.sql
  inflating: exadiscover/list_assets.sql
   creating: templates/
  inflating: templates/exachk_exalogic.conf.tmpl_quarter
  inflating: templates/exachk_exalogic.conf.tmpl_full
  inflating: templates/exachk_exalogic.conf.tmpl_eighth
  inflating: templates/exachk_exalogic.conf.tmpl_half
  inflating: generate_guests_list.sh
  inflating: ORAchk_Health_Check_Catalog.html
  inflating: doc/ORAchk_and_EXAchk_User_Guide.pdf
  inflating: doc/ORAchk_EXAchk_Feature_Fix_History.pdf
[oracle@ora12c orachk]$
Após descompactar, basta executar o orachk e informar as "interações" solicitadas para execução do relatório. Para que toda a validação seja possível, será preciso que o usuário que estará executando (preferencialmente seja o oracle) tenha permissão para realizar um sudo ou você pode fornecer a senha do root durante a execução.
Banco=lamimcdb-> echo $ORACLE_HOME
/orabin/app/oracle//product/12.1.0.2/db_1
Banco=lamimcdb-> echo $ORACLE_SID
lamimcdb
Banco=lamimcdb-> echo $ORACLE_BASE
/orabin/app/oracle/
Banco=lamimcdb->
Banco=lamimcdb->
Banco=lamimcdb-> ./orachk
Enter ORACLE_HOME for lamimcdb : /orabin/app/oracle//product/12.1.0.2/db_1

List of running databases
1. lamimcdb
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
-------------------------------------------------------------------------------------------------------
ora12c      No              No              Yes             No         No       Yes      lamimcdb
-------------------------------------------------------------------------------------------------------


Copying plug-ins

. . . . . . . . .


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



Collections and audit checks log file is
/u01/discos/orachk/orachk_ora12c_lamimcdb_090616_140408/log/orachk.log



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


. .
=============================================================
                    Node name - ora12c
=============================================================
. . . . .

Collecting - Database Parameters for lamimcdb database
Collecting - Database Undocumented Parameters for lamimcdb database
Collecting - RDBMS Feature Usage for lamimcdb database
Collecting - CPU Information
Collecting - DiskMount Information
Collecting - Kernel parameters
Collecting - Maximum number of semaphore sets on system
Collecting - Maximum number of semaphores on system
Collecting - Maximum number of semaphores per semaphore set
Collecting - Memory Information
Collecting - OS Packages
Collecting - Operating system release information and kernel version
Collecting - Patches for RDBMS Home
Collecting - Table of file system defaults
Collecting - number of semaphore operations per semop system call




Data collections completed. Checking best practices on ora12c.
--------------------------------------------------------------------------------------


 WARNING => DBRM is not configured. for lamimcdb
 WARNING => Linux Swap Configuration does NOT meet Recommendation
 WARNING => physical memory is not sufficient
 WARNING => free physical memory is not at sufficient level on system
 INFO =>    Important Storage Minimum Requirements for Grid & Database Homes
 INFO =>    Most recent ADR incidents for /orabin/app/oracle//product/12.1.0.2/db_1
 WARNING => PGA allocation for all databases is more than total memory available on this system
 INFO =>    Oracle GoldenGate failure prevention best practices
 INFO =>    At some times checkpoints are not being completed for lamimcdb
 WARNING => OSWatcher is not running as is recommended.
 FAIL =>    Database parameter DB_BLOCK_CHECKSUM is NOT set to recommended value on lamimcdb instance
 FAIL =>    Database parameter DB_LOST_WRITE_PROTECT is NOT set to recommended value on lamimcdb instance
 INFO =>    umask for RDBMS owner is not set to 0022
 WARNING => Database parameter DB_BLOCK_CHECKING on PRIMARY is NOT set to the recommended value. for lamimcdb
 INFO =>    Operational Best Practices
 INFO =>    Database Consolidation Best Practices
 INFO =>    Computer failure prevention best practices
 INFO =>    Data corruption prevention best practices
 INFO =>    Logical corruption prevention best practices
 INFO =>    Database/Cluster/Site failure prevention best practices
 INFO =>    Client failover operational best practices
 WARNING => Duplicate objects were found in the SYS and SYSTEM schemas for lamimcdb
 WARNING => Oracle clusterware is not being used
 WARNING => RAC Application Cluster is not being used for database high availability on lamimcdb instance
 WARNING => DISK_ASYNCH_IO is NOT set to recommended value for lamimcdb
 FAIL =>    Flashback on PRIMARY is not configured for lamimcdb
 INFO =>    Database failure prevention best practices
 WARNING => fast_start_mttr_target has NOT been changed from default on lamimcdb instance
 FAIL =>    Primary database is NOT protected with Data Guard (standby database) for real-time data protection and availability for lamimcdb
 FAIL =>    Active Data Guard is not configured for lamimcdb
 INFO =>    Oracle recovery manager(rman) best practices
 INFO =>    Consider increasing the COREDUMPSIZE size
 WARNING => Consider increasing the value of the session_cached_cursors database parameter for lamimcdb
 WARNING => Consider investigating the frequency of SGA resize operations and take corrective action for lamimcdb


Best Practice checking completed.Checking recommended patches on ora12c.
---------------------------------------------------------------------------------


Collecting patch inventory on ORACLE_HOME /orabin/app/oracle//product/12.1.0.2/db_1
---------------------------------------------------------------------------------


---------------------------------------------------------------------------------
1 Recommended RDBMS patches for 121020 from /orabin/app/oracle//product/12.1.0.2/db_1 on ora12c
---------------------------------------------------------------------------------
Patch#   RDBMS    ASM     type                Patch-Description
---------------------------------------------------------------------------------
22291127  no             merge               DATABASE PATCH SET UPDATE 12.1.0.2.160419
---------------------------------------------------------------------------------
---------------------------------------------------------------------------------


---------------------------------------------------------------------------------
              RDBMS homes patches summary report
---------------------------------------------------------------------------------
Total patches  Applied on RDBMS Applied on ASM ORACLE_HOME
---------------------------------------------------------------------------------
 1              0              0                /orabin/app/oracle//product/12.1.0.2/db_1
---------------------------------------------------------------------------------



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


Detailed report (html) - /u01/discos/orachk/orachk_ora12c_lamimcdb_090616_140408/orachk_ora12c_lamimcdb_090616_140408.html
UPLOAD(if required) - /u01/discos/orachk/orachk_ora12c_lamimcdb_090616_140408.zip

Banco=lamimcdb->
Ao término da execução, será criado no diretório raiz do ORAchk um novo diretório (orachk_ora12c_lamimcdb_090616_140408) com o relatório html do ambiente, que acabou de ser gerado. Também será realizada uma copia compactada (orachk_ora12c_lamimcdb_090616_140408.zip) deste diretório que pode ser utilizada em alguma SR da Oracle.

Abaixo estarei compartilhando algumas imagens do report gerado pelo orachk em meu ambiente de testes.





Referência: ORAchk - Health Checks for the Oracle Stack (Doc ID 1268927.2)

Comentários