Работа с базами данных MySQL в ISPManager 5 + Docker

В ISPManager 5 добавлена контейнерная виртуализация Docker для использования альтернативных версий MySQL.

Цитата из документации ISPManager 5:

Все альтернативные MySQL-серверы разворачиваются внутри «контейнеров», которые представляют из себя обособленную среду. Данные каждого контейнера хранятся в отдельной директории /var/lib/имя_сервера. Созданием и работой с контейнерами занимается Docker, в его же репозиториях хранятся и устанавливаемые версии MySQL.

Процесс установки контейнера:

  • Создание директории для контейнера (/var/lib/имя_сервера)
  • Загрузка выбранной версии MySQL из репозитория
  • Выбор свободного порта для проброса из контейнера (первый свободный порт начиная с 3310)
  • Настройка сервера и установка пароля для пользователя root

Для удобного администрирования и выполнения наиболее частых задач по работе данного, так сказать STACKчика, ниже собрал список решений:

  1. Импорт базы данных для альтернативного сервера в ISPManager 5

    mysql -udb_user -p --host=127.0.0.1 --port=3310 db_name < /var/www/lesovsky/data/backup_07042021.sql

    Для импорта базы данных с отображением прогресса отображения, пользуюсь утилитой pv — Pipe Viewer:
    Тогда команда будет иметь вид:

    pv /var/www/siteuser/data/backup_08042021.sql | mysql -udb_user -p --host=127.0.0.1 --port=3310 db_name
  2. Экспорт базы данных для альтернативного сервера в ISPManager 5

    mysqldump -udb_user -p --host=127.0.0.1 --port=3310 db_name > /var/www/siteuser/data/backup_08042021.sql
  3. Очистка дискового пространства после удаления альтернативного сервера базы данных

    Если было тестирование каких-то серверов БД и последующего их удаления или их обновления, после образуются dangling образы, которые могут занимать несколько гигабайт.
    Проверить наличие dangling образов можно с помощью команды:

    docker image ls -f dangling=true

    А удалить dangling образы:

    docker image rm $(docker image ls -f dangling=true -q)
  4. Очистка дискового пространства после удаления базы данных

    Бывает ситуация, что после удаления базы данных, файлы базы данных могут остаться на диске в папке /var/lib/имя_сервера/имя_бд для которую необходимо просто удалить.
    Для более быстрого поиска занимаемого места можно воспользоваться помощью утилиты ncdu.

    Цитата: 2-й способ. Утилита ncdu — анализ занятого места и его освобождение

    Есть так же и другие способы определить чем занято место на диске, например, очень удобная в плане анализа занятого места — утилита ncdu. Установить ее можно, например, так:

    • Для Debian систем (rpm-пакеты) (в т.ч. Ubuntu) командой apt-get install ncdu
    • Для Red Hat систем (dpkg-пакеты) командой yum install ncdu

    Дальше просто запустите ncdu и подождите, когда она подсчитает занимаемое место. По-умолчанию программа посчитает размеры папкой текущей папки, из которой программа была запущена. Если нужно посчитать какую-то другую папку, просто добавьте к команде путь к папке, например, так: ncdu /var/www. Если нужно посчитать занимаемое место на всем диске, можно использовать ncdu /.

    Программа показывает занимаемое папками место, позволяет заходить в них и сразу видеть сколько подпапки занимают места. Так же в этой утилите можно выполнять различные действия над файлами и папками. Получить справку по клавишам управления можно нажав «?«. Ниже приведу список некоторых из клавиш управления:

    • d — удалить выбранный файл или папку с файлами;
    • n — отсортировать файлы и папки по имени;
    • s — отсортировать файлы и папки по объему занимаемого места;
    • t — показывать сначала папки, затем файлы;
    • g — режим отображения (в процентах, графически, комплексно);
    • a — режим отображения (размер файла, занятое место на жестком диске)
    • e — включить/отключить отображение скрытых файлов;
    • i — показать дополнительную информацию о папке или файле;
    • r — заново пересчитать занимаемое место;
    • q — выйти из программы;

 

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *