1. Buat Folder data PITR dan
archive PITR
# mkdir datapitr &
archivepitr
2. Rubah owner menjadi postgres
#chown -R postgres.postgres
datapitr & archivepitr
3. Initdb datapitr di user
postgres
# /usr/pgsql-9.3/bin/initdb –D
/var/lib/datapitr
# /usr/pgsql-9.5/bin/pg_ctl -D
/var/lib/datapitr initdb
4. Edit postgres.conf di datapitr
# vim
/var/lib/datapitr/postgres.conf
>
wal_level = hot_standby
>
max_wal_sender = 10
>
archive_mode = on
>
archive_command = ‘test ! -f /var/lib/archivepitr/%f && cp %p
/var/lib/archivepitr/%f’
>
archive_command = 'rsync -avz /var/lib/pgsql/9.6/data/pg_xlog/%f
postgres2@192.168.4.32:/data/pitr/dbcnn-dev/archive/%f'
> archive_timeout = 20 *
5. Buka replikasi localhost di
pg_hba.conf
#vim /var/lib/datapitr/pg_hba.conf
>
host replication postgres 127.0.0.1/32 trust
6. Start PITR diuser postgres
# usr/pgsql-9.5/bin/pg_ctl -D
/var/lib/datapitr start
7. Buat triger untuk start, stop,
restart
#vim /home/triger
>
#!/bin/bash
>
su - postgres -c "/usr/pgsql-9.5/bin/pg_ctl -D /var/lib/PITR2/ $1"
8. Login psql dan buat database
beserta isinya
# psql -Upostgres -h127.0.0.1
>
create database dede;
>
\c dede
>
create table testing (id int);
>
insert into testing values (1);
>
insert into testing select * from testing
9. Cek archivepitr, data di
archivepitr harus sudah ada
10. Buat kembali directory
datapitr2 dan archivepitr2
# mkdir /var/lib/datapitr2 &
archivepitr2
11. Rubah owner datapirt2 &
archivepitr2 menjadi postgres
# chown -R postgres.postgres
datapitr2 & archivepitr2
12. Jalankan Basebackup diuser
postgres
#
/usr/pgsql-9.5/bin/pg_basebackup -D /var/lib/datapitr2 -p 5432 *
# /usr/pgsql-9.3/bin/pg_basebackup
-Upostgres -h127.0.0.1 -D /var/lib/datapitr2 -p 5432
13. Setelah basebackup coba
insert data lagi seperti diatas, agar ada perubahan, perubahan yang telah
dilakukan seharusnya akan ada nanti setelah recovery
Cek dlu service pgsql yang sedang
running
14. Stop postgresq datapitr
jalankan diuser postgres (yg lagi running/ service master)
15. Edit postgres.conf di
datapitr2
# vim
/var/lib/datapitr2/postgres.conf
>
archive_mode = on
>archive_command
= ‘test ! -f /var/lib/archivepitr2/%f && cp %p /var/lib/archivepitr2/%f’
Masuk user postgres
Vim recovery.conf
Chmod –R 700 /var/lib/datapitr2
Chown –R postgres
/var/lib/datapitr2
16. Buat recovery.conf di
datapitr2
# vim
/var/lib/datapitr2/recovery.conf
>
recovery_target_time = ‘2017-04-06 14:06:00’ ← lihat jamnya di backuplabel di
datapitr2
>
restore_command = ‘cp /var/lib/archivepitr/%f %p’
*copynya dilocal aja
17. Start datapitr2 jalankan
diuser postgres
# usr/pgsql-9.5/bin/pg_ctl -D
/var/lib/datapitr2 start
18. Masuk ke psql dan lihat
jumlah datanya, jumlah datanya harus sesua dengan trakhir update setelah
basebackup
cd /var/lib/datapitr2/pg_log
tail -100 postgresql-Mon.log
19. Pg_basebackup berhasil jika
datanya telah sama dari pg_basebckup dan setelah diinsert lagi. Dan di pg_xlog
ada file seperti 0000.backup
JANGAN HAPUS BAKCUP_LABEL
*setiap ngedit postgresql.conf dan pg_hba.conf harus
dibackup terlebih dahulu
Untuk accept rsync :
Enable password di ssh
Create user di server yang dingin diakses
#useradd postgres
#passwd postgres
New password :
Server untuk memberikan hak akses
Masuk ke user postgres di server asal
Su - postgres
#ssh-keygen -t rsa
#ssh-copy-id postgres@192.168.4.32
#ssh-copy-id userclient@ipaddclient
#vim /opt/script/basebackup.sh
#!/bin/bash
day=$(date --date 'today' +"%Y%m%d")
/usr/pgsql-9.3/bin/pg_basebackup -Upostgres -h127.0.0.1 -D -
-Ft| bzip2 >
/var/lib/pgsql/basebackup/basebackup_$day.bz2
sleep 3
scp /var/lib/pgsql/basebackup/basebackup_$day.bz2
root@192.168.4.31:/data/basebackup/basebackup_ratingklasemen/
sleep 3
rm -rf /var/lib/pgsql/basebackup/basebackup_$day.bz2
#crontab –e
#basebackup
00 02 1,11,21 * * /bin/sh /opt/script/basebackup
/usr/pgsql-9.3/bin/pg_ctl -D /var/lib/pgsql/basebackupnew
Persiapan backup
1.
Copy Archivedir dari server storage ke server
baru
2.
Copy Basebackup dari server storage ke server
baru
3.
Recovery.conf ( pastikan folder direct ke local tempat
menyimpan data archive)
4.
Masuk ke ip public
5.
Replace ip local di server baru menggunakan ip
lama
Setting multi service di centos
#cd /etc/systemd/system/multi-user.target.wants
#vim postgresql-9.3.service
Ubah pathnya semula Environment=PGDATA=/var/lib/pgsql/9.3/data/
menjadi path yang sudah dikonfigurasi
Comments
Post a Comment