kontrol makinesi : 192.168.2.5
master db : 192.168.101
slave db: 192.168.2.102
Bu yöntem ile yapılabilecekler.
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.
Şimdi master sunucudaki postgresql in veri klasörünü, slave sunucudaki postgresql veri klasörüne kopyalamalısınız.
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
- 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
Kurulum
- 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ı
Postgresql için kullanıcı adı ve şifrelerin ayarlanması için gereken terminal komutları
sudo -u postgres psql postgresMaster tarafında ki ayarlamalar
\password postgres
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.
Slave sunucudaki postgresql veri klasörü içine "recovery.conf" adında bir dosya oluşturmalısınız.
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
vi /var/lib/postgresql/9.1/recovery.conf
standby_mode='on'eğer salave sunucuda sorgu çalıştırmak istiyorsanız slave sunucuda aşağıdaki ayarı da yapın
primary_conninfo='host=192.168.2.101'
/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:
Yorum Gönder