> ## Documentation Index
> Fetch the complete documentation index at: https://docs.germainux.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Oracle Database Setup

> GermainUX supports Oracle Database as an on-premise relational datastore.

Service
`Enterprise`

Availability
2024.1

> [card] [Initialize the Database](#initialize-the-database)
>
> Creating schemas and objects

> [card] [Materialized-View Maintenance](#materialized-view-maintenance)
>
> Checking refresh jobs

> [card] [Partition and Storage Maintenance](#partition-and-storage-maintenance)
>
> Monitoring partitions and growth

> [card] [Production Checklist](#production-checklist)
>
> Sizing and version support

### Overview

GermainUX supports Oracle Database as an on-premise relational datastore.

Oracle may be appropriate when:

* Your organization is standardized on Oracle Database.
* Oracle administration, backup, security, and high-availability procedures already exist.
* A relational datastore is required.
* The expected GermainUX ingestion and analytics workload has been validated against Oracle.

Elasticsearch remains the preferred datastore for most new, high-volume deployments. Review the [Datastore Recommendation and Benchmark](https://docs.germainux.com/main/datastore-which-to-choose.md) before selecting Oracle.

### Supported Capabilities

Oracle Database can provide:

| Capability | Benefit |
| - | - |
| Reliability | Mature transaction management, backup, recovery, and storage-management capabilities |
| Scalability | Supports large datasets and concurrent workloads when correctly sized |
| Performance | Provides indexing, caching, partitioning, and query-optimization capabilities |
| Security | Supports encryption, auditing, access control, and fine-grained permissions |
| High availability | Supports replication and clustered architectures |
| Enterprise integration | Aligns with established Oracle administration and operational standards |

The selected Oracle edition and configuration must support the features required by the GermainUX deployment.

### Before You Begin

Confirm with Germain Software:

* The Oracle Database version supported by your GermainUX release
* Required Oracle edition
* Required JDBC driver
* Character set and national character set
* Tablespace requirements
* Schema scripts required for the release

> [accordion] Show all 10
>
> * Expected daily AA Unit volume
> * Data-retention requirements
> * Partitioning and maintenance requirements
> * Upgrade or migration requirements

Supported versions may include Oracle 11g, 12c, 18c, and 19c Enterprise Edition, depending on the GermainUX release. Confirm compatibility before installation or upgrade.

### Requirements

Prepare:

* A supported 64-bit operating system
* A supported Oracle Database instance
* An Oracle service name or pluggable database
* SYSDBA access for initial setup
* A supported Oracle JDBC driver
* Network connectivity from GermainUX Enterprise

> [accordion] Show all 10
>
> * Sufficient CPU, memory, SSD storage, and IOPS
> * Backup and recovery procedures
> * TLS or approved encrypted database connectivity
> * The GermainUX Service distribution package

See:

* [Hardware](https://docs.germainux.com/main/hardware-requirements.md) Requirements
* [Network](https://docs.germainux.com/main/network-requirements.md) Requirements
* [Storage](https://docs.germainux.com/main/storage-requirements.md) Requirements

## GermainUX Schemas

GermainUX uses two Oracle schemas:

| Schema | Purpose |
| - | - |
| `APM_CONFIG` | Stores GermainUX configuration |
| `APM_DATAMART` | Stores monitoring, analytical, and aggregated data |

Use separate, strong credentials for each schema.

## Prepare Oracle Database

Before running the GermainUX scripts:

**1. Install or identify the supported Oracle Database instance**

**2. Create or select the Oracle service or pluggable database**

**3. Configure listeners and network access**

**4. Prepare the required tablespaces**

**5. Confirm character-set compatibility**

**6. Configure storage growth and alerting**

**7. Configure backups**

**8. Confirm connectivity from the GermainUX Enterprise host**

**9. Obtain the supported Oracle JDBC driver**

**10. Confirm that SYSDBA access is available for initial schema creation**

The default Oracle listener port is commonly:

```text theme={null}
1521
```

Use the actual port configured in your environment.

## Initialize the Database

### 1 Extract the GermainUX Service Package

Extract the GermainUX Service release package to a directory referenced below as:

```text theme={null}
$SERVICE_HOME
```

### 2 Review the Release Instructions

Open:

```text theme={null}
$SERVICE_HOME/install/databases/readme.txt
```

This file defines the exact scripts and execution order for the installed GermainUX release.

Always follow the instructions supplied with that release.

### 3. Locate the Oracle Scripts

The Oracle scripts are located in:

```text theme={null}
$SERVICE_HOME/install/databases/oracle
```

### 4. Update the Setup Script

Open:

```text theme={null}
$SERVICE_HOME/install/databases/oracle/basic-setup.sql
```

Replace every password placeholder—such as `xxxx`—with strong, unique credentials for:

```text theme={null}
APM_CONFIG
APM_DATAMART
```

Also review:

* Tablespace names
* Datafile locations
* Storage allocation
* User quotas
* Default and temporary tablespaces
* Granted privileges

Do not store the completed script containing production passwords in source control or an unsecured shared location.

### 5. Choose a SQL Client

Run the scripts using Oracle SQL Developer or another compatible SQL client.

SQL Developer is recommended because some scripts contain blank lines within `INSERT` statements that may not execute correctly under the default SQL\*Plus behavior.

If SQL\*Plus must be used, validate its blank-line and script-processing settings in a non-production environment first.

### 6. Run the Scripts in Sequence

Run the scripts in the exact order specified by:

```text theme={null}
$SERVICE_HOME/install/databases/readme.txt
```

Use the following accounts:

| Script pattern | Execute as |
| - | - |
| `basic-*.sql` | `SYSDBA` |
| `config-*.sql` | `APM_CONFIG` |
| `datamart-*.sql` | `APM_DATAMART` |

Do not skip scripts or change their order unless instructed by Germain Software.

#### Initial Setup

Run the `basic-*.sql` scripts as SYSDBA to create:

* `APM_CONFIG`
* `APM_DATAMART`
* Required tablespaces or storage assignments
* Required roles and permissions

#### Configuration Schema

Connect as:

```text theme={null}
APM_CONFIG
```

Run all `config-*.sql` scripts in the documented sequence.

#### Datamart Schema

Connect as:

```text theme={null}
APM_DATAMART
```

Run all `datamart-*.sql` scripts in the documented sequence.

## Configure GermainUX Enterprise

Configure GermainUX Enterprise with:

* Oracle hostname
* Listener port
* Service name
* `APM_CONFIG` username and password
* `APM_DATAMART` username and password
* TLS settings

> [accordion] Show all 9
>
> * Connection-pool settings
> * Query and connection timeouts
> * Supported Oracle JDBC driver

Use a service name rather than a SID when required by your Oracle architecture.

Place the JDBC driver in the location specified by the GermainUX Enterprise installation guide.

## Validate the Setup

Before starting production monitoring:

**1. Connect to Oracle using `APM_CONFIG`**

**2. Connect using `APM_DATAMART`**

**3. Confirm that the required tables, indexes, sequences, views, and materialized views exist**

**4. Verify that GermainUX Enterprise can connect to both schemas**

**5. Start GermainUX Enterprise**

**6. Review logs for schema, permission, JDBC, or connection errors**

**7. Save and retrieve a GermainUX configuration**

**8. Ingest a limited monitoring workload**

**9. Confirm that facts are stored in `APM_DATAMART`**

**10. Open representative dashboards and analyses**

**11. Validate retention and partition maintenance**

**12. Measure ingestion and query performance**

## Materialized-View Maintenance

The `APM_DATAMART` schema includes materialized views that refresh periodically.

These jobs normally run without administrator intervention. If aggregated data becomes delayed or incomplete, inspect the Oracle refresh jobs:

```sql theme={null}
SELECT
    JOB,
    LAST_DATE,
    FAILURES,
    BROKEN,
    WHAT
FROM ALL_JOBS
WHERE WHAT LIKE '%dbms_refresh.refresh%';
```

Review:

| Column | Meaning |
| - | - |
| `JOB` | Oracle job identifier |
| `LAST_DATE` | Most recent execution |
| `FAILURES` | Number of failed executions |
| `BROKEN` | Whether Oracle marked the job as broken |
| `WHAT` | Procedure executed by the job |

Investigate repeated failures before manually changing or restarting a job.

## Partition and Storage Maintenance

Monitor:

* Tablespace utilization
* Datafile growth
* Partition growth
* Index growth
* Temporary tablespace utilization
* Archive-log volume

> [accordion] Show all 9
>
> * Materialized-view refreshes
> * Backup duration
> * Query performance

Old partitions must be removed according to the configured GermainUX retention policy. Failure to remove expired partitions can cause the Oracle database to run out of space.

Partition deletion is destructive. Verify the retention period, target table, partition boundaries, and available backup before removing any partition.

See [Oracle Database Troubleshooting](https://docs.germainux.com/main/oracle-database-troubleshooting.md).

## Backup and Recovery

Back up both schemas:

```text theme={null}
APM_CONFIG
APM_DATAMART
```

The backup strategy should cover:

* Full database backups
* Archive logs
* Point-in-time recovery
* Off-host or protected backup copies
* Encryption
* Backup retention
* Recovery of individual schemas
* Periodic restore testing

The configuration and datamart schemas may require different recovery and retention objectives.

## Security

Before production use:

* Use dedicated GermainUX schema accounts.
* Replace all example passwords.
* Apply least-privilege permissions.
* Restrict SYSDBA access.
* Encrypt database connections.
* Restrict network access by source and destination.

> [accordion] Show all 10
>
> * Protect credentials outside source control.
> * Enable auditing when required.
> * Define credential-rotation procedures.
> * Monitor failed authentication attempts.

Do not use SYS or SYSTEM as the GermainUX runtime account.

## Production Checklist

* The Oracle version and edition are supported.
* The required JDBC driver is installed.
* Network connectivity has been validated.
* Encrypted connectivity is configured.
* Tablespaces have sufficient capacity.
* `APM_CONFIG` has been initialized.

> [accordion] Show all 16
>
> * `APM_DATAMART` has been initialized.
> * Example passwords have been replaced.
> * Scripts ran in the required sequence.
> * GermainUX Enterprise connects successfully.
> * Materialized-view refresh jobs are running.
> * Partition retention is configured.
> * Backups are configured.
> * A restore has been tested.
> * Capacity and performance monitoring are enabled.
> * High availability has been validated when required.

For supported Oracle versions, schema scripts, migration assistance, or production sizing, [contact Germain](https://docs.germainux.com/main/support.md) team.

## Get Help

> [card] [Contact GermainUX Support](https://docs.germainux.com/main/support.md)
>
> The GermainUX team helps you get up and running faster, empower your team, turn data into actionable insights, and optimize performance to deliver measurable business outcomes.

> [card] Can't find what you need?
>
> Search all GermainUX docs with **Ctrl + K**, or use the feedback buttons at the bottom of this page to tell us what is missing.

The content of this document is proprietary to GERMAIN SOFTWARE.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.