Yükseltme Öncesi Hazırlık
CentOS 6.9 desteği sona ermiştir; mümkünse işletim sistemi yükseltmesi planlayın. MySQL 5.5'ten 5.7'ye doğrudan atlama desteklenir ancak ara sürüm kontrolleri yapılmalıdır. Tam fiziksel yedek ve mantıksal mysqldump --all-databases --single-transaction alın.
Uygulama kodunda eski SQL modları ve utf8mb4 uyumluluğunu test edin. 5.7 varsayılan sql_mode STRICT_TRANS_TABLES içerir; sessiz veri kesilmesi artık hata üretir.
MySQL Yum Deposu
Oracle MySQL yum deposunu ekleyin. mysql-community-release-el6-5.noarch.rpm paketi repo tanımlar. yum remove mysql mysql-server eski paketleri kaldırır; veri dizini /var/lib/mysql korunmalıdır. Yedek almadan remove yapmayın.
yum install mysql-community-server 5.7 sürümünü kurar. Alternatif MariaDB migration farklı adımlar gerektirir; karıştırmayın.
Yükseltme Adımları
Servisi durdurun. RPM upgrade sonrası systemctl start mysqld. mysql_upgrade -u root -p sistem tablolarını günceller. error log /var/log/mysqld.log dosyasını izleyin.
- Bakım penceresi planlayın ve paydaşları bilgilendirin.
- Replikasyon varsa önce slave sonra master yükseltin.
- my.cnf buffer pool boyutunu RAM'e göre ayarlayın.
- Performance schema ek yük getirir; ihtiyaç yoksa kapatın.
- Geri dönüş için eski RPM ve datadir yedeğini saklayın.
Uyumluluk Sorunları
0130 datetime default NULL uyarıları 5.7'de strict modda hataya döner. ZERO_DATE ve implicit cast düzeltmeleri gerekir. GROUP BY sorgular ONLY_FULL_GROUP_BY ile kırılabilir.
Doğrulama ve İzleme
SELECT VERSION(); ile sürümü doğrulayın. Kritik uygulama senaryolarını staging'de test edin. slow query log açık tutarak performans regresyonunu yakalayın.
CentOS 6 üzerinde 5.7 uzun vadeli çözüm değildir; Rocky Linux 8 veya 9 migration roadmap oluşturun.
Sonuç
MySQL 5.7 yükseltmesi yedek ve mysql_upgrade ile tamamlanır. OS ve DB sürümü birlikte planlanmalı; CentOS 6 üretimde kalmamalıdır.
Rollback Planı
Upgrade başarısızsa datadir yedeğine dönün. mysqlcheck tutarlılık kontrolü yapar. Binary log replikasyonu etkiler. Logical backup taşınabilir; xtrabackup hızlıdır. Test ortamında aynı adımları önce deneyin.
sql_mode ve utf8mb4
STRICT_TRANS_TABLES sessiz kesilmeyi hataya çevirir. ONLY_FULL_GROUP_BY sorguları kırabilir. utf8mb4 emoji desteği sağlar. Query cache MySQL 8'de kaldırıldı. innodb_buffer_pool RAM'e göre ayarlanır.
CentOS 6 EOL
CentOS 6 desteği bitti; Rocky 8 veya AlmaLinux 8 planlayın. Percona Monitoring metrik toplar. replication lag alert tanımlayın. mysql_upgrade şema tablolarını günceller. Slow query log performans analizi için açın.
Replikasyon Sırası
Master-slave topolojide önce slave durdurulur ve yükseltilir. Relay log temizliği yapılır. GTID modunda otomatik pozisyon bulunur. Galera cluster rolling restart sırası dokümante edilmelidir.
mysql_upgrade compatibility tablolarını günceller. Performance_schema ek yük getirir. InnoDB file per table yedeklemeyi kolaylaştırır.
Yum exclude mysql55 paket çakışmasını önler. Alternatif MariaDB migration ayrı plan gerektirir. Disk alanı upgrade için en az %20 boş bırakın.
Yükseltme Adımları Detay
mysql-community-release rpm ile resmi depo eklenir. yum remove mysql55 mysql55-server eski paketi kaldırır. yum install mysql-community-server 5.7 kurar. service mysqld start sonrası geçici root parolası log'da görünür.
mysql_secure_installation ilk güvenlik adımlarını uygular. mysql_upgrade -u root -p şema tablolarını günceller. Replication slave'de STOP SLAVE; START SLAVE sırası korunmalıdır.
Performans Ayarı
my.cnf innodb_log_file_size transaction log boyutunu belirler. max_connections eşzamanlı oturum sınırıdır. slow_query_log_long_query_time eşik değeri ayarlanır.
Sonuç
MySQL 5.5'ten 5.7'ye yükseltme dikkatli planlama gerektirir. Tam yedek, test ortamı doğrulaması ve rollback prosedürü zorunludur. sql_mode değişiklikleri uygulama kodunu etkileyebilir. CentOS 6 EOL gerçeği nedeniyle işletim sistemi migrasyonu da gündeme alınmalıdır. Yükseltme sonrası performans metriklerini izleyin.
Post-Upgrade Kontrol
SHOW VARIABLES LIKE 'version'; sürümü doğrular. SHOW ENGINE INNODB STATUS lock bekleyen transaction gösterir. pt-query-digest slow log analizi yapar.
Karakter Seti Migrasyonu
utf8'den utf8mb4'e dönüşüm ALTER TABLE CONVERT TO CHARACTER SET utf8mb4 gerektirir. Emoji içeren kolonlar varchar uzunluğunu artırabilir. Index key length limiti kontrol edilmelidir.
Upgrade sonrası application regression test suite çalıştırın. ORM katmanı sql_mode değişikliğine duyarlı olabilir.
MariaDB'ye geçiş farklı yum deposu ve config syntax gerektirir; migration guide takip edin.
Yedek dosyası farklı fiziksel lokasyonda saklanmalıdır; tek sunucuda yedek felaket kurtarmada yetersiz kalır.
mysql_config_editor login path şifreli credential saklar; script otomasyonunda güvenli alternatiftir.
pt-online-schema-change büyük tablolarda lock süresini minimize eder.
Oracle MySQL resmi migration notes dokümanı breaking change listesi içerir.
Performance_schema events_statements_history uzun sorgu analizi sunar.
Binlog_format ROW statement yerine satır bazlı replikasyon tercih edilir.
mysql_upgrade ve Replikasyon
mysql_upgrade sistem tablolarını uyarlar. Slave önce yükseltilir, ardından master. GTID modu binlog tutarlılığı gerektirir.
Performans Şeması
slow_query_log uzun sorguları yakalar. utf8mb4 emoji desteği sağlar. Query cache 5.7'de deprecated'tir.
Backup ve sql_mode
mysqldump --single-transaction tutarlı yedek alır. ONLY_FULL_GROUP_BY eski sorguları etkiler. Zero date strict modda reddedilir.
Bu yazı hakkında görüşlerinizi paylaşın