From: | Bruce Momjian <maillist(at)candle(dot)pha(dot)pa(dot)us> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | pgsql-hackers(at)postgreSQL(dot)org |
Subject: | Re: [HACKERS] pg_upgrade may be mortally wounded |
Date: | 1999-08-03 02:29:48 |
Message-ID: | 199908030229.WAA13262@candle.pha.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
> BTW, it seems to me that it is a good idea to kill and restart the
> postmaster immediately after pg_upgrade finishes. Otherwise there might
> be buffers in shared memory that do not reflect the actual contents of
> the corresponding pages of the relation files (now that pg_upgrade
> overwrote the files with other data).
Honestly, I have been surprised at how well pg_upgrade worked in 6.4. I
got very few complaints, and I think people used it.
Your issue with buffer cache is a major one. Clearly, this would be a
problem. However, it is my understanding that the buffer cache after
initdb would only contain system table info, so if they pg_upgrade after
that, there is no way they have bad stuf in the cache, right?
>
> Another potential gotcha is that it'd be a really bad idea to let any
> other clients connect to the new database while it's being built.
That is pretty obvious, and just basic sysadmin.
>
> Looking at these two items together, it seems like the really safe way
> for pg_upgrade to operate would be *not* to start a postmaster for the
> new database until after pg_upgrade finishes; that is, the procedure
> would be "initdb; pg_upgrade; start postmaster". pg_upgrade would
> operate by invoking a standalone backend for initial table creation.
> This would guarantee no unwanted interference from other clients
> during the critical steps.
>
> The tricky part is that pg_dump output includes psql \connect commands,
> which AFAIK are not accepted by a standalone backend. We'd have to
> figure out another solution for those. Ideas?
>
> regards, tom lane
>
> PS: if you try to test pg_upgrade by running the regression database
> through it, and then "vacuum analyze" the result, you will observe a
> backend crash when vacuum gets to the table "c_star". This seems to be
> the fault of a bug that Chris Bitmead has complained of in the past.
> c_star has had a column added via inherited ALTER TABLE ADD COLUMN, and
> the output of pg_dump creates a database with a different column order
> for such a table than ADD COLUMN does. So, the reconstructed database
> schema does not match the table data that pg_upgrade has moved in. Ugh.
> But we already knew that inherited ADD COLUMN is pretty bogus. I wonder
> whether we shouldn't just disable it until it can be fixed properly...
>
And report a message to the user. Good idea.
--
Bruce Momjian | http://www.op.net/~candle
maillist(at)candle(dot)pha(dot)pa(dot)us | (610) 853-3000
+ If your life is a hard drive, | 830 Blythe Avenue
+ Christ can be your backup. | Drexel Hill, Pennsylvania 19026
From | Date | Subject | |
---|---|---|---|
Next Message | Ross J. Reedstrom | 1999-08-03 03:37:45 | Re: [HACKERS] Mariposa |
Previous Message | Bruce Momjian | 1999-08-03 02:25:15 | Re: [HACKERS] Mariposa |