Cannot start Postgres- FATAL: invalid cache id: 19
I am having problems starting up Postgres and am getting the following
error:
2010-12-01 08:36:42 EST LOG: database system was shut down at
2010-11-29 17:38:17 EST
2010-12-01 08:36:42 EST FATAL: invalid cache id: 19
2010-12-01 08:36:43 EST FATAL: the database system is starting up
2010-12-01 08:36:43 EST LOG: startup process (PID 640) exited with exit
code 1
2010-12-01 08:36:43 EST LOG: aborting startup due to startup process
failure
Prior to shutting down the database, the log file reported the following
message:
2010-11-29 12:39:17 EST ERROR: database is not accepting commands to
avoid wraparound data loss in database "fps_data"
2010-11-29 12:39:17 EST HINT: Stop the postmaster and use a standalone
backend to vacuum that database.
I had multiple auto-vacuum instances running, but it looks like they
were unable to keep up.
I found some reference to bug # 5718
(http://archives.postgresql.org/pgsql-bugs/2010-10/msg00185.php) that
lists a patch, but I am unfamiliar with how to apply the referenced
patch, or if it will help. I am running Postgres 9.0.0-1 on Windows XP
courtesy of Enterprise DB. Hardware is 64bit, but I am running the 32bit
version.
Is this patch likely to help with startup? How does one apply it via
windows, or could I just install Version 9.0.1-1 and get the same
result?
Thanks,
Peter Jolles
On Wed, Dec 1, 2010 at 9:20 AM, Jolles, Peter M (GE Energy)
<peter.jolles@ge.com> wrote:
2010-11-29 12:39:17 EST HINT: Stop the postmaster and use a standalone
backend to vacuum that database.
so did you do what the HINT told you to do? does it still not startup?
I had multiple auto-vacuum instances running, but it looks like they
were unable to keep up.
are there any log lines complaining that autovacuum terminated any
jobs? anything from autovacuum?
Vick Khera <vivek@khera.org> writes:
On Wed, Dec 1, 2010 at 9:20 AM, Jolles, Peter M (GE Energy)
<peter.jolles@ge.com> wrote:2010-11-29 12:39:17 EST HINT: �Stop the postmaster and use a standalone
backend to vacuum that database.
so did you do what the HINT told you to do? does it still not startup?
This is the second report we've seen of relatively new 9.0 installations
shutting down due to wraparound (the other was bug #5718). I find this
disturbing. If we're lucky, the cause is already fixed:
http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=b58c25055ef6d7097618c680f6768689a110d529
but if that's the only contributing factor then why weren't we seeing
similar reports about 8.3 and 8.4? I'm worried that there is some
other bug in 9.0 autovacuum. Has anyone stress-tested 9.0 to see if
autovacuum manages to keep the wraparound threshold moving forward?
regards, tom lane
On Wednesday, December 01, 2010 9:58 AM Vick Khera wrote:
On Wed, Dec 1, 2010 at 9:20 AM, Jolles, Peter M (GE Energy) wrote:
2010-11-29 12:39:17 EST HINT: Stop the postmaster and use a
standalone backend to vacuum that database.so did you do what the HINT told you to do? does it still not startup?
When I realized what was happening I stopped the server and attempted to restart it after making a backup. I was under the impression the database had to be able to start up in order to vacuum it. If there is a way to do it with the database not running, I don't know how to do that.
I had multiple auto-vacuum instances running, but it looks like they
were unable to keep up.are there any log lines complaining that autovacuum terminated any jobs?
anything from autovacuum?
I don't see anything in the log that the autovacuum specifically terminated any jobs or gave any error. Approximately 4 hours before the database started refusing transactions the following was present, but I wasn't able to shut everything down in time:
EST WARNING: database "fps_data" must be vacuumed within 11000000 transactions
I know now that I'm going to have to slow down the transaction rate in order to let the autovacuum keep up, but at this point I am just trying to salvage the data present in the database.
Thanks,
Peter Jolles
On Wed, Dec 1, 2010 at 11:23 AM, Jolles, Peter M (GE Energy)
<peter.jolles@ge.com> wrote:
EST WARNING: database "fps_data" must be vacuumed within 11000000 transactions
I know now that I'm going to have to slow down the transaction rate in order to let the autovacuum keep up, but at this point I am just trying to salvage the data present in the database.
Just how big is the table and how many transactions per second do you
push through it? Perhaps your I/O bandwidth is just insufficient for
your load level.
Import Notes
Reply to msg id not found: E66B1BA008C7374390C6AE9EF01E584A03B5CB98@ALPMLVEM08.e2k.ad.ge.com
On Wednesday, December 01, 2010 1:27 PM Vick Khera wrote:
Just how big is the table and how many transactions per second do you
push
through it? Perhaps your I/O bandwidth is just insufficient for your
load
level.
The entire database is about 700 GB. In the database I've got
approximately 1200 tables, most in the 300-500 mb range (254 columns,
500k to 1000k rows). When a table is being accessed it has approximately
5-7 transactions/sec. Usually 10-12 tables are being accessed at a time.
Each table is hit 2-3 times a day for about 10 minutes each time.
I know I/O is an issue, but I didn't expect the database to fail, and
then be what I presume to be unrecoverable. Is there a way to recover
data if I can't get Postgres to start up? Is there a way to vacuum the
table if Postgres won't start up in hopes to get it to restart? I had
the database replicated, but the copy won't start up for the same
reason.
the original hint said to "use a standalone backend".
If you go to http://www.postgresql.org/docs/9.0/interactive/routine-vacuuming.html
section 23.1.4 it will describe exactly what just happened to you and
how to recover.
On Wed, Dec 1, 2010 at 1:58 PM, Jolles, Peter M (GE Energy)
<peter.jolles@ge.com> wrote:
Show quoted text
Is there a way to vacuum the
table if Postgres won't start up in hopes to get it to restart? I had
the database replicated, but the copy won't start up for the same
reason.
On Wednesday, December 01, 2010 1:59 PM Vick Khera wrote:
the original hint said to "use a standalone backend".
If you go to http://www.postgresql.org/docs/9.0/interactive/routine-
vacuuming.html
section 23.1.4 it will describe exactly what just happened to you and
how to
recover.
I apologize for the seeming dumb questions, but I have tried to start
the database using the following command:
postgres --single -D "d:/database" mydatabase
That gets me a new line in my command prompt window and nothing else.
Postgres 8.4 at least throws a warning if I am not logged in as an under
privileged user, but 9.0 gives nothing, no log file entries or other
error message that indicates it is trying and why it is failing. Using
the -r command didn't produce a log file.
Trying to run the vacuumdb.exe command fails because the database isn't
running. Using pg_ctl I can get a response, but it gives the same
startup error as originally mentioned. I must be missing something, but
I don't see what it is.
On Wed, Dec 1, 2010 at 4:15 PM, Jolles, Peter M (GE Energy)
<peter.jolles@ge.com> wrote:
I apologize for the seeming dumb questions, but I have tried to start
the database using the following command:postgres --single -D "d:/database" mydatabase
That gets me a new line in my command prompt window and nothing else.
Postgres 8.4 at least throws a warning if I am not logged in as an under
Does the user you are logged in under have write permission to the
d:/database directory? What you should get is a postgres command line
prompt.
"Jolles, Peter M (GE Energy)" <peter.jolles@ge.com> writes:
I apologize for the seeming dumb questions, but I have tried to start
the database using the following command:
postgres --single -D "d:/database" mydatabase
That gets me a new line in my command prompt window and nothing else.
Hmm ... try it with "-d 1" added, or maybe higher if that doesn't show
anything.
regards, tom lane
On Wednesday 01 December 2010 1:15:45 pm Jolles, Peter M (GE Energy) wrote:
On Wednesday, December 01, 2010 1:59 PM Vick Khera wrote:
the original hint said to "use a standalone backend".
If you go to http://www.postgresql.org/docs/9.0/interactive/routine-
vacuuming.html
section 23.1.4 it will describe exactly what just happened to you andhow to
recover.
I apologize for the seeming dumb questions, but I have tried to start
the database using the following command:postgres --single -D "d:/database" mydatabase
This is on Windows right, maybe:
postgres --single -D d:\database mydatabase
or
postgres --single -D "d:\database" mydatabase
That gets me a new line in my command prompt window and nothing else.
Postgres 8.4 at least throws a warning if I am not logged in as an under
privileged user, but 9.0 gives nothing, no log file entries or other
error message that indicates it is trying and why it is failing. Using
the -r command didn't produce a log file.Trying to run the vacuumdb.exe command fails because the database isn't
running. Using pg_ctl I can get a response, but it gives the same
startup error as originally mentioned. I must be missing something, but
I don't see what it is.
Vacuum is also an SQL command so you can run it from the command prompt once you
get to it:
PostgreSQL stand-alone backend 9.0beta2
backend> vacuum
backend>
--
Adrian Klaver
adrian.klaver@gmail.com