@MadridianFox
Web-программист, многостаночник

Как настроить mysql binary log?

Пытаюсь сделать инкрементальный бэкап через бинлог.
Добавил в конфиг mysql строчки
server-id = master-01
log-bin = /var/lib/mysql/binary_log
binlog-do-db = base
sync_binlog = 1

Для теста создал таблицу, и вставил в неё несколько строк.

при просмотре лога mysqlbinlog -s binary_log.000003 > log.sql
получаю вот такой текст:
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
ROLLBACK/*!*/;
# [empty]
SET @@SESSION.GTID_NEXT= 'ANONYMOUS'/*!*/;
SET TIMESTAMP=1489860072/*!*/;
SET @@session.pseudo_thread_id=999999999/*!*/;
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/;
SET @@session.sql_mode=1436549152/*!*/;
SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;
/*!\C latin1 *//*!*/;
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/;
SET @@session.lc_time_names=0/*!*/;
SET @@session.collation_database=DEFAULT/*!*/;
create database base
/*!*/;
SET @@SESSION.GTID_NEXT= 'ANONYMOUS'/*!*/;
use `base`/*!*/;
SET TIMESTAMP=1489860129/*!*/;
create table logs (id int auto_increment primary key, message text)
/*!*/;
SET @@SESSION.GTID_NEXT= 'ANONYMOUS'/*!*/;
SET TIMESTAMP=1489860189/*!*/;
BEGIN
/*!*/;
COMMIT/*!*/;
SET @@SESSION.GTID_NEXT= 'ANONYMOUS'/*!*/;
SET TIMESTAMP=1489860194/*!*/;
BEGIN
/*!*/;
COMMIT/*!*/;
SET @@SESSION.GTID_NEXT= 'ANONYMOUS'/*!*/;
SET TIMESTAMP=1489860202/*!*/;
BEGIN
/*!*/;
COMMIT/*!*/;
SET @@SESSION.GTID_NEXT= 'AUTOMATIC' /* added by mysqlbinlog */ /*!*/;
DELIMITER ;
# End of log file
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;


Вижу тут создание базы, создание таблицы и три пустые блока, предположительно являющиеся вставкой данных, но почему-то запросов в них нет.
Почему?
  • Вопрос задан
  • 1343 просмотра
Решения вопроса 1
@MadridianFox Автор вопроса
Web-программист, многостаночник
Как оказалось, mysqlbinlog, без опции -s выводит строки вида BINLOG 'base64_encoded_text', что является служебной командой для mysql. Для того чтобы увидеть запрос, необходимо при вызове mysqlbinlog добавить аргумент -v, но запрос будет выведен в качестве комментария.
А я то думал что mysqlbinlog выводит запросы так же как mysqldump...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы