From eb531bc4902844b927b7d6d3135542f01a9adc75 Mon Sep 17 00:00:00 2001 From: Artur Zakirov Date: Wed, 15 Feb 2017 18:28:34 +0300 Subject: [PATCH] WAL delete fixes --- data.c | 12 +++--------- delete.c | 7 ++++--- 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/data.c b/data.c index ddebac0f..2e9f4c26 100644 --- a/data.c +++ b/data.c @@ -92,9 +92,9 @@ backup_data_page(pgFile *file, const XLogRecPtr *lsn, } /* - * If an invalid data page was found, fallback to simple copy to ensure - * all pages in the file don't have BackupPageHeader. - */ + * If an invalid data page was found, fallback to simple copy to ensure + * all pages in the file don't have BackupPageHeader. + */ if (!parse_page(&page, &page_lsn)) { int i; @@ -226,9 +226,6 @@ backup_data_file(const char *from_root, const char *to_root, to_path, strerror(errno_tmp)); } - /* confirm server version */ - check_server_version(); - /* * Read each page, verify checksum and write it to backup. * If page map is not empty we scan only these blocks, otherwise @@ -244,10 +241,7 @@ backup_data_file(const char *from_root, const char *to_root, datapagemap_iterator_t *iter; iter = datapagemap_iterate(&file->pagemap); while (datapagemap_next(iter, &blknum)) - { - elog(WARNING, "Iter bitmap. blknum %u, nblocks %u", blknum, nblocks); backup_data_page(file, lsn, blknum, nblocks, in, out, &crc); - } pg_free(iter); /* diff --git a/delete.c b/delete.c index 4c410eee..3164ec57 100644 --- a/delete.c +++ b/delete.c @@ -139,7 +139,7 @@ do_deletewal(time_t backup_id, bool strict) parray_walk(backup_list, pgBackupFree); parray_free(backup_list); - delete_walfiles(oldest_lsn, oldest_tli, false); + delete_walfiles(oldest_lsn, oldest_tli, true); return 0; } @@ -349,10 +349,11 @@ delete_walfiles(XLogRecPtr oldest_lsn, TimeLineID oldest_tli, bool delete_all) * they were originally written, in case this worries you. */ if (IsXLogFileName(arcde->d_name) || - IsPartialXLogFileName(arcde->d_name)) + IsPartialXLogFileName(arcde->d_name) || + IsBackupHistoryFileName(arcde->d_name)) { if (XLogRecPtrIsInvalid(oldest_lsn) || - strcmp(arcde->d_name + 8, oldestSegmentNeeded + 8) < 0) + strncmp(arcde->d_name + 8, oldestSegmentNeeded + 8, 16) < 0) { /* * Use the original file name again now, including any