title: restore from pg_basebackup
body: <p>I made daily backups of a postgresql DB using the command</p>
  
  <pre><code>/usr/bin/pg_basebackup -D $outdir -Ft -x -z -w -R -v
  </code></pre>
  
  <p>Now I want to restore this DB on another server. I used the description on <a href="https://www.postgresql.org/docs/9.5/static/continuous-archiving.html#BACKUP-PITR-RECOVERY" rel="nofollow noreferrer">https://www.postgresql.org/docs/9.5/static/continuous-archiving.html#BACKUP-PITR-RECOVERY</a>. </p>
  
  <p>The <code>recovery.conf</code> file included in the backup has the following contents:</p>
  
  <pre><code>standby_mode = 'on'
  primary_conninfo = 'user=postgres port=5432 sslmode=prefer sslcompression=1 krbsrvname=postgres'
  </code></pre>
  
  <p>The next step (8.) in the documentation says to start postgresql. This results in a failure due to a timeout:</p>
  
  <pre><code>3783 postgres: startup process   waiting for 0000000100000024000000B 
  </code></pre>
  
  <p>On the original server I don't have this file. Is it possible to restore only the state of the pg_basebackup without using any WAL files? What should then be in the recovery.conf file?</p>
  
  <p>Following the suggestion by @JosMac I moved the recovery.conf with this result:</p>
  
  <pre><code>shaun2:/var/lib/pgsql/data # service postgresql start
  Job for postgresql.service failed because the control process exited with error code. See "systemctl status postgresql.service" and "journalctl -xe" for details.
  shaun2:/var/lib/pgsql/data # service postgresql status
  â postgresql.service - PostgreSQL database server
     Loaded: loaded (/usr/lib/systemd/system/postgresql.service; enabled; vendor preset: disabled)
     Active: failed (Result: exit-code) since Mon 2018-06-18 12:02:53 CEST; 12s ago
    Process: 1340 ExecStop=/usr/lib/postgresql-init stop (code=exited, status=0/SUCCESS)
    Process: 9355 ExecStart=/usr/lib/postgresql-init start (code=exited, status=1/FAILURE)
   Main PID: 1060 (code=exited, status=0/SUCCESS)
  
  Jun 18 12:02:52 shaun2 postgres[9369]: [3-1] 2018-06-18 12:02:52 CEST   LOG:  invalid checkpoint record
  Jun 18 12:02:52 shaun2 postgres[9369]: [4-1] 2018-06-18 12:02:52 CEST   FATAL:  could not locate required checkpoint record
  Jun 18 12:02:52 shaun2 postgres[9369]: [4-2] 2018-06-18 12:02:52 CEST   HINT:  If you are not restoring from a backup, try removing the file "/var/lib/pgsql/data/backup_label".
  Jun 18 12:02:52 shaun2 postgres[9367]: [2-1] 2018-06-18 12:02:52 CEST   LOG:  startup process (PID 9369) exited with exit code 1
  Jun 18 12:02:52 shaun2 postgres[9367]: [3-1] 2018-06-18 12:02:52 CEST   LOG:  aborting startup due to startup process failure
  Jun 18 12:02:53 shaun2 postgresql-init[9355]: pg_ctl: could not start server
  Jun 18 12:02:53 shaun2 systemd[1]: postgresql.service: Control process exited, code=exited status=1
  Jun 18 12:02:53 shaun2 systemd[1]: Failed to start PostgreSQL database server.
  Jun 18 12:02:53 shaun2 systemd[1]: postgresql.service: Unit entered failed state.
  Jun 18 12:02:53 shaun2 systemd[1]: postgresql.service: Failed with result 'exit-code'.
  </code></pre>
  
  <p>I suppose that PostgreSQL is still looking for the missing WAL file because of the contents of <code>backup_label</code>:</p>
  
  <pre><code>shaun2:/var/lib/pgsql/data # cat backup_label
  START WAL LOCATION: 24/B0000028 (file 0000000100000024000000B0)
  CHECKPOINT LOCATION: 24/B0000028
  BACKUP METHOD: streamed
  BACKUP FROM: master
  START TIME: 2018-06-14 02:55:08 CEST
  LABEL: pg_basebackup base backup
  </code></pre>
  
  <p>Result after moving backup_label away:</p>
  
  <pre><code>shaun2:/var/lib/pgsql/data # service postgresql status
  â postgresql.service - PostgreSQL database server
     Loaded: loaded (/usr/lib/systemd/system/postgresql.service; enabled; vendor preset: disabled)
     Active: failed (Result: exit-code) since Mon 2018-06-18 12:17:54 CEST; 4s ago
    Process: 1340 ExecStop=/usr/lib/postgresql-init stop (code=exited, status=0/SUCCESS)
    Process: 10401 ExecStart=/usr/lib/postgresql-init start (code=exited, status=1/FAILURE)
   Main PID: 1060 (code=exited, status=0/SUCCESS)
  
  Jun 18 12:17:53 shaun2 postgres[10414]: [4-1] 2018-06-18 12:17:53 CEST   LOG:  invalid secondary checkpoint record
  Jun 18 12:17:53 shaun2 postgres[10414]: [5-1] 2018-06-18 12:17:53 CEST   PANIC:  could not locate a valid checkpoint record
  Jun 18 12:17:54 shaun2 postgres[10412]: [2-1] 2018-06-18 12:17:54 CEST   LOG:  startup process (PID 10414) was terminated by signal 6: Aborted
  </code></pre>