Takip et

Yeni Bir Percona Server Kurulumu veya Mevcut MySQL’in Değiştirilmesi: Adım Adım Kapsamlı Rehber

Yeni Bir Percona Server Kurulumu veya Mevcut MySQL’in Değiştirilmesi: Adım Adım Kapsamlı Rehber Giriş Veritabanı yönetim sistemleri, modern

Yeni Bir Percona Server Kurulumu veya Mevcut MySQL’in Değiştirilmesi: Adım Adım Kapsamlı Rehber

Giriş

Veritabanı yönetim sistemleri, modern uygulamaların ve altyapıların temelini oluşturur. MySQL, bu alandaki en popüler seçeneklerden biridir, ancak Oracle’ın satın almasından sonra açık kaynak topluluğu alternatiflere yönelmiştir. Percona Server for MySQL, MySQL’in açık kaynaklı ve gelişmiş bir dağıtımı olarak öne çıkar. Yüksek performans, geliştirilmiş özellikler, gelişmiş gözlemlenebilirlik ve daha iyi ölçeklenebilirlik sunarak özellikle yoğun iş yüküne sahip ve performans odaklı ortamlar için cazip bir seçenek haline gelmiştir. Bu kapsamlı rehberde, sıfırdan bir Percona Server kurulumunu veya mevcut bir MySQL kurulumunun Percona Server ile nasıl değiştirileceğini adım adım inceleyeceğiz. Amacımız, hem yeni başlayanlar hem de deneyimli yöneticiler için eksiksiz ve uygulanabilir bir yol haritası sunmaktır.

Percona Server’ın Avantajları

Percona Server, MySQL’in temel özelliklerini korurken, çeşitli iyileştirmeler ve ek özellikler sunar. Bu avantajlar, onu birçok işletme için tercih edilen bir veritabanı çözümü yapar.

Performans İyileştirmeleri

Percona Server, özellikle yüksek eşzamanlılık ve yoğun I/O iş yükleri altında MySQL’e göre önemli performans artışları sunar. Örneğin, Thread Pool özelliği, sunucunun bağlantıları daha verimli yönetmesini sağlayarak performansı artırır. TCMalloc veya jemalloc gibi bellek ayırıcılar, bellek yönetimini optimize ederek genel sistem yanıt sürelerini iyileştirir. Ayrıca, InnoDB depolama motoru için yapılan özel iyileştirmeler, disk I/O’sunu azaltır ve sorgu işleme hızını artırır.

Gelişmiş Özellikler

Percona Server, standart MySQL’de bulunmayan veya daha gelişmiş versiyonları sunulan bir dizi özellik ile gelir. Percona Toolkit, veritabanı yönetimi ve sorun giderme için güçlü komut satırı araçları setidir. Percona XtraBackup, sıcak (online) yedekleme ve geri yükleme için endüstri standardı bir çözümdür. Audit Log özelliği, veritabanı üzerindeki tüm etkinlikleri detaylı bir şekilde kaydetme imkanı sunarken, Data-at-rest encryption verilerin depolandığı yerde şifrelenmesini sağlayarak güvenlik seviyesini artırır.

Açık Kaynak ve Destek

Percona Server tamamen açık kaynaklıdır ve bu, topluluk tarafından sürekli olarak geliştirildiği ve desteklendiği anlamına gelir. Şeffaf geliştirme süreci ve geniş bir kullanıcı tabanı, sorun giderme ve bilgi paylaşımı için zengin bir kaynak sağlar. Percona, aynı zamanda kurumsal düzeyde teknik destek ve danışmanlık hizmetleri sunarak, işletmelerin kritik veritabanı altyapılarını güvenle yönetmelerine yardımcı olur. Bu açık kaynak yaklaşımı, satıcı kilitlenmesini önler ve esneklik sunar.

Kuruluma Başlamadan Önce Hazırlıklar

Percona Server kurulumuna başlamadan önce dikkatli bir hazırlık yapmak, sorunsuz bir geçiş veya kurulum süreci için kritik öneme sahiptir.

Sistem Gereksinimleri

Percona Server, çoğu Linux dağıtımında (CentOS/RHEL, Debian/Ubuntu gibi) çalışır. Kurulum yapılacak sunucunun yeterli CPU, RAM ve disk I/O kapasitesine sahip olduğundan emin olun. Özellikle yoğun iş yükleri için yeterli RAM (örneğin, innodb_buffer_pool_size için ayrılacak alan) ve yüksek hızlı SSD diskler önerilir. Ağ yapılandırmasının doğru olduğundan ve veritabanı sunucusunun diğer uygulamalarla iletişim kurabileceği şekilde güvenlik duvarı kurallarının ayarlandığından emin olun.

Veri Yedekleme (Mevcut MySQL Değişimi İçin)

Mevcut bir MySQL kurulumunu Percona Server ile değiştirecekseniz, mutlaka kapsamlı bir yedekleme yapmalısınız. Bu adım, herhangi bir veri kaybını önlemek için hayati öneme sahiptir. Yedekleme için mysqldump veya Percona XtraBackup kullanabilirsiniz. mysqldump, mantıksal yedekler için uygunken, XtraBackup fiziksel, sıcak yedekler alarak büyük veritabanları için daha hızlı ve daha az kesinti süreli bir çözüm sunar. Yedeklerinizi birden fazla yere kopyalayın ve geri yükleme işlemini test ederek yedeklerinizin geçerliliğinden emin olun.

Mevcut MySQL Kurulumunu Kaldırma (Mevcut MySQL Değişimi İçin)

Eğer mevcut bir MySQL sunucusunu Percona ile değiştirecekseniz, öncelikle MySQL servisini durdurmanız ve ardından tüm ilgili paketleri ve dosyaları kaldırmanız gerekir.
MySQL servisini durdurun:

sudo systemctl stop mysql
sudo systemctl disable mysql

Paketleri kaldırın (Debian/Ubuntu için):

sudo apt remove --purge mysql-server mysql-client mysql-common mysql-server- mysql-client-
sudo apt autoremove
sudo apt clean

Paketleri kaldırın (CentOS/RHEL için):

sudo yum remove mysql mysql-server mysql-client mysql-common
sudo rm -rf /var/lib/mysql /etc/my.cnf /etc/mysql

Veritabanı dizinini ve yapılandırma dosyalarını temizleyin. Bu adımda dikkatli olun, veri kaybına yol açabilir!

sudo rm -rf /var/lib/mysql
sudo rm -rf /etc/mysql /etc/my.cnf

Bu adımlar, Percona Server’ın temiz bir ortamda kurulmasını sağlar ve potansiyel çakışmaları önler.

Güvenlik Önlemleri

Kurulumdan önce güvenlik duvarı (firewall) ayarlarınızı kontrol edin. Percona Server genellikle 3306 portunu kullanır. Bu portun sadece güvenilir IP adreslerinden erişilebilir olduğundan emin olun. SELinux (CentOS/RHEL) veya AppArmor (Debian/Ubuntu) gibi güvenlik mekanizmalarının Percona Server’ın çalışmasını engellememesi için gerekli izinleri yapılandırın veya geçici olarak devre dışı bırakın (test ortamları için). Üretim ortamlarında güvenlik duvarı ve SELinux/AppArmor ayarları titizlikle yapılmalıdır.

Yeni Bir Percona Server Kurulumu

Sıfırdan bir Percona Server kurulumu, birkaç basit adımda gerçekleştirilebilir. Bu bölümde, Debian/Ubuntu ve CentOS/RHEL tabanlı sistemler için kurulum adımlarını inceleyeceğiz.

Adım 1: Percona APT/YUM Depolarını Ekleme

Percona Server paketleri, genellikle işletim sisteminin varsayılan depolarında bulunmaz. Bu nedenle, Percona’nın kendi depolarını sisteminize eklemeniz gerekir.

Debian/Ubuntu için:

sudo apt update
sudo apt install wget gnupg2 -y
wget https://repo.percona.com/apt/percona-release_latest.generic_all.deb
sudo dpkg -i percona-release_latest.generic_all.deb
sudo apt update

Percona Server’ın belirli bir sürümünü veya yalnızca Percona Server’ı etkinleştirmek için:

sudo percona-release setup ps80
sudo apt update

CentOS/RHEL için:

sudo yum install -y https://repo.percona.com/yum/percona-release-latest.noarch.rpm

Percona Server’ın belirli bir sürümünü etkinleştirmek için (örneğin, 8.0):

sudo percona-release enable-only ps80

Adım 2: Percona Server Paketlerini Kurma

Depolar eklendikten ve güncellendikten sonra, Percona Server paketlerini yükleyebilirsiniz.

Debian/Ubuntu için:

sudo apt install percona-server-server percona-server-client -y

Kurulum sırasında, root kullanıcısı için bir şifre belirlemeniz istenebilir. Güçlü bir şifre belirlediğinizden emin olun.

CentOS/RHEL için:

sudo yum install percona-server-server percona-server-client -y

CentOS/RHEL’de ilk kurulumda root şifresi genellikle otomatik olarak oluşturulur ve hata logunda (/var/log/mysqld.log) bulunur.

Adım 3: Percona Server’ı Başlatma ve Güvenli Hale Getirme

Kurulum tamamlandıktan sonra Percona Server servisini başlatın ve sistem başlangıcında otomatik başlaması için etkinleştirin.

sudo systemctl start mysql
sudo systemctl enable mysql

Servisin durumunu kontrol edin:

sudo systemctl status mysql

Ardından, mysql_secure_installation betiğini çalıştırarak veritabanı kurulumunuzu güvenli hale getirin. Bu betik, anonim kullanıcıları kaldırmanıza, uzaktan root girişini devre dışı bırakmanıza, test veritabanını kaldırmanıza ve ayrıcalık tablolarını yeniden yüklemenize yardımcı olur.

sudo mysql_secure_installation

CentOS/RHEL’de ilk defa mysql_secure_installation çalıştırırken, öncelikle root kullanıcısının geçici şifresini bulmanız gerekebilir:

sudo grep 'temporary password' /var/log/mysqld.log

Bu şifreyi kullanarak mysql -u root -p ile giriş yapabilir ve ardından ALTER USER 'root'@'localhost' IDENTIFIED BY 'YeniGucluSifre'; komutuyla şifreyi değiştirebilirsiniz. Daha sonra mysql_secure_installation‘ı tekrar çalıştırabilirsiniz.

Adım 4: Yapılandırma

Percona Server’ın varsayılan yapılandırma dosyası genellikle /etc/mysql/my.cnf (Debian/Ubuntu) veya /etc/my.cnf (CentOS/RHEL) konumundadır. Bu dosyayı düzenleyerek sunucunuzun performansını optimize edebilirsiniz.
Önemli yapılandırma parametreleri:
* innodb_buffer_pool_size: RAM’inizin %50-70’i kadar bir değer önerilir.
* innodb_log_file_size: Genellikle 256M veya 512M olarak ayarlanır.
* max_connections: Eşzamanlı bağlantı sayısını belirler.
* character_set_server ve collation_server: Karakter setini ve sıralamasını ayarlar (örn. utf8mb4).
* query_cache_size: MySQL 8.0 ve Percona Server 8.0’da sorgu önbelleği kaldırılmıştır, bu yüzden bu parametreyi kullanmayın.

Değişiklikleri uyguladıktan sonra servisi yeniden başlatın:

sudo systemctl restart mysql

Mevcut MySQL’i Percona Server ile Değiştirme

Mevcut bir MySQL kurulumunu Percona Server ile değiştirmek, yeni bir kurulumdan daha fazla dikkat ve planlama gerektirir, özellikle veri geçişi söz konusu olduğunda.

Adım 1: Mevcut MySQL Verilerini Yedekleme

Bu adım, veri kaybını önlemek için en kritik adımdır. Daha önce de belirtildiği gibi, mysqldump veya Percona XtraBackup kullanabilirsiniz.

mysqldump ile yedekleme:

mysqldump --all-databases --single-transaction --flush-logs --master-data=2 --triggers --routines --events > /path/to/backup/full_backup.sql

Bu komut, tüm veritabanlarını, tetikleyicileri, saklı yordamları ve olayları içeren tutarlı bir yedek alır.

Percona XtraBackup ile yedekleme:
Eğer mevcut MySQL sürümünüz Percona XtraBackup ile uyumluysa (genellikle MySQL 5.6+ ve Percona Server 5.6+), bu daha hızlı ve kesintisiz bir yedekleme yöntemidir.

innobackupex --user=root --password=YOUR_MYSQL_ROOT_PASSWORD /path/to/backup/directory

Bu komut, root kullanıcısı ile veritabanının fiziksel bir kopyasını belirtilen dizine alır.

Adım 2: MySQL Servisini Durdurma ve Kaldırma

Yedekleme tamamlandıktan sonra, mevcut MySQL servisini durdurun ve tüm MySQL paketlerini ve ilgili dosyaları sistemden kaldırın. Bu adımlar “Kuruluma Başlamadan Önce Hazırlıklar” bölümünde ayrıntılı olarak açıklanmıştır.
Tekrar hatırlatma: Veri dizinlerini (/var/lib/mysql) ve yapılandırma dosyalarını (/etc/mysql veya /etc/my.cnf) kaldırmak, eğer mysqldump ile yedeklediyseniz sorun yaratmaz. Ancak XtraBackup ile fiziksel bir yedek aldıysanız ve bu yedekleri doğrudan Percona Server’a geri yükleyecekseniz, /var/lib/mysql dizinini kaldırmayın veya dikkatli olun, çünkü XtraBackup bu dizini doğrudan kullanabilir. En güvenlisi, MySQL’i kaldırırken veri dizinini temizlemektir ve XtraBackup ile geri yüklerken temiz bir /var/lib/mysql dizinine geri yüklemektir.

Adım 3: Percona Server Kurulumu

Mevcut MySQL kaldırıldıktan sonra, yukarıdaki “Yeni Bir Percona Server Kurulumu” bölümündeki adımları takip ederek Percona Server’ı kurun.
Önemli Not: Eğer Percona XtraBackup ile fiziksel bir yedek alıp geri yükleyecekseniz, Percona Server’ı kurarken veritabanı dizinini başlatmamasını sağlamanız gerekebilir. Bazı kurulum betikleri otomatik olarak /var/lib/mysql dizinini başlatır. Bu durumda, Percona Server’ı kurduktan hemen sonra servisi durdurun ve /var/lib/mysql dizinini silip XtraBackup verilerini oraya kopyalayın.

Adım 4: Verileri Geri Yükleme

Percona Server kurulduktan sonra, yedeklediğiniz verileri geri yükleme zamanı gelmiştir.

mysqldump ile Geri Yükleme:
Percona Server’ı başlatın ve mysql_secure_installation adımlarını tamamlayın. Ardından, full_backup.sql dosyasını geri yükleyin:

mysql -u root -p < /path/to/backup/full_backup.sql

Bu işlem, veritabanının boyutuna bağlı olarak zaman alabilir.

Percona XtraBackup ile Geri Yükleme:
Bu yöntem, özellikle büyük veritabanları için daha hızlıdır ve innodb tablolarının tutarlılığını korur.
1. Yedeklemeyi Hazırlama (Prepare):
Yedekleme dizinine gidin ve yedeklemeyi hazırlayın. Bu adım, yedekleme sırasında tamamlanmamış işlemleri geri alır ve tamamlanmış işlemleri uygular.

innobackupex --apply-log --use-memory=1G /path/to/backup/directory

--use-memory parametresini sisteminizdeki uygun bir değerle değiştirin.

2. Verileri Geri Kopyalama (Copy Back):
Hazırlanan verileri Percona Server'ın veri dizinine kopyalayın. Bu adımdan önce Percona Server'ın kapalı olduğundan ve /var/lib/mysql dizininin boş olduğundan emin olun.

innobackupex --copy-back /path/to/backup/directory

Bu işlem tamamlandıktan sonra, /var/lib/mysql dizini yedeklediğiniz verilerle doldurulacaktır.

3. İzinleri Ayarlama:
Kopyalanan verilere mysql kullanıcısı ve grubunun sahip olduğundan emin olun:

sudo chown -R mysql:mysql /var/lib/mysql

4. Percona Server'ı Başlatma:
Artık Percona Server'ı başlatabilirsiniz:

sudo systemctl start mysql

Logları kontrol ederek herhangi bir hata olup olmadığını doğrulayın:

sudo journalctl -u mysql -f

Adım 5: Yapılandırma ve Optimizasyon

Veriler geri yüklendikten sonra, my.cnf dosyasını Percona Server'ın yeni özelliklerini ve performans iyileştirmelerini kullanacak şekilde optimize edin. Mevcut MySQL yapılandırmanızdaki önemli parametreleri (örn. innodb_buffer_pool_size, max_connections) yeni Percona Server ortamınıza uyacak şekilde ayarlayın. Percona Server'a özgü yeni parametreleri inceleyin ve uygun olanları uygulayın. Yapılandırma değişikliklerinden sonra servisi yeniden başlatmayı unutmayın.

Kurulum Sonrası Kontroller ve Optimizasyon

Percona Server kurulumu veya MySQL değişimi tamamlandıktan sonra, sistemin düzgün çalıştığından emin olmak ve performansı en üst düzeye çıkarmak için bazı kontroller ve optimizasyonlar yapmak önemlidir.

Servis Durumu Kontrolü

Percona Server servisinin çalıştığından emin olun:

sudo systemctl status mysql

MySQL istemcisi ile bağlanarak versiyonu kontrol edin:

mysql -V

Bağlantı kurarak basit bir sorgu çalıştırın:

mysql -u root -p -e "SHOW DATABASES;"

Log Kontrolü

Hata loglarını (/var/log/mysql/error.log veya journalctl -u mysql) düzenli olarak kontrol edin. Herhangi bir uyarı veya hata olup olmadığını inceleyin. Yavaş sorgu loglarını etkinleştirerek (slow_query_log = 1, long_query_time = 1) performans sorunlarına neden olan sorguları tespit edebilirsiniz.

Bağlantı Testi

Veritabanına yerel olarak ve uzaktan (uygulama sunucularından) bağlanabildiğinizden emin olun. Gerekirse güvenlik duvarı kurallarını ve kullanıcı izinlerini (GRANT komutları) ayarlayın.

Performans Ayarları

my.cnf dosyasındaki parametreleri sunucunuzun kaynaklarına (CPU, RAM, Disk I/O) ve iş yükünüze göre ayarlayın. innodb_buffer_pool_size, innodb_log_file_size, max_connections, query_cache_size (MySQL 8.0 ve Percona Server 8.0'da kaldırıldı), tmp_table_size, max_heap_table_size gibi parametreler kritik öneme sahiptir. Percona Toolkit araçları (pt-query-digest, pt-mysql-summary) ile performans analizi yapabilirsiniz. Percona Monitoring and Management (PMM) entegrasyonu, veritabanı performansını gerçek zamanlı izlemek için güçlü bir çözümdür.

Güvenlik Ayarları

mysql_secure_installation ile temel güvenlik adımlarını tamamlamış olsanız da, kullanıcı izinlerini gözden geçirin ve en az ayrıcalık ilkesini uygulayın. Uygulamalar için ayrı kullanıcılar oluşturun ve sadece ihtiyaç duydukları ayrıcalıkları verin. Uzaktan erişimi kısıtlayın, güçlü şifre politikaları uygulayın ve periyodik güvenlik denetimleri yapın.

Yedekleme Stratejisi

Yeni Percona Server kurulumunuz için düzenli ve otomatik bir yedekleme stratejisi oluşturun. Percona XtraBackup kullanarak sıcak ve fiziksel yedekler almayı düşünün. Yedeklerin düzenli olarak test edildiğinden ve felaket kurtarma planınızın bir parçası olduğundan emin olun.

Sık Karşılaşılan Sorunlar ve Çözümleri

Kurulum veya geçiş sırasında karşılaşabileceğiniz bazı yaygın sorunlar ve olası çözümleri aşağıda listelenmiştir.

Paket Bağımlılıkları

Sorun: Percona depoları eklenirken veya paketler kurulurken bağımlılık hataları.
Çözüm: apt update veya yum update komutlarını çalıştırarak depoları güncelleyin. Gerekli bağımlılıkları manuel olarak yüklemeyi deneyin (örn. gnupg2 veya wget).

Yapılandırma Hataları

Sorun: Percona Server'ın başlamaması veya my.cnf dosyasındaki hatalar nedeniyle beklenmedik davranışlar.
Çözüm: my.cnf dosyasını dikkatlice kontrol edin. Yanlış yazılmış parametreler veya geçersiz değerler olup olmadığını kontrol edin. Hata loglarını (/var/log/mysql/error.log veya journalctl -u mysql) inceleyerek hatanın nedenini belirleyin. Genellikle son yapılan değişikliği geri almak sorunu çözebilir.

İzin Sorunları

Sorun: Percona Server'ın veri dizinine (/var/lib/mysql) veya log dizinine yazma izinlerinin olmaması.
Çözüm: Veri dizini ve altındaki tüm dosyaların mysql kullanıcısı ve grubuna ait olduğundan emin olun: sudo chown -R mysql:mysql /var/lib/mysql. Gerekirse dizin izinlerini chmod ile ayarlayın. SELinux veya AppArmor'ın engellemediğinden emin olun.

Yetersiz Kaynaklar

Sorun: Percona Server'ın yavaş çalışması veya sık sık çökmesi.
Çözüm: Sunucunuzun yeterli RAM, CPU ve disk I/O kapasitesine sahip olduğunu doğrulayın. my.cnf dosyasındaki innodb_buffer_pool_size gibi parametrelerin sistemin fiziksel RAM'ine uygun olduğundan emin olun. Daha fazla kaynak tahsis etmeniz veya iş yükünü optimize etmeniz gerekebilir.

Veri Uyumluluğu (MySQL Değişimi İçin)

Sorun: MySQL'den Percona Server'a geçiş sonrası karakter setleri, collation veya belirli SQL fonksiyonları ile ilgili sorunlar.
Çözüm: Geri yükleme sonrası tüm veritabanlarının ve tabloların doğru karakter setine (utf8mb4 önerilir) sahip olduğundan emin olun. Mevcut MySQL sürümünüzdeki deprecated (kullanımdan kaldırılmış) özelliklerin Percona Server'da nasıl ele alındığını araştırın ve my.cnf'yi buna göre güncelleyin.

Sonuç

Percona Server for MySQL, yüksek performans, gelişmiş özellikler ve sağlam bir açık kaynak desteği sunarak MySQL'e güçlü bir alternatif veya yükseltme seçeneği sunar. Bu rehberde, sıfırdan bir Percona Server kurulumunu ve mevcut bir MySQL kurulumunun Percona Server ile nasıl değiştirileceğini detaylı bir şekilde ele aldık. Kurulum öncesi hazırlıklardan, adım adım kurulum ve geçiş süreçlerine, sonrasındaki optimizasyon ve sorun giderme ipuçlarına kadar kapsamlı bir yol haritası sunmayı amaçladık. Unutmayın ki, başarılı bir kurulum veya geçişin anahtarı, dikkatli planlama, kapsamlı yedekleme ve sisteminize özel yapılandırma ayarlarıdır. Bu rehberdeki adımları takip ederek, Percona Server'ın sunduğu tüm avantajlardan faydalanmaya başlayabilirsiniz.

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.