A database can be completely operational and the business can still be experiencing a serious outage.
The database process is running.
Connections are available.
CPU utilization looks normal.
Storage has plenty of free space.
The monitoring dashboard is green.
And yet users are complaining that the application is slow.
This is one of the most important differences between traditional database monitoring and modern database observability.
A database being UP does not mean that the database service is healthy.
Database Monitoring Is Not Database Observability
Traditional monitoring usually starts with simple questions:
- Is the database running?
- Is the server reachable?
- Is there enough disk space?
- Is CPU overloaded?
- Are connections available?
These checks are necessary.
But they are not enough.
Consider a PostgreSQL database where:
- PostgreSQL is running
- CPU is at 30%
- memory utilization is normal
- disk space is sufficient
- connections are available
Everything looks healthy.
But the application response time has increased from 200 milliseconds to 8 seconds.
From the operating system perspective, nothing may appear to be wrong.
From the business perspective, the system is already failing.
This is where observability becomes important.
What Should a Senior DBA Actually Observe?
A reliable database platform should provide visibility into several different dimensions.
Availability
Can clients connect to the database?
Performance
How long do queries take?
Capacity
Do we have enough CPU, memory, storage and connections?
Replication
Are replicas synchronized?
Recovery
Can we actually restore the database?
Workload
What is the database doing right now?
Errors
What is failing?
Trends
What is gradually getting worse?
Monitoring answers:
„Is something wrong?“
Observability should help answer:
„What is wrong, why is it wrong, and what will happen next?“
Query Latency Is More Important Than Database Uptime
One of the most dangerous monitoring mistakes is focusing too heavily on availability.
A database can have:
99.99% uptime
and still provide a terrible user experience.
Imagine an application where 1% of queries take 30 seconds.
The database may still be considered available.
But users may experience:
- slow pages
- failed transactions
- timeouts
- locked sessions
- repeated requests
- overloaded application servers
Eventually the problem can propagate through the entire application stack.
Database performance is therefore not simply a DBA concern.
It is a business reliability concern.
Replication Lag Is a Reliability Metric
In a replicated environment, checking whether the replica is online is not enough.
You also need to know:
How far behind is the replica?
A PostgreSQL replica may be:
UP
while being several hours behind the primary.
A MySQL replica can be:
RUNNING
while replication is effectively unusable.
An Oracle Data Guard standby can be:
AVAILABLE
while transport or apply lag is increasing.
The important metric is not simply:
Replica = UP
It is:
Replica is receiving and applying changes within the required recovery objective.
This distinction becomes critical during a failure.
Connections Can Become the Real Bottleneck
Another common problem is connection saturation.
The database itself may have plenty of CPU capacity.
But the application may be exhausting available connections.
For example:
Application
|
Connection Pool
|
v
Database
|
Maximum Connections
When the connection pool is badly configured, the database can become overloaded even when CPU utilization remains relatively low.
A useful monitoring strategy therefore tracks:
- active connections
- idle connections
- connection utilization
- connection wait time
- rejected connections
- connection pool saturation
A green CPU graph does not prove that the database is healthy.
Storage Latency Can Destroy Performance
Database performance is heavily dependent on storage.
A database may have:
- sufficient IOPS
- sufficient throughput
- plenty of free capacity
and still experience serious performance degradation because of latency.
For databases, the difference between acceptable and unacceptable storage performance can be measured in milliseconds.
This is why a Senior DBA should not monitor only:
Disk space
but also:
Disk latency
and:
I/O wait
The question is not:
„Do we have enough disk?“
The better question is:
„Can the storage subsystem deliver the performance required by the workload?“
Locking Can Make a Healthy Database Unusable
Consider a database with:
- 20% CPU utilization
- normal memory usage
- low disk utilization
- all services running
Everything appears healthy.
But one transaction holds a critical lock.
Hundreds of other sessions are waiting.
The database is technically available.
The application is effectively unavailable.
This is why database observability needs visibility into:
- locks
- blocking sessions
- waiting sessions
- long-running transactions
- transaction age
- deadlocks
- wait events
A database can have almost no CPU activity while hundreds of users are waiting for one transaction to finish.
Backups Must Be Part of Observability
Another common mistake is monitoring whether a backup job started.
That is not enough.
The real questions are:
- Did the backup complete?
- Was it valid?
- Can it be read?
- Where is it stored?
- Is it protected from the database?
- How old is the latest successful backup?
- Can the database actually be restored?
A backup that cannot be restored is not a reliable recovery mechanism.
This is why recovery testing should be part of database reliability engineering.
The important metric is not:
Backup = SUCCESS
It is:
Recovery = VERIFIED
Recovery Time Must Be Measured
RTO is often documented as a business requirement.
But documentation is not proof.
Suppose the business requires:
RTO: 30 minutes
The database team should be able to demonstrate that recovery can actually be completed within that period.
That requires testing.
For example:
Failure
↓
Detection
↓
Decision
↓
Failover / Restore
↓
Database Recovery
↓
Application Reconnect
↓
Validation
↓
Service Restored
Every step consumes time.
If the recovery procedure has never been tested, the RTO is only an assumption.
Observability Should Follow the Business
The most important database metrics are not necessarily the ones that are easiest to collect.
A business-critical payment database may require:
- transaction latency
- failed transactions
- replication lag
- connection saturation
- recovery status
An internal reporting database may have completely different requirements.
This means database observability should start with the question:
What does the business actually need from this database?
Then the DBA can define the appropriate reliability indicators.
From Metrics to SLOs
Modern database reliability engineering goes one step further.
Instead of simply collecting metrics, teams define measurable objectives.
For example:
Database availability
99.95%
Query latency
95% of critical queries below 500 ms
Replication lag
Less than 30 seconds
Backup freshness
Maximum 24 hours
Recovery
RTO below 30 minutes
These objectives transform database administration from:
„Everything looks green.“
into:
„The database is meeting the reliability objectives required by the business.“
That is a much stronger approach.
The Senior DBA’s Role Is Changing
A traditional DBA often focuses on individual database components.
A modern Senior DBA increasingly needs to understand the entire service.
That means connecting:
Business
↓
Application
↓
Database
↓
Operating System
↓
Storage
↓
Network
↓
Infrastructure
When a user reports:
„The application is slow.“
the DBA cannot simply check whether Oracle, PostgreSQL or MySQL is running.
The DBA needs to determine where the actual bottleneck is.
That is database reliability engineering.
The Green Dashboard Problem
One of the most dangerous situations in production is a completely green dashboard during a real incident.
It usually means one thing:
We are monitoring the wrong things.
A good observability system should allow the DBA to answer:
- What is failing?
- Who is affected?
- How severe is the problem?
- When did it start?
- What changed?
- Where is the bottleneck?
- Is the problem getting worse?
- Can we recover?
- How quickly can we recover?
- How do we prevent the same incident from happening again?
That is much more valuable than a simple:
Database UP
Database Reliability Is About Evidence
Reliability should not depend on assumptions.
We should not assume:
- the standby will work
- the backup will restore
- failover will be fast
- replication is healthy
- storage will remain available
- the application will reconnect
- recovery will meet the RTO
We should test these assumptions.
Because reliability is not a configuration.
Reliability is demonstrated through evidence.
Final Thoughts
A modern database platform needs more than monitoring.
It needs observability.
Monitoring tells us that something may be wrong.
Observability helps us understand:
what happened, why it happened, who is affected, and what we should do next.
For Senior DBAs and Database Reliability Engineers, this is becoming one of the most important skills.
The goal is no longer simply:
„Keep the database running.“
The goal is:
„Understand the database service well enough to predict failure, detect degradation early, recover quickly, and continuously reduce operational risk.“
That is the difference between database administration and database reliability engineering.
About the Author
Tomas Solar
Principal Database Reliability Engineer
20+ years of experience with Oracle, PostgreSQL, MySQL, SQL Server and MongoDB.
Specialized in Database Administration, High Availability, Disaster Recovery, Performance Engineering, Database Reliability, Automation, Database Migration and Database Architecture.
The future of database administration is not about managing more servers.
It is about building database platforms that require less manual intervention and provide greater reliability.
