Re: Reindexing primary keys without locking

From: Simon Riggs <simon(at)2ndQuadrant(dot)com>
To: Stuart Bishop <stuart(at)stuartbishop(dot)net>
Cc: Glyn Astill <glynastill(at)yahoo(dot)co(dot)uk>, "pgsql-admin(at)postgresql(dot)org" <pgsql-admin(at)postgresql(dot)org>
Subject: Re: Reindexing primary keys without locking
Date: 2011-06-13 07:54:42
Message-ID: BANLkTikYc6pHTroOjDTfiK1xN=KA7+CHVA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin

On Mon, Jun 13, 2011 at 6:47 AM, Stuart Bishop <stuart(at)stuartbishop(dot)net> wrote:
> On Wed, Jun 1, 2011 at 7:38 PM, Glyn Astill <glynastill(at)yahoo(dot)co(dot)uk> wrote:
>> Hi Guys,
>> Does anyone know of any tricks to replace primary key indexes without using
>> reindex? Or any other method that will not lock the table for an extended
>> amount of time on 8.4?
>> I've got a bloated primary key index on a table and I'd like to try and
>> clean it up without downtime.
>
> If you are brave, http://pqxx.org/development/libpqxx/wiki/PrimaryKeyTransplant
>
> If you go this route, ensure you have a test environment and ensure
> you can dump and restore your db schema after applying the patch, and
> that the diff of the before and after schemas checks out. If you screw
> up, you can end up with crazy things like multiple indexes with the
> same name and other stuff making your database unrecoverable.

Stuart,

That looks interesting. There's a similar process in the PostgreSQL
Admin Cookbook, though our work was independent.

I guess that's because in 9.0 and below it really is the only way to
make it work correctly.

Will look for your work in future, thanks.

--
 Simon Riggs                   http://www.2ndQuadrant.com/
 PostgreSQL Development, 24x7 Support, Training & Services

In response to

Browse pgsql-admin by date

  From Date Subject
Next Message Ibrahim Harrani 2011-06-13 07:56:27 pg_dump and drop table if exists statement
Previous Message Stuart Bishop 2011-06-13 05:47:51 Re: Reindexing primary keys without locking