Table of Contents
“PostgreSQL is an open-source, object-relational database management system (ORDBMS) available for all major platforms including Linux, UNIX, Windows and OS X. Please mention your exact version of Postgres when asking questions. Questions concerning administration or advanced features are best directed to dba.stackexchange.com.” Fair Use] Source: https://stackoverflow.com/questions/tagged/postgresql
PostgreSQL Resources / Links
- Dell DVD Store database test suite - http://linux.dell.com/dvdstore
Fair Use Source: From PostgreSQL Functions Playbook at https://app.pluralsight.com/library/courses/posgresql-functions-playbook/table-of-contents and https://gist.github.com/gbritton1/e88f96fad5936927b4d486c0d7b228f6
- Querying Data with SQL from PostgreSQL - https://app.pluralsight.com/paths/skills/querying-data-with-sql-from-postgresql
- PostgreSQL: Advanced SQL Queries, Pinal Dave, Aug 12, 2015, 1h 42m - https://app.pluralsight.com/library/courses/postgresql-advanced-sql-queries
- PostgreSQL Data Manipulation Playbook, Ami Levin, Apr 24, 2019, 2h 34m - https://app.pluralsight.com/library/courses/postgresql-data-manipulation-playbook
- PostgreSQL: Index Tuning and Performance Optimization, Pinal Dave, Jul 27, 2016, 3h 7m - https://app.pluralsight.com/library/courses/postgresql-index-tuning-performance-optimization
- Combining and Filtering Data with PostgreSQL 9, Jason Browning, Ph.D., Aug 12, 2019, 1h 57m - https://app.pluralsight.com/library/courses/combining-filtering-data-postgresql
- Querying Data from PostgreSQL, Jason Browning, Ph.D., Mar 05, 2019, 1h 28m - https://app.pluralsight.com/library/courses/querying-data-postgresql
- PostgreSQL: Advanced Server Programming, Pinal Dave, Mar 20, 2016, 2h 14m - https://app.pluralsight.com/library/courses/postgresql-advanced-server-programming
- Programming PostgreSQL, Rob Conery, Jul 28, 2015, 3h 25m - https://app.pluralsight.com/library/courses/programming-postgresql
- Capturing Logic with Custom Functions in PostgreSQL, Gerald Britton, Mar 19, 2020, 1h 54m - https://app.pluralsight.com/library/courses/capturing-logic-custom-functions-postgresql
- Patroni - Template for PostgreSQL HA with ZooKeeper or etcd.
Stolon - PostgreSQL HA based on Consul or etcd, with Kubernetes integration.
pglookout - Replication monitoring and failover daemon.
repmgr - Open-source tool suite to manage replication and failover in a cluster of PostgreSQL servers.
Slony-I - “Master to multiple slaves” replication system with cascading and failover.
PAF - PostgreSQL Automatic Failover: High-Availibility for Postgres, based on Pacemaker and Corosync.
SkyTools - Replication tools, including PgQ, a queuing system, and Londiste, a replication system a bit simpler to manage than Slony.
Backups of Postgre
Barman - Backup and Recovery Manager for PostgreSQL by 2ndQuadrant.
OmniPITR - Advanced WAL File Management Tools for PostgreSQL. pg_probackup – A fork of pg_arman, improved by @PostgresPro, supports incremental backups, backups from replica, multithreaded backup and restore, and anonymous backup without archive command. pgBackRest - Reliable PostgreSQL Backup & Restore. pg_back - pg_back is a simple backup script pghoard - Backup and restore tool for cloud object stores (AWS S3, Azure, Google Cloud, OpenStack Swift). wal-e - Simple Continuous Archiving for PostgreSQL to S3, Azure, or Swift by Heroku. wal-g - The successor of WAL-E rewritten in Go. Currently supports cloud object storage services by AWS (S3), Google Cloud (GCS), Azure, as well as OpenStack Swift, MinIO, and file system storages. Supports block-level incremental backups, offloading backup tasks to a standby server, provides parallelization and throttling options. In addition to Postgres, WAL-G can be used for MySQL and MongoDB databases. pitrery - pitrery is a set of Bash scripts to manage Point In Time Recovery (PITR) backups for PostgreSQL.
GUI for Postgre
Adminer - Full-featured database management tool written in PHP.
OmniDB - Open Source Collaborative Environment For Database Management
DataGrip - IDE with advanced tool sets and good cross-platform experience (Commercial Software).
Datazenit - Web-based PostgreSQL GUI (Commercial Software). DBeaver - Universal Database Manager with excellent support for PostgreSQL. dbglass - Cross-platform desktop client for PostgreSQL, built with Electron. Holistics - Online cross platform database management tool and SQL query reporting GUI with strong
PostgreSQL support (Commercial Software). JackDB - Web-based SQL query interface (Commercial Software). Metabase - Simple dashboards, charts and query tool for PostgreSQL. Numeracy - Fast SQL editor with charts and dashboards for PostgreSQL (Commercial Software). pgAdmin - PostgreSQL Administration and Management GUI. pgModeler - pgModeler is an open-source PostgreSQL Database Modeler. pgweb - Web-based PostgreSQL database browser written in Go. phpPgAdmin - The Premier Web Based Administration Tool for PostgreSQL.
PSequel - Clean and simple interface to perform common PostgreSQL tasks quickly (Commercial Software). SQL Tabs - Cross Platform Desktop Client for PostgreSQL written in JS. SQLPro for Postgres - Simple, powerful PostgreSQL manager for macOS (Commercial Software). temBoard - Web-based PostgreSQL GUI and monitoring. TablePlus - Native App which let you edit database and structure. High-end security ensured (Commercial Software). TeamSQL - Cross-platform SQL Client: Simple, Effortless, Extensible. Valentina Studio - Cross-platform database administration tool (Free/Commercial) PostgresCompare - Cross-platform database comparison and deployment tool (Commercial Software).
Distributions of Postgre
Postgres.app - The Easiest Way to Get Started with PostgreSQL on macOS. PostgreSql.Binaries.Lite - Minimum set of Windows binaries of the PostgreSQL database. Also made available through NuGet.
pgcli - Postgres CLI with autocompletion and syntax highlighting
psql - The built-in PostgreSQL CLI client
psql2csv - Run a query in psql and output the result as CSV
nancy - The Nancy CLI is a unified way to manage automated database experiments either in clouds or on-premise
Postgres-XL - Scalable Open Source PostgreSQL-based Database Cluster. AgensGraph - Powerful graph database based on the PostgreSQL. Greenplum Database - Open source fork of PostgreSQL for large data volumes.
check_pgactivity - check_pgactivity is designed to monitor PostgreSQL clusters from Nagios. It offers many options to measure and monitor useful performance metrics. Check_postgres - Nagios check_postgres plugin for checking status of PostgreSQL databases. Instrumental - Real-time performance monitoring, including pre-made graphs for ease of setup (Commercial Software) libzbxpgsql - Comprehensive PostgreSQL monitoring module for Zabbix. Pome - Pome stands for PostgreSQL Metrics. Pome is a PostgreSQL Metrics Dashboard to keep track of the health of your database. pg_view - Open-source command-line tool that shows global system stats, per-partition information, memory stats and other information. pgwatch2 - Flexible and easy to get started PostgreSQL metrics monitor focusing on Grafana dashboards. pgbench - Run a benchmark test on PostgreSQL. opm.io - Open PostgreSQL Monitoring is a free software suite designed to help you manage your PostgreSQL servers. It can gather stats, display dashboards and send warnings when something goes wrong. Extensions Citus - Scalable PostgreSQL cluster for real-time workloads. cstore_fdw - Columnar store for analytics with PostgreSQL. cyanaudit - Cyan Audit provides in-database logging of all DML activity on a column-by-column basis. pglogical - Extension that provides logical streaming replication. pg_partman - Partition management extension for PostgreSQL. pg_paxos - Basic implementation of Paxos and Paxos-based table replication for a cluster of PostgreSQL nodes. pg_shard - Extension to scale out real-time reads and writes. PGStrom - Extension to offload CPU intensive workloads to GPU. pgxn PostgreSQL Extension Network - central distribution point for many open-source PostgreSQL extensions PipelineDB - A PostgreSQL extension that runs SQL queries continuously on streams, incrementally storing results in tables. plpgsql_check - Extension that allows to check plpgsql source code. PostGIS - Spatial and Geographic objects for PostgreSQL. PG_Themis - Postgres binding as extension for crypto library Themis, providing various security services on PgSQL's side. zomboDB - Extension that enables efficient full-text searching via the use of indexes backed by Elasticsearch. pgMemento - Provides an audit trail for your data inside a PostgreSQL database using triggers and server-side functions written in PL/pgSQL. TimescaleDB - Open-source time-series database fully compatible with Postgres, distributed as extension pgTAP - Database testing framework for Postgres HypoPG - HypoPG provides hypothetical/virtual indexes feature. pgRouting - pgRouting extends the PostGIS/PostgreSQL geospatial database to provide geospatial routing and other network analysis functionality. Optimization PgHero - PostgreSQL insights made easy. pgMustard - A modern user interface for EXPLAIN, that also provides performance tips (Commercial Software). pgtune - PostgreSQL configuration wizard. pgtune - Online version of PostgreSQL configuration wizard. pgconfig.org - PostgreSQL Online Configuration Tool (also based on pgtune). PoWA - PostgreSQL Workload Analyzer gathers performance stats and provides real-time charts and graphs to help monitor and tune your PostgreSQL servers. pg_web_stats - Web UI to view pg_stat_statements. Utilities apgdiff - Compares two database dump files and creates output with DDL statements that can be used to update old database schema to new one. ERAlchemy - ERAlchemy generates Entity Relation (ER) diagram from databases. Hasura - Instant realtime GraphQL APIs on any Postgres application, existing or new. ldap2pg - Synchronize roles and privileges from YML and LDAP. mysql-postgresql-converter - Lanyrd's MySQL to PostgreSQL conversion script. ora2pg - Perl module to export an Oracle database schema to a PostgreSQL compatible schema. pg_activity - top like application for PostgreSQL server activity monitoring. pg-formatter - A PostgreSQL SQL syntax beautifier (Node.js). pganalyze - PostgreSQL Performance Monitoring (Commercial Software). pgbadger - Fast PostgreSQL Log Analyzer. PgBouncer - Lightweight connection pooler for PostgreSQL. pgCenter - Provides convenient interface to various statistics, management task, reloading services, viewing log files and canceling or terminating database backends. pg_chameleon - Real time replica from MySQL to PostgreSQL with optional type override migration and migration capabilities. pgclimb - Export data from PostgreSQL into different data formats. pgfutter - Import CSV and JSON into PostgreSQL the easy way. PGInsight - CLI tool to easily dig deep inside your PostgreSQL database. pg_insights - Convenient SQL for monitoring Postgres database health. pgloader - Loads data into PostgreSQL using the COPY streaming protocol, and does so with separate threads for reading and writing data. pgpool-II - Middleware that provides connection pooling, replication, load balancing and limiting exceeding connections. pgsync - Tool to sync PostgreSQL data to your local machine. PGXN client - Command line tool to interact with the PostgreSQL Extension Network postgresql-metrics - Tool that extracts and provides metrics for your PostgreSQL database. PostgREST - Serves a fully RESTful API from any existing PostgreSQL database. pREST - Serve a RESTful API from any PostgreSQL database (Golang) PostGraphile - Instant GraphQL API or GraphQL schema for your PostgreSQL database yoke - PostgreSQL high-availability cluster with auto-failover and automated cluster recovery. pglistend - A lightweight PostgresSQL LISTEN/NOTIFY daemon built on top of node-postgres. ZSON - PostgreSQL extension for transparent JSONB compression pg_bulkload - It's a high speed data loading utility for PostgreSQL. pg_migrate - Manage PostgreSQL codebases and make VCS simple. sqitch - Tool for managing versioned schema deployment pgmigrate - CLI tool to evolve schema migrations, developed by Yandex. pgcmp - Tool to compare database schemas, with capability to accept some persistent differences graphql-engine - Get Instant Realtime GraphQL APIs over PostgreSQL. sqlcheck - Automatically detects common SQL anti-patterns. Such anti-patterns often slow down queries. Addressing them will, therefore, help accelerate queries. postgres-checkup - a new-generation diagnostics tool that allows users to collect deep analysis of the health of a Postgres database. Language bindings Common Lisp: Postmodern Clojure: clj-postgresql Elixir: postgrex Go: pgx Haskell: postgresql-simple Java: PostgreSQL JDBC Driver .Net/.Net Core: Npgsql Node: node-postgres, pg-promise, pogi, slonik Perl: DBD-Pg PHP: Pomm, pecl/pq Python: psycopg2 Ruby: pg Rust: rust-postgresql Lua: luapgsql PaaS (PostgreSQL as a Service) Aiven PostgreSQL - PostgreSQL as a service in AWS, Azure, DigitalOcean, Google Cloud and UpCloud; plans range from $19/month single node instances to large highly-available setups, free trial for two weeks. Amazon RDS for PostgreSQL - Amazon Relational Database Service (RDS) for PostgreSQL Azure Database for PostgreSQL - Azure Database for PostgreSQL provides fully managed, enterprise-ready community PostgreSQL database as a service. It provides builtin HA, elastic scaling and native integration with Azure ecosystem. Citus Cloud - Production grade scaled out PostgreSQL as a service enabling real-time workloads and sharding your multi-tenant apps. Compose - PostgreSQL as a service in AWS, Google Cloud Platform, and IBM Cloud; plans range from $17.5/month for 1GB storage and scale at $12/GB beyond that. Free trial for 30 days available. Database Labs - Get a production-ready cloud PostgreSQL server in minutes, from $20 a month Backups, monitoring, patches, and 24/7 tech support all included. DigitalOcean Managed Databases - Fully managed PostgreSQL databases. No free plan. Starting at $15/mo. Daily backups with point-in-time recovery. Standby nodes with auto-failover. ElephantSQL - Offers databases ranging from shared servers for smaller projects and proof of concepts, up to enterprise grade multi server setups. Has free plan for up to 5 DBs, 20 MB each. Google Cloud SQL for PostgreSQL - Fully-managed database service that makes it easy to set up, maintain, manage, and administer your PostgreSQL relational databases on Google Cloud Platform. (Beta) Heroku Postgres - Plans from free to huge, operated by PostgreSQL experts. Does not require running your app on Heroku. Free plan includes 10,000 rows, 20 connections, up to two backups, and has PostGIS support. Docker images citusdata/citus - Citus official images with citus extensions. Based on the official Postgres container. mdillon/postgis - PostGIS 2.3 on Postgres 9. Based on the official Postgres container. postgres - Official postgres container (from Docker) Resources Tutorials Backup and recover a PostgreSQL DB using wal-e - Tutorial about setting up continuous archiving in PostgreSQL using wal-e. PG Casts - Free weekly PostgreSQL screencasts by Hashrocket. Postgres Guide - Guide designed as an aid for beginners and experienced users to find specific tips and explore tools available within PostgreSQL. PostgreSQL Exercises - Site to make it easy to learn PostgreSQL by doing exercises. tutorialspoint PostgreSQL tutorial - Very extensive collection of tutorials on PostgreSQL postgresDBSamples - A collection of sample postgres schemas PostgreSQL Primer for Busy People - A collection of the most common commands used in PostgreSQL pg-utils - Useful DBA tools by Data Egret Blogs Planet PostgreSQL - Blog aggregation service for PostgreSQL. Andrew Dunstan's PostgreSQL and Technical blog Bruce Momjian's PostgreSQL blog Craig Kerstiens PostgreSQL posts - Set of posts on PostgreSQL cool features, tips and tricks. Database Soup - Josh Berkus' blog. Michael Paquier's blog Robert Haas' blog select * from depesz; - Hubert Lubaczewski's blog. Articles What PostgreSQL has over other open source SQL databases: Part I Debugging PostgreSQL performance, the hard way Why use Postgres? Superfast CSV imports using PostgreSQL's COPY command Documentation Wiki - user documentation, how-tos, and tips 'n' tricks Newsletters Postgres Weekly - Weekly newsletter that contains articles, news, and repos relevant to PostgreSQL. Videos Citus Data Youtube channel - Citus related videos EnterpriseDB Youtube channel - EnterpriseDB related videos PGConf US Youtube channel - Conference videos Scaling Postgres - Postgres video blog series by Creston Jamison
- Snippet from Wikipedia: PostgreSQL
PostgreSQL (, POHST-gres kyoo el), also known as Postgres, is a free and open-source relational database management system (RDBMS) emphasizing extensibility and SQL compliance. It was originally named POSTGRES, referring to its origins as a successor to the Ingres database developed at the University of California, Berkeley. In 1996, the project was renamed to PostgreSQL to reflect its support for SQL. After a review in 2007, the development team decided to keep the name PostgreSQL and the alias Postgres.
PostgreSQL features transactions with atomicity, consistency, isolation, durability (ACID) properties, automatically updatable views, materialized views, triggers, foreign keys, and stored procedures. It is designed to handle a range of workloads, from single machines to data warehouses or web services with many concurrent users. It was the default database for macOS Server and is also available for Linux, FreeBSD, OpenBSD, and Windows.