GNU/Linux >> Tutoriales Linux >  >> Linux

Postgresql 9.3 en Centos 7 con PGDATA personalizado

Necesitas crear un postgresql.service personalizado archivo en /etc/systemd/system/ , que anula el PGDATA predeterminado Variable ambiental. Su archivo de servicio personalizado puede .include el archivo de servicio postgresql predeterminado, por lo que solo necesita agregar lo que desea cambiar. De esa manera, ¿las actualizaciones aún pueden modificar/mejorar? cosas en el archivo de servicio predeterminado, mientras que su cambio se conserva.

Así es como lo acabo de hacer en Centos 7:

cat <<END >/etc/systemd/system/postgresql.service
.include /lib/systemd/system/postgresql.service
[Service]
Environment=PGDATA=/mnt/postgres/data ## <== SET THIS TO YOUR WANTED $PGDATA
END

systemctl daemon-reload

systemctl restart postgresql.service

Verificar:

ps -ax | grep [p]ostgres

Actualización:

En lugar de crear manualmente el archivo y agregar la línea .include, también puede usar la forma integrada de systemd:

systemctl edit postgresql.service

Esto abrirá su editor predeterminado y guardará sus cambios en /etc/systemd/system/postgresql.service.d/override.conf


Creo que la "manera más CentOS 7" de hacerlo es copiar el archivo de servicio:

sudo cp /usr/lib/systemd/system/postgresql-9.6.service /etc/systemd/system/postgresql-9.6.service

Luego edite el archivo /etc/systemd/system/postgresql-9.6.service :

# Location of database directory
Environment=PGDATA=/mnt/volume/var/lib/pgsql/9.6/data/

Luego inícielo sudo systemctl start postgresql-9.6 y verificar:

# sudo ps -ax | grep postmaster
32100 ?        Ss     0:00 /usr/pgsql-9.6/bin/postmaster -D /mnt/volume/var/lib/pgsql/9.6/data/

prueba esto:

 ## Login with postgres user
 su - postgres
 export PGDATA=/your_path/data
 pg_ctl -D $PGDATA start &

Parece que el problema real fue configurar las variables de entorno, que conseguí trabajar en el siguiente hilo:Variables de entorno de Centos 7 para el servicio de Postgres El problema es la variable PGDATA configurada dentro del servicio personalizado /etc/systemd/system/postgresql-9.3. ser creado a partir del contenido de /usr/lib/systemd/system/postgresql-9.3.service que utiliza la var. PGDATA predeterminada.


Linux
  1. Comenzando con ls

  2. Firewalld no se inicia en CentOS 8 con DBusException

  3. ¿Reemplazar nueva línea con Nul?

  4. Cómo trabajar con el administrador de archivos del panel web de CentOS

  5. Permisos de archivo en Linux con ejemplo

Comando WC de Linux con ejemplos

Firmas digitales con GnuPG

Administrar cgroups con systemd

Primeros pasos con systemctl

Cómo instalar PostgreSQL con pgAdmin en CentOS 8

Centos 7:Primeros pasos