Mövzunu Açan
#0
Veritabanı sistemleri, yüksek erişilebilirlik ve kesintisiz hizmet sağlamak amacıyla genellikle failover mekanizmalarıyla donatılmıştır. Failover, bir sistemde bir arıza meydana geldiğinde, yedek sistemin devreye girmesi sürecidir. Bu yazıda, basit bir veritabanı failover scriptinin nasıl oluşturulabileceğine dair bilgi verilecektir.
İlk olarak, bir failover senaryosu oluşturmak için aşağıdaki adımları izlemek önemlidir:
Aşağıda, bu adımları gerçekleştiren basit bir Python scripti örneği bulunmaktadır:
Bu script, PostgreSQL veritabanı kullanarak ana ve yedek veritabanlarının bağlantı durumunu kontrol eder. Ana veritabanına bağlantı kurulamadığında, yedek veritabanına geçiş yapar. Kendi sisteminize uygun şekilde bu scripti özelleştirerek daha karmaşık failover senaryoları da oluşturabilirsiniz. Bu tür mekanizmaların kurulması, veri kaybını önlemek ve kesintisiz hizmet sağlamak açısından kritik öneme sahiptir.
İlk olarak, bir failover senaryosu oluşturmak için aşağıdaki adımları izlemek önemlidir:
- Ana Veritabanının Belirlenmesi: İlk olarak, hangi veritabanının ana olduğunu belirlemelisiniz. Bu veritabanı, sisteminizin ana işlevselliğini sağlamakta olan veritabanıdır.
- Yedek Veritabanının Tanımlanması: Ana veritabanı ile birlikte çalışacak bir yedek veritabanı belirleyin. Bu, ana veritabanı arızalandığında devreye girecek olan veritabanıdır.
- Bağlantı Kontrolü: Script, ana veritabanına bağlantı kurup kuramadığını kontrol etmelidir. Eğer bağlantı sağlanamazsa, yedek veritabanına geçiş yapmalıdır.
- Geçiş Sürecinin Gerçekleştirilmesi: Eğer ana veritabanı erişilemez durumdaysa, yedek veritabanına geçiş yapılmalıdır. Bu işlem, uygulama ayarları veya bağlantı dizeleri üzerinde değişiklik yapmayı gerektirebilir.
- Geri Dönüş İşlemleri: Ana veritabanı tekrar erişilebilir olduğunda, uygulamanın ana veritabanına geri dönmesini sağlamak için bir mekanizma geliştirilmesi önemlidir.
Aşağıda, bu adımları gerçekleştiren basit bir Python scripti örneği bulunmaktadır:
CODE
123456789101112131415161718192021222324252627282930313233343536373839404142
import psycopg2
from psycopg2 import OperationalError
def check_connection(db_params):
try:
connection = psycopg2.connect(**db_params)
return connection
except OperationalError:
return None
def failover():
primary_db = {
'dbname': 'ana_veritabani',
'user': 'kullanici',
'password': 'sifre',
'host': 'ana_host',
'port': '5432'
}
secondary_db = {
'dbname': 'yedek_veritabani',
'user': 'kullanici',
'password': 'sifre',
'host': 'yedek_host',
'port': '5432'
}
connection = check_connection(primary_db)
if connection is None:
print("Ana veritabanına bağlanılamadı, yedek veritabanına geçiliyor.")
connection = check_connection(secondary_db)
if connection:
print("Yedek veritabanına başarıyla geçildi.")
else:
print("Yedek veritabanına da bağlanılamadı.")
else:
print("Ana veritabanı aktif.")
connection.close()
failover()
Bu script, PostgreSQL veritabanı kullanarak ana ve yedek veritabanlarının bağlantı durumunu kontrol eder. Ana veritabanına bağlantı kurulamadığında, yedek veritabanına geçiş yapar. Kendi sisteminize uygun şekilde bu scripti özelleştirerek daha karmaşık failover senaryoları da oluşturabilirsiniz. Bu tür mekanizmaların kurulması, veri kaybını önlemek ve kesintisiz hizmet sağlamak açısından kritik öneme sahiptir.