Environment Management¶
Environment management libraries for building, parsing, validating, and tracking Oracle environments.
Functions¶
oradba_add_client_path¶
Add client tools to PATH for non-client products
Source: oradba_env_builder.sh
Arguments:
- $1 - Current product type (uppercase)
Returns: 0 on success or not needed, 1 on error
Notes
Appends client bin directory to PATH after existing entries
oradba_add_java_path¶
Add Java to JAVA_HOME and PATH for products that need it
Source: oradba_env_builder.sh
Arguments:
- $1 - Current product type (uppercase)
- $2 - Current ORACLE_HOME (optional, for auto-detection)
Returns: 0 on success or not needed, 1 on error
Notes
Prepends Java bin directory to PATH (takes precedence) Exports JAVA_HOME environment variable
oradba_add_oracle_path¶
Add Oracle binaries to PATH using plugin system
Source: oradba_env_builder.sh
Arguments:
- $1 - ORACLE_HOME
- $2 - Product type (optional, lowercase: database, client, iclient, etc.)
Returns: 0 on success
Notes
Uses plugin_build_bin_path() from product-specific plugins Falls back to basic bin directory for unknown products
oradba_apply_config_section¶
Apply configuration from a specific section in config file
Source: oradba_env_config.sh
Arguments:
- $1 - Config file path
- $2 - Section name (DEFAULT|RDBMS|CLIENT|ICLIENT|GRID|ASM|DATASAFE|OUD|WLS)
Returns: 0 on success, 1 if file not found
oradba_apply_product_config¶
Apply configuration for specific product type using plugin system
Source: oradba_env_config.sh
Arguments:
- $1 - Product type (RDBMS|CLIENT|ICLIENT|GRID|DATASAFE|OUD|WLS or lowercase)
- $2 - SID (optional, for ASM detection)
Returns: 0 on success
Notes
Uses plugin_get_config_section() from product-specific plugins Falls back to uppercase product type for unknown products
oradba_auto_reload_on_change¶
Check for changes and reload environment if needed
Source: oradba_env_changes.sh
Arguments:
- None
Returns: 0 if environment reloaded, 1 if no changes
Output: Reload message if environment was reloaded
oradba_build_environment¶
Main function to build complete environment
Source: oradba_env_builder.sh
Arguments:
- $1 - SID or ORACLE_HOME
Returns: 0 on success, 1 on error
oradba_check_asm_status¶
Check if ASM instance is running
Source: oradba_env_status.sh
Arguments:
- $1 - ASM instance name (e.g., +ASM, +ASM1)
- $2 - ORACLE_HOME (optional, uses current if not specified)
Returns: 0 if running, 1 if not running
Output: Status string (STARTED|MOUNTED|SHUTDOWN)
oradba_check_config_changes¶
Check if any configuration files have changed
Source: oradba_env_changes.sh
Arguments:
- None
Returns: 0 if changes detected, 1 if no changes
Output: List of changed files
oradba_check_datasafe_status¶
Check if DataSafe On-Premises Connector is running
Source: oradba_env_status.sh
Arguments:
- $1 - ORACLE_HOME (DataSafe connector path)
Returns: 0 if running, 1 if not running
Output: Status string (RUNNING|STOPPED|UNKNOWN)
Notes
Uses direct cmctl command (faster than Python setup.py)
oradba_check_db_running¶
Check if database is running
Source: oradba_env_validator.sh
Arguments:
- $1 - SID (optional, uses $ORACLE_SID if not provided)
Returns: 0 if running, 1 if not
oradba_check_db_status¶
Check if Oracle database instance is running
Source: oradba_env_status.sh
Arguments:
- $1 - ORACLE_SID
- $2 - ORACLE_HOME (optional, uses current if not specified)
Returns: 0 if running, 1 if not running or cannot determine
Output: Status string (OPEN|MOUNTED|NOMOUNT|SHUTDOWN|UNKNOWN)
oradba_check_file_changed¶
Check if file has changed since last signature
Source: oradba_env_changes.sh
Arguments:
- $1 - File path to check
- $2 - Signature storage file (optional, auto-generated if not provided)
Returns: 0 if changed, 1 if not changed or error
Output: Change message (if changed)
oradba_check_listener_status¶
Check if Oracle listener is running
Source: oradba_env_status.sh
Arguments:
- $1 - Listener name (optional, defaults to LISTENER)
- $2 - ORACLE_HOME (optional, uses current if not specified)
Returns: 0 if running, 1 if not running
Output: Status string (RUNNING|STOPPED)
oradba_check_oracle_binaries¶
Verify critical Oracle binaries exist using plugin system
Source: oradba_env_validator.sh
Arguments:
- $1 - Product type (RDBMS|CLIENT|ICLIENT|GRID|DATASAFE|OUD or lowercase)
Returns: 0 if all found, 1 if any missing
Output: Error messages for missing binaries
Notes
Uses plugin_get_required_binaries() from product-specific plugins Falls back to basic sqlplus check for unknown products
oradba_check_oud_status¶
Check if Oracle Unified Directory instance is running
Source: oradba_env_status.sh
Arguments:
- $1 - OUD instance name/path
Returns: 0 if running, 1 if not running
Output: Status string (RUNNING|STOPPED|UNKNOWN)
oradba_check_process_running¶
Check if a process is running (generic check)
Source: oradba_env_status.sh
Arguments:
- $1 - Process pattern to search for
Returns: 0 if running, 1 if not
Output: Number of matching processes
oradba_check_wls_status¶
Check if WebLogic Server is running
Source: oradba_env_status.sh
Arguments:
- $1 - Domain home path
Returns: 0 if running, 1 if not running
Output: Status string (RUNNING|STOPPED|UNKNOWN)
oradba_clean_path¶
Remove Oracle-related directories from PATH
Source: oradba_env_builder.sh
Arguments:
- None
Returns: 0 on success
Output: Cleaned PATH exported
oradba_clear_change_tracking¶
Clear all change tracking data
Source: oradba_env_changes.sh
Arguments:
- None
Returns: 0 on success
oradba_dedupe_path¶
Remove duplicate entries from PATH-like variables
Source: oradba_env_builder.sh
Arguments:
- $1 - Path string (colon-separated)
Returns: Deduplicated path string
oradba_detect_rooh¶
Detect Read-Only Oracle Home
Source: oradba_env_builder.sh
Arguments:
- $1 - ORACLE_HOME
Returns: 0 if ROOH, 1 if not ROOH or cannot determine
Output: Sets ORACLE_BASE, ORADBA_ROOH, ORADBA_DBS
oradba_expand_variables¶
Expand variables in a string (simple implementation)
Source: oradba_env_config.sh
Arguments:
- $1 - String with variables
Returns: 0 on success
Output: Expanded string
oradba_find_home¶
Find Oracle Home by NAME, ALIAS, or PATH in oradba_homes.conf
Source: oradba_env_parser.sh
Arguments:
- $1 - NAME, ALIAS, or PATH to find
- $2 - oradba_homes.conf file path (optional)
Returns: 0 on success, 1 if not found
Output: NAME|PATH|TYPE|ORDER|ALIAS|DESCRIPTION|VERSION
oradba_find_sid¶
Find SID in oratab and return entry
Source: oradba_env_parser.sh
Arguments:
- $1 - SID to find
Returns: 0 on success, 1 if not found
Output: SID|ORACLE_HOME|FLAG
oradba_get_config_value¶
Get a specific variable value from config section
Source: oradba_env_config.sh
Arguments:
- $1 - Config file path
- $2 - Section name
- $3 - Variable name
Returns: 0 on success, 1 if not found
Output: Variable value
oradba_get_db_status¶
Get database open mode
Source: oradba_env_validator.sh
Arguments:
- None (uses current environment)
Returns: 0 on success
Output: Status (OPEN|MOUNTED|NOMOUNT|DOWN)
oradba_get_db_version¶
Detect Oracle version from sqlplus
Source: oradba_env_validator.sh
Arguments:
- None (uses current environment)
Returns: 0 on success
Output: Version string (e.g., "19.0.0.0.0")
oradba_get_file_signature¶
Get file signature (timestamp:size)
Source: oradba_env_changes.sh
Arguments:
- $1 - File path
Returns: 0 on success, 1 on failure
Output: File signature string
oradba_get_home_metadata¶
Get Oracle Home metadata from oradba_homes.conf
Source: oradba_env_parser.sh
Arguments:
- $1 - ORACLE_HOME path
- $2 - Field name (Product|Version|Edition|DB_Type|Position|Dummy_SID|Short_Name|Description)
- $3 - oradba_homes.conf file path (optional)
Returns: 0 on success, 1 if not found
Output: Field value
oradba_get_product_status¶
Get status for any product type using plugin system
Source: oradba_env_status.sh
Arguments:
- $1 - Product type (RDBMS|CLIENT|ICLIENT|GRID|ASM|DATASAFE|OUD|WLS or lowercase)
- $2 - Instance/SID/Domain name
- $3 - ORACLE_HOME or product home (optional)
Returns: 0 if can determine status, 1 otherwise
Output: Status information
Notes
Uses plugin_check_status() from product-specific plugins Falls back to product-specific functions for unknown products
oradba_get_product_type¶
Determine product type for an Oracle Home
Source: oradba_env_parser.sh
Arguments:
- $1 - ORACLE_HOME path
Returns: 0 on success, 1 if cannot determine
Output: Product type (RDBMS|CLIENT|ICLIENT|GRID|DATASAFE|OUD|WLS)
oradba_init_change_tracking¶
Initialize change tracking for all config files
Source: oradba_env_changes.sh
Arguments:
- None
Returns: 0 on success
Output: Initialization message
oradba_is_asm_instance¶
Check if SID is an ASM instance
Source: oradba_env_builder.sh
Arguments:
- $1 - SID
Returns: 0 if ASM, 1 if not
oradba_list_all_homes¶
List all Oracle Homes from oradba_homes.conf, sorted by order
Source: oradba_env_parser.sh
Arguments:
- $1 - oradba_homes.conf file path (optional)
Returns: 0 on success
Output: Format: NAME|PATH|TYPE|ORDER|ALIAS (sorted by order)
oradba_list_all_sids¶
List all available SIDs from oratab
Source: oradba_env_parser.sh
Returns: 0 on success
Output: One SID per line
oradba_list_config_sections¶
List all sections defined in a config file
Source: oradba_env_config.sh
Arguments:
- $1 - Config file path
Returns: 0 on success
Output: Section names, one per line
oradba_load_generic_configs¶
Load all generic configuration files in order
Source: oradba_env_config.sh
Arguments:
- $1 - Section name to apply (optional, defaults to DEFAULT)
Returns: 0 on success
Output: Exports variables from configuration files
oradba_load_sid_config¶
Load SID-specific configuration file
Source: oradba_env_config.sh
Arguments:
- $1 - SID or instance name
- $2 - Section name to load from SID config (optional, defaults to DEFAULT)
Returns: 0 on success, 1 if config not found
oradba_parse_homes¶
Parse oradba_homes.conf file
Source: oradba_env_parser.sh
Arguments:
- $1 - oradba_homes.conf file path (optional, defaults to ${ORADBA_BASE}/etc/oradba_homes.conf)
- $2 - NAME or ALIAS to find (optional, if empty returns all)
Returns: 0 on success, 1 on error
Output: Format: NAME|PATH|TYPE|ORDER|ALIAS|DESCRIPTION|VERSION
Notes
Format matches actual file: NAME:PATH:TYPE:ORDER:ALIAS:DESCRIPTION:VERSION
oradba_parse_oratab¶
Parse /etc/oratab file and find SID entry
Source: oradba_env_parser.sh
Arguments:
- $1 - SID to find (optional, if empty returns all)
Returns: 0 on success, 1 on error
Output: Format: SID|ORACLE_HOME|FLAG
oradba_product_needs_client¶
Determine if a product type needs external client tools
Source: oradba_env_builder.sh
Arguments:
- $1 - Product type (uppercase: DATASAFE, OUD, WLS, etc.)
Returns: 0 if product needs client, 1 if it has its own client
oradba_product_needs_java¶
Determine if a product type needs Java (JAVA_HOME)
Source: oradba_env_builder.sh
Arguments:
- $1 - Product type (uppercase: DATASAFE, OUD, WLS, etc.)
Returns: 0 if product needs Java, 1 if it has its own or doesn't need Java
oradba_resolve_client_home¶
Resolve client home path from ORADBA_CLIENT_PATH_FOR_NON_CLIENT setting
Source: oradba_env_builder.sh
Arguments:
- None (reads ORADBA_CLIENT_PATH_FOR_NON_CLIENT env var)
Returns: 0 on success, 1 if no client found
Output: Prints resolved client home path
Notes
Accepts DATABASE, CLIENT, or ICLIENT product types (all have client tools like sqlplus, sqlldr, etc.)
oradba_resolve_java_home¶
Resolve Java home path from ORADBA_JAVA_PATH_FOR_NON_JAVA setting
Source: oradba_env_builder.sh
Arguments:
- $1 - Current ORACLE_HOME (optional, for auto-detection of $ORACLE_HOME/java)
Returns: 0 on success, 1 if no Java found
Output: Prints resolved Java home path
Notes
Supports "auto", "none", or named Java from oradba_homes.conf
oradba_set_asm_environment¶
Set ASM-specific environment variables
Source: oradba_env_builder.sh
Arguments:
- None (uses ORACLE_SID, ORACLE_HOME)
Returns: 0 on success
oradba_set_lib_path¶
Set library path using plugin system
Source: oradba_env_builder.sh
Arguments:
- $1 - ORACLE_HOME
- $2 - Product type (optional, lowercase: database, client, iclient, etc.)
Returns: 0 on success
Notes
Uses plugin_build_lib_path() from product-specific plugins Falls back to basic lib/lib64 detection for unknown products Cleans old Oracle/Grid/InstantClient paths before setting new ones Preserves non-Oracle library paths from existing environment
oradba_set_oracle_vars¶
Set core Oracle environment variables
Source: oradba_env_builder.sh
Arguments:
- $1 - ORACLE_SID
- $2 - ORACLE_HOME
- $3 - Product type
Returns: 0 on success
oradba_set_product_environment¶
Set product-specific environment variables
Source: oradba_env_builder.sh
Arguments:
- $1 - Product type
Returns: 0 on success
oradba_store_file_signature¶
Store file signature for future comparison
Source: oradba_env_changes.sh
Arguments:
- $1 - File path to monitor
- $2 - Signature storage file (optional, auto-generated if not provided)
Returns: 0 on success, 1 on failure
oradba_validate_config_file¶
Validate configuration file syntax
Source: oradba_env_config.sh
Arguments:
- $1 - Config file path
Returns: 0 if valid, 1 if errors found
Output: Error messages for invalid syntax
oradba_validate_environment¶
Comprehensive environment validation
Source: oradba_env_validator.sh
Arguments:
- $1 - Validation level (basic|standard|full) default: standard
Returns: 0 if valid, 1 if issues found
Output: Validation messages
oradba_validate_oracle_home¶
Check if ORACLE_HOME exists and is valid
Source: oradba_env_validator.sh
Arguments:
- $1 - ORACLE_HOME (optional, uses $ORACLE_HOME if not provided)
Returns: 0 if valid, 1 if not
oradba_validate_sid¶
Check if SID is valid format
Source: oradba_env_validator.sh
Arguments:
- $1 - SID
Returns: 0 if valid, 1 if not