Skip to content

Instantly share code, notes, and snippets.

@ianchen06
Created July 21, 2016 10:54
Show Gist options
  • Save ianchen06/76303e16d3fabbfe3ec45d50bbbe44c5 to your computer and use it in GitHub Desktop.
Save ianchen06/76303e16d3fabbfe3ec45d50bbbe44c5 to your computer and use it in GitHub Desktop.
Postgresql 9.5 stream replication master slave
#install postgresql 9.5
#==========================================
sudo vim /etc/apt/sources.list.d/postgresql.list
deb http://apt.postgresql.org/pub/repos/apt/ trusty-pgdg main 9.5
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get install postgresql-9.5
#PostgreSQL Replication
#1. switch user to psotgreSQL
sudo su - postgres
#2. Create replicator
psql -c "CREATE USER replicator REPLICATION LOGIN ENCRYPTED PASSWORD '284gj4bj03wu#';" -d infominerdb
#3. vi postgresql.conf
vi /etc/postgresql/9.5/main/postgresql.conf
wal_level = hot_standby
max_wal_senders = 3
checkpoint_segments = 8
wal_keep_segments = 8
#4. Setting up connection
vi /etc/postgresql/9.5/main/pg_hba.conf
hostssl replication replicator 172.31.46.219/32 md5
/usr/lib/postgresql/9.5/bin/pg_ctl -D ./ reload
#5. vi postgresql.conf
vi /etc/postgresql/9.5/main/postgresql.conf
wal_level = hot_standby
max_wal_senders = 3
#checkpoint_segments = 8
min_wal_size = 80MB
max_wal_size = 384MB
wal_keep_segments = 8
hot_standby = on
#6. vi /etc/hosts
172.31.46.219 master
echo Stopping PostgreSQL
service postgresql stop
echo Cleaning up old cluster directory
rm -rf /var/lib/postgresql/9.5/main
echo Starting base backup as replicator
pg_basebackup -h master -D /var/lib/postgresql/9.5/main -U replicator -v -P
echo Writing recovery.conf file
bash -c "cat > /var/lib/postgresql/9.5/main/recovery.conf <<- _EOF1_
standby_mode = 'on'
primary_conninfo = 'host=master port=5432 user=replicator password=284gj4bj03wu# sslmode=require'
trigger_file = '/tmp/postgresql.trigger'
_EOF1_
"
echo Startging PostgreSQL
service postgresql start
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment