Oracle Configuration Requirements


Report Metrics



 Technical Requirements

#Requirement
User Story

ImportanceChallengeNotes
1security patch Level

 

To capture the attribute security patch level. We will need to use 'OPatch' and 'lsinventory' commands which lists all the patches applied to the oracle db and then parse the latest patch that has been applied. You will have to add a 'extension section' to the oracle pattern, to add extra steps to run this command, and then parse the output, to extract the value you want to put in the attribute/ field of the CI. 


Here is the pattern.

 


 







2important

glide.required.attribute.enabled


Set to false






3

Proposed View modification that we would like to see which includes the latest security patches applied to that Instance as well – that is one of the most important piece of information we would like to see on this form/view.







4



Oracle = Listener Details

ORA_HOME=$1
LISTENER=$2
TNS_ADMIN="/ora_admin/tns_admin"
FAILED=0
ERR=""

get_config() {
    CONFIG_PATH="${TNS_ADMIN}/listener.ora"
    FAILED=`sudo cat $CONFIG_PATH 1> /dev/null 2>&1; echo $?`
    [ "$FAILED" != 0 ] && ERR="Could not read listener.ora: $CONFIG_PATH. $ERR" && return
    echo "snc_listener.ora_contents="
    sudo cat $CONFIG_PATH
}

get_instances() {
    ORACLE_HOME=$ORA_HOME
    export ORACLE_HOME
    INSTANCES=`${ORA_HOME}/bin/lsnrctl status $LISTENER 2>&1 | sed -ne 's/Instance "\(.*\)", status READY.*/\1/p' | tr -d ' ' | uniq | tr '\n' ' '`
    [ "$INSTANCES" != "" ] && echo "snc_ora_instances=$INSTANCES" && return
    FAILED=1
    ERR="Unable to accurately determine listener<->instance relationships. $ERR"
}

get_version() {
    VERSION=`${ORA_HOME}/bin/lsnrctl status 2>&1 | grep Version | sed -ne 's/.*: Version \([0-9.]*\) .*/\1/p'`
    [ "$VERSION" != "" ] && echo "snc_ora_version=$VERSION" && return
    VERSION=`echo $ORA_HOME | sed -ne 's/.*\/\([0-9.]*\)\/.*/\1/p'`
    [ "$VERSION" != "" ] && echo "snc_ora_version=$VERSION" && return
    FAILED=1
    ERR="Could not determine Oracle listener version. $ERR"
}

get_version
get_instances
get_config
[ "$FAILED" != 0 ] && echo "snc_error=$ERR"
exit 0





5







6

 set glide.required.attribute.enabled to false




7
SIDThe solution for this issue is to make sure the identification section "Identification for Oracle DB entry point type(s) - no instance" . executes before "dentification for Oracle DB entry point type(s) - no instance on Solaris" - So i have changed the order on the pattern for the correct identification section to be executed first. - To confirm the issue has been resolved, i ran a discovery on vm-ktkdevdb-01 (172.18.24.33) . See DIS0010142 Now the SID is updated on the oracle instances https://yalesandbox.service-now.com/cmdb_ci_db_ora_instance.do?sys_id=8973fd411bf1005493463153cd4bcb26&sysparm_view= https://yalesandbox.service-now.com/cmdb_ci_db_ora_instance.do?sys_id=bad41982db7d48107150132968961938&sysparm_view=




8

security Patch Level 









Probes


Oracle Probes

Oracle Instance

  • Horizontal discovery probe: launches patterns
  • Powershell-Oracle - Instance PFile (for Windows)*
  • Powershell-Oracle - Instance Version (for Windows)*
  • SSHCommand-Oracle - Instance Details (for Linux)*



Patterns


Oracle Patterns
Application patterns:
  • Oracle DB On Windows Pattern
  • Oracle DB on UNIX Pattern
This shared library pattern used by the Linux Server pattern:
  • UNIX Cluster - ORACLE Clusterware
Note: This shared library pattern is triggered if the crsd.bin process is running on the Oracle database server.

Oracle Discovery Data Collections


Data collected on UNIX machines

LabelField nameAdditional information
SIDsidObtained from the name of the process that starts with ora_pmon_
Install directoryinstall_directoryObtained from the path of ORA_HOME
VersionversionObtained in this order:
  • From the output of the ORA_HOME/bin/sqlplus /NOLOG command
  • From the output of the ORA_HOME/bin/lsnrctl status command
  • From the path of ORA_HOME
Parameter filepfileThe following locations are explored for the location of the System Parameter File. If this file does not exist in one of the explored locations, Discovery does not find the file and reports an error.
  • oracle_home/dbs/spfileSID.ora
  • oracle_home/dbs/spfile.ora
  • oracle_home/dbs/initSID.ora
Oracle Homeoracle_homeObtained from the ORATAB file.
Editionedition


Data collected on Windows machines

LabelField nameAdditional information
SIDsidObtained from the process parameter that is passed to the oracle.exe process.
Install directoryinstall_directory
VersionversionObtained from the output of the ORA_HOME/bin/sqlplus.exe -V command.
Parameter filepfileThe following locations are explored for the location of the System Parameter File. If this file does not exist in one of the explored locations, Discovery does not find the file and reports an error.
  • oracle_home\database\spfileSID.ora
  • oracle_home\database\spfile.ora
  • oracle_home\database\initSID.ora
Oracle Homeoracle_homeParsed from the path of oracle.exe
Editionedition

cmdb_ci_db_ora_instance Data attributes


u_ = added fields

MandatorySort in ascending orderTypeSort in ascending orderReferenceSort in ascending orderMax lengthSort in ascending orderDefault valueSort in ascending orderDisplaySort in ascending order
Host Environmentu_host_environmenttrueString(empty)40
false
Lifecycle Classificationu_lifecycle_classificationtrueString(empty)40
false
University Sponsor Leaderu_univ_sponsor_leadtrueReferenceUser32
false
University Areasu_university_areastrueListUniversity Area1,024
false
Sys IDsys_idtrueSys ID (GUID)(empty)32
false
Used byu_used_bytrueListApplications Used By1,024
false
Package Typeu_package_typetrueString(empty)40
false
NamenametrueString(empty)255
true
Host Typeu_host_typetrueReferenceHost Type32
false
Operational statusoperational_statustrueInteger(empty)1001false
Descriptionshort_descriptiontrueString(empty)1,000
false
Can Printcan_printfalseTrue/False(empty)40falsefalse
Skip syncskip_syncfalseTrue/False(empty)40falsefalse
Most recent discoverylast_discoveredfalseDate/Time(empty)40
false
Lifecycle Dateu_lifecycle_datefalseDate(empty)40
false
Configuration directoryconfig_directoryfalseString(empty)255
false
ClassifierclassifierfalseReferenceProcess Classification32
false
Business Value Scoreu_business_value_scorefalseChoice(empty)40
false
Operational Controlsu_operational_controlsfalseString(empty)40
false
Clusteredu_clusteredfalseTrue/False(empty)40
false
Other High Risku_other_high_riskfalseString(empty)200
false
Fault countfault_countfalseInteger(empty)400false
Functional Contactmanaged_byfalseReferenceUser32
false
Decommission Dateu_decommission_datefalseDate(empty)40
false
GL accountgl_accountfalseString(empty)40
false
PIDpidfalseInteger(empty)40
false
Last SDR Approval Dateu_last_sdr_approval_datefalseDate(empty)40
false
Future Platform Componentsu_future_platform_componentsfalseListPlatform Component1,024
false
CostcostfalseFloating Point Number(empty)40
false
PO numberpo_numberfalseString(empty)40
false
Cost currencycost_ccfalseString(empty)3USDfalse
Is a Disaster Recovery Plan Required?u_dr_plan_requiredfalseString(empty)40Nofalse
Order receiveddelivery_datefalseDate/Time(empty)40
false
Domainsys_domainfalseDomain ID(empty)32globalfalse
Primary Supportu_primary_supportfalseReferenceUser32
false
Notesu_notesfalseJournal(empty)4,000
false
programming ver expu_programming_ver_expfalseString(empty)40
false
Environmentu_environmentfalseString(empty)40
false
CategorycategoryfalseString(empty)40javascript:gs.include("CMDBItem");var it...false
Support Vendoru_support_vendorfalseReferenceCompany32
false
Platform Componentsu_platform_componentsfalseListPlatform Component1,024
false
TCP port(s)tcp_portfalseString(empty)255
false
ManufacturermanufacturerfalseReferenceCompany32
false
Classsys_class_namefalseSystem Class Name(empty)80javascript:current.getTableName();false
Used forused_forfalseString(empty)40Productionfalse
Installedinstall_datefalseDate/Time(empty)40
false
PagerDuty servicex_pd_integration_pagerduty_servicefalseString(empty)40
false
Accessibility Support Groupu_accessibility_support_groupfalseReferenceGroup32b0dea7a56f1771007ee2abcf9f3ee477false
Credentialless Discovery Portcl_portfalseInteger(empty)40
false
PagerDuty webhookx_pd_integration_pagerduty_webhookfalseString(empty)40
false
Updated bysys_updated_byfalseString(empty)40
false
Recovery Tier Justificationu_recovery_tier_justificationfalseListRecovery Tier Justification1,024
false
SOXu_soxfalseTrue/False(empty)40
false
Requires verificationunverifiedfalseTrue/False(empty)40
false
Recovery Tieru_recovery_tierfalseString(empty)40
false
Quickbase Application IDu_quickbase_idfalseString(empty)40
false
Configuration fileconfig_filefalseString(empty)255
false
Statusinstall_statusfalseInteger(empty)40
false
Supported bysupported_byfalseReferenceUser32
false
Start datestart_datefalseDate/Time(empty)40
false
Data Sensitivityu_data_classificationfalseString(empty)40
false
Created bysys_created_byfalseString(empty)40
false
Maintenance schedulemaintenance_schedulefalseReferenceSchedule32
false
Application Scopeu_application_scopefalseString(empty)40
false
Owned byowned_byfalseReferenceUser32
false
Running process parametersrunning_process_parametersfalseString(empty)65,000
false
Secondary Supportu_secondary_supportfalseReferenceUser32
false
Accessibility Contactu_accessibility_contactfalseReferenceUser32
false
Regulated Informationu_other_contractual_informationfalseString(empty)10
false
AssetassetfalseReferenceAsset32
false
Checked inchecked_infalseDate/Time(empty)40
false
Last TAC Approval Dateu_last_tac_approvalfalseDate(empty)40
false
External Obligationsu_regulated_infofalseListRegulated Information4,000
false
Support groupsupport_groupfalseReferenceGroup32
false
DR Plan ID #u_dr_plan_idfalseString(empty)40
false
DNS Domaindns_domainfalseString(empty)255
false
Purchasedpurchase_datefalseDate(empty)40
false
Listener namelistener_namefalseString(empty)255
false
Orderedorder_datefalseDate/Time(empty)40
false
Serial numberserial_numberfalseString(empty)255
false
Display nameu_display_namefalseString(empty)255
false
VendorvendorfalseReferenceCompany32
false
CompanycompanyfalseReferenceCompany32
false
Running process key parametersrunning_process_key_parametersfalseString(empty)65,000
false
Lease contractlease_idfalseString(empty)40
false
Third Party Supportu_third_party_supportfalseReferenceCompany32
false
Pfile/ Spfileu_pfilespfilefalseString(empty)40
false
Latest Risk Assessmentu_risk_assessment_idfalseString(empty)40
false
Asset tagasset_tagfalseString(empty)40
false
Production Start Dateu_production_datefalseDate(empty)40
false
License Countu_license_countfalseString(empty)40
false
Target Decommissioning Dateu_target_decommissioning_datefalseDate(empty)40
false
Running process commandrunning_process_commandfalseString(empty)65,000
false
MonitormonitorfalseTrue/False(empty)40falsefalse
PfilepfilefalseString(empty)8,000
false
Recovery Time Objective (RTO)u_recovery_time_objective_rtofalseString(empty)40
false
sys_class_pathsys_class_pathfalseSystem Class path(empty)255javascript:GlideDBObjectManager.get().ge...false
Technology Fit Scoreu_technology_fit_scorefalseChoice(empty)40
false
Correlation IDcorrelation_idfalseString(empty)512
false
VersionversionfalseString(empty)255
false
License Typeu_license_typefalseString(empty)40
false
SDR #u_last_sdr_numberfalseInteger(empty)40
false
JustificationjustificationfalseString(empty)80
false
Oracle Homeoracle_homefalseString(empty)255
false
Functional Owning Organizationu_functional_owning_orgfalseString(empty)40
false
EditioneditionfalseString(empty)100
false
Hostingu_hostingfalseString(empty)40
false
Assigned toassigned_tofalseReferenceUser32
false
Target Cloud Deploymentu_target_cloud_deploymentfalseString(empty)40
false
DR Plan Next Testing Dateu_dr_plan_next_testfalseDate(empty)40
false
DR Plan Next Approval Dateu_dr_plan_next_approvalfalseDate(empty)40
false
SubcategorysubcategoryfalseString(empty)40
false
AssignedassignedfalseDate/Time(empty)40
false
Invoice numberinvoice_numberfalseString(empty)40
false
Data Typesu_data_security_classificationfalseListData Security Classification Type1,024
false
SIDsidfalseString(empty)40
false
Createdsys_created_onfalseDate/Time(empty)40
false
Project Number and Nameu_project_number_and_namefalseString(empty)40
false
Checked outchecked_outfalseDate/Time(empty)40
false
Running processrunning_processfalseReferenceRunning Process32
false
AttributesattributesfalseString(empty)65,000
false
Domain Pathsys_domain_pathfalse(empty)(empty)255
false
Updatedsys_updated_onfalseDate/Time(empty)40
false
Business Criticalityu_business_criticalityfalseString(empty)40
false
Model IDmodel_idfalseReferenceProduct Model32
false
Other Moderate Risku_other_moderate_riskfalseString(empty)200
false
InstanceinstancefalseString(empty)40
false
SDR Informationu_sdr_informationfalseString(empty)40
false
Recovery Point Objective (RPO)u_recovery_point_objective_rpofalseString(empty)40
false
Approval groupchange_controlfalseReferenceGroup32
false
Installation directoryinstall_directoryfalseString(empty)255
false
Fully qualified domain namefqdnfalseString(empty)255
false
Risk Classificationu_risk_levelfalseString(empty)40
false
Future Host Environmentu_future_host_environmentfalseString(empty)40
false
Monitoringu_monitoringfalseTrue/False(empty)40
false
Is clusteredis_clusteredfalseTrue/False(empty)40
false
Running process command hashrp_command_hashfalseString(empty)255
false
Management IP Addressip_addressfalseString(empty)255
false
LocationlocationfalseReferenceLocation32
false
Software Installsoftware_installfalseReferenceSoftware Installation32
false
First discoveredfirst_discoveredfalseDate/Time(empty)40
false
Warranty expirationwarranty_expirationfalseDate(empty)40
false
Model numbermodel_numberfalseString(empty)255
false
Future Host Typeu_future_host_typfalseReferenceHost Type32
false
Platformu_platformfalseReferenceQuickbase Platforms40
false
Assignment groupassignment_groupfalseReferenceGroup32
false
DR Plan Last Tested Dateu_dr_plan_last_testfalseDate(empty)40
false
Due indue_infalseString(empty)40
false
CommentscommentsfalseString(empty)4,000
false
Cost centercost_centerfalseReferenceCost Center32
false
Aliasu_aliasfalseString(empty)100
false
DueduefalseDate/Time(empty)40
false
Programming Langu_programming_langfalseListProgramming Language1,024
false
Updatessys_mod_countfalseInteger(empty)40
false
MAC Addressmac_addressfalseString(empty)40
false
Data Centeru_reference_1falseReferenceData Center32bac72b5137130200f212cc028e41f1b8false
Running process key parameters hashrp_key_parameters_hashfalseString(empty)255
false
DR Plan Last Approvedu_dr_plan_last_approvalfalseDate(empty)40
false
Discovery sourcediscovery_sourcefalseString(empty)40
false
DepartmentdepartmentfalseReferenceDepartment32
false
Application ISMEu_application_ismefalseChoice(empty)40
false
Accessibilityu_accessibilityfalseString(empty)40
false
ScheduleschedulefalseReferenceSchedule32
false
Service Nameu_service_namefalseString(empty)40
false

User Interface

Main Form


User Interface Requirement

Currently discovery process is not getting them Security Patch Level. This is really important for them. He just wants to capture the top row (latest security patch) brought back through the command. Please let me know if this is doable. If it is doable we can add the data attribute to the UI. Right now it is maintained manually in spreadsheets (not always up-to-date). 

Having it is Important because Oracle team have to follow ISO requirement of keeping Oracle Databases with up to date with all the security vulnerabilities out there and only way to do is - by applying the patches that comes out quarterly.

Relationships

Tracked Configuration Files


Dependency View


Relationships





Validation Steps


StepDescriptionVerdict






Open Questions

QuestionAnswerDate Answered

Out of Scope