информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
За кого нас держат?Где водятся OGRыАтака на Internet
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / sysadmin
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Изменение бинарного лога MySQL 18.05.07 14:47  
Автор: ZaDNiCa <indeed ZaDNiCa> Статус: Elderman
<"чистая" ссылка>
Есть два сервера MySQL-5.0.33 с репликацией Master-Master. Чтобы не пересекались добавляемые данные установлено на первом
auto_increment_increment = 2
auto_increment_offset = 1
на втором
auto_increment_increment = 2
auto_increment_offset = 2

Произошел какой-то сбой - и данные с одного на другой передались некорректно. Вот что в логе принимающего сервера:
070518 12:43:10 [ERROR] Slave: Error 'You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '')л' at line 1' on query. Default database: 'replica'. Query: 'update com_whos_online set customer_id = '0', full_name = 'Guest', ip_address = '11.22.33.44', time_last_click = '1179409360', last_page_url = http://ddate_format(now(), '%Y%m%d')л', Error_code: 1064
070518 12:43:10 [ERROR] Error running query, slave SQL thread aborted. Fix the problem, and restart the slave SQL thread with "SLAVE START". We stopped at log 'server1-bin.000008' position 689010453

Хотя в бинарном логе на сервере откуда передавались данные SQL выглядит так:
update com_whos_online set customer_id = '0', full_name = 'Guest', ip_address = '11.22.33.44', time_last_click = '1179409360', last_page_url = 'http://xxx.xxx.xxx/crosman-phantom-p-1012144.html?cPath=1000614' where session_id = '3ebsqsl4mmln55o9v474dtmo01';
Вопросы:
1. Можно ли как-то поредактировать бинарный лог, чтобы убрать/поправить некорректно пришедший запрос?
2. Можно ли как-то откатиться по бинарному логу server1-bin.000008, и заново его передать?
syntax to use near '')л' at line 1' on query. 22.05.07 06:45  
Автор: void <Grebnev Valery> Статус: Elderman
<"чистая" ссылка>
syntax to use near '')л' at line 1' on query.

У меня на прошлой неделе была похожая ошибка. Оказалось, 5.0.34 некорректно пишет bin-log: если stored procedure имеет один из аргументов BIT(1), то запросы в bin-log содержат случайные символы для этой константы. Как следствие, slave не может выполнить relay лог. Вылечил заменой аргументов BIT(1) на TINYINT(1) во всех SP.


> Вопросы:
> 1. Можно ли как-то поредактировать бинарный лог, чтобы
> убрать/поправить некорректно пришедший запрос?
> 2. Можно ли как-то откатиться по бинарному логу
> server1-bin.000008, и заново его передать?

Мне самому интересно %).
По 1) думаю да (binary log - там ведь текстовый файл по существу)
По 2) думаю нет.
вот что было 18.05.07 17:29  
Автор: ZaDNiCa <indeed ZaDNiCa> Статус: Elderman
<"чистая" ссылка>
В момент ротации relay-log произошла запись в него (странно - как-то такое получилось) и конец запроса не был записан.
Решил проблему путем отключения bin-log на принимающем сервере и выполнения побитого запроса (отключение лога для того чтобы это изменение не передалось на второй сервер) и вручную передвинул идентификатор последней выполненной репликации (файл relay-log.info)
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach