The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Небольшая проблема с mysqldump, !*! menny, 07-Дек-08, 06:07  [смотреть все]
При администрации игрового сервера, когда mysql база разрослась до больших размеров(2gb в дампе) возникла некая проблема. Дело в том, что во время выполнения бэкапа(mysqldump) игровой сервер, как и все его игроки повисает на пару минут, пока mysqldump не отработает до конца.

Не знает ли кто-нибудь более безболезненную процедуру архивации, которая не будет вызывать продолжительных подвисаний?

  • Небольшая проблема с mysqldump, !*! hizhak, 06:15 , 07-Дек-08 (1)
    >При администрации игрового сервера, когда mysql база разрослась до больших размеров(2gb в
    >дампе) возникла некая проблема. Дело в том, что во время выполнения
    >бэкапа(mysqldump) игровой сервер, как и все его игроки повисает на пару
    >минут, пока mysqldump не отработает до конца.
    >
    >Не знает ли кто-нибудь более безболезненную процедуру архивации, которая не будет вызывать
    >продолжительных подвисаний?

    ответ не совсем  на вопрос твой, но может поможет.
    создай удалённого юзера и зайди с видновой машины на свой серв с помощью навиката или хейди и делай от туда, баг должен уйти

    • Небольшая проблема с mysqldump, !*! Pahanivo, 14:20 , 08-Дек-08 (5)
      >[оверквотинг удален]
      >>бэкапа(mysqldump) игровой сервер, как и все его игроки повисает на пару
      >>минут, пока mysqldump не отработает до конца.
      >>
      >>Не знает ли кто-нибудь более безболезненную процедуру архивации, которая не будет вызывать
      >>продолжительных подвисаний?
      >
      >ответ не совсем  на вопрос твой, но может поможет.
      >создай удалённого юзера и зайди с видновой машины на свой серв с
      >помощью навиката или хейди и делай от туда, баг должен уйти
      >

      мдааа - ты просто гений чувак, каких свет не видовал!
      те будем грузить не только винт на серваке, но еще и сеть на обоих машинах - ВЕЛИКОЛЕПНА!

  • Небольшая проблема с mysqldump, !*! angra, 05:23 , 08-Дек-08 (2)
    По уму нужно настраивать репликацию на другую машину, а уже оттуда снимать дамп. Альтернативный вариант - использование различных вариантов nice. Ну и наконец можно снимать бинарный дамп, особенно хорошо при наличии снапшотов.
    • Небольшая проблема с mysqldump, !*! menny, 06:47 , 08-Дек-08 (3)
      >ответ не совсем  на вопрос твой, но может поможет.
      >создай удалённого юзера и зайди с видновой машины на свой серв с помощью навиката или >хейди и делай от туда, баг должен уйти

      Это не помогает, так как тут скорее не баг, а просто нагрузка на скуль, при выполнение сложных запросов с join(ами) также висит игровой сервак.

      >По уму нужно настраивать репликацию на другую машину, а уже оттуда снимать
      >дамп. Альтернативный вариант - использование различных вариантов nice. Ну и наконец
      >можно снимать бинарный дамп, особенно хорошо при наличии снапшотов.

      Вот тоже склонялся к репликации, но никогда этого не делал, поэтому хотелось бы узнать, возможно ли сделать репликацию на той же машине, на которой и основной скуль? Если нет, тогда ещё 1 вопрос, если есть 2 тачки, на обоих стоит скуль, который используется по назначению, возможно ли настроить взаимную репликацию для этих двух тачек, т. е. тачка 1 реплицирует тачку 2, тачка 2 реплицирует тачку 1?

      Заранее спасибо.

      • Небольшая проблема с mysqldump, !*! Nimdar, 13:27 , 08-Дек-08 (4)
        >Это не помогает, так как тут скорее не баг, а просто нагрузка
        >на скуль, при выполнение сложных запросов с join(ами) также висит игровой
        >сервак.

        Это блокировка таблиц на время снятия дампа. Решение одно -- поднимать репликацию.

        >
        >>По уму нужно настраивать репликацию на другую машину, а уже оттуда снимать
        >>дамп. Альтернативный вариант - использование различных вариантов nice. Ну и наконец
        >>можно снимать бинарный дамп, особенно хорошо при наличии снапшотов.
        >
        >Вот тоже склонялся к репликации, но никогда этого не делал, поэтому хотелось
        >бы узнать, возможно ли сделать репликацию на той же машине, на
        >которой и основной скуль?

        Возможно.

        > Если нет, тогда ещё 1 вопрос, если
        >есть 2 тачки, на обоих стоит скуль, который используется по назначению,
        >возможно ли настроить взаимную репликацию для этих двух тачек, т. е.
        >тачка 1 реплицирует тачку 2, тачка 2 реплицирует тачку 1?

        Возможно.

        >
        >Заранее спасибо.

        • Небольшая проблема с mysqldump, !*! Pahanivo, 14:26 , 08-Дек-08 (6)
          1)А разве mysqldump блокает таблицы если ему этого спецально не сказать?
          2)А вы уверены что при частых записях в таблицы репликации не усугубят проблему?
          • Небольшая проблема с mysqldump, !*! Nimdar, 15:13 , 08-Дек-08 (7)
            >1)А разве mysqldump блокает таблицы если ему этого спецально не сказать?

            Да.

            man mysqldump

            --opt
                      This option is shorthand; it is the same as specifying --add-drop-table --add-locks --create-options
                      --disable-keys --extended-insert --lock-tables --quick --set-charset. It should give you a fast dump
                      operation and produce a dump file that can be reloaded into a MySQL server quickly.

                      The --opt option is enabled by default. Use --skip-opt to disable it.  See the discussion at the
                      beginning of this section for information about selectively enabling or disabling certain of the
                      options affected by --opt.


            >2)А вы уверены что при частых записях в таблицы репликации не усугубят
            >проблему?

            Не понял вопроса.

            • Небольшая проблема с mysqldump, !*! menny, 15:33 , 08-Дек-08 (8)
              Спасибо за столь быстрый и краткий ответ. Если не сложно можно ещё ссылку на нормальный гайд по поднятию репликации на той же машине, где и скуль, не хотелось бы читать чего-то лишнего и ненужного.

            • Небольшая проблема с mysqldump, !*! Pahanivo, 16:41 , 08-Дек-08 (11)
              >[оверквотинг удален]
              >server quickly.
              >
              >          The --opt
              >option is enabled by default. Use --skip-opt to disable it.  
              >See the discussion at the
              >          beginning of
              >this section for information about selectively enabling or disabling certain of
              >the
              >          options affected
              >by --opt.

              ну дык тода отрубаем блочку, nice 20 и вперед с песней

              • Небольшая проблема с mysqldump, !*! Nimdar, 17:05 , 08-Дек-08 (12)
                >[оверквотинг удален]
                >>          The --opt
                >>option is enabled by default. Use --skip-opt to disable it.  
                >>See the discussion at the
                >>          beginning of
                >>this section for information about selectively enabling or disabling certain of
                >>the
                >>          options affected
                >>by --opt.
                >
                >ну дык тода отрубаем блочку, nice 20 и вперед с песней

                И получаем неконсистентный дамп, который нахрен никому не нужен.

                • Небольшая проблема с mysqldump, !*! Pahanivo, 17:55 , 08-Дек-08 (13)
                  >[оверквотинг удален]
                  >>>See the discussion at the
                  >>>          beginning of
                  >>>this section for information about selectively enabling or disabling certain of
                  >>>the
                  >>>          options affected
                  >>>by --opt.
                  >>
                  >>ну дык тода отрубаем блочку, nice 20 и вперед с песней
                  >
                  >И получаем неконсистентный дамп, который нахрен никому не нужен.

                  Пачему?

                  • Небольшая проблема с mysqldump, !*! Nimdar, 18:43 , 08-Дек-08 (14)
                    >[оверквотинг удален]
                    >>>>this section for information about selectively enabling or disabling certain of
                    >>>>the
                    >>>>          options affected
                    >>>>by --opt.
                    >>>
                    >>>ну дык тода отрубаем блочку, nice 20 и вперед с песней
                    >>
                    >>И получаем неконсистентный дамп, который нахрен никому не нужен.
                    >
                    >Пачему?

                    В момент снятия дампа может случиться запись в две и более связанных между собой таблицы, часть из которых уже снята, а часть ещё нет => теряем связность. И зачем мне такой бекап?

                    • Небольшая проблема с mysqldump, !*! Pahanivo, 18:55 , 08-Дек-08 (15)
                      >[оверквотинг удален]
                      >>>>>          options affected
                      >>>>>by --opt.
                      >>>>
                      >>>>ну дык тода отрубаем блочку, nice 20 и вперед с песней
                      >>>
                      >>>И получаем неконсистентный дамп, который нахрен никому не нужен.
                      >>
                      >>Пачему?
                      >
                      >В момент снятия дампа может случиться запись в две и более связанных между собой таблицы, часть из которых уже снята, а часть ещё нет => теряем связность. И зачем мне такой бекап?

                      ето мож если и актуально, то только для innodb
                      для myisam по моему эта тема както пофегу, учитываю что практически весь контроль связанности выполняется приложением. Темболее речь про игровой серв.

                      • Небольшая проблема с mysqldump, !*! Nimdar, 19:14 , 08-Дек-08 (16)
                        >[оверквотинг удален]
                        >>>>
                        >>>>И получаем неконсистентный дамп, который нахрен никому не нужен.
                        >>>
                        >>>Пачему?
                        >>
                        >>В момент снятия дампа может случиться запись в две и более связанных между собой таблицы, часть из которых уже снята, а часть ещё нет => теряем связность. И зачем мне такой бекап?
                        >
                        >ето мож если и актуально, то только для innodb
                        >для myisam по моему эта тема както пофегу, учитываю что практически весь
                        >контроль связанности выполняется приложением. Темболее речь про игровой серв.

                        Какое имеет значение тип таблиц?
                        Наименования берутся из таблицы t1, описания из таблицы t2. Описания есть, наименований нету (или наоборот). Приложение, как минимум, сильно удивляется этому и может начать выражацца страшными словами.
                        В общем, я считаю, что лучше не рисковать, хоть и сервак игровой.

                        • Небольшая проблема с mysqldump, !*! Pahanivo, 08:42 , 09-Дек-08 (17)
                          >[оверквотинг удален]
                          >>
                          >>ето мож если и актуально, то только для innodb
                          >>для myisam по моему эта тема както пофегу, учитываю что практически весь
                          >>контроль связанности выполняется приложением. Темболее речь про игровой серв.
                          >
                          >Какое имеет значение тип таблиц?
                          >Наименования берутся из таблицы t1, описания из таблицы t2. Описания есть, наименований
                          >нету (или наоборот). Приложение, как минимум, сильно удивляется этому и может
                          >начать выражацца страшными словами.
                          >В общем, я считаю, что лучше не рисковать, хоть и сервак игровой.

                          innodb поддерживает транзакции.
                          myisam - нет. В myisam итак не проблема порушить целостность любым глюком - допустим идет запись в 3 таблице последовательно, в момент записи во вторую сервак упал - все - целостность нарушена.
                          И вопрос скорее всего не в целостности, а в инструментах ее восстановления.

                        • Небольшая проблема с mysqldump, !*! Nimdar, 12:12 , 09-Дек-08 (19)
                          >[оверквотинг удален]
                          >>>контроль связанности выполняется приложением. Темболее речь про игровой серв.
                          >>
                          >>Какое имеет значение тип таблиц?
                          >>Наименования берутся из таблицы t1, описания из таблицы t2. Описания есть, наименований
                          >>нету (или наоборот). Приложение, как минимум, сильно удивляется этому и может
                          >>начать выражацца страшными словами.
                          >>В общем, я считаю, что лучше не рисковать, хоть и сервак игровой.
                          >
                          >innodb поддерживает транзакции.
                          >myisam - нет. В myisam итак не проблема порушить целостность любым глюком

                          И что, что поддерживает? mysqldump тупо делает селекты, проходя последовательно каждую таблицу, и в случае, если база не залочена, и в момент снятия бекапа
                          >- допустим идет запись в 3 таблице последовательно, в момент записи
                          >во вторую сервак упал - все - целостность нарушена.

                          ...и тип таблиц не имеет никакого значения -- мы имеем проблемы.

                          >И вопрос скорее всего не в целостности, а в инструментах ее восстановления.
                          >

                          ...и правильного снятия дампа.

                        • Небольшая проблема с mysqldump, !*! angra, 04:40 , 10-Дек-08 (20)
                          Транзакция не может быть выполнена частично, так что если приложение использует транзакции, то описанной вами проблемы не будет. Если транзакции не используются, то единственный вариант получения логически верного дампа это корректная остановка всех приложений. Имеет смысл при переносе базы, но абсолютно не актуально для бекапа, так как восстановление с бекапа подразумевает наличие намного более серьезных потерь.
  • Небольшая проблема с mysqldump, !*! MrV, 16:27 , 08-Дек-08 (10)
    >При администрации игрового сервера, когда mysql база разрослась до больших размеров(2gb в
    >дампе) возникла некая проблема. Дело в том, что во время выполнения
    >бэкапа(mysqldump) игровой сервер, как и все его игроки повисает на пару
    >минут, пока mysqldump не отработает до конца.
    >
    >Не знает ли кто-нибудь более безболезненную процедуру архивации, которая не будет вызывать
    >продолжительных подвисаний?

    Честно говоря, не знаю поможет или нет (мне очень помогло,все зависит от того какие данные хранятся в таблице и как часто они меняются) - если происходит частая вставка и удаление, то может помочь такая утилитка как mysqltuner - покажет что нужно подкрутить - очень хорошая статья -  http://web-scalability.com/category/database/mysql/ . Кроме того хотя бы раз в неделю делать - optimize table для таблиц.

    • Небольшая проблема с mysqldump, !*! Mr_Dee, 10:17 , 09-Дек-08 (18)
      конечно могу быть не оригинальным , но у меня была похожая тема (толкьо база не 2 гига , а 22) всё работает на иннодб у меня была идея через селекторы LOCK TABLE WRITE пульнуть на таблицы под именем от которого идёт дамп (ну через пхп скрипт) и спокойно снять дамп , после чего другим скриптом пульнуть UNLOCK TABLE .
      До реализации пока не довёл :) но идея осталась
      (сразу говорю что после входа по юзером user1 и послать LOCK TABLE t_1 WRITE; , то сам этот юзар будет иметь полную власть над таблицами , а вот ругие будет вставать в очередь (на запись) пока не будет под тем же юзеров UNLOCK TABLE t_1;
      (попробую вдруг пможет) при бузе в 2 гига (смешной размер) дамп снимается минут за 5 - 10 .
      так же советую снимать дамт не в формате *.sql  , а *.sql + *.txt (это делается так :
      mysqldump NAME_DB -q -T /pach/(тут у папки должно быть права 777) -udump -ppass
      после чего в папке будет по каждой таблице 2 файла (*.sql фаил с командой дропа/создания таблицы и *.txt фаил где через табуляцию забиты все данные из таблицы).
      Приимущество данного дампа в скорости снятия и заливания (правда придётся ручками заливать дам обратно через mysqlimport (сперва *.sql фаил через mysql BASE < *.sql , потом mysqlimport --delete -u -p -L /path/*.txt   (имена тхт должны совпадать с именами таблиц) , всё происходит очень быстро и удобно .



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру