live metadata changes v8.3.4
Hi:
How does one make a metadata change to a DB that's actively being used. Specifically, I want to drop a view, drop some columns from a table that's used in the view, recreate the view without those columns.
In the past, I've resorted to connecting as a super user, running "select procpid from pg_stat_activity..." then pg_ctl kill ABRT <procpid>. This would create a window where I could get in and make the change. But it also created some angry users whos processes got killed.
V8.3.4 on linux.
Thanks for any advice !
On Tue, Sep 27, 2011 at 1:51 PM, Gauthier, Dave <dave.gauthier@intel.com> wrote:
How does one make a metadata change to a DB that's actively being used.
Specifically, I want to drop a view, drop some columns from a table that's
used in the view, recreate the view without those columns.
BEGIN TRANSACTION;
DROP VIEW someView ...;
ALTER TABLE DROP COLUMN someColumn1, DROP COLUMN someColumn2;
CREATE VIEW someView AS ...;
COMMIT; --Wait for pre-existing locks to complete and hope your client
app doesn't break.
--
Regards,
Richard Broersma Jr.
On Tue, Sep 27, 2011 at 01:51:42PM -0700, Gauthier, Dave wrote:
Hi:
How does one make a metadata change to a DB that's actively being
used. Specifically, I want to drop a view, drop some columns from a
table that's used in the view, recreate the view without those
columns.In the past, I've resorted to connecting as a super user, running
"select procpid from pg_stat_activity..." then pg_ctl kill ABRT
<procpid>. This would create a window where I could get in and make
the change. But it also created some angry users whos processes got
killed.
You have the choice between taking those users offline and not doing
the change.
V8.3.4 on linux.
Upgrade to 8.3.16 immediately, if not sooner. Oh, and start planning
the 9.1 migration, too. December of 2012 is closer than you think. :)
Cheers,
David.
--
David Fetter <david@fetter.org> http://fetter.org/
Phone: +1 415 235 3778 AIM: dfetter666 Yahoo!: dfetter
Skype: davidfetter XMPP: david.fetter@gmail.com
iCal: webcal://www.tripit.com/feed/ical/people/david74/tripit.ics
Remember to vote!
Consider donating to Postgres: http://www.postgresql.org/about/donate