# Home

> Expert PostgreSQL support & consulting since 1997. 24/7/365 managed services, migrations, performance tuning & extended support. Enterprise-grade solutions.

## Pages
- [Services](https://www.commandprompt.com/services/): Full-stack PostgreSQL & open source consulting: database optimization, Linux administration, Python/Ruby development, Ansible automation & 24/7 support services.
- [Full Stack Offerings](https://www.commandprompt.com/services/fullstack/): Command Prompt Full Stack Offerings
- [Training](https://www.commandprompt.com/services/training/): Command Prompt On-Demand Training for PostgreSQL
- [Nutanix Products](https://www.commandprompt.com/services/nutanix-products/)
- [Database Migration](https://www.commandprompt.com/services/database-migration/): Migrating from Oracle or MySQL to PostgreSQL? Command Prompt has managed source-to-Postgres migrations for organizations of all sizes. Expert project management, proven methodology, on-prem or cloud.
- [Advanced Monitoring Solutions](https://www.commandprompt.com/services/advanced-monitoring-solutions/): Monitoring designed and run by the engineers who answer the alerts. We deploy Open Source Zabbix specialized for Postgres and the stack around it.
- [About](https://www.commandprompt.com/about/): North America's oldest PostgreSQL & open source provider since 1997. Full-stack expertise: database, Linux, Python, Ruby, Ansible. Serving companies of all sizes that want first-class PostgreSQL support.
- [Support Options](https://www.commandprompt.com/about/support-options/): Postgres and Open Source Support form the Leader in the Industry
- [Success Stories: Case Studies](https://www.commandprompt.com/about/success-stories-case-studies/): Dozen's of case studies and success stories surrounding PostgreSQL deployments with Command Prompt.
- [The 5 TB Data Diet: Shrinking a Database Until It Fit Its New Cloud](https://www.commandprompt.com/about/success-stories-case-studies/the-5-tb-data-diet-shrinking-a-database-until-it-fit-its-new-cloud/): You cannot lift-and-shift what you refuse to clean up. A database that has grown for a decade carries everything: mail logs nobody queries, indexes nobody uses, history nobody reads but everybody is afraid to delete. The migration deadline turned that comfortable clutter into a blocker. Either the database lost terabytes, or the platform stayed where it was.
- [Eighteen Years on Call: From PostgreSQL 8.1 to 17, and a Nine-Minute Report Cut to 30 Seconds](https://www.commandprompt.com/about/success-stories-case-studies/eighteen-years-on-call-from-postgresql-81-to-17-and-a-nine-minute-report-cut-to-30-seconds/): In 2008 it was autovacuum failing to keep up on PostgreSQL 8.1. In the early 2010s it was uptime: the platform needed real high availability and point-in-time recovery, not a single box and a prayer. In 2013 it was a production-down emergency, submissions failing with a numeric-overflow error nobody could explain. In 2021 it was a cloud upgrade gone wrong: an RDS jump from 9.6 to 13, performed without us, left the production database nearly unusable. And in 2026 it was speed at the finish line of a 13-to-17 upgrade: the company set a goal that every custom client report return in under one minute, and the worst one took more than nine.
- [The Migration the Monitoring Could Not See](https://www.commandprompt.com/about/success-stories-case-studies/the-migration-the-monitoring-could-not-see/): The destination was clear: AlloyDB, Google's managed PostgreSQL-compatible service on a PostgreSQL 15 engine. The path was not. The vendor-recommended migration tooling had stalled. Replication slots grew during incremental sync without explanation, the procedure kept sprouting workarounds, and the estimate for the initial production sync stood at more than two weeks. Two weeks of retained WAL on a busy production primary is not a plan. It is a countdown.
- [Fifteen-Plus Years as the Full-Stack Engineering Partner Behind a National Medical-Coding Platform](https://www.commandprompt.com/about/success-stories-case-studies/fifteen-plus-years-as-the-full-stack-engineering-partner-behind-a-national-medical-coding-platform/): Most consultancies are handed a database. This client handed us the entire platform: hosting, application development, authentication, search, monitoring, and the regulatory data pipeline.
The original stack, Apache fronting a JBoss/Java application, was showing its age. Application crashes were being band-aided with scheduled nightly restarts. Connection-pool exhaustion periodically blocked all logins. Un-rotated logs filled disks and took servers down. Quarterly regulatory data loads (Medicare fee schedules and code-set updates) were manual and error-prone, occasionally requiring emergency hand-entered corrections from late-breaking federal bulletins. Meanwhile the platform lived on aging bare-metal hardware whose RAID arrays, NICs, and power supplies were beginning to fail. In healthcare, every one of those risks converts directly into clinicians who cannot code and claims that cannot bill.
- [From Zero Backups to a Safety Net Under a Live EMR](https://www.commandprompt.com/about/success-stories-case-studies/from-zero-backups-to-a-safety-net-under-a-live-emr/): They were right. We assessed the colocation estate and found one host running five PostgreSQL clusters across three different major versions, each with a different backup configuration, and not one of them working. The most recent local copies were stale by months. On the warehouse cluster there was a large WAL archive with no base backup behind it, which is a pile of receipts for a purchase that was never made. On the core EMR server, every backup was failing, and a cleanup script was deleting WAL files after 14 days whether they had been archived or not.
- [From Unrecoverable to Under Control: Taming Multi-Tenant PostgreSQL at 17,000 Schemas](https://www.commandprompt.com/about/success-stories-case-studies/from-unrecoverable-to-under-control-taming-multi-tenant-postgresql-at-17000-schemas/): A national employee-benefits administration provider runs its entire business on a single PostgreSQL cluster. Its benefits-administration platform gives every client company a schema of its own: roughly 17,000 to 19,000 identically structured schemas in one database, a schema-per-tenant architecture at a scale most teams never encounter. The data is HIPAA-regulated, the platform is the system of record for benefits processing, and the cluster is self-managed PostgreSQL 11 on Azure virtual machines, with no managed-cloud safety net underneath it.
- [Two Hours, Zero Surprises: Retiring End-of-Life Postgres Inside a Bank's Change Window](https://www.commandprompt.com/about/success-stories-case-studies/two-hours-zero-surprises-retiring-end-of-life-postgres-inside-a-banks-change-window/): The bank was running PostgreSQL 9.3, a release that had been end-of-life for years. No more security patches. No more bug fixes. For a regulated financial institution, that is not a technical debt line item, it is an audit finding waiting to happen.
- [Thirteen Minutes on a Saturday: Disaster Recovery a Hedge Fund Can Actually Trust](https://www.commandprompt.com/about/success-stories-case-studies/thirteen-minutes-on-a-saturday-disaster-recovery-a-hedge-fund-can-actually-trust/): Most disaster recovery plans are documents. Nobody has restored from the backups. Nobody has promoted the replica. The plan is fiction with a table of contents.
This client did not want fiction. When we started in 2022, they asked us to review the backup and recovery posture of a 10TB PostgreSQL 12 estate and tell them the truth. The truth had rough edges. The pgBackRest topology had configuration drift across hosts. A weekly full backup eventually stretched to 65 hours on a database that had quietly grown past 9TB, eating into Monday-morning performance. And the firm had suffered out-of-memory outages on the primary that nobody had fully explained.
- [One Outage, Zero Recurrences: Retiring PostgreSQL's Hidden Capacity Limits at a Global Financial Services Firm](https://www.commandprompt.com/about/success-stories-case-studies/one-outage-zero-recurrences-retiring-postgresqls-hidden-capacity-limits-at-a-global-financial-services-firm/): First, a production sequence in the EU region reached the maximum value of a 32-bit integer: 2,147,483,647. Every insert that depended on it began failing. A platform that had run flawlessly for years could suddenly accept no new rows. Not from load. Not from storage. Not from a bad deployment. A type chosen at design time had run out of numbers.
- [Audit Data Grows Forever. The Databases Stopped Growing With It: Partitioning, Archiving, and Upgrading a Core-Banking Fleet](https://www.commandprompt.com/about/success-stories-case-studies/audit-data-grows-forever-the-databases-stopped-growing-with-it-partitioning-archiving-and-upgrading-a-core-banking-fleet/): Keep every API request and response, forever, in the same database that posts transactions. That is what the compliance requirement amounted to in practice. The audit tables grew without bound and were swallowing the OLTP databases. Backups got longer. Storage costs climbed on every bank's instance. The tables the regulator cares about most were becoming the tables the database could least afford to carry.
- [From Weeks to 0.8 Seconds: Planner Engineering at Billions of Rows](https://www.commandprompt.com/about/success-stories-case-studies/from-weeks-to-08-seconds-planner-engineering-at-billions-of-rows/): The firm had hit a scaling wall on three fronts at once.
First, raw volume. The largest entity-match table had grown to 2.2 billion rows, with a companion table holding another 677 million, and a monitoring-history table had swollen to 1.2 TB: too large to vacuum, index, or alter comfortably, and expensive to keep entirely live.
- [Restored to the Millisecond: An 18 TB Point-in-Time Recovery, Straight Through an Unreleased PostgreSQL Bug](https://www.commandprompt.com/about/success-stories-case-studies/restored-to-the-millisecond-an-18-tb-point-in-time-recovery-straight-through-an-unreleased-postgresql-bugfix/): Two complications were waiting. First, the retention window: the one full backup old enough to reach the requested day was a single scheduled prune away from deletion. Second, invisible until mid-restore: the freshly installed PostgreSQL minor release on the restore host carried a regression, at that point unfixed in any released version, that silently deadlocks WAL replay.
- [Breaking the 20 TB Ceiling: A Zero-Data-Loss Exit from AWS RDS to Self-Managed PostgreSQL](https://www.commandprompt.com/about/success-stories-case-studies/breaking-the-20-tb-ceiling-a-zero-data-loss-exit-from-aws-rds-to-self-managed-postgresql/): By mid-2023 the platform had outgrown Amazon RDS on three fronts at once. Scale: the database stood at 18.15 TB, closing in on its 20 TB RDS storage ceiling, and RDS autoscaling had already bitten once, when a cooling-off window froze volume growth during a runaway materialized-view refresh and took a replica down. Cost: the reserved instance backing an r6g.16xlarge was up for renewal, and leadership was scrutinizing a cloud bill the managed service kept inflating. Control: performance was being left on the table. Filesystem compression, kernel and memory tuning, direct log access: RDS exposes none of it, and the client's DBA partner could see only what the managed service allowed.
- [Ahead of the 2.1 Billion Wall: bigint Migrations Delivered as Pull Requests](https://www.commandprompt.com/about/success-stories-case-studies/ahead-of-the-21-billion-wall-bigint-migrations-delivered-as-pull-requests/): Our system health check found integer primary keys on the platform's busiest tables. An integer column tops out at 2.1 billion, and these counters only move in one direction. Hit the wall and inserts fail. Not degrade. Fail, in the middle of a business day, on the tables the whole product depends on.
- [Every Emergency Resolved, None Caused by PostgreSQL: Fifteen Years Running the Full Stack for a Vacation-Rental Marketplace](https://www.commandprompt.com/about/success-stories-case-studies/case_study_emergency_resolved_none_by_postgres/): Self-hosting means every failure mode belongs to you. Over the engagement the platform absorbed the full catalog: a failed RAID-controller battery that took a database server down, direct-attached storage throwing hardware errors for a week, a Ceph RBD volume stuck mid-delete, swap exhaustion on a storage node, and a runaway application process that inflated PostgreSQL logging from roughly 1.4 GB a day to 240 GB in under twelve hours, filling the root filesystem the same day. All of it against a seasonal travel business whose January and holiday-quarter traffic spikes forgive nothing.
- [Fifteen Years, Seven Emergencies, Zero Data Loss: Managed PostgreSQL Behind a Major Public Library Catalog](https://www.commandprompt.com/about/success-stories-case-studies/fifteen-years-seven-emergencies-zero-data-loss-managed-postgresql-behind-a-major-public-library-catalog/): Running a mission-critical open-source stack on premises demands deep PostgreSQL expertise the library could not justify as a full-time internal team. When the engagement began in, the estate ran on bare-metal CentOS hosts fronted by pgpool, and over fifteen years every generation of that stack aged into a risk. The operating systems reached end of life. The pgpool connection pooler proved fragile, at one point taking the whole system down over a stale socket file. Long-running report queries sat idle in transaction for days, stalling replication and blocking cleanup. Disk and WAL-archive exhaustion recurred through the bare-metal era. And through it all, the database had to climb five major PostgreSQL versions without interrupting daily circulation for the public.
- [Careers](https://www.commandprompt.com/about/careers/): Command Prompt Inc. careers
- [Database and Systems Administrator](https://www.commandprompt.com/about/careers/database-and-systems-administrator/)
- [Database and Systems Administrator (No-US)](https://www.commandprompt.com/about/careers/database-and-systems-administrator-no-us/)
- [Project Management Assistant](https://www.commandprompt.com/about/careers/project-management-assistant/)
- [Sr. Inside Sales Representative](https://www.commandprompt.com/about/careers/sr-inside-sales-representative/)
- [Intrepidus Vita](https://www.commandprompt.com/about/intrepidusvita/)
- [Policies](https://www.commandprompt.com/about/policies/)
- [Code of Conduct](https://www.commandprompt.com/about/code-of-conduct/): code of conduct
- [PgConf](https://www.commandprompt.com/about/pgconf/)
- [Our Team](https://www.commandprompt.com/about/our-team/): Meet the team behind Command Prompt: the Postgres engineers who answer when you call. Real people, no call centers, supporting open source since 1997.
- [Success Stories: Case Studies](https://www.commandprompt.com/about/case-studies/): Discover how enterprise leaders solve complex PostgreSQL bottlenecks, cut cloud costs, and prevent critical outages. Explore our case studies.
- [9 Minutes to 30 Seconds: Modernizing Clinical Trial Analytics Across Two Decades of PostgreSQL Upgrades](https://www.commandprompt.com/about/case-studies/clinical-trials-portal-postgresql-upgrades-performance-tuning/): How a global clinical trials platform achieved an 18x analytics speedup and navigated two decades of PostgreSQL upgrades with zero downtime.
- [Support](https://www.commandprompt.com/support/): Enterprise PostgreSQL, Linux and Open Source support since 1997. 24x7x365 coverage, no per-instance pricing, under-1-hour response for SLA clients. Multiple options to fit your situation.
- [Support for EOL versions of Postgres](https://www.commandprompt.com/support/support-for-eol-versions-of-postgres/): Get 8 years of PostgreSQL support, FedRAMP compliant patching and first class support and consulting from the only Postgres company operating since 1997.
- [Postgres Support](https://www.commandprompt.com/support/postgres-support/): Postgres and Open Source Support from North America's oldest Postgres Company
- [PostgreSQL Feature Matrix](https://www.commandprompt.com/support/postgresql-feature-matrix/)
- [Emergency Support](https://www.commandprompt.com/support/emergency-support/): Emergency Support for your Postgres and Open Source stack
- [Terms of Use](https://www.commandprompt.com/terms-of-use/): terms of use
- [Privacy Policy](https://www.commandprompt.com/privacy-policy/)
- [U.S. States Privacy Notice](https://www.commandprompt.com/privacy-policy/us-states-privacy-notice/)
- [Products](https://www.commandprompt.com/products/): PostgreSQL products & open source tools: PgManage GUI admin, PgLTS extended support, pgBackRest backup, pglogical replication. Enterprise-ready solutions.
- [Audax Postgres](https://www.commandprompt.com/products/audax-postgres/): PostgreSQL Long Term Support
- [Audax Data Manager](https://www.commandprompt.com/products/audax-data-manager/): Discover Audax Data Manager (formerly PgManage), a modern open-source SQL editor and GUI database admin tool for Postgres, MySQL, SQLite, MariaDB.
- [PgColumnar](https://www.commandprompt.com/products/pgcolumnar/): pgColumnar is a column-oriented storage extension for PostgreSQL, implemented as a table access method. A table created USING pgcolumnar stores its data by column, with per-column compression, chunk-group skipping, and a vectorized aggregate path. It targets analytic workloads: large scans, aggregates, and column projections over append-mostly data. It also reads external Parquet and Apache Iceberg tables, from a local path or from object storage.
- [plX: The excellent transpiler for PostgreSQL](https://www.commandprompt.com/products/plx-the-excellent-transpiler-for-postgresql/): Write PostgreSQL functions in the language you already know. Ruby, PHP, JavaScript, TypeScript, Python, Go, COBOL, Oracle PL/SQL, or Transact-SQL, compiled to plpgsql at CREATE FUNCTION time.
- [Performance Audit](https://www.commandprompt.com/products/performance-audit/)
- [Audit & Tune](https://www.commandprompt.com/products/audit-tune/)
- [Cloud Migration Assessment](https://www.commandprompt.com/products/cloud-migration-assessment/): Moving PostgreSQL to AWS, GCP, or Azure? Command Prompt's cloud migration assessment covers the full stack — database, application, operations, and cost — so your migration plan reflects production reality.
- [Alternatives](https://www.commandprompt.com/alternatives/): Command Prompt is the alternative to your current PostgreSQL and Open Source vendor.
- [The EDB Alternative for Teams That Just Want Postgres Support](https://www.commandprompt.com/alternatives/edb/): Looking for an EDB alternative? Command Prompt has supported Postgres since 1997 — engineer-direct support with no per-core pricing, for community PostgreSQL and even EPAS.
- [The Percona Alternative for Postgres-First Teams](https://www.commandprompt.com/alternatives/percona/): Looking for a Percona alternative for PostgreSQL? Command Prompt is Postgres-dedicated — the same engineers on your systems since 1997, with written EOL support commitments.
- [Crunchy Data Alternative: Command Prompt](https://www.commandprompt.com/alternatives/crunchy-data-alternative-command-prompt/): Looking for a Crunchy Data alternative? Command Prompt supports Postgres wherever it runs: vanilla, cloud-managed, or containerized.

## Podcasts
- [More Than A Refresh](https://www.commandprompt.com/about/more-than-a-refresh/)

## Blog
- [pgColumnar 1.0-alpha4 released](https://www.commandprompt.com/blog/pgcolumnar-10-alpha4-released/): pgColumnar is a columnar storage table access method for PostgreSQL, written as a clean-room, MIT-licensed implementation. It reads and writes its own native format, PGCN v1, and supports chunk-group skipping from zone maps, bloom filters and star-schema join runtime filters, vectorized aggregation, projections, Z-order and Hilbert clustering, retention, online compaction and reclustering, parallel bulk ingest and export, Apache Arrow and Parquet import and export, Apache Iceberg, and object storage.
- [Part 3 Beyond Throughput: Efficiency Metrics for Cost-Aware PostgreSQL Tuning](https://www.commandprompt.com/blog/postgresql-efficiency-cost-optimization/): Optimize PostgreSQL for cost, not just speed. Explore how shared_buffers tuning can trade memory, disk I/O, and CPU to reduce infrastructure spend.
- [PostgreSQL 19: Sept 08 - Sept 16, 2026](https://www.commandprompt.com/blog/postgresql-19-sept-08-sept-16-2026/): PostgreSQL release watch, September 8 to 16, 2026. Six reverts on the version 19 branch named 74 commits, among them online data checksums and FOR PORTION OF.
- [Two features just left PostgreSQL 19.](https://www.commandprompt.com/blog/two-features-just-left-postgresql-19/): On September 7, SQL/PGQ property graphs were reverted. That removed 47 commits: the feature and every fix built on it since. On August 27, ALTER TABLE … MERGE/SPLIT PARTITION was reverted, removing 14 more. The reason is in the commit message: “multiple design issues which are too late to address in this release cycle.”
- [PostgreSQL 14 End of Life: What Are Your Options?](https://www.commandprompt.com/blog/postgresql-14-end-of-life-what-are-your-options/): PostgreSQL 14 reaches community end of life on November 12th, 2026. This post covers what EOL actually means and what your options are.
- [When huge_pages Help: Using PSI to Find Bottlenecks Before You Decide](https://www.commandprompt.com/blog/when-to-use-huge-pages-postgresql/): Benchmarking huge_pages on a 128 GB PostgreSQL 18 system shows throughput gains are modest — but page table overhead at 4KB pages can consume up to 20% of total RAM. Use PSI to find where your system is actually stalling before making the call. Part 2 of 3.
- [PgColumnar 1.0Alpha2 released](https://www.commandprompt.com/blog/pgcolumnar-10alpha2-released/): Release date: 2026-08-18Previous release: 1.0-alpha (2026-08-04)GithubChangelogpgColumnar is a columnar table access method for PostgreSQL. This is the second …
- [Parquet and Iceberg: An Overview](https://www.commandprompt.com/blog/parquet-and-iceberg-an-overview/): A pile of containers is not a shipment. A shipment is containers plus a manifest.Apache Iceberg is the manifest. It is not a file format, it is a table format:…
- [Beyond the 25% Rule: shared_buffers Behavior in Large-Memory PostgreSQL](https://www.commandprompt.com/blog/shared-buffers-large-memory-postgresql-part-1/): Tuning shared_buffers isn't just about peak throughput — it's about how much CPU and disk I/O a system consumes per unit of work. The 25% default can require up to 5x more disk I/O than very low or very high allocation. Part 1 of 3.
- [The Architect](https://www.commandprompt.com/blog/the-architect/): Examine your own work honestly. Which job are you doing? If everything you contributed last quarter could be described as construction, start climbing. Learn t…

## Education
- [PostgreSQL - How to List All Available Tables?](https://www.commandprompt.com/education/postgresql-how-to-list-all-available-tables/): Learn how to use psql to list tables in PostgreSQL This definitive guide covers the psql \dt command, psql \d command and variations for specific schemas. List tables using postgresql information_schema, and practical examples for beginners and power users alike.
- [PostgreSQL BETWEEN operator, usage and examples](https://www.commandprompt.com/education/how-to-use-between-operator-in-postgresql/): Master the SQL BETWEEN operator with step‑by‑step examples. Learn its syntax, usage in Postgres queries, and how to combine it with NOT keyboard for advanced range filtering.
- [How to Use ORDER BY Clause in PostgreSQL](https://www.commandprompt.com/education/how-to-use-order-by-clause-in-postgresql/): Learn to sort query results with PostgreSQL’s ORDER BY clause. This guide covers basic ASC/DESC sorting, multi‑column ordering and practical examples for SELECT statements.
- [How to Create, Update and Drop Tables in a PostgreSQL Docker Container](https://www.commandprompt.com/education/how-to-create-update-and-drop-tables-in-a-postgresql-docker-container/): To create, update and drop tables in PostgreSQL container, build and run PostgreSQL container and connect with Database Server. Then, perform these operations.
- [What’s the Difference Between HAVING Clause and WHERE Clause in PostgreSQL?](https://www.commandprompt.com/education/difference-between-having-where-clause-postgresql/): In PostgreSQL, the WHERE clause filters the data of each row and then groups the data while the HAVING clause filters the grouped data.
- [PostgreSQL Cheat Sheet - Basic Commands](https://www.commandprompt.com/education/postgresql-cheat-sheet-databases-schemas-tables-users/): This blog presented a cheat sheet that assists us in working with the Postgres databases, schemas, tables, and users/roles, efficiently.
- [PostgreSQL Pattern Matching: LIKE VS NOT LIKE VS ILIKE](https://www.commandprompt.com/education/postgresql-pattern-matching-like-vs-not-like-vs-ilike/): The LIKE operator matches the search expression with the specified pattern and retrieves true if the match is found. The NOT LIKE operator negates the results …
- [How to Connect PostgreSQL to Java Using JDBC](https://www.commandprompt.com/education/connect-postgresql-java-jdbc/): To connect PostgreSQL to Java via JDBC, integrate Postgres JDBC Driver with Java, and establish a new connection. After this, you can execute PostgreSQL Querie…
- [PostgreSQL LENGTH() Function With Practical Examples](https://www.commandprompt.com/education/postgresql-length-function-examples/): The Postgres LENGTH() function accepts a string as an argument and calculates the total number of characters in that particular string.
- [How to Show Databases in PostgreSQL](https://www.commandprompt.com/education/show-databases-postgresql/): In PostgreSQL, the “\l” command and “pg_databases” catalog are used to show the list of databases. Use the “\l+” command to show databases with more details.

## More
- [Full Markdown export of this site](https://www.commandprompt.com/llms-full.txt)
- [Sitemap](https://www.commandprompt.com/sitemap.xml)