MariaDB - восстановление таблиц
Редактировал(а) Руслан Савельев 2025/08/07 04:31
1. Первый уровень
Восстановление можно провести в ручном режиме (вкладка - "Ручной режим") или автоматическом режиме (вкладка - "Автоматический режим")
- Запустите HeidiSQL
C:\Program Files (x86)\Common Files\MariaDBShared\HeidiSQL\heidisql.exe
- Создайте сеанс подключения к БД (или используйте существующий)
- Нажмите на кнопку "Создать"
- Имя хоста - 127.0.0.1 или localhost
- Пользователь - root
- Нажмите на кнопку "Открыть"

Подключение к HeidiSQL
- Откроется окно программы
- Выберите схему oc нажатием левой кнопки мыши
- Кликните по названию схемы oc правой кнопкой мыши и в выпадающем меню выберите "Обслуживание"

Выбор схемы для обслуживания
- Откроется окно "Массовый редактор таблиц", выберите следующие параметры для восстановления:
- Убедитесь, что схема oc отмечена флажком (на рисунке отмечено цифрой 1)
- На вкладке "Обслуживание" в строке "Операция" выберите Repair (на рисунке отмечено цифрой 2)
- Отметьте флажком опции "Extended" и "Use FRM file" (на рисунке отмечено цифрой 3)
- Нажмите - "Выполнить" (на рисунке отмечено цифрой 4)

Выбор параметров восстановления
Если восстановление не работает
- Остановите службу MariaDB
- Отключите автоматическое восстановление таблиц в файле my.ini
C:\SNC_AZS\MariaDB\data\my.ini
mysqld
aria_recover_options=OFF
aria_recover_options=OFF
- Запустите службу MariaDB
- Снова запустите восстановление первого уровня
- Запустите скрипт MariaLevel1.cmd
C:\SNC_AZS\software\dbase\MariaLevel1.cmd
После выполнения скрипта в каталоге запуска появится файл level1.log
16:18 #Время запуска скрипта
"------Start checking tables------"
"------Bad tables list------" #Список поврежденных таблиц
oc.eventlog
"------Start recovery------" #Протокол восстановления таблиц
oc.eventlog
warning : Number of rows changed from 0 to 972
status : OK
"------Recover complete, start new check------"
16:18 #Время завершения восстановления
"------Bad tables list after recovery------" #Список невосстановленных таблиц (должен быть пуст)
"------Start checking tables------"
"------Bad tables list------" #Список поврежденных таблиц
oc.eventlog
"------Start recovery------" #Протокол восстановления таблиц
oc.eventlog
warning : Number of rows changed from 0 to 972
status : OK
"------Recover complete, start new check------"
16:18 #Время завершения восстановления
"------Bad tables list after recovery------" #Список невосстановленных таблиц (должен быть пуст)
2. Второй уровень
Восстановление можно провести в ручном режиме (вкладка - "Ручной режим") или автоматическом режиме (вкладка - "Автоматический режим")
- Остановите службу MariaDB
- Запустите утилиту aria_chk со следующими параметрами:
C:\SNC_AZS_Maria\MariaDB\bin\aria_chk.exe --check --force oc\*.MAI
- После выполнения команды, при отсутствии ошибок, запустите службу сервера MariaDB
- Запустите скрипт MariaLevel2.cmd
C:\SNC_AZS\software\dbase\MariaLevel2.cmd
- После выполнения скрипта в каталоге запуска появится файл level2.log
16:18 #Время запуска скрипта
"------Start checking tables------"
"------Bad tables list------" #Список поврежденных таблиц
oc.eventlog
"------Start recovery------" #Протокол восстановления таблиц
oc.eventlog
warning : Number of rows changed from 0 to 972
status : OK
"------Recover complete, start new check------"
16:18 #Время завершения восстановления
"------Bad tables list after recovery------" #Список невосстановленных таблиц (должен быть пуст)
"------Start checking tables------"
"------Bad tables list------" #Список поврежденных таблиц
oc.eventlog
"------Start recovery------" #Протокол восстановления таблиц
oc.eventlog
warning : Number of rows changed from 0 to 972
status : OK
"------Recover complete, start new check------"
16:18 #Время завершения восстановления
"------Bad tables list after recovery------" #Список невосстановленных таблиц (должен быть пуст)
3. Третий уровень
- Остановите службу MariaDB
- Запустите утилиту aria_chk со следующими параметрами:
C:\SNC_AZS_Maria\MariaDB\bin\aria_chk.exe --safe-recover --zerofill oc\*.MAI
- После выполнения команды, при отсутствии ошибок, запустите службу сервера MariaDB
4. Четвертый уровень
Восстановление можно провести в ручном режиме (вкладка - "Ручной режим") или автоматическом режиме (вкладка - "Автоматический режим")
- Остановите службу MariaDB
- Удалите файлы логирования СУБД aria_log.* в каталоге Data:
C:\SNC_AZS\MariaDB\data\
- После выполнения команды, при отсутствии ошибок, запустите службу сервера MariaDB
- Запустите скрипт MariaLevel0.cmd
C:\SNC_AZS\software\dbase\MariaLevel0.cmd
- После выполнения скрипта в каталоге запуска появится файл level2.log
18:04
"------Checking MariaDB state------"
"------MariaDB OK------"
Имя_службы: MariaDB
Тип : 10 WIN32_OWN_PROCESS
Состояние : 4 RUNNING #Состояние службы
(STOPPABLE, PAUSABLE, ACCEPTS_SHUTDOWN)
Код_выхода_Win32 : 0 (0x0)
Код_выхода_службы : 0 (0x0)
Контрольная_точка : 0x0
Ожидание : 0x0
"------Checking MariaDB state------"
"------MariaDB OK------"
Имя_службы: MariaDB
Тип : 10 WIN32_OWN_PROCESS
Состояние : 4 RUNNING #Состояние службы
(STOPPABLE, PAUSABLE, ACCEPTS_SHUTDOWN)
Код_выхода_Win32 : 0 (0x0)
Код_выхода_службы : 0 (0x0)
Контрольная_точка : 0x0
Ожидание : 0x0
5. Если не удалось восстановить
Если операции по восстановлению не дали результата, то необходимо файловый слепок хранилища БД передать разработчикам для детального анализа сбойной ситуации.