Advertisement
Guest User

Untitled

a guest
Oct 16th, 2016
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.41 KB | None | 0 0
  1. Compose file:
  2.  
  3. ```yaml
  4. version: '2'
  5. services:
  6. pg1:
  7. container_name: pg1
  8. image: postgres:9.6.0
  9. volumes:
  10. - ./pg1-data:/var/lib/postgresql/data
  11. - ./pg_hba.conf:/var/lib/postgresql/data/pg_hba.conf
  12. - ./postgresql.conf:/var/lib/postgresql/data/postgresql.conf
  13. environment:
  14. POSTGRES_USER: user
  15. POSTGRES_PASSWORD: passw0rd
  16. pg2:
  17. container_name: pg2
  18. image: postgres:9.6.0
  19. volumes:
  20. - ./pg2-data:/var/lib/postgresql/data
  21. - ./pg_hba.conf:/var/lib/postgresql/data/pg_hba.conf
  22. - ./postgresql.conf:/var/lib/postgresql/data/postgresql.conf
  23. - ./recovery.conf.pg2_standby:/var/lib/postgresql/data/recovery.conf
  24. environment:
  25. POSTGRES_USER: user
  26. POSTGRES_PASSWORD: passw0rd
  27. ```
  28.  
  29. * Make sure nothing exists already: `docker-compose down -v`
  30. * Comment out all but first volume in both pg1 and pg2
  31. * Create DB data directory for db1 (not necessary if you have a DB already): `docker-compose run --rm pg1`
  32. * Start pg1: `docker-compose up -d pg1`
  33. * Backup DB to pg2: `docker-compose run --rm pg2 gosu postgres pg_basebackup -h pg1 -D /var/lib/postgresql/data -U user -v -P`
  34. * Start pg2: `docker-compose up -d pg2`
  35.  
  36. `pg2` should now be hot-standby for pg1.
  37. * Verify:
  38. ```
  39. # Create table on pg1
  40. docker exec pg1 gosu postgres psql user -c 'create table foop (x text)'
  41.  
  42. # List tables on pg2
  43. docker exec pg2 gosu postgres psql user -c '\d'
  44. ```
  45.  
  46. ## Creation
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement