| 373 | | <listitem><para><envar>LOGHOME </envar> indicates the |
|---|
| 374 | | <quote>home</quote> directory for log storage.</para> |
|---|
| 375 | | |
|---|
| 376 | | <para> This script does not assume the use of the Apache log rotator |
|---|
| 377 | | to manage logs; in that &postgres; version 8 does its own log |
|---|
| 378 | | rotation, it seems undesirable to retain a dependancy on specific log |
|---|
| 379 | | rotation <quote>technology.</quote> </para></listitem> |
|---|
| 380 | | |
|---|
| 381 | | <listitem><para><envar>CLUSTERS</envar> is a list of &slony1; clusters |
|---|
| 382 | | under management. </para></listitem> |
|---|
| 383 | | |
|---|
| 384 | | </itemizedlist> |
|---|
| 385 | | |
|---|
| 386 | | <para> In effect, you could run this every five minutes, and it would |
|---|
| 387 | | launch any missing &lslon; processes. </para> |
|---|
| | 373 | <listitem><para><envar>LOGHOME </envar> indique le répertoire |
|---|
| | 374 | <quote>home</quote> pour le stockage des journaux applicatifs.</para> |
|---|
| | 375 | |
|---|
| | 376 | <para> Ce script ne nécessite pas l'utilisation de gestionnaire de logs d'Apache, |
|---|
| | 377 | sachant que &postgres; version 8 gÚre lui-même la rotation des logs, |
|---|
| | 378 | il semble inopportun de garder une dépendance à une <quote>technologie</quote> |
|---|
| | 379 | de rotation spécifique. </para></listitem> |
|---|
| | 380 | |
|---|
| | 381 | <listitem><para><envar>CLUSTERS</envar> est la liste des slusters &slony1; qui sont gérés. |
|---|
| | 382 | </para></listitem> |
|---|
| | 383 | |
|---|
| | 384 | </itemizedlist> |
|---|
| | 385 | |
|---|
| | 386 | <para> En pratique, vous pouvez lancer ce programme toutes les cinq minutes, et il relancera tous |
|---|
| | 387 | les processus &lslon; manquants. </para> |
|---|
| 402 | | <para> It performs the following:</para> |
|---|
| 403 | | |
|---|
| 404 | | <itemizedlist> |
|---|
| 405 | | <listitem><para> It dumps the origin node's schema, including the data in the &slony1; cluster schema. </para> |
|---|
| 406 | | |
|---|
| 407 | | <para> Note that the extra environment variables <envar>PGPORT</envar> |
|---|
| 408 | | and <envar>PGHOST</envar> to indicate additional information about |
|---|
| 409 | | where the database resides. </para></listitem> |
|---|
| 410 | | |
|---|
| 411 | | <listitem><para> This data is loaded into the freshly created temporary database, <envar>temppayroll</envar> </para> </listitem> |
|---|
| 412 | | <listitem><para> The table and sequence OIDs in &slony1; tables are corrected to point to the temporary database's configuration. </para> </listitem> |
|---|
| 413 | | <listitem><para> A slonik script is run to perform <xref linkend="stmtuninstallnode"/> on the temporary database. This eliminates all the special &slony1; tables, schema, and removes &slony1; triggers from replicated tables. </para> </listitem> |
|---|
| 414 | | <listitem><para> Finally, <application>pg_dump</application> is run against the temporary database, delivering a copy of the cleaned up schema to standard output. </para> </listitem> |
|---|
| | 401 | <para> Elle réalise les actions suivantes :</para> |
|---|
| | 402 | |
|---|
| | 403 | <itemizedlist> |
|---|
| | 404 | <listitem><para> Elle fait un dump du schéma du noeud origine, y compris les informations du schéma |
|---|
| | 405 | du cluster &slony1;. </para> |
|---|
| | 406 | |
|---|
| | 407 | <para> Notons que les variables d'environnement <envar>PGPORT</envar> |
|---|
| | 408 | et <envar>PGHOST</envar> fournissent des informations additionnelles sur l'emplacement de la |
|---|
| | 409 | base de données. </para></listitem> |
|---|
| | 410 | |
|---|
| | 411 | <listitem><para> Ces informations sont chargées dans une table temporaire fraichement créée : <envar>temppayroll</envar> </para> </listitem> |
|---|
| | 412 | <listitem><para> Les OIDs de table et de séquence dans les tables &slony1; sont corrigées pour |
|---|
| | 413 | pointer vers la configuration de la base temporaire. </para> </listitem> |
|---|
| | 414 | <listitem><para> Un script slonik est lancé pour effecter l'action <xref linkend="stmtuninstallnode"/> |
|---|
| | 415 | sur la base temporaire. Ceci élimine toutes les tables et le schéma spécifique à &slony1; |
|---|
| | 416 | et supprime les triggers &slony1; des tables répliquées. </para> </listitem> |
|---|
| | 417 | <listitem><para> Enfin, la commande <application>pg_dump</application> est lancée sur la base |
|---|
| | 418 | temporaire, et produit une copie nettoyée du schéma sur la sortie standard. </para> </listitem> |
|---|
| 422 | | <para> If you are running a lot of replicated databases, where there |
|---|
| 423 | | are numerous &slony1; clusters, it can get painful to track and |
|---|
| 424 | | document this. The following tools may be of some assistance in this.</para> |
|---|
| 425 | | |
|---|
| 426 | | <para> <application>slony-cluster-analysis.sh</application> is a shell |
|---|
| 427 | | script intended to provide some over-time analysis of the |
|---|
| 428 | | configuration of a &slony1; cluster. You pass in the usual |
|---|
| 429 | | <application>libpq</application> environment variables |
|---|
| | 426 | <para> Si vous exploitez beaucoup de bases répliquées, au sein de plusieurs clusters &slony1;, |
|---|
| | 427 | il peut devenir pénible de suivre et de documenter votre architecture. |
|---|
| | 428 | L'outil suivant peut vous y aider.</para> |
|---|
| | 429 | |
|---|
| | 430 | <para> <application>slony-cluster-analysis.sh</application> est un script shell |
|---|
| | 431 | conçu pour fournir une analyse à long terme de la configuration d'un cluster |
|---|
| | 432 | &slony1;. Vous passez les variables d'environnement |
|---|
| | 433 | <application>libpq</application> habituelles |
|---|
| 431 | | <envar>PGDATABASE</envar>, and such) to connect to a member of a |
|---|
| 432 | | &slony1; cluster, and pass the name of the cluster as an argument.</para> |
|---|
| 433 | | |
|---|
| 434 | | <para> The script then does the following:</para> |
|---|
| 435 | | <itemizedlist> |
|---|
| 436 | | <listitem><para> Runs a series of queries against the &slony1; tables to get lists of nodes, paths, sets, and tables. </para> </listitem> |
|---|
| 437 | | <listitem><para> This is stowed in a temporary file in <filename>/tmp</filename> </para> </listitem> |
|---|
| 438 | | <listitem><para> A comparison is done between the present configuration and the configuration the last time the tool was run. If the configuration differs, an email of the difference (generated using <application>diff</application>) is sent to a configurable email address. </para> </listitem> |
|---|
| 439 | | <listitem><para> If the configuration has changed, the old configuration file is renamed to indicate when the script noticed the change. </para></listitem> |
|---|
| 440 | | <listitem><para> Ultimately, the current configuration is stowed in <envar>LOGDIR</envar> in a filename like <filename>cluster.last </filename> </para> </listitem> |
|---|
| 441 | | </itemizedlist> |
|---|
| 442 | | |
|---|
| 443 | | <para> There is a sample <quote>wrapper</quote> script, |
|---|
| 444 | | <filename>slony-cluster-analysis-mass.sh</filename>, which sets things |
|---|
| 445 | | up to point to a whole bunch of &slony1; clusters.</para> |
|---|
| 446 | | |
|---|
| 447 | | <para> This should make it easier for a group of DBAs to keep track of |
|---|
| 448 | | two things: </para> |
|---|
| 449 | | |
|---|
| 450 | | <itemizedlist> |
|---|
| 451 | | |
|---|
| 452 | | <listitem><para> Documenting the current state of system |
|---|
| 453 | | configuration. </para></listitem> |
|---|
| 454 | | |
|---|
| 455 | | <listitem><para> Noticing when configuration |
|---|
| 456 | | changes. </para></listitem> |
|---|
| | 435 | <envar>PGDATABASE</envar>, et ainsi de suite) pour se connecter à un membre du cluster |
|---|
| | 436 | &slony1;, et passer le nom du cluster comme argument.</para> |
|---|
| | 437 | |
|---|
| | 438 | <para> Le script effectue alors les actions suivantes :</para> |
|---|
| | 439 | <itemizedlist> |
|---|
| | 440 | <listitem><para> Lancement d'une séries de requêtes sur les tables &slony1; pour obtenir la liste des |
|---|
| | 441 | noeuds, des voies de communication, des ensembles de réplication et des tables. |
|---|
| | 442 | </para> </listitem> |
|---|
| | 443 | <listitem><para> Ces données sont stockées dans un fichier temporaire situé dans <filename>/tmp</filename> </para> </listitem> |
|---|
| | 444 | <listitem><para> Une comparaison est effectuée entre la configuration présente et la configuration |
|---|
| | 445 | trouvée lors de la derniÚre exécution du script. Si la configuration a changé, un courriel contenant |
|---|
| | 446 | les différences ( produit avec <application>diff</application>) |
|---|
| | 447 | est envoyée à l'adresse spécifiée. </para> </listitem> |
|---|
| | 448 | <listitem><para> Si la configuration a changé, l'ancien fichier de configuration est renommé |
|---|
| | 449 | pour indiquer quand le script a remarqué le changement. </para></listitem> |
|---|
| | 450 | <listitem><para> Finalement, la configuration courante est stockée dans le dossier |
|---|
| | 451 | <envar>LOGDIR</envar> dans un fichier nommé <filename>cluster.last </filename> </para> </listitem> |
|---|
| | 452 | </itemizedlist> |
|---|
| | 453 | |
|---|
| | 454 | <para> Il existe une exemple de script <quote>wrapper</quote>, |
|---|
| | 455 | <filename>slony-cluster-analysis-mass.sh</filename>, qui permet de |
|---|
| | 456 | pointer vers un ensemble de clusters &slony1;.</para> |
|---|
| | 457 | |
|---|
| | 458 | <para> Ceci devrait simplifier la taches des administrateurs ("DBA") sur deux plans : </para> |
|---|
| | 459 | |
|---|
| | 460 | <itemizedlist> |
|---|
| | 461 | |
|---|
| | 462 | <listitem><para> La documentation de l'état courant du systÚme. |
|---|
| | 463 | </para></listitem> |
|---|
| | 464 | |
|---|
| | 465 | <listitem><para> La surveillance des changements de configuration. </para></listitem> |
|---|
| 461 | | <sect2 id="configurereplication"> <title> Generating slonik scripts |
|---|
| 462 | | using <filename>configure-replication.sh</filename> </title> |
|---|
| 463 | | |
|---|
| 464 | | <indexterm><primary> generate slonik scripts for a cluster </primary></indexterm> |
|---|
| 465 | | |
|---|
| 466 | | <para> The <filename>tools</filename> script |
|---|
| 467 | | <filename>configure-replication.sh</filename> is intended to automate |
|---|
| 468 | | generating slonik scripts to configure replication. This script is |
|---|
| 469 | | based on the configuration approach taken by the <xref |
|---|
| | 470 | <sect2 id="configurereplication"> <title> Génération de scripts slonik avec |
|---|
| | 471 | <filename>configure-replication.sh</filename> </title> |
|---|
| | 472 | |
|---|
| | 473 | <indexterm><primary> générer des scripts slonik pour un cluster </primary></indexterm> |
|---|
| | 474 | |
|---|
| | 475 | <para> Le script |
|---|
| | 476 | <filename>configure-replication.sh</filename>, situé dans le répertoire <filename>outil</filename>, |
|---|
| | 477 | est conçu pour automatiser la génération de scripts slonik de configuration de la |
|---|
| | 478 | réplication. La configuration de ce script reprend la même approche que le <xref |
|---|
| 472 | | <para> This script uses a number (possibly large, if your |
|---|
| 473 | | configuration needs to be particularly complex) of environment |
|---|
| 474 | | variables to determine the shape of the configuration of a cluster. |
|---|
| 475 | | It uses default values extensively, and in many cases, relatively few |
|---|
| 476 | | environment values need to be set in order to get a viable |
|---|
| 477 | | configuration. </para> |
|---|
| 478 | | |
|---|
| 479 | | <sect3><title>Global Values</title> |
|---|
| 480 | | |
|---|
| 481 | | <para> There are some values that will be used universally across a |
|---|
| 482 | | cluster: </para> |
|---|
| | 481 | <para> Ce script utilise beaucoup ( peut-être énormément, si votre configuration |
|---|
| | 482 | est particuliÚrement complexe) de variables d'environnement pour déterminer |
|---|
| | 483 | la forme de la configuration du cluster. Il utilise massivement les valeurs par |
|---|
| | 484 | défaut, et dans la plupart des cas, peu de valeurs doivent être positionnées |
|---|
| | 485 | afin d'obtenir une configuration viable. </para> |
|---|
| | 486 | |
|---|
| | 487 | <sect3><title>Valeurs Globales</title> |
|---|
| | 488 | |
|---|
| | 489 | <para> Certaines valeurs sont utilisées universellement partout sur le cluster : </para> |
|---|
| 506 | | <para>Defaults are provided for <emphasis>all</emphasis> of these |
|---|
| 507 | | values, so that if you run |
|---|
| 508 | | <filename>configure-replication.sh</filename> without setting any |
|---|
| 509 | | environment variables, you will get a set of slonik scripts. They may |
|---|
| 510 | | not correspond, of course, to any database you actually want to |
|---|
| 511 | | use...</para> |
|---|
| 512 | | </sect3> |
|---|
| 513 | | |
|---|
| 514 | | <sect3><title>Node-Specific Values</title> |
|---|
| 515 | | |
|---|
| 516 | | <para>For each node, there are also four environment variables; for node 1: </para> |
|---|
| | 513 | <para>Des valeurs par défaults sont fournies pour <emphasis>chacune</emphasis> de ces valeurs, |
|---|
| | 514 | si bien que si vous lancez <filename>configure-replication.sh</filename> |
|---|
| | 515 | sans configurer aucune variable d'environnement, vous obtiendrez |
|---|
| | 516 | un ensemble de scripts slonik. |
|---|
| | 517 | Bien sûr, ils ne correspondront pas aux bases que vous voudrez configurer...</para> |
|---|
| | 518 | </sect3> |
|---|
| | 519 | |
|---|
| | 520 | <sect3><title>Valeur spécifique à un noeud</title> |
|---|
| | 521 | |
|---|
| | 522 | <para>Pour chaque node, il y a également quatre variables d'environnement; |
|---|
| | 523 | pour le noeud 1: </para> |
|---|
| 528 | | <para> It is quite likely that <envar>DB*</envar>, |
|---|
| 529 | | <envar>USER*</envar>, and <envar>PORT*</envar> should be drawn from |
|---|
| 530 | | the global <envar>PGDATABASE</envar>, <envar>PGUSER</envar>, and |
|---|
| 531 | | <envar>PGPORT</envar> values above; having the discipline of that sort |
|---|
| 532 | | of uniformity is usually a good thing.</para> |
|---|
| 533 | | |
|---|
| 534 | | <para> In contrast, <envar>HOST*</envar> values should be set |
|---|
| 535 | | explicitly for <envar>HOST1</envar>, <envar>HOST2</envar>, ..., as you |
|---|
| 536 | | don't get much benefit from the redundancy replication provides if all |
|---|
| 537 | | your databases are on the same server!</para> |
|---|
| 538 | | |
|---|
| 539 | | </sect3> |
|---|
| 540 | | |
|---|
| 541 | | <sect3><title>Resulting slonik scripts</title> |
|---|
| 542 | | |
|---|
| 543 | | <para> slonik config files are generated in a temp directory under |
|---|
| 544 | | <filename>/tmp</filename>. The usage is thus:</para> |
|---|
| 545 | | |
|---|
| 546 | | <itemizedlist> |
|---|
| 547 | | |
|---|
| 548 | | <listitem> <para><filename>preamble.slonik</filename> is a |
|---|
| 549 | | <quote>preamble</quote> containing connection info used by the other |
|---|
| 550 | | scripts.</para> |
|---|
| 551 | | |
|---|
| 552 | | <para> Verify the info in this one closely; you may want to keep this |
|---|
| 553 | | permanently to use with future maintenance you may want to do on the |
|---|
| 554 | | cluster.</para></listitem> |
|---|
| | 536 | <para> Il est trÚs probable que <envar>DB*</envar>, |
|---|
| | 537 | <envar>USER*</envar>, et <envar>PORT*</envar> correspondent aux |
|---|
| | 538 | variables globales <envar>PGDATABASE</envar>, <envar>PGUSER</envar>, et |
|---|
| | 539 | <envar>PGPORT</envar> décrites précédemment; |
|---|
| | 540 | Conserver cette correspondance est souvent une bonne chose.</para> |
|---|
| | 541 | |
|---|
| | 542 | <para> En revanche, Les valeurs <envar>HOST*</envar> doivent être définies |
|---|
| | 543 | explicitement pour <envar>HOST1</envar>, <envar>HOST2</envar>, ..., |
|---|
| | 544 | car il n'est pas trÚs malin de mettre en place un systÚme de réplication |
|---|
| | 545 | si toutes les bases redondantes se trouvent sur le même serveur !</para> |
|---|
| | 546 | |
|---|
| | 547 | </sect3> |
|---|
| | 548 | |
|---|
| | 549 | <sect3><title>Les scripts slonik générés</title> |
|---|
| | 550 | |
|---|
| | 551 | <para> Les scripts de configuration slonik sont générés dans un repertoire |
|---|
| | 552 | temporaire à l'intérieur de <filename>/tmp</filename>. |
|---|
| | 553 | Leur usage est le suivant :</para> |
|---|
| | 554 | |
|---|
| | 555 | <itemizedlist> |
|---|
| | 556 | |
|---|
| | 557 | <listitem> <para><filename>preamble.slonik</filename> est un fichier |
|---|
| | 558 | <quote>preambule</quote> contenant les informations de connexion utilisées |
|---|
| | 559 | par les autres scripts.</para> |
|---|
| | 560 | |
|---|
| | 561 | <para> Vérifier attentivement celui-ci; vous pourrez le réutiliser pour |
|---|
| | 562 | les futures opérations de maintenance que vous effectuerez sur le cluster. |
|---|
| | 563 | </para></listitem> |
|---|
| 567 | | <para> This is the second script to run; it indicates how the &lslon;s |
|---|
| 568 | | should intercommunicate. It assumes that all &lslon;s can talk to all |
|---|
| 569 | | nodes, which may not be a valid assumption in a complexly-firewalled |
|---|
| 570 | | environment. If that assumption is untrue, you will need to modify |
|---|
| 571 | | the script to fix the paths.</para></listitem> |
|---|
| | 576 | <para> Le second script à exécuter; il indique comment |
|---|
| | 577 | les &lslon;s doivent communiquer entre eux. Ce script suppose que |
|---|
| | 578 | tous les &lslon; peuvent parler à tous les noeuds, ce qui n'est peut-être |
|---|
| | 579 | exact dans un environnement peuplé de pare-feux complexes. Si cette supposition |
|---|
| | 580 | n'est pas correcte, vous devez modifier ce script pour corriger les voies de |
|---|
| | 581 | communications.</para></listitem> |
|---|
| 575 | | <para> This sets up the replication set consisting of the whole bunch |
|---|
| 576 | | of tables and sequences that make up your application's database |
|---|
| 577 | | schema.</para> |
|---|
| 578 | | |
|---|
| 579 | | <para> When you run this script, all that happens is that triggers are |
|---|
| 580 | | added on the origin node (node #1) that start collecting updates; |
|---|
| 581 | | replication won't start until #5...</para> |
|---|
| 582 | | |
|---|
| 583 | | <para>There are two assumptions in this script that could be |
|---|
| 584 | | invalidated by circumstances:</para> |
|---|
| 585 | | |
|---|
| 586 | | <itemizedlist> |
|---|
| 587 | | <listitem><para> That all of the tables and sequences have been |
|---|
| 588 | | included.</para> |
|---|
| 589 | | |
|---|
| 590 | | <para> This becomes invalid if new tables get added to your |
|---|
| 591 | | schema and don't get added to the <envar>TABLES</envar> |
|---|
| 592 | | list.</para> </listitem> |
|---|
| 593 | | |
|---|
| 594 | | <listitem><para> That all tables have been defined with primary |
|---|
| 595 | | keys.</para> |
|---|
| 596 | | |
|---|
| 597 | | <para> Best practice is to always have and use true primary keys. |
|---|
| 598 | | If you have tables that require choosing a candidate primary key |
|---|
| 599 | | or that require creating a surrogate key using <xref |
|---|
| 600 | | linkend="stmttableaddkey"/>, you will have to modify this script |
|---|
| 601 | | by hand to accomodate that. </para></listitem> |
|---|
| | 585 | <para> Ce script configure l'ensemble de réplication composé de toutes |
|---|
| | 586 | les tables et les séquences présente dans le schéma de la base de données |
|---|
| | 587 | de votre application.</para> |
|---|
| | 588 | |
|---|
| | 589 | <para> Lorsque vous lancez ce script, la seule actions menées est |
|---|
| | 590 | l'ajout de triggers sur le noeud origine (noeud #1) qui vont commencer |
|---|
| | 591 | à collecter les mises à jours. La réplication ne commencera qu'à |
|---|
| | 592 | l'étape #5...</para> |
|---|
| | 593 | |
|---|
| | 594 | <para>Il y a deux suppositions dans ce scripts qui peuvent ne pas être |
|---|
| | 595 | valides dans certaines circonstances:</para> |
|---|
| | 596 | |
|---|
| | 597 | <itemizedlist> |
|---|
| | 598 | <listitem><para> que toutes les tables et les séquences soit répliquées.</para> |
|---|
| | 599 | |
|---|
| | 600 | <para> Ceci n'est pas valide lorsque de nouvelles tables |
|---|
| | 601 | sont ajoutée dans votre schéma et qu'elles ne sont pas ajoutées |
|---|
| | 602 | dans le liste <envar>TABLES</envar>.</para> </listitem> |
|---|
| | 603 | |
|---|
| | 604 | <listitem><para> que toutes les tables sont définies avec des clefs primaires.</para> |
|---|
| | 605 | |
|---|
| | 606 | <para> La bonne pratique est de toujours créer et utiliser de vraies clefs |
|---|
| | 607 | primaires. |
|---|
| | 608 | |
|---|
| | 609 | Si vous avez des tables qui nécessite de choisir une clef primaire candidate ou |
|---|
| | 610 | qui nécessite la création d'une clef additionnelle avec la commande <xref |
|---|
| | 611 | linkend="stmttableaddkey"/>, vous devez modifier ce script à la main pour l'accomoder. |
|---|
| | 612 | </para></listitem> |
|---|
| 608 | | <para> And 3, and 4, and 5, if you set the number of nodes |
|---|
| 609 | | higher... </para> |
|---|
| 610 | | |
|---|
| 611 | | <para> This is the step that <quote>fires up</quote> |
|---|
| 612 | | replication.</para> |
|---|
| 613 | | |
|---|
| 614 | | <para> The assumption that the script generator makes is that all |
|---|
| 615 | | the subscriber nodes will want to subscribe directly to the origin |
|---|
| 616 | | node. If you plan to have <quote>sub-clusters,</quote> perhaps |
|---|
| 617 | | where there is something of a <quote>master</quote> location at each |
|---|
| 618 | | data centre, you may need to revise that.</para> |
|---|
| 619 | | |
|---|
| 620 | | <para> The slon processes really ought to be running by the time you |
|---|
| 621 | | attempt running this step. To do otherwise would be rather |
|---|
| 622 | | foolish.</para> </listitem> |
|---|
| | 619 | <para> et 3, 4, 5, si vous configurez d'autres noeuds... </para> |
|---|
| | 620 | |
|---|
| | 621 | <para> Ceci est l'étape qui <quote>déclenche</quote> |
|---|
| | 622 | réplication.</para> |
|---|
| | 623 | |
|---|
| | 624 | <para> Ce script fait la supposition que tous les noeuds abonnés voudront |
|---|
| | 625 | s'abonner directement au noeud origine. Si vous souhaitez mettre en place |
|---|
| | 626 | des <quote>sous-clusters</quote>,avec peut-être un noeud maître dans chaque |
|---|
| | 627 | datacenter, vous devez modifier ces scripts.</para> |
|---|
| | 628 | |
|---|
| | 629 | <para> Les processus slon doivent fonctionner au moment ou vous réaliser cette |
|---|
| | 630 | étape. Il est abusrde de lancer ces scripts lorsque ce n'est pas le cas. |
|---|
| | 631 | </para> </listitem> |
|---|
| 629 | | <subtitle> Apache-Style profiles for FreeBSD <filename>ports/databases/slony/*</filename> </subtitle> |
|---|
| 630 | | |
|---|
| 631 | | <indexterm><primary> Apache-style profiles for FreeBSD </primary> <secondary>FreeBSD </secondary> </indexterm> |
|---|
| 632 | | |
|---|
| 633 | | <para> In the <filename>tools</filename> area, <filename>slon.in-profiles</filename> is a |
|---|
| 634 | | script that might be used to start up &lslon; instances at the time of |
|---|
| 635 | | system startup. It is designed to interact with the FreeBSD Ports |
|---|
| 636 | | system.</para> |
|---|
| | 638 | <subtitle> profiles dans le style d'Apache pour FreeBSD <filename>ports/databases/slony/*</filename> </subtitle> |
|---|
| | 639 | |
|---|
| | 640 | <indexterm><primary> prfiles dans le style d'Apache pour FreeBSD </primary> <secondary>FreeBSD </secondary> </indexterm> |
|---|
| | 641 | |
|---|
| | 642 | <para> Dans le répertoire <filename>tools</filename>, le script <filename>slon.in-profiles</filename> permet de lancer des instances |
|---|
| | 643 | &lslon; lors du démarrage du systÚme. Il est conçu pour interagir avec |
|---|
| | 644 | systÚmes des ports de FreeBSD.</para> |
|---|
| 642 | | <indexterm><primary> duplicating nodes </primary> </indexterm> |
|---|
| 643 | | <para> In the <filename>tools</filename> area, |
|---|
| 644 | | <filename>duplicate-node.sh</filename> is a script that may be used to |
|---|
| 645 | | help create a new node that duplicates one of the ones in the |
|---|
| 646 | | cluster. </para> |
|---|
| 647 | | |
|---|
| 648 | | <para> The script expects the following parameters: </para> |
|---|
| 649 | | <itemizedlist> |
|---|
| 650 | | <listitem><para> Cluster name </para> </listitem> |
|---|
| 651 | | <listitem><para> New node number </para> </listitem> |
|---|
| 652 | | <listitem><para> Origin node </para> </listitem> |
|---|
| 653 | | <listitem><para> Node being duplicated </para> </listitem> |
|---|
| 654 | | <listitem><para> New node </para> </listitem> |
|---|
| 655 | | </itemizedlist> |
|---|
| 656 | | |
|---|
| 657 | | <para> For each of the nodes specified, the script offers flags to |
|---|
| 658 | | specify <function>libpq</function>-style parameters for |
|---|
| | 650 | <indexterm><primary> dupliquer un noeud </primary> </indexterm> |
|---|
| | 651 | <para> Dans le répertoire <filename>tools</filename>, le script |
|---|
| | 652 | <filename>duplicate-node.sh</filename> aide à créer un nouveau noeud |
|---|
| | 653 | en dupliquant un des noeuds du cluster. |
|---|
| | 654 | </para> |
|---|
| | 655 | |
|---|
| | 656 | <para> Ce script attend les paramÚtres suivants : </para> |
|---|
| | 657 | <itemizedlist> |
|---|
| | 658 | <listitem><para> Le nom du cluster</para> </listitem> |
|---|
| | 659 | <listitem><para> Le numéro du nouveau noeud </para> </listitem> |
|---|
| | 660 | <listitem><para> Le noeud origine </para> </listitem> |
|---|
| | 661 | <listitem><para> Le noeud répliqué </para> </listitem> |
|---|
| | 662 | <listitem><para> Le nouveau noeud </para> </listitem> |
|---|
| | 663 | </itemizedlist> |
|---|
| | 664 | |
|---|
| | 665 | <para> Pour chaque noeud spécifié, le scripts permet de préciser |
|---|
| | 666 | les paramÚtres de type <function>libpq</function> pour |
|---|
| 660 | | <envar>PGDATABASE</envar>, and <envar>PGUSER</envar>; it is expected |
|---|
| 661 | | that <filename>.pgpass</filename> will be used for storage of |
|---|
| 662 | | passwords, as is generally considered best practice. Those values may |
|---|
| 663 | | inherit from the <function>libpq</function> environment variables, if |
|---|
| 664 | | not set, which is useful when using this for testing. When |
|---|
| 665 | | <quote>used in anger,</quote> however, it is likely that nearly all of |
|---|
| 666 | | the 14 available parameters should be used. </para> |
|---|
| 667 | | |
|---|
| 668 | | <para> The script prepares files, normally in |
|---|
| 669 | | <filename>/tmp</filename>, and will report the name of the directory |
|---|
| 670 | | that it creates that contain SQL and &lslonik; scripts to set up the |
|---|
| 671 | | new node. </para> |
|---|
| | 668 | <envar>PGDATABASE</envar>, et <envar>PGUSER</envar>; Le fichier |
|---|
| | 669 | <filename>.pgpass</filename> peut être utilisé pour le stockage |
|---|
| | 670 | des mots de passe, ce qui est généralement considéré comme une |
|---|
| | 671 | bonne pratique. Lorsqu'elle ne sont pas définie, ces valeurs peuvent |
|---|
| | 672 | hériter des variables d'environnement <function>libpq</function>, |
|---|
| | 673 | ce qui est pratique quand on réalise des tests. Toutefois |
|---|
| | 674 | lorsque que ce script est utilisé <quote>de maniÚre brutale</quote>, |
|---|
| | 675 | il est souvent nécessaire de définir les 14 paramÚtres disponibles. |
|---|
| | 676 | </para> |
|---|
| | 677 | |
|---|
| | 678 | <para> Ce script prépare des fichiers, placés dans |
|---|
| | 679 | <filename>/tmp</filename>, et annonce le nom du répertoire |
|---|
| | 680 | qu'il a créé pour les scripts SQL et &lslonik; de configuration |
|---|
| | 681 | du nouveau noeud. </para> |
|---|
| 684 | | <para> A &lslonik; script to request subscriptions for all replications sets.</para> </listitem> |
|---|
| 685 | | </itemizedlist> |
|---|
| 686 | | |
|---|
| 687 | | <para> For testing purposes, this is sufficient to get a new node working. The configuration may not necessarily reflect what is desired as a final state:</para> |
|---|
| 688 | | |
|---|
| 689 | | <itemizedlist> |
|---|
| 690 | | <listitem><para> Additional communications paths may be desirable in order to have redundancy. </para> </listitem> |
|---|
| 691 | | <listitem><para> It is assumed, in the generated scripts, that the new node should support forwarding; that may not be true. </para> </listitem> |
|---|
| 692 | | <listitem><para> It may be desirable later, after the subscription process is complete, to revise subscriptions. </para> </listitem> |
|---|
| | 697 | <para> Un script &lslonik; qui demande la souscriptions à tous les ensembles de |
|---|
| | 698 | réplications.</para> </listitem> |
|---|
| | 699 | </itemizedlist> |
|---|
| | 700 | |
|---|
| | 701 | <para> Lorsque l'on effectue un test, cela est suffisant pour faire fonctionner |
|---|
| | 702 | un nouveau noeud. La configuration ne doit pas forcément correspondre à une |
|---|
| | 703 | configuration finale, notamment :</para> |
|---|
| | 704 | |
|---|
| | 705 | <itemizedlist> |
|---|
| | 706 | <listitem><para> Il est souhaitable de construire des voies de communication |
|---|
| | 707 | supplémentaires afin d'assurer leur redondance. </para> </listitem> |
|---|
| | 708 | <listitem><para> Les scripts générés supposent que le nouveau noeud doit |
|---|
| | 709 | être un noeud transmetteur ("forwarding"); ce qui n'est pas forcément vrai. </para> </listitem> |
|---|
| | 710 | <listitem><para> Il est parfois souhaitable, une fois que le processus d'abonnement |
|---|
| | 711 | est réalisé complÚtement, de modifier les abonnements. </para> </listitem> |
|---|