Changeset 1118
- Timestamp:
- 08/08/08 09:47:39 (4 months ago)
- Files:
-
- traduc/trunk/slony/ddlchanges.xml (modified) (3 diffs)
- traduc/trunk/slony/faq.xml (modified) (89 diffs)
- traduc/trunk/slony/intro.xml (modified) (1 diff)
- traduc/trunk/slony/logshipping.xml (modified) (1 diff)
- traduc/trunk/slony/slon.xml (modified) (1 diff)
- traduc/trunk/slony/slonik_ref.xml (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
traduc/trunk/slony/ddlchanges.xml
r1093 r1118 205 205 stockées. Et il est assez probable que cela vous posera problÚme de propager ces mises à jour 206 206 en association avec un jeu de réplication où <command>EXECUTE SCRIPT</command> 207 va vérouiller tout un jeu de tables qui n'ont pas réellement besoin de l'être. 207 va vérouiller tout un jeu de tables qui n'ont pas réellement besoin de l'être.</para> 208 208 209 209 <para> Si vous propagez une procédure stockée qui n'est pas utilisée tout le temps 210 210 (de telle sorte que vous acceptiez une petite desynchronisation entre les noeuds), alors vous pouvez 211 211 simplement la soumettre à chaque noeud par l'intermédiare d'une commande <application>psql</application>, 212 ne faisant pas d'utilisation particuliÚre de &slony1; 212 ne faisant pas d'utilisation particuliÚre de &slony1;</para> 213 213 214 214 <para>Si vous <emphasis>avez</emphasis> besoin d'une parfaite synchronisation sur l'ensemble des noeuds, 215 215 a ce moment là , vous devez utiliser <command>EXECUTE SCRIPT</command> 216 pour ver ouiller vos travaux.</para></listitem>216 pour verrouiller vos travaux.</para></listitem> 217 217 218 218 <listitem><para> Vous pouvez avoir besoin d'index suplémentaires sur quelques … … 290 290 <emphasis> s'exécute</emphasis> sans erreur. 291 291 292 Attention <para> Si le script contient un <command> COMMIT;292 <warning>Attention <para> Si le script contient un <command> COMMIT; 293 293 </command> n'importe ou avant le <command> ROLLBACK; </command>, cela va 294 294 effectuer des changements auxquels vous ne vous attendiez pas. </para> … … 296 296 </sect2> 297 297 </sect1> 298 <!-- Keep this comment at the end of the file 299 Local variables: 300 mode:sgml 301 sgml-omittag:nil 302 sgml-shorttag:t 303 sgml-minimize-attributes:nil 304 sgml-always-quote-attributes:t 305 sgml-indent-step:1 306 sgml-indent-data:t 307 sgml-parent-document:"slony.sgml" 308 sgml-exposed-tags:nil 309 sgml-local-catalogs:("/usr/lib/sgml/catalog") 310 sgml-local-ecat-files:nil 311 End: 312 --> 298 traduc/trunk/slony/faq.xml
r1083 r1118 1 1 <?xml version="1.0" encoding="UTF-8"?> 2 <!-- Derni ère modifications2 <!-- DerniÚre modifications 3 3 le $Date$ 4 4 par $Author$ 5 r évision $Revision$ -->5 révision $Revision$ --> 6 6 7 7 <qandaset> 8 <indexterm><primary> Questions Fréquemment Posées à propos de &slony1;</primary></indexterm>8 <indexterm><primary>Foire Aux Questions de &slony1;</primary></indexterm> 9 9 10 10 <qandadiv id="faqcompiling"><title> &slony1; FAQ: Monter et Installer &slony1; </title> … … 13 13 14 14 <question><para> J'utilise <productname> Frotznik Freenix 15 4.5</productname>, avec son <acronym>FFPM</acronym> (Frotznik Freenix 16 Package Manager) gestionnaire des paquetage système. L'arrivée de 17 <acronym>FFPM</acronym> c'est l'introduction des paquetages pour &postgres; 7.4.7, lequel je suis actuellement 18 entrain d'utiliser pour ma base de données, mais qui n'inclut pas encore les paquetages &slony1. 19 Comment puis-je rajouter &slony1; à cette configuration? </para> 15 4.5</productname>, avec son systÚme de gestion de paquetages <acronym>FFPM</acronym> (Frotznik Freenix Package Manager). Il existe des paquets 16 <acronym>FFPM</acronym> pour &postgres; 7.4.7, que j'utilise actuellement 17 comme base de données, mais il n'y a pas encore de paquetages &slony1;. 18 Comment puis-je rajouter &slony1; à cette distribution ? </para> 20 19 </question> 21 20 22 21 23 22 <answer><para> <productname>Frotznik Freenix</productname> c'est nouveau pour moi, 24 alors il est un peu dangereux, pour donner des réponses définitives vraiment concise et rapides. </para> 25 26 <para> Les réponses différent légèrement t entre les diverses combinaisons de versions entre 27 &postgres; et &slony1; Il est légérement plus faciles, dans les versions récentes, de faire face à ce genre de question 28 que dans les versions plus anciennes. En général, vous devez presque certainement recompiler &slony1; depuis les sources; selon les versions 23 alors il est un peu dangereux, de donner une réponse définitive, concise et rapide. </para> 24 25 <para> Les réponses différent légÚrement selon les diverses combinaisons de versions entre 26 &postgres; et &slony1; Il est légérement plus facile, avec les versions récentes, de faire face à ce genre de questions qu'avec les versions plus anciennes. En général, vous devez presque certainement recompiler &slony1; depuis les sources; selon les versions 29 27 des deux composants &slony1; et &postgres;, vous 30 <emphasis>devez</emphasis> également recompiler &postgres; à partir de zéro.31 (S i vous devez d' <emphasis> utilisez </emphasis> le &postgres; compiler32 est un autre probl ème; vous n'avez probablement pas besoin...) </para>28 <emphasis>devez</emphasis> également recompiler &postgres; à partir de zéro. 29 (Savoir si vous devez <emphasis> utilisez </emphasis> la version compilée de &postgres; 30 est un autre problÚme; en général ce n'est pas le cas...) </para> 33 31 34 32 <itemizedlist> 35 33 36 <listitem><para> &slony1; la version 1.0.5 et ultérieur nécessite avoir complètement 37 configuré &postgres; ayant les sources installées, afin de recompiler 34 <listitem><para> &slony1; la version 1.0.5 et ultérieur nécessite d'avoir une version complÚtement configurées des sources de &postgres;, afin de recompiler 38 35 &slony1;.</para> 39 36 37 TODO 38 40 39 <para> <emphasis>Si tout va bien </emphasis> vous pouvez refaire la configuration, 41 ceci contre la configuration utilis ée nativement par la paquetage d'origine, en utilisant la40 ceci contre la configuration utilisée nativement par la paquetage d'origine, en utilisant la 42 41 version de &postgres; en utilisant la commande 43 42 <command> pg_config --configure</command>. </para> </listitem> 44 43 45 <listitem> <para> &slony1; La version 1.1 simplifie consid érablement les choses;46 dans la mesure o ù vous êtes dispenséd'avoir la version totale de &postgres; en sources, mais qui,47 au lieu de cela, se r éfère à l'endroit où&postgres; ses librairies,48 les binaires, la configuration, ainsi que <command> les fichiers #include </command> sont d éjà installés.44 <listitem> <para> &slony1; La version 1.1 simplifie considérablement les choses; 45 dans la mesure où vous êtes dispensé d'avoir la version totale de &postgres; en sources, mais qui, 46 au lieu de cela, se réfÚre à l'endroit où &postgres; ses librairies, 47 les binaires, la configuration, ainsi que <command> les fichiers #include </command> sont déjà installés. 49 48 </para> </listitem> 50 49 51 <listitem><para> &postgres; 8.0 et sup érieur est généralement plus facile voire idéal52 car comprenant d éjà une <quote>installation par défaut</quote> incluant la totalitédes fichiers d'inclusion50 <listitem><para> &postgres; 8.0 et supérieur est généralement plus facile voire idéal 51 car comprenant déjà une <quote>installation par défaut</quote> incluant la totalité des fichiers d'inclusion 53 52 <command> #include </command>. </para> 54 53 55 <para> Si vous utilisez les versions ant érieur de&postgres;, vous êtes sensé avoir trouvé54 <para> Si vous utilisez les versions antérieur de&postgres;, vous êtes sensé avoir trouvé 56 55 toutes les sources et de les installer, si le paquetage d'installation ne l'a pas fait pour vous <quote> sur le serveur, 57 les fichiers d'inclusions<command>#include</command></quote>, peuvent être réinstaller via la commande56 les fichiers d'inclusions<command>#include</command></quote>, peuvent être réinstaller via la commande 58 57 <command> make install-all-headers </command>.</para> 59 58 </listitem> … … 61 60 </itemizedlist> 62 61 63 <para> En effet, le <quote>cas d érangeant </quote> est un scénario où64 vous utilisez une version de &slony1; ant érieur à1.1 avec une62 <para> En effet, le <quote>cas dérangeant </quote> est un scénario où 63 vous utilisez une version de &slony1; antérieur à 1.1 avec une 65 64 <quote>vieille</quote> version de &postgres;, dans ce cas vous pouvez comptez devoir compiler &postgres; 66 à partir de zéro afin d'avoir tout les pré requis de &slony1; Recompile sera un passage obligé même si67 vous utilisez un version<quote>paquet ée</quote> de &postgres;.</para>68 69 <para> Si vous employez une version r écente de &postgres; et une version récente de &slony1;,70 alors les dependences peuvent être assez petits, et vous ne pouvez pas avoir besoin71 compl émentaire des sources &postgres;. Ces dispositions devraient soulager la mise en production de72 paquetage de &slony1; de sorte que vous pourriez m ême pouvoir espérer éviter la compilations65 à partir de zéro afin d'avoir tout les pré requis de &slony1; Recompile sera un passage obligé même si 66 vous utilisez un version<quote>paquetée</quote> de &postgres;.</para> 67 68 <para> Si vous employez une version récente de &postgres; et une version récente de &slony1;, 69 alors les dependences peuvent être assez petits, et vous ne pouvez pas avoir besoin 70 complémentaire des sources &postgres;. Ces dispositions devraient soulager la mise en production de 71 paquetage de &slony1; de sorte que vous pourriez même pouvoir espérer éviter la compilations 73 72 de &slony1;.</para> 74 73 … … 88 87 </para></question> 89 88 90 <answer><para> Vous ex écutez certainement une version &postgres; 7.491 ou ult érieur, où les en-têtes de serveur ne sont pas installé par défaut,89 <answer><para> Vous exécutez certainement une version &postgres; 7.4 90 ou ultérieur, où les en-têtes de serveur ne sont pas installé par défaut, 92 91 il vous suffi dans ce cas de lancer juste 93 92 une commande <command>make install</command> de &postgres;.</para> 94 93 95 <para> Vous avez besoin d'installer les en-t êtes de serveur lors d'installation de &postgres;94 <para> Vous avez besoin d'installer les en-têtes de serveur lors d'installation de &postgres; 96 95 via la commande <command>make install-all-headers</command>. 97 96 … … 100 99 <qandaentry id="threadsafety"> 101 100 102 <question><para> &slony1; semble se compiler correctement; maintenant, lorsque j'ex écute un103 &lslon;, certain évènement démarrent autour, mais la réplication ne se met pas101 <question><para> &slony1; semble se compiler correctement; maintenant, lorsque j'exécute un 102 &lslon;, certain évÚnement démarrent autour, mais la réplication ne se met pas 104 103 route.</para> 105 104 … … 119 118 </para> 120 119 121 <para> Parfois il peut se manifester de mani ères suivante ...120 <para> Parfois il peut se manifester de maniÚres suivante ... 122 121 123 122 <screen> … … 133 132 134 133 <answer><para>Sur AIX et Solaris (et probablement sur d'autre OS), les deux 135 &slony1; <emphasis>et &postgres;</emphasis> doivent être compilés avec l'134 &slony1; <emphasis>et &postgres;</emphasis> doivent être compilés avec l' 136 135 <option>--enable-thread-safety</option> option. Le message ci-dessus arrive lorsque la compilation 137 de &postgres; n'a pas fait appel àcette option.</para>136 de &postgres; n'a pas fait appel à cette option.</para> 138 137 139 138 <para>Le disfonctionnement ici vient du fait que le libc (threadsafe) et libpq 140 (non-threadsafe) utilisent des emplacement de m émoire différente pour le code erreur, ainsi en141 laissant la requ ête échouer.</para>142 143 <para>Des probl èmes de ce genre sur AIX et sur Solaris, surviennent avec des régularités surprenantes.144 ; l'erreur devrais prendre quelque choses ressemblant à un code <quote>objet ou à un code d'audit</quote> qui sont compilé139 (non-threadsafe) utilisent des emplacement de mémoire différente pour le code erreur, ainsi en 140 laissant la requête échouer.</para> 141 142 <para>Des problÚmes de ce genre sur AIX et sur Solaris, surviennent avec des régularités surprenantes. 143 ; l'erreur devrais prendre quelque choses ressemblant à un code <quote>objet ou à un code d'audit</quote> qui sont compilé 145 144 make sure that <emphasis>ALL</emphasis> of the necessary components have been 146 et link éavec l'option <option>--enable-thread-safety</option>.</para>147 148 <para>Pour le moment, je me concentre sur le probl ème de149 <envar>LD_LIBRARY_PATH</envar> si c'est d éfini, sur Solaris, pour pointer sur les150 librairies depuis une version ancienne de &postgres; afin de recompiler. Cela signifie que m ême si151 la base <emphasis>a été</emphasis> compilée avec l'145 et linké avec l'option <option>--enable-thread-safety</option>.</para> 146 147 <para>Pour le moment, je me concentre sur le problÚme de 148 <envar>LD_LIBRARY_PATH</envar> si c'est défini, sur Solaris, pour pointer sur les 149 librairies depuis une version ancienne de &postgres; afin de recompiler. Cela signifie que même si 150 la base <emphasis>a été</emphasis> compilée avec l' 152 151 <option>--enable-thread-safety</option>, et que 153 <application>slon</application> a été recompilé à nouveau, avec l'édition de lien dynamique de152 <application>slon</application> a été recompilé à nouveau, avec l'édition de lien dynamique de 154 153 <application>slon</application> pointant sur un 155 <quote>ancienne mauvaise version de thread-unsafe,</quote> et alors slon n'a pas fonctionn é. Ceci n'était pas clair156 que c' était le cas, jusqu'à ce que je rexécute <command>ldd</command>157 ànouveau <application>slon</application>.</para> </answer>154 <quote>ancienne mauvaise version de thread-unsafe,</quote> et alors slon n'a pas fonctionné. Ceci n'était pas clair 155 que c'était le cas, jusqu'à ce que je rexécute <command>ldd</command> 156 à nouveau <application>slon</application>.</para> </answer> 158 157 159 158 <answer><para> A noter que la version 7.4.2 de libpq, sur Solaris exige, un nouveau patch 160 de <link linkend="threadpatch"> </link> ; Le requis est également demandépour &postgres; version 8.0.159 de <link linkend="threadpatch"> </link> ; Le requis est également demandé pour &postgres; version 8.0. 161 160 </para> 162 161 </answer> … … 166 165 167 166 <question> <para> Je suis en train de migrer sur une nouvelle version de &slony1; 168 et je me d ébat avec un problème de<xref169 linkend="stmtupdatefunctions"/>. Lors d'ex écution de<xref167 et je me débat avec un problÚme de<xref 168 linkend="stmtupdatefunctions"/>. Lors d'exécution de<xref 170 169 linkend="stmtupdatefunctions"/>, mon 171 170 <application>postmaster</application> plante dessus avec un Signal 11. 172 Le fichier log ne contient aucune erreur, relatives à171 Le fichier log ne contient aucune erreur, relatives à 173 172 &postgres; les logs indiquent que, yes indeed, the postmaster fell 174 173 over.</para> 175 174 176 <para> En scrutant le fichier core avec un d ébuguer, on constate que175 <para> En scrutant le fichier core avec un débuguer, on constate que 177 176 l'incident survient lors de la validation d'une transaction. </para> 178 177 … … 180 179 </question> 181 180 182 <answer> <para> D ésagréablement l'ancienne versions de &postgres; 8.1 avait un problème183 o ù lorsque vous aviez besoin de redéfinir une fonction (comme , say,184 <function>upgradeSchema(text)</function>), et que apr ès, dans la même session de transaction185 , vous ex écutiez la même fonction, le181 <answer> <para> Désagréablement l'ancienne versions de &postgres; 8.1 avait un problÚme 182 où lorsque vous aviez besoin de redéfinir une fonction (comme , say, 183 <function>upgradeSchema(text)</function>), et que aprÚs, dans la même session de transaction 184 , vous exécutiez la même fonction, le 186 185 <application>postmaster</application> tombait en erreur, et que la 187 186 transaction ne pouvait se valider. </para> 188 187 189 188 <para> La commande &lslonik; <xref linkend="stmtupdatefunctions"/> 190 fonctionne de cette mani ère; dans la même transaction, essayez ceci:189 fonctionne de cette maniÚre; dans la même transaction, essayez ceci: 191 190 192 191 <itemizedlist> 193 192 <listitem><para> Charger les nouvelles fonctions (depuis <filename>slony1_funcs.sql</filename>), notamment comprenant <function>upgradeSchema(text)</function>. 194 193 </para> </listitem> 195 <listitem><para> Lancer <function>upgradeSchema(text)</function> pour effectuer la migration n écessaire des schémas de la base. </para> </listitem>194 <listitem><para> Lancer <function>upgradeSchema(text)</function> pour effectuer la migration nécessaire des schémas de la base. </para> </listitem> 196 195 <listitem><para> Notifier au pro cesses &lslon; le fait de changement de la configuration.</para> </listitem> 197 196 </itemizedlist> … … 199 198 200 199 <para> Malheureusement, en &postgres; 8.1.0, 8.1.1, 8.1.2, et 8.1.3, 201 ceci est conflictuel avec un bug o ù l'utilisation et la modification d'une fonction plpgsql au sein de la même transaction202 li é àun plantage. </para>203 204 <para> Plusieurs contournements sont àenvisager. </para>205 206 </answer> 207 208 <answer> <para> La r éponse privilégiée serais de dire migrer &postgres; en209 version 8.1.4 ou sup érieur. Les changements mineurs du noyau n'entraîne pas de200 ceci est conflictuel avec un bug où l'utilisation et la modification d'une fonction plpgsql au sein de la même transaction 201 lié à un plantage. </para> 202 203 <para> Plusieurs contournements sont à envisager. </para> 204 205 </answer> 206 207 <answer> <para> La réponse privilégiée serais de dire migrer &postgres; en 208 version 8.1.4 ou supérieur. Les changements mineurs du noyau n'entraîne pas de 210 209 reconstruction de la base; ceci devrait simplement exiger d'installer un noyau 8.1.x 211 en red émarrant les <application>postmaster</application> avec cette nouvelle version. </para>212 </answer> 213 214 <answer><para> Si cette solution ne convient pas, il est possible d'effectuer une s érie de transaction <quote>àla main</quote>,215 l' équivalent de ce que &lslonik; aurait fait pour cette migration. </para>210 en redémarrant les <application>postmaster</application> avec cette nouvelle version. </para> 211 </answer> 212 213 <answer><para> Si cette solution ne convient pas, il est possible d'effectuer une série de transaction <quote>à la main</quote>, 214 l'équivalent de ce que &lslonik; aurait fait pour cette migration. </para> 216 215 217 216 <itemizedlist> … … 220 219 <itemizedlist> 221 220 <listitem><para> Remplacer <quote>@CLUSTERNAME@</quote>avec le nom du cluster</para> </listitem> 222 <listitem><para> Remplacer <quote>@MODULEVERSION@</quote> avec la version litt érale de &slony1; comme <quote>1.2.10</quote> </para> </listitem>221 <listitem><para> Remplacer <quote>@MODULEVERSION@</quote> avec la version littérale de &slony1; comme <quote>1.2.10</quote> </para> </listitem> 223 222 <listitem><para> Remplacer <quote>@NAMESPACE@</quote> avec <quote>double-quoted</quote> nom du cluster, comme "_MyCluster" </para> </listitem> 224 223 </itemizedlist> 225 224 </listitem> 226 <listitem><para> Recharger cet<quote>remis àniveau</quote> de jeux de fonctions dans la base.</para> </listitem>227 <listitem><para> Ex écuter la fonction stockée via <command>select <function>upgradeSchema('1.2.7')</function>; </command>,228 en supposant que la pr écédente version de &slony1; en cours était celle de 1.2.7. </para> </listitem>229 <listitem><para> Rechargement total des processes &lslon; sera probablement une sage d écision après ce genre de <quote>chirurgie.</quote> </para> </listitem>225 <listitem><para> Recharger cet<quote>remis à niveau</quote> de jeux de fonctions dans la base.</para> </listitem> 226 <listitem><para> Exécuter la fonction stockée via <command>select <function>upgradeSchema('1.2.7')</function>; </command>, 227 en supposant que la précédente version de &slony1; en cours était celle de 1.2.7. </para> </listitem> 228 <listitem><para> Rechargement total des processes &lslon; sera probablement une sage décision aprÚs ce genre de <quote>chirurgie.</quote> </para> </listitem> 230 229 </itemizedlist> 231 230 </answer> … … 233 232 234 233 <qandaentry> 235 <question> <para> Probl ème d'installation sur Fedora/x86-64 </para>236 237 <para> Lorsqu'on essaie de configurer &slony1; sur syst ème Fedora x86-64,238 o ù <application>yum</application> a été utilisépour une installation du paquetage234 <question> <para> ProblÚme d'installation sur Fedora/x86-64 </para> 235 236 <para> Lorsqu'on essaie de configurer &slony1; sur systÚme Fedora x86-64, 237 où <application>yum</application> a été utilisé pour une installation du paquetage 239 238 <filename>postgresql-libs.x86_64</filename>, le message suivant se manifeste : 240 239 … … 245 244 </screen></para> 246 245 247 <para> Ceci arrive avec &postgres; 8.2.5, ce qui est certainement un peu plus r écent que246 <para> Ceci arrive avec &postgres; 8.2.5, ce qui est certainement un peu plus récent que 248 247 7.3. </para> 249 248 </question> 250 249 251 <answer> <para> <application>configure</application> est àla recherche de ce directif252 en compilant un petit programme requis, pour lequel il est appel é, et253 v érifie la compilation se passe bien. Avec la ligne de commande <command>gcc</command>250 <answer> <para> <application>configure</application> est à la recherche de ce directif 251 en compilant un petit programme requis, pour lequel il est appelé, et 252 vérifie la compilation se passe bien. Avec la ligne de commande <command>gcc</command> 254 253 il utilise <command>-lpq</command> pour chercher la librairie. </para> 255 254 256 255 257 <para> Malheureusement, ce paquetage fait d éfaut depuis le lien symbolique, de258 <filename>/usr/lib64/libpq.so</filename> à256 <para> Malheureusement, ce paquetage fait défaut depuis le lien symbolique, de 257 <filename>/usr/lib64/libpq.so</filename> à 259 258 <filename>libpq.so.5.0</filename>; c'est pourquoi il plante sur libpq. 260 Le <emphasis>vrai</emphasis> probl ème c'est que le compilateur n'arrive pas àtrouver une261 librairie pour l' édition de lien, et non pas que libpq est absent et qui a manqué àl'appel.262 </para> 263 264 <para> Eventuellement il faudra remonter ces informations vers ceux qui g èrent le paquetage259 Le <emphasis>vrai</emphasis> problÚme c'est que le compilateur n'arrive pas à trouver une 260 librairie pour l'édition de lien, et non pas que libpq est absent et qui a manqué à l'appel. 261 </para> 262 263 <para> Eventuellement il faudra remonter ces informations vers ceux qui gÚrent le paquetage 265 264 <filename>postgresql-libs.x86_64</filename>. </para> 266 265 </answer> 267 266 268 <answer> <para> Notez que ce m ême symptôme peut être révélateur des problèmes semblables de ce genre269 de configuration syst ème. Les mauvais liens symboliques, les mauvaises permissions, le mauvais comportement270 de la part de votre compilateur C, tout peuvent potentiellement mener à ce même message d'erreur. </para>271 272 <para> Ainsi si vous rencontrez cette erreur, vous aurez besoin de regarder le fichier log g énéré,273 <filename>config.log</filename>. Cherchez par la bas, et regarder quel est le souci <emphasis>r écemment</emphasis> rencontré.274 Ceci sera b énéfique, pour trouver la racine de l'épineux problème.</para>267 <answer> <para> Notez que ce même symptÃŽme peut être révélateur des problÚmes semblables de ce genre 268 de configuration systÚme. Les mauvais liens symboliques, les mauvaises permissions, le mauvais comportement 269 de la part de votre compilateur C, tout peuvent potentiellement mener à ce même message d'erreur. </para> 270 271 <para> Ainsi si vous rencontrez cette erreur, vous aurez besoin de regarder le fichier log généré, 272 <filename>config.log</filename>. Cherchez par la bas, et regarder quel est le souci <emphasis>récemment</emphasis> rencontré. 273 Ceci sera bénéfique, pour trouver la racine de l'épineux problÚme.</para> 275 274 </answer> 276 275 … … 279 278 </qandadiv> 280 279 281 <qandadiv id="faqconnections"> <title> &slony1; FAQ: Probl èmes relatifs aux connections</title>280 <qandadiv id="faqconnections"> <title> &slony1; FAQ: ProblÚmes relatifs aux connections</title> 282 281 <qandaentry> 283 282 … … 285 284 il est introuvable.</para></question> 286 285 287 <answer><para> Si le DNS sont erron és, alors l'instance &lslon;286 <answer><para> Si le DNS sont erronés, alors l'instance &lslon; 288 287 ne pourra pas se connecter aux noeuds.</para> 289 288 290 <para>Ceci m ène aux fait que les noeuds seront introuvables.</para>291 292 <para>Rev érifier la configuration des connexions. D'ailleurs depuis <xref293 linkend="slon"/> le linkage avec libpq, vous devrez avoir le mot de passe g énéré294 dans <filename> $HOME/.pgpass</filename>, partiellement report édans bonne/mauvais authentification ici.</para>289 <para>Ceci mÚne aux fait que les noeuds seront introuvables.</para> 290 291 <para>Revérifier la configuration des connexions. D'ailleurs depuis <xref 292 linkend="slon"/> le linkage avec libpq, vous devrez avoir le mot de passe généré 293 dans <filename> $HOME/.pgpass</filename>, partiellement reporté dans bonne/mauvais authentification ici.</para> 295 294 </answer> 296 295 </qandaentry> 297 296 298 297 <qandaentry id="morethansuper"> 299 <question> <para> J'ai cr ée un compte <quote>super utilisateur</quote>,300 <command>slony</command>, pour ex écuter les activités de réplications. Comme suggéré,301 je l'ai configur écomme super user, avec l'interrogation suivante :298 <question> <para> J'ai crée un compte <quote>super utilisateur</quote>, 299 <command>slony</command>, pour exécuter les activités de réplications. Comme suggéré, 300 je l'ai configuré comme super user, avec l'interrogation suivante : 302 301 <command> 303 302 update pg_shadow set usesuper = 't' where usename in ('slony', 304 303 'molly', 'dumpy'); 305 304 </command> 306 (Cette m ême commande permet d'autoriser autres utilisateurs d'exécuter vacuums et305 (Cette même commande permet d'autoriser autres utilisateurs d'exécuter vacuums et 307 306 sauvegarde).</para> 308 307 309 <para> Malheureusement, je suis tomb é en erreur, à chaque fois où je voulais souscrire àun nouveau ensemble.</para>308 <para> Malheureusement, je suis tombé en erreur, à chaque fois où je voulais souscrire à un nouveau ensemble.</para> 310 309 311 310 <programlisting> … … 320 319 </programlisting> 321 320 322 <para> Cel à a continué de se planter, à plusieurs reprise, juqsqu'àce que321 <para> Celà a continué de se planter, à plusieurs reprise, juqsqu'à ce que 323 322 <application>slon</application> se connecte comme 324 323 <command>postgres</command> le faisait.</para> 325 324 </question> 326 325 327 <answer><para> Le probl ème est assez évident en soi; la permission sur la table de système est ignorée, <envar>pg_class</envar>.</para></answer>326 <answer><para> Le problÚme est assez évident en soi; la permission sur la table de systÚme est ignorée, <envar>pg_class</envar>.</para></answer> 328 327 329 328 <answer><para> La <quote>solution</quote> est la suivante:</para> … … 333 332 </answer> 334 333 335 <answer><para> En version 8.1 et sup érieur, vous avez aussi besoin de:</para>334 <answer><para> En version 8.1 et supérieur, vous avez aussi besoin de:</para> 336 335 <programlisting> 337 336 update pg_authid set rolcatupdate = 't', rolsuper='t' where rolname = 'slony'; … … 351 350 </screen></para></question> 352 351 353 <answer> <para> Il y a évidemment un certain nombre de vieilles transactions bloquantes,352 <answer> <para> Il y a évidemment un certain nombre de vieilles transactions bloquantes, 354 353 de &slony1; restant depuis le traitement des synchros. Vous devriez jeter un coup d'oeil 355 àpg_locks to see what's up:</para>354 à pg_locks to see what's up:</para> 356 355 357 356 <screen> … … 364 363 </screen> 365 364 366 <para>See? 127314921 est en effet plus vieux que 127314958, et il est toujours en cours d'ex écution.</para>365 <para>See? 127314921 est en effet plus vieux que 127314958, et il est toujours en cours d'exécution.</para> 367 366 368 367 <para> Un long traitement G/LA, s'emballe durant une interrogation 369 368 <application>RT3</application>, avec 370 <application>pg_dump</application>, toute les transaction semblent s'ex écuter pour une période interminable.371 Jusqu' à ce que elles soient complétées ou bien interrompu, on verra alors le message d'erreur suivant:369 <application>pg_dump</application>, toute les transaction semblent s'exécuter pour une période interminable. 370 Jusqu'à ce que elles soient complétées ou bien interrompu, on verra alors le message d'erreur suivant: 372 371 <quote> data copy 373 372 for set 1 failed - sleep 60 seconds </quote>.</para> 374 373 375 374 376 <para>D'ailleurs, s'il y a plus d'une base de donn ées sur le cluster du &postgres;377 , et que la charge se d éporte sur une autre base, ce qui mène à procéder aux<quote>transactions plus tôt que XID378 quoi que</quote> s'av érant encore en marche. Le fait est que la base de donnée dissociée375 <para>D'ailleurs, s'il y a plus d'une base de données sur le cluster du &postgres; 376 , et que la charge se déporte sur une autre base, ce qui mÚne à procéder aux<quote>transactions plus tÃŽt que XID 377 quoi que</quote> s'avérant encore en marche. Le fait est que la base de donnée dissociée 379 378 sur le cluster n'est pas pertinente; &slony1; attendra 380 jusqu' àce que ces vieilles transactions se terminent.</para>381 </answer> 382 </qandaentry> 383 384 385 <qandaentry> 386 <question><para>M ême chose que ce qui précède. Ce que j'ai oubliéde mentionner, aussi bien,387 était que j'essayais d'ajouter388 <emphasis>DEUX</emphasis> abonn és, concurremment.</para></question>379 jusqu'à ce que ces vieilles transactions se terminent.</para> 380 </answer> 381 </qandaentry> 382 383 384 <qandaentry> 385 <question><para>Même chose que ce qui précÚde. Ce que j'ai oublié de mentionner, aussi bien, 386 était que j'essayais d'ajouter 387 <emphasis>DEUX</emphasis> abonnés, concurremment.</para></question> 389 388 390 389 <answer><para> Cela ne peut marcher: &slony1; ne peut employer la commande 391 <command>COPY</command> de mani ère concurrente. voir390 <command>COPY</command> de maniÚre concurrente. voir 392 391 <filename>src/slon/remote_worker.c</filename>, la fonction 393 392 <function>copy_set()</function></para> … … 398 397 </screen> 399 398 400 <para>Ceci s'av ère justement être une transaction de <command>COPY</command>401 impliqu éen installant l'abonnement pour un des noeuds. Tout a l'air bien;402 le syst ème s'occupe de configurer le premier abonné; il ne veut pas démarrer sur le second399 <para>Ceci s'avÚre justement être une transaction de <command>COPY</command> 400 impliqué en installant l'abonnement pour un des noeuds. Tout a l'air bien; 401 le systÚme s'occupe de configurer le premier abonné; il ne veut pas démarrer sur le second 403 402 tant que le premier n'a pas fini son enregistrement. 404 Cela repr ésente une cause possible.</para>405 406 <para>Ceci a (peut- être malheureusement)comme conséquence que vous ne pouvez pas peupler407 deux esclaves concurremment pour un simple fournisseur. Vous devez souscrire un et un seul abonn é àla fois,408 une fois qu'il a accompli l'abonnement,(copyant le contenu des table et autre) peut s'occuper de d ébuter l'enregistrement409 du deuxi ème.</para></answer>410 </qandaentry> 411 412 <qandaentry id="missingoids"> <question> <para> Nous somme souci és par quelques choses413 car ne pouvant envisager de d ésinstaller entièrement une réplication du cluster slony414 entre un ma ître et un esclave.</para>415 416 <warning> <para><emphasis>ASSUREZ-VOUS QUE VOUS ARR ÊTEZ L'EXECUTION DE VOS APPLICATIONS403 Cela représente une cause possible.</para> 404 405 <para>Ceci a (peut-être malheureusement)comme conséquence que vous ne pouvez pas peupler 406 deux esclaves concurremment pour un simple fournisseur. Vous devez souscrire un et un seul abonné à la fois, 407 une fois qu'il a accompli l'abonnement,(copyant le contenu des table et autre) peut s'occuper de débuter l'enregistrement 408 du deuxiÚme.</para></answer> 409 </qandaentry> 410 411 <qandaentry id="missingoids"> <question> <para> Nous somme souciés par quelques choses 412 car ne pouvant envisager de désinstaller entiÚrement une réplication du cluster slony 413 entre un maître et un esclave.</para> 414 415 <warning> <para><emphasis>ASSUREZ-VOUS QUE VOUS ARRÃTEZ L'EXECUTION DE VOS APPLICATIONS 417 416 SUR VOTRE BASE DE DONNEES MAITRE, LORS DE L'ELIMINATION D'UN MEMBRE DU 418 417 CLUSTER</emphasis>, or at least re-cycle all your open connections 419 418 after the event! </para></warning> 420 419 421 <para> Les connexions <quote>se renouvellent</quote> ou se rapportent àOIDs qui sont422 tu ées lors du lancement du script de désinstallation. Et vous obtiendrez423 un bon nombre d'erreurs en cons équence420 <para> Les connexions <quote>se renouvellent</quote> ou se rapportent à OIDs qui sont 421 tuées lors du lancement du script de désinstallation. Et vous obtiendrez 422 un bon nombre d'erreurs en conséquence 424 423 425 424 </para> … … 430 429 &postgres; qui sont la mise en cache des plans d'interrogation et les OIDs:</para> 431 430 <itemizedlist> 432 <listitem><para> Pr éparer la requête</para></listitem>431 <listitem><para> Préparer la requête</para></listitem> 433 432 <listitem><para> Les fonctions pl/pgSQL </para></listitem> 434 433 </itemizedlist> 435 434 436 <para> En particulier le probl ème n'est pas que sous &slony1; en un;437 se produirait quand de telles modifications importantes sont apport ées aux fondements de base438 de donn ées. Il n'est pas imaginable que cela mène à perdre des données, mais de se voir confronté439 à une vague d'erreur relatives àOID.435 <para> En particulier le problÚme n'est pas que sous &slony1; en un; 436 se produirait quand de telles modifications importantes sont apportées aux fondements de base 437 de données. Il n'est pas imaginable que cela mÚne à perdre des données, mais de se voir confronté 438 à une vague d'erreur relatives à OID. 440 439 </para></answer> 441 440 442 <answer><para> Le probl ème arrive lorsque vous utilisez une sorte de443 <quote>pool de connexion</quote> qui essaie de les reconnecter àla fin.444 Si vous remettez l'application en route apr ès ceci, des nouvelles connexions445 sont g énérées avec un <emphasis>nouveau</emphasis>plan d'interrogation, et qui446 font dispara ître les erreurs. Si votre pool de connexion tue les sessions, et en recrée de nouvelle,447 alors ces nouvelles session auront de <emphasis>nouveau</emphasis> plan d'ex écution, et448 que les erreurs vont dispara ître. </para></answer>441 <answer><para> Le problÚme arrive lorsque vous utilisez une sorte de 442 <quote>pool de connexion</quote> qui essaie de les reconnecter à la fin. 443 Si vous remettez l'application en route aprÚs ceci, des nouvelles connexions 444 sont générées avec un <emphasis>nouveau</emphasis>plan d'interrogation, et qui 445 font disparaître les erreurs. Si votre pool de connexion tue les sessions, et en recrée de nouvelle, 446 alors ces nouvelles session auront de <emphasis>nouveau</emphasis> plan d'exécution, et 447 que les erreurs vont disparaître. </para></answer> 449 448 450 449 En notre code nous laissons tomber le raccordement sur n'importe quelle 451 erreur nous ne peut pas tracer à un état prévu. Ceci réutiliserait par la452 suite tous les raccordements sur de tels probl èmes inattendus après juste une453 erreur par raccordement. Naturellement si l'erreur appr ête car une violation de454 contrainte qui est un état identifié, ce won' ; l'aide de t l'un ou l'autre, et455 si le probl ème est persistant, les raccordements maintiendra réutiliser qui450 erreur nous ne peut pas tracer à un état prévu. Ceci réutiliserait par la 451 suite tous les raccordements sur de tels problÚmes inattendus aprÚs juste une 452 erreur par raccordement. Naturellement si l'erreur apprête car une violation de 453 contrainte qui est un état identifié, ce won' ; l'aide de t l'un ou l'autre, et 454 si le problÚme est persistant, les raccordements maintiendra réutiliser qui 456 455 laisseront tomber l'effet de la mise en commun, dans le dernier cas que 457 le code de mise en commun pourrait également annoncer un Admin. pour jeter458 un coup d'oeil 456 le code de mise en commun pourrait également annoncer un Admin. pour jeter 457 un coup d'oeil 459 458 460 459 461 <answer> <para> Dans notre code nous éliminons toutes connexions ayant des erreurs inattendues dans462 le contexte. Ceci dit, les convexions devront être rétablis àla fin de chaque telle erreur463 inattendues, àraison d'une erreur par connexion. Naturellement si l'erreur remonte une violation de contrainte,464 qui est une condition reconnue, ne peut aider la situation, et si le probl ème persiste, les connexions sont restaurées,465 qui aura pour effet de casser l'effet de pool, dans ce dernier cas, l'administrateur aura àjeter460 <answer> <para> Dans notre code nous éliminons toutes connexions ayant des erreurs inattendues dans 461 le contexte. Ceci dit, les convexions devront être rétablis à la fin de chaque telle erreur 462 inattendues, à raison d'une erreur par connexion. Naturellement si l'erreur remonte une violation de contrainte, 463 qui est une condition reconnue, ne peut aider la situation, et si le problÚme persiste, les connexions sont restaurées, 464 qui aura pour effet de casser l'effet de pool, dans ce dernier cas, l'administrateur aura à jeter 466 465 un coup d'oeil sur le code. </para> </answer> 467 466 468 467 </qandaentry> 469 468 470 <qandaentry><question><para> J'ai migr émon &slony1; en version469 <qandaentry><question><para> J'ai migré mon &slony1; en version 471 470 1.2. J'ai maintenant cet avertissement dans les logs:</para> 472 471 … … 474 473 475 474 <para> Les deux <envar>sl_log_1</envar> et <envar>sl_log_2</envar> continue de prendre du volume, 476 et <envar>sl_log_1</envar> n'est jamais remis à zéro.475 et <envar>sl_log_1</envar> n'est jamais remis à zéro. 477 476 Quel est le souci? 478 477 </para> </question> 479 478 480 <answer><para> Ceci est un cas symptomatique et similaire au pr écèdent,481 relatif à la suppression de réplication : s'il y a des connexions établies, s'attardant à utiliser des plan d'exécutions482 bas és sur des vieilles fonctions stockées, donne par conséquence une écriture dans479 <answer><para> Ceci est un cas symptomatique et similaire au précÚdent, 480 relatif à la suppression de réplication : s'il y a des connexions établies, s'attardant à utiliser des plan d'exécutions 481 basés sur des vieilles fonctions stockées, donne par conséquence une écriture dans 483 482 <envar>sl_log_1</envar> </para> 484 483 485 <para> La fermeture des vieilles et l'ouverture des nouvelles connexions, r ésous ce problème.</para> </answer>486 487 <answer> <para> En d'autre terme, la pr ésence d'un ordre dans la liste d'attente de &postgres;488 pour impl émenter des dépendances, aura pour effet de descendre les plans d'exécution, lorsque cette dépendance484 <para> La fermeture des vieilles et l'ouverture des nouvelles connexions, résous ce problÚme.</para> </answer> 485 486 <answer> <para> En d'autre terme, la présence d'un ordre dans la liste d'attente de &postgres; 487 pour implémenter des dépendances, aura pour effet de descendre les plans d'exécution, lorsque cette dépendance 489 488 joue sur l'objet qui change. </para> </answer> 490 489 </qandaentry> 491 490 492 491 <qandaentry> 493 <question><para>J'ai point é un noeud de souscription à un fournisseur différent, et il a cessé494 la r éplication.</para></question>492 <question><para>J'ai pointé un noeud de souscription à un fournisseur différent, et il a cessé 493 la réplication.</para></question> 495 494 496 495 <answer><para> 497 Nous rappelons que ceci arrive lorsque nous souhaitons initialiser un noeud o ù496 Nous rappelons que ceci arrive lorsque nous souhaitons initialiser un noeud où 498 497 nous avons la configuration suivante: 499 498 500 499 <itemizedlist> 501 500 <listitem><para> Node 1 - fournisseur</para></listitem> 502 <listitem><para> Node 2 - s'enregistrer au noeud 1 - le noeud que nous avons r éinitialisé</para></listitem>503 <listitem><para> Node 3 - s'enregistrer au noeud 3 - le noeud qui doit r épliquer</para></listitem>501 <listitem><para> Node 2 - s'enregistrer au noeud 1 - le noeud que nous avons réinitialisé</para></listitem> 502 <listitem><para> Node 3 - s'enregistrer au noeud 3 - le noeud qui doit répliquer</para></listitem> 504 503 </itemizedlist></para> 505 504 506 <para>L'abonnement pour le noeud 3 a chang édans le sens d'avoir505 <para>L'abonnement pour le noeud 3 a changé dans le sens d'avoir 507 506 le noeud 3 comme fournisseur, et on a fait<xref linkend="stmtdropset"/> /<xref 508 linkend="stmtsubscribeset"/> pour le noeud 2 pour qu'il soit recharg é.</para>509 510 <para>Malencontreusement, la r éplication a été arrêtée soudainement sur le noeud 3.</para>511 512 <para>Le probl ème était qu'il n'y avait pas un ensemble appropriéde513 <quote>ports d' écoute</quote> dans <xref linkend="table.sl-listen"/> pour permettre aux évènements514 depuis le noeud 1 de se propager sur le 3. Les événements vont se reporter aux noeuds 2 et bloquent ainsi515 derri ère l'évènement <xref linkend="stmtsubscribeset"/> que le noeud 2 est en train de traiter.</para>516 517 <para>Le port d' écoute a lâché le script suivant de slonik où le noeud 3 aurait dû, en passant par le noeud 2518 de l'ajouter directement en ports d' écoute entre les deux noeuds 1 et 3.507 linkend="stmtsubscribeset"/> pour le noeud 2 pour qu'il soit rechargé.</para> 508 509 <para>Malencontreusement, la réplication a été arrêtée soudainement sur le noeud 3.</para> 510 511 <para>Le problÚme était qu'il n'y avait pas un ensemble approprié de 512 <quote>ports d'écoute</quote> dans <xref linkend="table.sl-listen"/> pour permettre aux évÚnements 513 depuis le noeud 1 de se propager sur le 3. Les événements vont se reporter aux noeuds 2 et bloquent ainsi 514 derriÚre l'évÚnement <xref linkend="stmtsubscribeset"/> que le noeud 2 est en train de traiter.</para> 515 516 <para>Le port d'écoute a lâché le script suivant de slonik où le noeud 3 aurait dû, en passant par le noeud 2 517 de l'ajouter directement en ports d'écoute entre les deux noeuds 1 et 3. 519 518 520 519 <programlisting> … … 532 531 </programlisting></para> 533 532 534 <para>Juste apr ès que ce script a été terminé, les événements de <command>SYNC</command> ont commencé à533 <para>Juste aprÚs que ce script a été terminé, les événements de <command>SYNC</command> ont commencé à 535 534 propager encore sur le noeud 3. 536 535 537 Ceci pr écise deux principes:536 Ceci précise deux principes: 538 537 <itemizedlist> 539 540 Si vous avez des noeuds multiples, et des abonn és en cascade,541 vous devez faire attention en repeuplant les entr és <xref538 <listitem><para> 539 Si vous avez des noeuds multiples, et des abonnés en cascade, 540 vous devez faire attention en repeuplant les entrés <xref 542 541 linkend="stmtstorelisten"/>, et en modifiant leur structures de l'<quote>arbre</quote>de changement 543 de r éplication.</para></listitem>544 545 <listitem><para> La version 1.1 fourni des meilleurs outils pour g érer ce cas.</para>542 de réplication.</para></listitem> 543 544 <listitem><para> La version 1.1 fourni des meilleurs outils pour gérer ce cas.</para> 546 545 </listitem> 547 546 548 547 </itemizedlist></para> 549 548 550 <para>Les probl èmes relatifs aux <quote>chemins d'écoute</quote> sont discutés549 <para>Les problÚmes relatifs aux <quote>chemins d'écoute</quote> sont discutés 551 550 plus bas au <xref linkend="listenpaths"/> </para></answer> 552 551 </qandaentry> … … 554 553 <qandaentry id="multipleslonconnections"> 555 554 556 <question><para> En red émarrant &lslon;, j'obtiens555 <question><para> En redémarrant &lslon;, j'obtiens 557 556 le message suivant <quote>FATAL</quote> dans le log. Que se passe-t-il??? </para> 558 557 <screen> … … 578 577 </question> 579 578 580 <answer><para> La table <envar>sl_nodelock</envar> est utilis ée comme un581 <quote>enclencheur</quote>pour pr évenir que les deux process &lslon; essaient de prendre582 la gestion du m ême noeud en même temps. Le &lslon; essais d'insérer583 un enregistrement dans la table; seulement il peut le faire avec succ ès que584 si il est le seul à gérer le noeud. </para></answer>585 586 <answer><para> Ce message d'erreur est typiquement un signe que vous avez d émarrez587 un second process &lslon; pour un noeud donn é. Le &lslon;pose la question évidente qui est :588 <quote>Avez vous d éjà un a slon démarré pour gérer ce noeud?</quote> </para></answer>589 590 Vous supposant éprouver une certaine sorte de panne de réseau, le raccordement591 entre le & ; lslon ; et la base de données peut échouer, et le & ; lslon; peut592 figurer ceci dehors longtemps avant le & ; postgres ; exemple il était reliéfait.593 Le r ésultat est qu'il y aura un certain nombre de les raccordements àvide sont partis sur594 le serveur de base de donn ées, qui won' ; t soit ferméjusqu'aux temps morts de TCP/IP complets,595 qui semble prendre normalement environ deux heures. Pour cette p ériode de deux heures, le & ; lslon;596 essayera de se relier, àplusieurs reprises, et recevra le message mortel ci-dessus, plus d'et au-dessus de.597 598 <answer><para> Vous supposant éprouver une certaine sorte de panne de réseau,599 les connections entre &lslon; et la base de donn ées peuvent échouer, et &lslon;600 peut avertir cela bien avant l'instance de &postgres; il était connectépour ce faire.601 La cons équence en est qu'un certain nombre de connexion pré-établie vont s'ouvrir su la base de données602 et qui ne vont pas se terminer jusqu' à ce que le timeout de TCP/IP arrive à échéance, chose qui n'arrive que603 tous les deux heures. Durant cette p ériode de deux heures, le &lslon; va essayer de se reconnecter,604 encore et encore, et obtient le message d'erreur ci-dessous r éputéFatl. </para>605 606 <para> Un administrateur peut mettre fin àcette situation en se connectant sur607 le serveur et en lan çant <command>kill -2</command> pour terminer les connexions mourantes.608 Malheureusement , puisque le probl ème a eu lieu dans couche de gestion de réseau,ni &postgres; ni &slony1;609 a le moyen direct de d étecter ceci. </para>610 611 <para> Vous pouvez <emphasis>la plupart</emphasis> des cas éviter ceci en s'assurant612 que le process &lslon; est h ébergé quelque part près des serveurs qu'il gère. Si le &lslon;613 est h ébergé sur le même serveur que la base de donnée qu'il gère, alors614 toute <quote>panne de r éseau</quote> qui peut interrompre les connexions615 seraient susceptibles d' être assez sérieux pour menacer le serveur entier. </para></answer>616 </qandaentry> 617 618 619 <qandaentry> 620 <question><para> Quand est-ce que je peux arr êter les process &lslon;?</para></question>621 622 <answer><para> G énéralement ce n'est pas un grand compromis pour arrêter les processes &lslon;579 <answer><para> La table <envar>sl_nodelock</envar> est utilisée comme un 580 <quote>enclencheur</quote>pour prévenir que les deux process &lslon; essaient de prendre 581 la gestion du même noeud en même temps. Le &lslon; essais d'insérer 582 un enregistrement dans la table; seulement il peut le faire avec succÚs que 583 si il est le seul à gérer le noeud. </para></answer> 584 585 <answer><para> Ce message d'erreur est typiquement un signe que vous avez démarrez 586 un second process &lslon; pour un noeud donné. Le &lslon;pose la question évidente qui est : 587 <quote>Avez vous déjà un a slon démarré pour gérer ce noeud?</quote> </para></answer> 588 589 Vous supposant éprouver une certaine sorte de panne de réseau, le raccordement 590 entre le &lslon; et la base de données peut échouer, et le &lslon; peut 591 figurer ceci dehors longtemps avant le &postgres; exemple il était relié fait. 592 Le résultat est qu'il y aura un certain nombre de les raccordements à vide sont partis sur 593 le serveur de base de données, qui won' ; t soit fermé jusqu'aux temps morts de TCP/IP complets, 594 qui semble prendre normalement environ deux heures. Pour cette période de deux heures, le &lslon; 595 essayera de se relier, à plusieurs reprises, et recevra le message mortel ci-dessus, plus d'et au-dessus de. 596 597 <answer><para> Vous supposant éprouver une certaine sorte de panne de réseau, 598 les connections entre &lslon; et la base de données peuvent échouer, et &lslon; 599 peut avertir cela bien avant l'instance de &postgres; il était connecté pour ce faire. 600 La conséquence en est qu'un certain nombre de connexion pré-établie vont s'ouvrir su la base de données 601 et qui ne vont pas se terminer jusqu'à ce que le timeout de TCP/IP arrive à échéance, chose qui n'arrive que 602 tous les deux heures. Durant cette période de deux heures, le &lslon; va essayer de se reconnecter, 603 encore et encore, et obtient le message d'erreur ci-dessous réputé Fatl. </para> 604 605 <para> Un administrateur peut mettre fin à cette situation en se connectant sur 606 le serveur et en lançant <command>kill -2</command> pour terminer les connexions mourantes. 607 Malheureusement , puisque le problÚme a eu lieu dans couche de gestion de réseau,ni &postgres; ni &slony1; 608 a le moyen direct de détecter ceci. </para> 609 610 <para> Vous pouvez <emphasis>la plupart</emphasis> des cas éviter ceci en s'assurant 611 que le process &lslon; est hébergé quelque part prÚs des serveurs qu'il gÚre. Si le &lslon; 612 est hébergé sur le même serveur que la base de donnée qu'il gÚre, alors 613 toute <quote>panne de réseau</quote> qui peut interrompre les connexions 614 seraient susceptibles d'être assez sérieux pour menacer le serveur entier. </para></answer> 615 </qandaentry> 616 617 618 <qandaentry> 619 <question><para> Quand est-ce que je peux arrêter les process &lslon;?</para></question> 620 621 <answer><para> Généralement ce n'est pas un grand compromis pour arrêter les processes &lslon; 623 622 Chacun d'eux est un <quote>simplement</quote> un client de &postgres;, 624 g érant chacun un noeud, qui engendre des fils pour gérer et recevoir des évènements623 gérant chacun un noeud, qui engendre des fils pour gérer et recevoir des évÚnements 625 624 depuis d'autre noeud. </para> 626 625 627 <para>L'<quote> évènement d'écoute</quote> des serveurs n'est pas un travail sorcier; ils n'ont628 rien à faire que de temps en temps de tester le noeud distant pour déterminer si sur le noeud en question,629 il y a des t âches à faire. Si vous tuer le process &lslon; sa surveillance sera fermée, qui doit avoir peu630 ou pas du tout d'impact sur rien peut- être. Les éventements générés pour un &lslon; en arrêt reprendront631 lors de son red émarrage.</para>632 633 &l

