| 1 |
<?xml version="1.0" encoding="UTF-8"?> |
|---|
| 2 |
<!-- DerniÚre modification |
|---|
| 3 |
le $Date$ |
|---|
| 4 |
par $Author$ |
|---|
| 5 |
révision $Revision$ --> |
|---|
| 6 |
|
|---|
| 7 |
<sect1 id="failover"> |
|---|
| 8 |
<title>Effectuer une bascule d'urgence avec &slony1;</title> |
|---|
| 9 |
<indexterm><primary>bascule d'urgence</primary> |
|---|
| 10 |
<secondary>reprise sur panne</secondary> |
|---|
| 11 |
</indexterm> |
|---|
| 12 |
|
|---|
| 13 |
<sect2><title>Avant-propos</title> |
|---|
| 14 |
|
|---|
| 15 |
<para>&slony1; est un systÚme de réplication asynchrone. à cause de cela, |
|---|
| 16 |
il est presque certain qu'au moment ou le noeud origine d'un ensemble de réplication |
|---|
| 17 |
tombe en panne, la derniÚre transaction <quote>committée</quote> sur |
|---|
| 18 |
l'origine ne soit pas encore propagée aux abonnés. Les systÚmes qui tombent |
|---|
| 19 |
en panne souvent soumis à une forte charge; c'est une des corollaires de la |
|---|
| 20 |
loi de Murphy. Ainsi le but principal est d'<emphasis>éviter</emphasis> que le serveur principal |
|---|
| 21 |
tombe en panne. La meilleur façon d'éviter cela est d'effectuer une |
|---|
| 22 |
maintenance fréquente.</para> |
|---|
| 23 |
|
|---|
| 24 |
<para> Ouvrir le capot d'un serveur à chaud n'est pas ce qu'on peut |
|---|
| 25 |
une façon <quote>professionelle</quote> d'assurer la maintenance d'un systÚme. |
|---|
| 26 |
En général, les utilisateurs qui ont besoin de réplication pour |
|---|
| 27 |
leur sauvegarde ou leur plan de reprise sur panne, ont également des critÚres |
|---|
| 28 |
trÚs stricts en matiÚre de <quote> temps d'arrêt du systÚme</quote>. |
|---|
| 29 |
Pour répondre à ces critÚres, &slony1; ne se contente de fournir des |
|---|
| 30 |
méthodes de reprise sur panne, il intÚgre également la notion de |
|---|
| 31 |
transfert d'origine.</para> |
|---|
| 32 |
|
|---|
| 33 |
<para> On suppose dans cette partie que le lecteur est familier avec l'utilitaire <xref linkend="slonik"/> |
|---|
| 34 |
et qu'il sait comment mettre en place une systÚme de réplication &slony1; composé de deux noeuds. |
|---|
| 35 |
</para> |
|---|
| 36 |
</sect2> |
|---|
| 37 |
|
|---|
| 38 |
<sect2><title>Bascule contrÎlée</title> |
|---|
| 39 |
|
|---|
| 40 |
<indexterm> |
|---|
| 41 |
<primary>bascule contrÎlée</primary> |
|---|
| 42 |
</indexterm> |
|---|
| 43 |
|
|---|
| 44 |
<para> Imaginons un noeud <quote>origine</quote>, appelé noeud1, avec un |
|---|
| 45 |
<quote>abonné</quote> appelé noeud2 (l'esclave). Une application web, placée |
|---|
| 46 |
sur un troisiÚme serveur, accÚde à la base de données sur noeud1. |
|---|
| 47 |
Les deux bases sont actives et fonctionnelles, la réplication est |
|---|
| 48 |
est à peu prÚs synchronisée. On contrÎle la bascule avec la commande |
|---|
| 49 |
<xref linkend="stmtmoveset"/>.</para> |
|---|
| 50 |
|
|---|
| 51 |
<itemizedlist> |
|---|
| 52 |
<listitem><para> Au moment ou nous écrivons ces lignes, basculer |
|---|
| 53 |
vers un autre serveur nécessite que l'application se reconnecte |
|---|
| 54 |
à la nouvelle base de donnée. Donc pour éviter toute complication, |
|---|
| 55 |
nous éteignons le serveur web. Les utilisateurs qui ont installé |
|---|
| 56 |
<application>pg_pool</application> pour gérer les connexions peuvent |
|---|
| 57 |
simplement éteindre le pool.</para> |
|---|
| 58 |
|
|---|
| 59 |
<para> Les actions à mener dépendent beaucoup de la configuration des applications qui utilisent |
|---|
| 60 |
la base de données. En général, les applications qui étaient connectées à |
|---|
| 61 |
l'ancienne base doivent détruire leurs connexions et en établir de nouvelles |
|---|
| 62 |
vers la base qui vient d'être promue dans le rÎle du <quote>/maître/</quote> rÎle. |
|---|
| 63 |
Il y a différentes façon de configurer cela, et donc différentes façon d'effectuer |
|---|
| 64 |
la bascule : |
|---|
| 65 |
<itemizedlist> |
|---|
| 66 |
<listitem><para> L'application stocke le nom de la base de donnée dans un fichier.</para> |
|---|
| 67 |
<para> Dans ce cas, la reconfiguration nécessite de changer la valeur dans ce fichier, d'arrêter |
|---|
| 68 |
puis de relancer l'application pour qu'elle pointe vers le nouvel emplacement des données.</para> |
|---|
| 69 |
</listitem> |
|---|
| 70 |
|
|---|
| 71 |
<listitem><para> Une utilisation pertinente de DNS consiste à créer |
|---|
| 72 |
<ulink url="http://www.iana.org/assignments/dns-parameters"> champs DNS </ulink> |
|---|
| 73 |
CNAME qui permet à l'application d'utiliser un nom pour référencer le noeud |
|---|
| 74 |
qui joue le rÎle du noeud <quote>maître</quote>.</para> |
|---|
| 75 |
|
|---|
| 76 |
<para> Dans ce cas, la reconfiguration nécessite de changer le CNAME |
|---|
| 77 |
pour point et vers le nouveau serveur, de plus il faut probablement relancer |
|---|
| 78 |
l'application pour rafraîchir les connexions à la base.</para> |
|---|
| 79 |
</listitem> |
|---|
| 80 |
|
|---|
| 81 |
<listitem><para> si vous utilisez <application>pg_pool</application> ou |
|---|
| 82 |
un <quote>gestionnaire de connexion</quote> similaire, alors la reconfiguration |
|---|
| 83 |
implique de modifier le paramÚtre de cet outil, à part cela la procédure est similaire |
|---|
| 84 |
à l'exemple DNS/CNAME ci-dessus. </para> |
|---|
| 85 |
</listitem> |
|---|
| 86 |
</itemizedlist></para> |
|---|
| 87 |
|
|---|
| 88 |
|
|---|
| 89 |
|
|---|
| 90 |
<para> Le nécessité de redémarrer l'application qui se connecte à la base dépend |
|---|
| 91 |
de la maniÚre dont elle a été conçu et des mécanismes de gestion d'erreurs de |
|---|
| 92 |
connexion qui ont été implémentés; si à la suite d'une erreur elle tente |
|---|
| 93 |
d'ouvrir à nouveau un connexion, alors il n'est pas nécessaire de la relancer.</para> |
|---|
| 94 |
</listitem> |
|---|
| 95 |
<listitem><para> Un petit script <xref linkend="slonik"/> exécute les commandes suivantes : |
|---|
| 96 |
<programlisting> |
|---|
| 97 |
lock set (id = 1, origin = 1); |
|---|
| 98 |
wait for event (origin = 1, confirmed = 2); |
|---|
| 99 |
move set (id = 1, old origin = 1, new origin = 2); |
|---|
| 100 |
wait for event (origin = 1, confirmed = 2); |
|---|
| 101 |
</programlisting></para> |
|---|
| 102 |
<para> AprÚs ces commandes, l'origine ( le rÎle du maître) de l'ensemble de réplication 1 |
|---|
| 103 |
est transféré sur le noeud 2. En fait elle n'est pas simplement transférée; le noeud1 devient |
|---|
| 104 |
un abonné parfaitement synchronisé et actif. En clair, les deux noeuds ont échangé |
|---|
| 105 |
leurs rÃŽles respectifs.</para> |
|---|
| 106 |
</listitem> |
|---|
| 107 |
|
|---|
| 108 |
<listitem><para> AprÚs la reconfiguration de l'application web (ou |
|---|
| 109 |
de <application><link linkend="pgpool"> pgpool </link></application>) pour |
|---|
| 110 |
qu'elle se connecte à la base du noeud 2, le serveur web est redémarré et |
|---|
| 111 |
reprend son activité normale.</para> |
|---|
| 112 |
|
|---|
| 113 |
<para> Lorsqu'on utilise un script shell, pour stopper l'application, |
|---|
| 114 |
lancer le script <application>slonik</application>, déplacer les fichiers de configuration |
|---|
| 115 |
et relancer l'ensemble, toute la procédure prend en général moins de 10 |
|---|
| 116 |
secondes.</para> |
|---|
| 117 |
</listitem> |
|---|
| 118 |
|
|---|
| 119 |
</itemizedlist> |
|---|
| 120 |
|
|---|
| 121 |
<para> Vous pouvez désormais éteindre le serveur qui héberge le noeud 1 et |
|---|
| 122 |
effectuer les opérations de maintenance requise. Lorsque le démon <xref |
|---|
| 123 |
linkend="slon"/> du noeud 1 est redémarré, il reprend la réplication, |
|---|
| 124 |
et rattrape son retard. Une fois synchronisé, on peut exécuter la procédure |
|---|
| 125 |
à nouveau pour restaurer la configuration originale.</para> |
|---|
| 126 |
|
|---|
| 127 |
<para> Ceci est la meilleure méthode pour ce genre d'opération de maintenance; |
|---|
| 128 |
Elle s'effectue rapidement, sous le contrÃŽle d'un administrateur, et elle |
|---|
| 129 |
n'implique aucune perte de données.</para> |
|---|
| 130 |
|
|---|
| 131 |
</sect2> |
|---|
| 132 |
<sect2><title>Bascule d'urgence</title> |
|---|
| 133 |
|
|---|
| 134 |
<indexterm> |
|---|
| 135 |
<primary>Bascule suite à une panne du systÚme</primary> |
|---|
| 136 |
</indexterm> |
|---|
| 137 |
|
|---|
| 138 |
<para> Lorsque de graves problÚmes apparaissent sur le serveur |
|---|
| 139 |
<quote>origine</quote>, il est parfois nécessaire d'effectuer une |
|---|
| 140 |
bascule ( <xref linkend="stmtfailover"/> ) vers le serveur de sauvegarde. |
|---|
| 141 |
C'est cas de figure qui n'a rien de souhaitable, car les transactions |
|---|
| 142 |
<quote>committées</quote> sur le serveur mais pas sur les abonnés, seront |
|---|
| 143 |
perdues. Certaines de ces transactions auront peut-être été annoncées |
|---|
| 144 |
à l'utilisateur final comme <quote>validées</quote>. En conséquence, les |
|---|
| 145 |
bascules d'urgence doivent être considérées comme un |
|---|
| 146 |
<emphasis>dernier recours</emphasis>. Le serveur origine |
|---|
| 147 |
qui subit <quote>l'avarie</quote> peut être maintenu assez longtemps, il est |
|---|
| 148 |
<emphasis>nettement</emphasis> |
|---|
| 149 |
préférable d'effectuer une bascule contrÎlée.</para> |
|---|
| 150 |
|
|---|
| 151 |
<para> &slony1; ne fournit pas de moyen de détection des pannes du systÚme. |
|---|
| 152 |
Abandonner des transactions <quote>committées</quote> est une décision |
|---|
| 153 |
commerciale qui ne peut pas être prise par un systÚme de gestion de base de données. |
|---|
| 154 |
Si vous voulez placer les commandes ci-dessous dans un script exécuté |
|---|
| 155 |
automatiquement par un systÚme de surveillance, et bien .... ce sont |
|---|
| 156 |
<emphasis>vos</emphasis> données, et <emphasis>votre</emphasis> politique |
|---|
| 157 |
de bascule d'urgence. </para> |
|---|
| 158 |
|
|---|
| 159 |
<itemizedlist> |
|---|
| 160 |
|
|---|
| 161 |
<listitem> |
|---|
| 162 |
<para>La commande <xref linkend="slonik"/> |
|---|
| 163 |
<programlisting> |
|---|
| 164 |
failover (id = 1, backup node = 2); |
|---|
| 165 |
</programlisting> |
|---|
| 166 |
</para> |
|---|
| 167 |
|
|---|
| 168 |
<para> ordonne au noeud 2 de se considérer comme le propriétaire |
|---|
| 169 |
(l'origine) de tous les sets que le noeud 1 possédait. Si il |
|---|
| 170 |
existe des noeuds supplémentaire dans le cluster &slony1; |
|---|
| 171 |
Tous les noeuds abonnés au noeud 1 sont avertis du changement. |
|---|
| 172 |
<application>Slonik</application> va aussi envoyer une requête |
|---|
| 173 |
à chaque abonné pour déterminer quel noeud à le plus haut niveau |
|---|
| 174 |
de synchronisation (<emphasis>c'est à dire</emphasis> - la derniÚre |
|---|
| 175 |
transaction <quote>committée</quote>) pour chaque ensemble de réplication. |
|---|
| 176 |
et la configuration sera changé de façon à ce que le noeud 2 applique |
|---|
| 177 |
d'abord ces transactions finales, avant d'autoriser l'accÚs en écriture |
|---|
| 178 |
sur les tables.</para> |
|---|
| 179 |
|
|---|
| 180 |
<para> De plus, tous les noeuds qui étaient abonnés directement au noeud 1 |
|---|
| 181 |
considéreront désormais le noeud 2 comme leur fournisseur de données |
|---|
| 182 |
pour cet ensemble de replication. Cela signifie qu'une fois que la |
|---|
| 183 |
commande de bascule d'urgence est complétée, plus aucun noeud du cluster ne |
|---|
| 184 |
reçoit d'information de la part du noeud 1.</para> |
|---|
| 185 |
|
|---|
| 186 |
</listitem> |
|---|
| 187 |
|
|---|
| 188 |
<listitem> |
|---|
| 189 |
<para> Reconfigurer et relancer l'application ( ou |
|---|
| 190 |
<application>pgpool</application>) pour qu'elle se reconnecte |
|---|
| 191 |
au noeud 2.</para> |
|---|
| 192 |
</listitem> |
|---|
| 193 |
|
|---|
| 194 |
<listitem> <para> Purger le noeud abandonné </para> |
|---|
| 195 |
|
|---|
| 196 |
<para> Vous découvrirez, aprÚs la bascule, qu'il existe encore |
|---|
| 197 |
beaucoup de références au noeud 1 dans la table <xref linkend="table.sl-node"/>, |
|---|
| 198 |
ainsi que ses tables associées telle que <xref linkend="table.sl-confirm"/>; |
|---|
| 199 |
puisque des données sont toujours présentes dans <xref linkend="table.sl-log-1"/>, |
|---|
| 200 |
&slony1; ne peut pas purger immédiatement le noeud. </para> |
|---|
| 201 |
|
|---|
| 202 |
<para> Une fois que la bascule sera complÚte et que le noeud 2 accepte |
|---|
| 203 |
les opérations d'écriture sur les tables répliquées, il faut supprimer |
|---|
| 204 |
toutes informations de configuration rémanentes avec la commande |
|---|
| 205 |
<xref linkend="stmtdropnode"/> : |
|---|
| 206 |
|
|---|
| 207 |
<programlisting> |
|---|
| 208 |
drop node (id = 1, event node = 2); |
|---|
| 209 |
</programlisting> |
|---|
| 210 |
</para> |
|---|
| 211 |
|
|---|
| 212 |
<para> Supposons que la panne résulte d'un problÚme matériel catastrophique |
|---|
| 213 |
sur le noeud 1, il est possible qu'il ne <quote>reste</quote> plus |
|---|
| 214 |
rien sur le noeud 1. Si la panne n'est pas <quote>totale</quote>, |
|---|
| 215 |
ce qui est souvent le cas lors d'une coupure réseau, vous découvrirez |
|---|
| 216 |
que le noeud 1 <quote>imagine</quote> toujours que rien n'a changé |
|---|
| 217 |
et qu'il est dans le même état qu'avant la panne. Reportez-vous à la |
|---|
| 218 |
section <xref linkend="rebuildnode1"/> pour plus de détails sur ce |
|---|
| 219 |
que cela implique.</para> |
|---|
| 220 |
|
|---|
| 221 |
</listitem> |
|---|
| 222 |
</itemizedlist> |
|---|
| 223 |
|
|---|
| 224 |
</sect2> |
|---|
| 225 |
|
|---|
| 226 |
<sect2><title> Automatisation de la commande <command> FAIL OVER </command> </title> |
|---|
| 227 |
|
|---|
| 228 |
<indexterm><primary>automatisation des bascules d'urgence</primary></indexterm> |
|---|
| 229 |
|
|---|
| 230 |
<para> Si vous choisissez d'automatiser la commande <command>FAIL OVER </command>, |
|---|
| 231 |
il est important de le faire <emphasis>avec soin</emphasis>. Vous |
|---|
| 232 |
devez être sur que le noeud en panne est réellement en panne, et vous |
|---|
| 233 |
être capable de vous assurer que le noeud en panne ne redémarre pas, |
|---|
| 234 |
ce qui entraînerait un conflit entre deux noeuds capables |
|---|
| 235 |
de jouer le rÎle du <quote>maître</quote>. </para> |
|---|
| 236 |
|
|---|
| 237 |
<note> <para> Le fait de <quote>tirer une balle dans la |
|---|
| 238 |
tête du serveur en panne</quote> ne pose pas directement |
|---|
| 239 |
de problÚme à la réplication ou à &slony1;; &slony1; supporte |
|---|
| 240 |
cela de maniÚre assez gravieuse, car une fois qu'une est marqué |
|---|
| 241 |
comme étant en panne, les autres noeuds <quote>l'oublier</quote> |
|---|
| 242 |
et l'ignorer. Le problÚme se situe plutÎt au niveau de |
|---|
| 243 |
<emphasis>votre application</emphasis>. |
|---|
| 244 |
Supposons que le noeud en panne soit capable de répondre |
|---|
| 245 |
aux requêtes de votre application, <emphasis>cela</emphasis> |
|---|
| 246 |
va certainement poser un problÚme qui n'a rien à voir avec &slony1;. |
|---|
| 247 |
Le problÚme est que deux bases de données sont en mesure de répondre |
|---|
| 248 |
en tant que <quote>maître</quote>. </para> </note> |
|---|
| 249 |
|
|---|
| 250 |
<para> Lorsqu'une bascule d'urgence est effectuée, il faut un |
|---|
| 251 |
mécanisme pour dégager de force le noeud en panne hors du réseau |
|---|
| 252 |
afin d'éviter toute confusion au niveau des applications. |
|---|
| 253 |
Cela peut être fait via une interface SNMP qui effectue |
|---|
| 254 |
une partie des opérations suivantes : |
|---|
| 255 |
|
|---|
| 256 |
<itemizedlist> |
|---|
| 257 |
|
|---|
| 258 |
<listitem><para> Ãteindre l'alimentation du serveur en panne. </para> |
|---|
| 259 |
|
|---|
| 260 |
<para> Si l'on en fait attention, le serveur peut réapparaître dans le |
|---|
| 261 |
systÚme de réplication lorsque les administrateurs le rallume. </para> |
|---|
| 262 |
|
|---|
| 263 |
</listitem> |
|---|
| 264 |
|
|---|
| 265 |
<listitem><para> Modifier de rÚgles de pare-feu ou d'autres configuration |
|---|
| 266 |
pour exclure du réseau l'adresse IP du serveur en panne. </para> |
|---|
| 267 |
|
|---|
| 268 |
<para> Si le serveur a de multiples interfaces, et donc de multiple adresses IP, |
|---|
| 269 |
cette approche permet de supprimer/désactiver les adresses utilisées l'application, |
|---|
| 270 |
tout en conservant les adresses <quote>administratives</quote> afin |
|---|
| 271 |
que le serveur reste accessible par les administrateurs systÚmes. |
|---|
| 272 |
</para> </listitem> |
|---|
| 273 |
|
|---|
| 274 |
</itemizedlist> |
|---|
| 275 |
</para> |
|---|
| 276 |
</sect2> |
|---|
| 277 |
|
|---|
| 278 |
<sect2 id="rebuildnode1"><title>AprÚs la bascule d'urgence, reconfiguration |
|---|
| 279 |
de l'ancienne origine</title> |
|---|
| 280 |
|
|---|
| 281 |
<indexterm><primary>reconstruction aprÚs une bascule d'urgence</primary></indexterm> |
|---|
| 282 |
|
|---|
| 283 |
<para> Ce qui arrive au noeud en panne dépend beaucoup de la nature de la catastrophe |
|---|
| 284 |
qui a conduit à la bascule d'urgence vers un autre noeud. Si le noeud |
|---|
| 285 |
a été abandonné à cause de la destruction physique des disques de stockage, |
|---|
| 286 |
il n'y a plus grand-chose à faire. D'un autre coté, si un noeud a été abandonné |
|---|
| 287 |
à cause d'une coupure réseau, qui n'a pas perturbé le fonctionnement normal |
|---|
| 288 |
du noeud <quote>fournisseur</quote>. Toutefois une fois que les communications |
|---|
| 289 |
sont restaurées, le fait est que le commande <command>FAIL OVER</command> |
|---|
| 290 |
rend obligatoire l'abandon du noeud qui était en panne.</para> |
|---|
| 291 |
|
|---|
| 292 |
<para> AprÚs ce genre de bascule d'urgence, les données stockées sur le |
|---|
| 293 |
noeud 1 seront rapidement et de plus en plus désynchronisées. |
|---|
| 294 |
par rapport aux autres noeuds. Elles doivent être considérées comme |
|---|
| 295 |
corrompues. Ainsi le seul moyen pour que le noeud 1 retourne dans |
|---|
| 296 |
le cluster de réplication et qu'il redevienne le noeud origine est de |
|---|
| 297 |
le reconstruire à partir de zéro comme un abonné, de le laisser rattraper |
|---|
| 298 |
son retard, puis d'effectuer la procédure de bascule contrÎlée. |
|---|
| 299 |
</para> |
|---|
| 300 |
|
|---|
| 301 |
<para> Une bonne raison de <emphasis>ne pas</emphasis> faire cela |
|---|
| 302 |
automatiquement est que d'importante mises à jour ( d'un point de |
|---|
| 303 |
vue <emphasis>commercial</emphasis> ) ont pu être |
|---|
| 304 |
<quote>committée</quote> sur le systÚme en panne. |
|---|
| 305 |
Vous souhaiterez probablement analyser les derniÚres transactions que |
|---|
| 306 |
le noeud a réalisé avant de tomber en panne, afin de voir si certaines |
|---|
| 307 |
doivent être ré-appliquer sur le cluster <quote>actif</quote>. |
|---|
| 308 |
Par exemple, si quelqu'un réalisait des opérations bancaires impactant |
|---|
| 309 |
des comptes clients au moment de la panne, il est souhaitable de |
|---|
| 310 |
ne pas perdre cette information.</para> |
|---|
| 311 |
|
|---|
| 312 |
<warning> <para> On a observé certains résultats étranges lorsqu'un |
|---|
| 313 |
noeud <quote>tombe en panne</quote> à cause d'une coupure réseau persistante, |
|---|
| 314 |
par opposition aux pannes du systÚme de stockage. Dans de tel scénarios, |
|---|
| 315 |
le noeud <quote>en panne</quote> dispose d'une base de données en |
|---|
| 316 |
parfait état de marche; le fait est qu'ayant été coupé des autres noeuds, |
|---|
| 317 |
il <quote>crie en silence</quote>. </para> |
|---|
| 318 |
|
|---|
| 319 |
<para> Lorsque la connexion réseau est réparée, ce noeud peut réapparaître |
|---|
| 320 |
et conformément <emphasis>sa</emphasis> configuration, il va communiquer avec les |
|---|
| 321 |
autres noeuds du cluster &slony1;. </para> |
|---|
| 322 |
|
|---|
| 323 |
<para> En <emphasis>fait</emphasis>, la confusion se trouve uniquement sur |
|---|
| 324 |
ce noeud. Les autres noeud du cluster ne sont pas du tout perturbés; |
|---|
| 325 |
ils savent que ce noeud est <quote>mort</quote>, et qu'ils doivent |
|---|
| 326 |
l'ignorer. Mais il est impossible de savoir cela en regardent le noeud |
|---|
| 327 |
qui a était <quote>en panne</quote>. |
|---|
| 328 |
</para> |
|---|
| 329 |
|
|---|
| 330 |
<para> Ceci nous ramÚne au fait que &slony1; n'est pas un outil de surveillance |
|---|
| 331 |
de réseau. Vous devez avoir des méthodes claires pour signaler aux applications et |
|---|
| 332 |
aux utilisateurs quels bases de données doivent être utilisées. En l'absence |
|---|
| 333 |
de telles méthodes, la réplication ne fera qu'empirer le potentiel de confusion, |
|---|
| 334 |
et les bascules d'urgence seront un énorme potentiel de confusion. |
|---|
| 335 |
</para> |
|---|
| 336 |
</warning> |
|---|
| 337 |
|
|---|
| 338 |
<para> Si la base de données est trÚs volumineuse, la construction du noeud 1 |
|---|
| 339 |
peut prendre plusieurs heures; ceci est une autre raison de considérer |
|---|
| 340 |
les bascules d'urgence comme un <quote>dernier recours</quote> non souhaitable. |
|---|
| 341 |
</para> |
|---|
| 342 |
|
|---|
| 343 |
</sect2> |
|---|
| 344 |
|
|---|
| 345 |
</sect1> |
|---|