@@ -125,10 +125,6 @@ do_backup_pg(InstanceState *instanceState, PGconn *backup_conn,
125125check_external_for_tablespaces (external_dirs ,backup_conn );
126126}
127127
128- /* Clear ptrack files for not PTRACK backups */
129- if (current .backup_mode != BACKUP_MODE_DIFF_PTRACK && nodeInfo -> is_ptrack_enable )
130- pg_ptrack_clear (backup_conn ,nodeInfo -> ptrack_version_num );
131-
132128/* notify start of backup to PostgreSQL server */
133129time2iso (label ,lengthof (label ),current .start_time , false);
134130strncat (label ," with pg_probackup" ,lengthof (label )-
@@ -217,29 +213,14 @@ do_backup_pg(InstanceState *instanceState, PGconn *backup_conn,
217213{
218214XLogRecPtr ptrack_lsn = get_last_ptrack_lsn (backup_conn ,nodeInfo );
219215
220- if (nodeInfo -> ptrack_version_num < 200 )
216+ // new ptrack (>=2.0) is more robust and checks Start LSN
217+ if (ptrack_lsn > prev_backup -> start_lsn || ptrack_lsn == InvalidXLogRecPtr )
221218{
222- // backward compatibility kludge: use Stop LSN for ptrack 1.x,
223- if (ptrack_lsn > prev_backup -> stop_lsn || ptrack_lsn == InvalidXLogRecPtr )
224- {
225- elog (ERROR ,"LSN from ptrack_control %X/%X differs from Stop LSN of previous backup %X/%X.\n"
226- "Create new full backup before an incremental one." ,
227- (uint32 ) (ptrack_lsn >>32 ), (uint32 ) (ptrack_lsn ),
228- (uint32 ) (prev_backup -> stop_lsn >>32 ),
229- (uint32 ) (prev_backup -> stop_lsn ));
230- }
231- }
232- else
233- {
234- // new ptrack is more robust and checks Start LSN
235- if (ptrack_lsn > prev_backup -> start_lsn || ptrack_lsn == InvalidXLogRecPtr )
236- {
237- elog (ERROR ,"LSN from ptrack_control %X/%X is greater than Start LSN of previous backup %X/%X.\n"
238- "Create new full backup before an incremental one." ,
239- (uint32 ) (ptrack_lsn >>32 ), (uint32 ) (ptrack_lsn ),
240- (uint32 ) (prev_backup -> start_lsn >>32 ),
241- (uint32 ) (prev_backup -> start_lsn ));
242- }
219+ elog (ERROR ,"LSN from ptrack_control %X/%X is greater than Start LSN of previous backup %X/%X.\n"
220+ "Create new full backup before an incremental one." ,
221+ (uint32 ) (ptrack_lsn >>32 ), (uint32 ) (ptrack_lsn ),
222+ (uint32 ) (prev_backup -> start_lsn >>32 ),
223+ (uint32 ) (prev_backup -> start_lsn ));
243224}
244225}
245226
@@ -407,15 +388,10 @@ do_backup_pg(InstanceState *instanceState, PGconn *backup_conn,
407388/*
408389 * Build the page map from ptrack information.
409390 */
410- if (nodeInfo -> ptrack_version_num >=200 )
411- make_pagemap_from_ptrack_2 (backup_files_list ,backup_conn ,
412- nodeInfo -> ptrack_schema ,
413- nodeInfo -> ptrack_version_num ,
414- prev_backup_start_lsn );
415- else if (nodeInfo -> ptrack_version_num == 105 ||
416- nodeInfo -> ptrack_version_num == 106 ||
417- nodeInfo -> ptrack_version_num == 107 )
418- make_pagemap_from_ptrack_1 (backup_files_list ,backup_conn );
391+ make_pagemap_from_ptrack_2 (backup_files_list ,backup_conn ,
392+ nodeInfo -> ptrack_schema ,
393+ nodeInfo -> ptrack_version_num ,
394+ prev_backup_start_lsn );
419395}
420396
421397time (& end_time );
@@ -490,8 +466,6 @@ do_backup_pg(InstanceState *instanceState, PGconn *backup_conn,
490466arg -> files_list = backup_files_list ;
491467arg -> prev_filelist = prev_backup_filelist ;
492468arg -> prev_start_lsn = prev_backup_start_lsn ;
493- arg -> conn_arg .conn = NULL ;
494- arg -> conn_arg .cancel_conn = NULL ;
495469arg -> hdr_map = & (current .hdr_map );
496470arg -> thread_num = i + 1 ;
497471/* By default there are some error */
@@ -816,6 +790,7 @@ do_backup(InstanceState *instanceState, pgSetBackupParams *set_backup_params,
816790
817791if (current .backup_mode == BACKUP_MODE_DIFF_PTRACK )
818792{
793+ /* ptrack_version_num < 2.0 was already checked in get_ptrack_version() */
819794if (nodeInfo .ptrack_version_num == 0 )
820795elog (ERROR ,"This PostgreSQL instance does not support ptrack" );
821796else
@@ -2085,15 +2060,15 @@ backup_files(void *arg)
20852060/* backup file */
20862061if (file -> is_datafile && !file -> is_cfs )
20872062{
2088- backup_data_file (& ( arguments -> conn_arg ), file ,from_fullpath ,to_fullpath ,
2089- arguments -> prev_start_lsn ,
2090- current .backup_mode ,
2091- instance_config .compress_alg ,
2092- instance_config .compress_level ,
2093- arguments -> nodeInfo -> checksum_version ,
2094- arguments -> nodeInfo -> ptrack_version_num ,
2095- arguments -> nodeInfo -> ptrack_schema ,
2096- arguments -> hdr_map , false);
2063+ backup_data_file (file ,from_fullpath ,to_fullpath ,
2064+ arguments -> prev_start_lsn ,
2065+ current .backup_mode ,
2066+ instance_config .compress_alg ,
2067+ instance_config .compress_level ,
2068+ arguments -> nodeInfo -> checksum_version ,
2069+ arguments -> nodeInfo -> ptrack_version_num ,
2070+ arguments -> nodeInfo -> ptrack_schema ,
2071+ arguments -> hdr_map , false);
20972072}
20982073else
20992074{
@@ -2117,10 +2092,6 @@ backup_files(void *arg)
21172092/* ssh connection to longer needed */
21182093fio_disconnect ();
21192094
2120- /* Close connection */
2121- if (arguments -> conn_arg .conn )
2122- pgut_disconnect (arguments -> conn_arg .conn );
2123-
21242095/* Data files transferring is successful */
21252096arguments -> ret = 0 ;
21262097