Changeset 1155

Show
Ignore:
Timestamp:
09/26/08 11:12:31 (2 months ago)
Author:
sas
Message:

Hache

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • traduc/trunk/postgresql/high-availability.xml

    r1154 r1155  
    228228 </varlistentry> 
    229229 
    230 <!-- SAS::ICI --> 
    231  <varlistentry> 
    232   <term>Réplication asynchrone à plusieurs maîtres</term> 
     230 <varlistentry> 
     231  <term>Réplication asynchrone multi-maîtres</term> 
    233232  <listitem> 
    234233 
    235234   <para> 
    236235    Pour les serveurs qui ne sont pas connectés en permanence, comme les 
    237     portables ou les serveurs distants, garder la cohérence des données 
    238     entre les serveurs est un challenge. En utilisant la réplication asynchrone 
    239     à plusieurs maîtres, chaque serveur fonctionne indépendamment et communique 
    240     périodiquement avec les autres serveurs pour identifier les transactions 
    241     en conflit. Les conflits peuvent être résolus par les utilisateurs ou par 
    242     des règles de résolution. 
     236    ordinateurs portables ou les serveurs distants, conserver la cohérence des données 
     237    entre les serveurs est un challenge. L'utilisation de la réplication asynchrone 
     238    multi-maîtres permet à chaque serveur de fonctionner indépendamment. Il 
     239    communique alors périodiquement avec les autres serveurs pour identifier les transactions 
     240    conflictuelles. La gestion des conflits est alors confiée aux utilisateurs 
     241    ou à un système de règles de résolution. 
    243242   </para> 
    244243  </listitem> 
     
    249248  <listitem> 
    250249 
    251 <!-- Je corrige l'erreur relevée par tigrou3tac, mais le passage est à 
    252 reprendre. Les phrases sont un peu lourdes --> 
    253    <para> 
    254     Dans les réplications synchrones multi-maîtres, chaque serveur peut 
    255     accepter les requêtes en écriture. Les données modifiées sont transmises 
    256     du serveur original à tous les autres serveurs avant validation de chaque 
    257     transaction. Une activité importante en écriture peut être la cause d'un 
    258     verrouillage excessif conduisant à un effondrement des performances. En fait, la 
    259     performance en écriture est souvent pis que celle d'un simple serveur. Les 
    260     requêtes en lecture peuvent être envoyées à tous les serveurs. Certaines 
    261     implantations utilisent les disques partagés pour réduire la surcharge 
    262     de communication. La réplication synchrone multi-maîtres est bien meilleure 
    263     principalement pour de grosses charges de travail en lecture bien que son gros 
    264     avantage est que tout serveur peut accepter des requêtes d'écriture &mdash; 
    265     il n'est pas nécessaire de partitionner les travaux entre les serveurs 
    266     maîtres et esclaves et, comme les modifications de données sont envoyées 
    267     d'un serveur à un autre, il n'y a pas de problème avec les fonctions 
    268     non déterministiques comme <function>random()</function>. 
     250   <para> 
     251    Dans les réplications synchrones multi-maîtres, tous les serveurs acceptent 
     252    les requêtes en écriture. Les données modifiées sont transmises 
     253    du serveur d'origine à tous les autres serveurs avant toute validation de 
     254    transaction. 
     255   </para> 
     256   <para> 
     257    Une activité importante en écriture peut être la cause d'un 
     258    verrouillage excessif et conduire à un effondrement des performances. Dans 
     259    les faits, les performances en écriture sont souvent pis que celles d'un 
     260    simple serveur. 
     261   </para> 
     262   <para> 
     263    Tous les serveurs acceptent les requêtes en lecture. 
     264   </para> 
     265   <para> 
     266    Certaines implantations utilisent les disques partagés pour réduire la surcharge 
     267    de communication. 
     268   </para> 
     269   <para> 
     270    Les performances de la réplication synchrone multi-maîtres sont meilleures lorsque 
     271    les opérations de lecture représentent l'essentiel de la charge, alors que 
     272    son gros avantage est l'acceptation des requêtes d'écriture par tous les 
     273    serveurs &mdash;  
     274    il n'est pas nécessaire de répartir la charge entre les serveurs 
     275    maîtres et esclaves et, parce que les modifications de données sont envoyées 
     276    d'un serveur à l'autre, les fonctions non déterministiques, comme 
     277    <function>random()</function>, ne posent aucun problème. 
    269278   </para> 
    270279 
    271280   <para> 
    272281    <productname>PostgreSQL</productname> n'offre pas ce type de réplication, 
    273     bien que la validation en deux phases de <productname>PostgreSQL</productname> 
     282    mais la validation en deux phases de <productname>PostgreSQL</productname> 
    274283    (<xref linkend="sql-prepare-transaction" 
    275284    endterm="sql-prepare-transaction-title"/> et <xref 
    276     linkend="sql-commit-prepared" endterm="sql-commit-prepared-title"/>) peut 
    277     être utilisée pour implémenter cela dans une application ou un 
     285    linkend="sql-commit-prepared" endterm="sql-commit-prepared-title"/>) 
     286    autorise son intégration dans une application ou un 
    278287    <foreignphrase>middleware</foreignphrase>. 
    279288   </para> 
     
    286295 
    287296   <para> 
    288     Comme <productname>PostgreSQL</productname> est libre et facilement 
    289     extensible, certaines sociétés ont pris <productname>PostgreSQL</productname> 
    290     et créé des solutions propriétaires avec leur propres fonctionnalités de 
    291     <foreignphrase>failover</foreignphrase>, réplication et répartition de 
    292     charges. 
     297    Parce que <productname>PostgreSQL</productname> est libre et facilement 
     298    extensible, certaines sociétés utilisent <productname>PostgreSQL</productname> 
     299    dans des solutions commerciales fermées 
     300    (<foreignphrase>closed-source</foreignphrase>) proposant des fonctionnalités de 
     301    bascule sur incident (<foreignphrase>failover</foreignphrase>), 
     302    réplication et répartition de charge. 
    293303   </para> 
    294304  </listitem> 
     
    299309 <para> 
    300310  La <xref linkend="high-availability-matrix"/> résume les 
    301   capacités des différentes solutions listées ci-dessus
     311  possibilités des différentes solutions listées plus-haut
    302312 </para> 
    303313 
     
    309319    <row> 
    310320     <entry>Fonctionnalité</entry> 
    311      <entry><foreignphrase>Shared Disk Failover</foreignphrase></entry> 
    312      <entry>Réplication système de fichiers</entry> 
    313      <entry><foreignphrase>Warm Standby</foreignphrase> (en utilisant 
    314        <acronym>PITR</acronym>)</entry> 
     321     <entry>Bascule par disques partagés (<foreignphrase>Shared Disk 
     322     Failover</foreignphrase>)</entry> 
     323     <entry>Réplication par système de fichiers</entry> 
     324     <entry>Secours semi-automatique (<foreignphrase>Warm 
     325     Standby</foreignphrase>) par <acronym>PITR</acronym></entry> 
    315326     <entry>Réplication maître/esclave</entry> 
    316327     <entry><foreignphrase>Middleware</foreignphrase> de réplication 
    317        se basant sur les instructions</entry> 
    318      <entry>Réplication asynchrone multi-maître</entry> 
    319      <entry>Réplication synchrone multi-maître</entry> 
     328       sur instructions</entry> 
     329     <entry>Réplication asynchrone multi-maîtres</entry> 
     330     <entry>Réplication synchrone multi-maîtres</entry> 
    320331    </row> 
    321332   </thead> 
     
    324335 
    325336    <row> 
    326      <entry>Aucun matériel spécial requis</entry> 
     337     <entry>Ne requiert aucun matériel spécial</entry> 
    327338     <entry align="center"></entry> 
    328339     <entry align="center">&bull;</entry> 
     
    346357 
    347358    <row> 
    348      <entry>Aucune surcharge dû au serveur maître</entry> 
    349      <entry align="center">&bull;</entry> 
    350      <entry align="center"></entry> 
    351      <entry align="center">&bull;</entry> 
    352      <entry align="center"></entry> 
    353      <entry align="center">&bull;</entry> 
    354      <entry align="center"></entry> 
    355      <entry align="center"></entry> 
    356     </row> 
    357  
    358     <row> 
    359      <entry>Aucune attente des différents serveurs</entry> 
    360      <entry align="center">&bull;</entry> 
    361      <entry align="center"></entry> 
    362      <entry align="center">&bull;</entry> 
    363      <entry align="center">&bull;</entry> 
    364      <entry align="center"></entry> 
    365      <entry align="center">&bull;</entry> 
    366      <entry align="center"></entry> 
    367     </row> 
    368  
    369     <row> 
    370      <entry>Un échec du maître ne perdra aucune donnée</entry> 
     359     <entry>Pas de surcharge sur le serveur maître</entry> 
     360     <entry align="center">&bull;</entry> 
     361     <entry align="center"></entry> 
     362     <entry align="center">&bull;</entry> 
     363     <entry align="center"></entry> 
     364     <entry align="center">&bull;</entry> 
     365     <entry align="center"></entry> 
     366     <entry align="center"></entry> 
     367    </row> 
     368 
     369    <row> 
     370     <entry>Pas d'attente entre serveurs</entry> 
     371     <entry align="center">&bull;</entry> 
     372     <entry align="center"></entry> 
     373     <entry align="center">&bull;</entry> 
     374     <entry align="center">&bull;</entry> 
     375     <entry align="center"></entry> 
     376     <entry align="center">&bull;</entry> 
     377     <entry align="center"></entry> 
     378    </row> 
     379 
     380    <row> 
     381     <entry>Pas de perte de données en cas de panne du maître</entry> 
    371382     <entry align="center">&bull;</entry> 
    372383     <entry align="center">&bull;</entry> 
     
    390401 
    391402    <row> 
    392      <entry>Granularité par table</entry> 
    393      <entry align="center"></entry> 
    394      <entry align="center"></entry> 
    395      <entry align="center"></entry> 
    396      <entry align="center">&bull;</entry> 
    397      <entry align="center"></entry> 
    398      <entry align="center">&bull;</entry> 
    399      <entry align="center">&bull;</entry> 
    400     </row> 
    401  
    402     <row> 
    403      <entry>Aucune résolution de conflit nécessaire</entry> 
     403     <entry>Granularité de niveau table</entry> 
     404     <entry align="center"></entry> 
     405     <entry align="center"></entry> 
     406     <entry align="center"></entry> 
     407     <entry align="center">&bull;</entry> 
     408     <entry align="center"></entry> 
     409     <entry align="center">&bull;</entry> 
     410     <entry align="center">&bull;</entry> 
     411    </row> 
     412 
     413    <row> 
     414     <entry>Ne nécessite pas de résolution de conflit</entry> 
    404415     <entry align="center">&bull;</entry> 
    405416     <entry align="center">&bull;</entry> 
     
    416427     <entry align="center">Blocs disque</entry> 
    417428     <entry align="center">WAL</entry> 
    418      <entry align="center">Lignes des tables</entry> 
     429     <entry align="center">Lignes de tables</entry> 
    419430     <entry align="center">SQL</entry> 
    420      <entry align="center">Lignes des tables</entry> 
    421      <entry align="center">Lignes des tables et verrous de ligne</entry> 
     431     <entry align="center">Lignes de tables</entry> 
     432     <entry align="center">Lignes de tables et verrous de ligne</entry> 
    422433    </row> 
    423434 
     
    437448 
    438449   <para> 
    439     Le partitionnement des données divise les tables en ensemble de données. 
    440     Chaque ensemble peut être modifié par un seul serveur. Par exemple, les 
    441     données peuvent être partitionnées par bureaux, par exemple Londres et 
    442     Paris avec un serveur dans chaque bureau. Si les requêtes combinant les 
    443     données de Londres et de Paris sont nécessaures, une application peut 
    444     envoyer des requêtes sur les deux serveurs ou la réplication maître/esclav
    445     peut être utilisée pour conserver sur chaque serveur une copie en lecture 
     450    Le partitionnement des données divise les tables en ensembles de données. 
     451    Chaque ensemble ne peut être modifié que par un seul serveur. Les 
     452    données peuvent ainsi être partitionnées par bureau, Londres et 
     453    Paris, par exemple, avec un serveur dans chaque bureau. Si certaines 
     454    requêtes doivent combiner des données de Londres et Paris, il est possible 
     455    d'utiliser une application qui requête les deux serveurs ou d'implanter un
     456    réplication maître/esclave pour conserver sur chaque serveur une copie en lecture 
    446457    seule des données de l'autre bureau. 
    447458   </para> 
     
    454465 
    455466   <para> 
    456     Un grand nombre des solutions ci-dessus permettent à plusieurs serveurs de 
    457     répondre à plusieurs requêtes mais aucune ne permet à une seule requête 
     467    La plupart des solutions ci-dessus permettent à plusieurs serveurs de 
     468    répondre à des requêtes multiples, mais aucune ne permet à une seule requête 
    458469    d'être exécutée sur plusieurs serveurs pour se terminer plus rapidement. 
    459     Cette solution autorise le travail en commun de plusieurs serveurs sur une 
    460     seule requête. Ceci s'accomplit habituellement en divisant les données 
    461     entre les serveurs et en ayant chaque serveur qui exécute une partie de la 
    462     requête pour renvoyer les résultats à un serveur central qui les combinera 
    463     et les renverra à l'utilisateur. <productname>Pgpool-II</productname> 
    464     a cette capacité. De plus, cela peut être implémenté en utilisant les 
    465     outils de <productname>PL/Proxy</productname>. 
     470    Cette solution autorisent plusieurs serveurs à travailler ensemble sur une 
     471    seule requête. Ceci s'accomplit habituellement en répartissant les données 
     472    entre les serveurs, chaque serveur exécutant une partie de la 
     473    requête pour renvoyer les résultats à un serveur central qui les combine 
     474    et les renvoie à l'utilisateur. <productname>Pgpool-II</productname> 
     475    offre cette possibilité. Cela peut également être implanté en utilisant les 
     476    outils <productname>PL/Proxy</productname>. 
    466477   </para> 
    467478  </listitem> 
  • traduc/trunk/postgresql/history.xml

    r973 r1155  
    1818  <productname>POSTGRES</productname>, programme écrit à l'université de 
    1919  Californie à Berkeley. Après plus d'une dizaine d'années de développement, 
    20   <productname>PostgreSQL</productname> est la base de données OpenSource de  
     20  <productname>PostgreSQL</productname> annonce être devenu la base de données OpenSource de  
    2121  référence. 
    2222 </para> 
     
    5959 
    6060  <para> 
    61    <productname>POSTGRES</productname> fut utilisé dans plusieurs 
     61   <productname>POSTGRES</productname> fût utilisé dans plusieurs 
    6262   applications, en recherche et en production. On peut citer, par exemple&nbsp;: 
    6363   un système 
     
    194194  <para> 
    195195   Beaucoup de personnes font référence à 
    196    <productname>PostgreSQL</productname> avec <quote>Postgres</quote> 
    197    (rarement avec toutes les lettres en majuscules) à cause de la 
    198    tradition ou parce que c'est simple à prononcer. Cet usage est accepté 
     196   <productname>PostgreSQL</productname> par <quote>Postgres</quote> 
     197   (il est rare que le nom soit écrit en capitales) par  
     198   tradition ou parce que c'est plus simple à prononcer. Cet usage est accepté 
    199199   comme alias ou pseudo. 
    200200  </para> 
  • traduc/trunk/postgresql/hstore.xml

    r973 r1155  
    1313 
    1414 <para> 
    15   Ce module implémente le type de données<type>hstore</type> pour stocker des 
     15  Ce module code le type de données<type>hstore</type> pour stocker des 
    1616  ensembles de paires (clé, valeur) à l'intérieur d'un simple champ 
    17   <productname>PostgreSQL</productname>. Ceci est utile dans plusieurs ca
    18   comme des lignes contenant plusieurs attributs rarement examinés ou des 
    19   données à moitié structuré
     17  <productname>PostgreSQL</productname>. Cela peut s'avérer utile dans diver
     18  cas, comme les lignes à attributs multiples rarement examinées ou les données 
     19  semi-structurées
    2020 </para> 
    2121 
     
    3535   </programlisting> 
    3636 
    37    L'ordre des éléments n'est pas considéré significatif (et pourrait ne pas 
    38    être reproduit en sortie). Les espaces blancs entre les éléments ou autour 
    39    du signe <literal>=&gt;</literal> sont ignorés. Utilisez des guillemets 
    40    doubles si une clé ou une valeur inclut des espaces blancs, virgule, 
     37   L'ordre des éléments n'est pas significatif (et peut ne pas 
     38   être reproduit en sortie). Les espaces entre les éléments ou autour 
     39   du signe <literal>=&gt;</literal> sont ignorées. Des guillemets 
     40   doubles sont nécessaires si une clé ou une valeur inclut espace, virgule, 
    4141   <literal>=</literal> ou <literal>&gt;</literal>. Pour inclure un 
    42    guillemet double ou un antislash dans une clé ou une valeur, faites-l
    43    précéder d'un autre antislash. (Gardez en tête que, suivant la configuration 
    44    de <varname>standard_conforming_strings</varname>, vous pourriez avoi
    45    besoin de doubler les antislashs dans les chaînes litérales en SQL.) 
    46   </para> 
    47  
    48   <para> 
    49    Une valeur (mais pas une clé) peut valoir NULL. Ceci est représenté 
     42   guillemet double ou un antislash dans une clé ou une valeur, on le précèd
     43   d'un autre antislash. (En fonction de la configuration 
     44   de <varname>standard_conforming_strings</varname>, il peut s'avére
     45   nécessaire de doubler les antislashs dans les chaînes litérales SQL.) 
     46  </para> 
     47 
     48  <para> 
     49   Une valeur (mais pas une clé) peut être NULL. Ceci est représenté 
    5050   ainsi&nbsp;: 
    5151 
     
    5454   </programlisting> 
    5555 
    56    Le mot clé <literal>NULL</literal> n'est pas sensible à la casse. De 
    57    nouveau, utilisez les guillemets doubles si vous voulez que la chaîne 
     56   Le mot clé <literal>NULL</literal> est insensible à la casse. Là aussi, on 
     57   utilise les guillemets doubles pour que la chaîne 
    5858   <literal>null</literal> soit traitée comme une valeur ordinaire. 
    5959  </para> 
    6060 
    6161  <para> 
    62    Actuellement, les guillemets doubles sont utilisées pour entourer les 
     62   Actuellement, les guillemets doubles sont utilisés pour entourer les 
    6363   chaînes représentant la clé et la valeur en sortie, même si ce n'est pas 
    6464   strictement nécessaire. 
     
    8686     <row> 
    8787      <entry><type>hstore</type> <literal>-&gt;</literal> <type>text</type></entry> 
    88       <entry>obtient la valeur pour cette clé (NULL si inexistante)</entry> 
     88      <entry>obtenir la valeur de la clé (NULL si inexistante)</entry> 
    8989      <entry><literal>'a=&gt;x, b=&gt;y'::hstore -&gt; 'a'</literal></entry> 
    9090      <entry><literal>x</literal></entry> 
     
    9393     <row> 
    9494      <entry><type>text</type> <literal>=&gt;</literal> <type>text</type></entry> 
    95       <entry>crée un <type>hstore</type> à un seul élément</entry> 
     95      <entry>créer un <type>hstore</type> à un seul élément</entry> 
    9696      <entry><literal>'a' =&gt; 'b'</literal></entry> 
    9797      <entry><literal>"a"=&gt;"b"</literal></entry> 
     
    107107     <row> 
    108108      <entry><type>hstore</type> <literal>?</literal> <type>text</type></entry> 
    109       <entry><type>hstore</type> contient-il la clé&nbsp;?</entry> 
     109      <entry><type>hstore</type> contient-il une clé donnée&nbsp;?</entry> 
    110110      <entry><literal>'a=&gt;1'::hstore ? 'a'</literal></entry> 
    111111      <entry><literal>t</literal></entry> 
     
    134134   Avant PostgreSQL 8.2, les opérateurs de contenance @&gt; et &lt;@ étaient 
    135135   appelés respectivement @ et ~. Ces noms sont toujours disponibles mais sont 
    136    devenus obsolètes et pourraient éventuellement être supprimés. Notez que  
    137    les anciens noms sont inversés par rapport à la convention suivie par les 
     136   devenus obsolètes et pourraient éventuellement être supprimés. 
     137   Les anciens noms sont inversés par rapport à la convention suivie par les 
    138138   types de données géométriques. 
    139139  </para> 
     
    157157      <entry><function>akeys(hstore)</function></entry> 
    158158      <entry><type>text[]</type></entry> 
    159       <entry>récupère les clés du <type>hstore</type> dans un tableau</entry> 
     159      <entry>récupérer les clés du <type>hstore</type> dans un tableau</entry> 
    160160      <entry><literal>akeys('a=&gt;1,b=&gt;2')</literal></entry> 
    161161      <entry><literal>{a,b}</literal></entry> 
     
    165165      <entry><function>skeys(hstore)</function></entry> 
    166166      <entry><type>setof text</type></entry> 
    167       <entry>récupère les clés du <type>hstore</type> dans un ensemble</entry> 
     167      <entry>récupérer les clés du <type>hstore</type> dans un ensemble</entry> 
    168168      <entry><literal>skeys('a=&gt;1,b=&gt;2')</literal></entry> 
    169169      <entry> 
     
    177177      <entry><function>avals(hstore)</function></entry> 
    178178      <entry><type>text[]</type></entry> 
    179       <entry>récupère les valeurs du <type>hstore</type> dans un tableau</entry> 
     179      <entry>récupérer les valeurs du <type>hstore</type> dans un tableau</entry> 
    180180      <entry><literal>avals('a=&gt;1,b=&gt;2')</literal></entry> 
    181181      <entry><literal>{1,2}</literal></entry> 
     
    185185      <entry><function>svals(hstore)</function></entry> 
    186186      <entry><type>setof text</type></entry> 
    187       <entry>récupère les valeurs du <type>hstore</type> dans un 
     187      <entry>récupérer les valeurs du <type>hstore</type> dans un 
    188188      ensemble</entry> 
    189189      <entry><literal>svals('a=&gt;1,b=&gt;2')</literal></entry> 
     
    198198      <entry><function>each(hstore)</function></entry> 
    199199      <entry><type>setof (key text, value text)</type></entry> 
    200       <entry>récupère les clés et valeurs du <type>hstore</type> dans un 
     200      <entry>récupérer les clés et valeurs du <type>hstore</type> dans un 
    201201      ensemble</entry> 
    202202      <entry><literal>select * from each('a=&gt;1,b=&gt;2')</literal></entry> 
     
    213213      <entry><function>exist(hstore,text)</function></entry> 
    214214      <entry><type>boolean</type></entry> 
    215       <entry>le <type>hstore</type> contient-il la clé&nbsp;?</entry> 
     215      <entry>le <type>hstore</type> contient-il une clé donnée&nbsp;?</entry> 
    216216      <entry><literal>exist('a=&gt;1','a')</literal></entry> 
    217217      <entry><literal>t</literal></entry> 
     
    230230      <entry><function>delete(hstore,text)</function></entry> 
    231231      <entry><type>hstore</type></entry> 
    232       <entry>supprime tout élément correspondant à la clé</entry> 
     232      <entry>supprimer tout élément correspondant à une clé donnée</entry> 
    233233      <entry><literal>delete('a=&gt;1,b=&gt;2','b')</literal></entry> 
    234234      <entry><literal>"a"=>"1"</literal></entry> 
     
    244244 
    245245  <para> 
    246    <type>hstore</type> comprend un support des index pour les opérateurs 
    247    <literal>@&gt;</literal> et <literal>?</literal>. Vous pouvez utiliser les 
    248    types d'index GiST ou GIN. Par exemple&nbsp;: 
     246   <type>hstore</type> supporte des index pour les opérateurs 
     247   <literal>@&gt;</literal> et <literal>?</literal>. Les 
     248   types d'index GiST et GIN peuvent être utilisés. Par exemple&nbsp;: 
    249249  </para> 
    250250  <programlisting> 
     
    278278 
    279279  <para> 
    280    Le type <type>hstore</type>, à cause de sa libéralité intrinsèque, pourrai
    281    contenir beaucoup de clés différentes. Vérifier les clés valides est le 
    282    travail de l'application. Les exemples ci-dessous démontrent plusieurs 
     280   Le type <type>hstore</type>, du fait de sa libéralité intrinsèque, peu
     281   contenir beaucoup de clés différentes. C'est à l'application de vérifier 
     282   la validité des clés. Les exemples ci-dessous présentent plusieurs 
    283283   techniques pour vérifier les clés et obtenir des statistiques. 
    284284  </para>