> Теперь сижу как тяжелым стукнутый и думаю, ЧТО ЭТО БЫЛО???
Таблицы типа MyISAM часто повреждаются (с разнообразными ошибками) в
случае некорректного завершения работы сервера.
Хотите надежности - используйте InnoDB.
--
WBR, Anton
2008/7/30 Alexander Oryol <eagle...@gmail.com>:
--
Alexey Kovyrin
http://kovyrin.info/
Да. Ковырин то еще грубиян. Готов поспорить в жизни он лузер, вот и
пытаеться здесь выделиться.
А насчет MySQL, советую сменить базу на PostgreSQL, по не которым
источникам, по производительности версия 8.3, даже обогнала MySQL, а
по надежности и говорить нечего.
Если за все время существования базы НИ РАЗУ мускуль не крашился и
никто и никогда не делал ему kill -9, то, вероятнее всего, вы
наступили на оооочень редкий баг в myisam. Что делать - не юзать этот
идиотский storage engine и перестать писать такие идиотские заголовки,
которые ничего кроме вашего невежества в данном вопросе не показывают.
Вполне обоснованно набросился, потому что заголовок и правда
идиотский. MyISAM - морально устаревший engine, склонный ломать базу
по любому поводу. Не зря на смену ему сейчас пишут другой (Maria,
будет в 6.0), такой же быстрый, но умеющий восстанавливаться после
crash. Судить обо всем продукте (причем рекомендуя всем от него
отказаться) по движку, который рекомендуется использовать только если
вы знаете, что делаете (а топикстартер врядли осознавал это) -
глупость редчайшей воды.
Я уже не говорю про имбицила из соседней ветки, и о его
необоснованному наезду и ничем не подтвержденными агитациями
Postgress. Почему-то до сих пор MySQL является лидером среди СУБД для
стартапов с миллионной посещаемостью в сутки.
ЗЫ. Alexander Oryol, do not use MySQL, please! It is too hard to learn for you!
--
Best regards, Dmytro Shteflyuk
http://kpumuk.info/
Александр, ну вы же в принципе понимаете, что многие и многие
разработчики не имеют возможности отказаться от mysql?
Ваш опыт ясен. Если у вас какое либо другое решение проблемы, какой то
комплекс превентивных мер, кроме как отказаться от mysql и перевести
проект на что то более другое?
--
Timur Vafin
У меня был годовой опыт использования master-master для rails проекта.
За это время по причине обрыва связи или неправильно проведенных
мигретов, 3-4 раза возникали коллизии, которые кроме как руками
разрешить нельзя.
Так же замечу, что репликация делалась с целью повысить доступность
приложения и увеличить сохранность данных.
Макс, скажи, пожалуйста, как вы реализуете репликацию файлов, если
реализуете?
Господа, я не сталкивался с такой технологией, объясните, пожалуйста,
в двух словах, что происходит при сбое? Откуда второй мастер знает,
что его данные верны, а у первого сбой? Есть автоматика или нужно
руками выяснять, кто виноват и что делать?
(Ясно, что обрывов связи можно избежать, если поставить два мускуля в
виртуальные машины рядышком на один хост)
М.
> (Ясно, что обрывов связи можно избежать, если поставить два мускуля в
> виртуальные машины рядышком на один хост)
А какой смысл вообще так делать - ставить 2 мускуля внутри 1 физического
сервера?
--
Eugene
У меня был годовой опыт использования master-master для rails проекта.
За это время по причине обрыва связи или неправильно проведенных
мигретов, 3-4 раза возникали коллизии, которые кроме как руками
разрешить нельзя.
Так же замечу, что репликация делалась с целью повысить доступность
приложения и увеличить сохранность данных.
Макс, скажи, пожалуйста, как вы реализуете репликацию файлов, если
реализуете?
А я целиком поддерживаю Алексея. Надо знать и уметь то, чем пользуешься.
А Алексендер спалился на всю рассылку.
Иметь свежайший бекап
Чаще всего это проблема с primary keys.
Просматриваются конфликтные запросы, неверные на глаз пропускаются,
синхронизация продолжается.
Каким образом? Если возникнет хардварная проблема - то она скорее всего
затронет обе виртуальные машины.
--
Eugene
Смотрим на каком сервере коллизия
Допустим, на slave:
show slave status\G;
Там видим что то вроде
Last_Error: Error 'Lock wait timeout exceeded; try restarting
transaction' on query. Default database: 'asb'. Query: 'UPDATE
marketer_site_traffics SET `marketer_site_id` = 13, `domain` =
'www.site.com', `traffic` = 8515252, `created_on` = '2007-08-09
00:00:00' WHERE `id` = 275482'
Останавливаем репликацию
stop slave;
Пропускаем запрос и запускаем репликацию
SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1; start slave;
Проверяем сколько еще осталось подкачать данных
show slave status \G;
Если 0 то все данные зареплецировались и можно открывать сервер к нагрузке.
Между прочим есть тулза, я до нее не добрался
http://blog.kovyrin.net/mysql-master-master-replication-manager/
>> Так же замечу, что репликация делалась с целью повысить доступность
>> приложения и увеличить сохранность данных.
>>
>> Макс, скажи, пожалуйста, как вы реализуете репликацию файлов, если
>> реализуете?
>
>
> http://github.com/maxlapshin/attacheable при заливке файла копирует по scp
> файлы на другие мастеры.
Окей, ясно.
master-master
это не так важно, если у вас рейд. А вот в свете этого треда может
быть актуально. Сейчас виртуальные сервера стали удобны.
В общем, спасибо за тред.
М.
Уважаемый, Вы необоснованно назвали человека лузером. Видимо, Вам
постоянно приходится такое слышать о себе? (по Вашей же логике).
--
Best regards, Dmytro Shteflyuk
http://kpumuk.info/
Макс, ребята, сорри. У меня все по теме личных разборок.
ЗЫ. А вот насчет проблемы репликации в условиях битых таблиц я бы еще
почитал :-)