1
1
<!--
2
- $Header: /cvsroot/pgsql/doc/src/sgml/maintenance.sgml,v 1.1 2001/08/26 21:17:12 tgl Exp $
2
+ $Header: /cvsroot/pgsql/doc/src/sgml/maintenance.sgml,v 1.2 2001/08/27 23:42:34 tgl Exp $
3
3
-->
4
4
5
5
<chapter id="maintenance">
@@ -226,7 +226,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/maintenance.sgml,v 1.1 2001/08/26 21:17:12
226
226
than 4 billion transactions) will suffer <firstterm>transaction ID
227
227
wraparound</>: the XID counter wraps around to zero, and all of a sudden
228
228
transactions that were in the past appear to be in the future --- which
229
- means their outputs become invisible. In short, catatrophic data loss.
229
+ means their outputs become invisible. In short, catastrophic data loss.
230
230
(Actually the data is still there, but that's cold comfort if you can't
231
231
get at it.)
232
232
</para>
@@ -237,9 +237,9 @@ $Header: /cvsroot/pgsql/doc/src/sgml/maintenance.sgml,v 1.1 2001/08/26 21:17:12
237
237
transactions. This of course was not very satisfactory for high-traffic
238
238
sites, so a better solution has been devised. The new approach allows an
239
239
installation to remain up indefinitely, without initdb or any sort of
240
- restart. The price is this maintenance requirement: <emphasis>every table
241
- in the database must be VACUUMed more often than once every billion
242
- transactions</emphasis>.
240
+ restart. The price is this maintenance requirement:
241
+ <emphasis>every table in the database must be VACUUMed at least once every
242
+ billion transactions</emphasis>.
243
243
</para>
244
244
245
245
<para>
@@ -261,7 +261,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/maintenance.sgml,v 1.1 2001/08/26 21:17:12
261
261
Therefore, once a tuple has been created with a particular normal XID, the
262
262
tuple will appear to be <quote>in the past</> for the next two billion
263
263
transactions, no matter which normal XID we are talking about. If the
264
- tuple still exists after more than two billion transactions, it would
264
+ tuple still exists after more than two billion transactions, it will
265
265
suddenly appear to be in the future. To prevent data loss, old tuples
266
266
must be reassigned the XID <literal>FrozenXID</> sometime before they reach
267
267
the two-billion-transactions-old mark. Once they are assigned this
@@ -276,8 +276,8 @@ $Header: /cvsroot/pgsql/doc/src/sgml/maintenance.sgml,v 1.1 2001/08/26 21:17:12
276
276
to any tuple with a normal XID more than one billion transactions in the
277
277
past. This policy preserves the original insertion XID until it is not
278
278
likely to be of interest anymore (in fact, most tuples will probably
279
- live and die without ever being <quote>frozen</>). This policy means
280
- that the maximum safe interval between <command>VACUUM</>s of any table
279
+ live and die without ever being <quote>frozen</>). With this policy,
280
+ the maximum safe interval between <command>VACUUM</>s of any table
281
281
is exactly one billion transactions: if you wait longer, it's possible
282
282
that a tuple that was not quite old enough to be reassigned last time
283
283
is now more than two billion transactions old and has wrapped around
@@ -335,7 +335,7 @@ VACUUM
335
335
to be considered good by all open transactions. In particular, if
336
336
a <command>VACUUM FREEZE</> is performed in an otherwise-idle database,
337
337
it is guaranteed that <emphasis>all</> tuples in that database will be
338
- frozen. Hence, as long the database is not modified in any way, it
338
+ frozen. Hence, as long as the database is not modified in any way, it
339
339
will not need subsequent vacuuming to avoid transaction ID wraparound
340
340
problems. This technique is used by <filename>initdb</> to prepare the
341
341
<filename>template0</> database. It should also be used to prepare any
0 commit comments