DEV Community

Cover image for Database Cluster Layout
Maruf13
Maruf13

Posted on

3

Database Cluster Layout

In this post, we will discuss the Cluster Database Layout of PostgreSQL.

The layout of database cluster has been shown below. Main files and subdirectories in a part of the document have been listed here:
Database Cluster Layout
In here, demo is a database cluster. Under the Database Cluster it has 6 files which are:

  1. pg_hba.conf: Used for PosgreSQL's client authentication.
  2. pg_ident.conf: Used for controlling PostgreSQL's user name mapping
  3. PG_VERSION: Containing version number of PostgreSQL
  4. postgresql.conf: Used for settin configuration parameters
  5. postgresql.auto.conf: In ALTER SYSTEM, it is stored configuration parameters.
  6. postmaster.opts: Record the last command line options for the server.

In here, demo has 17 directories which are:

  1. base: Subdirectory containing per-database subdirectories. A database is a subdirectory under the base subdirectory; and the database directory names are identical to the respective OIDs. For example, when the OID of the database is 16384, its subdirectory name is 16384. base
  2. global: It contains cluster-wide tables, such as pg_database and pg_control.
  3. pg_commit_ts: Subdirectory containing transaction commit timestamp data. Version 9.5 or later.
  4. pg_dynshmem:Subdirectory containing files used by the dynamic shared memory subsystem. Version 9.4 or later.
  5. pg_logical:Subdirectory containing status data for logical decoding. Version 9.4 or later.
  6. pg_multixact:Subdirectory containing multitransaction status data (used for shared row locks)
  7. pg_notify:Subdirectory containing LISTEN/NOTIFY status data
  8. pg_replslot:Subdirectory containing replication slot data. Version 9.4 or later.
  9. pg_serial:Subdirectory containing information about committed serializable transactions (version 9.1 or later)
  10. pg_snapshots:Subdirectory containing exported snapshots (version 9.2 or later). The PostgreSQL's function pg_export_snapshot creates a snapshot information file in this subdirectory.
  11. pg_stat:Subdirectory containing permanent files for the statistics subsystem.
  12. pg_stat_tmp:Subdirectory containing temporary files for the statistics subsystem.
  13. pg_subtrans: Containing subtransaction status data
  14. pg_tblspc: Containing symbolic links to tablespaces
  15. pg_twophase: Containing state files for prepared transactions
  16. pg_wal: Containing WAL (Write Ahead Logging) segment files. It is renamed from pg_xlog in Version 10.
  17. pg_xact: Containing transaction commit state data. It is renamed from pg_clog in Version 10.

✔️ References:

  1. https://age.apache.org/
  2. https://github.com/apache/age
  3. https://www.interdb.jp/pg/index.html

Do your career a big favor. Join DEV. (The website you're on right now)

It takes one minute, it's free, and is worth it for your career.

Get started

Community matters

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Dive into an ocean of knowledge with this thought-provoking post, revered deeply within the supportive DEV Community. Developers of all levels are welcome to join and enhance our collective intelligence.

Saying a simple "thank you" can brighten someone's day. Share your gratitude in the comments below!

On DEV, sharing ideas eases our path and fortifies our community connections. Found this helpful? Sending a quick thanks to the author can be profoundly valued.

Okay