<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
		<id>http://wiki.diouxx.be/index.php?action=history&amp;feed=atom&amp;title=PostgreSQL</id>
		<title>PostgreSQL - Historique des versions</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.diouxx.be/index.php?action=history&amp;feed=atom&amp;title=PostgreSQL"/>
		<link rel="alternate" type="text/html" href="http://wiki.diouxx.be/index.php?title=PostgreSQL&amp;action=history"/>
		<updated>2026-04-16T17:37:48Z</updated>
		<subtitle>Historique des versions pour cette page sur le wiki</subtitle>
		<generator>MediaWiki 1.30.2</generator>

	<entry>
		<id>http://wiki.diouxx.be/index.php?title=PostgreSQL&amp;diff=80&amp;oldid=prev</id>
		<title>Ddevleeschauwer le 14 novembre 2013 à 19:40</title>
		<link rel="alternate" type="text/html" href="http://wiki.diouxx.be/index.php?title=PostgreSQL&amp;diff=80&amp;oldid=prev"/>
				<updated>2013-11-14T19:40:52Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;fr&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Version précédente&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Version du 14 novembre 2013 à 19:40&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l569&quot; &gt;Ligne 569 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 569 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;On essaie égalmement à partir des 2 PgPool. Si l'erreur suivante est affiché&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;On essaie égalmement à partir des 2 PgPool. Si l'erreur suivante est affiché&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;psql postgres -H &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;192&lt;/del&gt;.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;168&lt;/del&gt;.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;168&lt;/del&gt;.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;15 &lt;/del&gt;-p 5433 -U postgres&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;psql postgres -H &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;10&lt;/ins&gt;.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;1&lt;/ins&gt;.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;1&lt;/ins&gt;.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;1 &lt;/ins&gt;-p 5433 -U postgres&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;psql: warning: extra command-line argument &amp;quot;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;192&lt;/del&gt;.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;168&lt;/del&gt;.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;168&lt;/del&gt;.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;15&lt;/del&gt;&amp;quot; ignored&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;psql: warning: extra command-line argument &amp;quot;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;10&lt;/ins&gt;.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;1&lt;/ins&gt;.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;1&lt;/ins&gt;.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;1&lt;/ins&gt;&amp;quot; ignored&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;psql (9.1.6, server 9.2.2)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;psql (9.1.6, server 9.2.2)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;WARNING: psql version 9.1, server version 9.2.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;WARNING: psql version 9.1, server version 9.2.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wikidb:diff:version:1.11a:oldid:59:newid:80 --&gt;
&lt;/table&gt;</summary>
		<author><name>Ddevleeschauwer</name></author>	</entry>

	<entry>
		<id>http://wiki.diouxx.be/index.php?title=PostgreSQL&amp;diff=59&amp;oldid=prev</id>
		<title>Ddevleeschauwer le 20 avril 2013 à 18:17</title>
		<link rel="alternate" type="text/html" href="http://wiki.diouxx.be/index.php?title=PostgreSQL&amp;diff=59&amp;oldid=prev"/>
				<updated>2013-04-20T18:17:53Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;fr&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Version précédente&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Version du 20 avril 2013 à 18:17&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l587&quot; &gt;Ligne 587 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 587 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[http://www.postgresql.org/docs/8.1/static/backup.html http://www.postgresql.org/docs/8.1/static/backup.html]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[http://www.postgresql.org/docs/8.1/static/backup.html http://www.postgresql.org/docs/8.1/static/backup.html]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Catégorie:&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Système&lt;/del&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Catégorie:&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Database&lt;/ins&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wikidb:diff:version:1.11a:oldid:36:newid:59 --&gt;
&lt;/table&gt;</summary>
		<author><name>Ddevleeschauwer</name></author>	</entry>

	<entry>
		<id>http://wiki.diouxx.be/index.php?title=PostgreSQL&amp;diff=36&amp;oldid=prev</id>
		<title>Ddevleeschauwer : Page créée avec « &lt;br&gt;  &lt;div style=&quot;-moz-border-radius:10px; color: #204A87; font-style:normal; font-size: 97%; font-weight: bold; border:1px solid #AAAAAA; background:#E7F4FC; margin: 0 0 ... »</title>
		<link rel="alternate" type="text/html" href="http://wiki.diouxx.be/index.php?title=PostgreSQL&amp;diff=36&amp;oldid=prev"/>
				<updated>2013-04-08T13:04:28Z</updated>
		
		<summary type="html">&lt;p&gt;Page créée avec « &amp;lt;br&amp;gt;  &amp;lt;div style=&amp;quot;-moz-border-radius:10px; color: #204A87; font-style:normal; font-size: 97%; font-weight: bold; border:1px solid #AAAAAA; background:#E7F4FC; margin: 0 0 ... »&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;div style=&amp;quot;-moz-border-radius:10px; color: #204A87; font-style:normal; font-size: 97%; font-weight: bold; border:1px solid #AAAAAA; background:#E7F4FC; margin: 0 0 1em 1em; padding:.5em; text-align: justify ;&amp;quot;&amp;gt;Cette page va vous permettre de mettre en place une base de données PostgreSQL.&amp;lt;/div&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== &amp;lt;br&amp;gt;Récupération des sources  ==&lt;br /&gt;
&lt;br /&gt;
Pour récupérer les sources, utiliser la commande wget (remplacer les numéros de version par celle que vous désirez) &lt;br /&gt;
{{Console | wget http://ftp.postgresql.org/pub/source/v9.1.6/postgresql-9.1.6.tar.gz}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Extraction des sources  ==&lt;br /&gt;
&lt;br /&gt;
L'archive étant de type gz, l'extraction se fait avec un tar -xvf classique&amp;lt;br&amp;gt; &lt;br /&gt;
{{Console | tar -xvf postgresql-9.1.6.tar.gz &amp;amp;&amp;amp; cd postgresql-9.1.6 &amp;amp;&amp;amp; mkdir /opt/postgresql }}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Compilation de PostgreSQL  ==&lt;br /&gt;
&lt;br /&gt;
=== Configuration  ===&lt;br /&gt;
&lt;br /&gt;
La configuration fait appel au script configure situé à la racine du code source. Il est possible de passer des paramètres au script configure pour activer/désactiver certains fonctionnalités &lt;br /&gt;
&lt;br /&gt;
Pour notre cas, il faut passer au script configure les options suivantes: &lt;br /&gt;
&lt;br /&gt;
{{ Console root | 1=./configure --prefix=/opt/postgresql/ --with-ldap --with-openssl --without-readline}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
*--prefix: L'emplacement des exécutables &lt;br /&gt;
*--with-ldap: Ajouter le support de l'authentification LDAP &lt;br /&gt;
*--with-openssl: Pour le support des connections cryptées &lt;br /&gt;
*--without-readline: Car nous n'utilisons pas les bibliothèques readline&lt;br /&gt;
&lt;br /&gt;
La commande ci-dessus créera une sous-arborescence avec les répertoires suivants: &lt;br /&gt;
&lt;br /&gt;
*bin: Pour stocker les exécutables; &lt;br /&gt;
*include: Pour les en-têtes nécessaires aux développements autour de PostgreSQL &lt;br /&gt;
*lib: Pour les bibliothèques partagées de PostgreSQL &lt;br /&gt;
*share: Où l'on retrouve entre autres des exemples de fichiers de configuration&lt;br /&gt;
&lt;br /&gt;
{{Avertissement | Il faut au préalable installer les librairies SSL et LDAP :  {{File | libssl-dev }} et {{File | libldap-dev}} }}&lt;br /&gt;
&lt;br /&gt;
=== Compilation  ===&lt;br /&gt;
&lt;br /&gt;
Une fois le script configure déroulé sans erreur, il faut lancer la compilation de PostgreSQL. Cela s'effectue simplement avec la commande make suivie de la commande make install pour l'installation &lt;br /&gt;
{{Console root | make&amp;lt;br&amp;gt;[root@ordi ~]# make install}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{Note | Lorsque l'installation est terminé, nous pouvons déplacer les sources de PostgreSQL dans le dossier {{File | /usr/local/src}}}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
=== Utilisateur Postgres ===&lt;br /&gt;
&lt;br /&gt;
Pour des raisons de sécurité, il est préférable de créer un utilisateur spécifique pour administrer PostgreSQL :&lt;br /&gt;
&lt;br /&gt;
{{Console root | addgroup postgres&amp;lt;br&amp;gt;[root@ordi ~]# adduser postgres --ingroup postgres }}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
=== Ajout des commandes Postgres ===&lt;br /&gt;
Editer le fichier {{ File | .bashrc }} de root et de postgres et rajouter ceci à la fin :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export PATH=$PATH:/opt/postgresql/bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Initialisation de la base  ===&lt;br /&gt;
&lt;br /&gt;
Pour initialiser la base de données, nous devons d'abord créer le répertoire qui va accueillir les différents fichiers&lt;br /&gt;
&lt;br /&gt;
{{Console | mkdir /repertoire/d/accueil}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il existe 2 méthodes pour initialiser la base de données qui donneront exactement le même résultat &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{Console | pg_ctl initdb -D /repertoire/vers/data/}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{Console | initdb /repertoire/vers/data/}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Démarrage de l'instance  ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{Console | pg_ctl -D /dossier/instance -l /emplacement/fichier/log start}}&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*L'option -D spécifie le chemin de l'instance &lt;br /&gt;
*L'option -l spécifie l'emplacement des logs&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Arrêt de l'instance  ===&lt;br /&gt;
&lt;br /&gt;
La commande classique permettant d'arrêter proprement une instance PostgreSQL est la suivante&amp;amp;nbsp;: &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{Console | pg_ctl -D /repertoire/database stop}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si la procédure d'arrêt ne fonctionne pas correctement, il est possible d'arrêter le serveur en mode &amp;quot;rapide&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
{{Console | pg_ctl -D /repertoire/database -m fast stop}}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Dans ce cas, les utilisateurs voient leurs transactions interrompues et leurs connexions rompues. Cela n'est pas très courtois envers les utilisateurs, mais les données sont totalement protégées.&lt;br /&gt;
PostgreSQL effectue un ''checkpoint'' avant de s’arrêter. Le démarrage suivant sera donc rapide et propre.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;br&amp;gt;Script d'automatisation  ===&lt;br /&gt;
&lt;br /&gt;
Il est possible de créer un script bash qui permettrait de faciliter le start/stop/restart de la BDD. Ce script pourrait ressembler à ceci: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#! /bin/bash&lt;br /&gt;
# Auteur : Devleeschauwer Denis&lt;br /&gt;
# Postgresql start script&lt;br /&gt;
#&lt;br /&gt;
# Mars 2012&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#GLOBAL VARIABLES&lt;br /&gt;
DIRECTORY=/opt/redmine&lt;br /&gt;
LOG_FILE=/opt/redmine/postgres.log&lt;br /&gt;
APPLICATION=Redmine&lt;br /&gt;
&lt;br /&gt;
######################################################################&lt;br /&gt;
##########################Function####################################&lt;br /&gt;
######################################################################&lt;br /&gt;
function startInstance&lt;br /&gt;
{&lt;br /&gt;
	#Commande pour demmarer l'instance Redmine&lt;br /&gt;
	cd /opt/postgresql/bin&lt;br /&gt;
	./pg_ctl -D $DIRECTORY -l $LOG_FILE start&lt;br /&gt;
&lt;br /&gt;
	if [ $? -eq 0 ]&lt;br /&gt;
	then&lt;br /&gt;
        	echo &amp;quot;Start $APPLICATION Instance                       [OK]&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
        	echo &amp;quot;Start $APPLICATION Instance                       [KO]&amp;quot;&lt;br /&gt;
	fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function stopInstance&lt;br /&gt;
{&lt;br /&gt;
	#Commande pour arreter l'instance Redmine&lt;br /&gt;
	cd /opt/postgresql/bin&lt;br /&gt;
	./pg_ctl -D $DIRECTORY stop &lt;br /&gt;
&lt;br /&gt;
	if [ $? -eq 0 ]&lt;br /&gt;
	then&lt;br /&gt;
        	echo &amp;quot;Stop $APPLICATION Instance                     [OK]&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
        	echo &amp;quot;Stop $APPLICATION Instance                     [KO]&amp;quot;&lt;br /&gt;
	fi &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
case &amp;quot;$1&amp;quot; in&lt;br /&gt;
&lt;br /&gt;
'start')&lt;br /&gt;
	startInstance&lt;br /&gt;
;;&lt;br /&gt;
&lt;br /&gt;
'stop')&lt;br /&gt;
	stopInstance&lt;br /&gt;
;;&lt;br /&gt;
&lt;br /&gt;
'restart')&lt;br /&gt;
	stopInstance&lt;br /&gt;
&lt;br /&gt;
	sleep 5&lt;br /&gt;
&lt;br /&gt;
	startInstance&lt;br /&gt;
;;&lt;br /&gt;
&lt;br /&gt;
'status')&lt;br /&gt;
	cat $DIRECTORY/postmaster.pid &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
&lt;br /&gt;
	if [ $? -eq 0 ]&lt;br /&gt;
	then&lt;br /&gt;
		echo &amp;quot;$APPLICATION Instance Running&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		echo &amp;quot;$APPLICATION Instance Stop&amp;quot;&lt;br /&gt;
	fi&lt;br /&gt;
;;&lt;br /&gt;
&lt;br /&gt;
*)&lt;br /&gt;
	echo &amp;quot;Usage: $0 { start | stop | restart | status }&amp;quot;&lt;br /&gt;
	exit 1&lt;br /&gt;
;;&lt;br /&gt;
&lt;br /&gt;
esac&lt;br /&gt;
&lt;br /&gt;
exit 0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Connexion au serveur ==&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;br&amp;gt; Ligne de commande ===&lt;br /&gt;
&lt;br /&gt;
La connexion au serveur en ligne de commande se fait via le client integré à PostgreSQL &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{Console | psql nomDatabase}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Le serveur nous répond avec une invite explicite: &lt;br /&gt;
 psql (9.1.3)&lt;br /&gt;
 Type &amp;quot;help&amp;quot; for help&lt;br /&gt;
 &amp;lt;br&amp;gt;nomDatabase=#&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
{{ Note | Si la database n'écoute pas sur le port par défaut ( 5432 ), il faut spécifier dasn la commande de connexion l'option ''-p numeroPort'' }}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;br&amp;gt;PgAdmin ===&lt;br /&gt;
&lt;br /&gt;
Si l'on veut utiliser PgAdmin, il faut d'abord demander à PostgreSQL d'écouter sur le réseau et d'autoriser la connexion avec ou sans mot de passe crypté ou non crypté. &lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;br&amp;gt;postgresql.conf ====&lt;br /&gt;
&lt;br /&gt;
Le fichier &amp;lt;span style=&amp;quot;font-family: courier; color: red; font-style: italic&amp;quot;&amp;gt; chemin/instance/postgresql.conf&amp;lt;/span&amp;gt; vous nous permettre de spécifier sur quel adresse IP notre serveur PostgreSQl doit écouter. &lt;br /&gt;
&lt;br /&gt;
Pour ce faire, il faut remplacer la ligne&amp;amp;nbsp;: &lt;br /&gt;
&lt;br /&gt;
 #listen_addresses = 'localhost&amp;quot;&lt;br /&gt;
&lt;br /&gt;
par&amp;amp;nbsp;: &lt;br /&gt;
&lt;br /&gt;
 listen_addresses = 'votreIP'&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
{{Note | Vous pouvez également spécifier '*' afin que le serveur écoute sur toutes les interfaces réseaux}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
{{Note | Il est tout a fait possible de lancer plusieurs instances de PostgreSQL en parallèle sur un même serveur. Il suffit de modifier le port réseau sur lequel il va écouter dans le fichier {{File | /chemin/instance/postgresql.conf}}}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== pg_hba.conf ====&lt;br /&gt;
&lt;br /&gt;
Le fichier &amp;lt;span style=&amp;quot;font-family: courier; color: red; font-style: italic&amp;quot;&amp;gt; chemin/instance/pg_hba.conf&amp;lt;/span&amp;gt; est le fichier gérant l'authentification des clients &lt;br /&gt;
&lt;br /&gt;
Ajouter à la fin du fichier la ligne&amp;amp;nbsp;: &lt;br /&gt;
&lt;br /&gt;
 host    all    all    0.0.0.0/0    trust&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
{{Avertissement | &amp;lt;br&amp;gt; Cette ligne signifie que tout le monde peut se connecter à la base de données sans demande de mot de passe&amp;lt;br&amp;gt; La prise en compte de ces 2 fichiers nécessite le redémarrage de l'instance}}&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
===== Les mots clés&amp;lt;br&amp;gt; =====&lt;br /&gt;
&lt;br /&gt;
Le premier champ décrit le type de connexion&amp;amp;nbsp;: &lt;br /&gt;
&lt;br /&gt;
*local&amp;amp;nbsp;: Toute connexion depuis la même machine &lt;br /&gt;
*host&amp;amp;nbsp;: Toute connexion depuis l'extérieur, crypté ou non. &lt;br /&gt;
*hostssl&amp;amp;nbsp;: Toute connexion externe cryptée &lt;br /&gt;
*hostnossl&amp;amp;nbsp;: Toute connexion externe non-crypyée&lt;br /&gt;
&lt;br /&gt;
Le champ '''database''' donne le nom de la ou des bases de données concernées. Outre le nom de la base, certains mots clés existent&amp;amp;nbsp;: &lt;br /&gt;
&lt;br /&gt;
*all&amp;amp;nbsp;: décrit toutes les bases &lt;br /&gt;
*sameuser&amp;amp;nbsp;: décrit une base ayant le même nom que l'utilisateur &lt;br /&gt;
*samerole&amp;amp;nbsp;: décrit une base ayant le même nom que le rôle dont l'utilisateur fait partie &lt;br /&gt;
*replication&amp;amp;nbsp;: décrit une base quelconque ayany une réplication active&lt;br /&gt;
&lt;br /&gt;
Le quatrième champ noté ici '''address''' décrit l'adresse de la ou les machines qui se connectent&amp;amp;nbsp;: &lt;br /&gt;
&lt;br /&gt;
*all&amp;amp;nbsp;: désigne n'importe quelle adresse IP &lt;br /&gt;
*samehost&amp;amp;nbsp;: désigne n'importe quelle adresse IP du serveur local &lt;br /&gt;
*samenet&amp;amp;nbsp;: désigne l'ensemble du ou des sous-réseaux sur lesquels le serveur est connecté &lt;br /&gt;
*adresse masque&amp;amp;nbsp;: spécifier une adresse IP sous la forme de deux champs.&lt;br /&gt;
&lt;br /&gt;
Le champ '''auth-method''' désigne la méthode d'authentification désirée&amp;amp;nbsp;: &lt;br /&gt;
&lt;br /&gt;
*trust&amp;amp;nbsp;: autorise toute connexion de manière inconditionnelle &lt;br /&gt;
*reject&amp;amp;nbsp;: est l'inverse de trust &lt;br /&gt;
*md5&amp;amp;nbsp;: exige du client un mot de passe encodé en md5 &lt;br /&gt;
*password&amp;amp;nbsp;: exige du client un mot de passe non encrypté.&lt;br /&gt;
&lt;br /&gt;
==Créer la database==&lt;br /&gt;
&lt;br /&gt;
Pour créer la base de donnée, il faut être connecté en tant qu'utilisateur postgres :&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{ Console | 1=createdb -e -p 5452 -h localhost --encoding=utf-8 sogo &amp;quot;Base pour Sogo&amp;quot; }}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*-e : Affiche le resultat de la commande&lt;br /&gt;
*-p : Spécifie le port d'écoute de l'instance ( définis dans pg_hba.conf)&lt;br /&gt;
*-h : Le nom d'hote&lt;br /&gt;
*sogo : nom de la database&lt;br /&gt;
&lt;br /&gt;
== Commandes ==&lt;br /&gt;
&lt;br /&gt;
=== Changement password ===&lt;br /&gt;
&lt;br /&gt;
Pour changer le mot de passe d'un utilisateur (également celui de postgres), il suffit d’exécuter la commande suivante &lt;br /&gt;
&lt;br /&gt;
{{ Console | ALTER USER postgres PASSWORD 'postgres';}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
=== Créer utilisateur ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CREATE USER name ;&lt;br /&gt;
ALTER USER name WITH ENCRYPTED PASSWORD 'password';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Changer propriétaire database ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ALTER DATABASE name OWNER TO new_owner;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Monitoring ===&lt;br /&gt;
==== Activité ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT * FROM pg_stat_activity;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Taille Database ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT pg_size_pretty(pg_database_size('DATABASE'));&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Procédures ==&lt;br /&gt;
&lt;br /&gt;
===Backup/Restore===&lt;br /&gt;
&lt;br /&gt;
====SQL Dump====&lt;br /&gt;
&lt;br /&gt;
Pour réaliser un backup d'une database, il suffit d'utiliser la commande ''pg_dump''&lt;br /&gt;
&lt;br /&gt;
{{Console | pg_dump dbname &amp;gt; outfile }}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{ Console | pg_dump wikidb -h localhost -p 5432 -U postgres &amp;gt; wikidb.bck }}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
*wikidb : Nom de la database ( A modifier selon le besoin)&lt;br /&gt;
*-p : Port d'écoute du serveur postgresql&lt;br /&gt;
*-u : Utilisateur ( Postgres est l'utilisateur &amp;quot;admin&amp;quot; de su serveur postgresql)&lt;br /&gt;
&lt;br /&gt;
==== Restore Dump ====&lt;br /&gt;
&lt;br /&gt;
Pour restaurer une base de données à partir d'un fichier de sauvegarde obtenu par la commande ''pg_dump'' :&lt;br /&gt;
&lt;br /&gt;
{{Console | psql dbname &amp;lt; infile }}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{Note | Il faut penser à créer la base de données que l'on veut restaurer avant de réaliser l'import des données }}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Nouveaux utilisateur ===&lt;br /&gt;
On se connecte à l'instance postgres&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{ Console | psql -h IP -p PORT -U postgres }}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Pour créer l'utilisateur tapez (Attention : mon_user est à changer par un nom d'utilisateur de vôtre choix) :&lt;br /&gt;
 CREATE USER mon_user;&lt;br /&gt;
&lt;br /&gt;
Pour donner le droit de créer des bases de données tapez ceci (Attention : mon_user est à changer par le nom d'utilisateur choisi au préalable) :&lt;br /&gt;
&lt;br /&gt;
 ALTER ROLE mon_user WITH CREATEDB;&lt;br /&gt;
&lt;br /&gt;
Il est vivement conseillé d'attribuer un mot de passe pour votre nouvel utilisateur (Attention : mon_user est à changer par le nom d'utilisateur choisi au préalable, password est à changer par le mot de passe correspondant) :&lt;br /&gt;
&lt;br /&gt;
 ALTER USER mon_user WITH ENCRYPTED PASSWORD 'password';&lt;br /&gt;
&lt;br /&gt;
=== Nouvelle Base de données ===&lt;br /&gt;
On se connecte à l'instance postgres&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{ Console | psql -h IP -p PORT -U postgres }}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
On crée la base de donnée de l'utilisateur (Attention : mon_user est à changer par le nom d'utilisateur choisi au préalable) :&lt;br /&gt;
 CREATE DATABASE mon_user WITH OWNER user;&lt;br /&gt;
&lt;br /&gt;
=== Nouvelle Instance pour applicatifs ===&lt;br /&gt;
&lt;br /&gt;
Si on doit créer une nouvelle instance de PostgreSQL pour un applicatif, voici la marche à suivre :&lt;br /&gt;
&lt;br /&gt;
* On crée le répertoire pour l'instance et on change le propriétaire:&lt;br /&gt;
{{ Console root | mkdir /opt/postgres-nomApplicatif &amp;amp;&amp;amp; chown postgres:postgres /opt/postgres-nomApplicatif}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* On initialise la base de donnée ( en tant qu'utilisateur postgres ):&lt;br /&gt;
{{ Console | pg_ctl initdb -D /opt/nomApplicatif }}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* On copie le script d'une instance existante (ex: sogo) :&lt;br /&gt;
{{ Console root | cp /etc/init.d/postgres-sogo /etc/init/d/postgres-nomApplicatif &amp;amp;&amp;amp; chmod +x /etc/init.d/postgres-nomApplicatif}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Dans le script on modifie les 3 variables GLOBALES et la date d'édition du script:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#! /bin/bash&lt;br /&gt;
# Auteur : Devleeschauwer Denis&lt;br /&gt;
# Postgresql nomApplicatif start script&lt;br /&gt;
#&lt;br /&gt;
# Octobre 2012&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#GLOBAL VARIABLES&lt;br /&gt;
DIRECTORY=/opt/postgres-nomApplicatif&lt;br /&gt;
LOG_FILE=/opt/postgres-nomApplicatif/postgres.log&lt;br /&gt;
APPLICATION=&amp;quot;Postgres nomApplicatif&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* On rajoute le script pour qu'il soit exécuter au démarrage et à l'arret du système&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{ Console root | update-rc.d postgres-nomApplicatif defaults }}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* On édite le fichier {{ File | /opt/postgres-nomApplicatif/postgresql.conf }} pour lui renseigner les interfaces et le port d'écoute :&lt;br /&gt;
{{ Note | Avant d'assigner les ports, consulter le tableau [[Postgres-table|suivant]] }}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#------------------------------------------------------------------------------&lt;br /&gt;
# CONNECTIONS AND AUTHENTICATION&lt;br /&gt;
#------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
# - Connection Settings -&lt;br /&gt;
&lt;br /&gt;
listen_addresses = '*'                  # what IP address(es) to listen on;&lt;br /&gt;
                                        # comma-separated list of addresses;&lt;br /&gt;
                                        # defaults to 'localhost', '*' = all&lt;br /&gt;
                                        # (change requires restart)&lt;br /&gt;
port = 5434&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* On édite le fichier {{ File | /opt/postgres-nomApplicatif/pg_hba.conf }} pour spécifier les accès à l'instance selon le réseaux :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Mot de passe crypté en md5 pour le réseaux 192.168.1.0/24&lt;br /&gt;
host    all             all             192.168.1.0/24           md5&lt;br /&gt;
# Pas de mot de passe demandé pour le réseaux Management et serveurs&lt;br /&gt;
host    all             all             192.168.11.0/24          trust&lt;br /&gt;
host    all             all             192.168.168.0/24         trust&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* On lance l'instance :&lt;br /&gt;
{{ Console | /etc/init.d/postgres-nomApplicatif start }}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* On se connecte à la database pour changer le mot de passe de l'administrateur postgres&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
psql postgres -h adresseIP -p port -U postgres&lt;br /&gt;
psql (9.1.6)&lt;br /&gt;
Type &amp;quot;help&amp;quot; for help.&lt;br /&gt;
&lt;br /&gt;
postgres=# ALTER USER postgres WITH ENCRYPTED PASSWORD 'postgres';&lt;br /&gt;
ALTER ROLE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Mise a jour de version ===&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{ Note | Cette procédure a été créé pour la mise à jour d'un Postgresql de version 9.1.6 vers 9.2.2 }}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* '''Backup de la base existante'''&lt;br /&gt;
Avant toute chose, on réalise un backup de la database&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{ Console | pg_dump nomDatabase -h IP -p PORT -U postgres &amp;gt; nomDatabase.bck }}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* '''Téléchargement de la nouvelle version'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{ Console | wget http://ftp.postgresql.org/pub/source/v9.2.2/postgresql-9.2.2.tar.gz }}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* '''Extraction des sources'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{ Console | tar -xvf postgresql-9.2.2.tar.gz &amp;amp;&amp;amp; cd postgresql-9.2.2 &amp;amp;&amp;amp; mkdir /opt/postgresql-9.2.2 }}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* '''Configuration'''&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{ Console root | 1=./configure --prefix=/opt/postgresql-9.2.2/ --with-ldap --with-openssl --without-readline }}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* ''' Installation'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make&lt;br /&gt;
make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* '''Changement de PATH'''&lt;br /&gt;
On oublie pas changer la valeur du PATH pour qu'il prenne en compte la nouvelle version &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{ Console | 1=export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/postgresql-9.2.2/bin }}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''A réaliser pour root et l'utilisateur postgres'''&lt;br /&gt;
* '''Initialisation'''&lt;br /&gt;
On va créer un nouveau dossier qui va accueillir la nouvelle version de la database pour l'application&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{ Console root | mkdir /opt/postgres-nomApplicatif-new &amp;amp;&amp;amp; chown postgres:postgres /opt/postgres-nomApplicatif-new }}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
On se connecte en tant que postgres&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su postgres&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
On va initier la nouvelle database&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{ Console | pg_ctl initdb -D /opt/postgres-nomApplicatif-new/ }}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
On peux vérifier en affichant le contenu du fichier {{ File | /opt/postgres-nomApplicatif-new/PG_VERSION }}&lt;br /&gt;
* '''Configuration'''&lt;br /&gt;
On modifie/recopie le fichier {{File | postgresql.conf }} et le fichier {{ File | pg_hba.conf }} pour qu'il ressemble à celui de l'ancienne database.&lt;br /&gt;
&lt;br /&gt;
* '''Modification du script de demarrage'''&lt;br /&gt;
On crée un script temporaire pour tester&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{ Console root | cp /etc/init/d/postgres-nomApplicatif /etc/init/d/postgres-nomApplicatif-new }}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
On modifie les variable globales&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DIRECTORY=/opt/postgres-nomApplicatif-new&lt;br /&gt;
LOG_FILE=/opt/postgres-nomApplicatif-new/postgres.log&lt;br /&gt;
APPLICATION=&amp;quot;Postgres Sogo&amp;quot;&lt;br /&gt;
DIRECTORY_BIN=/opt/postgresql-9.2.2/bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On arrête l'ancienne instance&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{ Console root | /etc/init.d/postgres-nomApplicatif stop }}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
On lance la nouvelle version&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{ Console root | /etc/init.d/postgres-nomApplicatif-new start }}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
On va remettre un mot de passe à l'utilisateur postgres de la database&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ALTER USER postgres WITH ENCRYPTED PASSWORD 'postgres';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pour vérifier le bon fonctionnement, on se connecte au serveur et on exécute la requête suivante :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT version();&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Restauration des données'''&lt;br /&gt;
On va injecter dans la nouvelle version les données réalisé avec le backup qu'on a réalisé&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{ Console | psql nomDatabase -h IP/localhost -p PORT -U postgres &amp;lt; nomDatabase.bck }} &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
On redémarre le serveur par acquis de conscience et on se connecte pour voir si toutes les données ont bien été restauré&lt;br /&gt;
* '''Changement nom dossier'''&lt;br /&gt;
Si la connexion et la restauration des données s'est bien déroulé, on va passer au remplacement de l'ancienne version.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{ Avertissement | On arrête les base de données ( la nouvelle et ancienne version ) }}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
On renomme &amp;quot;l'ancienne version&amp;quot; de la base de donnée&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{ Console root | mv /opt/postgres-nomApplicatif /opt/postgres-nomApplicatif-old&amp;lt;br&amp;gt;&lt;br /&gt;
[root@ordi ~]# mv /opt/postgres-nomApplicatif-new /opt/postgres-nomApplicatif }}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Changement nom de script'''&lt;br /&gt;
On change le nom du script {{ File | /etc/init.d/postgres-nomApplicatif-new }}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{ Console root | mv /etc/init.d/postgres-nomApplicatif-new /etc/init.d/postgres-nomApplicatif }}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Modification script'''&lt;br /&gt;
Dans le script on doit modifier les variables globales&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DIRECTORY=/opt/postgres-sogo&lt;br /&gt;
LOG_FILE=/opt/postgres-sogo/postgres.log&lt;br /&gt;
APPLICATION=&amp;quot;Postgres Sogo&amp;quot;&lt;br /&gt;
DIRECTORY_BIN=/opt/postgresql-9.2.2/bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Lancement script'''&lt;br /&gt;
On peux démarrer le serveur&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{ Console root | /etc/init.d/postgres-nomApplicatif start }}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
On peux vérifier si on arrive à se connecter au serveur et vérifier si les donnes sont bien reprise&lt;br /&gt;
&lt;br /&gt;
* '''Modification script de backup'''&lt;br /&gt;
Il ne faut pas oublier de modifier le script de backup nommé bckApplication (ex: /root/bckRedmine, /root/bckSogo ...)&lt;br /&gt;
Il suffit de modifier dans les variables globales la variables '''DIRECTORY_POSTGRES''' pour la faire pointer vers la nouvelle version de postgresql&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash&amp;gt;&lt;br /&gt;
#Variables&lt;br /&gt;
DIRECTORY_POSTGRES=/opt/postgresql-9.2.2/bin&lt;br /&gt;
DATABASE=redmine&lt;br /&gt;
PORT=5434&lt;br /&gt;
USERNAME=postgres&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*'''Centreon'''&lt;br /&gt;
Pour que Centreon puisse vérifier le status des différentes instances PostgreSQL, il faut pas oublier de mettre à jour le lien symbolique qui se trouve dans {{ File | /usr/bin }}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{ Console | sudo ln -s /opt/postgresql-9.2.2/bin/psql /usr/bin }}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*'''PgPool'''&lt;br /&gt;
Pour s'assurer du bon fonctionnement, on se connecte à l'IP virtuelle de l'application voir [[Postgres-table]]&lt;br /&gt;
&lt;br /&gt;
On essaie égalmement à partir des 2 PgPool. Si l'erreur suivante est affiché&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
psql postgres -H 192.168.168.15 -p 5433 -U postgres&lt;br /&gt;
psql: warning: extra command-line argument &amp;quot;192.168.168.15&amp;quot; ignored&lt;br /&gt;
psql (9.1.6, server 9.2.2)&lt;br /&gt;
WARNING: psql version 9.1, server version 9.2.&lt;br /&gt;
         Some psql features might not work.&lt;br /&gt;
Type &amp;quot;help&amp;quot; for help.&lt;br /&gt;
&lt;br /&gt;
postgres=# \q&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Il suffit de mettre à jour postgresql sur les Pgpool comme on à fais pour l'applicatif. On réalise le configure, le make, le make install et l'export du PATH&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;br&amp;gt; Voir aussi ==&lt;br /&gt;
&lt;br /&gt;
=== Lien externes ===&lt;br /&gt;
&lt;br /&gt;
[http://www.postgresql.org/docs/8.1/static/backup.html http://www.postgresql.org/docs/8.1/static/backup.html]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Système]]&lt;/div&gt;</summary>
		<author><name>Ddevleeschauwer</name></author>	</entry>

	</feed>