[PostgreSQL] Créer plusieurs instances

Paramètres lorsque vous souhaitez créer des instances (clusters de bases de données) avec plusieurs utilisateurs dans PostgreSQL installés sur un serveur. La version est 10

Étant donné que l'utilisateur du système d'exploitation a une instance dans Posgre, créez d'abord l'utilisateur du système d'exploitation qui sera le propriétaire de l'instance. Aussi, définissons le groupe sur postgres. (Il aurait dû être créé lors de l'installation de Postgres)

Utilisateur créé

adduser dangouser1

### Créer un répertoire de base de données pour chaque utilisateur
mkdir /database/data_dango1

L'emplacement est arbitraire

Changer l'utilisateur et le groupe qui ont créé la propriété de l'annuaire en postgres

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

### Définir la variable d'environnement de l'utilisateur créé
su - dangousr1
$vi ./bashrc

Ajoutez ce qui suit

./bashrc


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

$PATH:/usr/local/pgsql/bin Est commun (car les commandes sont stockées dans le répertoire d'instance par défaut créé lors du déploiement) Vous voudrez peut-être passer par / etc / profile </ font>.
Refléter les paramètres

source bashrc

### Création d'instance
initdb --pgdata=/database/data_dango1

Une fois terminé, les données de configuration de l'instance seront créées dans / database / data_dango1. Comme ça

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

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

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

Dans ce cas, postgresql.conf </ font> est le fichier de paramètres, alors modifiez-le.

postgresql.conf


listen_addresses = '*'
port=Définir une valeur autre que 5432

Le port est initialement 5432, Il est utilisé pour l'instance par défaut, changeons-la donc.

Lancement de l'instance

pg_ctl -D /database/data_dango1 start

### Connectez-vous à la base de données par défaut (postgres) ``` psql --port=5433 -d postgres ``` Spécifiez le numéro de port défini dans postgresql.conf.

Vous pouvez créer plusieurs instances en préparant les utilisateurs, les répertoires et les instances séparément pour chaque port de cette manière.
Je vais bien.

Recommended Posts