An Azure managed PostgreSQL database service for app development and deployment.
The next decisive step is to correlate each replica restart timestamp with that replica’s Maintenance history, Resource Health history, and control-plane Activity Log; if none identifies the event, open a Microsoft support request with exact UTC timestamps because PostgreSQL logs cannot expose every host or service-platform failure.
1. Check replica-specific platform events
Perform these checks on the replica resource, not only on the primary:
- Replica → Settings → Maintenance → Maintenance history
- Open each Tracking ID near a restart.
- Record maintenance type, start/end time, status, and export the history to CSV.
- Azure-initiated software deployments and minor-version upgrades can restart a server; maintenance history is the supported way to confirm whether maintenance coincided with the restart. ^1^ ^2^
- Replica → Help → Resource health → Health history
- Service Health → Health advisories, Service issues, and Planned maintenance
- Filter by the replica’s subscription and region.
- Create a Service Health alert so future platform events are captured immediately.
- Review the replica’s Activity Log for configuration, start/restart, scaling, maintenance, and automation operations.
- Filter by the precise UTC interval and inspect the initiator/caller.
- A clean Activity Log does not exclude a short platform event: transitions to
Unknownand some short health transitions are not recorded there. ^5^
A restart approximately every 15 hours is not documented as a normal read-replica cycle. Maintenance is plausible only if the timestamps correlate with Maintenance history or Service Health; do not attribute the pattern to maintenance from periodicity alone.
2. Capture a complete timeline for the next occurrence
If diagnostic export was not already enabled, configure it now; it cannot recover telemetry from before enablement:
- Open Replica → Monitoring → Diagnostic settings → Add diagnostic setting.
- Send data to a Log Analytics workspace.
- Select:
- PostgreSQL Server logs
- PostgreSQL Sessions data
- AllMetrics
- Query Store categories if workload correlation is also required
- Prefer Resource specific destination tables and save. ^6^
Query the replica’s server-log timeline around a known restart:
let restart = datetime(2026-10-21T10:00:00Z);
PGSQLServerLogs
| where LogicalServerName == "replica-server-name"
| where TimeGenerated between (restart - 15m .. restart + 15m)
| project TimeGenerated, Severity, Message
| order by TimeGenerated asc
Also graph Read Replica Lag on the replica and Max Physical Replication Lag on the primary. Restart and catch-up time should appear in replica lag, helping establish the exact incident boundaries even when no PostgreSQL crash message exists. ^7^
Because CPU, memory, IOPS, storage, workload, and lag have already been reviewed without anomalies, repeating those checks is unlikely to identify the trigger. The useful new evidence is the cross-service timestamp correlation above.
3. Escalate when no customer-visible event explains it
Open Replica → Help + support / Support + troubleshooting → New support request, selecting Azure Database for PostgreSQL → Read Replicas or the closest availability/restart category.
Provide:
- Replica and primary resource IDs, regions, PostgreSQL versions, and compute tiers.
- At least three restart timestamps in UTC, including start, recovery completion, and outage duration.
- Maintenance-history CSV, Resource Health screenshots/export, Activity Log export, and the Log Analytics interval.
- Confirmation that the primary remained available.
- Confirmation that PostgreSQL logs contain recovery startup but no preceding
PANIC,FATAL, OOM, or shutdown request. - Any correlation ID or tracking ID displayed by the portal.
- A request to correlate the timestamps with host lifecycle, platform maintenance, node movement, storage/network faults, and service recovery telemetry.
Azure documents infrastructure faults, networking issues, and software bugs as possible unplanned disruptions handled by service recovery. When customer-visible histories are empty, determining which platform event occurred requires Microsoft’s service-side investigation rather than another PostgreSQL setting change. ^2^
These portal paths apply to Azure Database for PostgreSQL Flexible Server. If this is the retired Single Server deployment model rather than a single-node Flexible Server, state that explicitly in the support request because its maintenance and diagnostic interfaces differ.
References
- Schedule maintenance in Azure Database for PostgreSQL flexible server
- Overview of business continuity in Azure Database for PostgreSQL flexible server
- Azure Resource Health FAQ
- Resource Health overview
- Azure Activity Log event schema
- Configure and access logs in Azure Database for PostgreSQL
- Read replicas in Azure Database for PostgreSQL flexible server