
How to do it...
The following are the system default data directory locations:
- Debian or Ubuntu systems: /var/lib/postgresql/MAJOR_RELEASE/main
- Red Hat RHEL, CentOS, and Fedora: /var/lib/pgsql/data/
- Windows: C:\Program Files\PostgreSQL\MAJOR_RELEASE\data
MAJOR_RELEASE is composed of just one number (for release 10 and above) or by two (for releases up to 9.6).
On Debian or Ubuntu systems, the configuration files are located in /etc/postgresql/MAJOR_RELEASE/main/, where main is just the name of a database server. Other names are also possible. For the sake of simplicity, we assume that you only have a single installation, although the point of including the release number and database server name as components of the directory path is to allow multiple database servers to coexist on the same host.
- Major release number
- Port
- Status (for example, online and down)
- Data directory
- Log file
The pg_lsclusters utility is part of the postgresql-common Debian/Ubuntu package, which provides a structure under which multiple versions of PostgreSQL can be installed, and multiple clusters can be maintained, at one time.
In the packages distributed with Red Hat RHEL, CentOS, and Fedora, the default data directory location also contains the configuration files (*.conf) by default. However, note that the packages distributed by the PostgreSQL community use a different default location /var/lib/pgsql/MAJOR_RELEASE/data/.
Again, that is just the default location. You can create additional data directories using the initdb utility.
The initdb utility populates the given data directory with the initial content. The directory will be created for convenience if it is missing, but for safety, the utility will stop if the data directory is not empty. The initdb utility will read the data directory name from the PGDATA environment variable unless the -d command-line option is used.