Skill 62 · Amazon Aurora PostgreSQL
Subchapter 62.33
references/upgrade-planning-post-checklist.mdMarkdown3 KBView on GitHub
Verify upgrade completed
aws rds describe-db-clusters --db-cluster-identifier {cluster} \
--query "DBClusters[0].{Engine:Engine,EngineVersion:EngineVersion,Status:Status}" \
--output json --region {region}Preserve the rollback window — do NOT delete pre-upgrade snapshots immediately. Major version upgrades are one-way in-place. Rollback requires restoring from a snapshot or PITR, and both restore the old major version:
Keep the pre-upgrade manual snapshot for at least 7–14 days of stable production traffic (longer for regulated workloads) before deleting it. Deleting it early forecloses the cheapest rollback path. Document the snapshot identifier and retain-until date in your change record.
Check performance discrepancies — Compare CloudWatch metrics against baseline: CPUUtilization, DatabaseConnections, ReadLatency, WriteLatency, FreeableMemory, BufferCacheHitRatio, DMLLatency, SelectLatency. Use Performance Insights to compare database load.
Compare EXPLAIN plans for critical queries. Look for: different join strategies, missing index usage, full table scans.
EXPLAIN (ANALYZE, BUFFERS, FORMAT JSON) SELECT ...;Monitor CloudWatch 24-72 hours — Watch: CPUUtilization, FreeableMemory, DatabaseConnections, ReadLatency, WriteLatency, AuroraReplicaLag, Deadlocks, LoginFailures.
Validate application connectivity — connections, pooling, SSL/TLS.
Verify parameter group applied correctly:
aws rds describe-db-cluster-parameters --db-cluster-parameter-group-name {new_pg} \
--query "Parameters[?Source=='user'].{Name:ParameterName,Value:ParameterValue}" \
--output table --region {region}Update statistics — run ANALYZE (Aurora autovacuum runs it too, but a one-time manual pass post-upgrade is insurance).
Check error logs
aws rds describe-events --source-identifier {cluster} --source-type db-cluster --duration 1440 --region {region}Verify extensions working — SELECT extname, extversion FROM pg_extension; Update if needed: ALTER EXTENSION {name} UPDATE;
REINDEX hash indexes if upgrading from < PG 10.
Verify pg_stat_statements collecting data:
SELECT calls, query FROM pg_stat_statements ORDER BY total_exec_time DESC LIMIT 10;Run VACUUM ANALYZE on large tables to update planner statistics.