Ad Widget

Collapse

Перенос БД в другой раздел

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Scrappy1974
    Junior Member
    • Jan 2018
    • 10

    #1

    Перенос БД в другой раздел

    Добрый день!

    Установлен Zabbix 3.4 на CentOS 7. В качестве баз данных используется mariaDB.

    Возникла необходимость перенести базу в другой раздел этого же сервера (из-за нехватки места, где она сейчас находится).

    Пробовал следующим методом.

    1) Останавливаю service zabbix-server
    2) Останавливаю service mariaDB
    3) Перемещаю (Midnight Commander-ом) базу из var/lib/mysql в новое место
    4) Меняю в файле конфигурации my.cnf пути на новые
    5) Запускаю service mariaDB
    6) Запускаю service zabbix-server

    Захожу в web-ку zabbix и он выдает ошибку, что не найдена база данных (и указывает путь на старое место расположение var/lib/mysql/zabbix)

    В zabbix_server.conf параметры не изменял

    DBHost=localhost
    DBName=zabbix
    DBUser=zabbix
    DBPassword=<Пароль от базы>

    Подскажите, в чем может быть ошибка? И где еще необходимо внести правки?

    Спасибо.

    p.s. Возвращая все в исходное место и положение, Zabbix работает без проблем.
  • astrix89
    Senior Member
    • Jun 2017
    • 149

    #2
    База сама при этом стартует?

    Comment

    • pa1975
      Junior Member
      • Dec 2017
      • 14

      #3
      Добрый день!
      Попробуй symlink "база на новом месте" -> var/lib/mysql/zabbix
      У меня на тестовом сервере заработало без вопросов.
      Даже сам MariaDB не останавливал, только zabbix-server.
      Минус -vfs.fs.size не показывает что место освободилось, бъюсь с этим.

      Если надо напрямую, без линков - попробуй зайди в консоль sql-сервера и послать какой-то запрос к БД - должен выполниться.
      Если нет - сервер БД не принял (не нашёл) базу на новом месте.

      Comment

      • astrix89
        Senior Member
        • Jun 2017
        • 149

        #4
        Originally posted by pa1975
        Добрый день!
        Попробуй symlink "база на новом месте" -> var/lib/mysql/zabbix
        У меня на тестовом сервере заработало без вопросов.
        Даже сам mariadb не останавливал, только zabbix-server.
        Минус -vfs.fs.size не показывает что место освободилось, бъюсь с этим.

        Если надо напрямую, без линков - попробуй зайди в консоль sql-сервера и послать какой-то запрос к БД - должен выполниться.
        Если нет - сервер БД не принял (не нашёл) базу на новом месте.
        Место не освободится, пока открыт файловый дескриптор таблицы.

        Comment

        • Scrappy1974
          Junior Member
          • Jan 2018
          • 10

          #5
          Originally posted by astrix89
          База сама при этом стартует?
          При старте service mariaDB ошибок не возникло. Саму базу не проверял.

          Comment

          • astrix89
            Senior Member
            • Jun 2017
            • 149

            #6
            Кстати да, заббикс через сокет к базе подключается?

            Comment

            • Scrappy1974
              Junior Member
              • Jan 2018
              • 10

              #7
              Originally posted by pa1975
              Добрый день!
              Попробуй symlink "база на новом месте" -> var/lib/mysql/zabbix
              У меня на тестовом сервере заработало без вопросов.
              Даже сам mariadb не останавливал, только zabbix-server.
              Минус -vfs.fs.size не показывает что место освободилось, бъюсь с этим.

              Если надо напрямую, без линков - попробуй зайди в консоль sql-сервера и послать какой-то запрос к БД - должен выполниться.
              Если нет - сервер БД не принял (не нашёл) базу на новом месте.
              Спасибо. Попробую. У меня была такая идея сделать. Но думал, что база по сокету найдется сама при переносе.

              Comment

              • Scrappy1974
                Junior Member
                • Jan 2018
                • 10

                #8
                Originally posted by scrappy1974
                Добрый день!

                Установлен zabbix 3.4 на centos 7. В качестве баз данных используется mariadb.

                Возникла необходимость перенести базу в другой раздел этого же сервера (из-за нехватки места, где она сейчас находится).

                Пробовал следующим методом.

                1) Останавливаю service zabbix-server
                2) Останавливаю service mariadb
                3) Перемещаю (midnight commander-ом) базу из var/lib/mysql в новое место
                4) Меняю в файле конфигурации my.cnf пути на новые
                5) Запускаю service mariadb
                6) Запускаю service zabbix-server

                Захожу в web-ку zabbix и он выдает ошибку, что не найдена база данных (и указывает путь на старое место расположение var/lib/mysql/zabbix)

                В zabbix_server.conf параметры не изменял

                dbhost=localhost
                dbname=zabbix
                dbuser=zabbix
                dbpassword=<Пароль от базы>

                Подскажите, в чем может быть ошибка? И где еще необходимо внести правки?

                Спасибо.

                P.s. Возвращая все в исходное место и положение, zabbix работает без проблем.
                Я вот, что еще подумал. Не может это быть связано с правами?
                При переносе базы, не проверил права на новом месте.

                Comment

                • astrix89
                  Senior Member
                  • Jun 2017
                  • 149

                  #9
                  Лучше лог приложите запуска заббикса

                  Comment

                  • pa1975
                    Junior Member
                    • Dec 2017
                    • 14

                    #10
                    Originally posted by Scrappy1974
                    Спасибо. Попробую. У меня была такая идея сделать. Но думал, что база по сокету найдется сама при переносе.
                    Пусть поправят ГУРУ - но по сокету Вы соединяетесь с сервером БД, а уж видит ли он БД - дело другое.

                    Originally posted by Scrappy1974
                    Не может это быть связано с правами?
                    Права должны быть у сервера БД (mysql - по умолчанию)
                    Т.е. база недоступна может быть - это и предлагал проверить прямым запросом к БД.

                    Originally posted by astrix89
                    Место не освободится, пока открыт файловый дескриптор таблицы.
                    Т.е. по правильному надо было останавливать сервер БД?

                    Comment

                    • pa1975
                      Junior Member
                      • Dec 2017
                      • 14

                      #11
                      Ещё, кстати, вариант..
                      Сделать backup базы zabbix.
                      Удалить старую базу, сделать новую, на новом месте, и восстановить из backup.
                      Но это неспортивно :-)

                      Comment

                      • astrix89
                        Senior Member
                        • Jun 2017
                        • 149

                        #12
                        Originally posted by pa1975
                        Т.е. по правильному надо было останавливать сервер БД?
                        Вообщем да, если вы будете перемещать файлы таблицы в другое место без остановки записи данных в таблицу, будет ахтунг.
                        Можно тут несколькими путями пойти.
                        1. Лочим таблицу, перетаскиваем файлы, делаем симлинки, разлочиваем таблицу, перезапускаем базу, освобождается место.
                        2. Останавливаем базу, перемещает файлы таблицы, делаем симлинки, запускаем базу.

                        Comment

                        • Scrappy1974
                          Junior Member
                          • Jan 2018
                          • 10

                          #13
                          Originally posted by astrix89
                          Кстати да, заббикс через сокет к базе подключается?
                          Да, через сокет

                          Comment

                          • astrix89
                            Senior Member
                            • Jun 2017
                            • 149

                            #14
                            Originally posted by scrappy1974
                            Да, через сокет
                            Тогда тут 2 варианта.
                            1. Некорректно указан путь к сокету в конфиге заббикса.
                            2. Выставлены неправильные права где-то по пути к сокету.

                            Comment

                            • Scrappy1974
                              Junior Member
                              • Jan 2018
                              • 10

                              #15
                              [QUOTE=pa1975;208650
                              Права должны быть у сервера БД (mysql - по умолчанию)
                              Т.е. база недоступна может быть - это и предлагал проверить прямым запросом к БД.
                              [/QUOTE]

                              Т.е. , если я правильно понял, поправьте.
                              При переносе базы в другое место, нужно проверить права, и если они отличные, то установить
                              sudo chown -R mysql: /новое место/mysql

                              База могла не стартануть из-за нехватки прав?

                              Ну и проверить доступность база простым запросом.

                              Просто хочу выработать алгоритм действий, так как не могу на долго, для экспериментов, отключать мониторинг.

                              Comment

                              Working...