]> git.sur5r.net Git - bacula/docs/blob - docs/manual-fr/postgresql.tex
Initial revision
[bacula/docs] / docs / manual-fr / postgresql.tex
1 %%
2 %%
3
4 \section*{Installer et configurer PostgreSQL}
5 \label{_ChapterStart10}
6 \index[general]{PostgreSQL!Installer et configurer }
7 \index[general]{Installer et configurer PostgreSQL }
8 \addcontentsline{toc}{section}{Installer et configurer PostgreSQL}
9
10 \subsection*{Installer et configurer PostgreSQL -- Phase I}
11 \index[general]{Installer et configurer PostgreSQL -- Phase I }
12 \index[general]{Phase I!Installer et configurer PostgreSQL -- }
13 \addcontentsline{toc}{subsection}{Installer et configurer PostgreSQL -- Phase
14 I}
15
16 Si vous avez utilis\'e l'option {\bf ./configure
17 \verb{--{with-postgresql=PostgreSQL-Directory} pour configurer {\bf Bacula}, vous
18 avez besoin d'installer la version 7.3 ou sup\'erieure de PostgreSQL.
19 ATTENTION! Les versions pr\'ealables \`a la 7.3 ne fonctionnent pas avec
20 Bacula. Si PostgreSQL est install\'e dans ses r\'epertoires sandards, seule
21 l'option {\bf \verb{--{with-postgresql} est n\'ecessaire, le programme de
22 configuration scrutant tous les r\'epertoires standards. Si PostgreSQL est
23 install\'e dans votre r\'epertoire de travail ou dans un r\'epertoire
24 atypique, il faut pr\'eciser l'option {\bf \verb{--{with-postgresql} suivie du
25 r\'epertoire {\it ad hoc}. 
26
27 Installer et configurer PostgreSQL n'est pas compliqu\'e mais peut \^etre
28 d\'eroutant la premi\`ere fois. Si vous pr\'ef\'erez, vous pouvez utiliser le
29 paquet de votre distribution. Les paquets binaires sont disponibles sur la
30 plupart des mirroirs de PostgreSQL. 
31
32 Si vous pr\'ef\'erez installer PostgreSQL \`a partir des sources, nous vous
33 recommandons de suivre les instructions de la 
34 \elink{documentation PostgreSQL}{http://www.postgresql.org/docs/}. 
35
36 Si vous utilisez PostgreSQL pour FreeBSD, 
37 \elink{cet article}{http://www.freebsddiary.org/postgresql.php} vous sera peut
38 \^etre utile. M\^eme si vous n'utilisez pas FreeBSD, l'article contient des
39 informations utiles \`a la configuration et au param\'etrage de PostgreSQL. 
40
41 Apr\`es l'installation de PostgreSQL, terminez l'installation de {\bf Bacula}.
42 Ensuite, quand Bacula sera install\'e, reprenez ce chapitre pour terminer
43 l'installation. Notez que les fichiers d'installation utilis\'es dans cette
44 seconde phase de l'installation de PostgreSQL sont cr\'e\'es durant
45 l'installation de Bacula. 
46 \label{PostgreSQL_phase2}
47
48 \subsection*{Installer et configurer PostgreSQL -- Phase II}
49 \index[general]{Phase II!Installer et configurer PostgreSQL -- }
50 \index[general]{Installer et configurer PostgreSQL -- Phase II }
51 \addcontentsline{toc}{subsection}{Installer et configurer PostgreSQL -- Phase
52 II}
53
54 Si vous en \^etes l\`a, vous avez construit et install\'e PostgreSQL, ou vous
55 aviez d\'ej\`a un serveur PostgreSQL existant et vous avez configur\'e et
56 install\'e {\bf Bacula}. Dans le cas contraire, nous vous invitons \`a le
57 faire avant de poursuivre. 
58
59 Prennez bonne note que la commande {\bf ./configure} utilis\'ee pour
60 construire {\bf Bacula} n\'ecessite d'ajouter l'option {\bf
61 \verb{--{with-postgresql=repertoire\_de\_PostgreSQL}, o\`u {\bf
62 repertoire\_de\_PostgreSQL} sp\'ecifie le chemin de PostgreSQL indiqu\'e \`a
63 la commande ./configure. (si vous n'avez pas sp\'ecifi\'e de r\'epertoire ou
64 si PostgreSQL est install\'e dans son r\'epertoire par d\'efaut, cette option
65 n'est pas n\'ecessaire). Cette option est n\'ecessaire pour que Bacula puisse
66 trouver les fichiers d'en-t\^ete et les librairies d'interface \`a PostgreSQL.
67
68
69 {\bf Bacula} installe les scripts pour la gestion de la base de donn\'ees
70 (cr\'eer, d\'etruire, cr\'eer les tables, etc.) dans le r\'epertoire principal
71 de l'installation. Ces fichiers sont de la forme *\_bacula\_* (par exemple
72 create\_bacula\_database). Ces fichiers sont \'egalement disponibles dans le
73 r\'epertoire \lt{}bacula-src\gt{}/src/cats apr\`es que la commande ./configure
74 ait \'et\'e lanc\'ee. Si vous consultez le fichier create\_bacula\_database,
75 vous verrez qu'il fait appel \`a create\_postgresql\_database. Les fichiers
76 *\_bacula\_* sont fournis pour faciliter les choses. Peu importe la base de
77 donn\'ees choisie, create\_bacula\_database cr\'eera la base de donn\'ees. 
78
79 Maintenant vous allez cr\'eer la base de donn\'ees PostgreSQL et les tables
80 utilis\'ees par Bacula. On pr\'esume dans la suite que votre serveur
81 PostgreSQL fonctionne. Vous devez ex\'ecuter les diff\'erentes \'etapes
82 ci-dessous en tant qu'utilisateur autoris\'e \`a cr\'eer des bases. Ceci peut
83 \^etre fait avec l'utilisateur PostgreSQL (sur la plupart des syst\`emes il
84 s'agit de pgsql. NDT: sur debian il s'agit de postgres) 
85
86 \begin{enumerate}
87 \item cd \lt{}r\'epertoire\_d\_installation\gt{}
88
89    Ce r\'epertoire contient le catalogue des routines d'interfaces.  
90
91 \item ./create\_bacula\_database
92
93    Cr\'eer la base de donn\'ees PostgreSQL de {\bf Bacula}.  
94
95 \item ./make\_bacula\_tables
96
97    Cr\'e\'ee les tables utilis\'ees par {\bf Bacula}.  
98 \item ./grant\_bacula\_privileges
99
100    Cr\'e\'ee l'utilisateur de la base de donn\'ees {\bf bacula} avec des droits
101 d'acc\`es restreints. Vous pouvez modifier ce script pour cadrer avec votre
102 propre configuration. Attention, cette base n'est pas prot\'eg\'ee par un mot
103 de passe.  
104
105 \end{enumerate}
106
107 Chacun de ces scripts (create\_bacula\_database, make\_bacula\_tables et
108 grant\_bacula\_privileges) permet l'ajout d'arguments en ligne de commande.
109 Ceci peut \^etre utile pour sp\'ecifier le nom de l'utilisateur. Par exemple,
110 vous pouvez avoir besoin d'ajouter {\bf -h nom\_d\_hote} \`a la ligne de
111 commande pour sp\'ecifier le serveur de base de donn\'ees distant. 
112
113 Pour avoir un bon aper{\c c}u des droits d'acc\`es que vous avez sp\'ecifi\'e
114 vous pouvez utiliser la commande 
115
116 \footnotesize
117 \begin{verbatim}
118
119 repertoire_de_PostgreSQL/bin/psql --command \\dp bacula
120 \end{verbatim}
121 \normalsize
122
123 \subsection*{R\'einitialiser la base des catalogues (de sauvegardes)}
124 \index[general]{R\'einitialiser la base des catalogues (de sauvegardes) }
125 \index[general]{Sauvegardes!R\'einitialiser la base des catalogues de }
126 \addcontentsline{toc}{subsection}{R\'einitialiser la base des catalogues (de
127 sauvegardes)}
128
129 Apr\`es avoir fait un certain nombre de tests avec {\bf Bacula}, vous aurez
130 tr\`es certainement envie de nettoyer le catalogue des sauvegardes et faire
131 dispara{\^\i}tre tous les travaux de tests que vous avez lanc\'es. Pour ce
132 faire, vous pouvez ex\'ecuter les commandes suivantes: 
133
134 \footnotesize
135 \begin{verbatim}
136
137   cd <r\'epertoire_d_installation>
138   ./drop_bacula_tables
139   ./make_bacula_tables
140   ./grant_bacula_privileges
141 \end{verbatim}
142 \normalsize
143
144 Attention! Toutes les informations contenues dans cette base seront perdues et
145 vous repartirez de z\'ero. Si vous avez \'ecrit sur certains volumes (medias
146 de sauvegarde), vous devrez \'ecrire une marque de fin de fichier (EOF) sur
147 chacun d'eux afin que {\bf Bacula} puisse les r\'eutiliser. Pour ce faire: 
148
149 \footnotesize
150 \begin{verbatim}
151
152    (arr\^eter Baula ou demonter les volumes)
153    mt -f /dev/nst0 rewind
154    mt -f /dev/nst0 weof
155 \end{verbatim}
156 \normalsize
157
158 o\`u vous devrez remplacer {\bf /dev/nst0} par le chemin appropri\'e de votre
159 lecteur de sauvegarde. 
160
161 \subsection*{Migrer de MySQL \`a PostgreSQL}
162 \index[general]{Migrer de MySQL \`a PostgreSQL }
163 \index[general]{PostgreSQL!Migrer de MySQL \`a }
164 \addcontentsline{toc}{subsection}{Migrer de MySQL \`a PostgreSQL}
165
166 La proc\'edure de migration pr\'esent\'ee ici \`a fonctionn\'e pour Norm
167 Dressler \lt{}ndressler at dinmar dot com\gt{} 
168
169 Ce process a \'et\'e test\'e en utilisant les versions suivantes des
170 diff\'erents logiciels: 
171
172 \begin{itemize}
173 \item Linux Mandrake 10/Kernel 2.4.22-10 SMP 
174 \item Mysql Ver 12.21 Distrib 4.0.15, pour mandrake-linux-gnu (i586) 
175 \item PostgreSQL 7.3.4 
176 \item Bacula 1.34.5 
177    \end{itemize}
178
179 ATTENTION! Par pr\'ecaution, r\'ealisez une sauvegarde compl\`ete de vos
180 syst\`emes avant de proc\'eder \`a cette migration. 
181
182 \begin{enumerate}
183 \item Arr\^etez bacula (cd /etc/bacula;./bacula stop)  
184 \item Lancez la commande pour extraire les donn\'ees de votre base Mysql:  
185
186    \footnotesize
187 \begin{verbatim}
188
189        mysqldump -f -t -n >bacula-backup.dmp
190     
191 \end{verbatim}
192 \normalsize
193
194 \item Faites une sauvegarde de votre r\'epertoire /etc/bacula (mais laisser
195    l'original en place  ).  
196 \item Allez dans le r\'epertoire source de {\bf Bacula} et reconstruisez le en
197    incluant le support  PostgreSQL au lieu de celui de Mysql . V\'erifiez que  le
198    fichier config.log de votre configuration originale et remplacez enable-mysql
199 par enable-postgresql.  
200 \item Recompilez Bacula avec la commande make et si tout se passe correctement
201  lancez un ``make install''.  
202 \item Arr\^etez Mysql. 
203 \item Lancez PostgreSQL sur votre syst\`eme.  
204 \item Cr\'eez un utilisateur {\bf Bacula} dans Postgres avec la commande
205    ``createuser''.  En fonction de votre installation, vous serez peut \^etre
206    amen\'e \`a faire un ``su'' vers l'utilisateur ad\'equat (NDT: su postgres).  
207 \item Verifiez que le fichier pg\_hba.conf (NdT sur Debian:
208    /etc/postgres/pg\_hba.conf) contient les permissions ad\'equates pour
209    permettre \`a {\bf Bacula} d'acc\'eder au serveur. Le mien contient les
210 informations suivantes, et il est situ\'e sur un r\'eseau s\'ecuris\'e,  
211
212 \footnotesize
213 \begin{verbatim}
214
215 local all all trust
216                 
217 host all all 127.0.0.1 255.255.255.255 trust
218                 
219 ATTENTION: vous devez red\'emmarer PostgreSQL si vous faites des changements dans ce fichier.
220       
221 \end{verbatim}
222 \normalsize
223
224 \item Allez dans le r\'epertoire /etc/bacula et pr\'eparez la base de
225    donn\'ees avec les commandes suivantes:  
226
227 \footnotesize
228 \begin{verbatim}
229
230 ./create_postgresql_database
231                                 
232 ./make_postgresql_tables
233                                 
234 ./grant_postgresql_privileges
235        
236 \end{verbatim}
237 \normalsize
238
239 \item Verifiez que vous avez acc\`es \`a la base de donn\'ees:  
240
241    \footnotesize
242 \begin{verbatim}
243   
244 psql -Ubacula bacula
245       
246 \end{verbatim}
247 \normalsize
248
249 Vous ne devriez avoir aucune erreur.  
250 \item Chargez la base PostgreSQL avec l'extraction MySQL gr\^ace \`a la
251    commande:  
252
253 \footnotesize
254 \begin{verbatim}
255
256 psql -Ubacula bacula <bacula-backup.dmp>
257       
258 \end{verbatim}
259 \normalsize
260
261 \item R\'eindexez vos tables avec les commandes suivantes:  
262
263    \footnotesize
264 \begin{verbatim}
265
266 psql -Ubacula bacula
267                 
268 SELECT SETVAL('basefiles_baseid_seq', (SELECT
269 MAX(baseid) FROM basefiles));
270
271 SELECT SETVAL('client_clientid_seq', (SELECT
272 MAX(clientid) FROM client));
273
274 SELECT SETVAL('file_fileid_seq', (SELECT MAX(fileid)
275 FROM file));
276
277 SELECT SETVAL('filename_filenameid_seq', (SELECT
278 MAX(filenameid) FROM filename));
279                 
280 SELECT SETVAL('fileset_filesetid_seq', (SELECT
281 MAX(filesetid) FROM fileset));
282                 
283 SELECT SETVAL('job_jobid_seq', (SELECT MAX(jobid) FROM job));
284
285 SELECT SETVAL('jobmedia_jobmediaid_seq', (SELECT
286 MAX(jobmediaid) FROM jobmedia));
287
288 SELECT SETVAL('media_mediaid_seq', (SELECT MAX(mediaid) FROM media));
289
290 SELECT SETVAL('path_pathid_seq', (SELECT MAX(pathid) FROM path));
291                 
292 SELECT SETVAL('pool_poolid_seq', (SELECT MAX(poolid) FROM pool));
293        
294 \end{verbatim}
295 \normalsize
296
297 \item Parvenu ici, lancez {\bf Bacula}, v\'erifiez votre banque de bandes et
298    faites un test pour valider que tout s'est bien d\'eroul\'e. 
299    \end{enumerate}
300
301 \subsection*{Credits}
302 \index[general]{Credits }
303 \addcontentsline{toc}{subsection}{Credits}
304
305 Tous mes remerciements \`a Dan Languille pour l'\'ecriture du driver
306 PostgreSQL qui deviendra tr\`es certainement la base de donn\'ees la plus
307 r\'eput\'ee utilisable avec {\bf Bacula}