Re: Removing oids with pg_repack

From: Achilleas Mantzios <a(dot)mantzios(at)cloud(dot)gatewaynet(dot)com>
To: pgsql-general(at)lists(dot)postgresql(dot)org
Subject: Re: Removing oids with pg_repack
Date: 2023-11-22 06:19:54
Message-ID: 164bcbcf-73a5-4c8c-9016-7a185584d96e@cloud.gatewaynet.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Στις 21/11/23 20:41, ο/η CG έγραψε:
> I have a very large PostgreSQL 9.5 database that still has very large
> tables with oids. I'm trying to get rid of the oids with as little
> downtime as possible so I can prep the database for upgrade past
> PostgreSQL 11. I had a wild idea to mod pg_repack to write a new table
> without oids. I think it almost works.
>
> To test out my idea I made a new table wipe_oid_test with oids. I
> filled it with a few rows of data.
> ........
> But PostgreSQL still thinks that the table has oids:
>
> mydata=# \d+ wipe_oid_test
>                    Table "public.wipe_oid_test"
>  Column | Type | Modifiers | Storage  | Stats target | Description
> --------+------+-----------+----------+--------------+-------------
>  k      | text | not null  | extended |              |
>  v      | text |           | extended |              |
> Indexes:
>     "wipe_oid_test_pkey" PRIMARY KEY, btree (k)
> Has OIDs: yes
Except where does it mention in the pg_repack docs (or source) that it
is meant to be used for NO OIDS conversion ?
> I can modify pg_class and set relhasoids = false, but it isn't
> actually eliminating the oid column. `\d+` will report not report that
> it has oids, but the oid column is still present and returns the same
> result before updating pg_class.
>
Just Dont!
> So I'm definitely missing something. I really need a point in the
> right direction.... Please help! ;)
>
There are a few of methods to get rid of OIDs :

- ALTER TABLE .. SET WITHOUT OIDS (just mentioning, you already checked
that)

- Use table copy +  use of a trigger to log changes :
https://dba.stackexchange.com/questions/259359/eliminating-oids-while-upgrading-postgresql-from-9-4-to-12

- Use of Inheritance (the most neat solution I have seen, this is what I
used for a 2TB table conversion) :
https://www.percona.com/blog/performing-etl-using-inheritance-in-postgresql/

> CG
>
>
>
>
--
Achilleas Mantzios
IT DEV - HEAD
IT DEPT
Dynacom Tankers Mgmt

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Rajesh Kumar 2023-11-22 08:11:46 PITR
Previous Message Johnson, Bruce E - (bjohnson) 2023-11-21 23:27:29 Connection fails on one system in a address range allowed to connect