Re: index numbers in pg_restore list

From: Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com>
To: Ben Madin <ben(at)ausvet(dot)com(dot)au>, pgsql-general <pgsql-general(at)postgresql(dot)org>
Subject: Re: index numbers in pg_restore list
Date: 2020-08-14 16:28:11
Message-ID: 5c996be5-d645-6e36-f1e2-4fe1b1f3763b@aklaver.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On 8/14/20 9:16 AM, Ben Madin wrote:
> Dear all,
>
> I was hoping for some quick guidance on the structure of the pg_restore
> list.
>
> We have a database which we are restoring each day for a data warehouse.
> For efficiency, we are not restoring a number of tables and functions,
> just the tables, indexes and data.
>
> (the database is being dumped on a postgresql 10.13 database, and
> restored on a 12.4)
>
> To do this we had been using a template list file, with the items we
> wanted (around 1900 of them) However, after a week or so it started
> failing with a message the ID 9601 was missing. on checking this was:
>
> 9601; 0 19580 TABLE DATA backoffice animalid angus
>
> when we ran the list option on the dump, the above row was present, but
> the index number is now 9602 (this was previously something else).
>
> The text in the manual pages notes:
>
>  the numbers at the start of lines refer to the internal archive ID
> assigned to each item.
>
> we were under the impression that this number was like an oid? I guess
> then my question is:
>
> " Is the index number ( the archive ID)  assigned at the time of
> creation of the archive and not otherwise related to the item in the
> original database?"

From pg_dump.c:

/*
* Create archive TOC entries for all the objects to be dumped,
in a safe
* order.
*/

/* First the special ENCODING, STDSTRINGS, and SEARCHPATH
entries. */
dumpEncoding(fout);
dumpStdStrings(fout);
dumpSearchPath(fout);

/* The database items are always next, unless we don't want
them at all */
if (dopt.outputCreateDB)
dumpDatabase(fout);

/* Now the rearrangeable objects. */
for (i = 0; i < numObjs; i++)
dumpDumpableObject(fout, dobjs[i]);

>
> If this is mutable, I presume we need to write a script to grep the
> lines we need out of the list of the current dump, not re-use the same
> list file?
>
> cheers
>
> Ben
>
>
> --
>
> Ausvet Logo <https://www.ausvet.com.au/>
>
> Dr Ben Madin
> BVMS MVPHMgmt PhD MANZCVS GAICD
> Managing Director
> Mobile:
> +61 448 887 220 <tel:+61448887220>
> E-mail:
> ben(at)ausvet(dot)com(dot)au <mailto:ben(at)ausvet(dot)com(dot)au>
> Website:
> www.ausvet.com.au <https://www.ausvet.com.au/>
> Skype:benmadin
> Address:
> 5 Shuffrey Street
> Fremantle, WA 6160
> Australia

--
Adrian Klaver
adrian(dot)klaver(at)aklaver(dot)com

In response to

Browse pgsql-general by date

  From Date Subject
Next Message PegoraroF10 2020-08-14 16:34:09 Re: Server goes to Recovery Mode when run a SQL
Previous Message Ben Madin 2020-08-14 16:16:09 index numbers in pg_restore list