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
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 |