MySQL High Availability Setup: DRBD, Pacemaker, Corosync

Kritik noktalarda çalışan MySQL servislerinde, yüksek erişilebilirlik sağlamak (high availability) ve herhangi problem anında mümkün olan en kısa sürede otomatik olarak tekrar servis verebilir duruma gelmek için uygulamanızın özelliklerine ve altyapınıza göre replikasyondan clustering’e birden fazla alternatif kullanabilirsiniz. Böyle bir ihtiyaç için seçilebilecek alternatiflerden birisi DRBD/Pacemaker/Corosync üçlüsünü kullanarak active/passive olmak üzere iki node’dan oluşan bir HA cluster kurmak olabilir.

Bu tip bir yapı ile http://dev.mysql.com/doc/refman/5.0/en/ha-drbd.html adresinde de anlatıldığı üzere iki adet (fiziksel ya da sanal) sunucu ile ortak bir storage vs. gibi herhangi ek bir yatırıma gerek kalmadan otomatik failover ve recovery özelliği ile servis devamlılığı ve senkron replikasyon (mirroring) yaparak data güvenliği sağlayan bir yapı elde edebilirsiniz.

Yazının devamında böyle bir yapının CentOS 6.5 ve MySQL 5.1 kullanılarak oluşturulmasına ait kurulum notlarını paylaşacağım.

Yazinin devami icin tiklayin.


MySQL – Stored Procedure ve Function’ların Yedeklenmesi

Mysql Logo mysqldump kullanarak bir veritabanını yedeklemek istediğiniz zaman özellikle belirtmezseniz stored procedure’ler ve function’lar backup’a dahil edilmiyor. Neden bilmiyorum ama öntanımlı olarak mysqldump bu verileri görmezden gelerek dump dosyasına yazmıyor. Dolayısı ile database’inizde tanımlı stored procedure’ler varsa, mysqldump cümlenize –routines paramtresini de eklemeniz gerekiyor.

Aksi halde, db’yi dump dosyasından geri dönmek gibi bir durum olduğu zaman, stored procedure’lerinizin yerinde yeller estiğini görebilirsiniz. Bu sebeple yedek alırken –routines parametesini her seferinde kullanmanızı öneririm.

Ayrıca,  –routines paramteresi, tüm db içeriğini almadan sadece stored procedure’leri dump etmek üzere de kullanılabilmektedir. Aşağıda her iki gereksinim için birer örnek mysqldump cümleciği bulabilirsiniz.

Yazinin devami icin tiklayin.


GreenSQL DB Firewall ile Sql Injection Önlemi

GreenSQL, sql injection saldırıları için database’leri koruma altına almak üzere geliştirilmiş bir database firewall uygulamasıdır. MySQL ve PostgreSQL’ler için destek sunan GreenSQL temel olarak proxy olarak çalışarak gerçek database’in önünde durur ve web uygulamasından gelen sql bağlantı isteklerini karşılayarak SQL komutlarını inceler ve bir risk scoring matrix kullanarak ilgili sql cümlelerini analiz ederek aksiyon alır.

Bu şekilde, web uygulamanızda bir sql injection açığı bulunsa dahi GreenSQL sayesinde açıktan etkilenmemeniz mümkün olabilir.  Detaylarına yazının devamında değineceğim GreenSQL temel olarak, default 3305 portunu dinler ve gelen sql istekleri için risk analizi yapar; güvenli olmaları durumunda komutları arkadaki sql sunucusuna iletir, eğer sql cümleleri güvenli değil ve daha önceden de Whitelist’e eklenmemişlerse blocklar ve uygulamaya boş bir cevap döndürür. GreenSQL’in IPS, IDS, Firewall ve Learning gibi modlarda çalıştırabilirsiniz. Özellikle learning modu false positive durumların önüne geçmek için çok kullanışlıdır. Ayrıca GreenSQL fiziksel olarak database sunucunuz ile aynı makinada çalışabilir ya da ayrı bir makina üzerine konumlandırabilirsiniz.

Yazının devamında, GreenSQL’in çalışma mantığından, kurulum ve yapılandırma işlemlerinden bahsedeceğim.

Yazinin devami icin tiklayin.


OpenX 2.8 Ad Server Kurulumu

OpenX, oldukça gelişmiş ve güzel bir reklam yötenim sistemidir. OpenX kullanarak sitenizde yayınladığınız reklamları kolayca yönetebilir ve reklam verenlerinize gelişmiş, istatistigi raportlama yapabilirsiniz. Php tabalı olan OpenX database olarak MySql kullanıyor ve oldukça performanslı çalışıyor. openx_logo

Ben, OpenX kullanarak, bir mysql bir apache olmak üzere,  Xeon 3Ghz işlemci ve 2GB ram’e sahip iki FreeBSD sunucu üzerinde aylık ortalama 100 milyon reklam gösterimi yapabiliyorum.  Sonuç olarak siz de reklam yönetimi için bir çözüm arıyorsanız, aradığınız OpenX olabilir.

Bu yazıda, OpenX’in nasıl kurulduğu ve genel geçer yönetim işleri anlatılmaktadır. (Kurulum FreeBSD 7.1 üzerinde yapılacaktır.)

OpenX aslında bir kaç kez ismi değişmiş ve bir çok revizyondan geçmiş bir yazılım. Zaman içinde phpAdsNew, Openads isimleri ile de tanınan bu güzel yazılımın son hali OpenX ve son sürümü 2.8.

İşte nasıl kurulduğu;

Yazinin devami icin tiklayin.


Mysql Root Şifresini Resetlemek – Password Recovery

Şifrelerinizi herhangi bir mecrada (password managerler dahil) yazılı bir şekilde tutmamak güvenlik tedbirlerinin başında gelen bir konudur. Ancak uzun zamandır uğrayıp hatrını sormadığınız bir mysql sunucunuz olabilir ve hatta bu nedenle zamanında belirlediğiniz şifreyi de unutmuş olabilirsiniz.

İşte bu gibi durumlarda yapılabilecek şeylerden biri şifreyi hatırlamak :) bir diğeri ise şifreyi resetlemektir. Neyseki mysql’in şifre resetleme prosedürü bir iki adımda halledilebilecek kadar basit bir olay. İnternette konu ile ilgili bulabileceğiniz bir çok dökümanın bir benzeri olan ve kendime not olması açısından yazdığım bu postta da, mysql şifrelerinin kolayca nasıl resetlenebileceği anlatılmaktadır.

İzlenmesi gereken adımlar şöyle:

Yazinin devami icin tiklayin.


MySQL Replication durumunu bir script ile check etmek

Bugün, HowtoForge‘da, Mysql master to master replication uygulamasının düzgün çalışıp çalışmadığını tespit edip durumu mail ile bildiren bir script uygulamasına ait güzel bir yazıya rastladım.

Eğer, Mysql sereverlarınız arasında master to master çalışan bir replikasyon uygulamanız varsa sürekli gözlem altında tutmak epey iyi bir fikirdir. Zira db replikasyon işleri, için oldum olası pis işler statüsündedir.

İşte nasıl yapıldığı:

Yazinin devami icin tiklayin.


Mysql – Backup to FTP (PHP Script)

Bir mysql sunucusundan mysqldump ile backup alıp ftp üzerinden uzaktaki bir sunucuya gönderen güzel bir php script.

İçeriği aşağıdaki gibi olan bu scripti kendi sisteminize göre düzenledikten sonra cron job olarak tanımlayabilirsiniz. Böylece periyodik olarak alınan backupları istediğiniz bir lokasyonda muhafaza edebilirsiniz.

Gerekenler

PHP
Bir FTP Hesabı
ve son olarak MYSQL

Uygulanışı

1 – Aşağıdaki script içeriğini serverınızda oluşturacağınız backuptoftp.php isimli bir dosyaya kopyalayın.

Yazinin devami icin tiklayin.


Lighttpd, Mysql, Php, Eaccelerator ile OpenAds Ad Server kurulumu.

OpenAds, Ad Server diye tabir edilen bir reklam serverı yazılımıdır. Bu yazılım ile, sitenizde yayınladığınız reklam bannerlarını yönetebilir, bannerlerin ne sıkılıkla, hangi tarihler arası gösterileceği vs. gibi konularda gelişmiş bir yönetim sağlayabilirsiniz.

OpenAds’in yayınlanmış olan son sürümünden önceki Phpads olarak anılan 2.0 sürümünü kurarak, yüksek hit alan bir kaç site üzerindeki performansını inceleme şansım olmuştu. Php ile kodlanmış olan bu yazılım, Apache ve Mysql üzerinde çalışıyor ve performansı gerçekten oldukça iyi.

Bu entryde de FreeBSD üzerinde yapmış olduğum OpenAds son sürümü olan 2.4 kurulumunun notlarını paylaşacağım.

Yazinin devami icin tiklayin.