PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 25/04/2017 18:53:00

asdean
Membre

Replication postgresql 9.4.4 problème de droit avec archive_command

Bonjour,

Je suis tout nouvel utilisateur de PostgreSQL version 9.4.4. Je souhaite mettre en marche la fonction REPLICATION entre 2 Pc sous Windows 7.
Voici le contenu de mon fichier " postgresql.conf" (je mets que les lignes actives)

listen_addresses = '*'
port = 25432
wal_level = hot_standby
archive_mode = on
archive_command = 'copy "%p" "\\\\192.168.1.161\\archives\\%f"'
max_wal_senders = 2
wal_keep_segments = 10

Sur mon poste distant le dossier "archives" est partagé avec tout les droits pour pouvoir écrire (sous exploreur la copie fonctionne).
Je redémarre mon service postgresql et voici mon retour de log:

2017-04-25 16:47:38 CEST LOG:  le système de bases de données a été arrêté à 2017-04-25 16:47:34 CEST
2017-04-25 16:47:38 CEST LOG:  MultiXact member wraparound protections are now enabled
2017-04-25 16:47:38 CEST LOG:  le système de bases de données est prêt pour accepter les connexions
2017-04-25 16:47:38 CEST LOG:  lancement du processus autovacuum
AccŠs refus‚.

2017-04-25 16:47:38 CEST LOG:  échec de la commande d'archivage avec un code de retour 1
2017-04-25 16:47:38 CEST DÉTAIL:  La commande d'archivage qui a échoué était : copy "pg_xlog\00000001000000000000001A" "\\192.168.1.161\archives\00000001000000000000001A"

Je vois bien qu'il y a un problème de droit mais je n'arrive pas à le contourner.
Est-ce que quelqu'un aurait déjà été confronté à ce problème?
Est-ce qu'il existe un moyen d'accorder les droits sans toucher au compte de connexion du service postgresql de Windows?
Merci d'avance pour votre aide.

Asdean.

Hors ligne

#2 25/04/2017 22:00:51

gleu
Administrateur

Re : Replication postgresql 9.4.4 problème de droit avec archive_command

Quand vous dites que la copie fonctionne sous Explorer, êtes-vous bien connecté en tant qu'utilisateur postgres ? parce que là, le problème est dû à un droit manquant.

Hors ligne

#3 26/04/2017 09:24:18

ruizsebastien
Membre

Re : Replication postgresql 9.4.4 problème de droit avec archive_command

Bonjour,

Pour les copies distantes pouvez utiliser xcopy au lieu de copy ?

Hors ligne

#4 26/04/2017 09:25:07

asdean
Membre

Re : Replication postgresql 9.4.4 problème de droit avec archive_command

Bonjour Guillaume et merci du retour,

Pour la copie sous Windows, je peux depuis le poste maitre écrire sur le poste esclave via explorer en mettant dans la barre d'adresse \\192.168.1.161\archives\ en copier/coller.
Lors de l'installation de Postgresql j'ai renseigné au mot de passe pour un utilisateur (postgres) que je retrouve en utilisant la console pgAdminIII mais je n'ai aucun utilisateur dans la gestion des utilisateur de Windows qui s'appel "postgres".
Le service "postgresql-x64-9.4" dans la gestion des services de Windows s'exécute en tant que "service réseau" donc à aucun endroit j'ai la possibilité de mettre l'utilisateur "postgres".
Je tourne un peu en rond.
Avez-vous assez d'éléments pour m'aider?
Cordialement,

Asdean

Hors ligne

#5 26/04/2017 10:10:20

asdean
Membre

Re : Replication postgresql 9.4.4 problème de droit avec archive_command

Bonjour Sébastien,

Je viens de tenter avec la commande Xcopy, voici la ligne utilisé:
archive_command = 'xcopy "%p" "\\\\192.168.1.161\\archives\\%f"'

Et le retour dans les logs:
2017-04-26 08:00:10 CEST DÉTAIL:  La commande d'archivage qui a échoué était : xcopy "pg_xlog\00000001000000000000001A" "\\192.168.1.161\archives\00000001000000000000001A"
Sp‚cification du lecteur non valide

Si je fais la commande sous DOS:
xcopy c:\ademis\Postgresql\9.4\data\pg_xlog\*.* \\192.168.1.161\archives\
Là ça fonctionne.
Ma commande ne doit pas être bonne dans le fichier "postgresql.conf"
Auriez-vous une idée?
Cordialement,

Asdean

Hors ligne

#6 26/04/2017 10:20:12

ruizsebastien
Membre

Re : Replication postgresql 9.4.4 problème de droit avec archive_command

dans la doc l'archive_command pour windows reseemble plutôt à ça :
archive_command = 'copy "%p" "C:\\server\\archivedir\\%f"'  # Windows

Il manque donc pour vous la lettre du lecteur.
Désolé mais je ne travaille jamais avec un postgresql sous windows...donc je tâtonne aussi.

Hors ligne

#7 26/04/2017 10:30:49

rjuju
Administrateur

Re : Replication postgresql 9.4.4 problème de droit avec archive_command

De mes lointains souvenirs sur windows, utiliser un chemin réseau créé automatiquement un lecteur réseau pour l'utilisateur en question (la commande « net use » doit les afficher).

Quel est l'utilisateur démarrant le service postgres ?  Peut-être y a-t-il des droits supplémentaires à donner pour cet utilisateur (que ce soit sur le partage, le répertoire, l'AD s'il y a ou l'utilisateur en question).

En ligne

#8 26/04/2017 11:08:09

asdean
Membre

Re : Replication postgresql 9.4.4 problème de droit avec archive_command

L'utilisateur qui démarre le service est : "service reseau"
Si je le change par administrateur par exemple j'ai: "echec de la connexion au service"

Hors ligne

#9 26/04/2017 11:57:20

jmarsac
Membre

Re : Replication postgresql 9.4.4 problème de droit avec archive_command

ruizsebastien a écrit :

dans la doc l'archive_command pour windows reseemble plutôt à ça :
archive_command = 'copy "%p" "C:\\server\\archivedir\\%f"'  # Windows

Il manque donc pour vous la lettre du lecteur.
Désolé mais je ne travaille jamais avec un postgresql sous windows...donc je tâtonne aussi.

S'agissant d'un chemin réseau Windows, la syntaxe utilisée par asdean est correcte. Le chemin indiqué dans la doc est un chemin local (qui pourrait pointer sur un lecteur réseau) d'où la lettre identifiant le lecteur en première position.
Il y a confusion entre les antislashes doublés dans une affectation et le double antislash introduisant un nom de machine ou adresse IP (ce qui dans une affectation donne 4 antislashes !)
Comme le dit rjuju c'est un problème de droits de l'utilisateur exécutant le service.
Vous pouvez les vérifier avec Propriétés : Onglet Sécurité puis Avancé et onglet Autorisations effectives

Hors ligne

#10 26/04/2017 15:39:37

asdean
Membre

Re : Replication postgresql 9.4.4 problème de droit avec archive_command

Je reviens donner des nouvelles, je n'ai pas réussi à utiliser la commande "xcopy" mais j'ai avancé sur la commande "copy".
Comme mentionné plus haut il faut effectivement lancer le service "postgresql" avec les droits adéquates, voici comment j'ai procédé:
- Créer un utilisateur dans la gestion des utilisateurs de Windows (postgresql par exemple avec un mot de passe)
- sur la machine distante j'ai aussi créé un compte "postgresql" avec le même mot de passe.
- Ouvrir ensuite la console GPEDIT.MSC et aller dans les "Configuration ordinateur" -"Paramètres Windows" - "Paramètre de sécurité" - "Stratégies Locales" - "Attribution des droit utilisateurs", dans l'option "ouvrir une session en tant que service" ajouter l'utilisateur "postgresql"
- Aller dans gestion de l'ordinateur puis dans service, ouvrir les propriétés du service "postgresql" et selectionner l'onglet "Connexion". Dans Ce compte choisisser "postgresql" et insérer le mot de passe puis redémarrer le service.
Mais fichiers du dossier pg_xlog du poste maitre ce sont bien copié sur le poste slave.
Merci pour votre aide ;-)

Hors ligne

Pied de page des forums