Percona Server for MySQL, MySQL Community Edition'in acik kaynak bir catallanmasidir (fork) ve buyuk olcude onun yerine gecebilecek (drop-in replacement) sekilde tasarlanmistir. Percona sirketi tarafindan gelistirilir; amaci MySQL ile uyumlu kalirken performans, olceklenme, gozlemlenebilirlik ve normalde ticari surumlerde bulunan bazi ozellikleri acik kaynak olarak sunmaktir. Bu yazida Percona Server'in ne oldugunu, MySQL ile iliskisini, mimarisini, ekosistem araclarini ve gercek dunyada nasil kullanildigini adim adim ele aliyoruz.

Percona Server for MySQL Nedir?

Percona Server for MySQL, SQL tabanli, iliskisel bir veritabani sunucusudur. Verileri satir ve sutunlardan olusan tablolarda tutar, tablolar arasindaki iliskileri anahtarlarla kurar ve ACID (Atomiklik, Tutarlilik, Izolasyon, Kaliclik) garantileri sunan islemler (transaction) uzerinden guncellenir. Cekirdek olarak MySQL kod tabanini kullandigi icin ayni SQL soz dizimi, ag protokolu ve istemci araclariyla calisir.

Percona Server'i ayri kilan sey, MySQL Community uzerine eklenen ek yamalar ve ozelliklerdir: gelismis enstrumantasyon, ek depolama motorlari, is parcacigi havuzu (thread pool), denetim gunlugu, kimlik dogrulama eklentileri ve daha ayrintili performans metrikleri gibi. Sunucu bileseni GPLv2 lisansi altinda dagitilir; bu da onu ozgur ve acik kaynakli bir yazilim yapar.

Ilgili rehberler: Veritabani turleri rehberi · MySQL Nedir? · MariaDB Nedir? · PostgreSQL Nedir?

Kisa Tarihce ve Amac

Percona, MySQL ekosistemine odaklanan bir danismanlik ve destek sirketi olarak kuruldu; kurucular arasinda Peter Zaitsev ve Vadim Tkachenko yer alir. Ekip, yuksek trafikli sistemlerde MySQL'i olceklerken karsilastigi ihtiyaclari karsilamak icin kendi iyilestirmelerini bir araya getirdi ve bunlari acik kaynak bir dagitim olarak yayinladi.

Temel felsefe suydu: MySQL ile uyumlulugu bozmadan, uretim ortamlarinda ise yarayan performans ve gozlemlenebilirlik ozelliklerini herkesin erisebilecegi sekilde sunmak. Bu yuzden Percona Server, MySQL'in surum cizgisini yakindan takip eder ve genellikle ayni ana surum numaralarini (orn. 5.7, 8.0 serileri) kullanir.

MySQL ile Iliskisi ve Uyumluluk

Percona Server, MySQL Community icin bir yerine gecebilir alternatif (drop-in replacement) olarak konumlanir. Ag protokolu, istemci kutuphaneleri ve SQL soz dizimi MySQL ile uyumlu oldugundan, MySQL icin yazilmis uygulamalar cogu zaman kod veya baglanti ayari degistirmeden calisir. Ayni mysql istemcisi, ayni surucü (connector) kutuphaneleri ve ayni yedekleme mantigi gecerlidir.

Buna karsin "uyumlu" ile "birebir ayni" farkli seylerdir. Percona Server ek degiskenler, ek durum sayaclari ve fazladan yapilandirma secenekleri sunar. Bir ortamdan digerine gecerken, ozellikle ek ozelliklere bel baglayan yapilandirmalarda test yapmak dogru yaklasimdir.

KonuAciklama
KokenMySQL Community kod tabaninin catallanmasi ve uzerine eklenmis yamalar
GelistirenPercona (danismanlik, destek ve acik kaynak urunler saglayan sirket)
Lisans (sunucu)GPLv2 kapsaminda ozgur/acik kaynak yazilim
UyumlulukMySQL ile protokol/SQL uyumu yuksek; drop-in replacement hedefi
Ek degerGelismis enstrumantasyon, thread pool, denetim gunlugu, ek motorlar
KumelemePercona XtraDB Cluster (PXC) ile senkron cok-master replikasyon

Mimari ve Depolama Motorlari

Percona Server, MySQL'in takilabilir depolama motoru mimarisini korur; ayni sunucuda tablodan tabloya farkli motor secebilirsiniz. Tarihsel olarak Percona, InnoDB'nin gelistirilmis bir catallanmasi olan XtraDB motorunu one cikardi. Sonraki surumlerde ust akis (upstream) InnoDB'nin gelismesiyle Percona, standart InnoDB uzerine kendi yamalarini uygulama yaklasimina agirlik verdi. Bu nedenle kullandiginiz surumde varsayilan motorun tam davranisini surum notlarindan dogrulamak onemlidir.

MotorKullanim amaci
InnoDB / XtraDBVarsayilan islemsel motor; ACID islemler, satir kilidi, foreign key. XtraDB, InnoDB'nin Percona iyilestirmeleri iceren cizgisidir
MyRocksLSM-agaci tabanli; yazma yogun ve disk/alan verimliliginin onemli oldugu is yukleri
MyISAMEski, islemsiz motor; okuma agirlikli basit senaryolar
MemoryVerileri RAM'de tutar; gecici ve cok hizli erisim gereken tablolar

Kurumsal Ozelliklerin Acik Kaynak Karsiligi

Percona Server'in one cikan yanlarindan biri, bazi ortamlarda yalnizca ticari/kurumsal surumlerde bulunan ozelliklerin acik kaynak olarak sunulmasidir. Bu ozellikler, uretim sistemlerini isletirken gozlemlenebilirligi ve kontrolu artirmaya yoneliktir. Baslicalari:

  • Is parcacigi havuzu (thread pool): cok sayida es zamanli baglantida kaynak kullanimini daha orantili yonetme
  • Denetim gunlugu (audit log) eklentisi: kimin hangi islemi yaptigini kayit altina alma
  • PAM kimlik dogrulama eklentisi: harici kimlik kaynaklariyla (LDAP vb.) butunlesme
  • Gelismis yavas sorgu gunlugu ve ek durum/kullanici istatistikleri ile daha ayrintili performans analizi
  • Ek enstrumantasyon: sorgu ve kaynak davranislarini daha ince taneli izleme
  • Veri-durgun (at-rest) sifreleme ile ilgili genisletilmis secenekler

Percona Ekosistemi: Yardimci Araclar

Percona Server'i cazip kilan onemli etkenlerden biri cevresindeki acik kaynak arac setidir. Bu araclar MySQL ve uyumlu sunucularla da calisir:

  • Percona XtraBackup: InnoDB/XtraDB icin cevrimici (hot) fiziksel yedek alan acik kaynak arac; yedek sirasinda veritabanini kilitlemeden calisabilir
  • Percona Toolkit: sema degisikligi, cogaltma (replikasyon) tutarlilik kontrolu, yavas sorgu analizi gibi isler icin komut satiri araclari
  • Percona Monitoring and Management (PMM): veritabani metriklerini toplayip gorsellestiren izleme platformu
  • Percona XtraDB Cluster (PXC): senkron cok-master yuksek erisilebilirlik cozumu
  • mysql / mysqldump ve standart istemci araclari: MySQL ile ayni sekilde kullanilir

Kurulum ve Ilk Baglanti

Percona Server; Linux dagitimlari icin resmi paket depolari ve konteyner imajlari uzerinden dagitilir. Percona genellikle depolari yoneten bir yardimci arac (percona-release) saglar; guncel paket adlari ve depo etkinlestirme adimlari icin resmi kurulum belgelerini takip edin. Asagida kavramsal, tipik bir Debian/Ubuntu akisi ornegi yer aliyor.

bash
# 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 -p

Temel SQL Kullanimi

Percona Server MySQL uyumlu oldugu icin gunluk SQL kullanimi MySQL ile aynidir. Asagidaki ornek; bir veritabani ve tablo olusturmayi, veri eklemeyi, sinirli yetkili bir kullanici tanimlamayi ve basit bir analitik sorgu calistirmayi gosterir.

sql
-- 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;

Yuksek Erisilebilirlik: Percona XtraDB Cluster

Tek sunucunun otesine gecmek icin en yaygin iki yaklasim vardir. Ilki, klasik asenkron/yari-senkron replikasyon: bir birincil (primary) sunucudaki degisiklikler bir veya daha fazla ikincil (replica) sunucuya aktarilir. Bu, okuma yukunu dagitmak ve yedek almak icin yaygin bir yontemdir; GTID tabanli replikasyon tutarliligi ve gecisi kolaylastirir.

Daha yuksek yazma erisilebilirligi icin Percona XtraDB Cluster (PXC) kullanilir. PXC, Galera tabanli senkron ve sanal olarak cok-master (multi-master) bir replikasyon saglar: bir islem, kumedeki dugumlerde sertifikasyondan gectikten sonra onaylanir. Bir dugum dustugunde digerleri hizmet vermeye devam edebilir. Onunde bir yuk dengeleyici ya da proxy ile okuma/yazma yonlendirmesi eklenebilir.

Yedekleme: Percona XtraBackup

Yuksek trafikli sistemlerde yedeklemenin veritabanini uzun sure kilitlememesi kritik onemdedir. Percona XtraBackup, InnoDB/XtraDB tablolari icin cevrimici (hot) fiziksel yedek alarak bu ihtiyaci karsilar; yedek alinirken veritabani hizmet vermeye devam edebilir. Alinan yedekler, felaket kurtarma ve yeni replica olusturma gibi senaryolarda kullanilir.

Guvenlik

Percona Server, kurumsal ortamlar icin gerekli guvenlik denetimlerini destekler. Onemli basliklar:

  • En az yetki ilkesi: her uygulama icin ayri kullanici ve yalnizca gereken izinler (GRANT)
  • Aktarim guvenligi: istemci-sunucu trafigi icin TLS/SSL
  • Veri-durgun sifreleme: tablo alanlari ve gunluk dosyalari icin at-rest sifreleme secenekleri
  • PAM ve harici kimlik dogrulama eklentileriyle merkezi kimlik yonetimi
  • Rol tabanli yetkilendirme (roles) ile izin yonetimini sadelestirme
  • Denetim gunlugu (audit log) eklentisiyle erisim ve degisiklikleri izleme

Ne Zaman Percona Server Secmeli?

Percona Server, MySQL ekosistemine asina ekipler icin dogal bir tercihtir. Tipik senaryolar:

  • Mevcut MySQL uygulamalarini degistirmeden, ek gozlemlenebilirlik ve performans ozellikleri kazanmak isteyenler
  • Web uygulamalari ve haber/icerik yonetim sistemleri gibi OLTP is yukleri
  • Percona XtraDB Cluster ile yuksek erisilebilirlik hedefleyen orta ve buyuk olcekli servisler
  • Cevrimici yedekleme (XtraBackup) ve gelismis izleme (PMM) araclarini tek bir ekosistemde isteyen ekipler

Buna karsin bazi ihtiyaclar icin diger sistemleri de degerlendirmek mantiklidir. Genis eklenti ekosistemi ve gelismis metin/cografi ozellikler icin PostgreSQL, kendi motor ve kumeleme yol haritasi icin MariaDB veya dogrudan ust akis MySQL daha uygun olabilir. Karsilastirmali bir bakis icin veritabani turleri rehberimize goz atabilirsiniz.

Lisans ve Yonetisim

Percona Server for MySQL, GPLv2 kapsaminda ozgur/acik kaynak yazilim olarak dagitilir; kaynak kodu herkese aciktir. Percona sirketi urunun gelistirilmesini yurutur ve ticari destek, danismanlik, yonetilen hizmetler sunar; ancak yazilimin kendisini kullanmak icin lisans ucreti gerekmez. Ekosistemdeki bazi araclar farkli acik kaynak lisanslara sahip olabilir, bu yuzden her aracin lisans metnini ayrica dogrulayin.

Haber Siteleri Icin Kisa Notlar

Yuksek trafikli haber ve icerik siteleri icin veritabani katmani; okuma performansi, cevrimici yedekleme, yuksek erisilebilirlik ve tam Unicode/emoji destegi (utf8mb4) acisindan dogru kurgulanmalidir. Percona Server'in gelismis izleme ve yedekleme araclari, artan yuk altinda darbogazlari erken gormeye ve kesintisiz yayina yardimci olur. Uygun indeksleme, mantikli replikasyon topolojisi ve duzenli yedek tatbikatlari, sahada en cok fark yaratan alistirmalardir.