Vous n'êtes pas identifié(e).
Bonjour,
je veux mettre sur un même serveur Windows plusieurs bases de données n'ayant aucun lien entre elles. Pour cela, je pensais installer plusieurs serveurs PostGreSQL, donc plusieurs services windows, un pointant sur le port 5432, l'autre sur le port 5433.
Est-ce la bonne méthode, sinon, comment mutualiser des bases de données tatalement indépendantes les unes des autres ( l'équivalent d'une instance ORACLE) sur un serveur windows dédié aux bases PostgreSQL de l'entreprise.
Merci pour votre aide.
Hors ligne
Le mieux est de placer toutes les bases sur un seul serveur. Cela permet de ne configurer qu'un seul cache des données. Sinon vous pouvez en effet utiliser plusieurs serveurs PostgreSQL sur une même machine, mais la gestion devient rapidement complexe pour un avantage qui reste à démontrer.
Guillaume.
Hors ligne
L'inconvénient d'avoir toutes les bases sur un même serveur est le suivant :
En cas de restauration physique avec application des logs archivés (base en mode WAL) , si toutes les bases sont sur une même serveur, et que l'on doit restaurer une base à un instant donné (c'est à dire repartir du dernier backup avec application des logs archivés), toutes les bases seront impactées, c'est à dire que toutes les bases reviendront à l'état correspondant à un instant t.
S'il y a par exemple un suppression malencontreuse sur une base donnée "BASE1" il y a une heure, on ne pourra pas ne restaurer que la base "BASE1" à l'état avant l'erreur, mais toutes les bases reviendront à l'état où elles étaient à l'heure spécifié lors de la restauration.
D'autre part, j'ai essayer d'installer 2 fois le moteurs PostGreSQL sur un même serveur, mais ça plante. Je suis partie d'une installation à partir d'un ficheir .msi, peut-être est-ce la raison...
Hors ligne
On est d'accord pour le PITR et le LogShipping, c'est clairement une de leurs limites.
Guillaume.
Hors ligne
As-tu déjà installé deux serveurs PostGreSQL sur un même serveur Windows ?
Hors ligne
Non, jamais. Sur Unix, souvent (mon portable est dans ce cas, pour que je puisse tester les différentes versions stables). Mais jamais sous Windows.
J'aurais tendance à penser qu'il ne faut pas ré-exécuter l'installeur, mais plutôt utiliser l'outil initdb pour créer un nouveau cluster et enfin ajouter manuellement un nouveau service.
Guillaume.
Hors ligne
Merci pour l'info, je vais essayé comme tu dis. J'ai essayé de réexécuré l'installeur, et effectivement, ça marche pô très très bien!
Hors ligne
En fait, je ne crois pas que l'installeur soit fait aussi pour cela. C'est une bonne question à poser à Dave et Magnus.
Guillaume.
Hors ligne
Pour info, j'ai fait comme tu m'as dit et ça marche bien. initdb + création du service Windows. J'ai donc créé deux serveurs pointant sur 2 ports différents.
ça semble bien fonctionner, mais paraitrait qu'avoir deux serveurs PostgreSQL sur une même machine, c'est assez instable...L'expérience me le dira...
Merci.
Hors ligne
Aucune idée pour un Windows, mais de toute façon, il n'est pas conseillé pour des raisons de performances d'utiliser PostgreSQL en production sur du Windows (dixit les développeurs du portage eux-même).
Maintenant, sur un Unix, j'affirme haut et fort que cela ne pose *aucun* soucis.
Guillaume.
Hors ligne
Lut
En fait, je ne crois pas que l'installeur soit fait aussi pour cela. C'est une bonne question à poser à Dave et Magnus.
Il est possible d'avoir plusieurs version de PostgreSQL sur un même serveur windows, le port d'écoute se définit dans l'installeur, donc pas de soucis de ce coté (a l'époque j'avais une 8.0, 8.1, 8.2 qui tournais en même temps sous un XP). par contre il faut bien avoir mémoriser le mot de passe de l'utilisateur postgres qui a été créer à la première install car on le reutilise pour les suivantes.
Ensuite le gros soucis est le nombre de connexion simultanée sous windows. par défaut sous windows il n'en accèpte pas plus de 128 (chaque utilisateur logué compte pour 1), chaque connexion à la base utilise 1 connexion, avec des programmes type php & co on arrive vite avec de multiples connexions en parallèles. sachant que par défaut pour chaque connexion windows consomme 3Mo d'office + xxMo pour le traitement. pour changer cette valeur il faut aller trafiquer la base des registres, sachant que je l'ai testé pour vous, et que la machine au bout de 200 connexions est devenue instable (surement un problème de gestion mémoire). ceux problème n'est pas spécifique a PostgreSQL mais a beaucoup de base de données.
Donc mes recommandations sous windows, c'est bon pour le développement,mais pour la prod c'est bien pour commencer, mais au premier soucis faut basculer sous Linux ou Unix (d'ailleurs tous mes clients windows sont au final passé sous Debian ou Solaris, la raison est que les bases était du 24/24 et que les maj windows était necessaire donc reboot necessaire, donc pas trop compatible).
Christophe Chauvet
Directeur Technique
Sylëam Info Services
Mon site
Hors ligne