Vous n'êtes pas identifié(e).
Pages : 1
Bonjour à tous ...
Les ordres pg_ctl stop/start servent à cloturer et starter Postgrès => OK
Comment faire pour juste stopper et starter une seule database ?
Merci pour vos réponses...
Hors ligne
c'est pas possible à mon avis
mais quel est le but ?
Hors ligne
On ne peut pas. Une base n'a pas de processus dédiés. Tout est mutualisé au niveau du cluster Postgres.
Si par 'éteindre', vous voulez juste dire interdire des nouvelles connexions, vous pouvez essayer avec ALTER DATABASE xxx CONNECTION LIMIT 0;
Marc.
Hors ligne
Merci pour vos réponses...
Mon but étant, comme Oracle, de pouvoir arrêter une database TOTO sans arrêter les autres databases du serveur !
Ce n'est pas possible ?
Hors ligne
On pourrait le reformuler autrement: avec Oracle, vous n'avez qu'une base par instance. Avec PostgreSQL vous avez plusieurs bases par instance. Évidemment, si vous éteignez l'instance, toutes les bases sont éteintes. Mais comme pour Oracle, rien ne vous interdit d'avoir plusieurs instances sur votre machine.
Marc.
Hors ligne
Une question : En fait, j'ai du mal à comprendre vraiment ce que vous entendez par instance Postgrès (Par rapport aux instances oracle que je connais bien !) ..
Chez nous, nous avons une databaseA sur un serveur Linux... Quand j'éteind mon postgrès (pg_ctl close !) ma databaseA n'est plus active => OK
Comment créer une databaseB sur une autre instanceB ? Faut-il réinstaller un Postgrès sur une autre machine virtuelle de mon serveur ?
Comment faire pour que 'pg-ctl close' n'éteigne que ma DatabaseA et pas ma DatabaseB ?
Est-ce possible ?
Autre question : Même question quand deux versions de Postgrès tournent sur un même serveur...
Merci pour vos réponses...
Hors ligne
faut juste installer plusieurs postgres sur des ports différents.
Hors ligne
pg-ctl close n'existe pas.
Je présume que vous voulez dire pg_ctl stop. Si c'est bien le cas, on peut passer à pg_ctl une option -D lui indiquant où se trouve le 'cluster', c'est à dire le groupe de bases sur lequel travailler. Quand je parle d'instance, je parle de 'jeu de processus' liés à un cluster de bases de données. On peut donc très bien imaginer avoir 2 répertoires différents contenant un cluster de bases, sur un serveur. On les démarrera individuellement par
pg_ctl -D /mon/rep1/ start
pg_ctl -D /mon/rep2/ start
On pourra aussi les arrêter individuellement avec
pg_ctl -D /mon/rep1/ stop
pg_ctl -D /mon/rep2/ stop
Quand je parle d'instance, c'est donc de la même chose que je parle, que l'instance Oracle: le jeu de processus associé aux fichiers de données. La différence, c'est que sous PostgreSQL, la même instance PEUT piloter plusieurs bases, si vous avez plusieurs bases dans le même 'cluster' (jeu de fichiers). Vous pouvez très bien choisir de faire 1 instance=1 base, si vous n'avez qu'une base par cluster.
Évidemment, chaque cluster voulant utiliser un port tcp, il faudra en définir un différent pour chaque, dans son fichier postgresql.conf.
Si vous voulez que les 2 clusters soient dans deux versions différentes, il vous faut les deux versions de 'moteur' (les exécutables, librairies…) installées simultanément sur votre machine. Et que pour chaque pg_ctl, que vous précisiez bien celui de la bonne version (par exemple /usr/local/pgsql/8.4/bin/pg_ctl -D /mon/rep/base8.4 start). C'est donc faisable «facilement» à partir des sources, ou si les packages fournis pour votre système d'exploitation le permettent (on ne peut pas avec les packages redhat par exemple, ils ne permettent qu'une version à la fois sur le serveur).
Marc.
Hors ligne
C'est bien plus clair comme ça... merci pour vos explications !
PS Je parlais bien sûr du du pg_ctl stop (à la place pg_ctl close) !
Hors ligne
Pages : 1