Percona Server for MySQL, MySQL Community Edition'ın açık kaynak bir çatallanmasıdır (fork) ve büyük ölçüde onun yerine geçebilecek (drop-in replacement) şekilde tasarlanmıştır. Percona şirketi tarafından geliştirilir; amacı MySQL ile uyumlu kalırken performans, ölçeklenme, gözlemlenebilirlik ve normalde ticari sürümlerde bulunan bazı özellikleri açık kaynak olarak sunmaktır. Bu yazıda Percona Server'ın ne olduğunu, MySQL ile ilişkisini, mimarisini, ekosistem araçlarını ve gerçek dünyada nasıl kullanıldığını adım adım ele alıyoruz.
Percona Server for MySQL Nedir?
Percona Server for MySQL, SQL tabanlı, ilişkisel bir veritabanı sunucusudur. Verileri satır ve sütunlardan oluşan tablolarda tutar, tablolar arasındaki ilişkileri anahtarlarla kurar ve ACID (Atomiklik, Tutarlılık, İzolasyon, Kalıcılık) garantileri sunan işlemler (transaction) üzerinden güncellenir. Çekirdek olarak MySQL kod tabanını kullandığı için aynı SQL söz dizimi, ağ protokolü ve istemci araçlarıyla çalışır.
Percona Server'ı ayrı kılan şey, MySQL Community üzerine eklenen ek yamalar ve özelliklerdir: gelişmiş enstrümantasyon, ek depolama motorları, iş parçacığı havuzu (thread pool), denetim günlüğü, kimlik doğrulama eklentileri ve daha ayrıntılı performans metrikleri gibi. Sunucu bileşeni GPLv2 lisansı altında dağıtılır; bu da onu özgür ve açık kaynaklı bir yazılım yapar.
İlgili rehberler: Veritabanı türleri rehberi · MySQL Nedir? · MariaDB Nedir? · PostgreSQL Nedir?
Kısa Tarihçe ve Amaç
Percona, MySQL ekosistemine odaklanan bir danışmanlık ve destek şirketi olarak kuruldu; kurucular arasında Peter Zaitsev ve Vadim Tkachenko yer alır. Ekip, yüksek trafikli sistemlerde MySQL'i ölçeklerken karşılaştığı ihtiyaçları karşılamak için kendi iyileştirmelerini bir araya getirdi ve bunları açık kaynak bir dağıtım olarak yayınladı.
Temel felsefe şuydu: MySQL ile uyumluluğu bozmadan, üretim ortamlarında işe yarayan performans ve gözlemlenebilirlik özelliklerini herkesin erişebileceği şekilde sunmak. Bu yüzden Percona Server, MySQL'in sürüm çizgisini yakından takip eder ve genellikle aynı ana sürüm numaralarını (örn. 5.7, 8.0 serileri) kullanır.
MySQL ile İlişkisi ve Uyumluluk
Percona Server, MySQL Community için bir yerine geçebilir alternatif (drop-in replacement) olarak konumlanır. Ağ protokolü, istemci kütüphaneleri ve SQL söz dizimi MySQL ile uyumlu olduğundan, MySQL için yazılmış uygulamalar çoğu zaman kod veya bağlantı ayarı değiştirmeden çalışır. Aynı mysql istemcisi, aynı sürücü (connector) kütüphaneleri ve aynı yedekleme mantığı geçerlidir.
Buna karşın "uyumlu" ile "birebir aynı" farklı şeylerdir. Percona Server ek değişkenler, ek durum sayaçları ve fazladan yapılandırma seçenekleri sunar. Bir ortamdan diğerine geçerken, özellikle ek özelliklere bel bağlayan yapılandırmalarda test yapmak doğru yaklaşımdır.
| Konu | Açıklama |
|---|---|
| Köken | MySQL Community kod tabanının çatallanması ve üzerine eklenmiş yamalar |
| Geliştiren | Percona (danışmanlık, destek ve açık kaynak ürünler sağlayan şirket) |
| Lisans (sunucu) | GPLv2 kapsamında özgür/açık kaynak yazılım |
| Uyumluluk | MySQL ile protokol/SQL uyumu yüksek; drop-in replacement hedefi |
| Ek değer | Gelişmiş enstrümantasyon, thread pool, denetim günlüğü, ek motorlar |
| Kümeleme | Percona XtraDB Cluster (PXC) ile senkron çok-master replikasyon |
Mimari ve Depolama Motorları
Percona Server, MySQL'in takılabilir depolama motoru mimarisini korur; aynı sunucuda tablodan tabloya farklı motor seçebilirsiniz. Tarihsel olarak Percona, InnoDB'nin geliştirilmiş bir çatallanması olan XtraDB motorunu öne çıkardı. Sonraki sürümlerde üst akış (upstream) InnoDB'nin gelişmesiyle Percona, standart InnoDB üzerine kendi yamalarını uygulama yaklaşımına ağırlık verdi. Bu nedenle kullandığınız sürümde varsayılan motorun tam davranışını sürüm notlarından doğrulamak önemlidir.
| Motor | Kullanım amacı |
|---|---|
| InnoDB / XtraDB | Varsayılan işlemsel motor; ACID işlemler, satır kilidi, foreign key. XtraDB, InnoDB'nin Percona iyileştirmeleri içeren çizgisidir |
| MyRocks | LSM-ağacı tabanlı; yazma yoğun ve disk/alan verimliliğinin önemli olduğu iş yükleri |
| MyISAM | Eski, işlemsiz motor; okuma ağırlıklı basit senaryolar |
| Memory | Verileri RAM'de tutar; geçici ve çok hızlı erişim gereken tablolar |
Kurumsal Özelliklerin Açık Kaynak Karşılığı
Percona Server'ın öne çıkan yanlarından biri, bazı ortamlarda yalnızca ticari/kurumsal sürümlerde bulunan özelliklerin açık kaynak olarak sunulmasıdır. Bu özellikler, üretim sistemlerini işletirken gözlemlenebilirliği ve kontrolü artırmaya yöneliktir. Başlıcaları:
- İş parçacığı havuzu (thread pool): çok sayıda eş zamanlı bağlantıda kaynak kullanımını daha orantılı yönetme
- Denetim günlüğü (audit log) eklentisi: kimin hangi işlemi yaptığını kayıt altına alma
- PAM kimlik doğrulama eklentisi: harici kimlik kaynaklarıyla (LDAP vb.) bütünleşme
- Gelişmiş yavaş sorgu günlüğü ve ek durum/kullanıcı istatistikleri ile daha ayrıntılı performans analizi
- Ek enstrümantasyon: sorgu ve kaynak davranışlarını daha ince taneli izleme
- Veri-durgun (at-rest) şifreleme ile ilgili genişletilmiş seçenekler
Percona Ekosistemi: Yardımcı Araçlar
Percona Server'ı cazip kılan önemli etkenlerden biri çevresindeki açık kaynak araç setidir. Bu araçlar MySQL ve uyumlu sunucularla da çalışır:
- Percona XtraBackup: InnoDB/XtraDB için çevrimiçi (hot) fiziksel yedek alan açık kaynak araç; yedek sırasında veritabanını kilitlemeden çalışabilir
- Percona Toolkit: şema değişikliği, çoğaltma (replikasyon) tutarlılık kontrolü, yavaş sorgu analizi gibi işler için komut satırı araçları
- Percona Monitoring and Management (PMM): veritabanı metriklerini toplayıp görselleştiren izleme platformu
- Percona XtraDB Cluster (PXC): senkron çok-master yüksek erişilebilirlik çözümü
- mysql / mysqldump ve standart istemci araçları: MySQL ile aynı şekilde kullanılır
Kurulum ve İlk Bağlantı
Percona Server; Linux dağıtımları için resmi paket depoları ve konteyner imajları üzerinden dağıtılır. Percona genellikle depoları yöneten bir yardımcı araç (percona-release) sağlar; güncel paket adları ve depo etkinleştirme adımları için resmi kurulum belgelerini takip edin. Aşağıda kavramsal, tipik bir Debian/Ubuntu akışı örneği yer alıyor.
# 1) Percona depo yardimcisini kur ve deposunu etkinlestir
# (guncel paket adi/surum icin resmi belgeleri izleyin)
sudo apt update
sudo apt install percona-release
sudo percona-release setup ps-80 # ornek: Percona Server 8.0 deposu
# 2) Percona Server paketini kur
sudo apt update
sudo apt install percona-server-server
# 3) Servisi baslat ve acilista etkinlestir
sudo systemctl enable --now mysql
# 4) Yerel baglanti (istemci MySQL ile ayni)
sudo mysql -u root -pTemel SQL Kullanımı
Percona Server MySQL uyumlu olduğu için günlük SQL kullanımı MySQL ile aynıdır. Aşağıdaki örnek; bir veritabanı ve tablo oluşturmayı, veri eklemeyi, sınırlı yetkili bir kullanıcı tanımlamayı ve basit bir analitik sorgu çalıştırmayı gösterir.
-- Veritabani ve tablo
CREATE DATABASE haber_portali
CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE haber_portali;
CREATE TABLE makaleler (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
baslik VARCHAR(200) NOT NULL,
yayin_tarihi DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
goruntulenme INT NOT NULL DEFAULT 0
) ENGINE=InnoDB;
-- Veri ekleme
INSERT INTO makaleler (baslik, goruntulenme) VALUES
('Percona Server Nedir?', 1500),
('Veritabani Turleri', 900);
-- Uygulama icin sinirli yetkili kullanici
CREATE USER 'app'@'%' IDENTIFIED BY 'guclu-parola';
GRANT SELECT, INSERT, UPDATE, DELETE ON haber_portali.* TO 'app'@'%';
FLUSH PRIVILEGES;
-- Pencere fonksiyonu ile siralama
SELECT baslik, goruntulenme,
RANK() OVER (ORDER BY goruntulenme DESC) AS sira
FROM makaleler;Yüksek Erişilebilirlik: Percona XtraDB Cluster
Tek sunucunun ötesine geçmek için en yaygın iki yaklaşım vardır. İlki, klasik asenkron/yarı-senkron replikasyon: bir birincil (primary) sunucudaki değişiklikler bir veya daha fazla ikincil (replica) sunucuya aktarılır. Bu, okuma yükünü dağıtmak ve yedek almak için yaygın bir yöntemdir; GTID tabanlı replikasyon tutarlılığı ve geçişi kolaylaştırır.
Daha yüksek yazma erişilebilirliği için Percona XtraDB Cluster (PXC) kullanılır. PXC, Galera tabanlı senkron ve sanal olarak çok-master (multi-master) bir replikasyon sağlar: bir işlem, kümedeki düğümlerde sertifikasyondan geçtikten sonra onaylanır. Bir düğüm düştüğünde diğerleri hizmet vermeye devam edebilir. Önünde bir yük dengeleyici ya da proxy ile okuma/yazma yönlendirmesi eklenebilir.
Yedekleme: Percona XtraBackup
Yüksek trafikli sistemlerde yedeklemenin veritabanını uzun süre kilitlememesi kritik önemdedir. Percona XtraBackup, InnoDB/XtraDB tabloları için çevrimiçi (hot) fiziksel yedek alarak bu ihtiyacı karşılar; yedek alınırken veritabanı hizmet vermeye devam edebilir. Alınan yedekler, felaket kurtarma ve yeni replica oluşturma gibi senaryolarda kullanılır.
Güvenlik
Percona Server, kurumsal ortamlar için gerekli güvenlik denetimlerini destekler. Önemli başlıklar:
- En az yetki ilkesi: her uygulama için ayrı kullanıcı ve yalnızca gereken izinler (GRANT)
- Aktarım güvenliği: istemci-sunucu trafiği için TLS/SSL
- Veri-durgun şifreleme: tablo alanları ve günlük dosyaları için at-rest şifreleme seçenekleri
- PAM ve harici kimlik doğrulama eklentileriyle merkezi kimlik yönetimi
- Rol tabanlı yetkilendirme (roles) ile izin yönetimini sadeleştirme
- Denetim günlüğü (audit log) eklentisiyle erişim ve değişiklikleri izleme
Ne Zaman Percona Server Seçmeli?
Percona Server, MySQL ekosistemine aşına ekipler için doğal bir tercihtir. Tipik senaryolar:
- Mevcut MySQL uygulamalarını değiştirmeden, ek gözlemlenebilirlik ve performans özellikleri kazanmak isteyenler
- Web uygulamaları ve haber/içerik yönetim sistemleri gibi OLTP iş yükleri
- Percona XtraDB Cluster ile yüksek erişilebilirlik hedefleyen orta ve büyük ölçekli servisler
- Çevrimiçi yedekleme (XtraBackup) ve gelişmiş izleme (PMM) araçlarını tek bir ekosistemde isteyen ekipler
Buna karşın bazı ihtiyaçlar için diğer sistemleri de değerlendirmek mantıklıdır. Geniş eklenti ekosistemi ve gelişmiş metin/coğrafi özellikler için PostgreSQL, kendi motor ve kümeleme yol haritası için MariaDB veya doğrudan üst akış MySQL daha uygun olabilir. Karşılaştırmalı bir bakış için veritabanı türleri rehberimize göz atabilirsiniz.
Lisans ve Yönetişim
Percona Server for MySQL, GPLv2 kapsamında özgür/açık kaynak yazılım olarak dağıtılır; kaynak kodu herkese açıktır. Percona şirketi ürünün geliştirilmesini yürütür ve ticari destek, danışmanlık, yönetilen hizmetler sunar; ancak yazılımın kendisini kullanmak için lisans ücreti gerekmez. Ekosistemdeki bazı araçlar farklı açık kaynak lisanslara sahip olabilir, bu yüzden her aracın lisans metnini ayrıca doğrulayın.
Haber Siteleri İçin Kısa Notlar
Yüksek trafikli haber ve içerik siteleri için veritabanı katmanı; okuma performansı, çevrimiçi yedekleme, yüksek erişilebilirlik ve tam Unicode/emoji desteği (utf8mb4) açısından doğru kurgulanmalıdır. Percona Server'ın gelişmiş izleme ve yedekleme araçları, artan yük altında darboğazları erken görmeye ve kesintisiz yayına yardımcı olur. Uygun indeksleme, mantıklı replikasyon topolojisi ve düzenli yedek tatbikatları, sahada en çok fark yaratan alıştırmalardır.