-
Notifications
You must be signed in to change notification settings - Fork 92
Closed
Labels
Description
Версия утилиты: 2.0.17
Версия сервера: ваниль 10.4
Операционка: CentOS Linux release 7.4.1708
Исходная ситуация:
/mnt/pgbak каталог с бэкапами. в нем есть подкаталоги wal/10 и backups/10 , в них нет ничего, сервер только настроен и еще ничего не бэкапилось.
всё выполняем из под пользователя OS postgres
- Создаём полный бэкап:
$ pg_probackup backup -b full --stream --instance=10 -w --threads=12
INFO: Backup start, pg_probackup version: 2.0.17, backup ID: PD6XIX, backup mode: full, instance: 10, stream: true, remote: false
INFO: wait for pg_stop_backup()
INFO: pg_stop backup() successfully executed
INFO: Validating backup PD6XIX
INFO: Backup PD6XIX data files are valid
INFO: Backup PD6XIX completed
$
смотрим, что получилось:
$ pg_probackup show
BACKUP INSTANCE '10'
============================================================================================================================================
Instance Version ID Recovery time Mode WAL Current/Parent TLI Time Data Start LSN Stop LSN Status
============================================================================================================================================
10 10 PD6XIX 2018-08-09 14:06:40+03 FULL STREAM 1 / 0 10s 30MB 0/2C000028 0/2C000198 OK
$
смотрим содержимое каталога /mnt/pgbak/wal/10
$ ls -l /mnt/pgbak/wal/10/*
-rw-------. 1 postgres postgres 27060 Aug 9 14:06 /mnt/pgbak/wal/10/00000001000000000000002B.gz
-rw-------. 1 postgres postgres 320 Aug 9 14:06 /mnt/pgbak/wal/10/00000001000000000000002C.00000028.backup
-rw-------. 1 postgres postgres 27174 Aug 9 14:06 /mnt/pgbak/wal/10/00000001000000000000002C.gz
$
смотрим содержимое каталога $PGDATA/pg_wal
$ ls -l $PGDATA/pg_wal/*
-rw-------. 1 postgres postgres 16777216 Aug 9 14:06 /var/lib/postgresql/10/pg_wal/00000001000000000000002B
-rw-------. 1 postgres postgres 16777216 Aug 9 14:06 /var/lib/postgresql/10/pg_wal/00000001000000000000002C
-rw-------. 1 postgres postgres 320 Aug 9 14:06 /var/lib/postgresql/10/pg_wal/00000001000000000000002C.00000028.backup
-rw-------. 1 postgres postgres 16777216 Aug 9 14:06 /var/lib/postgresql/10/pg_wal/00000001000000000000002D
-rw-------. 1 postgres postgres 16777216 Aug 9 13:46 /var/lib/postgresql/10/pg_wal/00000001000000000000002E
-rw-------. 1 postgres postgres 16777216 Aug 9 13:45 /var/lib/postgresql/10/pg_wal/00000001000000000000002F
-rw-------. 1 postgres postgres 16777216 Aug 9 13:46 /var/lib/postgresql/10/pg_wal/000000010000000000000030
-rw-------. 1 postgres postgres 16777216 Aug 9 13:46 /var/lib/postgresql/10/pg_wal/000000010000000000000031
/var/lib/postgresql/10/pg_wal/archive_status:
total 0
-rw-------. 1 postgres postgres 0 Aug 9 14:06 00000001000000000000002B.done
-rw-------. 1 postgres postgres 0 Aug 9 14:06 00000001000000000000002C.00000028.backup.done
-rw-------. 1 postgres postgres 0 Aug 9 14:06 00000001000000000000002C.done
$
- запускаем режим бэкапа PAGE с максимальным протоколированием...
$ pg_probackup backup -b page --stream --instance=10 -w --threads=12 --log-level-console=verbose
INFO: Backup start, pg_probackup version: 2.0.17, backup ID: PD6XW5, backup mode: page, instance: 10, stream: true, remote: false
VERBOSE: (query) SELECT pg_catalog.current_setting($1)
VERBOSE: (param:0) = block_size
VERBOSE: (query) SELECT pg_catalog.current_setting($1)
VERBOSE: (param:0) = wal_block_size
VERBOSE: (query) SELECT pg_catalog.pg_is_in_recovery()
VERBOSE: (query) show data_checksums
LOG: This PostgreSQL instance was initialized with data block checksums. Data block corruption will be detected
VERBOSE: (query) SELECT proname FROM pg_proc WHERE proname='ptrack_version'
VERBOSE: (query) SELECT system_identifier FROM pg_catalog.pg_control_system()
LOG: Backup destination is initialized
LOG: Database backup start
VERBOSE: (query) SELECT pg_catalog.pg_start_backup($1, $2, false)
VERBOSE: (param:0) = 2018-08-09 14:14:29+03 with pg_probackup
VERBOSE: (param:1) = true
VERBOSE: (query) SET client_min_messages = warning;
VERBOSE: (query) SELECT * FROM pg_catalog.pg_switch_wal()
VERBOSE: Excluding file: postmaster.opts
VERBOSE: Excluding directory content: pg_subtrans
VERBOSE: Excluding directory content: pg_snapshots
VERBOSE: Excluding file: postmaster.pid
VERBOSE: Excluding directory content: pg_replslot
VERBOSE: Excluding directory content: pg_stat_tmp
VERBOSE: Excluding directory content: pg_dynshmem
VERBOSE: Excluding directory content: pg_wal
VERBOSE: Excluding directory content: pg_notify
VERBOSE: Excluding directory content: pg_serial
LOG: started streaming WAL at 0/2E000000 (timeline 1)
LOG: current_tli:1
LOG: prev_backup->start_lsn: 0/2C000028
LOG: current.start_lsn: 0/2E000028
LOG: Compiling pagemap
LOG: Opening compressed WAL segment "/mnt/pgbak/wal/10/00000001000000000000002C.gz"
WARNING: could not read WAL record at 0/2D000000
ERROR: WAL segment "/mnt/pgbak/wal/10/00000001000000000000002D" is absent
WARNING: Backup PD6XW5 is running, setting its status to ERROR
WARNING: backup in progress, stop backup
VERBOSE: (query) SET client_min_messages = warning;
VERBOSE: (query) SELECT pg_catalog.txid_snapshot_xmax(pg_catalog.txid_current_snapshot()), current_timestamp(0)::timestamptz, lsn, labelfile, spcmapfile FROM pg_catalog.pg_stop_backup(false)
$
смотрим содержимое каталога /mnt/pgbak/wal/10
$ ls -l /mnt/pgbak/wal/10/*
-rw-------. 1 postgres postgres 27060 Aug 9 14:06 /mnt/pgbak/wal/10/00000001000000000000002B.gz
-rw-------. 1 postgres postgres 320 Aug 9 14:06 /mnt/pgbak/wal/10/00000001000000000000002C.00000028.backup
-rw-------. 1 postgres postgres 27174 Aug 9 14:06 /mnt/pgbak/wal/10/00000001000000000000002C.gz
-rw-------. 1 postgres postgres 26953 Aug 9 14:14 /mnt/pgbak/wal/10/00000001000000000000002D.gz
-rw-------. 1 postgres postgres 320 Aug 9 14:14 /mnt/pgbak/wal/10/00000001000000000000002E.00000028.backup
-rw-------. 1 postgres postgres 27039 Aug 9 14:14 /mnt/pgbak/wal/10/00000001000000000000002E.gz
-rw-------. 1 postgres postgres 26945 Aug 9 14:14 /mnt/pgbak/wal/10/00000001000000000000002F.gz
$
смотрим содержимое каталога $PGDATA/pg_wal
$ ls -l $PGDATA/pg_wal/*
-rw-------. 1 postgres postgres 16777216 Aug 9 14:06 /var/lib/postgresql/10/pg_wal/00000001000000000000002C
-rw-------. 1 postgres postgres 16777216 Aug 9 14:14 /var/lib/postgresql/10/pg_wal/00000001000000000000002D
-rw-------. 1 postgres postgres 16777216 Aug 9 14:14 /var/lib/postgresql/10/pg_wal/00000001000000000000002E
-rw-------. 1 postgres postgres 320 Aug 9 14:14 /var/lib/postgresql/10/pg_wal/00000001000000000000002E.00000028.backup
-rw-------. 1 postgres postgres 16777216 Aug 9 14:14 /var/lib/postgresql/10/pg_wal/00000001000000000000002F
-rw-------. 1 postgres postgres 16777216 Aug 9 14:14 /var/lib/postgresql/10/pg_wal/000000010000000000000030
-rw-------. 1 postgres postgres 16777216 Aug 9 13:46 /var/lib/postgresql/10/pg_wal/000000010000000000000031
-rw-------. 1 postgres postgres 16777216 Aug 9 14:06 /var/lib/postgresql/10/pg_wal/000000010000000000000032
/var/lib/postgresql/10/pg_wal/archive_status:
total 0
-rw-------. 1 postgres postgres 0 Aug 9 14:06 00000001000000000000002C.done
-rw-------. 1 postgres postgres 0 Aug 9 14:14 00000001000000000000002D.done
-rw-------. 1 postgres postgres 0 Aug 9 14:14 00000001000000000000002E.00000028.backup.done
-rw-------. 1 postgres postgres 0 Aug 9 14:14 00000001000000000000002E.done
-rw-------.
почему происходит ошибка:
ERROR: WAL segment "/mnt/pgbak/wal/10/00000001000000000000002D" is absent
WARNING: Backup PD6XW5 is running, setting its status to ERROR
?
файл ведь есть!