[LINUX] [PostgreSQL] Erstellen Sie mehrere Instanzen

Einstellungen, wenn Sie Instanzen (Datenbankcluster) mit mehreren Benutzern in PostgreSQL erstellen möchten, die auf einem Server installiert sind. Version ist 10

Da der Betriebssystembenutzer eine Instanz in Posgre hat, erstellen Sie zuerst den Betriebssystembenutzer, der der Instanzeigner sein wird. Setzen wir die Gruppe außerdem auf "postgres". (Es sollte erstellt worden sein, als Postgres installiert wurde)

Benutzer erstellt

adduser dangouser1

### Erstellen Sie für jeden Benutzer ein Datenbankverzeichnis
mkdir /database/data_dango1

Der Standort ist beliebig

Ändern Sie den Benutzer und die Gruppe, die den Besitz des Verzeichnisses erstellt haben, in postgres

chown dangouser1 /database/data_dango1
chgrp postgres /database/data_dango1
chmod 700 /database/data_dango1

### Legen Sie die Umgebungsvariable des erstellten Benutzers fest
su - dangousr1
$vi ./bashrc

Fügen Sie Folgendes hinzu

./bashrc


export PATH=$PATH:/usr/local/pgsql/bin
export PGDATA=/database/data_dango1
export PATH
export PGDATA

$PATH:/usr/local/pgsql/bin Ist häufig (da die Befehle im Standardinstanzverzeichnis gespeichert sind, das während der Bereitstellung erstellt wurde) Möglicherweise möchten Sie / etc / profile </ font> durchgehen.
Einstellungen widerspiegeln

source bashrc

### Instanzerstellung
initdb --pgdata=/database/data_dango1

Nach Abschluss werden die Instanzkonfigurationsdaten in / database / data_dango1 erstellt. So was

dangousr1@dangosvr:/database/data_dango1$ ls -lh

-rw-------1 dangousr1 postgres 3. Juli 30 23:50 PG_VERSION
drwxr-xr-x 2 dangousr1 postgres 12K 27. August 23:50 archive_log
drwx------ 6 dangousr1 postgres 4.0K 30. Juli 23:50 base
-rw-------1 dangousr1 postgres 63 August 28 00:00 current_logfiles
drwx------ 2 dangousr1 postgres 4.0K 25. August 00:31 global
drwx------ 2 dangousr1 postgres 4.0K 30. Juli 23:50 pg_commit_ts
drwx------ 2 dangousr1 postgres 4.0K 30. Juli 23:50 pg_dynshmem
-rw------- 1 dangousr1 postgres 4.5K 30. Juli 23:50 pg_hba.conf
-rw------- 1 dangousr1 postgres 1.6K 30. Juli 23:50 pg_ident.conf
drwx------ 2 dangousr1 postgres 4.0K 28. August 00:00 pg_log
drwx------ 4 dangousr1 postgres 4.0K 27. August 23:55 pg_logical
drwx------ 4 dangousr1 postgres 4.0K 30. Juli 23:50 pg_multixact
drwx------ 2 dangousr1 postgres 4.0K 25. August 00:30 pg_notify
drwx------ 2 dangousr1 postgres 4.0K 27. August 23:50 pg_replslot
drwx------ 2 dangousr1 postgres 4.0K 30. Juli 23:50 pg_serial
drwx------ 2 dangousr1 postgres 4.0K 30. Juli 23:50 pg_snapshots
drwx------ 2 dangousr1 postgres 4.0K 25. August 00:30 pg_stat
drwx------ 2 dangousr1 postgres 4.0K 28. August 11:51 pg_stat_tmp
drwx------ 2 dangousr1 postgres 4.0K 31. Juli 23:50 pg_subtrans
drwx------ 2 dangousr1 postgres 4.0K 30. Juli 23:50 pg_tblspc
drwx------ 2 dangousr1 postgres 4.0K 30. Juli 23:50 pg_twophase

drwxr-xr-x 3 dangousr1 postgres 4096 27. August 23:55 pg_wal
drwx------ 2 dangousr1 postgres 4.0K 30. Juli 23:50 pg_xact
-rw-------1 dangousr1 postgres 88 30. Juli 23:50 postgresql.auto.conf
-rw-------1 dangousr1 postgres 23K 30. Juli 23:50 postgresql.conf
-rw-------1 dangousr1 postgres 62 August 25 00:30 postmaster.opts
-rw-------1 dangousr1 postgres 80 August 25 00:30 postmaster.pid
dangousr1@dangosvr:/database/data_dango1$ 

In diesem Fall ist postgresql.conf </ font> die Einstellungsdatei. Bearbeiten Sie sie daher.

postgresql.conf


listen_addresses = '*'
port=Auf andere als 5432 einstellen

Der Port ist zunächst 5432, Es wird für die Standardinstanz verwendet, also ändern wir es.

Instanzstart

pg_ctl -D /database/data_dango1 start

### Stellen Sie eine Verbindung zur Standard-DB her (postgres) ``` psql --port=5433 -d postgres ``` Geben Sie die in postgresql.conf festgelegte Portnummer an.

Sie können mehrere Instanzen erstellen, indem Sie Benutzer, Verzeichnisse und Instanzen auf diese Weise für jeden Port separat vorbereiten.
Es geht mir gut.

Recommended Posts