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

Commite0175b9

Browse files
committed
Merge branch 'master' of git.postgrespro.ru:pgpro-dev/pg_probackup
2 parents1af622f +82d7959 commite0175b9

File tree

5 files changed

+37
-36
lines changed

5 files changed

+37
-36
lines changed

‎backup.c

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ typedef struct
4747
constchar*to_root;
4848
parray*backup_files_list;
4949
parray*prev_backup_filelist;
50-
constXLogRecPtr*prev_backup_start_lsn;
50+
XLogRecPtrprev_backup_start_lsn;
5151
}backup_files_args;
5252

5353
/*
@@ -101,7 +101,7 @@ do_backup_database(parray *backup_list)
101101
chardatabase_path[MAXPGPATH];
102102
chardst_backup_path[MAXPGPATH];
103103
charlabel[1024];
104-
XLogRecPtr*prev_backup_start_lsn=NULL;
104+
XLogRecPtrprev_backup_start_lsn=InvalidXLogRecPtr;
105105

106106
pthread_tbackup_threads[num_threads];
107107
pthread_tstream_thread;
@@ -128,7 +128,7 @@ do_backup_database(parray *backup_list)
128128
{
129129
prev_backup=catalog_get_last_data_backup(backup_list,current.tli);
130130
if (prev_backup==NULL)
131-
elog(ERROR,"Valid backup on current timeline is not found."
131+
elog(ERROR,"Valid backup on current timeline is not found."
132132
"Create new FULL backup before an incremental one.");
133133
}
134134

@@ -189,7 +189,7 @@ do_backup_database(parray *backup_list)
189189
prev_backup_filelist=dir_read_file_list(pgdata,prev_backup_filelist_path);
190190

191191
/* If lsn is not NULL, only pages with higher lsn will be copied. */
192-
prev_backup_start_lsn=&prev_backup->start_lsn;
192+
prev_backup_start_lsn=prev_backup->start_lsn;
193193

194194
current.parent_backup=prev_backup->start_time;
195195
pgBackupWriteBackupControlFile(&current);
@@ -432,14 +432,14 @@ do_backup(void)
432432

433433
elog(LOG,"Backup destination is initialized");
434434

435+
/* set the error processing function for the backup process */
436+
pgut_atexit_push(backup_cleanup,NULL);
437+
435438
/* get list of backups already taken */
436439
backup_list=catalog_get_backup_list(INVALID_BACKUP_ID);
437440
if (backup_list==NULL)
438441
elog(ERROR,"Failed to get backup list.");
439442

440-
/* set the error processing function for the backup process */
441-
pgut_atexit_push(backup_cleanup,NULL);
442-
443443
/* backup data */
444444
do_backup_database(backup_list);
445445
pgut_atexit_pop(backup_cleanup,NULL);

‎data.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ parse_page(const DataPage *page, XLogRecPtr *lsn)
5353
* to the backup file.
5454
*/
5555
staticvoid
56-
backup_data_page(pgFile*file,constXLogRecPtr*prev_backup_start_lsn,
56+
backup_data_page(pgFile*file,XLogRecPtrprev_backup_start_lsn,
5757
BlockNumberblknum,BlockNumbernblocks,
5858
FILE*in,FILE*out,
5959
pg_crc32*crc)
@@ -137,9 +137,9 @@ backup_data_page(pgFile *file, const XLogRecPtr *prev_backup_start_lsn,
137137
}
138138

139139
/* If the page hasn't changed since previous backup, don't backup it. */
140-
if (prev_backup_start_lsn
140+
if (!XLogRecPtrIsInvalid(prev_backup_start_lsn)
141141
&& !XLogRecPtrIsInvalid(page_lsn)
142-
&&page_lsn<*prev_backup_start_lsn)
142+
&&page_lsn<prev_backup_start_lsn)
143143
return;
144144

145145
/* Verify checksum */
@@ -194,7 +194,7 @@ backup_data_page(pgFile *file, const XLogRecPtr *prev_backup_start_lsn,
194194
*/
195195
bool
196196
backup_data_file(constchar*from_root,constchar*to_root,
197-
pgFile*file,constXLogRecPtr*prev_backup_start_lsn)
197+
pgFile*file,XLogRecPtrprev_backup_start_lsn)
198198
{
199199
charto_path[MAXPGPATH];
200200
FILE*in;

‎dir.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -723,7 +723,7 @@ dir_read_file_list(const char *root, const char *file_txt)
723723
sscanf(buf,"linked:%s",linked);
724724
ptr=strstr(buf,"segno");
725725
if (ptr)
726-
sscanf(buf,"linked:%s",linked);
726+
sscanf(buf,"segno:%d",&segno);
727727
#ifdefPGPRO_EE
728728
ptr=strstr(buf,"CFS_generation");
729729
sscanf(buf,"CFS_generation:%lu",&generation);

‎pg_probackup.c

Lines changed: 24 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,10 @@ static pgut_option options[] =
107107
int
108108
main(intargc,char*argv[])
109109
{
110-
inti;
110+
charpath[MAXPGPATH];
111+
/* Check if backup_path is directory. */
112+
structstatstat_buf;
113+
intrc=stat(backup_path,&stat_buf);
111114

112115
/* initialize configuration */
113116
pgBackup_init(&current);
@@ -151,7 +154,7 @@ main(int argc, char *argv[])
151154
}
152155

153156
/* Parse command line arguments */
154-
i=pgut_getopt(argc,argv,options);
157+
pgut_getopt(argc,argv,options);
155158

156159
if (backup_path==NULL)
157160
{
@@ -160,27 +163,20 @@ main(int argc, char *argv[])
160163
if (backup_path==NULL)
161164
elog(ERROR,"required parameter not specified: BACKUP_PATH (-B, --backup-path)");
162165
}
163-
else
164-
{
165-
charpath[MAXPGPATH];
166-
/* Check if backup_path is directory. */
167-
structstatstat_buf;
168-
intrc=stat(backup_path,&stat_buf);
169166

170-
/* If rc == -1, there is no file or directory. So it's OK. */
171-
if (rc!=-1&& !S_ISDIR(stat_buf.st_mode))
172-
elog(ERROR,"-B, --backup-path must be a path to directory");
167+
/* If rc == -1, there is no file or directory. So it's OK. */
168+
if (rc!=-1&& !S_ISDIR(stat_buf.st_mode))
169+
elog(ERROR,"-B, --backup-path must be a path to directory");
173170

174-
/* Do not read options from file or env if we're going to set them */
175-
if (backup_subcmd!=CONFIGURE)
176-
{
177-
/* Read options from configuration file */
178-
join_path_components(path,backup_path,BACKUP_CATALOG_CONF_FILE);
179-
pgut_readopt(path,options,ERROR);
171+
/* Do not read options from file or env if we're going to set them */
172+
if (backup_subcmd!=CONFIGURE)
173+
{
174+
/* Read options from configuration file */
175+
join_path_components(path,backup_path,BACKUP_CATALOG_CONF_FILE);
176+
pgut_readopt(path,options,ERROR);
180177

181-
/* Read environment variables */
182-
pgut_getopt_env(options);
183-
}
178+
/* Read environment variables */
179+
pgut_getopt_env(options);
184180
}
185181

186182
if (backup_id_string_param!=NULL)
@@ -209,10 +205,15 @@ main(int argc, char *argv[])
209205
join_path_components(arclog_path,backup_path,"wal");
210206

211207
/* setup exclusion list for file search */
212-
for (i=0;pgdata_exclude_dir[i];i++);/* find first empty slot */
208+
if (!backup_logs)
209+
{
210+
inti;
211+
212+
for (i=0;pgdata_exclude_dir[i];i++);/* find first empty slot */
213213

214-
if(!backup_logs)
215-
pgdata_exclude_dir[i++]="pg_log";
214+
/* Set 'pg_log' in first empty slot */
215+
pgdata_exclude_dir[i]="pg_log";
216+
}
216217

217218
if (target_time!=NULL&&target_xid!=NULL)
218219
elog(ERROR,"You can't specify recovery-target-time and recovery-target-xid at the same time");

‎pg_probackup.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -340,7 +340,7 @@ extern int pgFileCompareSize(const void *f1, const void *f2);
340340

341341
/* in data.c */
342342
externboolbackup_data_file(constchar*from_root,constchar*to_root,
343-
pgFile*file,constXLogRecPtr*lsn);
343+
pgFile*file,XLogRecPtrprev_backup_start_lsn);
344344
externvoidrestore_data_file(constchar*from_root,constchar*to_root,
345345
pgFile*file,pgBackup*backup);
346346
externboolis_compressed_data_file(pgFile*file);

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp