MySQL ikili günlükleri - tabloyu atla


9

İkili günlüklerde belirli bir tabloyu atlamanın bir yolu var mı?

Gece yedeklemeleri arasında artımlı yedekleme stratejim olarak yapılandırılmış ikili günlükler var. Ancak bir toplu işlemden (70 GB tablo) her gece güncelleyeceğimiz büyük bir referans tablonuz var. Bu tablo sadece okunur ve her gece güncellenir mysqlimport.

Bu yalnızca başvuru tablosu için güncelleme işlemi sırasında ikili günlükler oldukça ciddi bir gecikmeye neden olur (özellikle tam 70 GB'lık bir güncelleştirme yaptığımda). Temelde iki kez 70GB yapması gerekiyor. iğrenç.

Referans tablosu şu anda MyISAM kullanıyor (InnoDB'yi yüklemeye çalıştım, bu yüzden MyISAM'ı denedim).


Bu DB Sunucusu Tek Başına Bir DB Sunucusu mu? Bu DB Server bir Master veya Slave mi?
RolandoMySQLDBA

Yanıtlar:


9

İkili günlükte bir tablo yoksaymak için mysql seçeneği yoktur.

Size kullanabilirsiniz ayrı bir veritabanına tablo kayabilirsen binlog-db görmezden seçeneği, ancak bu onun var FRİKİKLERİNDEN . MySQL'in çoğaltma kurallarını nasıl değerlendirdiğini anlamalısınız .

Mysqlimport yerine verileri yüklemek için bir sarıcı komut dosyası yazabiliyorsanız (manpage, LOAD DATA INFILE için bir komut satırı arayüzü olduğunu söylüyorsa) ve verileri içe aktardığınız kullanıcının SUPER ayrıcalığına sahip olabileceğiniz sql_log_bin oturum değişkeni olabilir sevmek:

    SET @@session.sql_log_bin=0;
    LOAD DATA INFILE 'file_name' 
      -- other LOAD DATA INFILE options ;
    SET @@session.sql_log_bin=1;

Bu, geçerli oturum için ikili günlük kaydını devre dışı bırakır, verileri yükler ve ikili günlük kaydını yeniden etkinleştirir.


Yükleme işlemi sırasında ikili günlük kaydını devre dışı bırakın, parlak, tam olarak aradığım şey, bu çok uygulanabilir bir çözüm!
David Parks

3

kullanabilirsiniz --replicate-ignore-table=db_name.tbl_name

Ayrıntılar için http://dev.mysql.com/doc/refman/5.1/tr/replication-options-slave.html#option_mysqld_replicate-ignore-table adresine bakın.


6
Bununla ilgili sorun, replicate-ignore-table bir slave ayarıdır, bu yüzden master bir sürü binlog girişi yaratır, slave'e aktarılır (işlemde bant genişliği / boşluk yeme) ve ancak daha sonra yoksayılır. Bu girişleri ilk etapta oluşturmamak çok daha etkili olur.
SVD
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.