PostgreSQL data klasörünü değiştirmek

26/03/2018wutlu

Sunucunuzda olağanüstü bir problem çıktı? OS formatlamanız gerekti ve çok berbat bir durumdasınız! Bu durumda yapmanız gereken; tüm verilerinizi farklı bir barındırma alanına alıp, sunucuyu formatlayıp, tekrar verileri sunucunuza almak olacaktır. Bu gerçekten zahmet gerektiren bir iş. Ama önleminizi daha önceden alırsanız bu sorun daha basit bir şekilde çözülebilir.

Yeni Disk Tanımlama

Öncelikle sunucunuza bir disk ekletin. Eklenilen diski işletim sisteminize tanıtmanız yani (mount) etmeniz gerekiyor. Daha sonra sistemin yeni diske vermiş olduğu benzersiz adını öğrenmeniz gerekiyor. Bunun için komut satırına lsblk yazalım. İstek sonucu aşağıdaki gibi dönecektir.

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 253:0 0 46.6G 0 disk /
vdb 253:16 0 139.7G 0 disk

Yeni eklenilen disk doğal olarak bir konuma bağlı olmayacak. (MOUNTPOINT) Kırmızı ile belirttiğim alan yeni diskimiz. Zaten boyutundan da tanıyabiliriz.

Bu diski mount etmeden önce yeni bir dizin oluşturmamız gerekiyor. Oluşturacağımız bu dizin, sürücümüzün yerel konumu olacaktır. mkdir /data_1 komutu ile sunucumuzun ana dizinine data_1 adında bir klasör oluşturalım.

Artık mount komutunu gönderebiliriz.

mount /dev/vdb /data_1

df -h komutu ile yeni diskinizi görebilirsiniz.

PostgreSQL data konumunu güncelleme

Öncelikle sudo -u postgres psql komutu ile postgresql’e bağlanıp SHOW data_directory; komutu ile mevcut data klasörünün konumunu öğrenelim.

Daha sonra postgresql’i durduralım. (sudo systemctl stop postgresql)

Durduğuna emin olmak için durum kontrolü yapabilirsiniz. (sudo systemctl status postgresql)

Şimdi postgresql’in bir kopyasını senkronize olacak bir şekilde kopyalayalım. Bunun için şu komutu kullanın (sudo rsync -av /var/lib/postgresql /data_1)

Her ihtimale karşı bir yedek alalım;

sudo mv /var/lib/postgresql/9.5/main /var/lib/postgresql/9.5/main.bak

Şimdi yeni konum için postgresql konfigürasyon dosyasını güncellememiz gerekiyor. Nano veya farklı bir editör ile postgresql.conf dosyasını açın ve belirttiğim dizini aşağıdaki gibi güncelleyin.

sudo nano /etc/postgresql/9.5/main/postgresql.conf

data_directory = ‘/data_1/postgresql/9.5/main’

Artık postgresql’i yeniden başlatabiliriz.

sudo systemctl start postgresql
sudo systemctl status postgresql

Kontrol etmek için postgresql’e bağlanalım. (sudo -u postgres psql) Daha sonra (SHOW data_directory;) komutu ile baktığımızda konum değişmişse, aldığımız yedek dosyalarımızı silip işlerimize kaldığımız yerden devam edebiliriz.

sudo rm -Rf /var/lib/postgresql/9.5/main.bak

Leave a comment

Your email address will not be published. Required fields are marked *

Prev Post