Role-Based Guides
WhoDB for Database Administrators
WhoDB for Database Administrators
As a database administrator, you manage complex database infrastructure supporting multiple applications and teams. WhoDB provides DBA-specific capabilities for schema exploration, multi-database management, data integrity verification, and administrative maintenance tasks.
Tip
This guide covers schema management, multi-database workflows, data integrity checks, and monitoring patterns essential for effective database administration.
DBA Administration Capabilities
Explore, understand, and document database schemas across your infrastructure
Manage multiple database instances, environments, and replica servers
Verify data consistency, check constraints, and identify orphaned records
Execute administrative queries and maintenance operations
Multi-Database Management
Managing Multiple Connection Profiles
Cross-Database Schema Comparison
Schema Exploration & Documentation
Understanding Your Database Structure
Visualizing Schema Topology
Data Integrity & Verification
Integrity Checking Queries
Data Quality Audits
Administrative Maintenance Tasks
Schema Modification Verification
Before and after schema changes, verify your modifications:
sql
-- Verify new column was added correctly SELECT column_name, data_type, is_nullable FROM information_schema.columns WHERE table_name = 'orders' ORDER BY ordinal_position; -- Check index creation SELECT indexname, indexdef FROM pg_indexes WHERE tablename = 'orders'; -- Verify constraint creation SELECT constraint_name, constraint_type FROM information_schema.table_constraints WHERE table_name = 'orders';
Tip
Always verify schema changes after applying them. Document the modifications for audit trails.
Statistics & Performance Monitoring
Monitor database performance over time:
sql
-- Monitor slow queries SELECT query, calls, total_time, mean_time, max_time FROM pg_stat_statements WHERE mean_time > 100 ORDER BY mean_time DESC LIMIT 20; -- Check table bloat (dead tuples) SELECT schemaname, tablename, ROUND(dead_tuples::float / live_tuples * 100, 2) as dead_percent FROM pg_stat_user_tables WHERE live_tuples > 0 AND ROUND(dead_tuples::float / live_tuples * 100, 2) > 10 ORDER BY dead_percent DESC;
Regular monitoring helps you maintain optimal database performance.
Cleanup & Maintenance
Execute administrative cleanup tasks safely:
sql
-- Delete old archive records (with backup first) DELETE FROM audit_logs WHERE created_at < NOW() - INTERVAL '2 years' AND archived = true; -- Mark records for deletion rather than immediate delete UPDATE orders SET is_deleted = true, deleted_at = NOW() WHERE created_at < NOW() - INTERVAL '5 years' AND status = 'cancelled';
Warning
Always have backups before executing destructive operations. Test cleanup queries on non-production first.
DBA Best Practices
Maintain documentation of your schema, constraints, relationships, and standard procedures.
Configure production connections as read-only to prevent accidents.
Schedule routine data integrity verifications to catch issues early.
Track schema changes and have a rollback plan for each modification.
Regularly check slow queries, indexes, and table statistics.
Test all queries and procedures on development/staging before production.
Query Repository for DBAs
Common DBA Queries
Database Health Check
sql
-- Overall database health summary SELECT datname, numbackends as active_connections, xact_commit as transactions_committed, xact_rollback as transactions_rolled_back, tup_returned as tuples_read, tup_fetched as tuples_fetched, tup_inserted as tuples_inserted, tup_updated as tuples_updated, tup_deleted as tuples_deleted FROM pg_stat_database WHERE datname NOT IN ('template0', 'template1', 'postgres');
Missing Indexes on Foreign Keys
sql
-- Identify foreign keys without corresponding indexes SELECT tc.table_name, kcu.column_name, 'MISSING INDEX' as status FROM information_schema.table_constraints tc JOIN information_schema.key_column_usage kcu ON tc.constraint_name = kcu.constraint_name WHERE tc.constraint_type = 'FOREIGN KEY' AND NOT EXISTS ( SELECT 1 FROM information_schema.statistics s WHERE s.table_name = tc.table_name AND s.column_name = kcu.column_name );
Connection Analysis
sql
-- Who is connected and what are they doing? SELECT usename, application_name, state, query, state_change, query_start FROM pg_stat_activity WHERE datname = current_database() AND usename != 'postgres' ORDER BY query_start DESC;
Troubleshooting Common DBA Issues
Next Steps
Enhance your DBA capabilities:
Check
With these DBA tools and patterns, you can effectively manage your database infrastructure, verify data integrity, track schema changes, and maintain optimal performance across multiple database instances. WhoDB provides the administrative capabilities essential for professional database administration.