20 Critical Database Checks Before Going to Production
Essential checklist covering memory sizing, connection poolers, backup automation, and OS limits prior to any production deployment.
OS Limits (ulimits & vm.max_map_count)
Ensure file descriptors (nofile) is at least 65535 and swappiness is set to 1 or 10 to avoid swapping active database pages.
ulimit -n 65535
sysctl -w vm.max_map_count=262144
sysctl -w vm.swappiness=1Connection Pooler Enforcement
Direct high-concurrency client connections must be routed through PgBouncer, ProxySQL or HikariCP with strict client connection limits.
Automated Backup & Restore Drill
Backups alone are insufficient; automated restore verification to a test instance must be validated before go-live.
Slow Query Logging Threshold
Enable query profiling and log queries exceeding 250ms to catch unindexed production queries early.
# PostgreSQL:
log_min_duration_statement = 250ms
# MySQL:
slow_query_log = 1
long_query_time = 0.5Share Your Restore Drill Results or Experience
Contribute real-world RTO/RPO telemetry, PostgreSQL version, backup methodology, and obstacles encountered from your infrastructure to help build industry benchmarks.