Oracle Configuration Requirements
Report Metrics
Technical Requirements
# | Requirement | User Story | Importance | Challenge | Notes | |||
---|---|---|---|---|---|---|---|---|
1 | security 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.
| ||||||
2 | important | 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 | SID | The 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
|
Patterns
Oracle Patterns |
---|
Application patterns:
This shared library pattern used by the Linux Server pattern:
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
Label | Field name | Additional information |
---|---|---|
SID | sid | Obtained from the name of the process that starts with ora_pmon_ |
Install directory | install_directory | Obtained from the path of ORA_HOME |
Version | version | Obtained in this order:
|
Parameter file | pfile | The 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 | oracle_home | Obtained from the ORATAB file. |
Edition | edition |
Data collected on Windows machines
Label | Field name | Additional information |
---|---|---|
SID | sid | Obtained from the process parameter that is passed to the oracle.exe process. |
Install directory | install_directory | |
Version | version | Obtained from the output of the ORA_HOME/bin/sqlplus.exe -V command. |
Parameter file | pfile | The 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 | oracle_home | Parsed from the path of oracle.exe |
Edition | edition |
cmdb_ci_db_ora_instance Data attributes
u_ = added fields
MandatorySort in ascending order | TypeSort in ascending order | ReferenceSort in ascending order | Max lengthSort in ascending order | Default valueSort in ascending order | DisplaySort in ascending order | |||
---|---|---|---|---|---|---|---|---|
Host Environment | u_host_environment | true | String | (empty) | 40 | false | ||
Lifecycle Classification | u_lifecycle_classification | true | String | (empty) | 40 | false | ||
University Sponsor Leader | u_univ_sponsor_lead | true | Reference | User | 32 | false | ||
University Areas | u_university_areas | true | List | University Area | 1,024 | false | ||
Sys ID | sys_id | true | Sys ID (GUID) | (empty) | 32 | false | ||
Used by | u_used_by | true | List | Applications Used By | 1,024 | false | ||
Package Type | u_package_type | true | String | (empty) | 40 | false | ||
Name | name | true | String | (empty) | 255 | true | ||
Host Type | u_host_type | true | Reference | Host Type | 32 | false | ||
Operational status | operational_status | true | Integer | (empty) | 100 | 1 | false | |
Description | short_description | true | String | (empty) | 1,000 | false | ||
Can Print | can_print | false | True/False | (empty) | 40 | false | false | |
Skip sync | skip_sync | false | True/False | (empty) | 40 | false | false | |
Most recent discovery | last_discovered | false | Date/Time | (empty) | 40 | false | ||
Lifecycle Date | u_lifecycle_date | false | Date | (empty) | 40 | false | ||
Configuration directory | config_directory | false | String | (empty) | 255 | false | ||
Classifier | classifier | false | Reference | Process Classification | 32 | false | ||
Business Value Score | u_business_value_score | false | Choice | (empty) | 40 | false | ||
Operational Controls | u_operational_controls | false | String | (empty) | 40 | false | ||
Clustered | u_clustered | false | True/False | (empty) | 40 | false | ||
Other High Risk | u_other_high_risk | false | String | (empty) | 200 | false | ||
Fault count | fault_count | false | Integer | (empty) | 40 | 0 | false | |
Functional Contact | managed_by | false | Reference | User | 32 | false | ||
Decommission Date | u_decommission_date | false | Date | (empty) | 40 | false | ||
GL account | gl_account | false | String | (empty) | 40 | false | ||
PID | pid | false | Integer | (empty) | 40 | false | ||
Last SDR Approval Date | u_last_sdr_approval_date | false | Date | (empty) | 40 | false | ||
Future Platform Components | u_future_platform_components | false | List | Platform Component | 1,024 | false | ||
Cost | cost | false | Floating Point Number | (empty) | 40 | false | ||
PO number | po_number | false | String | (empty) | 40 | false | ||
Cost currency | cost_cc | false | String | (empty) | 3 | USD | false | |
Is a Disaster Recovery Plan Required? | u_dr_plan_required | false | String | (empty) | 40 | No | false | |
Order received | delivery_date | false | Date/Time | (empty) | 40 | false | ||
Domain | sys_domain | false | Domain ID | (empty) | 32 | global | false | |
Primary Support | u_primary_support | false | Reference | User | 32 | false | ||
Notes | u_notes | false | Journal | (empty) | 4,000 | false | ||
programming ver exp | u_programming_ver_exp | false | String | (empty) | 40 | false | ||
Environment | u_environment | false | String | (empty) | 40 | false | ||
Category | category | false | String | (empty) | 40 | javascript:gs.include("CMDBItem");var it... | false | |
Support Vendor | u_support_vendor | false | Reference | Company | 32 | false | ||
Platform Components | u_platform_components | false | List | Platform Component | 1,024 | false | ||
TCP port(s) | tcp_port | false | String | (empty) | 255 | false | ||
Manufacturer | manufacturer | false | Reference | Company | 32 | false | ||
Class | sys_class_name | false | System Class Name | (empty) | 80 | javascript:current.getTableName(); | false | |
Used for | used_for | false | String | (empty) | 40 | Production | false | |
Installed | install_date | false | Date/Time | (empty) | 40 | false | ||
PagerDuty service | x_pd_integration_pagerduty_service | false | String | (empty) | 40 | false | ||
Accessibility Support Group | u_accessibility_support_group | false | Reference | Group | 32 | b0dea7a56f1771007ee2abcf9f3ee477 | false | |
Credentialless Discovery Port | cl_port | false | Integer | (empty) | 40 | false | ||
PagerDuty webhook | x_pd_integration_pagerduty_webhook | false | String | (empty) | 40 | false | ||
Updated by | sys_updated_by | false | String | (empty) | 40 | false | ||
Recovery Tier Justification | u_recovery_tier_justification | false | List | Recovery Tier Justification | 1,024 | false | ||
SOX | u_sox | false | True/False | (empty) | 40 | false | ||
Requires verification | unverified | false | True/False | (empty) | 40 | false | ||
Recovery Tier | u_recovery_tier | false | String | (empty) | 40 | false | ||
Quickbase Application ID | u_quickbase_id | false | String | (empty) | 40 | false | ||
Configuration file | config_file | false | String | (empty) | 255 | false | ||
Status | install_status | false | Integer | (empty) | 40 | false | ||
Supported by | supported_by | false | Reference | User | 32 | false | ||
Start date | start_date | false | Date/Time | (empty) | 40 | false | ||
Data Sensitivity | u_data_classification | false | String | (empty) | 40 | false | ||
Created by | sys_created_by | false | String | (empty) | 40 | false | ||
Maintenance schedule | maintenance_schedule | false | Reference | Schedule | 32 | false | ||
Application Scope | u_application_scope | false | String | (empty) | 40 | false | ||
Owned by | owned_by | false | Reference | User | 32 | false | ||
Running process parameters | running_process_parameters | false | String | (empty) | 65,000 | false | ||
Secondary Support | u_secondary_support | false | Reference | User | 32 | false | ||
Accessibility Contact | u_accessibility_contact | false | Reference | User | 32 | false | ||
Regulated Information | u_other_contractual_information | false | String | (empty) | 10 | false | ||
Asset | asset | false | Reference | Asset | 32 | false | ||
Checked in | checked_in | false | Date/Time | (empty) | 40 | false | ||
Last TAC Approval Date | u_last_tac_approval | false | Date | (empty) | 40 | false | ||
External Obligations | u_regulated_info | false | List | Regulated Information | 4,000 | false | ||
Support group | support_group | false | Reference | Group | 32 | false | ||
DR Plan ID # | u_dr_plan_id | false | String | (empty) | 40 | false | ||
DNS Domain | dns_domain | false | String | (empty) | 255 | false | ||
Purchased | purchase_date | false | Date | (empty) | 40 | false | ||
Listener name | listener_name | false | String | (empty) | 255 | false | ||
Ordered | order_date | false | Date/Time | (empty) | 40 | false | ||
Serial number | serial_number | false | String | (empty) | 255 | false | ||
Display name | u_display_name | false | String | (empty) | 255 | false | ||
Vendor | vendor | false | Reference | Company | 32 | false | ||
Company | company | false | Reference | Company | 32 | false | ||
Running process key parameters | running_process_key_parameters | false | String | (empty) | 65,000 | false | ||
Lease contract | lease_id | false | String | (empty) | 40 | false | ||
Third Party Support | u_third_party_support | false | Reference | Company | 32 | false | ||
Pfile/ Spfile | u_pfilespfile | false | String | (empty) | 40 | false | ||
Latest Risk Assessment | u_risk_assessment_id | false | String | (empty) | 40 | false | ||
Asset tag | asset_tag | false | String | (empty) | 40 | false | ||
Production Start Date | u_production_date | false | Date | (empty) | 40 | false | ||
License Count | u_license_count | false | String | (empty) | 40 | false | ||
Target Decommissioning Date | u_target_decommissioning_date | false | Date | (empty) | 40 | false | ||
Running process command | running_process_command | false | String | (empty) | 65,000 | false | ||
Monitor | monitor | false | True/False | (empty) | 40 | false | false | |
Pfile | pfile | false | String | (empty) | 8,000 | false | ||
Recovery Time Objective (RTO) | u_recovery_time_objective_rto | false | String | (empty) | 40 | false | ||
sys_class_path | sys_class_path | false | System Class path | (empty) | 255 | javascript:GlideDBObjectManager.get().ge... | false | |
Technology Fit Score | u_technology_fit_score | false | Choice | (empty) | 40 | false | ||
Correlation ID | correlation_id | false | String | (empty) | 512 | false | ||
Version | version | false | String | (empty) | 255 | false |
License Type | u_license_type | false | String | (empty) | 40 | false | |
SDR # | u_last_sdr_number | false | Integer | (empty) | 40 | false | |
Justification | justification | false | String | (empty) | 80 | false | |
Oracle Home | oracle_home | false | String | (empty) | 255 | false | |
Functional Owning Organization | u_functional_owning_org | false | String | (empty) | 40 | false | |
Edition | edition | false | String | (empty) | 100 | false | |
Hosting | u_hosting | false | String | (empty) | 40 | false | |
Assigned to | assigned_to | false | Reference | User | 32 | false | |
Target Cloud Deployment | u_target_cloud_deployment | false | String | (empty) | 40 | false | |
DR Plan Next Testing Date | u_dr_plan_next_test | false | Date | (empty) | 40 | false | |
DR Plan Next Approval Date | u_dr_plan_next_approval | false | Date | (empty) | 40 | false | |
Subcategory | subcategory | false | String | (empty) | 40 | false | |
Assigned | assigned | false | Date/Time | (empty) | 40 | false | |
Invoice number | invoice_number | false | String | (empty) | 40 | false | |
Data Types | u_data_security_classification | false | List | Data Security Classification Type | 1,024 | false | |
SID | sid | false | String | (empty) | 40 | false | |
Created | sys_created_on | false | Date/Time | (empty) | 40 | false | |
Project Number and Name | u_project_number_and_name | false | String | (empty) | 40 | false | |
Checked out | checked_out | false | Date/Time | (empty) | 40 | false | |
Running process | running_process | false | Reference | Running Process | 32 | false | |
Attributes | attributes | false | String | (empty) | 65,000 | false | |
Domain Path | sys_domain_path | false | (empty) | (empty) | 255 | false | |
Updated | sys_updated_on | false | Date/Time | (empty) | 40 | false | |
Business Criticality | u_business_criticality | false | String | (empty) | 40 | false | |
Model ID | model_id | false | Reference | Product Model | 32 | false | |
Other Moderate Risk | u_other_moderate_risk | false | String | (empty) | 200 | false | |
Instance | instance | false | String | (empty) | 40 | false | |
SDR Information | u_sdr_information | false | String | (empty) | 40 | false | |
Recovery Point Objective (RPO) | u_recovery_point_objective_rpo | false | String | (empty) | 40 | false | |
Approval group | change_control | false | Reference | Group | 32 | false | |
Installation directory | install_directory | false | String | (empty) | 255 | false | |
Fully qualified domain name | fqdn | false | String | (empty) | 255 | false | |
Risk Classification | u_risk_level | false | String | (empty) | 40 | false | |
Future Host Environment | u_future_host_environment | false | String | (empty) | 40 | false | |
Monitoring | u_monitoring | false | True/False | (empty) | 40 | false | |
Is clustered | is_clustered | false | True/False | (empty) | 40 | false | |
Running process command hash | rp_command_hash | false | String | (empty) | 255 | false | |
Management IP Address | ip_address | false | String | (empty) | 255 | false | |
Location | location | false | Reference | Location | 32 | false | |
Software Install | software_install | false | Reference | Software Installation | 32 | false | |
First discovered | first_discovered | false | Date/Time | (empty) | 40 | false | |
Warranty expiration | warranty_expiration | false | Date | (empty) | 40 | false | |
Model number | model_number | false | String | (empty) | 255 | false | |
Future Host Type | u_future_host_typ | false | Reference | Host Type | 32 | false | |
Platform | u_platform | false | Reference | Quickbase Platforms | 40 | false | |
Assignment group | assignment_group | false | Reference | Group | 32 | false | |
DR Plan Last Tested Date | u_dr_plan_last_test | false | Date | (empty) | 40 | false | |
Due in | due_in | false | String | (empty) | 40 | false | |
Comments | comments | false | String | (empty) | 4,000 | false | |
Cost center | cost_center | false | Reference | Cost Center | 32 | false | |
Alias | u_alias | false | String | (empty) | 100 | false | |
Due | due | false | Date/Time | (empty) | 40 | false | |
Programming Lang | u_programming_lang | false | List | Programming Language | 1,024 | false | |
Updates | sys_mod_count | false | Integer | (empty) | 40 | false | |
MAC Address | mac_address | false | String | (empty) | 40 | false | |
Data Center | u_reference_1 | false | Reference | Data Center | 32 | bac72b5137130200f212cc028e41f1b8 | false |
Running process key parameters hash | rp_key_parameters_hash | false | String | (empty) | 255 | false | |
DR Plan Last Approved | u_dr_plan_last_approval | false | Date | (empty) | 40 | false | |
Discovery source | discovery_source | false | String | (empty) | 40 | false | |
Department | department | false | Reference | Department | 32 | false | |
Application ISME | u_application_isme | false | Choice | (empty) | 40 | false | |
Accessibility | u_accessibility | false | String | (empty) | 40 | false | |
Schedule | schedule | false | Reference | Schedule | 32 | false | |
Service Name | u_service_name | false | String | (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
Step | Description | Verdict |
---|---|---|
Open Questions
Question | Answer | Date Answered |
---|---|---|