Skip to content

Commit c00ffe2

Browse files
kulaginmindrupsgsmolk
authored
catchup functionality expansion (#419)
[PR #419] New command 'catchup' for synchronizing stale standby with master by transfering only changes blocks, or creating standby from scratch. Co-authored-by: Elena Indrupskaya <[email protected]> Co-authored-by: Grigory Smolkin <[email protected]>
1 parent 3e6701e commit c00ffe2

19 files changed

+1311
-524
lines changed

.travis.yml

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -26,24 +26,26 @@ notifications:
2626

2727
# Default MODE is basic, i.e. all tests with PG_PROBACKUP_TEST_BASIC=ON
2828
env:
29-
- PG_VERSION=14 PG_BRANCH=REL_14_STABLE
30-
- PG_VERSION=13 PG_BRANCH=REL_13_STABLE
31-
- PG_VERSION=12 PG_BRANCH=REL_12_STABLE
32-
- PG_VERSION=11 PG_BRANCH=REL_11_STABLE
29+
- PG_VERSION=15 PG_BRANCH=master PTRACK_PATCH_PG_VERSION=13
30+
- PG_VERSION=14 PG_BRANCH=REL_14_STABLE PTRACK_PATCH_PG_VERSION=13
31+
- PG_VERSION=13 PG_BRANCH=REL_13_STABLE PTRACK_PATCH_PG_VERSION=13
32+
- PG_VERSION=12 PG_BRANCH=REL_12_STABLE PTRACK_PATCH_PG_VERSION=12
33+
- PG_VERSION=11 PG_BRANCH=REL_11_STABLE PTRACK_PATCH_PG_VERSION=11
3334
- PG_VERSION=10 PG_BRANCH=REL_10_STABLE
3435
- PG_VERSION=9.6 PG_BRANCH=REL9_6_STABLE
3536
- PG_VERSION=9.5 PG_BRANCH=REL9_5_STABLE
36-
# - PG_VERSION=12 PG_BRANCH=REL_12_STABLE MODE=archive
37-
# - PG_VERSION=12 PG_BRANCH=REL_12_STABLE MODE=backup
38-
# - PG_VERSION=12 PG_BRANCH=REL_12_STABLE MODE=compression
39-
# - PG_VERSION=12 PG_BRANCH=REL_12_STABLE MODE=delta
40-
# - PG_VERSION=12 PG_BRANCH=REL_12_STABLE MODE=locking
41-
# - PG_VERSION=12 PG_BRANCH=REL_12_STABLE MODE=merge
42-
# - PG_VERSION=12 PG_BRANCH=REL_12_STABLE MODE=page
43-
# - PG_VERSION=12 PG_BRANCH=REL_12_STABLE MODE=replica
44-
# - PG_VERSION=12 PG_BRANCH=REL_12_STABLE MODE=retention
45-
# - PG_VERSION=12 PG_BRANCH=REL_12_STABLE MODE=restore
46-
- PG_VERSION=15 PG_BRANCH=master
37+
# - PG_VERSION=13 PG_BRANCH=REL_13_STABLE PTRACK_PATCH_PG_VERSION=off MODE=archive
38+
# - PG_VERSION=13 PG_BRANCH=REL_13_STABLE PTRACK_PATCH_PG_VERSION=13 MODE=backup
39+
# - PG_VERSION=13 PG_BRANCH=REL_13_STABLE PTRACK_PATCH_PG_VERSION=13 MODE=catchup
40+
# - PG_VERSION=13 PG_BRANCH=REL_13_STABLE PTRACK_PATCH_PG_VERSION=off MODE=compression
41+
# - PG_VERSION=13 PG_BRANCH=REL_13_STABLE PTRACK_PATCH_PG_VERSION=off MODE=delta
42+
# - PG_VERSION=13 PG_BRANCH=REL_13_STABLE PTRACK_PATCH_PG_VERSION=off MODE=locking
43+
# - PG_VERSION=13 PG_BRANCH=REL_13_STABLE PTRACK_PATCH_PG_VERSION=13 MODE=merge
44+
# - PG_VERSION=13 PG_BRANCH=REL_13_STABLE PTRACK_PATCH_PG_VERSION=off MODE=page
45+
# - PG_VERSION=13 PG_BRANCH=REL_13_STABLE PTRACK_PATCH_PG_VERSION=13 MODE=ptrack
46+
# - PG_VERSION=13 PG_BRANCH=REL_13_STABLE PTRACK_PATCH_PG_VERSION=13 MODE=replica
47+
# - PG_VERSION=13 PG_BRANCH=REL_13_STABLE PTRACK_PATCH_PG_VERSION=off MODE=retention
48+
# - PG_VERSION=13 PG_BRANCH=REL_13_STABLE PTRACK_PATCH_PG_VERSION=13 MODE=restore
4749

4850
jobs:
4951
allow_failures:
@@ -54,3 +56,4 @@ jobs:
5456
#branches:
5557
# only:
5658
# - master
59+

doc/pgprobackup.xml

Lines changed: 144 additions & 35 deletions
Large diffs are not rendered by default.

src/backup.c

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,7 @@ do_backup_pg(InstanceState *instanceState, PGconn *backup_conn,
263263
fio_mkdir(stream_xlog_path, DIR_PERMISSION, FIO_BACKUP_HOST);
264264

265265
start_WAL_streaming(backup_conn, stream_xlog_path, &instance_config.conn_opt,
266-
current.start_lsn, current.tli);
266+
current.start_lsn, current.tli, true);
267267

268268
/* Make sure that WAL streaming is working
269269
* PAGE backup in stream mode is waited twice, first for
@@ -2051,8 +2051,6 @@ backup_files(void *arg)
20512051
instance_config.compress_alg,
20522052
instance_config.compress_level,
20532053
arguments->nodeInfo->checksum_version,
2054-
arguments->nodeInfo->ptrack_version_num,
2055-
arguments->nodeInfo->ptrack_schema,
20562054
arguments->hdr_map, false);
20572055
}
20582056
else
@@ -2350,7 +2348,7 @@ calculate_datasize_of_filelist(parray *filelist)
23502348
{
23512349
pgFile *file = (pgFile *) parray_get(filelist, i);
23522350

2353-
if (file->external_dir_num != 0)
2351+
if (file->external_dir_num != 0 || file->excluded)
23542352
continue;
23552353

23562354
if (S_ISDIR(file->mode))

0 commit comments

Comments
 (0)