5 votes

Modifier et initialiser les répertoires de données et de journaux par défaut de Postgresql 9.3 sur Ubuntu 12.04 LTS

Sur Azure avec l'image Ubuntu 12.04 LTS, nous essayons de modifier les chemins par défaut des fichiers de données et de journaux de Postgres 9.3 et de les initialiser pour la première fois sur un disque secondaire. /mnt/pgdata . Nous sommes partis d'un point où Postgres 9.3 était une nouvelle installation via apt-get.

Nous avons arrêté postgres : sudo service postgresql stop .

Nous avons essayé d'exécuter pg_createcluster

Ce qui suit ne fait qu'afficher les pages d'aide/man. Probablement parce qu'il manque les paramètres de version et de nom.

pg_createcluster -d /mnt/pgdata/data -l /mnt/pgdata/log --start-conf auto

Le résultat suivant est "Error : cluster configuration already exists" (erreur : la configuration de la grappe existe déjà), alors que rien n'existe dans la grappe. /mnt/pgdata .

pg_createcluster 9.3 main -d /mnt/pgdata/data -l /mnt/pgdata/log --start-conf auto

Nous sommes assez novices en matière de Linux en général, alors soyez précis dans votre réponse.

Nous avons également les questions suivantes :

  1. Est-il possible d'utiliser le chemin de montage direct ou est-il préférable d'utiliser un lien symbolique ?
  2. Y a-t-il autre chose que nous devons faire ou modifier pour configurer Postgres 9.3 avec ces répertoires de données par défaut sur le port par défaut et pour qu'il démarre automatiquement avec le serveur ?
  3. D'autres recommandations ?

5voto

Daniel Vérité Points 2595

La raison de cette erreur : "Error: cluster configuration already exists" est que le nom main est déjà assigné au cluster qui est créé initialement.

Si vous n'avez pas de données dans ce fichier, vous pouvez le laisser tomber avant de créer votre propre fichier :

pg_dropcluster 9.3 main

Cela aura également l'effet souhaitable que votre nouveau cluster se verra attribuer le numéro de port 5432 au lieu de l'option par défaut 5433 .

Que vous utilisiez un chemin de montage direct ou un lien symbolique n'a pas vraiment d'importance, mais notez que les fichiers de configuration seront créés dans le répertoire /etc/postgresql/<version>/<clustername>/ en dehors du répertoire de données.

Selon sa page de manuel, pg_createcluster attend les options avant la version et le nom, donc la commande serait :

pg_createcluster -d /mnt/pgdata/data -l /mnt/pgdata/log --start-conf auto 9.3 main

Le fichier journal se trouve également dans /mnt/pgdata le rend inaccessible à logrotate pour qu'il se développe sans fin. Vous pouvez regarder /etc/logrotate.d/postgresql-common pour voir comment il est configuré pour traiter /var/log/postgresql/*.log

0voto

user712092 Points 351

Sur ma machine, cela a été résolu en faisant :

mkdir /var/run/postgresql
chown postgres:postgres /var/run/postgres
service postgresql restart

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X