Ad Widget

Collapse

Упала база после попытки разбить растущи

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • ksarek
    Junior Member
    • Oct 2016
    • 7

    #1

    Упала база после попытки разбить растущи

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

    В результате получил: Database error # The frontend does not match Zabbix database.

    При этом mysql видит базу zabbix и формально всё вроде бы "ок".


    Подскажите новичку, как в таком случае быть.

    Заранее спасибо.
    Last edited by ksarek; 10-10-2016, 16:10.
  • ksarek
    Junior Member
    • Oct 2016
    • 7

    #2
    Я подниму с вашего позволения.
    Неужели никто не сталкивался с подобной проблемой?

    Comment

    • yukra
      Senior Member
      • Apr 2013
      • 1359

      #3
      Originally posted by ksarek
      Добрый день,
      Столкнулся с проблемой растущего размера ibdata.
      Погуглив решил воспользоваться следующей инструкцией.

      В результате получил: database error # the frontend does not match zabbix database.

      При этом mysql видит базу zabbix и формально всё вроде бы "ок".


      Подскажите новичку, как в таком случае быть.

      Заранее спасибо.
      use zabbix;
      show tables;
      Это при условии что вы консолькой смотрите в тот же сервер и с теми же правами, что и фронтенд.

      Зы вы инструкцию полностью выполнили или остановились где то в середине? Ошибки были?

      Comment

      • ksarek
        Junior Member
        • Oct 2016
        • 7

        #4
        Originally posted by yukra
        Это при условии что вы консолькой смотрите в тот же сервер и с теми же правами, что и фронтенд.

        Зы вы инструкцию полностью выполнили или остановились где то в середине? Ошибки были?

        Вот, что за таблицы содержит zabbix:
        mysql> show tables;
        +------------------+
        | Tables_in_zabbix |
        +------------------+
        | acknowledges |
        | actions |
        | alerts |

        Прошел до конца, ошибки были но в основном вызванные сложными синтаксическими предложениями типа: mysql -uroot -p -e "show databases" | grep -v Database | grep -v mysql| grep -v information_schema | gawk '{print "drop database " $1 "; select sleep(0.1);"}' | mysql -uroot -p

        В таких случаях делал всё ручками drop database.
        Но по мне это абсолютно идентичные выражения.

        Спасибо, что откликнулись

        Comment

        • yukra
          Senior Member
          • Apr 2013
          • 1359

          #5
          Originally posted by ksarek
          Вот, что за таблицы содержит zabbix:
          Mysql> show tables;
          +------------------+
          | tables_in_zabbix |
          +------------------+
          | acknowledges |
          | actions |
          | alerts |
          Как-то совсем мало. У меня вот так:
          Code:
          [root@zabbix ~]# mysql -e 'show tables' zabbix 
          +----------------------------+
          | tables_in_zabbix           |
          +----------------------------+
          | acknowledges               |
          | actions                    |
          | alerts                     |
          | application_discovery      |
          | application_prototype      |
          | application_template       |
          | applications               |
          | auditlog                   |
          | auditlog_details           |
          | autoreg_host               |
          | conditions                 |
          | config                     |
          | corr_condition             |
          | corr_condition_group       |
          | corr_condition_tag         |
          | corr_condition_tagpair     |
          | corr_condition_tagvalue    |
          | corr_operation             |
          | correlation                |
          | dbversion                  |
          | dchecks                    |
          | dhosts                     |
          | drules                     |
          | dservices                  |
          | escalations                |
          | event_recovery             |
          | event_tag                  |
          | events                     |
          | expressions                |
          | functions                  |
          | globalmacro                |
          | globalvars                 |
          | graph_discovery            |
          | graph_theme                |
          | graphs                     |
          | graphs_items               |
          | group_discovery            |
          | group_prototype            |
          | groups                     |
          | history                    |
          | history_log                |
          | history_str                |
          | history_text               |
          | history_uint               |
          | host_discovery             |
          | host_inventory             |
          | hostmacro                  |
          | hosts                      |
          | hosts_groups               |
          | hosts_templates            |
          | housekeeper                |
          | httpstep                   |
          | httpstepitem               |
          | httptest                   |
          | httptestitem               |
          | icon_map                   |
          | icon_mapping               |
          | ids                        |
          | images                     |
          | interface                  |
          | interface_discovery        |
          | item_application_prototype |
          | item_condition             |
          | item_discovery             |
          | items                      |
          | items_applications         |
          | maintenances               |
          | maintenances_groups        |
          | maintenances_hosts         |
          | maintenances_windows       |
          | mappings                   |
          | media                      |
          | media_type                 |
          | nodes                      |
          | opcommand                  |
          | opcommand_grp              |
          | opcommand_hst              |
          | opconditions               |
          | operations                 |
          | opgroup                    |
          | opinventory                |
          | opmessage                  |
          | opmessage_grp              |
          | opmessage_usr              |
          | optemplate                 |
          | problem                    |
          | problem_tag                |
          | profiles                   |
          | proxy_autoreg_host         |
          | proxy_dhistory             |
          | proxy_history              |
          | regexps                    |
          | rights                     |
          | screen_user                |
          | screen_usrgrp              |
          | screens                    |
          | screens_items              |
          | scripts                    |
          | service_alarms             |
          | services                   |
          | services_links             |
          | services_times             |
          | sessions                   |
          | slides                     |
          | slideshow_user             |
          | slideshow_usrgrp           |
          | slideshows                 |
          | sysmap_element_url         |
          | sysmap_url                 |
          | sysmap_user                |
          | sysmap_usrgrp              |
          | sysmaps                    |
          | sysmaps_elements           |
          | sysmaps_link_triggers      |
          | sysmaps_links              |
          | task                       |
          | task_close_problem         |
          | timeperiods                |
          | trends                     |
          | trends_uint                |
          | trigger_depends            |
          | trigger_discovery          |
          | trigger_tag                |
          | triggers                   |
          | users                      |
          | users_groups               |
          | usrgrp                     |
          | valuemaps                  |
          +----------------------------+
          [root@zabbix ~]#
          На вашем месте я бы предложил либо откатываться из бэкапа, либо включать лог всех запросов в мускуле и смотреть "какой запрос возвращает ошибку" и его уже чинить.

          Comment

          • ksarek
            Junior Member
            • Oct 2016
            • 7

            #6
            Дело-то в том, что данную таблицу я и получил из бэкапа
            sudo mysql -uroot -p < /data/mysql/backup/backupmysql.sql

            Есть такое предположение, что я сделал Backup при zabbix сервере и не смог его корректно собрать. Возможно такое?

            Comment

            • yukra
              Senior Member
              • Apr 2013
              • 1359

              #7
              Originally posted by ksarek
              Есть такое предположение, что я сделал Backup при zabbix сервере и не смог его корректно собрать. Возможно такое?
              Если уходить в сторону предположений, то может быть все, что угодно. Например что ваши таблины (у вас база zabbix, а в ней таблицы acknowledges, actions и alerts) захавал Ктулху.

              Выполните команду "grep 'CREATE TABLE' /data/mysql/backup/backupmysql.sql" и сразу станет понятно какие именно таблицы есть в вашем дампе.

              Еще вопрос: у вас там дамп таблиц или дамп всей БД? В первом случае нужно восстанавливать дамп командой "sudo mysql -uroot -p zabbix < /data/mysql/backup/backupmysql.sql", покажите вывод команды "head -n 25 /data/mysql/backup/backupmysql.sql" и вообще позовите вашего DBA и проконсультируйтесь с ним, проблема то судя по всему в мускуле, а не в заббиксе

              Comment

              • ksarek
                Junior Member
                • Oct 2016
                • 7

                #8
                Originally posted by yukra
                Если уходить в сторону предположений, то может быть все, что угодно. Например что ваши таблины (у вас база zabbix, а в ней таблицы acknowledges, actions и alerts) захавал Ктулху.

                Выполните команду "grep 'CREATE TABLE' /data/mysql/backup/backupmysql.sql" и сразу станет понятно какие именно таблицы есть в вашем дампе.

                Еще вопрос: у вас там дамп таблиц или дамп всей БД? В первом случае нужно восстанавливать дамп командой "sudo mysql -uroot -p zabbix < /data/mysql/backup/backupmysql.sql", покажите вывод команды "head -n 25 /data/mysql/backup/backupmysql.sql" и вообще позовите вашего DBA и проконсультируйтесь с ним, проблема то судя по всему в мускуле, а не в заббиксе
                Вот что показал grep из бэкапа:
                CREATE TABLE `host` (
                CREATE TABLE `ndb_binlog_index` (
                CREATE TABLE `plugin` (
                CREATE TABLE `proc` (
                CREATE TABLE `procs_priv` (
                CREATE TABLE `proxies_priv` (
                CREATE TABLE `servers` (
                CREATE TABLE `tables_priv` (
                CREATE TABLE `time_zone` (
                CREATE TABLE `time_zone_leap_second` (
                CREATE TABLE `time_zone_name` (
                CREATE TABLE `time_zone_transition` (
                CREATE TABLE `time_zone_transition_type` (
                CREATE TABLE `user` (
                CREATE TABLE IF NOT EXISTS `general_log` (
                CREATE TABLE IF NOT EXISTS `slow_log` (
                CREATE TABLE `acknowledges` (
                CREATE TABLE `actions` (
                CREATE TABLE `alerts` (

                Странно, что я получил только:

                `acknowledges`
                `actions`
                `alerts`

                Про дамп: mysqldump -uroot -p -ERA --flush-privileges > backupmysql.sql
                Здесь я вел себя как китайский болванчик, под лозунгом "делай раз"
                Возможно мне следовало почитать синтаксис mysqldump

                Вывод "head -n 25":

                --
                -- Current Database: `mysql`
                --

                CREATE DATABASE /*!32312 IF NOT EXISTS*/ `mysql` /*!40100 DEFAULT CHARACTER SET latin1 */;

                USE `mysql`;

                Вся грусть в том, что DBA у нас нет)

                Comment

                • yukra
                  Senior Member
                  • Apr 2013
                  • 1359

                  #9
                  Originally posted by ksarek
                  Вот что показал grep из бэкапа:
                  CREATE TABLE `host` (
                  CREATE TABLE `ndb_binlog_index` (
                  CREATE TABLE `plugin` (
                  CREATE TABLE `proc` (
                  CREATE TABLE `procs_priv` (
                  CREATE TABLE `proxies_priv` (
                  CREATE TABLE `servers` (
                  CREATE TABLE `tables_priv` (
                  CREATE TABLE `time_zone` (
                  CREATE TABLE `time_zone_leap_second` (
                  CREATE TABLE `time_zone_name` (
                  CREATE TABLE `time_zone_transition` (
                  CREATE TABLE `time_zone_transition_type` (
                  CREATE TABLE `user` (
                  CREATE TABLE IF NOT EXISTS `general_log` (
                  CREATE TABLE IF NOT EXISTS `slow_log` (
                  CREATE TABLE `acknowledges` (
                  CREATE TABLE `actions` (
                  CREATE TABLE `alerts` (
                  Явно мало. Вероятнее всего (если нет других бэкапов) то "шеф, усе пропало". Список хостов и шаблонов можно попробовать вытащить из "hosts", а история, пользователи, триггеры, айтемы и все остальное - нет.
                  Originally posted by ksarek
                  Странно, что я получил только:

                  `acknowledges`
                  `actions`
                  `alerts`
                  Вероятнее всего это из за FOREIGN KEY, проблема в принципе решаема, если бы ваш дамп был-бы полным.
                  Originally posted by ksarek
                  Про дамп: mysqldump -uroot -p -ERA --flush-privileges > backupmysql.sql
                  Здесь я вел себя как китайский болванчик, под лозунгом "делай раз"
                  Возможно мне следовало почитать синтаксис mysqldump

                  Вывод "head -n 25":
                  Это дамп всех баз, а не дамп только zabbix. Он у вас большой? Можете сжать его и положить куда нить в интернет? я бы глянул, может чего нить удастся вытащить.
                  Кстати он у вас нормально завершился?

                  Comment

                  • ksarek
                    Junior Member
                    • Oct 2016
                    • 7

                    #10
                    Originally posted by yukra
                    Явно мало. Вероятнее всего (если нет других бэкапов) то "шеф, усе пропало". Список хостов и шаблонов можно попробовать вытащить из "hosts", а история, пользователи, триггеры, айтемы и все остальное - нет.

                    Вероятнее всего это из за FOREIGN KEY, проблема в принципе решаема, если бы ваш дамп был-бы полным.

                    Это дамп всех баз, а не дамп только zabbix. Он у вас большой? Можете сжать его и положить куда нить в интернет? я бы глянул, может чего нить удастся вытащить.
                    Кстати он у вас нормально завершился?
                    Поразмыслив и оценив трудозатраты, я решил что проще потерять еще сутки времени и восстановить zabbix c 0, возможно переехав сразу на что-то посвежее. Заббиксу 3.2 можно доверять?

                    Раз уж я вовлек Вас в данную проблему, дайте рекомендации, как в перспективе избежать нечеловеческого роста Ibdata? Необходима ли правка My.cnf с целью разбиения ibdata?
                    innodb_data_file_path=/data/ibdata1:2000M;/data/ibdata2:2000M /data/ibdata3:100M:autoextend:max:2000M
                    Или достаточно аккуратно задать период хранения собранных данных?

                    Спасибо большое за потраченное время!

                    Comment

                    • yukra
                      Senior Member
                      • Apr 2013
                      • 1359

                      #11
                      Originally posted by ksarek
                      Раз уж я вовлек Вас в данную проблему, дайте рекомендации, как в перспективе избежать нечеловеческого роста Ibdata? Необходима ли правка My.cnf с целью разбиения ibdata?
                      DBA не моя специализация, но я лично придерживаюсь след. вещей:
                      1) innodb_file_per_table (начиная с 5.6 оно по умолчанию включенно)
                      2) Внимательно следить за местом, не дожидайтесь триггера "осталось меньше 10% свободного места" (сам напоролся на то, что табличка history_uint.ibd выросла за 200Гб, теперь понемногу работаю хаускипером и переодически делаю "ALTER TABLE history_uint ENGINE='InnoDB'", кстати на моей перконе 5.6 команда не вызывает "даунтайма" заббикса, только нагрузка на сервер подрастает, но теперь мне пофиг, у меня сейчас 20х1TB sata в 10 рейде)
                      3) Правка my.cnf в любом случае нужна. Мускуль "по дефолту" настроен примерно "никак"

                      Comment

                      • yukra
                        Senior Member
                        • Apr 2013
                        • 1359

                        #12
                        Originally posted by ksarek
                        Поразмыслив и оценив трудозатраты, я решил что проще потерять еще сутки времени и восстановить zabbix c 0, возможно переехав сразу на что-то посвежее. Заббиксу 3.2 можно доверять?
                        Ну лично я доверяю, пока проблем не замечено. Но учтите что 3.0 lts, а 3.2 нет.

                        Comment

                        • ksarek
                          Junior Member
                          • Oct 2016
                          • 7

                          #13
                          Originally posted by yukra
                          Ну лично я доверяю, пока проблем не замечено. Но учтите что 3.0 lts, а 3.2 нет.
                          Еще раз спасибо, мастер.
                          С уважением, падаван.

                          Comment

                          Working...