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

Commit30845bf

Browse files
committed
Check ptrack control file.
1 parent633b4b5 commit30845bf

File tree

4 files changed

+22
-2
lines changed

4 files changed

+22
-2
lines changed

‎backup.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,12 @@ do_backup_database(parray *backup_list, pgBackupOption bkupopt)
230230

231231
if (current.backup_mode==BACKUP_MODE_DIFF_PTRACK)
232232
{
233+
XLogRecPtrptrack_lsn=get_last_ptrack_lsn();
234+
if (ptrack_lsn<prev_backup->start_lsn||ptrack_lsn >=current.start_lsn)
235+
elog(ERROR,"Wrong ptrack lsn:%lx prev:%lx current:%lx",
236+
ptrack_lsn,
237+
prev_backup->start_lsn,
238+
current.start_lsn);
233239
parray_qsort(backup_files_list,pgFileComparePathDesc);
234240
make_pagemap_from_ptrack(backup_files_list);
235241
}

‎parsexlog.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,11 +107,9 @@ SimpleXLogPageRead(XLogReaderState *xlogreader, XLogRecPtr targetPagePtr,
107107
{
108108
XLogPageReadPrivate*private= (XLogPageReadPrivate*)xlogreader->private_data;
109109
uint32targetPageOff;
110-
XLogRecPtrtargetSegEnd;
111110
XLogSegNotargetSegNo;
112111

113112
XLByteToSeg(targetPagePtr,targetSegNo);
114-
XLogSegNoOffsetToRecPtr(targetSegNo+1,0,targetSegEnd);
115113
targetPageOff=targetPagePtr %XLogSegSize;
116114

117115
/*

‎pg_arman.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -298,6 +298,7 @@ extern void time2iso(char *buf, size_t len, time_t time);
298298
externconstchar*status2str(BackupStatusstatus);
299299
externvoidremove_trailing_space(char*buf,intcomment_mark);
300300
externvoidremove_not_digit(char*buf,size_tlen,constchar*str);
301+
externXLogRecPtrget_last_ptrack_lsn(void);
301302

302303
/* in status.c */
303304
externboolis_pg_running(void);

‎util.c

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,21 @@ sanityChecks(void)
7575
"target master need to use either data checksums or \"wal_log_hints = on\".");
7676
}
7777

78+
XLogRecPtr
79+
get_last_ptrack_lsn(void)
80+
{
81+
char*buffer;
82+
size_tsize;
83+
XLogRecPtrlsn;
84+
85+
buffer=slurpFile(pgdata,"global/ptrack_control",&size, false);
86+
if (buffer==NULL)
87+
return0;
88+
89+
lsn=*(XLogRecPtr*)buffer;
90+
returnlsn;
91+
}
92+
7893
/*
7994
* Utility shared by backup and restore to fetch the current timeline
8095
* used by a node.

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp