| 8 | | <title>System Requirements</title> |
|---|
| 9 | | |
|---|
| 10 | | <para>Any platform that can run &postgres; should be able, in |
|---|
| 11 | | principle, to run &slony1;.</para> |
|---|
| 12 | | |
|---|
| 13 | | <indexterm><primary> platforms where &slony1; runs </primary> </indexterm> |
|---|
| 14 | | |
|---|
| 15 | | <para>The platforms that have received specific testing at the time of |
|---|
| 16 | | this release are FreeBSD-4X-i368, FreeBSD-5X-i386, FreeBSD-5X-alpha, |
|---|
| 17 | | OS-X-10.3, Linux-2.4X-i386 Linux-2.6X-i386 Linux-2.6X-amd64, |
|---|
| 18 | | <trademark>Solaris</trademark>-2.8-SPARC, |
|---|
| 19 | | <trademark>Solaris</trademark>-2.9-SPARC, AIX 5.1, OpenBSD-3.5-sparc64 |
|---|
| 20 | | and &windows; 2000, XP and 2003 (32 bit).</para> |
|---|
| 21 | | |
|---|
| 22 | | <sect2> |
|---|
| 23 | | <title> &slony1; Software Dependancies</title> |
|---|
| 24 | | |
|---|
| 25 | | <indexterm><primary> software dependancies </primary> </indexterm> |
|---|
| 26 | | |
|---|
| 27 | | <para> At present, &slony1; <emphasis>as well as &postgres;</emphasis> |
|---|
| 28 | | need to be able to be compiled from source at your site.</para> |
|---|
| 29 | | |
|---|
| 30 | | <para> In order to compile &slony1;, you need to have the following |
|---|
| 31 | | tools: |
|---|
| 32 | | |
|---|
| 33 | | <itemizedlist> |
|---|
| 34 | | <listitem><para> GNU make. Other make programs will not work. GNU |
|---|
| 35 | | make is often installed under the name <command>gmake</command>; this |
|---|
| 36 | | document will therefore always refer to it by that name. (On |
|---|
| 37 | | Linux-based systems GNU make is typically the default make, and is |
|---|
| 38 | | called <command>make</command>) To test to see if your make is GNU |
|---|
| 39 | | make enter <command>make version</command>. Version 3.76 or later |
|---|
| 40 | | will suffice; previous versions may not.</para></listitem> |
|---|
| 41 | | |
|---|
| 42 | | <listitem><para> You need an ISO/ANSI C compiler. Recent versions of |
|---|
| 43 | | <application>GCC</application> work.</para></listitem> |
|---|
| 44 | | |
|---|
| 45 | | <listitem><para> You also need a recent version of &postgres; |
|---|
| 46 | | <emphasis>source</emphasis>. &slony1; depends on namespace support so |
|---|
| 47 | | you must have &postgres; version 7.3.3 or newer to be able to build |
|---|
| 48 | | and use &slony1;. </para> |
|---|
| 49 | | |
|---|
| 50 | | <para> Earlier versions of &postgres; are <emphasis> not </emphasis> |
|---|
| 51 | | supported, but note that one user has <quote>hacked</quote> &slony1; |
|---|
| 52 | | to do a 7.2-to-7.4 upgrade; see <link linkend="v72upgrade"> &postgres; |
|---|
| 53 | | 7.2 notes </link>. </para> |
|---|
| 54 | | |
|---|
| 55 | | <para> Versions of &postgres; prior to 7.4.8 may run into a |
|---|
| 56 | | longstanding race condition that leads to problems of <link |
|---|
| 57 | | linkend="dupkey"> <quote>duplicate keys</quote></link>, so you may |
|---|
| 58 | | want to consider upgrades if you are running earlier versions.</para> |
|---|
| 59 | | |
|---|
| 60 | | <para> If you are running a version of &postgres; earlier |
|---|
| 61 | | than 8.0, you need to make sure that server header files were |
|---|
| 62 | | installed. If installing from sources, this is done via the command |
|---|
| 63 | | <command>make install-all-headers</command>. Otherwise, you will |
|---|
| 64 | | encounter the <link linkend="missingheaders"> missing headers for |
|---|
| 65 | | libpqserver</link> problem described in the FAQ. |
|---|
| 66 | | </para> |
|---|
| 67 | | |
|---|
| 68 | | <para> If you are running versions 8.1.0 thru 8.1.3, there is a bug |
|---|
| 69 | | (addressed in 8.1.4) which prevents <xref |
|---|
| 70 | | linkend="stmtupdatefunctions"/> from running properly. For more |
|---|
| 71 | | details see the <xref linkend="FAQ"/>, <link |
|---|
| 72 | | linkend="pg81funs"> on &postgres; 8.1.[0-3] </link>. </para> |
|---|
| 73 | | |
|---|
| 74 | | </listitem> |
|---|
| 75 | | |
|---|
| 76 | | <listitem><para> GNU packages may be included in the standard |
|---|
| 77 | | packaging for your operating system, or you may need to look for |
|---|
| 78 | | source code at your local GNU mirror (see <ulink |
|---|
| 79 | | url="http://www.gnu.org/order/ftp.html"> |
|---|
| 80 | | http://www.gnu.org/order/ftp.html </ulink> for a list) or at <ulink |
|---|
| 81 | | url="ftp://ftp.gnu.org/gnu"> ftp://ftp.gnu.org/gnu </ulink> |
|---|
| 82 | | .)</para></listitem> |
|---|
| 83 | | |
|---|
| 84 | | <listitem><para> If you need to obtain &postgres; source, you can |
|---|
| 85 | | download it from your favorite &postgres; mirror. See <ulink |
|---|
| 86 | | url="http://www.postgresql.org/mirrors-www.html"> |
|---|
| 87 | | http://www.postgresql.org/mirrors-www.html </ulink> for a |
|---|
| 88 | | list.</para></listitem> |
|---|
| 89 | | |
|---|
| 90 | | <listitem><para> This documentation is written in SGML using <ulink |
|---|
| 91 | | url="http://docbook.com/"> DocBook </ulink>, and may be processed into |
|---|
| 92 | | numerous formats including HTML, RTF, and PDF using tools in the |
|---|
| 93 | | <ulink url="http://docbook.sourceforge.net/"> DocBook Open Repository |
|---|
| 94 | | </ulink> along with <ulink url="http://openjade.sourceforge.net/"> |
|---|
| 95 | | OpenJade.</ulink> </para></listitem> |
|---|
| 96 | | |
|---|
| 97 | | <listitem><para> On &windows; you will also need the same <ulink url= |
|---|
| 98 | | "http://www.postgresql.org/docs/faqs.FAQ_MINGW.html">MinGW/Msys |
|---|
| 99 | | Toolset</ulink> used to build &postgres; 8.0 and above. In addition |
|---|
| 100 | | you will need to install <ulink url= |
|---|
| 101 | | "http://sourceware.org/pthreads-win32/">pthreads-win32 |
|---|
| 102 | | 2.x</ulink>. </para></listitem> |
|---|
| 103 | | |
|---|
| 104 | | </itemizedlist> </para> |
|---|
| 105 | | |
|---|
| 106 | | <para>Also check to make sure you have sufficient disk space. You |
|---|
| 107 | | will need approximately 5MB for the source tree during build and |
|---|
| 108 | | installation.</para> |
|---|
| 109 | | |
|---|
| 110 | | <note><para>In &slony1; version 1.1, it is possible to compile |
|---|
| 111 | | &slony1; separately from &postgres;, making it practical for the |
|---|
| 112 | | makers of distributions of <productname>Linux</productname> and |
|---|
| 113 | | <productname>FreeBSD</productname> to include precompiled binary |
|---|
| 114 | | packages for &slony1;. If no suitable packages are available, you |
|---|
| 115 | | will need to be prepared to compile &slony1; yourself. </para></note> |
|---|
| 116 | | </sect2> |
|---|
| 117 | | |
|---|
| 118 | | <sect2> |
|---|
| 119 | | <title> Getting &slony1; Source</title> |
|---|
| 120 | | |
|---|
| 121 | | <indexterm><primary>downloading &slony1; sources</primary></indexterm> |
|---|
| 122 | | |
|---|
| 123 | | <para>You can get the &slony1; source from <ulink |
|---|
| 124 | | url="http://main.slony.info/downloads/"> |
|---|
| 125 | | http://main.slony.info/downloads/</ulink> |
|---|
| 126 | | </para> |
|---|
| 127 | | |
|---|
| 128 | | </sect2> |
|---|
| 129 | | |
|---|
| 130 | | <sect2 id="encoding"> |
|---|
| 131 | | <title> Database Encoding </title> |
|---|
| 132 | | |
|---|
| 133 | | <indexterm><primary> database encodings</primary></indexterm> |
|---|
| 134 | | |
|---|
| 135 | | <para> &postgres; databases may be created in a number of language |
|---|
| 136 | | encodings, set up via the <command>createdb --encoding=$ENCODING |
|---|
| 137 | | databasename</command> option. &slony1; assumes that they use |
|---|
| 138 | | <emphasis>identical</emphasis> encodings. |
|---|
| 139 | | </para> |
|---|
| 140 | | |
|---|
| 141 | | <para> If the encodings are <quote>closely equivalent</quote>, you may |
|---|
| 142 | | be able to get away with them not being absolutely identical. For |
|---|
| 143 | | instance, if the origin system used <envar>LATIN1</envar> and a |
|---|
| 144 | | subscriber used <envar>SQL_ASCII</envar> and another subscriber used |
|---|
| 145 | | <envar>UNICODE</envar>, and your application never challenges the |
|---|
| 146 | | boundary conditions between these variant encodings, you may never |
|---|
| 147 | | experience any problems. </para> |
|---|
| 148 | | |
|---|
| 149 | | <para> In &postgres; 8.1, changes were made to the |
|---|
| 150 | | <envar>UNICODE</envar> encoding because earlier versions accepted some |
|---|
| 151 | | invalid encodings. This can lead to <link linkend="faqunicode"> |
|---|
| 152 | | replication problems.</link> </para> |
|---|
| 153 | | |
|---|
| 154 | | <para> Note also that if the client encoding (configured assortedly in |
|---|
| 155 | | <filename>postgresql.conf</filename>, parameter |
|---|
| 156 | | <envar>client_encoding</envar>, or via the |
|---|
| 157 | | <application>psql</application> <command>\encoding </command> command, |
|---|
| 158 | | or the <application>psql</application> internal variable |
|---|
| 159 | | <envar>ENCODING</envar>) varies from the server encoding, this |
|---|
| 160 | | mismatch may lead to &slony1; being unable to replicate those |
|---|
| 161 | | characters supported by the client encoding but not by the server |
|---|
| 162 | | encoding. </para> |
|---|
| 163 | | |
|---|
| 164 | | </sect2> |
|---|
| 165 | | |
|---|
| 166 | | <sect2 id="times"> |
|---|
| 167 | | <title> Time Synchronization</title> |
|---|
| 168 | | |
|---|
| 169 | | <indexterm><primary> time synchronization</primary></indexterm> |
|---|
| 170 | | |
|---|
| 171 | | <para> All the servers used within the replication cluster need to |
|---|
| 172 | | have their Real Time Clocks in sync. This is to ensure that <xref |
|---|
| 173 | | linkend="slon"/> doesn't generate errors with messages indicating that |
|---|
| 174 | | a subscriber is already ahead of its provider during replication. |
|---|
| 175 | | Interpreting logs when servers have a different idea of what time it |
|---|
| 176 | | is leads to confusion and frustration. It is recommended that you |
|---|
| 177 | | have <application>ntpd</application> running on all nodes, where |
|---|
| 178 | | subscriber nodes using the <quote>master</quote> provider host as |
|---|
| 179 | | their time server.</para> |
|---|
| 180 | | |
|---|
| 181 | | <para> It is possible for &slony1; itself to function even in the face |
|---|
| 182 | | of there being some time discrepancies, but having systems <quote>in |
|---|
| 183 | | sync</quote> is usually pretty important for distributed |
|---|
| 184 | | applications.</para> |
|---|
| 185 | | |
|---|
| 186 | | <para> See <ulink url="http://www.ntp.org/"> www.ntp.org </ulink> for |
|---|
| 187 | | more details about NTP (Network Time Protocol).</para> |
|---|
| 188 | | |
|---|
| 189 | | <para> Some users have reported problems that have been traced to |
|---|
| 190 | | their locales indicating the use of some time zone that &postgres; did |
|---|
| 191 | | not recognize. |
|---|
| 192 | | |
|---|
| 193 | | <itemizedlist> |
|---|
| 194 | | |
|---|
| 195 | | <listitem><para> On <productname>AIX</productname>, |
|---|
| 196 | | <command><envar>TZ</envar>=CUT0</command> was unrecognized, leading to |
|---|
| 197 | | timestamps pulled from system calls causing it to |
|---|
| 198 | | break.</para> |
|---|
| 199 | | |
|---|
| 200 | | <para> <command>CUT0</command> is a variant way of describing |
|---|
| 201 | | <command>UTC</command></para> |
|---|
| 202 | | </listitem> |
|---|
| 203 | | |
|---|
| 204 | | <listitem><para> Some countries' timezones are not yet included in |
|---|
| 205 | | &postgres;. </para></listitem> |
|---|
| 206 | | |
|---|
| 207 | | </itemizedlist></para> |
|---|
| 208 | | |
|---|
| 209 | | <para> In any case, what commonly seems to be the <quote>best |
|---|
| 210 | | practice</quote> with &slony1; (and, for that matter, &postgres;) is |
|---|
| 211 | | for the postmaster user and/or the user under which |
|---|
| 212 | | <application>slon</application> runs to use |
|---|
| 213 | | <command><envar>TZ</envar>=UTC</command> or |
|---|
| 214 | | <command><envar>TZ</envar>=GMT</command>. Those timezones are |
|---|
| 215 | | <emphasis>sure</emphasis> to be supported on any platform, and have |
|---|
| 216 | | the merit over <quote>local</quote> timezones that times never wind up |
|---|
| 217 | | leaping around due to Daylight Savings Time.</para> |
|---|
| 218 | | |
|---|
| 219 | | </sect2> |
|---|
| 220 | | |
|---|
| 221 | | <sect2><title> Network Connectivity</title> |
|---|
| 222 | | |
|---|
| 223 | | <indexterm><primary> network connectivity</primary></indexterm> |
|---|
| 224 | | |
|---|
| 225 | | <para>It is necessary that the hosts that are to replicate between one |
|---|
| 226 | | another have <emphasis>bidirectional</emphasis> network communications |
|---|
| 227 | | between the &postgres; instances. That is, if node B is replicating |
|---|
| 228 | | data from node A, it is necessary that there be a path from A to B and |
|---|
| 229 | | from B to A. It is recommended that, as much as possible, all nodes |
|---|
| 230 | | in a &slony1; cluster allow this sort of bidirection communications |
|---|
| 231 | | from any node in the cluster to any other node in the cluster.</para> |
|---|
| 232 | | |
|---|
| 233 | | <para>For ease of configuration, network addresses should ideally be |
|---|
| 234 | | consistent across all of the nodes. <xref linkend="stmtstorepath"/> |
|---|
| 235 | | does allow them to vary, but down this road lies madness as you try to |
|---|
| 236 | | manage the multiplicity of paths pointing to the same server.</para> |
|---|
| 237 | | |
|---|
| 238 | | <para>A possible workaround for this, in environments where firewall |
|---|
| 239 | | rules are particularly difficult to implement, may be to establish |
|---|
| 240 | | <ulink url="http://www.brandonhutchinson.com/ssh_tunnelling.html" |
|---|
| 241 | | id="tunnelling"> SSH Tunnels </ulink> that are created on each host |
|---|
| 242 | | that allow remote access through a local IP address such as 127.0.0.1, |
|---|
| 243 | | using a different port for each destination.</para> |
|---|
| 244 | | |
|---|
| 245 | | <para> Note that <application>slonik</application> and the |
|---|
| 246 | | <application>slon</application> instances need no special connections |
|---|
| 247 | | or protocols to communicate with one another; they merely need access |
|---|
| 248 | | to the &postgres; databases, connecting as a <quote>superuser</quote> |
|---|
| 249 | | <link linkend="morethansuper">that has the ability to update system |
|---|
| 250 | | tables.</link></para> |
|---|
| 251 | | |
|---|
| 252 | | <para> An implication of this communications model is that the entire |
|---|
| 253 | | extended network in which a &slony1; cluster operates must be able to |
|---|
| 254 | | be treated as being secure. If there is a remote location where you |
|---|
| 255 | | cannot trust one of the databases that is a &slony1; node to be |
|---|
| 256 | | considered <quote>secure,</quote> this represents a vulnerability that |
|---|
| 257 | | can adversely affect the security of the entire cluster. As a |
|---|
| 258 | | <quote>peer-to-peer</quote> system, <emphasis>any</emphasis> of the |
|---|
| 259 | | hosts is able to introduce replication events that will affect the |
|---|
| 260 | | entire cluster. Therefore, the security policies throughout the |
|---|
| 261 | | cluster can only be considered as stringent as those applied at the |
|---|
| 262 | | <emphasis>weakest</emphasis> link. Running a &slony1; node at a |
|---|
| 263 | | branch location that can't be kept secure compromises security for the |
|---|
| 264 | | cluster as a whole.</para> |
|---|
| 265 | | |
|---|
| 266 | | <para>New in &slony1; version 1.1 is a feature whereby updates for a |
|---|
| 267 | | particular replication set may be serialized via a scheme called |
|---|
| 268 | | &logshiplink;. The data stored in <envar>sl_log_1</envar> and |
|---|
| 269 | | <envar>sl_log_2</envar> is also written out to log files on disk. |
|---|
| 270 | | These files may then be transmitted in any manner desired, whether via |
|---|
| 271 | | scp, FTP, burning them onto DVD-ROMs and mailing them, or, at the |
|---|
| 272 | | frivolous end of the spectrum, by recording them on a USB <quote>flash |
|---|
| 273 | | device</quote> and attaching them to birds, allowing some equivalent |
|---|
| 274 | | to <ulink url="http://www.faqs.org/rfcs/rfc1149.html"> transmission of |
|---|
| 275 | | IP datagrams on avian carriers - RFC 1149.</ulink> But whatever the |
|---|
| 276 | | transmission mechanism, this allows one way communications such that |
|---|
| 277 | | subscribers that use log shipping have no need of access to other |
|---|
| 278 | | &slony1; nodes.</para> |
|---|
| 279 | | |
|---|
| 280 | | </sect2> |
|---|
| | 8 | <title>Pré requis systÚme</title> |
|---|
| | 9 | |
|---|
| | 10 | <para> |
|---|
| | 11 | N'importe quelle plate forme capable de faire tourner |
|---|
| | 12 | &postgres; |
|---|
| | 13 | devrait être capable, en principe, de faire tourner |
|---|
| | 14 | &slony1;. |
|---|
| | 15 | </para> |
|---|
| | 16 | |
|---|
| | 17 | <indexterm> |
|---|
| | 18 | <primary> |
|---|
| | 19 | plates formes sur lesquelles |
|---|
| | 20 | &slony1; |
|---|
| | 21 | tourne |
|---|
| | 22 | </primary> |
|---|
| | 23 | </indexterm> |
|---|
| | 24 | |
|---|
| | 25 | <para> |
|---|
| | 26 | Les plates formes ayant été testées spécifiquement à ce jour pour cette release |
|---|
| | 27 | sont FreeBSD-4X-i368, FreeBSD-5X-i386,FreeBSD-5X-alpha, OS-X-10.3, |
|---|
| | 28 | Linux-2.4X-i386 Linux-2.6X-i386, Linux-2.6X-amd64, |
|---|
| | 29 | <trademark>Solaris</trademark> |
|---|
| | 30 | -2.8-SPARC, |
|---|
| | 31 | <trademark>Solaris</trademark> |
|---|
| | 32 | -2.9-SPARC, AIX 5.1, OpenBSD-3.5-sparc64 et |
|---|
| | 33 | &windows; |
|---|
| | 34 | 2000, XP et 2003 (32 bit). |
|---|
| | 35 | </para> |
|---|
| | 36 | |
|---|
| | 37 | <sect2> |
|---|
| | 38 | <title> |
|---|
| | 39 | &slony1; |
|---|
| | 40 | Dépendances logicielles |
|---|
| | 41 | </title> |
|---|
| | 42 | |
|---|
| | 43 | <indexterm> |
|---|
| | 44 | <primary>Dépendances logicielles</primary> |
|---|
| | 45 | </indexterm> |
|---|
| | 46 | |
|---|
| | 47 | <para> |
|---|
| | 48 | A ce jour, |
|---|
| | 49 | &slony1; |
|---|
| | 50 | <emphasis> |
|---|
| | 51 | de la même façon que |
|---|
| | 52 | &postgres; |
|---|
| | 53 | </emphasis> |
|---|
| | 54 | nécessite d'être compilé depuis ses sources sur votre site. |
|---|
| | 55 | </para> |
|---|
| | 56 | |
|---|
| | 57 | <para> |
|---|
| | 58 | Afin de compiler |
|---|
| | 59 | &slony1;, vous avez besoin des outils suivants : |
|---|
| | 60 | |
|---|
| | 61 | <itemizedlist> |
|---|
| | 62 | <listitem> |
|---|
| | 63 | <para> |
|---|
| | 64 | GNU make. D'autres modules make ne fonctionnent pas. GNU |
|---|
| | 65 | make est souvent installé sous le nom de |
|---|
| | 66 | <command>gmake</command> |
|---|
| | 67 | ; qui sera référencé sous ce nom tout au long de ce document. (Sur les systÚmes linux, GNU |
|---|
| | 68 | make est le make par defaut, et se nomme |
|---|
| | 69 | <command>make</command> |
|---|
| | 70 | ) Pour tester si votre make est GNU make entrez |
|---|
| | 71 | <command>make version</command> |
|---|
| | 72 | . La version 3.76 ou supérieure convient; les versions antérieures ne conviennent pas. |
|---|
| | 73 | </para> |
|---|
| | 74 | </listitem> |
|---|
| | 75 | |
|---|
| | 76 | <listitem> |
|---|
| | 77 | <para> |
|---|
| | 78 | Vous avez besoin du compilateur C ISO/ANSI. Les versions |
|---|
| | 79 | récentes de |
|---|
| | 80 | <application>GCC</application> |
|---|
| | 81 | fonctionnent. |
|---|
| | 82 | </para> |
|---|
| | 83 | </listitem> |
|---|
| | 84 | |
|---|
| | 85 | <listitem> |
|---|
| | 86 | <para> |
|---|
| | 87 | Vous avez également besoin d'une version source récente de |
|---|
| | 88 | &postgres; |
|---|
| | 89 | <emphasis>source</emphasis> |
|---|
| | 90 | . |
|---|
| | 91 | &slony1; |
|---|
| | 92 | dépend du support d'espace de noms, vous avez donc besoin |
|---|
| | 93 | de la version 7.3.3 de |
|---|
| | 94 | &postgres; |
|---|
| | 95 | ou d'une version plus récente pour pouvoir compiler et utiliser |
|---|
| | 96 | &slony1;. |
|---|
| | 97 | </para> |
|---|
| | 98 | |
|---|
| | 99 | <para> |
|---|
| | 100 | Les versions précendentes de |
|---|
| | 101 | &postgres; |
|---|
| | 102 | <emphasis>ne sont pas</emphasis> |
|---|
| | 103 | supportées, mais noter qu'un utilisateur a |
|---|
| | 104 | <quote>forcé</quote> |
|---|
| | 105 | &slony1; |
|---|
| | 106 | dans le cadre d'une migration d'une version 7.2 vers une version 7.4; voir |
|---|
| | 107 | <link linkend="v72upgrade"> |
|---|
| | 108 | &postgres; |
|---|
| | 109 | 7.2 notes |
|---|
| | 110 | </link> |
|---|
| | 111 | . |
|---|
| | 112 | </para> |
|---|
| | 113 | |
|---|
| | 114 | <para> |
|---|
| | 115 | Les versions de |
|---|
| | 116 | &postgres; |
|---|
| | 117 | antérieures à la 7.4.8 peuvent conduire à une requête sans fin |
|---|
| | 118 | conduisant à une condition de |
|---|
| | 119 | <link linkend="dupkey"> |
|---|
| | 120 | <quote>duplicate keys</quote> |
|---|
| | 121 | </link> |
|---|
| | 122 | , vous devez alors envisager une mise à jour pour éviter ce type d'erreur. |
|---|
| | 123 | </para> |
|---|
| | 124 | |
|---|
| | 125 | <para> |
|---|
| | 126 | Si vous utiliser une version de |
|---|
| | 127 | &postgres; |
|---|
| | 128 | antérieure à la version 8.0, vous devez vous assurer que |
|---|
| | 129 | les fichiers d'en-tête de serveur sont installés. Si |
|---|
| | 130 | vous installez depuis les sources, cela se fait par la |
|---|
| | 131 | commande |
|---|
| | 132 | <command>make install-all-headers</command> |
|---|
| | 133 | . Sinon, vous rencontrerez le problÚme |
|---|
| | 134 | <link linkend="missingheaders"> |
|---|
| | 135 | missing headers for libpqserver |
|---|
| | 136 | </link> |
|---|
| | 137 | décrit dans le FAQ. |
|---|
| | 138 | </para> |
|---|
| | 139 | |
|---|
| | 140 | <para> |
|---|
| | 141 | Si vous utilisez les versions 8.1.0 Ã 8.1.3, |
|---|
| | 142 | il y a un bug (corrigé en 8.1.4) empêchant |
|---|
| | 143 | <xref linkend="stmtupdatefunctions" /> |
|---|
| | 144 | de fonctionner correctement. Pour plus de détails, voir le |
|---|
| | 145 | <xref linkend="FAQ" /> |
|---|
| | 146 | , |
|---|
| | 147 | <link linkend="pg81funs"> |
|---|
| | 148 | |
|---|
| | 149 | &postgres; |
|---|
| | 150 | 8.1.[0-3] |
|---|
| | 151 | </link> |
|---|
| | 152 | . |
|---|
| | 153 | </para> |
|---|
| | 154 | |
|---|
| | 155 | </listitem> |
|---|
| | 156 | |
|---|
| | 157 | <listitem> |
|---|
| | 158 | <para> |
|---|
| | 159 | Les packages GNU peuvent être inclus dans le packaging standard |
|---|
| | 160 | de votre systÚme, ou doivent être recherchés sur votre |
|---|
| | 161 | miroir local GNU (voir |
|---|
| | 162 | <ulink |
|---|
| | 163 | url="http://www.gnu.org/order/ftp.html"> |
|---|
| | 164 | http://www.gnu.org/order/ftp.html |
|---|
| | 165 | </ulink> |
|---|
| | 166 | pour une liste) ou |
|---|
| | 167 | <ulink url="ftp://ftp.gnu.org/gnu"> |
|---|
| | 168 | ftp://ftp.gnu.org/gnu |
|---|
| | 169 | </ulink> |
|---|
| | 170 | .) |
|---|
| | 171 | </para> |
|---|
| | 172 | </listitem> |
|---|
| | 173 | |
|---|
| | 174 | <listitem> |
|---|
| | 175 | <para> |
|---|
| | 176 | Si vous devez obtenir les sources |
|---|
| | 177 | &postgres; |
|---|
| | 178 | , vous pouvez les télécharger depuis votre miroir |
|---|
| | 179 | &postgres; |
|---|
| | 180 | favori. Voir |
|---|
| | 181 | <ulink |
|---|
| | 182 | url="http://www.postgresql.org/mirrors-www.html"> |
|---|
| | 183 | http://www.postgresql.org/mirrors-www.html |
|---|
| | 184 | </ulink> |
|---|
| | 185 | pour une liste. |
|---|
| | 186 | </para> |
|---|
| | 187 | </listitem> |
|---|
| | 188 | |
|---|
| | 189 | <listitem> |
|---|
| | 190 | <para> |
|---|
| | 191 | Cette documentation est écrite en SGML avec |
|---|
| | 192 | <ulink url="http://docbook.com/">DocBook</ulink> |
|---|
| | 193 | , et peut être traduite dans de nombreux formats |
|---|
| | 194 | incluant le HTML, le RTF, et le PDF en utilisant des outils |
|---|
| | 195 | <ulink url="http://docbook.sourceforge.net/"> |
|---|
| | 196 | dans le repository DocBook |
|---|
| | 197 | </ulink> |
|---|
| | 198 | avec |
|---|
| | 199 | <ulink url="http://openjade.sourceforge.net/"> |
|---|
| | 200 | OpenJade. |
|---|
| | 201 | </ulink> |
|---|
| | 202 | </para> |
|---|
| | 203 | </listitem> |
|---|
| | 204 | |
|---|
| | 205 | <listitem> |
|---|
| | 206 | <para> |
|---|
| | 207 | Sous |
|---|
| | 208 | &windows; |
|---|
| | 209 | aurez aussi besoin de la boîte à outils |
|---|
| | 210 | <ulink |
|---|
| | 211 | url="http://www.postgresql.org/docs/faqs.FAQ_MINGW.html"> |
|---|
| | 212 | MinGW/Msys |
|---|
| | 213 | </ulink> |
|---|
| | 214 | pour compiler les versions 8.0 et supérieures de |
|---|
| | 215 | &postgres; |
|---|
| | 216 | . De plus, vous devez installer |
|---|
| | 217 | <ulink |
|---|
| | 218 | url="http://sourceware.org/pthreads-win32/"> |
|---|
| | 219 | pthreads-win32 2.x |
|---|
| | 220 | </ulink> |
|---|
| | 221 | . |
|---|
| | 222 | </para> |
|---|
| | 223 | </listitem> |
|---|
| | 224 | |
|---|
| | 225 | </itemizedlist> |
|---|
| | 226 | </para> |
|---|
| | 227 | |
|---|
| | 228 | <para> |
|---|
| | 229 | Assurez-vous de disposer de suffisamment d'espace libre. Vous |
|---|
| | 230 | aurez besoin d'environ 5MB pour la distribution des sources pendant la compilation |
|---|
| | 231 | et l'installation. |
|---|
| | 232 | </para> |
|---|
| | 233 | |
|---|
| | 234 | <note> |
|---|
| | 235 | <para> |
|---|
| | 236 | Dans la version 1.1 de |
|---|
| | 237 | &slony1; |
|---|
| | 238 | , il est possible de compiler |
|---|
| | 239 | &slony1; |
|---|
| | 240 | séparemment de |
|---|
| | 241 | &postgres;, rendant libres les distributions |
|---|
| | 242 | <productname>Linux</productname> |
|---|
| | 243 | et |
|---|
| | 244 | <productname>FreeBSD</productname> |
|---|
| | 245 | d'inclure des packages binaires précompilés pour |
|---|
| | 246 | &slony1;. Si de tels packages ne sont pas disponibles, vous devez |
|---|
| | 247 | vous préparer à compiler |
|---|
| | 248 | &slony1; |
|---|
| | 249 | par vous-même. |
|---|
| | 250 | </para> |
|---|
| | 251 | </note> |
|---|
| | 252 | </sect2> |
|---|
| | 253 | |
|---|
| | 254 | <sect2> |
|---|
| | 255 | <title> |
|---|
| | 256 | Obtenir les sources de |
|---|
| | 257 | &slony1; |
|---|
| | 258 | </title> |
|---|
| | 259 | |
|---|
| | 260 | <indexterm> |
|---|
| | 261 | <primary> |
|---|
| | 262 | téléchargement des sources de |
|---|
| | 263 | &slony1; |
|---|
| | 264 | </primary> |
|---|
| | 265 | </indexterm> |
|---|
| | 266 | |
|---|
| | 267 | <para> |
|---|
| | 268 | Vous pouvez obtenir les sources de |
|---|
| | 269 | &slony1; |
|---|
| | 270 | Ã partir de l'url |
|---|
| | 271 | <ulink url="http://main.slony.info/downloads/"> |
|---|
| | 272 | http://main.slony.info/downloads/ |
|---|
| | 273 | </ulink> |
|---|
| | 274 | </para> |
|---|
| | 275 | |
|---|
| | 276 | </sect2> |
|---|
| | 277 | |
|---|
| | 278 | <sect2 id="encoding"> |
|---|
| | 279 | <title>Encodage base de données</title> |
|---|
| | 280 | |
|---|
| | 281 | <indexterm> |
|---|
| | 282 | <primary>Encodage base de données</primary> |
|---|
| | 283 | </indexterm> |
|---|
| | 284 | |
|---|
| | 285 | <para> |
|---|
| | 286 | |
|---|
| | 287 | Les bases de données &postgres; peuvent être créés avec plusieurs types d'encodage, |
|---|
| | 288 | défini par la commande |
|---|
| | 289 | <command> |
|---|
| | 290 | createdb --encoding=$ENCODING databasename |
|---|
| | 291 | </command> |
|---|
| | 292 | . |
|---|
| | 293 | &slony1; |
|---|
| | 294 | suppose que les bases de données utilisent des encodages |
|---|
| | 295 | <emphasis>identiques.</emphasis> |
|---|
| | 296 | </para> |
|---|
| | 297 | |
|---|
| | 298 | <para> |
|---|
| | 299 | Des encodages |
|---|
| | 300 | <quote>trÚs proches</quote> |
|---|
| | 301 | peuvent ne provoquer aucun problÚme. |
|---|
| | 302 | Par exemple, si le systÚme d'origine utilise |
|---|
| | 303 | <envar>LATIN1</envar> |
|---|
| | 304 | et un abonné |
|---|
| | 305 | <envar>SQL_ASCII</envar> |
|---|
| | 306 | et un autre abonné |
|---|
| | 307 | <envar>UNICODE</envar> |
|---|
| | 308 | , et que votre application ne dépasse pas les conditions limites de frontiÚre |
|---|
| | 309 | entre ces différents encodages, vous pouvez ne jamais rencontrer |
|---|
| | 310 | de problÚme. |
|---|
| | 311 | </para> |
|---|
| | 312 | |
|---|
| | 313 | <para> |
|---|
| | 314 | Dans la version 8.1 de |
|---|
| | 315 | &postgres; |
|---|
| | 316 | , des modificatrions ont été apportées à l'encodage |
|---|
| | 317 | <envar>UNICODE</envar> |
|---|
| | 318 | car les versions précédentes acceptaient des encodages invalides. |
|---|
| | 319 | Cela peut induire des |
|---|
| | 320 | <link linkend="faqunicode">problÚmes de replication.</link> |
|---|
| | 321 | </para> |
|---|
| | 322 | |
|---|
| | 323 | <para> |
|---|
| | 324 | Notez que si l'encodage client (configuré soit |
|---|
| | 325 | dans |
|---|
| | 326 | <filename>postgresql.conf</filename> |
|---|
| | 327 | , par le paramÚtre |
|---|
| | 328 | <envar>client_encoding</envar> |
|---|
| | 329 | , ou soit par la commande |
|---|
| | 330 | <application>psql</application> |
|---|
| | 331 | <command>\encoding</command> |
|---|
| | 332 | , ou sous |
|---|
| | 333 | <application>psql</application> |
|---|
| | 334 | par la variable interne |
|---|
| | 335 | <envar>ENCODING</envar> |
|---|
| | 336 | ) diffÚre de l'encodage serveur, cette différence peut conduire |
|---|
| | 337 | &slony1; |
|---|
| | 338 | a être incapable de répliquer ces caractÚres supportés par l'encodage |
|---|
| | 339 | client et non pas par celui du serveur. |
|---|
| | 340 | </para> |
|---|
| | 341 | |
|---|
| | 342 | </sect2> |
|---|
| | 343 | |
|---|
| | 344 | <sect2 id="times"> |
|---|
| | 345 | <title>Synchronisation horloge</title> |
|---|
| | 346 | |
|---|
| | 347 | <indexterm> |
|---|
| | 348 | <primary>Synchronisation horloge</primary> |
|---|
| | 349 | </indexterm> |
|---|
| | 350 | |
|---|
| | 351 | <para> |
|---|
| | 352 | Tous les serveurs utilisés dans le cluster de réplication doivent avoir |
|---|
| | 353 | leurs horloges internes synchronisées. Cela garantie que |
|---|
| | 354 | <xref linkend="slon" /> |
|---|
| | 355 | ne génÚre pas d'erreur indiquant qu'un |
|---|
| | 356 | abonné est en avance par rapport à son fournisseur pendant |
|---|
| | 357 | la réplication. L'interprétation des logs sur des serveurs ayant une idée différente du temps |
|---|
| | 358 | est source de confusion et de frustration. |
|---|
| | 359 | Il est recommandé de faire tourner le démon |
|---|
| | 360 | <application>ntpd</application> |
|---|
| | 361 | sur tous les noeuds, où les noeuds abonnés utilisent le noeud |
|---|
| | 362 | <quote>maître</quote> |
|---|
| | 363 | comme serveur de temps. |
|---|
| | 364 | </para> |
|---|
| | 365 | |
|---|
| | 366 | <para> |
|---|
| | 367 | Il est possible pour |
|---|
| | 368 | &slony1; |
|---|
| | 369 | de fonctionner avec des différences de temps, |
|---|
| | 370 | mais avoir des systÚmes |
|---|
| | 371 | <quote>synchonisés</quote> |
|---|
| | 372 | est normalement trÚs important pour les applications distribuées. |
|---|
| | 373 | </para> |
|---|
| | 374 | |
|---|
| | 375 | <para> |
|---|
| | 376 | Voir |
|---|
| | 377 | <ulink url="http://www.ntp.org/">www.ntp.org</ulink> |
|---|
| | 378 | pour plus de détail au sujet de NTP (Network Time Protocol). |
|---|
| | 379 | </para> |
|---|
| | 380 | |
|---|
| | 381 | <para> |
|---|
| | 382 | Quelques utilisateurs ont reporté des problÚmes |
|---|
| | 383 | lors de l'utilisation de certaines zones de temps, non reconnues par |
|---|
| | 384 | &postgres; |
|---|
| | 385 | . |
|---|
| | 386 | <itemizedlist> |
|---|
| | 387 | |
|---|
| | 388 | <listitem> |
|---|
| | 389 | <para> |
|---|
| | 390 | Sur |
|---|
| | 391 | <productname>AIX</productname> |
|---|
| | 392 | , |
|---|
| | 393 | <command> |
|---|
| | 394 | <envar>TZ</envar> |
|---|
| | 395 | =CUT0 |
|---|
| | 396 | </command> |
|---|
| | 397 | était non reconnu, conduisant à des échecs d'appels systÚme lors de la |
|---|
| | 398 | recherche de timestamps. |
|---|
| | 399 | </para> |
|---|
| | 400 | |
|---|
| | 401 | <para> |
|---|
| | 402 | <command>CUT0</command> |
|---|
| | 403 | est une variante pour décrire |
|---|
| | 404 | <command>UTC</command> |
|---|
| | 405 | </para> |
|---|
| | 406 | </listitem> |
|---|
| | 407 | |
|---|
| | 408 | <listitem> |
|---|
| | 409 | <para> |
|---|
| | 410 | Quelques zones de temps ne sont pas encore incluses |
|---|
| | 411 | dans |
|---|
| | 412 | &postgres;. |
|---|
| | 413 | </para> |
|---|
| | 414 | </listitem> |
|---|
| | 415 | |
|---|
| | 416 | </itemizedlist> |
|---|
| | 417 | </para> |
|---|
| | 418 | |
|---|
| | 419 | <para> |
|---|
| | 420 | Dans tous les cas, ce qui semble être communément une |
|---|
| | 421 | <quote>bonne pratique</quote> |
|---|
| | 422 | avec |
|---|
| | 423 | &slony1; |
|---|
| | 424 | (et, pour nous |
|---|
| | 425 | &postgres;) est d'utiliser pour l'utilisateur postmaster et/ou l'utilisateur sous lequel |
|---|
| | 426 | <application>slon</application> |
|---|
| | 427 | tourne |
|---|
| | 428 | <command> |
|---|
| | 429 | <envar>TZ</envar> |
|---|
| | 430 | =UTC |
|---|
| | 431 | </command> |
|---|
| | 432 | ou |
|---|
| | 433 | <command> |
|---|
| | 434 | <envar>TZ</envar> |
|---|
| | 435 | =GMT |
|---|
| | 436 | </command> |
|---|
| | 437 | . Ces zones de temps sont supportées de maniÚre |
|---|
| | 438 | <emphasis>sûres</emphasis> |
|---|
| | 439 | par n'importe quelle plate-forme, et ont le mérite par rapport à des timezones |
|---|
| | 440 | <quote>locaux</quote> |
|---|
| | 441 | et de ne jamais s'envoler par rapport aux changements heures été-hiver. |
|---|
| | 442 | </para> |
|---|
| | 443 | |
|---|
| | 444 | </sect2> |
|---|
| | 445 | |
|---|
| | 446 | <sect2> |
|---|
| | 447 | <title>Connexions réseau</title> |
|---|
| | 448 | |
|---|
| | 449 | <indexterm> |
|---|
| | 450 | <primary>Connexions réseau</primary> |
|---|
| | 451 | </indexterm> |
|---|
| | 452 | |
|---|
| | 453 | <para> |
|---|
| | 454 | Il est nécessaire que les noeuds devant être répliqués entre eux aient des communications réseau |
|---|
| | 455 | <emphasis>bidirectionnelles</emphasis> |
|---|
| | 456 | entre les instances |
|---|
| | 457 | &postgres; |
|---|
| | 458 | . Ainsi, si le noeud B est en train de répliquer les données du noeud A |
|---|
| | 459 | , il est nécessaire qu'il y ai un chemin de A vers B et de B vers A. |
|---|
| | 460 | Il est recommandé que, dans la mesure du possible, tous les |
|---|
| | 461 | noeuds du cluster |
|---|
| | 462 | &slony1; |
|---|
| | 463 | permettent ce type de communication bidirectionnelle |
|---|
| | 464 | de n'importe quel noeud du cluster vers n'importe quel autre noeud du cluster. |
|---|
| | 465 | </para> |
|---|
| | 466 | |
|---|
| | 467 | <para> |
|---|
| | 468 | Pour faciliter la configuration, les adresses réseau devraient être |
|---|
| | 469 | idéalement identiques à travers tous les noeuds. |
|---|
| | 470 | <xref linkend="stmtstorepath" /> |
|---|
| | 471 | leurs permet d'être différentes, mais le maintien de ces différents paths |
|---|
| | 472 | pointant sur le même serveur peut être trÚs problématique. |
|---|
| | 473 | </para> |
|---|
| | 474 | |
|---|
| | 475 | <para> |
|---|
| | 476 | Un contournement possible de cela, dans les environnements où |
|---|
| | 477 | les rÚgles de firewall sont particuliÚrement difficiles à implémenter, peut |
|---|
| | 478 | être d'établir des tunnels SSH |
|---|
| | 479 | <ulink |
|---|
| | 480 | url="http://www.brandonhutchinson.com/ssh_tunnelling.html" |
|---|
| | 481 | id="tunnelling"> |
|---|
| | 482 | SSH Tunnels |
|---|
| | 483 | </ulink> |
|---|
| | 484 | crés sur chaque host permettant un accÚs distant |
|---|
| | 485 | au travers d'une adresse IP locale telle 127.0.0.1, en utilisant un |
|---|
| | 486 | port différent pour chaque destination. |
|---|
| | 487 | </para> |
|---|
| | 488 | |
|---|
| | 489 | <para> |
|---|
| | 490 | Notez que |
|---|
| | 491 | <application>slonik</application> |
|---|
| | 492 | et les instances |
|---|
| | 493 | <application>slon</application> |
|---|
| | 494 | ne nécessitent pas de connexions ou de protocoles spéciaux pour |
|---|
| | 495 | communiquer ensemble; ils nécessitent simplement un accÚs aux bases de données |
|---|
| | 496 | &postgres; |
|---|
| | 497 | , en s'y connectant comme |
|---|
| | 498 | <quote>superuser</quote> |
|---|
| | 499 | <link linkend="morethansuper"> |
|---|
| | 500 | |
|---|