Бінарні журнали MySQL - пропустіть таблицю


9

Чи є спосіб пропустити певну таблицю у двійкові журнали?

У мене налаштовані бінарні журнали як моя додаткова стратегія резервного копіювання між нічними резервними копіями. Але у нас є одна величезна довідкова таблиця, яку ми збираємось оновлювати щоночі з пакетного процесу (таблиця 70 Гб). Ця таблиця читається лише її, і вона оновлюється щоночі mysqlimport.

Під час процесу оновлення цієї довідкової таблиці бінарні журнали викликають досить серйозну затримку (особливо коли я роблю повне оновлення на 70 Гб). Це потрібно робити 70 Гб в основному. гидота.

У довідковій таблиці в даний час використовується MyISAM (я забив InnoDB, намагаючись завантажити його, тому випробував MyISAM).


Це сервер DB - це окремий сервер БД? Це сервер БД головний чи підлеглий?
RolandoMySQLDBA

Відповіді:


9

Немає можливості mysql ігнорувати таблицю у бінарному журналі.

Якщо ви можете перенести таблицю в окрему базу даних, ви можете скористатися опцією binlog-ignore-db , але у цього є свої gotchas . Ви повинні зрозуміти, як MySQL оцінює правила реплікації .

Якщо ви можете написати скрипт для обгортки для завантаження даних замість mysqlimport (на сторінці відображається, що це інтерфейс командного рядка для ЗАВАНТАЖЕННЯ ДАНИХ ІНФІЛЮ), а користувач, з яким ви імпортуєте дані, може мати привілей SUPER, ви можете використовувати змінну сесії sql_log_bin. подібно до:

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

Це дозволить вимкнути двійковий журнал для поточного сеансу, завантажити дані та знову включити бінарний журнал.


Вимкнути бінарний журнал під час завантаження, геніальний, саме те, що я шукав, це дуже працездатне рішення!
Девід Паркс

3

ви можете використовувати --replicate-ignore-table=db_name.tbl_name

Для детальної інформації див. Http://dev.mysql.com/doc/refman/5.1/en/replication-options-slave.html#option_mysqld_replicate-ignore-table .


6
Проблема в цьому полягає в тому, що таблиця replicate-ignore - це невільний параметр, тому майстер буде створювати набори записів бінологів, вони переносяться на підлеглий (з'їдаючи пропускну здатність / простір в процесі) і лише потім ігноруються. Набагато ефективніше було б не створювати ці записи в першу чергу.
SVD
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.