Skip to main content

Point in time recovery pada Postgresql di Centos 7


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

Popular posts from this blog

Ketika Ruang Guru Lebih Booming Dari Rumah Belajar Kemendikbud

Ketika Ruang Guru Lebih Booming Dari Rumah Belajar Kemendikbud Beberapa minggu lalu gw buka twitter dan baca-baca timeline. Tak sengaja gw melihat ada seseorang yang membuat sebuah thread yang membahas mengenai keluh kesah mengenai trend bimbel online  berbayar lebih booming dibanding platform belajar gratis yang di buat oleh kemendikbud. Daripada gw jelasin panjang lebar berikut dibawah ini beberapa potongan twit dari orang tersebut. ku mau cerita dikit nihh boleh ya? bapak aku adlh salah satu pegawai di kemdikbud. pagi ini dia ngeliat iklan bimbel online di tv, lalu dia ngomong "kok bimbel online berbayar booming banget ya? padahal papa dan temen2 udah bikin platform belajar gratis loh buat anak2 Indonesia" — nyugu (@nyuguseiyo) January 27, 2019 Kalau dilihat dari potongan twit diatas, si penulis ini adalah seorang anak yang orang tuanya bekerja di kemendikbud. Dimana adanya perbincangan ringan antara orang tua dan seorang anak yang membahas tayangan televi

Percona Xtradb Cluster and Proxysql

  Percona Xtradb Cluster and Proxysql 192.168.2.78 dbnode1.db   node1 192.168.2.233 dbnode2.db node2 192.168.2.167 dbnode3.db node3 192.168.2.232 dbnode4.db proxysql Percona xtradb cluster 8 ProxySQL version 2.5.4-percona-1.1 Install percona xtradb cluster 8 in node1, node2, node3 # yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm # percona-release enable-only pxc-80 release # percona-release enable tools release # yum module disable mysql -y # yum install percona-xtradb-cluster Then, start service mysql in node1, node2 and node3 # service mysql start Find temporary password in mysqld.log # grep 'temporary password' /var/log/mysqld.log Login mysql with temporary password # mysql -u root -p After login, you must reset root password with your own password. MySQL> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Percona@pxc8'; Then, Verify wsrep parameters in the database. MySQL> show variables like '%wsrep%'; Before conf

PT. Swadharma Sarana Informatika

Pada tulisan ini saya akan menuliskan sebuah profil perusahaan untuk memenuhi tugas matakuliah softskill Pengantar Bisnis Informatika. Profil perusahaan yang akan saya bahas adalah PT. Swadharma Sarana Informatika. Kemudian, saya mendapatkan informasi mengenai perusahaan tersebut dari teman lama saya yang bekerja diperusahaan tersebut melalui pesan facebook dan website perusahaan.             Berikut ini adalah profil dari   perusahaan tersebut yang saya kutip dari website resminya. Perjalanan PT. Swadharma Sarana Informatika dimulai pada tahun 1996, dan kehadirannya dimaksudkan untuk memberikan dukungan pelanyanan prima dalam pengelolaan sarana teknologi komputer. Dalam perkembangannya PT. Swadharma Sarana Informatika semakin tumbuh dan terus meningkat profesionalismenya sejalan dengan perubahan teknologi dan bisnis pada umumnya khususnya di sektor perbankan. Layanan yang ditawarkan oleh perusahaan tersebut : -           Pemasangan (Instalasi) mesin ATM berbagai Merk. -