Ad Widget

Collapse

Спасение данных из поврежденной базы MySQL

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • AndreyZn
    Junior Member
    • Apr 2021
    • 1

    #1

    Спасение данных из поврежденной базы MySQL

    Имеется виртуальный сервер: 4GB, 2core, 40GB hdd - Ubuntu 20.04.1 LTS + Zabbix 5.0.2 + MySQL
    База данных на нем перестала стартовать (предположительно после попытки апгрейда заббикса, но это не точно, так как сломалось давно)
    Задача минимум: Вытащить(возможно вручную) из базы настройки хостов, их IP, триггеры и все что только можно для настройки нового заббикс сервера.
    Зачача максимум: Починить эту базу

    при старте mysql ($ sudo /etc/init.d/mysql start )
    в /var/log/mysql/error.log:
    Code:
    [FONT=Courier New]16:14:16 0 [Note] InnoDB: If the mysqld execution user is authorized, page cleaner thread priority can be changed. See the man page of setpriority().
    16:14:16 0 [Note] InnoDB: Checksum mismatch in datafile: ./ibdata1, Space ID:0, Flags: 0
    [B]16:14:16 0 [COLOR=#d35400][ERROR] InnoDB: Corrupted page [page id: space=0, page number=0] of datafile './ibdata1' could not be found in the doublewrite buffer.[/COLOR][/B]
    16:14:16 0 [ERROR] InnoDB: Plugin initialization aborted with error Data structure corruption
    16:14:16 0 [Note] InnoDB: Starting shutdown...[/FONT]
    [FONT=Courier New]16:14:17 0 [ERROR] Plugin 'InnoDB' init function returned error.
    16:14:17 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
    16:14:17 0 [Note] Plugin 'FEEDBACK' is disabled.
    16:14:17 0 [ERROR] Unknown/unsupported storage engine: InnoDB
    16:14:17 0 [ERROR] Aborting[/FONT]
    Пробовал в /etc/mysql/mariadb.conf.d/50-server.cnf добавлять:
    innodb_force_recovery = 4 ( пробовал по очереди от 1-го до 6-ти) : Не стартует, с той же самой ошибкой.

    Вопрос 1: А туда ли я вписывал этот recovery =... ? как убедиться что эта настройка применяется при старте базы?
    Вопрос 2: Что в этом файле ibdata1(размер 77 мб) хранится?. Можно ли его подменить /почистить/ пофиксить? (мне главное запусить заббикс, и посмотреть какие хосты и как именно мониторились.
    Вопрос 3: Если придется ковырять в ручную, в каких файлах/таблицах искать? например, где хранится список хостов, пароли от SNMP и т.д.?

    список файлов :
    Code:
    [FONT=Courier New]zabadmin@zabbix:/var/lib/mysql$ ll
    total 188512
    drwxr-xr-x 5 mysql mysql 4096 Apr 25 16:19 ./
    drwxr-xr-x 43 root root 4096 Jul 4 2020 ../
    -rw-rw---- 1 mysql mysql 16384 Apr 25 16:19   aria_log.00000001
    -rw-rw---- 1 mysql mysql 52 Apr 25 16:19      aria_log_control
    -rw-r--r-- 1 mysql mysql 0 Jul 4 2020         debian-10.3.flag
    -rw-rw---- 1 mysql mysql 10563 Jul 4 2020     ib_buffer_pool
    -rw-rw---- 1 mysql mysql 50331648 Jul 25 2020 ib_logfile0
    -rw-rw---- 1 mysql mysql 50331648 Jul 25 2020 ib_logfile1
    -rw-rw---- 1 mysql mysql 79691776 Jul 25 2020 ibdata1
    -rw-rw---- 1 mysql mysql 12582912 Jul 4 2020  ibtmp1
    -rw-rw---- 1 mysql mysql 0 Jul 4 2020         multi-master.info
    drwx------ 2 mysql mysql 4096 Jul 4 2020      mysql/
    -rw-rw---- 1 mysql mysql 16 Jul 4 2020        mysql_upgrade_info
    drwx------ 2 mysql mysql 4096 Jul 4 2020      performance_schema/
    -rw-rw---- 1 mysql mysql 24576 Jul 4 2020     tc.log
    drwx------ 2 mysql mysql 20480 Jul 4 2020     zabbix_db/[/FONT]

    Code:
    zabadmin@zabbix:~$ sudo innochecksum /var/lib/mysql/ibdata1 -l log.log
    Fail: page::0 invalid
    Exceeded the maximum allowed checksum mismatch count::1 current::0
    Error: Page 0 checksum mismatch, can't continue.
    Last edited by AndreyZn; 26-04-2021, 23:23.
Working...