Çarşamba, Ocak 01, 2014

PostgreSQL 9.1 Hot standby Kurulumu


kontrol makinesi : 192.168.2.5
master db : 192.168.101
slave db: 192.168.2.102

Bu yöntem ile yapılabilecekler.

  • Orjinal veritabanınızın bir kopyasına sahip olursunuz ve veri kaybınıönlemiş olursunuz.
  • Veritabanına gelen yükü dağıtabilirsiniz (Slave server üzerinde sadeceokuma amaçlı sorguları çalışıtrabilirsiniz )
  • Rapor amaçlı uzun süren sorguları slaver server üzerinde çalıştırarakperformans artışı sağlanabilir.

Bu yöntem ile neler yapılamaz
  • Sadece bir tabloyu, şemayı (schema) yada veritabanını kopyalayamazsınız.
  • Slave server orjinalin bire bir kopyası olmak zorundadır.
  • Birden fazla Master kopya olamaz.
  • PostgreSQL versiyonları farklı olamaz.

Kurulum

sudo apt-get install postgresql" 
yazarak postgresql in son sürümünü indirin.
Postgresql için kullanıcı adı ve şifrelerin ayarlanması için gereken terminal komutları
sudo -u postgres psql postgres
\password postgres
Master tarafında ki ayarlamalar
Master tarafında yapılan değişkilklikler. Master sunucu içerisinde ki ayar dosyalarındaki değişiklikleri yapın.
/etc/postgresql/9.1/main/postgresql.conf
listen_address = '*'
wal_level = hot_standby
max_wal_senders = 3

etc/postgresql/9.1/main/pg_hba.conf
host all all 192.168.2.5/32 md5
host replication all           192.168.2.102/32            trust

Veri klasörünün kopyalanması
öncelikle master veri tabanın da backup işlemini başlatın
pgadmin den veya psql den yazılabilir.
select pg_start_backup('backup');

Şimdi master sunucudaki postgresql in veri klasörünü, slave sunucudaki postgresql veri klasörüne kopyalamalısınız.
rsync -av 192.168.2.101:/var/lib/postgresql/9.1/main/ /var/lib/postgresql/9.1/main/
kopyalama işlemini yaptıktan sonra kopyalanan slave sunucudaki "postmaster.pid" dosyasını silin.
rm -rf /var/lib/postgresql/9.1/main/postmaster.pid 
veri klasörünün nerde olduğunu bulmak için pgadmin de aşağıdaki sql cümlesini yazıp çalıştırabilirsiniz.
show data_directory;
Son olarak master sunucudaki backup işlemini durdurmalısınız. Bunun için pgadmin de aşağıdakı sorguyu çalıştırın.
select pg_stop_backup();
Slave sunucu tarafında yapılan değişklikler

Slave sunucudaki postgresql veri klasörü içine "recovery.conf" adında bir dosya oluşturmalısınız.
Bu dosyaya aşağıdaki satırları yazın.

vi /var/lib/postgresql/9.1/recovery.conf

standby_mode='on'
primary_conninfo='host=192.168.2.101'
eğer salave sunucuda sorgu çalıştırmak istiyorsanız slave sunucuda aşağıdaki ayarı da yapın
/etc/postgresql/9.1/main/postgresql.conf

hot_standby = on

Son olarak yapmanız gereken slave sunucudaki postgresql servisini yeniden başlatmanız. Bunun için terminale aşağıdaki kodu yazın.
sudo /etc/init.d/postgresql restart

Hiç yorum yok: