Перейти к публикации

Проблемы с базой данных


Рекомендованные сообщения

Привет всем форумчанам!

К сожалению у меня возникала проблема с базой данных (далее БД).

Версия ДЛЕ 7.3. Сайт в принципе не важен, но нужно сказать, что на нём последняя новость имеет id 113778.

То есть новостей уже не мало. И вот, что произошло:

1) Хотел просто напросто сделать оптимизацию БД через админку, впрочем как обычно.

Тут я прождал минут 5, оптимизация так и не провелась и я закрыл вкладку браузера. Конечно же, делать этого было нельзя. Появилась ошибка, связанная с таблицей dle_post.

Ну ничего, потом я провёл ремонт БД и всё встало на свои места вроде бы.

2) На след. день я сделал бекап БД через админку, он сохранился, всё вроде бы тоже как обычно. Потом я опять решил сделать оптимизацию, но уже ту, которая пошаговая. На последнем шагу опять завис так сказать браузер. На сайте я увидел сообщение Too many connections. Я закрыл вкладку с оптимизацией. Думал, всё равно сделал бекап перед этим.

На сайте увидел потом опять ошибку, связанную с таблицей dle_post.

Я подумал, ничего страшного, ведь у меня есть самый последний бекап...

Через админку же я и восстановил его, сайт заработал. НО о ужас! Многие новости просто стёрлись! Причём чисто новости, не комментарии к ним или картинки. То есть что-то произошло с dle_post. Возможно из-за того, что она такая объёмная стала?

У меня есть несколько старых бекапов, но восстанавливая через них - также терялись новости.

Что же теперь можно сделать? Для начала хотя бы вернуть новости. Готов выслушать любую помощь.

Ссылка на сообщение
Поделиться на других сайтах

Mikhailo,

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

Ссылка на сообщение
Поделиться на других сайтах

У меня выделенный сервер, они сказали, что бекапами не занимаются, так как они предоставляют мне root-доступ...

Ссылка на сообщение
Поделиться на других сайтах

Mikhailo,

тогда вы потеряли БД. Проблема то вовсе не в том что вы закрыли браузер, его закрытие невызывает абсолютно никаких проблем, иначе бы все сайты сыпались ежедневно. Тысчяи людей, посетителей, закрывают браузеры недождавшись загрузки сайта. Проблема была в том что ваш MySQL работал в тот момент нестабильно, произошло повреждение таблицы в момент чтения - записи, например отказ операционной системы когда сервер писал в файлы БД, или диска, причин много. Вы же сделали бекап с поврежденной таблицей, повреждения бывают разные и разных местах таблицы, и не всегда вы видите сразу ошибку, ошибку видно только тогда когда запрашиваете информацию из поврежденных данных. Поэтому прежде чем делать бекап, нужно делать ремонт и оптимизацию, а потом сразу бекап.

На сайте увидел потом опять ошибку, связанную с таблицей dle_post.

Я подумал, ничего страшного, ведь у меня есть самый последний бекап...

Это тоже ваша большая ошибка, повреждение БД это не обязательно потеря данных. Просто происходит потеря связей таблиц с ключами, нарушение в служебной информации и т.д., поэтому обычный ремонт практически всегда восстанавливает рабочее состояние всех данных, т.к. ремонт по сути восстанавливает служебную информацию и все. Восстановление бекапа, это самая крайняя мера, когда неустранимы повреждения. Не всегда скрипт может сам себя восстановить, поэтому также всега нужно пробовать восстановление в MyPHPAdmin.

Ну и бэкапы, их всегда нужно иметь несколько копий, например за последние десять дней.

Что же теперь можно сделать? Для начала хотя бы вернуть новости. Готов выслушать любую помощь.

Ну и последний возможный для вас шанс, посмотрите в файле бекапа, таблицу _post, в файле эти потерянные новости присутствуют? возможно у вас и нет проблем с бэкапом, просто большой обьем информации скрипт не успевает вставить в БД из за установленных лимитов на выполнение скрипта

Ссылка на сообщение
Поделиться на других сайтах

смотрю самый последний бекап через Microsoft Management Studio и показывается всё только до строки 60655. Эта как раз таблица _пост. Дальше вывод строк прекращается. Значит ли это, что это конец моей БД или просто программа физически не может показать эти строки дальше?

У меня есть несколько бекапов: до и после "аварии". Но показ строк примерно одинаков.

Скажите, Celsoft, пожалуйста, с помощью каких средств можно посмотреть полный размер моей не такой уж и маленькой БД.

Vielen vielen Dank.

Ссылка на сообщение
Поделиться на других сайтах

А где тогда таблицы, которые после dle_post. Например, users?

Или они просто не вошли в бекап, а на сайте остались???

И как в будущем лучше всего делать бекапы? Через phpMуAdmin?

И ещё вопрос: я скачал БД свою и хочу посмотреть её на локальном сервере. Когда я там хочу восстановить эту БД, то получаю сообщение такое вот:

Возникла ошибка!

Неправильный запрос.

Access denied for user 'user'@'localhost' to database 'db' (256)

Что же нужно сделать?

Изменено пользователем Mikhailo
Ссылка на сообщение
Поделиться на других сайтах

И как в будущем лучше всего делать бекапы? Через phpMуAdmin?

Лучше через скрипт, но не забывать при этом проверять его целостность

Access denied for user 'user'@'localhost' to database 'db' (256)

неверный логин или пароль для БД.

Ссылка на сообщение
Поделиться на других сайтах

Celsoft,

ну вот смотрите: Если я сейчас сделал бекап БД из админки и проверяю её.

Бекап сделался, оканчиваясь на таблице _post. То есть таблицы _users, например, в бекапе нет.

То есть, как я понимаю, бекап сделался не полностью, верно?

Какие есть тогда пути из этого положения, я же не могу рисковать своей БД так постоянно.

Celsoft, подскажите пожалуйста. Вы знаете DLE как никто другой.

Что я ещё заметил: в таблице _пост id новостей частично перепутаны...

Спасибо.

Изменено пользователем Mikhailo
Ссылка на сообщение
Поделиться на других сайтах

Бекап сделался, оканчиваясь на таблице _post. То есть таблицы _users, например, в бекапе нет.

То есть, как я понимаю, бекап сделался не полностью, верно?

сделайте ремонт БД в MyPHPAdmin

Что я ещё заметил: в таблице _пост id новостей частично перепутаны...

Что значит перепутаны.

Ссылка на сообщение
Поделиться на других сайтах

Что значит перепутаны.

ID новостей идут не по порядку, а немного вразброс: например, идут новости от 2006 года, а потом неожиданно проявляются некоторые из 2008 с номером id где-то 1230.

Значит ли, что нужно провести оптимизацию через MyPHPAdmin и структура таблиц вновь обретёт свой порядок?

И ещё вопрос: если я сделаю ремонт БД не пропадут ли мои новости за вчера-сегодня?

Ссылка на сообщение
Поделиться на других сайтах

Celsoft,

сделал всё как Вы сказали: отремонтировал и оптимизировал таблицы через phpMyAdmin.

Смотрю свойства таблицы _пост --> показывают, что всего существуют id 41586 новостных.

Делаю бекап через админку --> БД заканчивается где-то на id 8000.

Скажите пожалуйста, что же всё-таки я могу сделать с БД? Как сделать правильный бекап?

Ссылка на сообщение
Поделиться на других сайтах

ID новостей идут не по порядку, а немного вразброс: например, идут новости от 2006 года, а потом неожиданно проявляются некоторые из 2008 с номером id где-то 1230.

Выберите в MyPHPAdmin сортировку по ID и они будут идти по порядку, порядок зависит от выбранной сортировки

Смотрю свойства таблицы _пост --> показывают, что всего существуют id 41586 новостных.

ID это не количество новостей, это уникальный идентификатор новости, это всегда уникальное число, при удалении новости она удаляется а ID продолжает расти и всегда остается уникальным.

Делаю бекап через админку --> БД заканчивается где-то на id 8000.

Скажите пожалуйста, что же всё-таки я могу сделать с БД? Как сделать правильный бекап?

Несовсем понял, у вас сейчас в БД гораздо больше новостей чем делается в бекапе? Если да то попробуйте сделать бекап в MyPHPAdmin.

Ссылка на сообщение
Поделиться на других сайтах

Ну смотрите, Celsoft,

мне кажется, что ДЛЕ просто не может сделать корректный бекап, потому и обрезает его.

То есть нужно сделать бекап через PHPMyAdmin.

Но все бекапы от туда получаются где-то по 180 МБ, а не по 40 как через админку ДЛЕ.

Эти 180-бекапы к сожалению не открываются в Microsoft Management Studio.

Как же мне его посмотреть и убедиться, что все новости там всё-таки есть. Смотря _пост через PHPMyAdmin я обнаружил там все новости в принципе.

То есть нужно как-то сделать бекап, посмотреть, что все новости там есть и успокоиться.

Подскажите, Celsoft, пожалуйста, ведь я уже почти у цели...

Ссылка на сообщение
Поделиться на других сайтах

Mikhailo,

Видимо скрипту не хватает времени на выполнение бекапа, т.к. установлены лимиты на выполение скриптов PHP в настройках сервера.

Посмотреть бекап вы можете в WordPad

Ссылка на сообщение
Поделиться на других сайтах

Воспользуйтесь вот этим :

http://sypex.net/products/dumper/

Этот скрипт отлично делает Backup базы данных, и при том умеет его сжамать. Так у меня сейчас база данных выросла за 300 мб, а когда я делаю бэкап этим скриптом, то он ужимается в архив до 45-50 мб.

Ссылка на сообщение
Поделиться на других сайтах

Воспользуйтесь вот этим :

http://sypex.net/products/dumper/

Этот скрипт отлично делает Backup базы данных, и при том умеет его сжамать. Так у меня сейчас база данных выросла за 300 мб, а когда я делаю бэкап этим скриптом, то он ужимается в архив до 45-50 мб.

реальный размер бд - около 150 Мб. 300 - это с учётом индексов, а они занимают половину (если не больше). В бэкап индексы не входят никогда.

так что сжатие текста 150мб зип, гзип и даст эти же 45-50мб.

Просто в пхпмайадмине при быкапе ставьте нужные галочки))

Изменено пользователем Al-x
Ссылка на сообщение
Поделиться на других сайтах

Ну, спасибо вам, ребята! Всем троим! Celsoft'у за терпение ;)

Всё значит сделал как Вы сказали.

Главное - смотреть БД через WordPad и бекап через админку не делать, так как он обрезается...

Прога http://sypex.net/products/dumper/ мне понравилась. Хотя, думаю, она же и используется в админке??

Теперь последний вопрос: восстанавливать БД лучше тоже через неё?

И ещё: можно ли проводить вот этот пункт админки: "Мастер оптимизации

Мастер оптимизации и очистки базы данных, позволяющий существенно увеличить скорость работы сайта" через PHPMyAdmin ?

Всем спасибо

Ссылка на сообщение
Поделиться на других сайтах

Хотя, думаю, она же и используется в админке??

В админке используется последняя версия Sypex Dumper Lite version 1.0.8b.

Видимо скрипту не хватает времени на выполнение бекапа, т.к. установлены лимиты на выполение скриптов PHP в настройках сервера.

У нас аналогичная проблема, вариант бэкапа со сжатием, началась где-то при размере базы в 250 Мб, при этом автобэкап работает нормально. Очевидно проблема возникает с выводом информации о сохранении таблиц в браузер. Может быть можно что-то там подправить ?

Изменено пользователем Akela
Ссылка на сообщение
Поделиться на других сайтах

Очевидно проблема возникает с выводом информации о сохранении таблиц в браузер. Может быть можно что-то там подправить ?

вы не видите процесса создания в процентном отношении? Отключите буфферизацию вывода в настройках PHP

Ссылка на сообщение
Поделиться на других сайтах

вы не видите процесса создания в процентном отношении?

да, сначала открывется пустое окошко, проценты набегают позже, где-то после половины таблиц.

Отключите буфферизацию вывода в настройках PHP

Спасибо, попробую.

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...