Changeset 960

Show
Ignore:
Timestamp:
03/25/08 23:02:33 (8 months ago)
Author:
sas
Message:

Suppression de quelques vous...

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • traduc/trunk/postgresql/array.xml

    r888 r960  
    44     par      $Author$ 
    55     révision $Revision$ --> 
    6 <!-- SAS : 20070423, PG824 --> 
     6<!-- SAS : 20080319, PG831 --> 
    77 
    88<sect1 id="arrays"> 
     
    2323 
    2424 <sect2> 
    25   <title>Déclaration des types de tableaux</title> 
     25  <title>Déclaration des types tableaux</title> 
    2626 
    2727 <para> 
     
    6969  Une autre syntaxe, conforme au standard SQL, peut être 
    7070  utilisée pour les tableaux à une dimension. 
    71   <structfield>paye_par_semaine</structfield> peut être définie ainsi&nbsp;: 
     71  <structfield>paye_par_semaine</structfield> peut être défini ainsi&nbsp;: 
    7272<programlisting>paye_par_semaine  integer ARRAY[4],</programlisting> 
    7373  Cette syntaxe nécessite une constante de type entier pour indiquer la taille 
     
    102102   point-virgule (<literal>;</literal>) mais tous les autres utilisent une virgule 
    103103   (<literal>,</literal>). Chaque <replaceable>val</replaceable> est soit une constante 
    104    du type des éléments du tableau soit un sous-tableau. Voici un exemple d'une 
    105    constante tableau&nbsp;: 
     104   du type des éléments du tableau soit un sous-tableau. 
     105  </para> 
     106    
     107  <para> 
     108   Exemple de constante tableau&nbsp;: 
    106109<programlisting>'{{1,2,3},{4,5,6},{7,8,9}}'</programlisting> 
    107110   Cette constante a deux dimensions, un tableau 3 par 3 consistant en trois 
     
    139142 
    140143 <para> 
    141   Le résultat des deux insertions précédentes ressemble à ceci&nbsp;: 
     144  Le résultat des deux insertions précédentes ressemble à&nbsp;: 
    142145<programlisting>SELECT * FROM sal_emp; 
    143146 nom   |      paye_par_semaine     |      planning 
     
    252255 
    253256 <para> 
    254   Une expression indicée de tableau retourne NULL si, soit le tableau, soit une 
     257  Une expression indicée de tableau retourne NULL si le tableau ou une 
    255258  des expressions est NULL. De plus, NULL est renvoyé si un indice se trouve en 
    256259  dehors de la plage du tableau (ce cas n'amène pas d'erreur). 
    257260  Par exemple, si <literal>planning</literal> a les dimensions 
    258   <literal>[1:3][1:2]</literal>, alors faire référence à 
     261  <literal>[1:3][1:2]</literal>, faire référence à 
    259262  <literal>planning[3][3]</literal> donne un 
    260263  résultat NULL. De la même façon, une référence sur un tableau avec une 
     
    333336  six après une mise à jour qui affecte <literal>mon_tableau[6]</literal> 
    334337  car <literal>mon_tableau[5]</literal> est alors rempli avec une valeur NULL. 
    335   Actuellement, l'agrandissement de cette façon est seulement autorisé pour 
    336   les tableaux à une dimension, et non pas pour les tableaux multidimensionnels. 
     338  Actuellement, l'agrandissement de cette façon n'est autorisé que pour 
     339  les tableaux à une dimension, pas pour les tableaux multidimensionnels. 
    337340 </para> 
    338341 
     
    509512   et <literal>}</literal>) autour des valeurs du tableau et de caractères de 
    510513   délimitation entre éléments adjacents. Le caractère délimiteur est 
    511    habituellement une virgule (<literal>,</literal>) mais peut être 
    512    différent&nbsp;: 
     514   habituellement une virgule (<literal>,</literal>) mais peut différer&nbsp;: 
    513515   il est déterminé par le paramètre <literal>typdelim</literal> du type de l'élément 
    514    tableau (parmi les types de données standards supportés par l'implémentation 
     516   tableau (parmi les types de données standards supportés par l'implantation 
    515517   de <productname>PostgreSQL</productname>, le type <literal>box</literal> utilise un 
    516518   point-virgule (<literal>;</literal>) mais tous les autres utilisent la virgule). 
  • traduc/trunk/postgresql/backup.xml

    r947 r960  
    44     par      $Author$ 
    55     révision $Revision$ --> 
    6 <!-- SAS : 20070921, PG825 --> 
     6<!-- SAS : 20080319, PG831 --> 
    77<chapter id="backup"> 
    88 <title>Sauvegardes et restaurations</title> 
     
    221221    commandes pour re-créer des rôles, des tablespaces et des bases vides, puis 
    222222    en invoquant <application>pg_dump</application> pour chaque base de 
    223     données. Cela signifie que, bien que chaque base de données sera 
    224     cohérente en interne, les images des différentes bases de données ne 
    225     seront pas synchronisées. 
     223    données. Cela signifie que, bien que chaque base de données est 
     224    cohérente en interne, les images des différentes bases de données peuvent 
     225    ne pas être tout à fait synchronisées. 
    226226   </para> 
    227227  </sect2> 
     
    235235    sauvegarder une telle table en fichier peut poser des problèmes.  
    236236    Puisque <application>pg_dump</application> peut écrire sur la sortie 
    237     standard, les outils standard d'Unix peuvent être utiliser pour contourner 
     237    standard, les outils standard d'Unix peuvent être utilisés pour contourner 
    238238    ce problème éventuel. 
    239     Il existe plusieurs façon de le faire&nbsp;: 
     239    Il existe plusieurs façon de procéder&nbsp;: 
    240240   </para> 
    241241 
     
    299299</programlisting> 
    300300 
    301      . Voir les pages de référence de 
     301     Voir les pages de référence de 
    302302     <xref linkend="app-pgdump"/> et <xref linkend="app-pgrestore"/> pour plus de 
    303303     détails. 
     
    306306 
    307307   <para> 
    308     Pour les très grosses bases de données, vous pourriez avoir besoin 
    309     de combiner <command>split</command> avec une des deux autres approches. 
     308    Pour les très grosses bases de données, il peut être nécessaire de combiner 
     309    <command>split</command> avec une des deux autres approches. 
    310310   </para> 
    311311 
     
    353353      Quiconque s'est aventuré dans les détails de l'organisation de la  
    354354      base de données peut être tenté de ne sauvegarder et  
    355       de ne restaurer que certaines tables ou bases de données particulières.  
     355      restaurer que certaines tables ou bases de données particulières.  
    356356      Cela ne fonctionne <emphasis>pas</emphasis> parce que les informations 
    357357      contenues dans ces fichiers ne représentent que la moitité de la 
     
    372372  <para> 
    373373   Une autre approche à la sauvegarde du système de fichiers consiste à réaliser 
    374    une <quote>image cohérente</quote> du répertoire des données. Il faut 
     374   une <quote>image cohérente</quote> (<foreignphrase>consistent 
     375   snapshot</foreignphrase>) du répertoire des données. Il faut 
    375376   pour cela que le système 
    376377   de fichiers supporte cette fonctionnalité (et qu'il puisse lui être fait 
    377378   confiance). La procédure typique consiste à réaliser une 
    378    <quote>image gelée</quote> du volume contenant la base de données et 
     379   <quote>image gelée</quote> (<foreignphrase>frozen snapshot</foreignphrase>)  
     380   du volume contenant la base de données et 
    379381   ensuite de copier entièrement le répertoire de données (pas seulement 
    380382   quelques parties, 
    381383   voir ci-dessus) de l'image sur un périphérique de sauvegarde, puis de 
    382    libérer l'image gelé. Ceci fonctionne même si le serveur de la base de 
     384   libérer l'image gelée. Ceci fonctionne même si le serveur de la base de 
    383385   données est en cours d'exécution. Néanmoins, une telle sauvegarde 
    384386   copie les fichiers de la base de données dans un état où le 
    385387   serveur n'est pas correctement arrêté&nbsp;; du coup, au lancement du 
    386388   serveur à partir des données sauvegardées, PostgreSQL peut penser que le 
    387    serveur s'est stoppé brutalement et rejouer les journaux WAL. Ceci n'est 
     389   serveur s'est stoppé brutalement et rejouer les journaux WAL. Ce n'est 
    388390   pas un problème, mais il faut en être conscient (et s'assurer d'inclure les 
    389391   fichiers WAL dans la sauvegarde). 
     
    535537    WAL de 16&nbsp;Mo chacun (en général, mais cette taille peut 
    536538    être modifiée lors de la construction de <productname>PostgreSQL</productname>). Les 
    537     fichiers de segment reçoivent des noms numériques pour refléter leur 
     539    fichiers segment reçoivent des noms numériques pour refléter leur 
    538540    position dans la séquence abstraite des WAL. Lorsque le système n'utilise 
    539     pas l'archivage des WAL, il ne crée que quelques fichiers de segment, 
    540     qu'il <quote>recycle</quote> en renommant les fichiers de segment devenus inutiles. 
     541    pas l'archivage des WAL, il ne crée que quelques fichiers segment, 
     542    qu'il <quote>recycle</quote> en renommant les fichiers devenus inutiles. 
    541543    Un fichier segment dont le contenu précède le 
    542544    dernier point de vérification est supposé inutile et peut être recyclé. 
     
    549551    En fonction de l'application et du matériel disponible,  
    550552    <quote>sauvegarder les données ailleurs</quote> peut se faire de plusieurs 
    551     façons&nbsp;: les fichiers de segment peuvent être copiés dans un répertoire 
     553    façons&nbsp;: les fichiers segment peuvent être copiés dans un répertoire 
    552554    NFS monté sur une autre machine, être écrits sur une cartouche (après 
    553555    s'être assuré qu'il existe un moyen d'identifier le nom d'origine de chaque 
    554     fichier) ou être groupés pour gravage sur un CD, ou tout à fait autre chose. 
     556    fichier) ou être groupés pour gravage sur un CD, ou toute autre chose. 
    555557    Pour fournir autant de flexibilité que possible à l'administrateur de la 
    556558    base de données, <productname>PostgreSQL</productname> essaie de ne faire aucune 
     
    564566 
    565567   <para> 
    566     Pour activer l'archivage des journaux de transaction, configurez le 
     568    Pour activer l'archivage des journaux de transaction, on positionne le 
    567569    paramètre <xref linkend="guc-archive-mode"/> à <literal>on</literal>, 
    568     et précisez la commande shell à utiliser dans le paramètre 
    569     <xref linkend="guc-archive-command"/> configuration. En fait, ces 
     570    et on précise la commande shell à utiliser dans le paramètre 
     571    <xref linkend="guc-archive-command"/> de la configuration. En fait, ces 
    570572    paramètres seront toujours placés dans le fichier 
    571     <filename>postgresql.conf</filename>. Dans cette chaîne, tout 
     573    <filename>postgresql.conf</filename>. Dans cette chaîne, un 
    572574    <literal>%p</literal> est remplacé par le chemin absolu de 
    573     l'archive alors que tout <literal>%f</literal> n'est remplacé que par le 
     575    l'archive alors qu'un <literal>%f</literal> n'est remplacé que par le 
    574576    nom du fichier. (Le nom du chemin est relatif au répertoire de travail du 
    575577    serveur, c'est-à-dire le répertoire des données du cluster.) 
     
    583585    plateformes.) Après le remplacement des paramètres <literal>%p</literal> 
    584586    et <literal>%f</literal>, la commande réellement exécutée peut ressembler 
    585     à ceci&nbsp;: 
     587    à&nbsp;: 
    586588<programlisting>cp -i pg_xlog/00000001000000A900000065 /mnt/server/archivedir/00000001000000A900000065 &lt;/dev/null 
    587589</programlisting> 
    588     Une commande similaire sera générée pour chaque nouveau fichier à archiver. 
     590    Une commande similaire est produite pour chaque nouveau fichier à archiver. 
    589591   </para> 
    590592 
     
    622624    mais pas sur toutes. Si la commande choisie ne gère pas elle-même ce 
    623625    cas, il convient d'ajouter une commande pour tester l'existence du fichier 
    624        d'archivage. Par exemple, quelque chose comme&nbsp;: 
     626    d'archivage. Par exemple, quelque chose comme&nbsp;: 
    625627<programlisting>archive_command = 'test ! -f .../%f &amp;&amp; cp %p .../%f'</programlisting> 
    626628    fonctionne correctement sur la plupart des variantes Unix. 
     
    637639    archivé tant que la cassette n'est pas changée.  
    638640    Toute erreur ou requête à un opérateur humain doit être rapportée de façon 
    639     approprié pour que la situation puisse être résolue 
     641    appropriée pour que la situation puisse être résolue 
    640642    rapidement. Le répertoire <filename>pg_xlog/</filename> continue à se remplir 
    641643    de fichiers de segment WAL jusqu'à la résolution de la situation. 
    642644    (Si le système de fichiers contenant <filename>pg_xlog/</filename> se 
    643     remplit, <productname>PostgreSQL</productname> fera un arrêt en mode PANIC. 
    644     Aucune transaction précédente ne sera perdue mais la base de données sera 
    645     indisponible le temps que vous retrouviez de l'espace.) 
     645    remplit, <productname>PostgreSQL</productname> s'arrête en mode PANIC. 
     646    Aucune transaction antérieure n'est perdue mais la base de données est 
     647    indisponible le temps pour l'utilisateur de retrouver de l'espace.) 
    646648   </para> 
    647649 
     
    701703    <function>pg_switch_xlog</function>. Cela permet de s'assurer qu'une 
    702704    transaction tout juste terminée est archivée aussi vite que possible. 
    703         D'autres 
    704     fonctions utilitaires relatives à la gestion des WAL sont disponibles dans 
    705     <xref linkend="functions-admin-backup-table"/>. 
     705    D'autres fonctions utilitaires relatives à la gestion des WAL sont 
     706    disponibles dans <xref linkend="functions-admin-backup-table"/>. 
    706707   </para> 
    707708 
     
    713714    l'exécution d'une de ces instructions, les journaux de transaction ne 
    714715    contiennent pas d'informations suffisantes pour une récupération via les 
    715     archives mais la récupération après un arrêt brutal n'est pas affecté
    716     Pour cette raison, <varname>archive_mode</varname> peut seulement être 
    717     modifié au lancement du serveur. Néanmoins, 
     716    archives mais la récupération après un arrêt brutal n'est pas affectée
     717    Pour cette raison, <varname>archive_mode</varname> ne peut être 
     718    modifié qu'au lancement du serveur. Néanmoins, 
    718719    <varname>archive_command</varname> peut être modifié avec un 
    719     rechargement du fichier de configuration. Si vous souhaitez arrêter 
    720     temporairement l'archivage, une façon de le faire est de placer une 
     720    rechargement du fichier de configuration. Pour arrêter 
     721    temporairement l'archivage, on peut placer une 
    721722    chaîne vide (<literal>''</literal>) pour 
    722     <varname>archive_command</varname>. Les journaux de transaction seront 
     723    <varname>archive_command</varname>. Les journaux de transaction sont alors 
    723724    accumulés dans <filename>pg_xlog/</filename> jusqu'au rétablissement 
    724725    d'un paramètre <varname>archive_command</varname> fonctionnel. 
     
    768769     <xref linkend="guc-checkpoint-completion-target"/>). Habituellement, 
    769770     ce comportement est appréciable car il minimise l'impact du traitement 
    770      des requêtes. Si vous voulez commencer la sauvegarde aussi rapidement 
    771      que possible, exécutez la commande <command>CHECKPOINT</command> (qui 
    772      fait un point de retournement aussi rapidement que possible), puis 
    773      exécutez immédiatement <function>pg_start_backup</function>. Le point 
    774      de retournement de <function>pg_start_backup</function> n'aura plus 
    775      grand chose à faire, et s'exécutera donc rapidement. 
     771     des requêtes. Pour commencer la sauvegarde aussi rapidement 
     772     que possible, on exécute la commande <command>CHECKPOINT</command> (qui 
     773     déclenche un point de vérification dès que possible), puis 
     774     on exécute immédiatement <function>pg_start_backup</function>. Le point 
     775     de vérification de <function>pg_start_backup</function> n'a alors plus 
     776     grand chose à faire, et s'exécute donc rapidement. 
    776777    </para> 
    777778   </listitem> 
     
    841842    alors que <varname>full_page_writes</varname> est désactivé, une perte de 
    842843    performances entre <function>pg_start_backup</function> et 
    843     <function>pg_stop_backup</function> peut être constatée car 
    844     <varname>full_page_writes</varname> est réellement forcée lors du mode de 
     844    <function>pg_stop_backup</function> peut être constatée car l'activation du 
     845    paramètre <varname>full_page_writes</varname> est forcée lors du mode de 
    845846    sauvegarde.) Il convient toutefois de s'assurer que ces étapes sont 
    846847    effectuées séquentiellement, sans chevauchement. Dans le cas contraire, la 
     
    884885    système de fichiers et des segments WAL utilisés 
    885886    pendant celle-ci (comme précisé dans le fichier d'historique des sauvegardes)  
    886     sont archivés de façon sûre,    
     887    est archivée de façon sûre,    
    887888    tous les segments WAL archivés de noms numériquement plus 
    888889    petits ne sont plus nécessaires à la récupération de la sauvegarde du 
     
    10821083    Normalement, la récupération traite tous les segments WAL disponibles, 
    10831084    restaurant du coup la base de données à l'instant présent (ou aussi proche 
    1084     que possible, en fonction des segments WAL disponibles). Donc une 
     1085    que possible, en fonction des segments WAL disponibles). Une 
    10851086    récupération normale se finit avec un message <quote>fichier non 
    1086     trouvé</quote>, le texte exact du message d'erreur dépendant de votre 
    1087     choix de <varname>restore_command</varname>. Vous pouvez aussi voir un 
    1088     message d'erreur au début de la récupération d'un fichier nommé 
    1089     comme <filename>00000001.history</filename>. Ceci est aussi normal et 
    1090     n'indique par un problème dans les situations de récupération. Voir 
     1087    trouvé</quote>, le texte exact du message d'erreur dépendant du 
     1088    choix de <varname>restore_command</varname>. Un message d'erreur au 
     1089    début de la récupération peut également apparaître concernant un fichier nommé 
     1090    dont le nom ressemble à <filename>00000001.history</filename>. Ceci est aussi normal et 
     1091    n'indique par un problème dans les situations de récupération habituelles. Voir 
    10911092    <xref linkend="backup-timelines"/> pour plus d'informations. 
    10921093   </para> 
    10931094 
    10941095   <para> 
    1095     Si vous voulez récupérer jusqu'à un moment précis (disons juste avant 
    1096     que le DBA junior ait supprimé votre table principale), indiquez le 
    1097     point d'arrêt requis dans <filename>recovery.conf</filename>. Vous pouvez 
    1098     préciser le point d'arrêt connu sous le nom de <quote>recovery 
    1099     target</quote> (cible de récupération) soit par la date et l'heur
    1100     soit par le dernier identifiant de transaction. Actuellement, seule 
     1096    Pour récupérer à un moment précis (avant 
     1097    que le DBA junior n'ait supprimé la table principale), il suffit d'indiquer le 
     1098    point d'arrêt requis dans <filename>recovery.conf</filename>. Le 
     1099    point d'arrêt, aussi nommé <quote>recovery 
     1100    target</quote> (cible de récupération), peut être précisé par un
     1101    combinaison date/heure ou par le dernier identifiant de transaction. Actuellement, seule 
    11011102    l'option date/heure est vraiment utilisable car il n'existe pas d'outils 
    1102     pour vous aider à identifier avec précision l'identifiant de transaction 
     1103    permettant d'identifier avec précision l'identifiant de transaction 
    11031104    à utiliser. 
    11041105   </para> 
     
    11151116 
    11161117   <para> 
    1117     Si la récupération découvre une corruption des données WAL, 
     1118    Si la récupération fait face à une corruption des données WAL, 
    11181119    elle se termine à ce point et le serveur ne démarre pas. Dans un tel cas, 
    11191120    le processus de récupération peut alors être ré-exécuté à partir du début 
    1120     en précisant une <quote>cible de récupération</quote> avant le point de 
     1121    en précisant une <quote>cible de récupération</quote> antérieure au point de 
    11211122    récupération pour permettre à cette dernière de se terminer correctement. 
    11221123    Si la récupération échoue pour une raison externe (arrêt brutal du système 
    11231124    ou archive WAL devenue inaccessible), la récupération peut être 
    1124     simplement relancée. Elle redémarre alors pratiquement là où elle a échoué. 
     1125    simplement relancée. Elle redémarre alors quasiment là où elle a échoué. 
    11251126    Le redémarrage de la restauration fonctionne comme les points de 
    11261127    contrôle du déroulement normal&nbsp;: le serveur force une écriture 
    11271128    régulière de son état sur les disques et actualise alors le fichier 
    11281129    <filename>pg_control</filename> pour indiquer que les données WAL déjà 
    1129     parcourues n'ont plus à être parcourus. 
     1130    traitées n'ont plus à être parcourues. 
    11301131   </para> 
    11311132 
     
    11371138      <filename>recovery.conf</filename> et s'appliquent uniquement pour la durée de la 
    11381139      récupération. Ils doivent être réinitialisés avant toute récupération 
    1139       ultérieure. Ils ne peuvent pas être modifiés une fois que la récupération a commencé
     1140      ultérieure. Ils ne peuvent pas être modifiés après le démarrage de la récupération
    11401141     </para> 
    11411142 
     
    11581159        cette information peut être utilisée pour tronquer l'archive au 
    11591160        minimum nécessaire pour supporter le redémarrage de la restauration 
    1160         en cours. <literal>%r</literal> sera seulement utilisé dans le cas 
    1161         d'une configuration avec un serveur en attente (voir <xref 
     1161        en cours. <literal>%r</literal> n'est utilisé que dans le cas 
     1162        d'une configuration avec un serveur de secours (voir <xref 
    11621163        linkend="warm-standby"/>). 
    11631164        <literal>%%</literal> est utilisé pour écrire le 
     
    11671168        Il est impératif que la commande ne renvoie un code de sortie zéro 
    11681169        que si, et seulement si, elle a réussi. Des noms de fichiers absents 
    1169         de l'archive <emphasis>seront demandés</emphasis>&nbsp;; elle 
     1170        de l'archive <emphasis>seront demandés</emphasis> à la commande&nbsp;; elle 
    11701171        doit renvoyer une valeur différente de zéro dans ce cas. 
    11711172        Exemples&nbsp;: 
     
    12201221        ou juste avant (<literal>false</literal>). Il s'applique à 
    12211222        <xref linkend="recovery-target-time"/> et 
    1222         <xref linkend="recovery-target-xid"/>, en fonction de celui qui est 
     1223        <xref linkend="recovery-target-xid"/>, en fonction de celui qui est 
    12231224        indiqué pour cette récupération. Il indique si les transactions 
    1224         possédant l'instant cible exact de validation ou l'ID cible, respectivement, 
     1225        d'instant ou ID cible de validation exact, respectivement, 
    12251226        sont incluses dans la récupération. La valeur par défaut est 
    12261227        <literal>true</literal>. 
     
    12391240        ligne temporelle en cours au moment de la sauvegarde. Ce paramètre 
    12401241        ne doit être configuré que 
    1241         dans pour les situations de récupération complexes, dans lesquelles 
     1242        pour les situations de récupération complexes, dans lesquelles 
    12421243        il est nécessaire de retourner à un état postérieur à une récupération 
    12431244        d'instantané. Voir la <xref linkend="backup-timelines"/> pour plus 
     
    12671268  </sect2> 
    12681269 
     1270<!-- ICI --> 
    12691271  <sect2 id="backup-timelines"> 
    12701272   <title>Lignes temporelles (<foreignphrase>Timelines</foreignphrase>)</title> 
     
    12811283    La possibilité de restaurer la base de données à partir d'un instantané 
    12821284    crée une complexité digne des histoires de science-fiction traitant 
    1283     du voyage dans le temps et des univers parallèles. Dans l'historique 
     1285    du voyage dans le temps et des univers parallèles. 
     1286   </para> 
     1287   <para> 
     1288    Dans l'historique 
    12841289    original de la base de données, une table critique a peut-être été 
    1285     supprimée à 17h15 mardi soir, mais n'a pas réalisé son erreur jusqu'au 
    1286     mercredi midi. Sans stress, la sauvegarde est récupérée 
    1287     et restaurée jusqu'à 17h14 mardi soir. Tout est de nouveau 
    1288     fonctionnel. Dans <emphasis>cette</emphasis> histoire de l'univers de la base de 
     1290    supprimée à 17h15 mardi soir, mais personne n'a pas réalisé cette erreur 
     1291    avant mercredi midi. Sans stress, la sauvegarde est récupérée 
     1292    et restaurée dans l'état où elle se trouvait à 17h14 mardi soir. La base 
     1293    est fonctionnelle. Dans <emphasis>cette</emphasis> histoire de l'univers de la base de 
    12891294    données, la table n'a jamais été supprimée. Or, l'utilisateur 
    12901295    réalise peu après que ce n'était pas une si grande idée et veut 
    1291     revenir à quelque part le mercredi matin. Cela n'est pas possible, 
     1296    revenir à un quelconque moment du mercredi matin. Cela n'est pas possible, 
    12921297    si, alors que la base de données est de nouveau fonctionnelle, elle 
    12931298    réutilise certaines séquences de fichiers WAL qui permettent de 
     
    13021307    <foreignphrase>timelines</foreignphrase>). Quand une récupération 
    13031308    d'archive est terminée, une nouvelle ligne temporelle est créée pour 
    1304     identifier la série d'enregistrements WAL générée après cette 
     1309    identifier la série d'enregistrements WAL produits après cette 
    13051310    restauration. Le numéro d'identifiant de la timeline est inclus dans le 
    13061311    nom des fichiers de segment WAL. De ce fait, une nouvelle timeline 
     
    13581363      Il est possible d'utiliser les capacités de sauvegarde de 
    13591364      <productname>PostgreSQL</productname> 
    1360       pour produire des sauvegardes autonome à chaud. Ce sont des 
     1365      pour produire des sauvegardes autonomes à chaud. Ce sont des 
    13611366      sauvegardes qui ne peuvent pas être utilisées pour la récupération 
    13621367      à un instant donné, mais ce sont des sauvegardes qui sont typiquement 
    1363       plus rapide à faire et à restaurer que 
    1364       <application>pg_dump</application>. (Elles sont aussi bien plus grosses 
    1365       qu'une sauvegarde <application>pg_dump</application>, donc dans certains 
    1366       cas l'avantage de la rapidité aura un coût important.) 
     1368      plus rapide à obtenir et à restaurer que 
     1369      ceux issus de <application>pg_dump</application>. (Elles sont aussi bien 
     1370      plus volumineuses qu'un export <application>pg_dump</application>, il se 
     1371      peut donc que l'avantage de rapidité soit négatif.) 
    13671372     </para> 
    13681373 
    13691374     <para> 
    1370       Pour préparer des sauvegardes à chaud autonomes, configurez 
    1371       <varname>archive_mode</varname> à <literal>on</literal>, et configurez 
    1372       une <varname>archive_command</varname> qui réalise un archivage 
    1373       seulement quand un <quote>fichier de bascule</quote> existe. Par 
     1375      En vue d'effectuer des sauvegardes à chaud autonomes, on positionne 
     1376      <varname>archive_mode</varname> à <literal>on</literal>, et on configure 
     1377      <varname>archive_command</varname> de telle sorte que l'archivage ne soit 
     1378      réalisé que lorsqu'un <quote>fichier de bascule</quote> existe. Par 
    13741379      exemple&nbsp;: 
    13751380<programlisting> 
    13761381archive_command = 'test ! -f /var/lib/pgsql/backup_in_progress || cp -i %p /var/lib/pgsql/archive/%f &lt; /dev/null' 
    13771382</programlisting> 
    1378       Cette commande réalisera l'archivage quand 
    1379       <filename>/var/lib/pgsql/backup_in_progress</filename> existe, et sinon 
    1380       renverra silencieusement le code de statut zéro (permettant à 
     1383      Cette commande réalise l'archivage dès lors que 
     1384      <filename>/var/lib/pgsql/backup_in_progress</filename> existe. Dans le 
     1385      cas contraire, elle 
     1386      renvoie silencieusement le code de statut zéro (permettant à 
    13811387      <productname>PostgreSQL</productname> de recycler le journal de 
    13821388      transactions non désiré). 
     
    13971403      Le fichier de bascule, 
    13981404      <filename>/var/lib/pgsql/backup_in_progress</filename>, est créé en 
    1399       premier, activant l'archivage des journaux de transactions terminés. 
     1405      premier, activant l'archivage des journaux de transactions pleins. 
    14001406      Après la sauvegarde, le fichier de bascule est supprimé. Les journaux 
    14011407      de transaction archivés sont ensuite ajoutés à la sauvegarde pour que 
     
    14091415 
    14101416     <para> 
    1411       Beaucoup d'administrateurs de bases de données choisissent d'utiliser 
    1412       des scripts pour définir leur <varname>archive_command</varname>, donc 
    1413       leur <filename>postgresql.conf</filename> semble très simple&nbsp;: 
     1417      Nombreux sont ceux qui choisissent d'utiliser 
     1418      des scripts pour définir leur <varname>archive_command</varname>, de 
     1419      sorte que leur <filename>postgresql.conf</filename> semble très simple&nbsp;: 
    14141420<programlisting> 
    14151421archive_command = 'local_backup_script.sh' 
    14161422</programlisting> 
    1417       Utiliser un script séparé est conseillé à chaque fois que vous voulez 
    1418       utiliser plus d'une commande pour le processus d'archivage. 
     1423      Utiliser un script séparé est conseillé à chaque fois qu'il est envisagé 
     1424      d'utiliser plusieurs commandes pour le processus d'archivage. 
    14191425      Ainsi toute la complexité est gérée dans le script qui peut être 
    14201426      écrit dans un langage de scripts populaires comme 
    14211427      <application>bash</application> ou <application>perl</application>. 
    1422       Tout message écrit dans <literal>stderr</literal> à partir du script 
     1428      Tout message écrit sur <literal>stderr</literal> à partir du script 
    14231429      apparaîtra dans les journaux applicatifs de la base de données, cela 
    14241430      permettant aux configurations complexes d'être diagnostiquées facilement 
     
    14261432     </para> 
    14271433     <para> 
    1428       Voici quelques exemples de besoins qui pourraient être résolus dans 
     1434      Quelques exemples de besoins résolus dans 
    14291435      un script&nbsp;: 
    14301436      <itemizedlist> 
    14311437       <listitem> 
    14321438        <para> 
    1433          Copier des données vers un stockage distant&nbsp;; 
     1439         copier des données vers un stockage distant&nbsp;; 
    14341440        </para> 
    14351441       </listitem> 
    14361442       <listitem> 
    14371443        <para> 
    1438          Copier les journaux de transaction en groupe pour qu'ils soient 
     1444         copier les journaux de transaction en groupe pour qu'ils soient 
    14391445         transférés toutes les trois heures plutôt qu'un à la fois&nbsp;; 
    14401446        </para> 
     
    14421448       <listitem> 
    14431449        <para> 
    1444          S'interfacer avec d'autres outils de sauvegarde et de 
     1450         s'interfacer avec d'autres outils de sauvegarde et de 
    14451451         récupération&nbsp;; 
    14461452        </para> 
     
    14481454       <listitem> 
    14491455        <para> 
    1450          S'interfacer avec un outil de surveillance pour y renvoyer 
     1456         s'interfacer avec un outil de surveillance pour y renvoyer 
    14511457         les erreurs. 
    14521458        </para> 
     
    14961502     sont tracées dans les WAL avec le chemin absolu et sont donc rejouées 
    14971503     en tant que créations de <foreignphrase>tablespace</foreignphrase> 
    1498      suivant le même chemin absolu. Cec
    1499      peut être indésirable si la trace est rejouée sur une autre machine. 
    1500      Cela peut s'avérer dangereux même lorsque le journal est rejoué sur la 
     1504     suivant le même chemin absolu. Cela n'est pas forcément souhaitable s
     1505     le journal est rejouée sur une autre machine. 
     1506     De plus, cela peut s'avérer dangereux même lorsque le journal est rejoué sur la 
    15011507     même machine, mais dans un répertoire différent&nbsp;: la ré-exécution surcharge 
    15021508     toujours le contenu du <foreignphrase>tablespace</foreignphrase> original. 
     
    15111517   <para> 
    15121518    Il faut de plus garder à l'esprit que le format actuel des 
    1513     <acronym>WAL</acronym> est extrêmement difficile à gérer car il inclut 
     1519    <acronym>WAL</acronym> est extrêmement volumineux car il inclut 
    15141520    de nombreuses images des pages disques. Ces images de page sont conçues 
    1515     pour supporter la récupération après un arrêt brutal. Il peut en effe
     1521    pour supporter la récupération après un arrêt brutal, puisqu'il peu
    15161522    être nécessaire de corriger des pages disque partiellement écrites. 
    15171523    En fonction du matériel et des logiciels composant le système,  
     
    15221528    (lire les notes et avertissements dans <xref linkend="wal"/> avant 
    15231529    de le faire). Désactiver les images de page n'empêche pas l'utilisation des 
    1524     traces pour les opérations PITR. Un piste éventuelle de développements 
    1525     futurs consiste à compresser les données des WAL archivés en supprimant les copies 
     1530    traces pour les opérations PITR. Un piste éventuelle de développement 
     1531    futur consiste à compresser les données des WAL archivés en supprimant les copies 
    15261532    inutiles de pages même si <varname>full_page_writes</varname> est actif. Entre 
    15271533    temps, les administrateurs peuvent souhaiter réduire le nombre 
     
    15871593  <para> 
    15881594   L'archivage continu peut être utilisé pour créer une configuration de cluster 
    1589    de <firstterm>haute disponibilité</firstterm> (HA) avec un ou plusieurs 
    1590    <firstterm>serveurs de secours</firstterm>, prêt(s) à prendre en main les 
     1595   de <firstterm>haute disponibilité</firstterm> (HA) avec un (ou plusieurs) 
     1596   <firstterm>serveur(s) de secours</firstterm>, prêt(s) à prendre en main les 
    15911597   opérations en cas de défaillance du serveur principal. Cette fonctionnalité 
    15921598   est surtout connue sous le nom de 
     
    16021608   les fichiers WAL du serveur primaire. Aucune modification des tables 
    16031609   de la base n'est requise pour activer cette capacité. Elle a de ce fait 
    1604    un coût modique en terme d'administration supplémentaire en comparaison à 
     1610   un coût modique en terme d'administration supplémentaire en comparaison avec 
    16051611   d'autres approches de réplication. Cette configuration a également un impact 
    16061612   relativement faible sur les performances du serveur principal. 
     
    17021708    écrit, le serveur de secours les lit. Il est impératif que des 
    17031709    archives WAL de serveurs primaires différents ne soient pas mélangées. 
    1704     L'archive n'est pas nécessairement large, si c'est seulement requis 
    1705     par l'opération de standby. 
     1710    L'archive n'est pas nécessairement large, si elle ne sert qu'à 
     1711    l'opération de standby. 
    17061712   </para> 
    17071713 
     
    17441750 
    17451751   <para> 
    1746     Un exemple fonctionnel d'un <varname>restore_command</varname> en 
    1747     attente est fourni dans un module <filename>contrib</filename> appelé 
     1752    Un exemple fonctionnel de <varname>restore_command</varname>  
     1753    d'attente est fourni dans un module <filename>contrib</filename> appelé 
    17481754    <application>pg_standby</application>. Cet exemple peut être étendu 
    17491755    si nécessaire pour supporter des configurations ou environnements 
     
    17531759   <para> 
    17541760    <productname>PostgreSQL</productname> ne fournit pas de logiciel  
    1755     qui permette d'identifier une panne du serveur principal et d'en 
    1756     notifier le serveur de secours. De nombreux outils de ce type existent 
    1757     et sont bien intégrés à d'autres aspects nécessaires à la réussite du 
     1761    système qui permette d'identifier une panne du serveur principal et d'en 
     1762    notifier le système et le serveur de bases de données de secours. 
     1763    De nombreux outils de ce type existent et sont bien intégrés incluant d'autres 
     1764    aspects nécessaires à la réussite du 
    17581765    <foreignphrase>failover</foreignphrase>, comme la migration d'adresse IP. 
    17591766   </para> 
     
    17661773    exécutant <varname>restore_command</varname> est du coup créé et meurt 
    17671774    pour chaque fichier. Il n'y a, de ce fait, pas de démon ou de processus 
    1768     serveur. Il n'est alors pas possible d'utiliser les signaux et un 
     1775    serveur. Il n'est donc pas possible d'utiliser les signaux et un 
    17691776    gestionnaire de signal. Une notification plus permanente est requise pour 
    17701777    le déclenchement du <foreignphrase>failover</foreignphrase>. Il est 
     
    17761783    un <foreignphrase>failover</foreignphrase>. Un mécanisme de notification 
    17771784    tel que la création explicite d'un fichier déclencheur, quand cela est 
    1778     possible, est moins source d'erreur. 
     1785    possible, présente moins de risques d'erreur. 
    17791786   </para> 
    17801787 
     
    17991806     <listitem> 
    18001807      <para> 
    1801        Configurer les serveurs principal et de secours de façon quasi identique, 
     1808       Préaparer des configurations des serveurs principal et de secours 
     1809       aussi proches que possible,  
    18021810       ce qui inclut deux copies identiques de <productname>PostgreSQL</productname>, 
    18031811       dans la même version. 
     
    18071815      <para> 
    18081816       Configurer l'archivage continu sur le serveur principal vers une archive locale 
    1809        située dans un répertoire du serveur de secours. S'assurer que les deux 
    1810            paramètres <xref linkend="guc-archive-mode"/>, <xref 
    1811        linkend="guc-archive-command"/> et 
     1817       située dans un répertoire du serveur de secours. S'assurer que les 
     1818       paramètres <xref linkend="guc-archive-mode"/>,  
     1819       <xref linkend="guc-archive-command"/> et 
    18121820       <xref linkend="guc-archive-timeout"/> sont correctement configurés 
    18131821       sur le serveur principal (voir <xref linkend="backup-archiving-wal"/>). 
     
    18371845    copié sur une cassette en même temps qu'il est lu pour la 
    18381846    récupération. De ce fait, un serveur de secours  
    1839     de haute disponibilité peut tourner simultanément 
    1840     au stockage des fichiers à plus long terme en vue d'une récupération 
    1841     après un désastre. 
     1847    de haute disponibilité peut tourner en parallèle du 
     1848    stockage des fichiers en vue de besoins de reprise sur panne à plus long 
     1849    terme. 
    18421850   </para> 
    18431851 
     
    18451853    Pour les tests, il est possible d'exécuter le serveur principal 
    18461854    et celui de secours sur le même système. Cela n'apporte aucune amélioration 
    1847     sur la robustesse du système, et ne peut pas être présenté comme 
     1855    à la robustesse du système, et ne peut pas être présenté comme 
    18481856    de la haute disponibilité. 
    18491857   </para> 
     
    18741882    (<foreignphrase>Shoot The Other Node In The Head</foreignphrase>),  
    18751883    permet d'éviter les situations où les deux systèmes pensent qu'ils sont 
    1876     le serveur principal, ce qui engendrera une certaine confusion et 
    1877     conduire à des pertes irrémédiables de données. 
     1884    le serveur principal, ce qui engendrerait une certaine confusion et 
     1885    conduirait à des pertes irrémédiables de données. 
    18781886   </para> 
    18791887 
     
    18941902    serveur de secours, un seul serveur est opérationnel. On parle alors 
    18951903    d'état dégénéré. L'ancien serveur de secours est 
    1896     devenu serveur principal, l'ancien serveur principal est arrêté 
    1897     et peut le rester. Il faut désormais recréer un serveur de secours, soit 
     1904    devenu serveur principal, mais l'ancien serveur principal est arrêté 
     1905    et peut le rester. Pour revenir au fonctionnement normal, il faut 
     1906    désormais recréer intégralement un serveur de secours, soit 
    18981907    sur l'ancien système principal, s'il peut redémarrer, soit sur un 
    1899     troisième, de préférence nouveau, système. Lorsque cela est réalisé, on 
     1908    troisième système, de préférence nouveau. Cela réalisé, on 
    19001909    peut considérer que les deux serveurs ont échangé leurs rôles. 
    19011910   </para> 
     
    19041913    pour servir de sauvegarde au nouveau serveur principal le temps que le 
    19051914    serveur de secours devienne opérationnel. Toutefois, cela complique 
    1906     assurément la configuration du système et les processus opérationnels. 
     1915    la configuration du système et des processus opérationnels. 
    19071916   </para> 
    19081917 
    19091918   <para> 
    19101919    La bascule entre le serveur principal et celui de secours peut être 
    1911     rapide, mais nécessite quelque temps pour repréparer le cluster de  
     1920    rapide, mais nécessite quelques temps pour repréparer le cluster de  
    19121921    <foreignphrase>failover</foreignphrase>. Une bascule régulière 
    1913     est utile car elle permet l'arrêt régulier de chaque système, 
    1914     arrêt nécessaire pour maintenir la haute-disponiblité
     1922    est utile car elle permet l'arrêt régulier de chaque système pour 
     1923    maintenance
    19151924    Cela permet également de tester les mécanismes de 
    19161925    <foreignphrase>failover</foreignphrase> pour s'assurer que cela 
     
    19361945    <function>pg_xlogfile_name_offset()</function> (voir à ce propos la 
    19371946    <xref linkend="functions-admin"/>) pour trouver le nom du fichier et 
    1938     l'exact décalage en octet dans celui-ci de la fin actuelle du WAL. Il 
     1947    l'exact décalage en octets de la fin courante du WAL à l'intérieur de 
     1948    celui-ci. Il 
    19391949    peut alors accéder directement au fichier WAL et copier les données 
    19401950    depuis la dernière fin connue des WAL jusqu'à l'actuelle vers le(s) 
     
    19471957    traiter avec l'ensemble des fichiers WAL. De ce fait, les serveurs de 
    19481958    secours ne peuvent pas, en fonctionnement normal, disposer des données 
    1949     copiées par incréments. Elles ne deviennent utilisables que lorsque le 
     1959    copiées par incréments. Elles n'ont d'intérêt que lorsque le 
    19501960    serveur principal subit une panne &mdash; le dernier fichier WAL partiel 
    19511961    est alors chargé dans le serveur de secours avant qu'il puisse démarrer. 
     
    19902000    restauration sur le serveur de secours à partir du dernier point de 
    19912001    redémarrage. Il n'est alors plus nécessaire de conserver les fichiers 
    1992     WAL précédant le point de redémarrage. En cas de restauration, elle sera 
    1993     plus rapide à partir d'une sauvegarde incrémentale qu'à partir de la 
     2002    WAL précédant le point de redémarrage. Si une restauration s'avère 
     2003    nécessaire, elle est plus rapide si elle est effectuée à partir d'une 
     2004    sauvegarde incrémentale qu'à partir de la 
    19942005    sauvegarde originale. 
    19952006   </para> 
     
    20452056   pour cela&nbsp;; les méthodes de 
    20462057   sauvegarde au niveau système de fichiers ne fonctionnent évidemment pas. 
    2047    Un certain nombre de vérifications sont automatiquement effectuées pour 
     2058   Un certain nombre de vérifications est automatiquement effectué pour 
    20482059   interdire l'utilisation d'un répertoire de données d'une version 
    20492060   incompatible. Il n'y a donc pas grand risque à lancer une mauvaise 
     
    20842095   se trouver sur le même ordinateur ou sur un autre. Une fois qu'il est 
    20852096   synchronisé avec le serveur maître (utilisant l'ancienne version de 
    2086    <productname>PostgreSQL</productname>), vous pouvez basculer maître et 
    2087    esclave pour que l'esclave devienne le maître, puis arrêter l'ancien 
    2088    serveur. Ce basculement se faire en quelques secondes pour une mise à 
    2089    jour. 
     2097   <productname>PostgreSQL</productname>), le maître et 
     2098   l'esclave peuvent être basculés pour que l'esclave devienne le maître. 
     2099   L'ancien serveur peut alors être arrêté. Ce basculement intervient en 
     2100   quelques secondes dans le cadre d'une mise à jour. 
    20902101  </para> 
    20912102 
     
    21292140    répertoires d'installation différents au moment de la construction. (Ce 
    21302141    problème est rectifié pour <productname>PostgreSQL</productname> 8.0 et 
    2131     suivantes tant que vous déplacez ensemble tous les sous-répertoires 
    2132     contenant des fichiers installées&nbsp;; par exemple si 
     2142    suivantes tant que tous les sous-répertoires 
     2143    contenant des fichiers installées sont déplacés ensemble&nbsp;; par exemple si 
    21332144    <filename>/usr/local/postgres/bin/</filename> va dans 
    21342145    <filename>/usr/local/postgres.old/bin/</filename>, alors