Full-Stack Database Infrastructure Architecture, Engineering, Operations, Production Engineering and FinOps for PostgreSQL, MySQL, MariaDB, SQL Server, Oracle, Db2, MongoDB, ClickHouse, Redis & Every Major Cloud DBaaS

MinervaDB consultative support gives your production databases a standing team of principal-level engineers who answer incidents around the clock and, between incidents, tell you what to change before it fails. One accountable team, one line of escalation, and every recommendation backed by measurements from your own systems.

15 minSeverity 1 acknowledgement, 24×7×365
900+Enterprises supported worldwide
16Database engines under one roof
46Cities served
200+Years of combined leadership experience
01 · The consultative support model

Consultative support that diagnoses, advises and engineers, not a ticket queue

Most database support stops at the ticket. Consultative support starts there. The same named engineers who answer your Severity 1 page also review the plan that caused it, the capacity that will run out next and the architecture decision that would remove the risk altogether.

We built MinervaDB consultative support for organizations whose revenue depends on databases that cannot be allowed to fail, and whose engineering leaders want a partner with judgment, not a call centre. Your estate is assigned a pod: a principal architect who owns the relationship and the roadmap, engine leads for each technology you run, and a 24×7 on-call rota with access, runbooks and context already in place.

The work happens in three layers. Continuous operations cover monitoring, incidents and changes. Recurring reviews cover health, capacity and performance. Strategic advisory covers architecture, upgrades and cost. Each layer feeds the next, so an incident becomes a finding, a finding becomes a recommendation, and a recommendation becomes a measured change.

Consultative support operating model: a named engineering pod with a principal architect, engine leads and a 24x7 on-call rota across continuous operations, recurring reviews and strategic advisory
Consultative support operating model: a named engineering pod with a principal architect, engine leads and a 24×7 on-call rota across continuous operations, recurring reviews and strategic advisory.
02 · Scope

Five disciplines in every consultative support engagement

Database risk rarely respects organizational boundaries. A latency incident can be an architecture flaw, a missing index, an operational gap and a cost problem at once, so consultative support covers all five disciplines with one team.

01

Architecture

High availability and disaster recovery designed to a recovery point and recovery time objective written in business terms, with topology, sizing and replication reviewed against measured load.

02

Engineering

Query, schema, index and configuration work that removes the cause of slowness rather than the symptom, verified against execution plans and engine telemetry.

03

Operations

24×7 monitoring, incident response, patching and upgrades under change control, with runbooks written for your estate rather than borrowed from a vendor manual.

04

Production engineering

Service level objectives, error budgets, alerting on leading indicators, root cause analysis and scheduled failover and restore drills that keep the recovery path proven.

05

FinOps

Instance classes, storage tiers, reserved capacity and licences reviewed against measured workload, so you stop paying for capacity your databases do not use.

06

Advisory

Engine selection, migration and modernization decisions with a vendor-neutral view, including the advice not to change an engine when the current one is the right fit.

Consultative support scope matrix: architecture, engineering, operations, production engineering and FinOps, each delivered as advise, engineer and operate
Consultative support scope matrix: architecture, engineering, operations, production engineering and FinOps, each delivered as advise, engineer and operate.
03 · Engagement

How a consultative support engagement runs

The first weeks are spent learning your estate so that the first Severity 1 page is answered by someone who already knows it.

01

Onboard

Access, escalation contacts and change rules agreed. Credentials go into your vault, never into email or chat.

02

Baseline

Each database measured from its own telemetry: workload profile, waits, replication, storage growth and recovery points.

03

Operate and advise

24×7 coverage begins. Findings from the baseline become a prioritized plan with expected effect, blast radius and rollback.

04

Review and evolve

Recurring health, capacity and cost reviews, and a roadmap that is revised as your business and your data change.

04 · Response

Consultative support response commitments

Acknowledgement means a named engineer is working the issue, not an automated reply. The severity matrix is the same across every engine and every cloud.

SeverityDefinitionAcknowledgement
S1Production down or data at risk; business halted15 minutes, 24×7×365
S2Production seriously degraded; a workaround exists12 hours
S3Non-critical fault or performance issue24 hours
S4Question, advice or planned change48 hours

When an outage needs more than advice, the same team runs the incident end to end; see 24/7 emergency DBA coverage.

05 · Evidence

The telemetry behind every consultative support recommendation

We do not ask you to trust an opinion. These are examples of the read-only queries our engineers use to baseline each engine and to prove that a change worked. Credentials are always placeholders.

How a consultative support recommendation is produced: engine telemetry, measured analysis, recommendation with blast radius and rollback, approved change and validation
How a consultative support recommendation is produced: engine telemetry, measured analysis, recommendation with blast radius and rollback, approved change and validation.

PostgreSQL: database time and unused indexes

Built on pg_stat_statements, described in the PostgreSQL documentation. The second query finds indexes that cost writes and storage but are never read.

-- PostgreSQL 14+ with pg_stat_statements: where database time actually goes
SELECT
    queryid,
    calls,
    ROUND(total_exec_time::numeric / 1000, 1)                         AS total_s,
    ROUND(mean_exec_time::numeric, 2)                                 AS mean_ms,
    ROUND(100 * total_exec_time / SUM(total_exec_time) OVER (), 1)   AS pct_of_db_time,
    shared_blks_read,
    LEFT(query, 100)                                                  AS query_head
FROM pg_stat_statements
ORDER BY total_exec_time DESC
LIMIT 15;

-- Indexes that cost storage and write amplification but are never read
SELECT
    s.schemaname,
    s.relname                                         AS table_name,
    s.indexrelname                                    AS index_name,
    pg_size_pretty(pg_relation_size(s.indexrelid))    AS index_size
FROM pg_stat_user_indexes AS s
JOIN pg_index AS i
    ON i.indexrelid = s.indexrelid
WHERE s.idx_scan = 0
  AND NOT i.indisunique
ORDER BY pg_relation_size(s.indexrelid) DESC
LIMIT 20;

MySQL and MariaDB: statement digests

The performance_schema digest table ranks statement shapes by total latency and shows where full scans happen; see the MySQL 8.4 reference.

-- MySQL 8.0 / 8.4 performance_schema: top statement digests by total latency
SELECT
    schema_name,
    count_star                                        AS executions,
    ROUND(sum_timer_wait / 1e12, 1)                   AS total_s,
    ROUND(avg_timer_wait / 1e9, 2)                    AS avg_ms,
    sum_rows_examined,
    sum_no_index_used,
    LEFT(digest_text, 100)                            AS digest_head
FROM performance_schema.events_statements_summary_by_digest
ORDER BY sum_timer_wait DESC
LIMIT 15;

SQL Server: Query Store

Query Store keeps runtime history per plan, so a regression can be traced to the exact plan change; see Microsoft Learn.

-- SQL Server 2016+ Query Store: heaviest queries by total duration (microseconds stored)
SELECT TOP (15)
    q.query_id,
    SUM(rs.count_executions)                                       AS executions,
    ROUND(SUM(rs.avg_duration * rs.count_executions) / 1e6, 1)     AS total_s,
    ROUND(SUM(rs.avg_logical_io_reads * rs.count_executions), 0)   AS logical_reads,
    LEFT(qt.query_sql_text, 100)                                   AS query_head
FROM sys.query_store_runtime_stats AS rs
JOIN sys.query_store_plan AS p
    ON p.plan_id = rs.plan_id
JOIN sys.query_store_query AS q
    ON q.query_id = p.query_id
JOIN sys.query_store_query_text AS qt
    ON qt.query_text_id = q.query_text_id
GROUP BY q.query_id, qt.query_sql_text
ORDER BY total_s DESC;

Oracle: top SQL without extra licences

We baseline from V$SQLSTATS and confirm Diagnostics Pack entitlement before using Active Session History or AWR.

-- Oracle 19c / 23ai: top SQL by elapsed time from V$SQLSTATS (microseconds)
SELECT *
FROM (
    SELECT
        sql_id,
        executions,
        ROUND(elapsed_time / 1e6, 1)                  AS elapsed_s,
        ROUND(cpu_time / 1e6, 1)                      AS cpu_s,
        buffer_gets,
        SUBSTR(sql_text, 1, 100)                      AS sql_head
    FROM v$sqlstats
    ORDER BY elapsed_time DESC
)
WHERE ROWNUM <= 15;

Db2 for LUW: package cache

The monitoring table functions rank statements by execution time across all members of the instance.

-- Db2 11.5 / 12.1 for LUW: package cache statements by execution time (ms)
SELECT
    num_executions,
    stmt_exec_time                                    AS exec_ms,
    rows_read,
    SUBSTR(stmt_text, 1, 100)                         AS stmt_head
FROM TABLE(MON_GET_PKG_CACHE_STMT(NULL, NULL, NULL, -2)) AS t
ORDER BY stmt_exec_time DESC
FETCH FIRST 15 ROWS ONLY;

MongoDB: index usage and cache pressure

Unused indexes slow every write. $indexStats shows usage since the last restart, so we read it alongside uptime.

// MongoDB 6.0+ (mongosh): index usage since restart, unused indexes first
db.getCollectionNames().forEach(function (c) {
  db.getCollection(c).aggregate([{ $indexStats: {} }]).forEach(function (ix) {
    if (ix.name !== "_id_") {
      print(c + "." + ix.name + "  ops=" + ix.accesses.ops + "  since=" + ix.accesses.since);
    }
  });
});

// WiredTiger cache pressure: bytes in cache against the configured maximum
const wt = db.serverStatus().wiredTiger.cache;
print(wt["bytes currently in the cache"] + " / " + wt["maximum bytes configured"]);

ClickHouse: heaviest query shapes

ClickHouse consultative support is delivered with our sister company ChistaDATA; system.query_log is where every baseline starts.

-- ClickHouse 24.x / 25.x: heaviest query shapes over the last 24 hours
SELECT
    normalized_query_hash,
    count()                                           AS executions,
    round(sum(query_duration_ms) / 1000, 1)           AS total_s,
    formatReadableSize(sum(read_bytes))               AS read,
    formatReadableSize(max(memory_usage))             AS peak_memory,
    substring(any(query), 1, 100)                     AS query_head
FROM system.query_log
WHERE type = 'QueryFinish'
  AND event_time > now() - INTERVAL 1 DAY
GROUP BY normalized_query_hash
ORDER BY total_s DESC
LIMIT 15;

Redis and Valkey: command cost and key size

Two commands usually explain a Redis latency or memory problem: which commands dominate the event loop, and which keys hold the memory.

# Redis 7.x / Valkey 8.x: which commands consume the event loop, and which keys hold the memory
export REDISCLI_AUTH="${REDIS_PASSWORD}"
redis-cli -h "${REDIS_HOST}" INFO commandstats | sort -t= -k3 -rn | head -n 15
redis-cli -h "${REDIS_HOST}" --bigkeys        # sampled scan; run against a replica in production
06 · Engines

One consultative support team for every engine you run

Mixed estates are the norm. We keep engine specialists on the same rota and the same bridge, so a problem that crosses the cache, the relational database and the warehouse is solved by one team.

PostgreSQLOLTP & HTAP
MySQLOLTP at scale
MariaDBOpen-source RDBMS
SQL ServerEnterprise OLTP
OracleEnterprise RDBMS
Db2LUW and z/OS
MongoDBDocument store
ClickHouseColumnar OLAP
RedisIn-memory KV
ValkeyRedis-compatible KV
AlloyDB & Cloud SQLGoogle Cloud managed

Each engine page describes the depth of our practice: PostgreSQL, MySQL, MariaDB, SQL Server, Oracle, Db2, MongoDB, ClickHouse, Redis. Every major cloud DBaaS is covered as well.

07 · Cloud DBaaS and FinOps

Consultative support on every major cloud, with cost treated as an engineering metric

A managed service removes the hardware, not the database work. Queries, parameters, recovery decisions and cost remain yours, and that is where consultative support adds value on managed platforms.

AWS

Amazon Web Services

Amazon RDS and Aurora, DynamoDB, ElastiCache, MemoryDB, Keyspaces and Redshift. See Amazon RDS support.

Azure

Microsoft Azure

Azure SQL Database and Managed Instance, Azure Database for PostgreSQL and MySQL, Cosmos DB and Azure Cache for Redis.

GCP

Google Cloud

Cloud SQL, AlloyDB, Spanner, Bigtable, Memorystore and BigQuery. See AlloyDB consulting and BigQuery consulting.

FinOps: reserved capacity coverage

Coverage below the steady-state baseline means paying on-demand rates for capacity that runs all year. We pair this view with measured utilization before recommending any commitment. Ongoing cost work sits with our cloud database FinOps practice.

# Reserved instance coverage for Amazon RDS by instance type: the first FinOps question we ask
aws ce get-reservation-coverage \
  --time-period Start="${PERIOD_START}",End="${PERIOD_END}" \
  --group-by Type=DIMENSION,Key=INSTANCE_TYPE \
  --filter '{"Dimensions":{"Key":"SERVICE","Values":["Amazon Relational Database Service"]}}'

What FinOps reviews cover

  • Instance class and storage performance against measured CPU, memory and I/O.
  • Reserved capacity and savings plans against the post-optimization baseline.
  • Replicas, snapshots and backups that outlived their purpose.
  • Licence position for SQL Server, Oracle and Db2, including edition and core counts.
  • Queries and indexes whose fix removes the need for the next scale-up.
08 · Governance

Governance, access and change control in consultative support

Enterprise customers ask us the same questions their auditors ask. These are the controls we work under on every engagement.

Access

Least privilege, from your vault

Named accounts, the minimum roles each task needs, credentials held in your secrets manager and revoked when an engineer rotates off the engagement.

Change

Approval before execution

Every change carries an expected effect, blast radius and rollback path, and runs only after your approval inside an agreed window.

Evidence

An audit trail you can hand over

Commands, outputs and decisions are recorded per incident and per change, ready for internal audit and for your compliance evidence.

Data

Work happens in your environment

We work inside your network and tooling. Customer data is handled under the access and data-protection terms agreed in your contract.

09 · Why MinervaDB

Why enterprises choose MinervaDB consultative support

01

Vendor-neutral judgment

We are not tied to any database vendor, so our advice is about your workload, including the advice to keep what you have.

02

Principal-level engineers

Your pod is led by engineers who have designed and run these engines in production, not by an account manager relaying tickets.

03

One team, full lifecycle

Architecture, engineering, operations, production engineering and FinOps sit with the same people, so nothing is lost between hand-offs.

10 · FAQ

Consultative support questions

What is consultative support?

Consultative support is a standing engagement in which senior MinervaDB engineers take shared ownership of your production databases. They answer incidents around the clock, and between incidents they advise on architecture, performance, upgrades and cost, backed by measurements from your own systems rather than generic best practice.

How is consultative support different from a standard support contract?

A standard contract answers tickets. Consultative support also tells you what to change before the ticket is raised: the query that will exhaust capacity next quarter, the replica that cannot take a failover, the licence or instance class you are overpaying for. The same named engineers do both, so advice is grounded in how your estate actually behaves.

What response times does MinervaDB consultative support commit to?

Severity 1 is acknowledged within 15 minutes, 24×7×365. Severity 2 is acknowledged within 12 hours, Severity 3 within 24 hours and Severity 4 within 48 hours. Acknowledgement means a named engineer is working the issue.

Which databases and cloud platforms are covered?

PostgreSQL, MySQL, MariaDB, Microsoft SQL Server, Oracle, IBM Db2, MongoDB, ClickHouse, Redis and Valkey, together with the managed services that run them on AWS, Microsoft Azure and Google Cloud, and vendor clouds such as MongoDB Atlas. ClickHouse work is delivered with our sister company ChistaDATA.

Do your engineers make changes in our production environment?

Only with your approval and inside an agreed change window. Every recommendation states the expected effect, the blast radius and the rollback path. Destructive operations carry an explicit confirmation gate, with a verification query before and a validation query after.

How does onboarding work?

We agree access and escalation contacts, take a baseline of each database from its own telemetry, document topology and recovery points, and write the runbooks your estate needs. Onboarding is complete when the on-call engineer can act on a Severity 1 page without asking a single question.

Can consultative support reduce our cloud database costs?

Often, yes. FinOps is one of the five disciplines in every engagement. We review instance classes, storage tiers, reserved capacity and licensing against measured workload, and we recommend the change only when the metric shows the capacity is not needed.

What do we receive from consultative support besides incident response?

Written outputs you can act on and keep. Every Severity 1 and Severity 2 incident closes with a root cause analysis and the change that prevents a repeat. Recurring health reviews report workload, waits, replication, storage growth and recovery-point status for each database against its baseline. Capacity and cost reviews state what will run out, when, and what it costs to fix. Runbooks and topology documentation are kept current as your estate changes, so the knowledge stays with your organization.

Does consultative support replace our in-house DBA team?

No. It extends it. Your team keeps ownership of the platform and of every decision; we add depth across engines, round-the-clock coverage and a second opinion on high-risk changes. Many engagements begin because an in-house team is strong on one engine and needs specialists on the others, or needs night and weekend cover without hiring for it.

How do we start?

Book a call with a principal architect. Bring your engine inventory, the last two incident timelines and the current cloud or licence invoice. We will tell you where the risk sits, what we would change first and how the engagement would be staffed.

Put a consultative support team behind your most critical databases

Talk to a MinervaDB principal architect about your estate. Bring your toughest production problem to the first call.

Schedule a Consultation → 24/7 Emergency DBA →