информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Все любят медПортрет посетителяЗа кого нас держат?
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Очередное исследование 19 миллиардов... 
 Оптимизация ввода-вывода как инструмент... 
 Зловреды выбирают Lisp и Delphi 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / sysadmin
Имя Пароль
если вы видите этот текст, отключите в настройках форума использование JavaScript
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
Изменение бинарного лога 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-2025 Dmitry Leonov   Page build time: 1 s   Design: Vadim Derkach