Some days ago EnterpriseDB released the latest version of its backup and recovery tool for PostgreSQL and EDB Postgres Advanced Server, release notes here. The main new features, at least for me, are backups using multiple cores and parallel incremental restores. Besides that BART does not require pg_basebackup anymore for taking full backups of a PostgreSQL instance. The downside with that could be that you can not easily restore the backups without using EDB BART. Lets see how all of that works.
I’ll not describe on how BART can be installed as that is just a “yum install …” from the EDB repositories. Once that is done BART should report version 2.2.0:
[postgres@edbbart ~]$ bart --version bart (EnterpriseDB) 2.2.0 BART22-REL-2_2_0-GA2-0-g60d64ca Tue Nov 6 08:32:55 UTC 2018
The help output of BART already gives an idea about the latest changes:
[postgres@edbbart ~]$ bart backup --help bart: backup and recovery tool Usage: bart BACKUP [OPTION]... Options: -h, --help Show this help message and exit -s, --server Name of the server or 'all' (full backups only) to specify all servers -F, --format=p|t Backup output format (tar (default) or plain) -z, --gzip Enables gzip compression of tar files -c, --compress-level Specifies the compression level (1 through 9, 9 being best compression) --backup-name Specify a friendly name for the current backup --parent Specify parent backup for incremental backup --thread-count Specify number of worker thread(s) to take backup --check Verify checksum of required mbm files --with-pg_basebackup Use pg_basebackup to take the backup, valid only for full backup --no-pg_basebackup Don't use pg_basebackup to take the backup, valid only for full backup
Parallel stuff came in and the possibility to avoid using pg_basebackup. Lets do a first test without specifying “–with-pg_basebackup” or “–no-pg_basebackup” just to see what the default is:
[postgres@edbbart ~]$ /usr/edb/bart/bin/bart init -s PG2 -o INFO: setting archive_command for server 'pg2' WARNING: archive_command is set. server restart is required [postgres@edbbart ~]$ bart backup -s PG2 INFO: DebugTarget - getVar(checkDiskSpace.bytesAvailable) INFO: new backup identifier generated 1541853901964 INFO: creating 2 harvester threads /u90/pg2/1541853901964 /u90/pg2/1541853901964 INFO: backup completed successfully INFO: BART VERSION: 2.2.0 BACKUP DETAILS: BACKUP STATUS: active BACKUP IDENTIFIER: 1541853901964 BACKUP NAME: PG2_2018-11-10T13:45 BACKUP PARENT: none BACKUP LOCATION: /u90/pg2/1541853901964 BACKUP SIZE: 81.08 MB BACKUP FORMAT: tar BACKUP TIMEZONE: Europe/Zurich XLOG METHOD: stream BACKUP CHECKSUM(s): 0 TABLESPACE(s): 0 START WAL LOCATION: 000000010000000000000005 STOP WAL LOCATION: 000000010000000000000006 BACKUP METHOD: pg_start_backup BACKUP FROM: master START TIME: 2018-11-01 15:39:25 CET STOP TIME: 2018-11-01 15:39:28 CET TOTAL DURATION: 3 sec(s)
We get two threads for creating the backup and that is because I have requested that in my configuration:
[postgres@edbbart ~]$ cat /usr/edb/bart/etc/bart.cfg [BART] bart_host = postgres@edbbart backup_path = /u90 pg_basebackup_path = /usr/edb/as11/bin/pg_basebackup xlog_method = stream retention_policy= 2 DAYS logfile = /tmp/bart.log scanner_logfile = /tmp/scanner.log thread_count = 2 [PG2] backup_name = PG2_%year-%month-%dayT%hour:%minute host = 192.168.22.60 user = bart port = 5433 cluster_owner = postgres remote_host = [email protected] allow_incremental_backups = enabled thread_count = 2 description = PG1 backups
The question is now if pg_basebackup was used in the background or not (the answer is already known though, as pg_basebackup has no parallel option).
[postgres@edbbart ~]$ cd /u90/pg2/1541853901964/ [postgres@edbbart 1541853901964]$ ls -l total 83040 -rw-rw-r--. 1 postgres postgres 644 Nov 10 13:45 backupinfo -rw-------. 1 postgres postgres 211 Nov 10 13:45 backup_label drwxrwxr-x. 4 postgres postgres 37 Nov 10 13:45 base -rw-rw-r--. 1 postgres postgres 26151424 Nov 10 13:45 base-1.tar -rw-rw-r--. 1 postgres postgres 25309696 Nov 10 13:45 base-2.tar -rw-rw-r--. 1 postgres postgres 33557504 Nov 10 13:45 base.tar
This is not what you get when you do a plain pg_basebackup. Could we restore that without using BART?
[postgres@edbbart aa]$ tar -axf /u90/pg2/1541853901964/base.tar [postgres@edbbart aa]$ ls -l total 60 drwx------. 6 postgres postgres 54 Nov 10 13:45 base -rw-------. 1 postgres postgres 33 Nov 10 13:45 current_logfiles drwx------. 2 postgres postgres 4096 Nov 10 13:45 global -rw-------. 1 postgres postgres 25 Nov 10 13:45 __payloadChecksum drwx------. 2 postgres postgres 6 Nov 10 13:45 pg_commit_ts drwx------. 2 postgres postgres 6 Nov 10 13:45 pg_dynshmem -rw-------. 1 postgres postgres 4653 Nov 10 13:45 pg_hba.conf -rw-------. 1 postgres postgres 1636 Nov 10 13:45 pg_ident.conf drwx------. 2 postgres postgres 58 Nov 10 13:55 pg_log drwx------. 4 postgres postgres 68 Nov 10 13:45 pg_logical drwx------. 4 postgres postgres 36 Nov 10 13:45 pg_multixact drwx------. 2 postgres postgres 18 Nov 10 13:55 pg_notify drwx------. 2 postgres postgres 6 Nov 10 13:45 pg_replslot drwx------. 2 postgres postgres 6 Nov 10 13:45 pg_serial drwx------. 2 postgres postgres 6 Nov 10 13:45 pg_snapshots drwx------. 2 postgres postgres 6 Nov 10 13:45 pg_stat drwx------. 2 postgres postgres 88 Nov 10 13:55 pg_stat_tmp drwx------. 2 postgres postgres 18 Nov 10 13:45 pg_subtrans drwx------. 2 postgres postgres 6 Nov 10 13:45 pg_tblspc drwx------. 2 postgres postgres 6 Nov 10 13:45 pg_twophase -rw-------. 1 postgres postgres 3 Nov 10 13:45 PG_VERSION drwx------. 2 postgres postgres 70 Nov 10 13:55 pg_wal drwx------. 2 postgres postgres 18 Nov 10 13:55 pg_xact -rw-------. 1 postgres postgres 1184 Nov 10 13:45 postgresql.auto.conf -rw-------. 1 postgres postgres 27807 Nov 10 13:45 postgresql.conf
Looks like we can just start that, so lets try:
[postgres@edbbart aa]$ chmod 700 /var/tmp/aa [postgres@edbbart aa]$ /usr/edb/as11/bin/pg_ctl -D /var/tmp/aa/ start waiting for server to start....2018-11-10 13:57:29.027 CET - 1 - 14772 - - @ LOG: listening on IPv4 address "0.0.0.0", port 5433 2018-11-10 13:57:29.027 CET - 2 - 14772 - - @ LOG: listening on IPv6 address "::", port 5433 2018-11-10 13:57:29.034 CET - 3 - 14772 - - @ LOG: listening on Unix socket "/tmp/.s.PGSQL.5433" 2018-11-10 13:57:29.075 CET - 4 - 14772 - - @ LOG: redirecting log output to logging collector process 2018-11-10 13:57:29.075 CET - 5 - 14772 - - @ HINT: Future log output will appear in directory "pg_log". done server started [postgres@edbbart aa]$ /usr/edb/as11/bin/psql -p 5433 psql.bin (11.0.3, server 11.0.3) Type "help" for help. postgres=# q [postgres@edbbart aa]$ /usr/edb/as11/bin/pg_ctl -D /var/tmp/aa/ stop -m fast waiting for server to shut down....... done server stopped [postgres@edbbart aa]$
Good news: Even when not using pg_basebackup there is no lock-in because you can just combine the tar files and start up the instance.
Having a closer look at what is inside the base*.tar files:
[postgres@edbbart ~]$ rm -rf /var/tmp/aa [postgres@edbbart ~]$ mkdir /var/tmp/aa1 [postgres@edbbart ~]$ mkdir /var/tmp/aa2 [postgres@edbbart ~]$ cd /var/tmp/aa1 [postgres@edbbart aa1]$ tar -axf /u90/pg2/1541853901964/base-1.tar [postgres@edbbart aa1]$ cd ../aa2 [postgres@edbbart aa2]$ tar -axf /u90/pg2/1541853901964/base-2.tar [postgres@edbbart aa2]$ ls -la ../aa1 total 28 drwxrwxr-x. 15 postgres postgres 4096 Nov 10 14:09 . drwxrwxrwt. 6 root root 134 Nov 10 14:08 .. drwxrwxr-x. 6 postgres postgres 54 Nov 10 14:09 base -rw-------. 1 postgres postgres 33 Nov 10 13:45 current_logfiles drwxrwxr-x. 2 postgres postgres 4096 Nov 10 14:09 global -rw-------. 1 postgres postgres 25 Nov 10 13:45 __payloadChecksum drwx------. 2 postgres postgres 6 Nov 10 13:45 pg_commit_ts -rw-------. 1 postgres postgres 4653 Nov 10 13:45 pg_hba.conf drwx------. 2 postgres postgres 32 Nov 10 13:45 pg_log drwxrwxr-x. 4 postgres postgres 39 Nov 10 14:09 pg_logical drwxrwxr-x. 4 postgres postgres 36 Nov 10 14:09 pg_multixact drwx------. 2 postgres postgres 6 Nov 10 13:45 pg_notify drwx------. 2 postgres postgres 6 Nov 10 13:45 pg_replslot drwx------. 2 postgres postgres 6 Nov 10 13:45 pg_snapshots drwx------. 2 postgres postgres 52 Nov 10 13:45 pg_stat_tmp drwxrwxr-x. 2 postgres postgres 18 Nov 10 14:09 pg_subtrans drwx------. 2 postgres postgres 6 Nov 10 13:45 pg_twophase drwx------. 2 postgres postgres 6 Nov 10 13:45 pg_xact -rw-------. 1 postgres postgres 1184 Nov 10 13:45 postgresql.auto.conf [postgres@edbbart aa2]$ ls -la ../aa2 total 48 drwxrwxr-x. 16 postgres postgres 4096 Nov 10 14:09 . drwxrwxrwt. 6 root root 134 Nov 10 14:08 .. drwx------. 6 postgres postgres 54 Nov 10 13:45 base drwx------. 2 postgres postgres 4096 Nov 10 13:45 global -rw-------. 1 postgres postgres 25 Nov 10 13:45 __payloadChecksum drwx------. 2 postgres postgres 6 Nov 10 13:45 pg_dynshmem -rw-------. 1 postgres postgres 1636 Nov 10 13:45 pg_ident.conf drwxrwxr-x. 2 postgres postgres 32 Nov 10 14:09 pg_log drwx------. 2 postgres postgres 35 Nov 10 13:45 pg_logical drwx------. 4 postgres postgres 36 Nov 10 13:45 pg_multixact drwxrwxr-x. 2 postgres postgres 18 Nov 10 14:09 pg_notify drwx------. 2 postgres postgres 6 Nov 10 13:45 pg_serial drwx------. 2 postgres postgres 6 Nov 10 13:45 pg_stat drwxrwxr-x. 2 postgres postgres 42 Nov 10 14:09 pg_stat_tmp drwx------. 2 postgres postgres 6 Nov 10 13:45 pg_subtrans drwx------. 2 postgres postgres 6 Nov 10 13:45 pg_tblspc -rw-------. 1 postgres postgres 3 Nov 10 13:45 PG_VERSION drwx------. 2 postgres postgres 6 Nov 10 13:45 pg_wal drwxrwxr-x. 2 postgres postgres 18 Nov 10 14:09 pg_xact -rw-------. 1 postgres postgres 27807 Nov 10 13:45 postgresql.conf
The main benefit comes from splitting the data files of the databases ( $PGDATA/base/[OIDs]) into separat tar files:
[postgres@edbbart aa2]$ ls -la ../aa2/base total 36 drwx------. 6 postgres postgres 54 Nov 10 13:45 . drwxrwxr-x. 16 postgres postgres 4096 Nov 10 14:09 .. drwxrwxr-x. 2 postgres postgres 4096 Nov 10 14:09 1 drwxrwxr-x. 2 postgres postgres 4096 Nov 10 14:09 15709 drwx------. 2 postgres postgres 4096 Nov 10 13:45 15710 drwx------. 2 postgres postgres 4096 Nov 10 13:45 15711 [postgres@edbbart aa2]$ ls -la ../aa1/base total 36 drwxrwxr-x. 6 postgres postgres 54 Nov 10 14:09 . drwxrwxr-x. 15 postgres postgres 4096 Nov 10 14:09 .. drwx------. 2 postgres postgres 4096 Nov 10 13:45 1 drwx------. 2 postgres postgres 4096 Nov 10 13:45 15709 drwxrwxr-x. 2 postgres postgres 4096 Nov 10 14:09 15710 drwxrwxr-x. 2 postgres postgres 4096 Nov 10 14:09 15711 [postgres@edbbart aa2]$ ls -la ../aa1/base/15711 total 5828 drwxrwxr-x. 2 postgres postgres 4096 Nov 10 14:09 . drwxrwxr-x. 6 postgres postgres 54 Nov 10 14:09 .. -rw-------. 1 postgres postgres 16384 Nov 10 13:45 112 -rw-------. 1 postgres postgres 0 Nov 10 13:45 1220 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 1222 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 1227 -rw-------. 1 postgres postgres 139264 Nov 10 13:45 1247 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 1247_vm -rw-------. 1 postgres postgres 24576 Nov 10 13:45 1249_fsm -rw-------. 1 postgres postgres 1196032 Nov 10 13:45 1255 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 1255_vm -rw-------. 1 postgres postgres 24576 Nov 10 13:45 1259_fsm -rw-------. 1 postgres postgres 57344 Nov 10 13:45 13795 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 13795_vm -rw-------. 1 postgres postgres 8192 Nov 10 13:45 13799 -rw-------. 1 postgres postgres 24576 Nov 10 13:45 13800_fsm -rw-------. 1 postgres postgres 0 Nov 10 13:45 13802 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 13805 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 13805_vm -rw-------. 1 postgres postgres 8192 Nov 10 13:45 13809 -rw-------. 1 postgres postgres 24576 Nov 10 13:45 13810_fsm -rw-------. 1 postgres postgres 0 Nov 10 13:45 13812 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 13815 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 13815_vm -rw-------. 1 postgres postgres 8192 Nov 10 13:45 13819 -rw-------. 1 postgres postgres 24576 Nov 10 13:45 13820_fsm -rw-------. 1 postgres postgres 0 Nov 10 13:45 13822 -rw-------. 1 postgres postgres 0 Nov 10 13:45 13825 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 13829 -rw-------. 1 postgres postgres 24576 Nov 10 13:45 13956_fsm -rw-------. 1 postgres postgres 8192 Nov 10 13:45 13966 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 13966_vm -rw-------. 1 postgres postgres 0 Nov 10 13:45 1417_vm -rw-------. 1 postgres postgres 0 Nov 10 13:45 1418_vm -rw-------. 1 postgres postgres 0 Nov 10 13:45 14539 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 14542 -rw-------. 1 postgres postgres 0 Nov 10 13:45 14547 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 14550 -rw-------. 1 postgres postgres 0 Nov 10 13:45 14555 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 15609 -rw-------. 1 postgres postgres 0 Nov 10 13:45 15614 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 15617 -rw-------. 1 postgres postgres 0 Nov 10 13:45 15622 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 15625 -rw-------. 1 postgres postgres 0 Nov 10 13:45 15629 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 15632 -rw-------. 1 postgres postgres 0 Nov 10 13:45 15636 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 15639 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 15644 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 15649 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 15654 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 15659 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 15664 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 175 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 2224 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 2224_vm -rw-------. 1 postgres postgres 24576 Nov 10 13:45 2328_fsm -rw-------. 1 postgres postgres 0 Nov 10 13:45 2336 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 2337 -rw-------. 1 postgres postgres 16384 Nov 10 13:45 2600 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 2600_vm -rw-------. 1 postgres postgres 24576 Nov 10 13:45 2601_fsm -rw-------. 1 postgres postgres 57344 Nov 10 13:45 2602 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 2602_vm -rw-------. 1 postgres postgres 24576 Nov 10 13:45 2603_fsm -rw-------. 1 postgres postgres 8192 Nov 10 13:45 2604 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 2604_vm -rw-------. 1 postgres postgres 24576 Nov 10 13:45 2605_fsm -rw-------. 1 postgres postgres 8192 Nov 10 13:45 2606 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 2606_vm -rw-------. 1 postgres postgres 24576 Nov 10 13:45 2607_fsm -rw-------. 1 postgres postgres 663552 Nov 10 13:45 2608 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 2608_vm -rw-------. 1 postgres postgres 24576 Nov 10 13:45 2609_fsm -rw-------. 1 postgres postgres 40960 Nov 10 13:45 2610 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 2610_vm -rw-------. 1 postgres postgres 0 Nov 10 13:45 2611_vm -rw-------. 1 postgres postgres 24576 Nov 10 13:45 2612_fsm -rw-------. 1 postgres postgres 0 Nov 10 13:45 2613 -rw-------. 1 postgres postgres 49152 Nov 10 13:45 2615 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 2615_vm -rw-------. 1 postgres postgres 24576 Nov 10 13:45 2616_fsm -rw-------. 1 postgres postgres 122880 Nov 10 13:45 2617 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 2617_vm -rw-------. 1 postgres postgres 24576 Nov 10 13:45 2618_fsm -rw-------. 1 postgres postgres 163840 Nov 10 13:45 2619 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 2619_vm -rw-------. 1 postgres postgres 0 Nov 10 13:45 2620_vm -rw-------. 1 postgres postgres 16384 Nov 10 13:45 2651 -rw-------. 1 postgres postgres 40960 Nov 10 13:45 2653 -rw-------. 1 postgres postgres 32768 Nov 10 13:45 2655 -rw-------. 1 postgres postgres 16384 Nov 10 13:45 2657 -rw-------. 1 postgres postgres 139264 Nov 10 13:45 2659 -rw-------. 1 postgres postgres 16384 Nov 10 13:45 2661 -rw-------. 1 postgres postgres 65536 Nov 10 13:45 2663 -rw-------. 1 postgres postgres 16384 Nov 10 13:45 2665 -rw-------. 1 postgres postgres 16384 Nov 10 13:45 2667 -rw-------. 1 postgres postgres 16384 Nov 10 13:45 2669 -rw-------. 1 postgres postgres 524288 Nov 10 13:45 2673 -rw-------. 1 postgres postgres 196608 Nov 10 13:45 2675 -rw-------. 1 postgres postgres 16384 Nov 10 13:45 2679 -rw-------. 1 postgres postgres 16384 Nov 10 13:45 2681 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 2683 -rw-------. 1 postgres postgres 16384 Nov 10 13:45 2685 -rw-------. 1 postgres postgres 16384 Nov 10 13:45 2687 -rw-------. 1 postgres postgres 49152 Nov 10 13:45 2689 -rw-------. 1 postgres postgres 434176 Nov 10 13:45 2691 -rw-------. 1 postgres postgres 16384 Nov 10 13:45 2693 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 2699 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 2702 -rw-------. 1 postgres postgres 65536 Nov 10 13:45 2704 -rw-------. 1 postgres postgres 24576 Nov 10 13:45 2753_fsm -rw-------. 1 postgres postgres 16384 Nov 10 13:45 2754 -rw-------. 1 postgres postgres 32768 Nov 10 13:45 2756 -rw-------. 1 postgres postgres 0 Nov 10 13:45 2830 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 2831 -rw-------. 1 postgres postgres 0 Nov 10 13:45 2832_vm -rw-------. 1 postgres postgres 0 Nov 10 13:45 2834 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 2835 -rw-------. 1 postgres postgres 24576 Nov 10 13:45 2836_fsm -rw-------. 1 postgres postgres 16384 Nov 10 13:45 2837 -rw-------. 1 postgres postgres 24576 Nov 10 13:45 2838_fsm -rw-------. 1 postgres postgres 32768 Nov 10 13:45 2839 -rw-------. 1 postgres postgres 24576 Nov 10 13:45 2840_fsm -rw-------. 1 postgres postgres 16384 Nov 10 13:45 2841 -rw-------. 1 postgres postgres 0 Nov 10 13:45 2995_vm -rw-------. 1 postgres postgres 8192 Nov 10 13:45 3079 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 3079_vm -rw-------. 1 postgres postgres 16384 Nov 10 13:45 3081 -rw-------. 1 postgres postgres 0 Nov 10 13:45 3118 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 3119 -rw-------. 1 postgres postgres 0 Nov 10 13:45 3256 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 3257 -rw-------. 1 postgres postgres 0 Nov 10 13:45 3350 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 3351 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 3380 -rw-------. 1 postgres postgres 0 Nov 10 13:45 3381_vm -rw-------. 1 postgres postgres 24576 Nov 10 13:45 3394_fsm -rw-------. 1 postgres postgres 16384 Nov 10 13:45 3395 -rw-------. 1 postgres postgres 0 Nov 10 13:45 3439_vm -rw-------. 1 postgres postgres 49152 Nov 10 13:45 3455 -rw-------. 1 postgres postgres 24576 Nov 10 13:45 3456_fsm -rw-------. 1 postgres postgres 0 Nov 10 13:45 3466 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 3467 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 3501 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 3501_vm -rw-------. 1 postgres postgres 16384 Nov 10 13:45 3503 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 3541 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 3541_vm -rw-------. 1 postgres postgres 8192 Nov 10 13:45 3574 -rw-------. 1 postgres postgres 0 Nov 10 13:45 3576 -rw-------. 1 postgres postgres 0 Nov 10 13:45 3596 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 3597 -rw-------. 1 postgres postgres 0 Nov 10 13:45 3598_vm -rw-------. 1 postgres postgres 8192 Nov 10 13:45 3600 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 3600_vm -rw-------. 1 postgres postgres 24576 Nov 10 13:45 3601_fsm -rw-------. 1 postgres postgres 8192 Nov 10 13:45 3602 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 3602_vm -rw-------. 1 postgres postgres 24576 Nov 10 13:45 3603_fsm -rw-------. 1 postgres postgres 16384 Nov 10 13:45 3604 -rw-------. 1 postgres postgres 16384 Nov 10 13:45 3606 -rw-------. 1 postgres postgres 16384 Nov 10 13:45 3608 -rw-------. 1 postgres postgres 16384 Nov 10 13:45 3712 -rw-------. 1 postgres postgres 24576 Nov 10 13:45 3764_fsm -rw-------. 1 postgres postgres 16384 Nov 10 13:45 3766 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 3997 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 4943 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 4951 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 4953 -rw-------. 1 postgres postgres 16384 Nov 10 13:45 5002 -rw-------. 1 postgres postgres 16384 Nov 10 13:45 548 -rw-------. 1 postgres postgres 0 Nov 10 13:45 6102 -rw-------. 1 postgres postgres 0 Nov 10 13:45 6104 -rw-------. 1 postgres postgres 0 Nov 10 13:45 6106 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 6110 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 6112 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 6117 -rw-------. 1 postgres postgres 0 Nov 10 13:45 7200_vm -rw-------. 1 postgres postgres 0 Nov 10 13:45 826 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 827 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 8889 -rw-------. 1 postgres postgres 24576 Nov 10 13:45 8890_fsm -rw-------. 1 postgres postgres 16384 Nov 10 13:45 8891 -rw-------. 1 postgres postgres 24576 Nov 10 13:45 8895_fsm -rw-------. 1 postgres postgres 0 Nov 10 13:45 8896 -rw-------. 1 postgres postgres 0 Nov 10 13:45 8899 -rw-------. 1 postgres postgres 0 Nov 10 13:45 8900 -rw-------. 1 postgres postgres 0 Nov 10 13:45 9970 -rw-------. 1 postgres postgres 0 Nov 10 13:45 9971 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 9972 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 9972_vm -rw-------. 1 postgres postgres 24576 Nov 10 13:45 9973_fsm -rw-------. 1 postgres postgres 16384 Nov 10 13:45 9984 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 9986 -rw-------. 1 postgres postgres 0 Nov 10 13:45 9988 -rw-------. 1 postgres postgres 16384 Nov 10 13:45 9991 -rw-------. 1 postgres postgres 16384 Nov 10 13:45 9993 -rw-------. 1 postgres postgres 16384 Nov 10 13:45 9995 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 9997 -rw-------. 1 postgres postgres 3 Nov 10 13:45 PG_VERSION [postgres@edbbart aa2]$ ls -la ../aa2/base/15711 total 6028 drwx------. 2 postgres postgres 4096 Nov 10 13:45 . drwx------. 6 postgres postgres 54 Nov 10 13:45 .. -rw-------. 1 postgres postgres 8192 Nov 10 13:45 113 -rw-------. 1 postgres postgres 0 Nov 10 13:45 1221 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 1226 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 1228 -rw-------. 1 postgres postgres 24576 Nov 10 13:45 1247_fsm -rw-------. 1 postgres postgres 761856 Nov 10 13:45 1249 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 1249_vm -rw-------. 1 postgres postgres 24576 Nov 10 13:45 1255_fsm -rw-------. 1 postgres postgres 139264 Nov 10 13:45 1259 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 1259_vm -rw-------. 1 postgres postgres 24576 Nov 10 13:45 13795_fsm -rw-------. 1 postgres postgres 0 Nov 10 13:45 13797 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 13800 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 13800_vm -rw-------. 1 postgres postgres 8192 Nov 10 13:45 13804 -rw-------. 1 postgres postgres 24576 Nov 10 13:45 13805_fsm -rw-------. 1 postgres postgres 0 Nov 10 13:45 13807 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 13810 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 13810_vm -rw-------. 1 postgres postgres 8192 Nov 10 13:45 13814 -rw-------. 1 postgres postgres 24576 Nov 10 13:45 13815_fsm -rw-------. 1 postgres postgres 0 Nov 10 13:45 13817 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 13820 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 13820_vm -rw-------. 1 postgres postgres 8192 Nov 10 13:45 13824 -rw-------. 1 postgres postgres 0 Nov 10 13:45 13827 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 13956 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 13956_vm -rw-------. 1 postgres postgres 24576 Nov 10 13:45 13966_fsm -rw-------. 1 postgres postgres 0 Nov 10 13:45 1417 -rw-------. 1 postgres postgres 0 Nov 10 13:45 1418 -rw-------. 1 postgres postgres 0 Nov 10 13:45 14536 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 14541 -rw-------. 1 postgres postgres 0 Nov 10 13:45 14544 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 14549 -rw-------. 1 postgres postgres 0 Nov 10 13:45 14552 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 14557 -rw-------. 1 postgres postgres 0 Nov 10 13:45 15611 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 15616 -rw-------. 1 postgres postgres 0 Nov 10 13:45 15619 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 15624 -rw-------. 1 postgres postgres 0 Nov 10 13:45 15626 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 15631 -rw-------. 1 postgres postgres 0 Nov 10 13:45 15633 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 15638 -rw-------. 1 postgres postgres 0 Nov 10 13:45 15641 -rw-------. 1 postgres postgres 0 Nov 10 13:45 15646 -rw-------. 1 postgres postgres 0 Nov 10 13:45 15651 -rw-------. 1 postgres postgres 0 Nov 10 13:45 15656 -rw-------. 1 postgres postgres 0 Nov 10 13:45 15661 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 174 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 2187 -rw-------. 1 postgres postgres 24576 Nov 10 13:45 2224_fsm -rw-------. 1 postgres postgres 8192 Nov 10 13:45 2328 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 2328_vm -rw-------. 1 postgres postgres 0 Nov 10 13:45 2336_vm -rw-------. 1 postgres postgres 16384 Nov 10 13:45 2579 -rw-------. 1 postgres postgres 24576 Nov 10 13:45 2600_fsm -rw-------. 1 postgres postgres 8192 Nov 10 13:45 2601 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 2601_vm -rw-------. 1 postgres postgres 24576 Nov 10 13:45 2602_fsm -rw-------. 1 postgres postgres 32768 Nov 10 13:45 2603 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 2603_vm -rw-------. 1 postgres postgres 24576 Nov 10 13:45 2604_fsm -rw-------. 1 postgres postgres 16384 Nov 10 13:45 2605 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 2605_vm -rw-------. 1 postgres postgres 24576 Nov 10 13:45 2606_fsm -rw-------. 1 postgres postgres 24576 Nov 10 13:45 2607 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 2607_vm -rw-------. 1 postgres postgres 24576 Nov 10 13:45 2608_fsm -rw-------. 1 postgres postgres 360448 Nov 10 13:45 2609 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 2609_vm -rw-------. 1 postgres postgres 24576 Nov 10 13:45 2610_fsm -rw-------. 1 postgres postgres 0 Nov 10 13:45 2611 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 2612 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 2612_vm -rw-------. 1 postgres postgres 0 Nov 10 13:45 2613_vm -rw-------. 1 postgres postgres 24576 Nov 10 13:45 2615_fsm -rw-------. 1 postgres postgres 24576 Nov 10 13:45 2616 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 2616_vm -rw-------. 1 postgres postgres 24576 Nov 10 13:45 2617_fsm -rw-------. 1 postgres postgres 172032 Nov 10 13:45 2618 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 2618_vm -rw-------. 1 postgres postgres 24576 Nov 10 13:45 2619_fsm -rw-------. 1 postgres postgres 0 Nov 10 13:45 2620 -rw-------. 1 postgres postgres 16384 Nov 10 13:45 2650 -rw-------. 1 postgres postgres 16384 Nov 10 13:45 2652 -rw-------. 1 postgres postgres 40960 Nov 10 13:45 2654 -rw-------. 1 postgres postgres 16384 Nov 10 13:45 2656 -rw-------. 1 postgres postgres 204800 Nov 10 13:45 2658 -rw-------. 1 postgres postgres 16384 Nov 10 13:45 2660 -rw-------. 1 postgres postgres 32768 Nov 10 13:45 2662 -rw-------. 1 postgres postgres 16384 Nov 10 13:45 2664 -rw-------. 1 postgres postgres 16384 Nov 10 13:45 2666 -rw-------. 1 postgres postgres 16384 Nov 10 13:45 2668 -rw-------. 1 postgres postgres 16384 Nov 10 13:45 2670 -rw-------. 1 postgres postgres 557056 Nov 10 13:45 2674 -rw-------. 1 postgres postgres 16384 Nov 10 13:45 2678 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 2680 -rw-------. 1 postgres postgres 16384 Nov 10 13:45 2682 -rw-------. 1 postgres postgres 16384 Nov 10 13:45 2684 -rw-------. 1 postgres postgres 16384 Nov 10 13:45 2686 -rw-------. 1 postgres postgres 40960 Nov 10 13:45 2688 -rw-------. 1 postgres postgres 114688 Nov 10 13:45 2690 -rw-------. 1 postgres postgres 16384 Nov 10 13:45 2692 -rw-------. 1 postgres postgres 32768 Nov 10 13:45 2696 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 2701 -rw-------. 1 postgres postgres 40960 Nov 10 13:45 2703 -rw-------. 1 postgres postgres 16384 Nov 10 13:45 2753 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 2753_vm -rw-------. 1 postgres postgres 16384 Nov 10 13:45 2755 -rw-------. 1 postgres postgres 32768 Nov 10 13:45 2757 -rw-------. 1 postgres postgres 0 Nov 10 13:45 2830_vm -rw-------. 1 postgres postgres 0 Nov 10 13:45 2832 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 2833 -rw-------. 1 postgres postgres 0 Nov 10 13:45 2834_vm -rw-------. 1 postgres postgres 32768 Nov 10 13:45 2836 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 2836_vm -rw-------. 1 postgres postgres 1040384 Nov 10 13:45 2838 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 2838_vm -rw-------. 1 postgres postgres 49152 Nov 10 13:45 2840 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 2840_vm -rw-------. 1 postgres postgres 0 Nov 10 13:45 2995 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 2996 -rw-------. 1 postgres postgres 24576 Nov 10 13:45 3079_fsm -rw-------. 1 postgres postgres 16384 Nov 10 13:45 3080 -rw-------. 1 postgres postgres 57344 Nov 10 13:45 3085 -rw-------. 1 postgres postgres 0 Nov 10 13:45 3118_vm -rw-------. 1 postgres postgres 90112 Nov 10 13:45 3164 -rw-------. 1 postgres postgres 0 Nov 10 13:45 3256_vm -rw-------. 1 postgres postgres 8192 Nov 10 13:45 3258 -rw-------. 1 postgres postgres 0 Nov 10 13:45 3350_vm -rw-------. 1 postgres postgres 8192 Nov 10 13:45 3379 -rw-------. 1 postgres postgres 0 Nov 10 13:45 3381 -rw-------. 1 postgres postgres 16384 Nov 10 13:45 3394 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 3394_vm -rw-------. 1 postgres postgres 0 Nov 10 13:45 3439 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 3440 -rw-------. 1 postgres postgres 507904 Nov 10 13:45 3456 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 3456_vm -rw-------. 1 postgres postgres 0 Nov 10 13:45 3466_vm -rw-------. 1 postgres postgres 8192 Nov 10 13:45 3468 -rw-------. 1 postgres postgres 24576 Nov 10 13:45 3501_fsm -rw-------. 1 postgres postgres 16384 Nov 10 13:45 3502 -rw-------. 1 postgres postgres 16384 Nov 10 13:45 3534 -rw-------. 1 postgres postgres 24576 Nov 10 13:45 3541_fsm -rw-------. 1 postgres postgres 16384 Nov 10 13:45 3542 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 3575 -rw-------. 1 postgres postgres 0 Nov 10 13:45 3576_vm -rw-------. 1 postgres postgres 0 Nov 10 13:45 3596_vm -rw-------. 1 postgres postgres 0 Nov 10 13:45 3598 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 3599 -rw-------. 1 postgres postgres 24576 Nov 10 13:45 3600_fsm -rw-------. 1 postgres postgres 8192 Nov 10 13:45 3601 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 3601_vm -rw-------. 1 postgres postgres 24576 Nov 10 13:45 3602_fsm -rw-------. 1 postgres postgres 16384 Nov 10 13:45 3603 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 3603_vm -rw-------. 1 postgres postgres 16384 Nov 10 13:45 3605 -rw-------. 1 postgres postgres 16384 Nov 10 13:45 3607 -rw-------. 1 postgres postgres 32768 Nov 10 13:45 3609 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 3764 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 3764_vm -rw-------. 1 postgres postgres 16384 Nov 10 13:45 3767 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 4942 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 4950 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 4952 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 4954 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 5007 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 549 -rw-------. 1 postgres postgres 0 Nov 10 13:45 6102_vm -rw-------. 1 postgres postgres 0 Nov 10 13:45 6104_vm -rw-------. 1 postgres postgres 0 Nov 10 13:45 6106_vm -rw-------. 1 postgres postgres 8192 Nov 10 13:45 6111 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 6113 -rw-------. 1 postgres postgres 0 Nov 10 13:45 7200 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 7201 -rw-------. 1 postgres postgres 0 Nov 10 13:45 826_vm -rw-------. 1 postgres postgres 8192 Nov 10 13:45 828 -rw-------. 1 postgres postgres 49152 Nov 10 13:45 8890 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 8890_vm -rw-------. 1 postgres postgres 32768 Nov 10 13:45 8895 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 8895_vm -rw-------. 1 postgres postgres 0 Nov 10 13:45 8896_vm -rw-------. 1 postgres postgres 0 Nov 10 13:45 8899_vm -rw-------. 1 postgres postgres 0 Nov 10 13:45 8900_vm -rw-------. 1 postgres postgres 0 Nov 10 13:45 9970_vm -rw-------. 1 postgres postgres 0 Nov 10 13:45 9971_vm -rw-------. 1 postgres postgres 24576 Nov 10 13:45 9972_fsm -rw-------. 1 postgres postgres 8192 Nov 10 13:45 9973 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 9973_vm -rw-------. 1 postgres postgres 32768 Nov 10 13:45 9985 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 9987 -rw-------. 1 postgres postgres 0 Nov 10 13:45 9988_vm -rw-------. 1 postgres postgres 16384 Nov 10 13:45 9992 -rw-------. 1 postgres postgres 16384 Nov 10 13:45 9994 -rw-------. 1 postgres postgres 16384 Nov 10 13:45 9996 -rw-------. 1 postgres postgres 8192 Nov 10 13:45 9998 -rw-------. 1 postgres postgres 512 Nov 10 13:45 pg_filenode.map
When you reduce the “thread_count” to 1 you will get a normal pg_basebackup:
[postgres@edbbart aa2]$ cat /usr/edb/bart/etc/bart.cfg [BART] bart_host = postgres@edbbart backup_path = /u90 pg_basebackup_path = /usr/edb/as11/bin/pg_basebackup xlog_method = stream retention_policy= 2 DAYS logfile = /tmp/bart.log scanner_logfile = /tmp/scanner.log thread_count = 2 [PG2] backup_name = PG2_%year-%month-%dayT%hour:%minute host = 192.168.22.60 user = bart port = 5433 cluster_owner = postgres remote_host = [email protected] allow_incremental_backups = enabled thread_count = 1 description = PG1 backuos [postgres@edbbart aa2]$ bart backup -s PG2 INFO: DebugTarget - getVar(checkDiskSpace.bytesAvailable) INFO: creating full backup using pg_basebackup for server 'pg2' INFO: creating backup for server 'pg2' INFO: backup identifier: '1541856034356' INFO: backup completed successfully INFO: BART VERSION: 2.2.0 BACKUP DETAILS: BACKUP STATUS: active BACKUP IDENTIFIER: 1541856034356 BACKUP NAME: PG2_2018-11-10T14:20 BACKUP PARENT: none BACKUP LOCATION: /u90/pg2/1541856034356 BACKUP SIZE: 64.68 MB BACKUP FORMAT: tar BACKUP TIMEZONE: Europe/Zurich XLOG METHOD: stream BACKUP CHECKSUM(s): 0 TABLESPACE(s): 0 START WAL LOCATION: 000000010000000000000008 BACKUP METHOD: streamed BACKUP FROM: master START TIME: 2018-11-01 16:14:57 CET STOP TIME: 2018-11-10 14:20:34 CET TOTAL DURATION: 214.094 hour(s)
In the next post we’ll look at how we can do parallel incremental restores.