Реклама на сайте Advertise with us

Восстановление таблицы MYSQL

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:



С нами с 01.04.07
Сообщения: 4378
Рейтинг: 2970

Ссылка на сообщениеДобавлено: 31/10/09 в 12:21       Ответить с цитатойцитата 

Здравствуйте.

Проблема:
есть база около 1Гб, в ней таблица на 300.000 записей (smf_messages от скрипта http://www.simplemachines.org/ )

Таблица периодически ломается, выдавая: Database Error: Duplicate entry '335223' for key 'PRIMARY'
File: /usr/home/user/www/***/Sources/Subs-Post.php
Line: 1535

Пробовал восстанавливать myisamchk -r /var/db/mysql/gimcnuk_db0/smf_messages.MYI
Ошибка: myisamchk: error: 5 when fixing table
MyISAM-table '/var/db/mysql/gimcnuk_db0/smf_messages.MYI' is not fixed because of errors

Запустил safe-recover, часа за два счётчик натикал 100.000 записей, т.е. процесс ещё часа на 4.

Проблема усугубляется ещё и тем, что отключен mysql сервер и не работают другие базы.

Вопросы:
1. Можно ли прервать процесс восстановления без последствий?
2. Можно ли ускорить процесс? Читал, что можно выделить больше RAMа для процесса (например myisamchk -O sort=16M -O key=16M -O read=1M -O write=1M ...) но есть опасения.
3. Можно ли восстанавливать без остановки сервера? Например, скопировать .MYD .MYI .frm в другое место, запустить myisamchk и после этого перенести обратно?

Спасибо.

0
 



С нами с 07.05.08
Сообщения: 43
Рейтинг: 86

Ссылка на сообщениеДобавлено: 31/10/09 в 13:11       Ответить с цитатойцитата 

1) Можно
2) Если есть возможность, залить на "чистый" mysql сервер, чтоб не мешать работе остальных баз...
А там уже экспериментируй с параметрами.
3) Попробуй REPAIR TABLE
http://dev.mysql.com/doc/refman/5.1/en/repair-table.html
Ну и желательно предварительно забэкапить файлики базы.

Последний раз редактировалось: axelded (31/10/09 в 13:15), всего редактировалось 1 раз

1
 



С нами с 01.04.07
Сообщения: 4378
Рейтинг: 2970

Ссылка на сообщениеДобавлено: 31/10/09 в 13:13       Ответить с цитатойцитата 

Цитата:
By default, it has the same effect as myisamchk --recover tbl_name

Что уже пробовал.

0
 



С нами с 07.05.08
Сообщения: 43
Рейтинг: 86

Ссылка на сообщениеДобавлено: 31/10/09 в 13:19       Ответить с цитатойцитата 

я там пост поправил чуток)

5
 



С нами с 10.12.03
Сообщения: 1615
Рейтинг: 870

Ссылка на сообщениеДобавлено: 31/10/09 в 13:35       Ответить с цитатойцитата 

меня самого этот smf запарил

имхо всё-таки останови сервер, скопируй MYI в другую папку, сервер опять запусти, а файл скопированный почекай
myisamchk -o file.MYI
myisamchk -r file.MYI

нету у меня подписи...

6
 



С нами с 07.05.08
Сообщения: 43
Рейтинг: 86

Ссылка на сообщениеДобавлено: 31/10/09 в 13:53       Ответить с цитатойцитата 

А после запуска желательно сделать
Обслуживание форума -> Найти и исправить любые ошибки.
index.php?action=repairboards

6
 



С нами с 10.12.03
Сообщения: 1615
Рейтинг: 870

Ссылка на сообщениеДобавлено: 31/10/09 в 14:41       Ответить с цитатойцитата 

+1
у меня часто после восстановления таблиц smf не поднимается полностью - в админке инструменты фиксили всё и всегда

нету у меня подписи...

6
 



С нами с 07.05.08
Сообщения: 43
Рейтинг: 86

Ссылка на сообщениеДобавлено: 31/10/09 в 16:48       Ответить с цитатойцитата 

если не выйдет - стукай в аську, помогу

6
 

Чингачгук, вождь красноглазых

С нами с 14.05.04
Сообщения: 4744
Рейтинг: 1824

Ссылка на сообщениеДобавлено: 31/10/09 в 17:01       Ответить с цитатойцитата 

gimcnuk писал:

есть база около 1Гб, в ней таблица на 300.000 записей


После того, как как-нибудь вытащишь оттуда данные, сделай себе большое одолжение - мигрируй с MyISAM на InnoDB. Сколько я слышал, что "по идее MyISAM надежен и индексы не должны биться", бла-бла... тем не менее, только после того, как года 3 назад перешел на innodb везде, куда дотянулся, забыл о myisamchk и всех этих прелестях. В т.ч. и на интенсивно используемых базах с сотнями тысяч записей. Просто работает, и все.

6
 



С нами с 07.05.08
Сообщения: 43
Рейтинг: 86

Ссылка на сообщениеДобавлено: 31/10/09 в 21:59       Ответить с цитатойцитата 

Без innodb - "MySql это записная книжка с sql интерфейсом" (с) smail101.gif

6
 



С нами с 24.10.04
Сообщения: 18881
Рейтинг: 9010


Передовик Master-X (16.03.2006) Передовик Master-X (01.04.2006) Передовик Master-X (16.04.2006) Передовик Master-X (01.05.2006) Передовик Master-X (01.11.2006) Ветеран трепа Master-X ()
Ссылка на сообщениеДобавлено: 01/11/09 в 01:27       Ответить с цитатойцитата 

Dr.Syshalt писал:
После того, как как-нибудь вытащишь оттуда данные, сделай себе большое одолжение - мигрируй с MyISAM на InnoDB. Сколько я слышал, что "по идее MyISAM надежен и индексы не должны биться", бла-бла... тем не менее, только после того, как года 3 назад перешел на innodb везде, куда дотянулся, забыл о myisamchk и всех этих прелестях. В т.ч. и на интенсивно используемых базах с сотнями тысяч записей. Просто работает, и все.


InnoDB работает намного дольше и грузит больше памяти чем MyISAM, хотя вроде пентарх с этого форума утверждает обратное...

6
 



С нами с 24.10.04
Сообщения: 18881
Рейтинг: 9010


Передовик Master-X (16.03.2006) Передовик Master-X (01.04.2006) Передовик Master-X (16.04.2006) Передовик Master-X (01.05.2006) Передовик Master-X (01.11.2006) Ветеран трепа Master-X ()
Ссылка на сообщениеДобавлено: 01/11/09 в 01:32       Ответить с цитатойцитата 

кстати глянул самую большую базу 1кк записей 2.5Гб работает на MyISAM, сбоев ниразу небыло

6
 

programmer

С нами с 08.12.02
Сообщения: 7607
Рейтинг: 5752

Ссылка на сообщениеДобавлено: 01/11/09 в 02:06       Ответить с цитатойцитата 

ibiz писал:
InnoDB работает намного дольше и грузит больше памяти чем MyISAM

в мануале так вроде написано.

крипта на ByBit

6
 



С нами с 24.10.04
Сообщения: 18881
Рейтинг: 9010


Передовик Master-X (16.03.2006) Передовик Master-X (01.04.2006) Передовик Master-X (16.04.2006) Передовик Master-X (01.05.2006) Передовик Master-X (01.11.2006) Ветеран трепа Master-X ()
Ссылка на сообщениеДобавлено: 01/11/09 в 02:16       Ответить с цитатойцитата 

Sterx писал:
в мануале так вроде написано.


та оно и на практике так оказалось, мож конечно у меня руки кривые и я неумею правильно писать запросы, впрочем сложных всего 2-3 запроса, остальные простые... хотел перейти именно из-за расхваленной надежности на больших базах, рано или поздно базы станут большими...
читал также про какую-то новую базу xtradb на основе innodb, которую толкает гугл

6
 



С нами с 01.04.07
Сообщения: 4378
Рейтинг: 2970

Ссылка на сообщениеДобавлено: 01/11/09 в 09:19       Ответить с цитатойцитата 

Хм, мнения разделились.
Запросы там предустановленные, рискну предположить, что наиболее оптимизированные.
Будем читать форум поддержки, на предмет перехода.

0
 



С нами с 24.10.04
Сообщения: 18881
Рейтинг: 9010


Передовик Master-X (16.03.2006) Передовик Master-X (01.04.2006) Передовик Master-X (16.04.2006) Передовик Master-X (01.05.2006) Передовик Master-X (01.11.2006) Ветеран трепа Master-X ()
Ссылка на сообщениеДобавлено: 01/11/09 в 14:43       Ответить с цитатойцитата 

gimcnuk: ну ты отпиши результаты, если перейдешь, какие нагрузки, работает быстрее/медленее... кстати на многих виртуалах поддержки innodb нет, видимо у хостеров много проблем из-за нее
хотя по тестам сайта http://www.mysqlperformanceblog.com/2007/01/08/innodb-vs-myisam-vs-…ks-part-1/
innodb показывает результаты лучшие чем myisam

6
 

Чингачгук, вождь красноглазых

С нами с 14.05.04
Сообщения: 4744
Рейтинг: 1824

Ссылка на сообщениеДобавлено: 01/11/09 в 17:27       Ответить с цитатойцитата 

ibiz писал:

innodb показывает результаты лучшие чем myisam


Зависит от того, как бенчмаркить. Это же не просто "быстрее-медленнее". Если ты только bulk-инсерты делаешь - MyISAM отработает быстрее. Поскольку там много фичей отсутствует - ни транзакций, но foreign keys, проверять меньше и т.д. Но как только ты интенсивно апдейтить начинаешь базу, которую одновременно многие читают - тут начинает сказываться тот факт, что у innodb блокировка идет на уровне рядов, в то время, как MyISAM - блокирует на уровне таблицы. И вот тут все сильно меняется.

И вообще, без настроек под конкретные нагрузки рассуждать о том, что быстрее, что медленнее, нет просто смысла. Базы данных - это не десктопное приложение "поставил и работает".. наверное, DBA оракловские получают не просто так свои немаленькие деньги. И innodb тоже надо уметь использовать. Просто странно ожидать, что у тебя база на сотни тыс. записей, никто никогда 5 минут не уделил продумыванию архитектуры, настройками - и все само работает с оптимальной скоростью и никогда не сбоит.

А так - да, innodb - просто шаг вперед и немалый, в сравнении с MyISAM. То есть с ней MySQL становится уже более-менее нормальной базой данных, а не тем не пойми что, чем он является с MyISAM. Но базы данных (сюрприз!) надо уметь использовать. Ну и хотя бы поучиться использовать explain. А если так использовать, как многие используют (bulk insert'ы с "autocommit on", селекты по rlike, селекты при полном отсутствии индексов) - то, да, наверное, проблемы будут меньше в случае использования "БД для чайников" ака MyISAM.

Что же до SMF - то да, лучше спросить у людей, пробовали ли. Я думаю, что там уж не совсем чайники софт писали, должно неплохо работать на innodb.

6
 

Чингачгук, вождь красноглазых

С нами с 14.05.04
Сообщения: 4744
Рейтинг: 1824

Ссылка на сообщениеДобавлено: 01/11/09 в 17:34       Ответить с цитатойцитата 

ibiz писал:
кстати глянул самую большую базу 1кк записей 2.5Гб работает на MyISAM, сбоев ниразу небыло


Это, знаешь, как сказать "я два раза ездил пьяным и ничего плохого не случилось, значит - садиться за руль пьяным ничуть не опасно" )
MyISAM в принципе не создавалась для того, чтобы обеспечивать целостность данных. Там требования другие были - выжать максимум скорости даже на самых глупых и неоптимальных запросах.

6
 



С нами с 24.10.04
Сообщения: 18881
Рейтинг: 9010


Передовик Master-X (16.03.2006) Передовик Master-X (01.04.2006) Передовик Master-X (16.04.2006) Передовик Master-X (01.05.2006) Передовик Master-X (01.11.2006) Ветеран трепа Master-X ()
Ссылка на сообщениеДобавлено: 01/11/09 в 17:36       Ответить с цитатойцитата 

Dr.Syshalt писал:

И вообще, без настроек под конкретные нагрузки рассуждать о том, что быстрее, что медленнее, нет просто смысла.


ты наверное невнимательно читал первый пост, конкретная задача бд под форум smf_messages от скрипта http://www.simplemachines.org/
а это что-то около 70% селектов 20% апдейтов и 10% инсертов с прочим мусором

6
 

Чингачгук, вождь красноглазых

С нами с 14.05.04
Сообщения: 4744
Рейтинг: 1824

Ссылка на сообщениеДобавлено: 01/11/09 в 17:47       Ответить с цитатойцитата 

ibiz писал:
ты наверное невнимательно читал первый пост, конкретная задача бд под форум smf_messages от скрипта http://www.simplemachines.org/
а это что-то около 70% селектов 20% апдейтов и 10% инсертов с прочим мусором


Это ты, наверное, невнимательно читал - там еще писалось про то, что таблица периодически ломается icon_smile.gif Все-таки лучше, я думаю, иметь дело с базой, в которую если ты уж делаешь insert/update - то будешь уверен, что они там и останутся.

Насчет производительности же - сценарий форума вполне вписывается в сценарий производительности innodb. Многочисленные селекты с конкурентными апдейтами/инсертами. Разумеется, я не полезу сейчас смотреть, как именно запросы организованы в SMF - но надеюсь (почему-то), что они не забыли о том, что частые селекты делаются по индексам, и прочие элементарные вещи.

Если же не хватает производительности - то простой запрос к гуглу обнажает тот факт, что SMF умеет использовать memcached.

6
 



С нами с 24.10.04
Сообщения: 18881
Рейтинг: 9010


Передовик Master-X (16.03.2006) Передовик Master-X (01.04.2006) Передовик Master-X (16.04.2006) Передовик Master-X (01.05.2006) Передовик Master-X (01.11.2006) Ветеран трепа Master-X ()
Ссылка на сообщениеДобавлено: 01/11/09 в 17:53       Ответить с цитатойцитата 

мне интересно для своего форума, с SMF ничего общего, кроме около 70% селектов 20% апдейтов и 10% инсертов ничего нет
и мне также интересна производительность как на малых базах так и на больших, и пока myisam выигрывает у innodb на практике, а не в теории

6
 

Чингачгук, вождь красноглазых

С нами с 14.05.04
Сообщения: 4744
Рейтинг: 1824

Ссылка на сообщениеДобавлено: 01/11/09 в 18:49       Ответить с цитатойцитата 

ibiz писал:
и пока myisam выигрывает у innodb на практике, а не в теории


На практике человека, который, как я понимаю, не уделил вопросам оптимизации баз заметного времени - вполне возможно. Практика-то у всех разная. И у форума твоего могли быть запросы, которые выстраиваются в такой длинный ряд в show processlist и стоят, чего-то ждут. Если "и так работает", и ничего править неохота - ради бога. Просто не надо потом жаловаться, когда все это рухнет в один день и будешь сидеть и задаваться вопросом - стоит ли запускать myiasmchk на продакшене. Это как важные данные на FAT32 складывать - до первого выключения электричества.

Вот тут, кстати, хороший сравнительный анализ - в деталях и подробно.

6
 



С нами с 24.10.04
Сообщения: 18881
Рейтинг: 9010


Передовик Master-X (16.03.2006) Передовик Master-X (01.04.2006) Передовик Master-X (16.04.2006) Передовик Master-X (01.05.2006) Передовик Master-X (01.11.2006) Ветеран трепа Master-X ()
Ссылка на сообщениеДобавлено: 01/11/09 в 19:19       Ответить с цитатойцитата 

спишу на неумение оптимизировать базы и экономию памяти вопреки надежности, может уже все изменилось со времен моих практических сравнений icon_smile.gif

6
 

Криптопохуист

С нами с 05.04.03
Сообщения: 17156
Рейтинг: 6019

Ссылка на сообщениеДобавлено: 02/11/09 в 11:21       Ответить с цитатойцитата 

Я как профессиональный веб-программист, сисадмин и DB-architect вот что скажу. InnoDB очень пиздатый движок со многих точек зрения в теории.

Но его пиздатость резко заканчивается, когда даешь на 20-гигабайтную базу в сто таблиц 1500 QPS на двойном квадрокоре. Здесь всей его распиздатости приходит быстрый распиздец. Треды начинают зависать в произвольных состояниях (не-Locked!?), обрываться и пропускать (ага!!) запросы.

В общем я не хочу спорить, я это видел и этого мне было достаточно. При переходе обратно на MyISAM, сервер ведет себя более чем стабильно.

6
 



С нами с 01.04.07
Сообщения: 4378
Рейтинг: 2970

Ссылка на сообщениеДобавлено: 02/11/09 в 11:56       Ответить с цитатойцитата 

На данный момент 2 против 1, что не надо трогать icon_smile.gif

Про периодичность я преувеличил, "ломается" второй раз, оба раза за прошедший месяц. Может совпадение.

0
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »