PostgreSQL Instance’ın Kapatılıp Başlatılması, veri bütünlüğünü korumak ve işlemlerin sorunsuz bir şekilde tamamlanmasını sağlamak için başlatma ve kapatma işlemlerinde belirli prosedürlere sahiptir. Bu bölümde PostgreSQL instance’ının düzgün bir şekilde kapatılması, başlatılması ve yeniden başlatılması için kullanılabilecek yöntemler üzerinde durulacaktır.
1. PostgreSQL Instance’ını Başlatma
PostgreSQL , sistem hizmeti olarak çalıştırılabilir veya manuel olarak başlatılabilir. Kullanılan yöntem, işletim sistemine ve PostgreSQL’in kurulum şekline bağlıdır.
• Sistem Hizmeti Kullanarak Başlatma (Linux):
PostgreSQL’in sistem hizmeti üzerinden başlatılması için şu komut kullanılır:
sudo systemctl start postgresql
Başarılı bir başlatma işlemi için hizmet durumu kontrol edilebilir:
sudo systemctl status postgresql
• Manuel Başlatma:
PostgreSQL veri dizinini belirterek pg_ctl komutuyla instance’ı manuel olarak başlatabilirsiniz:
pg_ctl start -D /var/lib/postgresql/data
Bu komut, belirli bir veri dizini için PostgreSQL sunucusunu başlatır.
2. PostgreSQL Instance’ını Durdurma
PostgreSQL instance’ını kapatırken, açık işlemlerin tamamlanması ve veri kaybının önlenmesi önemlidir.
• Sistem Hizmeti Kullanarak Durdurma (Linux):
PostgreSQL’i düzgün bir şekilde durdurmak için şu komut kullanılabilir:
sudo systemctl stop postgresql
• Manuel Durdurma:
pg_ctl komutunu kullanarak PostgreSQL’i durdurabilirsiniz:
pg_ctl stop -D /var/lib/postgresql/data
• Kapatma Modları:
PostgreSQL, kapatma işlemi için üç farklı mod sunar:
• Smart Mode (Varsayılan): Tüm aktif işlemler tamamlanır ve bağlantılar sonlandırılır.
pg_ctl stop -D /var/lib/postgresql/data -m smart
• Fast Mode: Tüm bağlantılar anında sonlandırılır. Aktif işlemler beklenmeden kapatılır.
pg_ctl stop -D /var/lib/postgresql/data -m fast
• Immediate Mode: Veritabanı kapatılırken tamponlara yazma işlemleri yapılmaz. Bu yöntem veri kaybına neden olabilir.
pg_ctl stop -D /var/lib/postgresql/data -m immediate
3. PostgreSQL Instance’ını Yeniden Başlatma
Veritabanı sunucusunu yeniden başlatmak için hem sistem hizmeti hem de pg_ctl komutu kullanılabilir.
• Sistem Hizmeti Kullanarak Yeniden Başlatma:
sudo systemctl restart postgresql
• Manuel Yeniden Başlatma:
pg_ctl komutuyla instance’ı durdurup tekrar başlatabilirsiniz:
pg_ctl restart -D /var/lib/postgresql/data
4. PostgreSQL’in Otomatik Başlatılması
PostgreSQL’in işletim sistemiyle birlikte otomatik olarak başlatılmasını sağlamak için sistem hizmeti etkinleştirilebilir.
• Linux Sistemlerde:
sudo systemctl enable postgresql
Bu komut, PostgreSQL’in her sistem yeniden başlatıldığında otomatik olarak çalışmasını sağlar.
5. Instance’ın Durumunu Kontrol Etme
PostgreSQL instance’ının düzgün çalışıp çalışmadığını kontrol etmek için şu komutlar kullanılabilir:
• Sistem Hizmeti Durumunu Kontrol Etme:
sudo systemctl status postgresql
• pg_ctl ile Durum Kontrolü:
pg_ctl status -D /var/lib/postgresql/data
• Bağlantı Testi (psql):
psql aracıyla veritabanına bağlanarak instance’ın çalıştığını doğrulayabilirsiniz:
psql -U postgres -d postgres
6. Özel Durumlar ve Sorun Giderme
• Hatalı Kapatma ve Veri Kurtarma:
PostgreSQL düzgün bir şekilde kapatılmazsa, yeniden başlatıldığında recovery modunda çalışabilir. Log dosyaları kontrol edilerek hatanın kaynağı bulunabilir.
• Log Dosyalarının İncelenmesi:
PostgreSQL’in neden başlatılamadığını veya durdurulamadığını anlamak için log dosyalarını inceleyebilirsiniz:
tail -f /var/lib/postgresql/data/log/postgresql.log
Sonuç
PostgreSQL instance’ının kapatılması, başlatılması ve yeniden başlatılması işlemleri veri bütünlüğünü sağlamak ve performansı optimize etmek için dikkatlice yapılmalıdır. Hangi yöntemin kullanılacağı, sistem gereksinimlerine ve işletim sistemine bağlı olarak değişir.