Re: postgres pg_basebackup

From: "Brandl, Wolfgang" <wolfgang(dot)brandl(at)brz(dot)gv(dot)at>
To: Albe Laurenz <laurenz(dot)albe(at)wien(dot)gv(dot)at>, "pgsql-admin(at)postgresql(dot)org" <pgsql-admin(at)postgresql(dot)org>
Subject: Re: postgres pg_basebackup
Date: 2017-05-11 06:26:51
Message-ID: F2EB158D72DC6A4F97877DD0BB6F020E4E956B8C@CMD0MBX-AB01.cmd0.cna.at
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin

Thanks it is working perfectly.
Even if i choose to redirect the database to new location and adapting the tablespace_map file to this new locations it is working.
Do you think there are any concerns doing this redirect restore?
Regards
Wolfgang

-----Ursprüngliche Nachricht-----
Von: Albe Laurenz [mailto:laurenz(dot)albe(at)wien(dot)gv(dot)at]
Gesendet: Mittwoch, 10. Mai 2017 16:35
An: Brandl, Wolfgang; pgsql-admin(at)postgresql(dot)org
Betreff: RE: postgres pg_basebackup

Wolfgang Brandl wrote:
> I restored the files into some new locations and made the symbolic links like:
> pgwb(at)BLIXSQL0:/data1/pgwb/pg_tblspc> ls -l total 0 lrwxrwxrwx 1 pgwb
> users 24 May 10 15:42 16536 -> /data1/tablespaces/16536 lrwxrwxrwx 1
> pgwb users 24 May 10 15:43 16537 -> /data1/tablespaces/16537
> lrwxrwxrwx 1 pgwb users 24 May 10 15:43 16538 ->
> /data1/tablespaces/16538 lrwxrwxrwx 1 pgwb users 24 May 10 15:43 16539
> -> /data1/tablespaces/16539 lrwxrwxrwx 1 pgwb users 24 May 10 15:43
> 16540 -> /data1/tablespaces/16540
>
> After the start with:
> pg_ctl -D /data1/pgwb -l /logs1/logs/logfile start I got he following
> links in pg_tblspc:
>
> pgwb(at)BLIXSQL0:/data1/pgwb> ls -xal pg_tblspc/ total 8
> drwx------ 2 pgwb users 4096 May 10 15:45 .
> drwx------ 19 pgwb pg 4096 May 10 15:45 ..
> lrwxrwxrwx 1 pgwb users 35 May 10 15:45 16536 -> /data1/tablespaces/TS_U_SPACE/tests
> lrwxrwxrwx 1 pgwb users 35 May 10 15:45 16537 -> /data1/tablespaces/TS_B_SPACE/tests
> lrwxrwxrwx 1 pgwb users 35 May 10 15:45 16538 -> /data1/tablespaces/TS_N_SPACE/tests
> lrwxrwxrwx 1 pgwb users 35 May 10 15:45 16539 -> /data1/tablespaces/TS_M_SPACE/tests
> lrwxrwxrwx 1 pgwb users 33 May 10 15:45 16540 -> /data1/tablespaces/metadata/tests
>
>
> where does postgress get the old container paths if they are not stored in the database?
>
> Conclusion: I cannot start postgress and got he error in the log:
> LOG: could not open tablespace directory
> "pg_tblspc/16537/PG_9.5_201510051": No such file or directory
> LOG: could not open tablespace directory
> "pg_tblspc/16539/PG_9.5_201510051": No such file or directory
> LOG: could not open tablespace directory
> "pg_tblspc/16538/PG_9.5_201510051": No such file or directory
> LOG: could not open tablespace directory
> "pg_tblspc/16536/PG_9.5_201510051": No such file or directory
> LOG: could not open tablespace directory
> "pg_tblspc/16540/PG_9.5_201510051": No such file or directory
>
> For me it seems I have to note somewhere the whole linking information
> stored in pg_tblspc together with pg_basebackup.
>
> I can use the olddir newdir options in pg_basebackup. But still I need
> this information outside of the backup package to restore the database after a crash to PIT.

You are right; after looking at the code, I realize that I got it wrong.

During an online backup, a file "tablespace_map" is created in the data directory that contains the original locations of the tablespaces.

During recovery, the symbolic links are restored from that directory.

So you have to un-tar the tablespaces into the same location as in the original database cluster. The good news is that you can find the locations in the "tablespace_map" file and don't need to document them somewhere.

Sorry for the misinformation in the original answer.

Yours,
Laurenz Albe

In response to

Responses

Browse pgsql-admin by date

  From Date Subject
Next Message Günce Kaya 2017-05-12 09:14:02 exporting query result
Previous Message Albe Laurenz 2017-05-10 14:35:18 Re: postgres pg_basebackup