Soru MySQL'in tek başına kurulması gerekiyor


Sık sık insanların "MySQL sunucu makinemiz başarısız" gibi ifadeler aldığını duymaktayım. Bu da bana MySQL sunucusu olarak tek bir makineyi adadıkları izlenimini veriyor (sanırım sadece işletim sistemini ve sadece MySQL'i kuruyorlar). Bir geliştirici olmayan bir sysadmin olarak, web sunucusu ve PHP ile birlikte bir LAMP yığınının parçası olarak kurulan MySQL'e alışkınım.

Birisi bana açıklayabilir mi:

  • MySQL'i ayrı bir sunucuya kurmanın amacı nedir? Tüm lambayı oraya ekleyebildiğimde ve ek sunucular da kaynak israfı gibi geliyor.
  • Veritabanı ayrı bir makinede ise, kullanımı gereken uygulamalar ona nasıl bağlanır?

20
2018-03-14 12:18


Menşei




Cevaplar:


Uygulama platformunuz ve veritabanınız kaynaklar için rekabet ettiğinde, genellikle özel bir veritabanı sunucusuna hazır olduğunuzun ilk göstergesidir.

İkincisi, yüksek kullanılabilirlik: bir veritabanı kümesinin kurulması (ve genellikle sırayla, yük dengeli bir Web / uygulama sunucusu kümesi).

Ayrıca her sunucunun ağ erişimi için farklı politikalara sahip olabileceğinden (örneğin, LAN üzerindeki bir veritabanı sunucusuna sahip bir DMZ'ed Web sunucusu), sunucuların ayrılmasında güvenlik rolünün büyük bir rol oynadığını söyleyebilirim.

Veritabanı sunucusuna erişim ağ üzerinden yapılır. Örneğin, veritabanı sunucunuz için genellikle "localhost" belirttiğinizde, veritabanı sunucunuzun ana bilgisayarını / IP adresini belirtirsiniz. Not: Genellikle, veritabani sunucunuzun yapilandirmasini degistirmek ve geri döngü arabiriminden başka bir arabirimde dinlemeyi etkinlestirmek için deitirmeniz gerekir.


30
2018-03-14 12:25



Ayrıca, özel bir makine disk konfigürasyonunu uygun şekilde değiştirmeyi sağlar. Veri sunucuları bir RAID 6'da yaşadığında Web sunucuları oldukça mutludur; veritabanı sunucuları RAID 1'i tercih eder. - Simon Richter


Ayrı bir veritabanı sunucusu, iyi, ölçeklenebilir tasarımın sadece bir parçasıdır. Trafiğiniz çok yüksek değilse ve tek bir sunucu gerçekten yeterli ise bu önemli değildir.

Fakat daha yoğun hizmetlerde, hizmetleri birbirinden ayırmak iyi bir şeydir. Birisi web sunucunuzu DDoSses yapar ve tüm kaynakları tüketir yaparsa, veritabanı sunucusunu hiç zorlamadı. Paylaşılan ortamlarda birden fazla web sunucusu büyük olasılıkla veritabanı sunucusunu kullanıyor, bu yüzden veritabanı sunucusu 50 farklı web sitesi için veri içeriyorsa, DDoS nedeniyle yalnızca bir web sitesi aşağı iniyor.

Ayrıca sysadmin açısından bakıldığında, "mysql-01.yourcompany.com" ve "webserver-01.yourcompany.com.com" gibi mantıklı olarak adlandırılan özel sunucular varsa daha açık olur. Uyarılar aldıklarında, en azından "Tamam, veri tabanında bir sorun var" anlamında neler olduğunu anında görüyorlar. Birkaç DNS isminin tek bir sunucuya işaret edebileceğinden, yine de bunun zayıf bir argüman olduğunu biliyorum.

Uygulamalarınız ağ üzerinden herhangi bir sorun olmadan uzak bir veritabanı sunucusuna bağlanır. Aieeeeeee! Web tarayıcınız uzak bir sunucuya nasıl bağlanır? Bu sihirdir! Erm .... daha ciddiye, 'localhost' yerine, sunucu adresini sadece $ programming_language_of_your_choice içinde sağlamanız yeterlidir.


12
2018-03-14 12:27



Janne'nin yorumuyla ilgili olarak: sysadmin bakış açısı ... Performans sorunlarınız olduğunda veya uygulamada hata ayıklama yapmanız gerektiğinde, web sunucusu ve veritabanı sunucusu ayrı makinelerde olduğunda daha kolay bir helluvadır. - HTTP500


  • Bazı web siteleri / uygulamalar, veritabanına kendileri adanmış bir veya daha fazla sunucuya ihtiyaç duydukları kadar çok kullanırlar.
  • Ağ üzerinden.

5
2018-03-14 12:23





LAMP uygulama yığınıdır, ancak hepsinin aynı ana bilgisayara yüklenmesi gerekmez. Diğerleri performans, güvenlik veya ölçeklenebilirlik amaçları için kaydettikleri gibi, bunlar genellikle aynı ana bilgisayarda yüklü değildir. Ayrıca, mimarinin bir kısmı için en uygun olan donanımın bir diğeri için bulunamayacağını da görebilirsiniz.

Örneğin, veritabanları tüm depolama yönetimi ile ilgilidir. Daha hızlı diskten bilgi alabilirim, o zaman daha hızlı talep sahibine ulaşabilirim. Bir web alt sistemi gibi başka birçok uygulama yığını üyesi olan bir disk alt sistemini paylaşıyorsam, disk sürücülerinin okuma ve yazma heditelerinin paylaşılan kaynağında karşılaştığım çekişme, aslında performansımı engelleyebilir. Ayrıca, belirli bir ana bilgisayardaki web sunucusu ve veritabanı sunucusu arasında RAM'in ayrılması, ya en verimli şekilde çalışabilmesi için yeterli miktarda kaynak havuzu sağlamayabilir, ya da diske gitmek zorunda kalmadan RAM'de çok fazla bilgi önbelleğe alabilir. bir resim, bir sayfa veya bir sorgu sonucu kümesi.

İdari olarak da kazanılacak verimlilik vardır. İşletmenizi, ortak bir arka uç olarak MySQL'i kullanan açık kaynaklı uygulamalarda çalıştırırsanız düşünün. Her uygulamada veritabanı sunucusu çoğalması yapmak ister misiniz? Bu bir DBA kabusu olabilir, "Tamam, hangi uygulama bu DB'yi kullanıyor?" Birden çok versiyona, donanım / yazılımın çoklu konfigürasyonlarına, çoklu veri saklama stratejilerine sahip olursunuz. Muhtemelen çok yaygın idari becerilere sahip olursunuz. Bunun yerine, örnekleri, rol için optimize edilmiş tek bir fiziksel donanım parçasıyla birleştirin ve sunucuyu ve verilerini yönetmek için özel kaynaklar atayın.


3
2018-03-14 15:51





MySQL sorguları LAMP sunucunuzu yavaşlatacak kadar kaynak yoğunluğu potansiyeline sahiptir.

Büyük, karmaşık, kaynak ağır bir web sitesi çalıştırırken, veritabanını başka bir özel sunucuya taşımayı düşünmek akıllıca olacaktır. Bu şekilde, biri web'e adanmış ve bir tanesi veritabanı çatırdamasına adanmış iki sunucuya sahip olursunuz. Bu, kaynakları serbest bırakma ve hem web sitesini hem de veritabanı sorgularını hızlandırma potansiyeline sahiptir.

Web sunucusu sadece veritabanı sunucusu adresine bağlanmak yerine localhost veritabanı sorguları yapmak.


2
2018-03-14 19:34