Otomatik Yedekleme: Güvenliği Sağlamanın İlk Adımı
Python ile bir veritabanının yedeğini almak için öncelikle doğru veritabanı bağlantısını sağlamanız gerekiyor. Birçok popüler veritabanı yönetim sistemi (DBMS) ile uyumlu Python kütüphaneleri bulunmaktadır. Örneğin, MySQL için `mysql-connector-python`, PostgreSQL için `psycopg2` kütüphaneleri sıklıkla kullanılır.
Örnek Kod: MySQL Yedekleme
import mysql.connector
import os
import datetime
def backup_database():
# Veritabanı bağlantısını yapıyoruz
db = mysql.connector.connect(
host="localhost",
user="root",
password="password",
database="veritabani_adi"
)
cursor = db.cursor()
# Yedekleme dosyasının adını oluşturuyoruz
date = datetime.datetime.now().strftime("%Y-%m-%d_%H-%M-%S")
backup_file = f"yedek_{date}.sql"
# Yedekleme komutunu çalıştırıyoruz
backup_command = f"mysqldump -u root -p password veritabani_adi > {backup_file}"
os.system(backup_command)
print(f"Yedekleme başarılı! Yedek dosyası: {backup_file}")
backup_database()
Bu kod, MySQL veritabanını yedekleyip, yedeği bir SQL dosyasına kaydeder. Güncel zamanı yedekleme dosyasının adı olarak kullanarak, her yedeği ayrı bir dosya olarak saklayabilirsiniz. Yedekleme komutunun doğru çalışabilmesi için, sistemde `mysqldump` komutunun yüklü olması gerekmektedir.
Kurtarma Süreci: Verilerinizi Geri Getirme
Örnek Kod: Yedekten Kurtarma
def restore_database(backup_file):
# Veritabanı bağlantısını yapıyoruz
db = mysql.connector.connect(
host="localhost",
user="root",
password="password",
database="veritabani_adi"
)
cursor = db.cursor()
# Yedek dosyasını kullanarak veritabanını geri yükleme komutunu çalıştırıyoruz
restore_command = f"mysql -u root -p password veritabani_adi < {backup_file}"
os.system(restore_command)
print(f"Kurtarma başarılı! Yedek dosyasından veri geri yüklendi.")
# Örnek kullanım
restore_database("yedek_2025-04-03_15-30-00.sql")
Bu kod, belirtilen yedek dosyasını kullanarak MySQL veritabanına geri yükler. Yedekleme ve kurtarma işlemlerinin otomatik hale gelmesi, yalnızca birkaç satır kodla yapılabilir.
Yedekleme Stratejileri ve En İyi Uygulamalar
1. Farklı Konumlarda Yedekleme: Yedeklerinizi sadece yerel sistemde tutmak yerine, bulut sistemlerinde de saklamayı düşünün. Amazon S3, Google Cloud Storage gibi bulut çözümleri, verilerinizi güvence altına alır.
2. Zamanlanmış Yedeklemeler: Python'un `schedule` gibi kütüphaneleriyle, belirli bir zaman aralığıyla yedekleme yapabilirsiniz. Böylece her zaman verileriniz güvende olur.
3. Düzenli Testler: Yedekleme dosyalarının düzgün bir şekilde çalışıp çalışmadığını periyodik olarak test edin. Otomatik bir kurtarma süreci oluşturmak, sorun anında hızlı bir çözüm sağlar.