Как вылечить базу данных

Как вылечить базу данных thumbnail

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

Как вы считаете, какой именно актив является одним из важнейших для любого бизнеса? Деньги, люди, хорошее лобби в правительстве? Это всё, конечно, важно, но многие забывают об еще одном – информации!

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

В этой небольшой заметке предложу один из рабочих способов, как можно “открыть” поврежденную базу данных (есть хорошая вероятность, что большую часть данных удастся вытащить!).

И так…

*

Что делать если нет резервной копии базы данных Microsoft Access?

Причины проблем с базами данных

Сейчас я говорю, разумеется, о базах данных в формате Microsoft Access. Чаще всего они перестают открываться по следующим причинам:

  1. Прерванный процесс изменения базы данных Microsoft Access. Например, пользователь пытался внести какие-то изменения в удаленную базу данных, но из-за сбоев сети он не смог закончить операцию. В этом случае, приложение Microsoft Access помечает базу как поврежденную. Ее легко восстановить, но некоторые данные могут быть утеряны безвозвратно;
  2. Вирусы. До боли знакомая проблема. Без комментариев;
  3. Проблемы с «железом» (компьютеры, блоки питания, сетевые устройства, диски и так далее). Что угодно: потеря пакетов на сетевых картах, поврежденные сектора на диске и многое другое также могут вызывать порчу базы данных;
  4. Некорректная работа плагинов для Microsoft Access, либо их неверная установка;
  5. Попытка одновременного доступа к одной базе данных и ее изменение;
  6. Сбои электропитания при работе с базой данных, вызывающие самопроизвольное выключение системы.

Анектодов.нет (а вы думаете куда подевался свет?).

С сайта анектодов.нет (а вы думаете куда подевался свет?).

*

???? Кстати!

Самый легкий способ предотвратить почти все проблемы с базой данных – регулярно делать резервную копию! 

*

???? Вообще, если база вдруг перестала открываться, в окне приложения вы видите кучу странных ошибок, другой копии файла нет — для начала успокойтесь и не предпринимайте поспешных мер!

Если нам немного повезет, то, возможно, всё обойдется легким испугом! И даже “существенных затрат” не потребуется…

*

ШАГ 1: пробуем встроенный бесплатный инструмент восстановления

Проблемы с базами Microsoft Access могут быть поначалу незаметны. Дело в том, что Microsoft Access способен сам исправлять мелкие ошибки целостности базы данных.

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

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

???? Для начала, обратите внимание, что Microsoft Access имеет собственные средства восстановления поврежденных баз данных. Чтобы воспользоваться ими, нужно сделать следующее:

  1. Открыть приложение Microsoft Access (просто приложение, а не поврежденную базу данных);
  2. Перейти в меню “File (Файл) / Info (Информация) / Compact & Repair Database” (Сжать и восстановить базу данных ????);
  3. Выбрать поврежденную базу данных и нажать ОК;
  4. Дождаться успешного восстановления базы данных.

Microsoft Access — восстановление файла

Microsoft Access — восстановление файла

*

???? Также попробуйте импортировать поврежденную базу данных в новый файл формата Microsoft Access. Для этого нужно сделать следующее:

  1. Открыть приложение Microsoft Access и создать новый файл базы данных;
  2. Выбрать вкладку “External data” (Внешние данные ????);
  3. Указать, что требуется импорт файла Access;
  4. Установить нужные параметры для импорта файла и нажать OK.

External data (внешние данные)

External data (внешние данные)

*

ШАГ 2: используем спец. сервис и утилиту для восстановления

Если предыдущие шаги не увенчались успехом, рекомендую попробовать спец. инструменты для решения подобных “проблем”. Речь идет об использовании сервиса: Recovery Toolbox for Access.

*

Как с ним работать:

  1. сначала необходимо открыть следующий URL-адрес: https://access.recoverytoolbox.com/online/ru/;
  2. далее нажать по кнопке “Select file” (Выбрать файл ????);
  3. указать поврежденную базу данных Microsoft Access для закачки на сервер;
  4. ввести правильно свой адрес электронной почты;
  5. ввести код CAPTCHA;
  6. перейти к следующему этапу, нажав на клавишу “Next step”;
  7. если сервис “справился” с файлом – оплатить услугу и скачать восстановленную базу.

Скриншот с сайта Recovery Toolbox for Access

Скриншот с сайта Recovery Toolbox for Access

Есть один недостаток: как вы уже заметили, мы загружаем базу на удаленный сервер. А вдруг в базе данных имеется конфиденциальная информация? В этом случае, есть простое решение – использовать оффлайн версию (????) сервиса Recovery Toolbox for Access.

*

???? Разумеется, при использовании спец. утилиты ничего закачивать на удаленный сервер не нужно. Программа устанавливается на компьютер пользователя, который сам выполняет процесс восстановления всего за несколько шагов.

Оффлайн версия Recovery Toolbox for Access не использует подключение к удаленным сервисам, все этапы выполняются в автономном режиме! Отмечу, что Recovery Toolbox for Access работает только под ОС Windows, программа совместима со всеми поддерживаемыми версиями Microsoft Access.

???? Для работы с Recovery Toolbox for Access нужно сделать следующее:

  1. Скачать программу с офиц. сайта: https://access.recoverytoolbox.com/ru/;
  2. Установить Recovery Toolbox for Access на ваш компьютер (процесс стандартный, как и у любой др. программы);
  3. Запустить программу и выбрать файл Microsoft Access для восстановления (????);
  4. Дождаться окончания анализа поврежденной базы данных;
  5. Сохранить восстановленный файл;
  6. Продолжить работу с восстановленной базой данных.

Указываем файл

Указываем файл

Нажимаем далее

Нажимаем далее

Указываем куда сохранить восстановленные данные

Указываем куда сохранить восстановленные данные

*

???? Кстати, при использовании оффлайн версии Recovery Toolbox for Access, пользователь получает возможность восстанавливать неограниченное количество файлов Microsoft Access. Можете помогать коллегам, которые столкнулись с похожей проблемой…

Читайте также:  Как вылечить трещины между пальцами ног в домашних условиях

*

На сим сегодня пока всё…

Всего доброго!

????

Пост по заметкам

от компании Recovery Toolbox

Полезный софт:

  • Видео-Монтаж
  • Отличное ПО для начала создания своих собственных видеороликов (все действия идут по шагам!).
    Видео сделает даже новичок!

  • Ускоритель компьютера
  • Программа для очистки Windows от мусора (ускоряет систему, удаляет мусор, оптимизирует реестр).

Источник

От автора: добрый день, уважаемые. У вас что-то случилось? Опять «выкинули» не ту базу данных? Ну, это не смертельно, если знать все про восстановление MySQL. Сейчас мы расскажем вам все тонкости данного ритуала. Для этого нужен бубен, козявка из носа белохвостого тюленя… Это шутка! А все серьезное по этой теме будет изложено дальше.

Горе поправимо, если удалили базу

Без баз данных и систем управления ими (СУБД) в интернете никуда. Большая часть современных CMS и «самописных» движков, на которых развернуты сайты, используют MySQL. Поэтому ее можно смело назвать «всея интернетной» системой управления базами данных.

В этой статье мы рассмотрим все основные способы восстановления утраченной информации. По мере написания материала будем «набирать обороты», и начнем с самых простых методов, ближе к концу коснемся более сложных. Каждый из рассмотренных методов постараемся иллюстрировать практическими примерами. Что касается синтаксиса запросов, то мы не будем подробно останавливаться на описании параметров каждой команды. Благо, в интернете этой справочной информации «с лихвой».

Быстрый способ восстановления

Чаще всего работа с БД в интернете происходит через phpMyAdmin, который является веб-интерфейсом для данной СУБД. Чтобы восстановить базу MySQL вручную:

Зайдите в phpMyAdmin и выберете нужную БД.

Как вылечить базу данных

Бесплатный курс по PHP программированию

Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC

В курсе 39 уроков | 15 часов видео | исходники для каждого урока

Получить курс сейчас!

Перейдите по вкладке «Импорт», которая расположена в главном верхнем меню.

В разделе «Импортируемый файл» выберете источник резервной копии нужной базы.

Нажатие на кнопку «Ok».

Как вылечить базу данных

После этого вместо текущей версии БД будет загружена ранее сохраненная. Стоит отметить, что данный веб-интерфейс не подходит для бэкапа больших массивов данных, поскольку максимальный поддерживаемый размер загружаемой базы составляет всего 2 Мб.

В phpMyAdmin не реализована функция автоматического создания резервных копий, а лишь вручную. Весь процесс резервирования происходит через вкладку «Экспорт». Здесь вы можете задать формат копии, способ вывода и экспорта.

Как вылечить базу данных

Работа через MySQLdump

MySQLdump представляет собой веб-приложение, работающее на стороне сервера. Оно предназначено для восстановления баз MySQL из резервных копий, созданных с помощью приложения. Чтобы сильно «не зарываться», мы продемонстрируем создание простого бэкапа и восстановление из него БД. В качестве площадки для эксперимента используем самый популярный локальный сервер Рунета Denwer.

Для начала нужно скачать MySQLdump и поместить его по следующему адресу: F:Webserverusrlocalmysql-5.5bin

Как вылечить базу данных

MySQLdump является консольным приложением, поэтому вся последующая работа с ним будет происходить через командную строку (cmd.exe). Теперь поэтапно:

Запускаем Denwer.

Через командную строку заходим на виртуальный диск (в примере – это диск Z).

Заходим в папку, где «лежит» MySQLdump.

Как вылечить базу данных

Как вылечить базу данных

Бесплатный курс по PHP программированию

Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC

В курсе 39 уроков | 15 часов видео | исходники для каждого урока

Получить курс сейчас!

После этого запускаем утилиту на выполнение. Перед тем, как восстановить БД MySQL, в качестве примера создадим в папке bin резервную копию базы my_db1, и назовем бэкап «db1». Для этого мы используем команду mysqldump.

Как вылечить базу данных

Теперь восстановим из созданной копии (db1) другую базу данных. Для этого используем команду mysql.

Как вылечить базу данных

Код примеров использования обеих команд:

C:Usersдомашний>Z:

Z:>cd usrlocalmysql-5.5bin

Z:usrlocalmysql-5.5bin>mysqldump -uroot my_db1>db1.sql

Z:usrlocalmysql-5.5bin>mysql -uroot db2<db1.sql

Если немного присмотреться к коду, то можно заметить, что обе команды имеют общий синтаксис. Единственное, что их различает – это названия источников данных и копий. А также знак направления движения данных («<», «>»).

uroot – это имя пользователя. Оно указывается сразу после параметра u (без пробела). Кроме этого синтаксис команд включает еще несколько параметров. Среди них: пароль, адрес удаленного хоста. С помощью команды mysqldump можно экспортировать БД в различные форматы, сжимать данные. Также это проверенный способ, как можно восстановить таблицу MySQL.

Утилита MySQLdump (с помощью одноименной команды) позволяет экспортировать базы в простом текстовом формате (.txt). А так как текст обладает высокой степенью сжатия, то это эффективный способ уменьшения объемов бэкапов, в ситуации, когда наблюдается «дефицит» серверного пространства.

Что можно сделать еще

Кроме рассмотренных двух основных методов для восстановления данных MySQL можно использовать еще несколько консольных утилит:

MySQL-консоль

Mysqlbinlog – для формирования бэкапов программа импортирует данные из серверных журналов бинарных логов. В них записываются все пользовательские и системные запросы (в бинарном коде), после выполнения которых были изменены данные баз.

Также для популярных CMS разработано множество специализированных плагинов. Например, для WordPress:

Keep Backup Daily.

UpdraftPlus Backup and Restoration.

Perfect Dashboard.

Как вылечить базу данных

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

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

Как вылечить базу данных

Бесплатный курс по PHP программированию

Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC

В курсе 39 уроков | 15 часов видео | исходники для каждого урока

Получить курс сейчас!

Как вылечить базу данных

Хотите изучить MySQL?

Посмотрите курс по базе данных MySQL!

Смотреть

Источник

От автора: вы думаете, что везде убрали? Дом вычистили, машину помыли, детей до блеска «выдраили». А на своем сервере СУБД забыли прибраться! Не умеете? Это не страшно! Сейчас я научу вас, как почистить базу MySQL.

Зачем убирать?

Чтобы не было мусора и пыли. В случае с базами данных имеется в виду «цифровой» мусор. Если ваш ресурс работает на основе CMS, то даже в этом случае в таблицах остаются различные «ошметки» после работы плагинов, системы движка. Ну, может и вы где-то тоже строку «забыли». Постепенно вся эта «пыль» скапливается в огромные пласты, которые затем негативно влияют на быстродействие всего ресурса. А это негативно отражается на юзабилити сайта. В общем, чистить все равно надо и придется.

Кроме этого «выросшая» как на дрожжах база может занимать много виртуального дискового пространства, в результате чего хостер начнет нервничать и заваливать вас сообщении о превышении лимита. Если ничего не предпримите (не перейдете на дорогостоящий тариф, в котором предоставляются большие «площади» под сайт), то он просто «выдернет из розетки» ваш ресурс. Поэтому лучше научиться, как почистить базу данных MySQL, чем тратиться на новый тарифный план или переезд на «новые рельсы».

Также иногда требуется удалить только содержимое таблицы, и сберечь ее структуру. Все это мы рассмотрим в сегодняшнем материале, посвященном правильной уборке на СУБД. Стартуем!

Очищаем таблицу

Часто требуется не удалять таблицу, а лишь очистить ее от всех строк, но при этом сохранить всю ее структуру: типы данных столбцов, индексы, первичные ключи и другие ее параметры. Конечно, можно всегда удалить таблицу целиком с помощью команды DROP TABLTE, но затем придется создавать ее и прописывать все атрибуты заново. А это не совсем удобно, поэтому в MySQL для удаления строк таблицы есть специальная команда. Ее синтаксис:

Как вылечить базу данных

Бесплатный курс по PHP программированию

Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC

В курсе 39 уроков | 15 часов видео | исходники для каждого урока

Получить курс сейчас!

TRUNCATE TABLE name_table;

Пример, как почистить БД MySQL:

TRUNCATE TABLE `db1`.`user_animal`;

Как вылечить базу данных

Заглядываем в таблицу, и видим, что вкладка «Обзор» неактивна, а автоматически сгенерированный запрос на выборку вернул пустой результат. То есть, получили, что хотели:

Как вылечить базу данных

Существует еще одна команда SQL, позволяющая получить аналогичный результат – DELETE FROM. Пример использования:

DELETE FROM `db1`.`animal`;

Как вылечить базу данных

Таким образом мы очистили все «клетки» таблицы animal от зверюшек. При этом структура таблицы не была затронута, удалены были только записи. Получаем в итоге один и тот же результат:

Как вылечить базу данных

Перед тем, как почистить базу данных MySQL еще раз, разберемся, чем эти две команды отличаются. Точнее, чем TRUNKATE предпочтительнее для использования:

В отличие от DELETE FROM эта команда не стирает все записи построчно, а удаляет и заново создает таблицу. Данная операция занимает меньше времени.

Как вылечить базу данных

Бесплатный курс по PHP программированию

Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC

В курсе 39 уроков | 15 часов видео | исходники для каждого урока

Получить курс сейчас!

Не возвращает число удаленных строк, что также экономит ресурсы.

Возможность воссоздания таблицы даже при поврежденных индексах или файле данных.

Средства программной оболочки

Но можно не мучатся с написанием «скучных» запросов и применить для очистки таблиц встроенный функционал phpMyAdmin. Заходим в программу, выбираем слева нужную базу. После этого в разделе основного меню выделяем таблицу, а в выпадающем списке отмечаем действие, которое следует выполнить с таблицей. Нас интересует команда «Очистить». И не забываем нажать в правом углу снизу «Ок».

Как вылечить базу данных

Как видим, приложение выполнило ту же команду (TRUNCATE) и стерло все записи из указанной таблицы.

Как вылечить базу данных

Перед тем, как почистить базу MySQL окончательно, заглянем на вкладку «Обзор», чтобы убедиться, что в таблице никаких данных не осталось. Все нормально, автоматически сгенерированная выборка вернула нулевой результат.

Легкая уборка

Но это еще не все возможности, которые предоставляет эта программа. Ее встроенные средства позволяют немного убраться. Точнее, оптимизировать работу выбранной таблицы, расставить все по своим местам. Для этого снова выделяем нужную таблицу из базы, но в выпадающем списке команд выбираем «Оптимизировать таблицу».

Как вылечить базу данных

Система программы автоматически генерирует запрос к серверу СУБД, и отправляет его на выполнение. Ядро, в свою очередь, возвращает результат и отчет о выполнении запроса.

Как вылечить базу данных

Эту операцию можно выполнять вместо «легкой уборки» таблицы, или через определенный промежуток времени после того, как основательно почистили БД MySQL. Но все-таки хотелось знать, что конкретно делает команда OPTIMIZE TABLE:

Восстанавливает удаленные или неполные записи в таблице.

Сортирует индексные страницы (приводит индексы в порядок).

Обновляет статистику по таблице.

Думаю, понятно, что это нужная команда, которую иногда следует выполнять, чтобы поддерживать «здоровье» таблиц в тонусе.

Мусоросборники

Что касается популярных движков, то с ними MySQL не сможет вам помочь. Ну откуда СУБД может знать, какие записи в таблицах являются «мусором», а какие нет. Для этого (под каждую CMS) разрабатываются специализированные расширения. Приведу несколько примеров таких плагинов для WordPress:

WP-Cleanup. Сообщается, что он не обновлялся целых 2 года, но на самом деле работает даже на последних версиях движка.

Как вылечить базу данных

WP-Optimize.

Как вылечить базу данных

Надеюсь, вы научились, как чистить базу данных MySQL. Главное понять, что убирать надо не только в квартире, машине, но и на сервере СУБД. Иначе ваш сайт «захламится» так, что ни один посетитель на него не «влезет». А этого нельзя допускать!

Как вылечить базу данных

Бесплатный курс по PHP программированию

Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC

В курсе 39 уроков | 15 часов видео | исходники для каждого урока

Получить курс сейчас!

Как вылечить базу данных

Хотите изучить MySQL?

Посмотрите курс по базе данных MySQL!

Смотреть

Источник

Проанализируйте способы заражения:

  • Злоумышленник может получить пароли к администраторским панелям CMS, FTP или SSH аккаунтам. Обычно пароли подбирают или крадут с помощью троянских программ, заразивших компьютер вебмастера.

  • Уязвимости веб-приложения могут позволять посторонним размещать на сайте произвольный код.

  • Из-за заражения внешнего ресурса (партнерской программы, баннерной системы, счётчика) предоставленный вам код может стать опасным для пользователей.

Проанализируйте информацию о заражении в Яндекс.Вебмастере, в разделе Безопасность и нарушения. Раздел содержит перечень зараженных страниц, даты проверок и вынесенные антивирусом вердикты. Перейдя по ссылке в названии вердикта, вы увидите его описание и примерный вид кода, соответствующего вердикту (кода, который непосредственно появляется на страницах сайта).

Вы также можете самостоятельно воспроизвести проблему с помощью виртуальной машины.

  1. Остановите веб-сервер, чтобы оградить посетителей сайта от потенциальной опасности. Затем проверьте антивирусом файлы веб-сервера и все рабочие станции, с которых администрируют сервер (можно использовать бесплатные антивирусные утилиты) и смените все пароли: root, FTP, SSH, от административных панелей хостинга и CMS.

  2. Если до заражения была сделана резервная копия сайта, восстановите ее.

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

  4. Удалите лишних пользователей с расширенными правами и тщательно проверьте сервер на наличие веб-шелла, с помощью которого злоумышленник может изменять код сайта в обход авторизации.

  5. Проверьте наличие вредоносного кода:

    • во всех серверных скриптах, шаблонах CMS, базах данных;

    • в конфигурационных файлах веб-сервера или интерпретатора серверных скриптов;

    • если вы используете shared-хостинг, проверьте другие сайты, расположенные на том же сервере — может быть заражен весь сервер.

Признаки вредоносного кода:

  • Код посторонний или незнакомый, не соответствует резервной копии или системе контроля версий.

  • Обфусцированный (нечитаемый, неструктурированный) код.

  • Дата модификации файлов совпадает с временем заражения или более поздняя. Этот параметр ненадежен, так как дата модификации файлов может быть изменена вирусом.

  • Использование характерных для вредоносного кода функций. Примеры таких функций для языка PHP:

    • динамическое исполнение кода (eval, assert, create_function);

    • обфускация (base64_decode, gzuncompress, gzinflate, str_rot13, preg_replace);

    • загрузка удаленных ресурсов (file_get_contents, curl_exec).

Пометка об опасности сайта в результатах поиска будет снята, если при очередной проверке робот Яндекса не обнаружит заражения. Чтобы ускорить перепроверку, в интерфейсе Яндекс.Вебмастера, в разделе Безопасность и нарушения, нажмите кнопку Я все исправил.

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

Яндекс постоянно ищет и исследует новые виды заражений и публикует результаты исследований в блоге Безопасного поиска Яндекса.

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

Чтобы ваш вопрос быстрее попал к нужному специалисту, уточните тему:

Источник