MySQL ve MariaDB sunucu yönetimi ve replikasyon nasıl yapılır?
MySQL ve MariaDB sunucu işletimi: InnoDB davranışı, replikasyon kurulumu, GTID, gecikme sorunları, devir, yedekleme ve yükseltme adımları.
MySQL ve MariaDB yönetimi neleri kapsar?
MySQL ve MariaDB, yakın geçmişi paylaşan ilişkisel veritabanı sistemleridir. Bir veritabanı yöneticisinin işi yalnızca kurulum değildir: sunucu yapılandırması, depolama motoru davranışının anlaşılması, kullanıcı ve yetki yönetimi, yedekleme, replikasyon, izleme, sürüm yükseltme ve arıza anında hızlı müdahale bir arada yürütülür.
Konu özellikle üretim ortamında sunucuyu ayakta tutmak ve veriyi birden fazla sunucuya kopyalamak (replikasyon) üzerine yoğunlaşır. İki sistem birçok kavramı paylaşsa da replikasyon ve yönetim araçlarında farklılaşabildiği için kullandığınız ürünün resmî dokümantasyonuna bakmak gerekir.
Sunucu mimarisi ve InnoDB davranışı
Üretimde en çok kullanılan depolama motoru InnoDB'dir. İşlemli (transactional) çalışır, satır düzeyinde kilit kullanır ve çökme sonrası kurtarma için işlem kayıtları tutar. Bellekteki tampon havuzu (buffer pool), disk okumasını azaltan en kritik ayardır; boyutu iş yüküne ve sunucu belleğine göre belirlenmelidir.
Yönetici, yavaş sorguları yakalamayı, indeks kullanımını incelemeyi ve kilit bekleyen işlemleri teşhis etmeyi öğrenmelidir. Bağlantı sayısı, geçici tablolar ve disk G/Ç gibi kaynaklar da izlenmelidir. Sunucu ayarları tek seferlik yapılmaz; iş yükü değiştikçe yeniden değerlendirilir.
Örneğin bir sipariş tablosunda sık kullanılan filtre sütunu için indeks yoksa sorgu her çalıştığında tabloyu baştan tarar ve yavaş sorgu kaydında tekrar tekrar görünür. Yavaş sorgu günlüğünü açmak ve en sık görünen sorgulardan başlamak, ayar yapmaya başlamanın en verimli yoludur.
Replikasyon nedir, nasıl kurulur?
Replikasyon, bir sunucudaki (kaynak) değişikliklerin bir ya da daha fazla sunucuya (kopya) aktarılmasıdır. Kaynak, yaptığı değişiklikleri ikili günlüğe (binary log) yazar; kopya bu günlüğü alır ve kendi üzerinde yeniden uygular. Amaçlar okuma yükünü dağıtmak, yedekleme için canlı kopya sağlamak ve arıza anında devralacak bir sunucu bulundurmaktır.
- Kaynağı hazırlayın: İkili günlüğü etkinleştirin, benzersiz bir sunucu kimliği verin, replikasyon için ayrı bir kullanıcı tanımlayın.
- Kopyayı başlatın: Kaynağın tutarlı bir yedeğini kopyaya yükleyin.
- Bağlantıyı kurun: Kopyaya kaynağın adresini ve başlangıç konumunu bildirin.
- Çalıştırın ve doğrulayın: Replikasyonu başlatın, durumunu izleyin ve verinin eşleştiğini kontrol edin.
Kurulumdan sonra ilk iş, kaynağa yeni bir kayıt yazıp kopyada göründüğünü doğrulamaktır. Kopyanın salt okunur çalıştırılması, yanlışlıkla kopyaya yazılan veriyle iki sunucunun ayrışmasını önler. Replikasyon için kullanılan hesabın yalnızca gerekli yetkilere sahip olması ve bağlantının şifreli kurulması da güvenlik açısından başta düşünülür.
GTID ve topoloji yönetimi
GTID (Global Transaction Identifier), her işleme evrensel bir kimlik verir. Dosya adı ve konum yerine işlem kimliğiyle çalışmak, kopyayı yeniden bağlamayı ve kaynağı değiştirmeyi çok daha güvenli kılar. Hangi işlemin hangi sunucuda uygulandığı net görülebilir.
Topoloji, sunucuların birbirine nasıl bağlandığını anlatır. Tek kaynaklı çok kopyalı yapı en yaygın olanıdır. Zincirleme kopyalar, kaynağın yükünü azaltabilir ama gecikmeyi artırır. Çok kaynaklı yapılar çakışma riskini beraberinde getirir ve dikkatli tasarım ister. Topoloji kararı, tutarlılık gereksinimi ile ölçeklenme ihtiyacı arasında yapılan bir dengedir.
Gecikme, tutarlılık ve sorun giderme
Replikasyon varsayılan olarak eşzamansız çalışır: kopya, kaynağın gerisinde kalabilir. Bu gecikme (lag), büyük işlemler, ağ sorunları ya da kopyanın yetersiz kaynağından doğabilir. Uygulama kopyadan okuyorsa eski veri görme ihtimali tasarımda hesaba katılmalıdır; kullanıcı yazdığı veriyi hemen okuyorsa o okuma kaynaktan yapılabilir.
Sık görülen sorunlar arasında kopyada çakışan ya da uygulanamayan işlem, kaynak ve kopya verisinin sessizce ayrışması ve disk dolması yer alır. Sorun giderirken önce replikasyon durum bilgisine, hata mesajına ve gecikme göstergesine bakılır. Hata atlatılarak geçilmeden önce nedeninin anlaşılması, verinin tutarlılığı açısından önemlidir.
Devir, yüksek erişilebilirlik, yedekleme ve yükseltme
Kaynak çöktüğünde bir kopyanın yeni kaynak olarak devralmasına devir (failover) denir. Manuel yapılabilir ya da bir yönetim aracı tarafından otomatikleştirilebilir. Kritik nokta, uygulamaların yeni kaynağa yönlendirilmesi ve eski kaynak geri geldiğinde ikisinin aynı anda yazmaya başlamaması, yani verinin ayrışmamasıdır.
Replikasyon yedek yerine geçmez: kaynakta yanlışlıkla silinen veri kopyaya da yansır. Bu yüzden düzenli yedekleme ve geri yükleme denemesi şarttır. Sürüm yükseltmelerinde önce kopyalar yükseltilir, uygulama sınanır, sonra kaynak devredilerek yükseltilir. Kesinti tatbikatları, planların gerçekten işlediğini önceden gösterir.
Yedekleme tarafında iki yaklaşım yaygındır: mantıksal yedek, veriyi SQL ifadeleri olarak dışa aktarır ve taşınabilirdir ama büyük veride yavaştır; fiziksel yedek ise veri dosyalarını kopyalar, hızlıdır ama aynı sürüm ve yapılandırma bağımlılığı taşır. Sunucuda zamana göre kurtarma yapılabilmesi için ikili günlükler de yedeğin parçası olarak saklanır.
Bu beceriyi Mindset programlarında nerede çalışırsınız?
Mindset kataloğundaki "MySQL/MariaDB İşletimi ve Replikasyon Topolojileri" eğitiminin modülleri sunucu mimarisi ve InnoDB davranışı, replikasyon temelleri ve kurulum, GTID ve topoloji yönetimi, gecikme, tutarlılık ve sorun giderme, devir, yönlendirme ve yüksek erişilebilirlik ile yedekleme, yükseltme ve kesinti tatbikatıdır.
İlgili Mindset programı
MySQL/MariaDB İşletimi ve Replikasyon Topolojileri
Sık sorulan sorular
MySQL ile MariaDB arasındaki fark nedir?
İkisi ortak bir geçmişten gelir ve birçok yönüyle uyumludur. Zamanla özellikler, replikasyon ayrıntıları ve araçlar bakımından ayrışmışlardır; bu yüzden geçiş ya da karma kullanım öncesi uyumluluk resmî dokümanlardan kontrol edilmelidir.
Replikasyon yedek yerine geçer mi?
Hayır. Kaynaktaki hatalı bir silme ya da güncelleme kopyaya da aktarılır. Replikasyon erişilebilirlik ve okuma ölçeği için, yedek ise veriyi geçmiş bir ana geri getirmek içindir. Bu yüzden iki önlem birlikte çalışır: replikasyon kopyayı canlı tutar, düzenli alınan yedek ise tek tek tabloyu ya da tüm veriyi önceki bir ana döndürür. Geri yükleme denemesi yapılmamış bir yedeğin işe yarayacağından emin olunamaz.
Replikasyon gecikmesi neden oluşur?
Uzun süren büyük işlemler, kopyanın yetersiz kaynağı, ağ sorunları ya da kopyada uygulanması yavaş sorgular başlıca nedenlerdir. Nedeni bulmak için replikasyon durumu ve kopyadaki iş yükü birlikte incelenir. Pratikte teşhis için önce gecikmenin sürekli mi yoksa belirli saatlerde mi arttığına bakılır; toplu veri yüklemeleri ve gece çalışan raporlar sık rastlanan tetikleyicilerdir. Sürekli gecikme çoğunlukla kopyanın kaynak yetersizliğini gösterir.
Veritabanı yöneticisi olmak için hangi bilgiler gerekir?
SQL, işletim sistemi ve ağ temelleri, depolama motoru mantığı, yedekleme ve kurtarma, izleme ve performans ayarı gerekir. Üretim deneyimi için bir test ortamında kurulum ve arıza tatbikatı yapmak çok öğreticidir.
İlgili rehberler
Kategori: Veri Mühendisliği ve MLOps, DevOps ve Bulut Teknolojileri