Коленько Сергей

теги:

main_page

Статьи

Восстановление разрушенной базы данных MySQL

Входящие условия

  • mariadb не стартует (следите за свободным местом на сервере)

  • при попытке старта ошибка

Aug 28 19:17:04 izdatsovet mariadbd[158682]: 2025-08-28 19:17:03 0 [ERROR] InnoDB: Your database may be corrupt or you may have copied the InnoDB tablespace but not the ib_logfile0. Please refer to https://mariadb.com/kb/en/library/innodb-recovery-modes/ for information about forcing recovery.

Aug 28 19:17:04 izdatsovet mariadbd[158682]: 2025-08-28 19:17:03 0 [ERROR] InnoDB: Failed to read page 8 from file './ibdata1': Data structure corruption

Текущее положение

В mysql / mariadb файл ibdata1 это основной файл. Его потеря или нарушение структуры в нем - полная потеря данных.

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

Заказчик не против откатиться

Действия по шагам

Останавливаем сервер БД

service mariadb stop

Переходим в /var/lib/mysql и переносим все файлы и директории во временное место

cd /var/lib/mysql
mkdir ~/old_db
mv * ~/old_db/

Далее инициализируем сервер. по новой. Проверяем наличие скрипта

find /usr -name mariadb-install-db
/usr/bin/mariadb-install-db

Да, есть такой. Инициализируем сервер БД

mariadb-install-db --user=mysql --datadir=/var/lib/mysql

Теперь снова стартуем сервис

service mariadb start

Импортируем полный бэкап

root@izdatsovet:~/backup_db# mysql < 20250826_izdatsovet.sql

Проверяем работу всех проектов на сервере и удаляем каталог ~/old_db.

Если нет полного бэкапа всех баз данных сервера

Пытаемся поднять сервер БД в recovery mode. Останавливаем сервис и добавляем в /etc/mysql/mariadb.conf.d/50-server.cnf строку

innodb_force_recovery=6

Необходимо последовательно уменьшать цифру от 6 до 1 пока сервер все еще не ругается.

Пытаемся дампить базы данных

mysqldump izdatsovet_izdatsovet | gzip > izdatsovet_izdatsovet.sql.gz

Если какие-то таблицы порушились, придется без них дампить и структуру их брать из старых бэкапов или соседних живых проектов

mysqldump --skip-lock-tables --ignore-table=letogospodne_bx.b_sec_wwall_rules letogospodne_bx | gzip > ~/backup/letogospodne_bx.sql.gz

После инициализации сервера залить БД в обратном порядке. В этом случае не сохранились пользователи и привилегии, так что придется вручную восстанавливать доступ на проектах.

 

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

 

В системе управления производством Завод365 у инженера системы менеджмента качества появилась возможность прикреплять инструмент контроля или измерения к контрольному параметру операции в технологической карте изделия при просмотре производственного заказа

август, 2025

завод365

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

июль, 2025

завод365

У мастера производства появилась возможность прикреплять оснастку к технологической карте изделия при просмотре производственного заказа

июнь, 2025

завод365

Для формирования счета на оплату розничному покупателю в системе Дилер365 появилась возможность добавить один или несколько расчетных счетов контрагенту

июль, 2025

дилер365

дистрибьтор

автоматизация продаж

вендор365

личный кабинет

Наряду с рабочим местом логиста (центр управления доставкой ЦУД) в системе Завод365 разработан интерфейс для менеджеров продаж. В нем менеджер видит полную картину в части доставки заказов своих клиентов

август, 2025

завод365

Внесли доработки функционала Завод365 в части печати этикеток чернильным маркиратором

март, 2025

завод365

автоматизация продаж