Инструкция: Аварийное восстановление баз данных Битрикс24
Это может как вызвать сбой в работе самого сервиса, так и повлиять на дальнейшую целостность и работоспособность баз и отдельно взятых таблиц.
Рассмотрим, что делать в ситуации, когда мы видим ошибку, связанную с работой базы данных:

Случайно повредилась таблица b_iblock
1. Проверить сервис mysqlmysqld
На данном этапе необходимо узнать текущий статус сервиса и попробовать его перезапустить. В большинстве случаев проблема не критична и решается простым перезапуском. Чтобы пройти этот шаг, нужно:
- Зайти в консоль управления сервером.
- Ввести команду service mysql status.
- Ввести команду service mysql restart.
Если сервис так и не смог стартовать, можно будет увидеть команды для просмотра логов:
Если после шага 1 запустить сервис не удалось — необходимо включить его в аварийном режиме. С увеличением числа сервис будет игнорировать всё больший объём ошибок. Service mysql start Далее нам нужно попытаться «вытянуть» всю информацию из базы. mysqldump —u %user% -p %database_name% > %directory%/file.sql Логин, пароль и название базы можно найти в файле .settings.php в директории bitrix/. mysqldump -u %user% -p %database_name% —ignore-table=%database_name%.%table_name% > %directory%/file.sql mysqldump -u %user% -p %database_name% —ignore-table=%database_name%.%table1 % —ignore-table=%database_name%.%table2 % > %directory%/file.sql В итоге дамп базы будет создан. После того, как мы сделали бэкап, его нужно закачать обратно в базу. Для этого нужно ввести команду: mysql -u %user% -p %database_name% < %directory%/file.sql Результатом будет восстановленная (лишь на часть) база. Все недостающие таблицы необходимо будет создать вручную. В этом случае поможет полная переустановка сервиса MySQL Чтобы выполнить её, необходимо: rm -rf /var/lib/mysqld 2. Инициализируем новую БД (параметр force_recovery должен быть предварительно убран из my.cnf): mysqld —initialize-insecure —basedir=/usr —datadir=/var/lib/mysql 3. Создаём сокет и даём права на файл пользователю MySQL mkfifo /var/lib/mysqld/mysqld.sock chown -R mysql /var/lib/mysqld/mysqld.sock 4. Запускаем mysql systemctl start mysqld mysql -u root 5. Меняем root-пароль mysql> ALTER USER ’root’@’localhost’ IDENTIFIED BY ’MyNewPass’; Далее необходимо заново пройти шаг № 4, после чего выключить аварийный режим mysql и перезагрузить сервис. Недостающие таблицы (если они не были созданы вручную при кастомизации системы) можно перенести с аналогичных проектов. Важно перенести именно структуру таблицы, без содержания. Системный аналитик IT Grade Эдуард Шмелёв
2. Попытка аварийного включения сервиса БД
3. Попытка экспортировать резервную копию при аварийном режиме БД
4.Попытка импорта бэкапа
5.Как быть, если импорт заканчивается с ошибкой?