From: | Kyotaro Horiguchi <horikyota(dot)ntt(at)gmail(dot)com> |
---|---|
To: | alvherre(at)2ndquadrant(dot)com |
Cc: | michael(at)paquier(dot)xyz, daniel(at)yesql(dot)se, guopa(at)vmware(dot)com, tgl(at)sss(dot)pgh(dot)pa(dot)us, robertmhaas(at)gmail(dot)com, ibrar(dot)ahmad(at)gmail(dot)com, masao(dot)fujii(at)oss(dot)nttdata(dot)com, a(dot)lubennikova(at)postgrespro(dot)ru, pasim(at)vmware(dot)com, thomas(dot)munro(at)gmail(dot)com, horiguchi(dot)kyotaro(at)lab(dot)ntt(dot)co(dot)jp, pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: standby recovery fails (tablespace related) (tentative patch and discussion) |
Date: | 2021-11-12 07:43:27 |
Message-ID: | 20211112.164327.1698785294524198152.horikyota.ntt@gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
At Thu, 11 Nov 2021 11:13:52 +0900 (JST), Kyotaro Horiguchi <horikyota(dot)ntt(at)gmail(dot)com> wrote in
> At Wed, 10 Nov 2021 09:14:30 -0300, Alvaro Herrera <alvherre(at)2ndquadrant(dot)com> wrote in
> > Can you use PostgreSQL::Test::Utils::tempdir_short() for those
> > tablespaces?
>
> Thanks for the suggestion!
>
> It works for a live cluster. But doesn't work for backups, since I
> find no way to relate a tablespace directory with a backup directory
> not using a symlink. One way would be taking a backup with tentative
> tablespace directory in the short-named temporary directory then move
> it into the backup direcotry. I'm going that way for now.
This is that.
0001 adds several routines to handle tablespace directories, and adds
tablespace support to backup/_backup_fs.
We don't know an oid corresponding to a tablespace directory before
actually assigning the oid to the tablespace. So we cannot name a
tablespace directory after the oid. On the other hand, after defining
the tablespace, cold data files don't tell the real directory name of
the tablespace directory for an oid or a tablespace name, unless we
have readlink.
The function dir_readlink added to Utils.pm is that. Honestly I don't
like the way function works. It uses "cmd /c "dir /A:L $dir"" to
collect information of junctions. I'm not sure that the type label
"<JUNCTION>" is immutable among locales but at least it is shown as
"<JUNCTION>" on Japanese (CP-932) environment. I didn't actually
tested it on Windows and msys environment ...yet.
Premising the availability of the function, we can name tablespace
directories from meaningful words.
The directory to store tablespace directories can be a temporary
directory, but with that way it is needed to create a symlink to find
those directories from a backup. I chose to place tablespace
directories directly under backup directory.
The attached first file is a revised (or remade) version of tablespace
support for TAP test.
The second is the version adapted to the revised framework. (I
confirmed that the test actually detects the error.)
The third is not changed at all.
regards.
--
Kyotaro Horiguchi
NTT Open Source Software Center
Attachment | Content-Type | Size |
---|---|---|
v14-0001-Add-tablespace-support-to-TAP-framework.patch | text/x-patch | 10.4 KB |
v14-0002-Tests-to-replay-create-database-operation-on-sta.patch | text/x-patch | 6.0 KB |
v14-0003-Fix-replay-of-create-database-records-on-standby.patch | text/x-patch | 10.4 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | tanghy.fnst@fujitsu.com | 2021-11-12 09:22:11 | RE: Logical replication timeout problem |
Previous Message | Amit Kapila | 2021-11-12 06:23:34 | Re: Logical replication timeout problem |