Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit8daffee

Browse files
committed
Detect ptrack support and remove disable ptrack option.
1 parentcd9a119 commit8daffee

File tree

4 files changed

+22
-6
lines changed

4 files changed

+22
-6
lines changed

‎backup.c

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ static bool pg_is_standby(void);
6565
staticvoidget_lsn(PGconn*conn,PGresult*res,XLogRecPtr*lsn,boolstop_backup);
6666
staticvoidget_xid(PGresult*res,uint32*xid);
6767
staticvoidpg_ptrack_clear(void);
68+
staticboolpg_ptrack_support(void);
6869
staticchar*pg_ptrack_get_and_clear(Oidtablespace_oid,
6970
Oiddb_oid,
7071
Oidrel_oid,
@@ -106,6 +107,7 @@ do_backup_database(parray *backup_list, pgBackupOption bkupopt)
106107
pthread_tbackup_threads[num_threads];
107108
pthread_tstream_thread;
108109
backup_files_args*backup_threads_args[num_threads];
110+
boolis_ptrack_support;
109111

110112

111113
/* repack the options */
@@ -131,6 +133,10 @@ do_backup_database(parray *backup_list, pgBackupOption bkupopt)
131133
*/
132134
current.tli=get_current_timeline(false);
133135

136+
is_ptrack_support=pg_ptrack_support();
137+
if (current.backup_mode==BACKUP_MODE_DIFF_PTRACK&& !is_ptrack_support)
138+
elog(ERROR,"Current Postgres instance is not support ptrack");
139+
134140
/*
135141
* In differential backup mode, check if there is an already-validated
136142
* full backup on current timeline.
@@ -148,7 +154,7 @@ do_backup_database(parray *backup_list, pgBackupOption bkupopt)
148154
}
149155

150156
/* clear ptrack files for FULL and DIFF backup */
151-
if (current.backup_mode!=BACKUP_MODE_DIFF_PTRACK&&!disable_ptrack_clear)
157+
if (current.backup_mode!=BACKUP_MODE_DIFF_PTRACK&&is_ptrack_support)
152158
pg_ptrack_clear();
153159

154160
/* notify start of backup to PostgreSQL server */
@@ -635,6 +641,21 @@ pg_start_backup(const char *label, bool smooth, pgBackup *backup)
635641
PQclear(res);
636642
}
637643

644+
staticbool
645+
pg_ptrack_support(void)
646+
{
647+
PGresult*res_db;
648+
reconnect();
649+
res_db=execute("SELECT proname FROM pg_proc WHERE proname='pg_ptrack_clear'",0,NULL);
650+
if (PQntuples(res_db)==0)
651+
{
652+
PQclear(res_db);
653+
disconnect();
654+
return false;
655+
}
656+
return true;
657+
}
658+
638659
staticvoid
639660
pg_ptrack_clear(void)
640661
{

‎expected/option.out

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ Backup options:
2626
--validate validate backup after taking it
2727
--keep-data-generations=N keep GENERATION of full data backup
2828
--keep-data-days=DAY keep enough data backup to recover to DAY days age
29-
--disable-ptrack-clear disable clear ptrack for postgres without ptrack
3029
--backup-pg-log start backup pg_log directory
3130
--from-replica use non exclusive start backup for replica
3231

‎pg_arman.c

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ static intkeep_data_days = KEEP_INFINITE;
3737
intnum_threads=1;
3838
boolstream_wal= false;
3939
boolfrom_replica= false;
40-
booldisable_ptrack_clear= false;
4140
staticboolbackup_logs= false;
4241
staticboolbackup_validate= false;
4342
boolprogress= false;
@@ -66,7 +65,6 @@ static pgut_option options[] =
6665
{'b',8,"stream",&stream_wal },
6766
{'b',11,"progress",&progress },
6867
/* backup options */
69-
{'b',9,"disable-ptrack-clear",&disable_ptrack_clear },
7068
{'b',10,"backup-pg-log",&backup_logs },
7169
{'f','b',"backup-mode",opt_backup_mode,SOURCE_ENV },
7270
{'b','C',"smooth-checkpoint",&smooth_checkpoint,SOURCE_ENV },
@@ -255,7 +253,6 @@ pgut_help(bool details)
255253
printf(_(" --validate validate backup after taking it\n"));
256254
printf(_(" --keep-data-generations=N keep GENERATION of full data backup\n"));
257255
printf(_(" --keep-data-days=DAY keep enough data backup to recover to DAY days age\n"));
258-
printf(_(" --disable-ptrack-clear disable clear ptrack for postgres without ptrack\n"));
259256
printf(_(" --backup-pg-log start backup pg_log directory\n"));
260257
printf(_(" --from-replica use non exclusive start backup for replica\n"));
261258
printf(_("\nRestore options:\n"));

‎pg_arman.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,6 @@ extern parray *backup_files_list;
213213
externintnum_threads;
214214
externboolstream_wal;
215215
externboolfrom_replica;
216-
externbooldisable_ptrack_clear;
217216
externboolprogress;
218217

219218
/* in backup.c */

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp