Skip to main content
ServiceEnterprise
Availability2024.1

PostgreSQL Database Setup

When to choose PostgreSQL

Prepare PostgreSQL

Server prerequisites before install

Create the GermainUX Databases

Separate storage and privileges

PostgreSQL Maintenance

Keep the database healthy

Overview

GermainUX supports PostgreSQL as an on-premise relational datastore. PostgreSQL may be appropriate when:
  • Your organization already operates PostgreSQL.
  • Database administrators have established PostgreSQL security, backup, and maintenance procedures.
  • An open-source relational datastore is preferred.
  • The expected GermainUX ingestion and analytics workload has been validated against PostgreSQL.
Elasticsearch remains the preferred datastore for most new, high-volume GermainUX deployments. Review the Datastore Recommendation and Benchmark before selecting PostgreSQL.

PostgreSQL Benefits

The selected architecture must still be validated against the expected GermainUX ingestion, retention, and query workload.

Before You Begin

Confirm with Germain Software:
  • The PostgreSQL version supported by your GermainUX release
  • Required PostgreSQL JDBC driver
  • Required encoding and collation
  • Schema scripts supplied with the release
  • Expected daily AA Unit volume
  • Raw and aggregated data-retention periods
  • Session Replay volume
  • Partitioning and maintenance requirements
  • High-availability requirements
  • Migration or upgrade requirements
Do not independently upgrade PostgreSQL without confirming compatibility with the installed GermainUX release.

Requirements

Prepare:
  • A supported 64-bit operating system
  • A supported PostgreSQL version
  • PostgreSQL administrative access
  • A supported PostgreSQL JDBC driver
  • Network connectivity from GermainUX Enterprise
  • Sufficient CPU, memory, SSD storage, and IOPS
  • TLS certificates
  • Backup and recovery procedures
  • The GermainUX Service distribution package
  • Installation scripts supplied for the GermainUX release
See:

Install PostgreSQL

Use your organization’s approved PostgreSQL distribution and installation process.

Debian or Ubuntu

Install PostgreSQL through the approved operating-system or PostgreSQL repository:
Confirm that the service is running:

Red Hat Enterprise Linux or Compatible Distribution

Install the approved PostgreSQL packages for the operating-system version, initialize the database cluster when required, and start the service. Example:
Commands and package names vary by PostgreSQL and operating-system version.

Windows

Install steps:
1

Download the approved PostgreSQL installer

2

Run it with administrator privileges

3

Select the PostgreSQL Server components

4

Configure the data directory

5

Set a strong administrative password

6

Configure the listener port

7

Complete the installation

8

Confirm that the PostgreSQL Windows service is running

Install pgAdmin only when a graphical administration tool is required.

Prepare PostgreSQL

Configure Network Access

The default PostgreSQL port is:
Use the actual port configured in your environment. Update PostgreSQL networking so that only approved GermainUX Enterprise hosts can connect. Review:
Configure:
  • Listening addresses
  • Approved client networks
  • Authentication method
  • TLS
  • Connection limits
  • Logging
  • Time zone
Do not configure unrestricted access such as allowing every address without an appropriate authentication and firewall policy.

Configure TLS

Enable TLS for connections between GermainUX Enterprise and PostgreSQL. Validate:
  • Server certificate
  • Private key permissions
  • Certificate chain
  • Hostname
  • Expiration date
  • Client trust
  • Approved TLS versions
Require encrypted connections in pg_hba.conf when mandated by your security standards.

Configure Authentication

Use a secure password-authentication method supported by the selected PostgreSQL and JDBC versions. Create dedicated GermainUX accounts rather than using the PostgreSQL superuser.

Create the GermainUX Databases

GermainUX requires separate storage for: The exact database names, roles, scripts, and privileges are defined by the installation package for your GermainUX release.

1 Extract the Service Distribution

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

2 Review the Database Instructions

Open:
Follow the PostgreSQL instructions and script order supplied with the release.

3. Locate the PostgreSQL Scripts

Locate the PostgreSQL scripts under the database-installation directory included in the GermainUX Service package. The package may contain:
  • Initial database and role creation
  • Configuration-schema creation
  • Datamart-schema creation
  • Index creation
  • Upgrade scripts
  • Retention or maintenance configuration

4. Replace Example Credentials

Before running the setup scripts:
  • Replace all example passwords.
  • Use separate credentials for configuration and datamart access.
  • Review database ownership.
  • Review granted permissions.
  • Confirm tablespace or storage locations.
  • Remove unnecessary superuser privileges.
Do not retain default or example passwords in production.

5. Run the Scripts in Sequence

Run the scripts in the exact sequence specified by the release’s readme.txt. Typically:
1

Run the initial setup using a PostgreSQL administrative account

2

Create the configuration database and account

3

Create the datamart database and account

4

Run configuration scripts against apm_config

5

Run datamart scripts against apm_datamart

6

Create required indexes, functions, and maintenance objects

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

Configure GermainUX Enterprise

Configure GermainUX Enterprise with:
  • PostgreSQL hostname
  • PostgreSQL port
  • apm_config database name
  • apm_datamart database name
  • Dedicated usernames
  • Securely stored passwords
  • TLS settings
  • Connection-pool settings
  • Connection and query timeouts
  • Supported PostgreSQL JDBC driver
Place the JDBC driver in the location specified by the GermainUX Enterprise installation guide. Avoid storing database passwords directly in source-controlled property files.

Validate the Setup

Before starting production monitoring:
1

Connect to PostgreSQL using the configuration account

2

Connect using the datamart account

3

Confirm that both databases exist

4

Confirm that all required schemas, tables, indexes, sequences, functions, and views were created

5

Verify that GermainUX Enterprise can connect

6

Start GermainUX Enterprise

7

Review logs for JDBC, schema, permission, or TLS errors

8

Save and retrieve GermainUX configuration

9

Ingest a limited monitoring workload

10

Confirm that facts are stored in apm_datamart

11

Open representative dashboards and analyses

12

Validate retention and cleanup

13

Measure ingestion and query performance

PostgreSQL Maintenance

Autovacuum and Analyze

GermainUX can produce a continuous write workload. Confirm that PostgreSQL autovacuum and automatic statistics collection keep pace with:
  • Inserts
  • Updates
  • Expired-data deletion
  • Partition maintenance
  • Index growth
Monitor for table or index bloat and long-running transactions that prevent cleanup. Do not disable autovacuum globally.

Partitioning and Retention

Where the GermainUX schema uses partitions:
  • Confirm that new partitions are created as required.
  • Confirm that expired partitions are removed.
  • Validate partition boundaries before deletion.
  • Monitor tablespace and filesystem utilization.
  • Align partition retention with GermainUX retention policies.
Partition removal is destructive. Verify the target and backup before deleting data.

Connection Management

Monitor:
  • Active connections
  • Idle connections
  • Connection-pool utilization
  • Maximum connections
  • Long-running queries
  • Locks and blocked sessions
Use an approved connection-pooling architecture when required by scale.

Performance

Monitor:
  • CPU and memory
  • Disk capacity and latency
  • WAL generation
  • Checkpoint frequency and duration
  • Cache-hit ratio
  • Query latency
  • Sequential scans
  • Index usage
  • Replication lag
  • Vacuum progress
  • Backup duration
Tune PostgreSQL based on measured workload rather than generic values.

Backup and Recovery

Back up both:
The backup strategy should include:
  • Full backups
  • WAL archiving when point-in-time recovery is required
  • Off-host or protected backup storage
  • Encryption
  • Backup retention
  • Replication where required
  • Automated backup monitoring
  • Periodic restore testing
A backup is not considered reliable until restoration has been tested.

High Availability

When required, use an approved PostgreSQL high-availability architecture that provides:
  • Streaming replication
  • Automated or controlled failover
  • Connection redirection
  • Replication monitoring
  • Split-brain prevention
  • Documented recovery procedures
Test GermainUX connectivity during a planned failover before production use.

Production Checklist

  • The PostgreSQL version is supported by GermainUX.
  • The approved JDBC driver is installed.
  • TLS is enabled.
  • Network access is restricted.
  • Dedicated GermainUX accounts are configured.
  • Example passwords have been replaced.
  • apm_config has been initialized.
  • apm_datamart has been initialized.
  • All scripts ran in the documented sequence.
  • GermainUX Enterprise connects successfully.
  • Backups are configured.
  • A restore has been tested.
  • Autovacuum and retention are operating correctly.
  • Capacity and performance monitoring are enabled.
  • High availability has been tested when required.
For supported PostgreSQL versions, database scripts, migration assistance, or production sizing, contact Germain team.

Get Help

Contact GermainUX Support

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.

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.