Bir MySQL çoğaltma bağımlısı salt okunur olarak ayarlanmalı mı?


22

Ben takip ederek Percona Server 5.5 üzerinde çalışan çoğaltma var bu kılavuzu ve ben eklemek gerekir merak read-only=1kölem en etmek my.cnfsadece okumak için?

Kılavuz, mysql tablosu için çoğaltmayı ayarlar, böylece kullanıcılar çoğaltılır, ancak birincil olarak mysqldumps'u almak için köleyi kullanıyorum, acil durumdayken master olması için yeniden yapılandırılıyor. sürekli mi?


Köleleri salt okunur yapmak için genellikle göz ardı edilen hatırlatıcılar için +1.
RolandoMySQLDBA

Yanıtlar:


31

Bir Slave salt okunur olduğunda , dünyadan% 100 korumalı değildir.

MySQL Belgelerine göre read-only

Bu değişken varsayılan olarak kapalıdır. Etkinleştirildiğinde, sunucu, SÜPER ayrıcalığına sahip kullanıcılar veya bağımlı sunucular tarafından gerçekleştirilen güncellemelerden (bir ikincil sunucuda) başka güncelleme yapılmasına izin vermez. Çoğaltma kurulumlarında, bağımlıların istemcilerin değil yalnızca ana sunucudan güncellemeleri kabul etmesini sağlamak için bağımlı sunucularda read_only özelliğini etkinleştirmek yararlı olabilir.

Böylece, SÜPER imtiyazı olan herkes istediği gibi böyle bir Köle okuma ve yazma yapabilir ...

Tüm ayrıcalıklı olmayan kullanıcıların SUPER Privilege'a sahip olmadığından emin olun.

Tüm SÜPER ayrıcalıkları bir kerede iptal etmek istiyorsanız, lütfen bunu Master ve Slave'de çalıştırın:

UPDATE mysql.user SET super_priv='N' WHERE user<>'root';
FLUSH PRIVILEGES;

Slave’e atıfta bulunarak, SÜPER ayrıcalıklarını, ayrıcalıklı rootolmayanların aksi takdirde yasaklanabilecekleri yazma yazmalarını engellemek için yapma hakkını saklı tutar.

GÜNCELLEME 2015-08-28 17:39 EDT

Kısa süre önce MySQL 5.7'nin super_read_only'yi tanıtacağını öğrendim .

5.7 Dokümanlar diyor ki, bu SÜPER kullanıcıları yollarında durduracak

Read_only sistem değişkeni etkinse, sunucu yalnızca SUPER ayrıcalığına sahip kullanıcılardan istemci güncellemelerine izin verir. Super_read_only sistem değişkeni de etkinleştirilmişse, sunucu SUPER olan kullanıcılardan bile istemci güncellemelerini yasaklar. Salt okunur modun açıklaması ve read_only ve super_read_only'in nasıl etkileşime girdiğiyle ilgili bilgiler için read_only sistem değişkeninin açıklamasına bakın.

Bir ana sunucuda super_read_only olarak yapılan değişiklikler, bağımlı sunuculara çoğaltılmaz. Değer, master ayarından bağımsız olarak bir slave server üzerinde ayarlanabilir.

super_read_only MySQL 5.7.8'e eklendi.


1
Bu yüzden köleleri salt okunur yapmak en iyisidir?
xref

6
Evet bunu yapmak için en iyi yöntemdir
RolandoMySQLDBA

1
Rapor veritabanını, salt okunur seçeneğiyle operasyonel veritabanından toplanan verilerle bağımlı olarak nasıl kullanabilirim?
Geany

3

Bir MySQL çoğaltma bağımlısı salt okunur olarak ayarlanmalı mı?

Evet, köle sunucularını mevcut R / O modlarıyla çalıştırsanız iyi edersiniz . Önceden ayrıcalıklı kullanıcılar, böyle bir kölenin verilerini yine de değiştirebildiler ancak daha sonra R / O kısıtlamaları "topuzu" nu aldı.

Bu neden önemlidir - yazma işleminde basit veri biriktirme ya da çoğaltmayı bozabilecek anahtar çatışması gibi nedenlerle köleyi kullanılamaz hale getirebilecek yanlış bir yazı ile pişmanlıktan daha iyidir.

Ayrıca, orkestrasyon / yük ayrımı için kullanılan ve bu sunucular arasında uygun yönlendirme talepleri için yapılandırdıkları havuzlardaki sunucuların R / O durumunu göz önünde bulunduran yazılımlar da vardır.

Bu güvenlik. Kullanın.


1

Buradaki sorun, MySQL 8.0'ı içeriyor, MySQL'in komutu read_only = ONçalıştırırken sizi ayarlamaya zorlamaması start slave. Neden bir problem Çünkü neredeyse tüm MySQL DBA'ları, veri bozulmalarını önlemek için kölelerini RO'da kullanıyorlar ve her zaman yanlışlıkla kölelikle ilgili verileri değiştiren bir SQL'i veya hatalarını değiştirmeyecek bir uygulamayı yanlış bir şekilde çalıştıran bir dba var. Eğer köleler üzerine yazmak istersem, çünkü birkaç şema var ve bu şema üzerine yazmaya ihtiyacım var, bu yüzden read_onlykomut daha akıllı olmalı ve bize bir şey yapalım read_only for schema. Bu bir çok ana sunucu ve köle yapan bir çok yardımcı olabilir Replicate_Ignore_DB. Bu nedenle, şimdilik kontrolü el ile yapmanız ve çok dikkatli olmanız gerekir.

Keyfini çıkarın.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.