Search Postgresql Archives

Re: Please HELP - URGENT - transaction wraparound error

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Martin, thanks for the feedback.

I had a look around and couldn't see any data loss (but wasn't really sure where to start looking).

I decided to switch over to the slave which is now our live database. the old master with the problem has already been re-inited (although I have a cold backup of the data dir), plus dump files that I can restore from.

I checked pg_database (on the new master) and I don't really understand what it is saying. Is the datvacuumxid vs 3553547043 the significant information? I see in our new database:

   datname    | datdba | encoding | datistemplate
--------------+--------+----------+---------------
 bp_live      |      1 |        6 | f
 bp_test      |      1 |        6 | f
 template1    |      1 |        0 | t
 template0    |      1 |        0 | t


   datname    | datallowconn | datlastsysoid | datvacuumxid
--------------+--------------+---------------+--------------
 bp_live      | t            |         17140 |    332321570
 bp_test      | t            |         17140 |    332265474
 template1    | t            |         17140 |    332241177
 template0    | f            |         17140 |          464


   datname    | datfrozenxid | datpath | datconfig
--------------+--------------+---------+-----------
 bp_live      |   3553547043 |         |
 bp_test      |   3553490947 |         |
 template1    |   3553466653 |         |
 template0    |          464 |         |


   datname    |          datacl
--------------+--------------------------
 bp_live      |
 bp_test      |
 template1    | {postgres=C*T*/postgres}
 template0    | {postgres=C*T*/postgres}


Are we going to get the same problem with this database?

What's also worrying me is that the warning message is in fact misleading!!??

2005-10-28 05:56:58 WARNING: some databases have not been vacuumed in over 2 billion transactions
DETAIL:  You may have already suffered transaction-wraparound data loss.

And I'm wondering if I have in fact destroyed a perfectly good database and data set...

I read the link you gave (before) but found it hard to work out what you actually need to do to protect yourself.

We DID vacuum the databases nightly, and template1 once a week. So I still don't understand why we got this error. Can someone explain in simple language?

Can someone also give me a detailed "you need to do this, and this and this..." explanation to prevent this happening again (either on our master or slave databases).

For example, must you do a vacuum full instead of a vacuum analyze on a 7.4.x database to prevent wraparound issues?

BTW, for those not using **Slony** - you should check it out. It has saved my bacon three times this year! Due to:

1) server failure - hardware crash, needed BIOS flash, complete OS reinstall etc
2) disk full - corrupted pg data
3) oid wraparound (today's problem)

Any further help that anyone can give is much appreciated.

Thanks

John

Martijn van Oosterhout wrote:
On Sun, Oct 30, 2005 at 08:50:18AM +0000, John Sidney-Woollett wrote:

Oh my god!....

DB is pg 7.4.6 on linux


Firstly, check pg_database, it should tell you which databases need to
be vacuumed. Any database you regularly vacuumed is fine so maybe the
corruption is in some other database you don't remember?


1) Why do have we data corruption? I thought we were doing everything we needed to stop any wraparound... Are the pg docs inadequate, or did I misunderstand what needed to be done?


You *may* have corruption. Anything you vacuumed recently should be
fine.


2) What can I do to recover the data?


Check whether anything is lost first.


How do I stop this EVER happening again??!!!


Have you read this:

http://www.postgresql.org/docs/7.4/static/maintenance.html#VACUUM-FOR-WRAPAROUND

Hope this helps,

---------------------------(end of broadcast)---------------------------
TIP 1: if posting/reading through Usenet, please send an appropriate
      subscribe-nomail command to majordomo@xxxxxxxxxxxxxx so that your
      message can get through to the mailing list cleanly

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux