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

Commit43efdd3

Browse files
committed
code cleanup
1 parent04105e8 commit43efdd3

File tree

1 file changed

+34
-39
lines changed

1 file changed

+34
-39
lines changed

‎src/backup.c

Lines changed: 34 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ static void backup_cleanup(bool fatal, void *userdata);
7777
staticvoidbackup_disconnect(boolfatal,void*userdata);
7878

7979
staticvoidbackup_files(void*arg);
80-
staticvoiddo_backup_database(parray*backup_list);
80+
staticvoiddo_backup_instance(void);
8181

8282
staticvoidpg_start_backup(constchar*label,boolsmooth,pgBackup*backup);
8383
staticvoidpg_switch_wal(PGconn*conn);
@@ -116,10 +116,11 @@ static void confirm_block_size(const char *name, int blcksz);
116116

117117

118118
/*
119-
* Take a backup of database.
119+
* Take a backup of a single postgresql instance.
120+
* Move files from 'pgdata' to a subdirectory in 'backup_path'.
120121
*/
121122
staticvoid
122-
do_backup_database(parray*backup_list)
123+
do_backup_instance(void)
123124
{
124125
size_ti;
125126
chardatabase_path[MAXPGPATH];
@@ -144,15 +145,32 @@ do_backup_database(parray *backup_list)
144145

145146
/*
146147
* In incremental backup mode ensure that already-validated
147-
* backup on current timeline exists.
148+
* backup on current timeline exists and get its filelist.
148149
*/
149150
if (current.backup_mode==BACKUP_MODE_DIFF_PAGE||
150151
current.backup_mode==BACKUP_MODE_DIFF_PTRACK)
151152
{
153+
parray*backup_list;
154+
/* get list of backups already taken */
155+
backup_list=catalog_get_backup_list(INVALID_BACKUP_ID);
156+
if (backup_list==NULL)
157+
elog(ERROR,"Failed to get backup list.");
158+
152159
prev_backup=catalog_get_last_data_backup(backup_list,current.tli);
153160
if (prev_backup==NULL)
154161
elog(ERROR,"Valid backup on current timeline is not found. "
155162
"Create new FULL backup before an incremental one.");
163+
parray_free(backup_list);
164+
165+
pgBackupGetPath(prev_backup,prev_backup_filelist_path,lengthof(prev_backup_filelist_path),
166+
DATABASE_FILE_LIST);
167+
prev_backup_filelist=dir_read_file_list(pgdata,prev_backup_filelist_path);
168+
169+
/* If lsn is not NULL, only pages with higher lsn will be copied. */
170+
prev_backup_start_lsn=prev_backup->start_lsn;
171+
current.parent_backup=prev_backup->start_time;
172+
173+
pgBackupWriteBackupControlFile(&current);
156174
}
157175

158176
/* Clear ptrack files for FULL and PAGE backup */
@@ -200,24 +218,6 @@ do_backup_database(parray *backup_list)
200218
pthread_mutex_unlock(&start_stream_mut);
201219
}
202220

203-
/*
204-
* To take incremental backup get the filelist of the last completed database
205-
*/
206-
if (current.backup_mode==BACKUP_MODE_DIFF_PAGE||
207-
current.backup_mode==BACKUP_MODE_DIFF_PTRACK)
208-
{
209-
Assert(prev_backup);
210-
pgBackupGetPath(prev_backup,prev_backup_filelist_path,lengthof(prev_backup_filelist_path),
211-
DATABASE_FILE_LIST);
212-
prev_backup_filelist=dir_read_file_list(pgdata,prev_backup_filelist_path);
213-
214-
/* If lsn is not NULL, only pages with higher lsn will be copied. */
215-
prev_backup_start_lsn=prev_backup->start_lsn;
216-
217-
current.parent_backup=prev_backup->start_time;
218-
pgBackupWriteBackupControlFile(&current);
219-
}
220-
221221
/* initialize backup list */
222222
backup_files_list=parray_new();
223223

@@ -394,9 +394,6 @@ do_backup_database(parray *backup_list)
394394
int
395395
do_backup(void)
396396
{
397-
parray*backup_list;
398-
boolis_ptrack_support;
399-
400397
/* PGDATA and BACKUP_MODE are always required */
401398
if (pgdata==NULL)
402399
elog(ERROR,"required parameter not specified: PGDATA "
@@ -422,15 +419,18 @@ do_backup(void)
422419
current.stream=stream_wal;
423420

424421
/* ptrack backup checks */
425-
is_ptrack_support=pg_ptrack_support();
426-
if (current.backup_mode==BACKUP_MODE_DIFF_PTRACK&& !is_ptrack_support)
427-
elog(ERROR,"This PostgreSQL instance does not support ptrack");
428-
429-
if (is_ptrack_support)
422+
if (current.backup_mode==BACKUP_MODE_DIFF_PTRACK)
430423
{
431-
is_ptrack_enable=pg_ptrack_enable();
432-
if(current.backup_mode==BACKUP_MODE_DIFF_PTRACK&& !is_ptrack_enable)
433-
elog(ERROR,"Ptrack is disabled");
424+
boolis_ptrack_support=pg_ptrack_support();
425+
426+
if (!is_ptrack_support)
427+
elog(ERROR,"This PostgreSQL instance does not support ptrack");
428+
else
429+
{
430+
is_ptrack_enable=pg_ptrack_enable();
431+
if(!is_ptrack_enable)
432+
elog(ERROR,"Ptrack is disabled");
433+
}
434434
}
435435

436436
/* archiving check */
@@ -460,11 +460,6 @@ do_backup(void)
460460
*/
461461
check_system_identifiers();
462462

463-
/* get list of backups already taken */
464-
backup_list=catalog_get_backup_list(INVALID_BACKUP_ID);
465-
if (backup_list==NULL)
466-
elog(ERROR,"Failed to get backup list.");
467-
468463
elog(LOG,"Backup start. backup-mode = %s, stream = %s",
469464
pgBackupGetBackupMode(&current),current.stream ?"true" :"false");
470465

@@ -483,7 +478,7 @@ do_backup(void)
483478
pgut_atexit_push(backup_cleanup,NULL);
484479

485480
/* backup data */
486-
do_backup_database(backup_list);
481+
do_backup_instance();
487482
pgut_atexit_pop(backup_cleanup,NULL);
488483

489484
/* compute size of wal files of this backup stored in the archive */

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp