Blogchevron_rightSunucu Yönetimichevron_rightDocker'da MariaDB Veritabanı Kurtarma Rehberi

Docker'da MariaDB Veritabanı Kurtarma Rehberi

S
Serversium
calendar_today23 Nisan 2026
schedule5 dk okuma
Docker'da MariaDB Veritabanı Kurtarma Rehberi

Docker İçinde MariaDB Kurtarma: blogsium_db Örneği ile Veri Kurtarma Rehberi

Docker container'larında çalıştırılan MariaDB veritabanlarında veri kaybı veya bozulma durumlarında sistematik kurtarma yöntemleri kritik önem taşımaktadır. Bu kapsamlı rehberde, sanal sunucu ortamlarında Docker içinde çalışan MariaDB veritabanlarınızı nasıl kurtarabileceğinizi blogsium_db örneği üzerinden adım adım açıklayacağız.

Docker'da MariaDB Veritabanı Kurtarma Sürecine Giriş

Modern web uygulamalarında Container tabanlı veritabanı yönetimi giderek yaygınlaşmaktadır. Docker ortamında MariaDB kullanmanın avantajları oldukça fazladır; ancak yanlış yapılandırma, kesintiler veya yanlışlıkla veri silme gibi durumlar produktiv ortamda ciddi sorunlara yol açabilir. Araştırmalara göre, işletmelerin %40'ı yılda en az bir kez veritabanı kaybı ile karşılaşmaktadır (Gartner, 2023).

Bu rehber, blogsium_db gibi spesifik bir veritabanı adı üzerinden Docker container içindeki MariaDB kurtarma süreçlerini detaylı olarak ele almaktadır. İster bir teknoloji blog yöneticisi olun, ister sistem administratorü, bu kılavuz size kritik durumlarda yardımcı olacaktır.

Docker ve MariaDB Entegrasyonunun Temel Prensipleri

Docker'da MariaDB çalıştırırken, veri kalıcılığı için volume bağlaması yapılandırmanız gerekmektedir. Varsayılan olarak container silindiğinde tüm veriler kaybolur. Güvenli bir kurulum için aşağıdaki yapılandırma önerilmektedir:

docker run -d \
  --name blogsium_mariadb \
  -e MYSQL_ROOT_PASSWORD=güçlü_şifre123 \
  -e MYSQL_DATABASE=blogsium_db \
  -v blogsium_data:/var/lib/mysql \
  -p 3306:3306 \
  mariadb:latest

Docker Container'larda MariaDB Veri Kaybı Nedenleri

Docker ortamında MariaDB veritabanlarında veri kaybı yaşanmasının birçok nedeni bulunmaktadır. Bu nedenlerin başlıcaları şunlardır:

1. Yanlış Volume Yapılandırması

Container içinde oluşturulan veriler, kalıcı volume bağlanmadığı takdirde container silindiğinde kaybolmaktadır. Birçok geliştirici, özellikle test ortamlarında bu hatayı yapmaktadır.

2. Kesinti ve Sistem Çökmesi

Sunucu kesintileri veya beklenmedik sistem çökmeleri, yazılma sürecindeki verilerin bozulmasına neden olabilir. InnoDB motoru bu duruma karşı dayanıklı olsa da, tamamen koruma sağlamamaktadır.

3. Yanlışlıkla Silme veya Overwrite

DROP DATABASE veya TRUNCATE komutlarının yanlışlıkla çalıştırılması, geri dönüşü çok zor durumlar oluşturabilmektedir.

4. Disk Doluluğu ve Disk Hatası

Disk doluluğu nedeniyle yazma işlemleri başarısız olabilir veya fiziksel disk arızaları veri kaybına yol açabilir. Bu gibi durumlarda sunucu güvenliği önlemleri de devreye girmelidir.

blogsium_db Veritabanı Kurtarma Adımları

Aşağıda, Docker içinde çalışan blogsium_db veritabanını kurtarmak için sistematik bir yaklaşım sunuyoruz. Bu adımlar, farklı kayıp senaryolarına göre uyarlanabilir.

Adım 1: Mevcut Durumu Değerlendirme

Öncelikle container'ın durumunu ve veritabanının mevcut durumunu kontrol etmeniz gerekmektedir:

# Container durumunu kontrol edin
docker ps -a | grep blogsium

# Container log'larını inceleyin
docker logs blogsium_mariadb

# Volume durumunu kontrol edin
docker volume ls | grep blogsium

Adım 2: Docker Volume'den Veri Kurtarma

Eğer verileriniz bir Docker volume'ünde saklanıyorsa, aşağıdaki yöntemlerle kurtarma yapabilirsiniz:

# Volume'ü farklı bir container'a bağlayarak erişim sağlayın
docker run -it --rm -v blogsium_data:/veri mariadb:latest ls -la /veri

# Alternatif: Yeni bir container ile mysql client kullanarak bağlanın
docker run -it --rm \
  --network container:blogsium_mariadb \
  mariadb:latest mysql -u root -p

Adım 3: Physical Backup'dan Kurtarma

Eğer daha önce fiziksel yedek aldıysanız, bu yedekten geri yükleme yapabilirsiniz. Öncelikle yedek dosyanızı container'a kopyalayın:

# Yedek dosyasını container'a kopyalayın
docker cp /path/to/backup.sql blogsium_mariadb:/tmp/backup.sql

# Container içinde MySQL'e bağlanın
docker exec -it blogsium_mariadb mysql -u root -p

# Veritabanını geri yükleyin
source /tmp/backup.sql

Adım 4: InnoDB Log Dosyalarından Kurtarma

Database crash sonrası InnoDB log dosyalarından kurtarma mümkün olabilmektedir. Bu yöntem daha ileri düzey bir işlemdir ve uzman bilgisi gerektirir:

# Container'ı durdurun
docker stop blogsium_mariadb

# InnoDB forced recovery modunu etkinleştirmek için my.cnf dosyasını düzenleyin
docker exec blogsium_mariadb cat /etc/mysql/my.cnf

# Container'ı özel parametrelerle başlatın
docker run -d \
  --name blogsium_mariadb_recovery \
  -e MYSQL_ROOT_PASSWORD=güçlü_şifre123 \
  -v blogsium_data:/var/lib/mysql \
  mariadb:latest \
  --innodb-force-recovery=1

Önemli: innodb-force-recovery değeri 1'den başlayarak kademeli olarak artırılmalıdır. Mümkün olan en düşük değeri kullanmalısınız.

MariaDB Docker İmajından Veri Kurtarma Yöntemleri

Farklı senaryolar için farklı kurtarma yöntemleri mevcuttur. Aşağıda en yaygın kullanılan yöntemleri detaylı olarak açıklıyoruz.

Yöntem 1: SQL Dump ile Geri Yükleme

En güvenli ve önerilen yöntem, düzenli olarak alınan SQL dump yedeklerinden geri yüklemedir:

# mysqldump ile yedek alma
docker exec blogsium_mariadb mysqldump -u root -p blogsium_db > blogsium_db_backup.sql

# Geri yükleme
docker exec -i blogsium_mariadb mysql -u root -p blogsium_db < blogsium_db_backup.sql

Yöntem 2: Binary Log'lardan Point-in-Time Recovery

Binary logging etkinse, belirli bir noktaya kadar geri yükleme yapabilirsiniz:

# Binary log pozisyonunu öğrenin
docker exec blogsium_mariadb mysql -u root -p -e "SHOW MASTER STATUS;"

# Belirli pozisyona kadar geri yükleme
docker exec blogsium_mariadb mysqlbinlog \
  --stop-position=12345 \
  /var/lib/mysql/mysql-bin.000001 | mysql -u root -p

Yöntem 3: Silinen Tabloyu Geri Getirme

Yanlışlıkla silinen bir tabloyu geri getirmek için:

# İlk olarak son yedekten tabloyu geri yükleyin
docker exec -i blogsium_mariadb mysql -u root -p blogsium_db < son_yedek.sql

# Binary log'lardan sonrasını uygulayın
docker exec blogsium_mariadb mysqlbinlog \
  --start-position=silme_öncesi_pos \
  --stop-position=son_pos \
  mysql-bin.000002 | mysql -u root -p blogsium_db

Karşılaştırma Tablosu: MariaDB Docker Kurtarma Yöntemleri

Kurtarma Yöntemi Özellikler Gereksinimler Zaman
SQL Dump Geri Yükleme Tam veritabanı kurtarma, en güvenli yöntem Düzenli mysqldump yedeği Orta
Binary Log Recovery Point-in-time kurtarma, belirli noktaya dönüş Binary logging etkin olmalı Uzun
InnoDB Force Recovery Crash sonrası kurtarma, son çare Yedek yoksa kullanılır Kısa
Volume Kurtarma Dosya düzeyinde kurtarma Docker volume mevcut olmalı Kısa

Önleyici Tedbirler ve Yedekleme Stratejileri

Veri kaybını önlemek için proaktif yedekleme stratejileri uygulamanız kritik önem taşımaktadır.

Otomatik Yedekleme Sistemi Kurulumu

Docker Compose kullanarak otomatik yedekleme sistemi oluşturabilirsiniz:

version: '3.8'
services:
  mariadb:
    image: mariadb:latest
    environment:
      MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD}
      MYSQL_DATABASE: blogsium_db
    volumes:
      - mariadb_data:/var/lib/mysql
      - ./backups:/backups
    backup:
      image: alpine:latest
      command: >
        sh -c "mysqldump -h mariadb -u root -p$$MYSQL_ROOT_PASSWORD blogsium_db > /backups/backup-$$(date +%Y%m%d).sql"
      volumes:
        - ./backups:/backups

Düzenli Yedekleme Sıklığı

Veritabanınızın kritiklik seviyesine göre yedekleme sıklığını belirleyin:

  • Kritik üretim veritabanları: Saatlik yedek + daily incremental
  • Orta seviye uygulamalar: Günlük tam yedek
  • Geliştirme ortamları: Haftalık yedek

Yedek Doğrulama ve Test Geri Yükleme

Yedeklerin çalışırlığını düzenli olarak test etmelisiniz:

# Test ortamında geri yükleme doğrulama script'i
#!/bin/bash
BACKUP_FILE=$1
TEST_DB="blogsium_db_test"

# Test veritabanı oluştur
docker exec blogsium_mariadb mysql -u root -p -e "CREATE DATABASE IF NOT EXISTS $TEST_DB;"

# Geri yükleme testi
docker exec -i blogsium_mariadb mysql -u root -p $TEST_DB < $BACKUP_FILE

# Veri kontrolü
docker exec blogsium_mariadb mysql -u root -p -e "SELECT COUNT(*) FROM $TEST_DB.kullanici_tablosu;"

# Test veritabanını temizle
docker exec blogsium_mariadb mysql -u root -p -e "DROP DATABASE $TEST_DB;"

Güvenlik Önlemleri

Veritabanı güvenliği için ek önlemler almanız önerilmektedir:

  • SSH anahtarı ile iki faktörlü kimlik doğrulama kullanın
  • Yedek dosyalarını şifreleyin
  • Farklı lokasyonlarda yedek saklayın
  • Sunucu güvenliği en iyi uygulamalarını takip edin

Sonuç ve Öneriler

Docker ortamında MariaDB veritabanı kurtarma işlemi, doğru araçlar ve bilgiyle başarılı bir şekilde gerçekleştirilebilmektedir. blogsium_db örneği üzerinden gösterdiğimiz bu yöntemler, herhangi bir MariaDB veritabanı için de uygulanabilir niteliktedir.

En önemli husus, proaktif yedekleme stratejileri oluşturmaktır. Her ne kadar kurtarma yöntemleri mevcut olsa da, düzenli yedek alımı veri kaybı riskini minimize etmektedir. Ayrıca, üretim ortamlarında hosting çözümlerinde yed

library_booksBenzer İçerikler

Cloud Sunucu Nedir? Avantajları ve Detaylı Rehber
Sunucu Yönetimi
calendar_today5 Nisan 2026
schedule5 dk

Cloud Sunucu Nedir? Avantajları ve Detaylı Rehber

Cloud sunucular, dinamik kaynak dağıtımıyla işletmelerin kesintisiz büyümesini sağlar. Avantajlardan karşılaştırmalara tüm detaylar bu rehberde yer alıyor.

S
Serversiumarrow_forward
Linux vs Windows Sunucu: Hangisi Projeye Uygun?
Sunucu Yönetimi
calendar_today6 Nisan 2026
schedule5 dk

Linux vs Windows Sunucu: Hangisi Projeye Uygun?

Linux ve Windows Sunucu arasındaki teknik farkları, maliyet avantajlarını ve proje uyumluluğunu detaylı olarak karşılaştırıyoruz. Yazılım stack'inize en uygun işletim sistemini seçmek için kapsamlı rehberimizle doğru altyapı kararını verin.

S
Serversiumarrow_forward
Plesk Kurulumu - Ubuntu 24 Üzerinde Adım Adım Rehber
Sunucu Yönetimi
calendar_today16 Nisan 2026
schedule5 dk

Plesk Kurulumu - Ubuntu 24 Üzerinde Adım Adım Rehber

Ubuntu 24 üzerinde Plesk kurulumunu adım adım öğrenin. Bu rehberde sistem gereksinimleri, kurulum adımları ve temel yapılandırma ayarlarını bulabilirsiniz.

S
Serversiumarrow_forward