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

Commit2f27142

Browse files
Ivan Lazarevfunny-falcon
Ivan Lazarev
authored andcommitted
[PBCKP-287] skipping data_bck_file+cfm_bck_file on backup when they both exist
1 parent612f530 commit2f27142

File tree

1 file changed

+17
-4
lines changed

1 file changed

+17
-4
lines changed

‎src/backup.c‎

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2233,11 +2233,24 @@ backup_cfs_segment(int i, pgFile *file, backup_files_arg *arguments) {
22332233
elog(LOG,"backup CFS segment %s, data_file=%s, cfm_file=%s, data_bck_file=%s, cfm_bck_file=%s",
22342234
data_file->name,data_file->name,cfm_file->name,data_bck_file==NULL?"NULL":data_bck_file->name,cfm_bck_file==NULL?"NULL":cfm_bck_file->name);
22352235

2236-
/* storing cfs in order data_bck_file -> cfm_bck -> data_file -> map */
2237-
if (cfm_bck_file)
2238-
process_file(i,cfm_bck_file,arguments);
2236+
/* storing cfs segment. processing corner case [PBCKP-287] stage 1.
2237+
* - when we do have data_bck_file we should skip both data_bck_file and cfm_bck_file if exists.
2238+
* they are removed by cfs_recover() during postgres start.
2239+
*/
22392240
if (data_bck_file)
2240-
process_file(i,data_bck_file,arguments);
2241+
{
2242+
if (cfm_bck_file)
2243+
cfm_bck_file->write_size=FILE_NOT_FOUND;
2244+
data_bck_file->write_size=FILE_NOT_FOUND;
2245+
}
2246+
/* else we store cfm_bck_file. processing corner case [PBCKP-287] stage 2.
2247+
* - when we do have cfm_bck_file only we should store it.
2248+
* it will replace cfm_file after postgres start.
2249+
*/
2250+
elseif (cfm_bck_file)
2251+
process_file(i,cfm_bck_file,arguments);
2252+
2253+
/* storing cfs segment in order cfm_file -> datafile to guarantee their consistency */
22412254
process_file(i,cfm_file,arguments);
22422255
process_file(i,data_file,arguments);
22432256
elog(LOG,"Backup CFS segment %s done",data_file->name);

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp