Записки админа
12.6K subscribers
627 photos
28 videos
221 files
2.39K links
Пишу о Linux и администрировании серверов.

Связаться с автором: @servers

Заметки в браузере: https://sysadmin.pm/

Буст канала: https://tttttt.me/sysadminnotes?boost
Download Telegram
А мы с вами давайте сегодня пройдёмся по утилитам для оптимизации и контроля производительности MySQL\MariaDB сервера. Некоторые из них известны широко, другие, к моему удивлению, администраторами используются редко...

1. При установке сервера БД, в директории /usr/share/mysql/ можно найти готовые конфигурационные файлы для разных конфигов сервера. Например владельцы VDS с 512 Mb памяти могут попробовать использовать отсюда конфиг my-small.cnf, либо, если его лимитов будет не достаточно, конфиг my-medium.cnf.

2. На сайте tools.percona.com имеется доступ к генератору конфигов сервера БД. Если предустановленного конфига по какой-то причине оказалось не достаточно, можно авторизоваться на сайте и попробовать сгенерировать конфигурацию здесь.

3. Скрипты для оптимизации mysqltuner.pl и tuning-primer.sh. Первый - популяный сегодня, второй - к сожалению теряющий актуальность для последних версий сервера БД. Принцип работы обоих скриптов аналогичен - скачиваем, запускаем, получаем анализ текущей ситуации и рекомендации по увеличению конкретных параметров в конфиге. Для получения оптимального результата, имеет смысл запускать анализ после того как сервер БД проработал без перезапуска более 24-36 часов.

# wget https://raw.githubusercontent.com/major/MySQLTuner-perl/master/mysqltuner.pl
# chmod u+x mysqltuner.pl
# ./mysqltuner.pl

# wget https://launchpadlibrarian.net/78745738/tuning-primer.sh
# wget https://launchpadlibrarian.net/251274960/5.7.patch
# patch -p0 -i ./5.7.patch
# chmod u+x ./tuning-primer.sh
# ./tuning-primer.sh


4. Утилиты mytop, mtop, innotop. С помощью этих утилит, мы можем подключится к серверу БД нужным пользователем, при необходимости можем указать конкретную базу данных и посмотреть статистику - какой запрос был сделан, к какой базе, сколько этот запрос выполнялся, от какого хоста, в каком состоянии запрос находится сейчас и т. п. Имеется возможность принудительно завершить любой процесс. Нужные опции утилитам можно передать как через параметры запуска, так и через конфиги. Все три утилиты имеют поддержку ввода команд, которые позволяют администратору использовать весь доступный функционал. Список команд можно получить введя уже в запущеном приложении символ знака вопроса - ?

# mytop -u sysadmin_wtuser -p superpassword -d sysadmin_wtdbase
# mtop --dbuser=root --password=superpassword
# innotop -u root -p superpassword

Расширенная версия заметки (сюда и правда не влезло всё что хотелось показать) доступна на сайте. По возможности рекомендую ознакомиться именно с ней.

#будничное #mariadb #mysql #утилиты
Сегодня вечером пришлось заняться вопросом работы нескольких установок MySQL в рамках одного сервера. Хорошей новостью стало то, что ISPmanager 5 с некоторого времени поддерживает такую возможность и позволяет настроить всё необходимое прямо из панели управления. Для одновременной установки доступны версии MySQL 5.5, 5.6, 5.7, MariaDB 10, 10.1. Каждый сервер БД устанавливается в отдельный Docker контейнер и занимает свободный порт в системе, для того что бы обеспечить возможность подключения к нему.

Администратору после такой установки остаётся лишь развернуть БД в нужную инсталляцию MySQL, указать в своих скриптах на какой порт локалхоста необходимо подключиться, и его скрипты сразу начнут работать с нужной версией сервера баз.

Как по мне, это отличный подход, который скорее всего понравится разработчикам - ведь теперь можно в рамках одного сервера тестировать разные инсталляции, обновления на отдельных базах и т. п., но в то же время смутит обычных веб-мастеров, которым для работы с альтернативным сервером БД, как минимум нужно будет уметь прописывать в своих скриптах порт для соединения с MySQL. Короткая заметка по настройке необходимого прилагается.

#будничное #ispmanager #mysql #mariadb
Иногда проверка и починка базы с помощью mysqlcheck может пройти не совсем удачно, с ошибкой для определённой таблицы в БД:

error : Can't create new tempfile: './testdatabase/phpbb_posts.TMD'
status : Operation failed

В этом случае имеет смысл воспольоваться утилитой myisamchk. Останавливем сервер БД, и чиним нужную нам таблицу следующим образом (пример из CentOS 7):

# systemctl stop mariadb
# myisamchk -r -f /var/lib/mysql/testdatabase/phpbb_posts.MYI
- recovering (with sort) MyISAM-table '/var/lib/mysql/testdatabase/phpbb_posts.MYI'
Data records: 2
- Fixing index 1
# systemctl start mariadb

#будничное #mysql #mariadb
Астрологи объявили месяц Гитхаба. Количество полезностей оттуда увеличилось...

Вот, например, innodb_ruby - утилита для парсинга ibdata1 файлов InnoDB. Полезно для изучения структуры или для дебага, например.

Ставим как обычный ruby gem:

# gem install innodb_ruby

И запускаем, указав путь до файла и выбрав нужный режим:

# innodb_space -s /var/lib/mysql/ibdata1 system-spaces

Режим system-spaces покажет структуру файла и кое-какую статистику. О режимах и примерах запуска можно почитать в wiki проекта:

https://github.com/jeremycole/innodb_ruby/wiki

#mysql #mariadb #innodb
🛠 Интересный набор скриптов для работы с MySQL: https://gitlab.com/gwinans/dba-tools/

📗 А вот тут моя давняя подборка инструментов для MySQL же: https://sysadmin.pm/mariadb-mysql-optimization/

#mysql #mariadb #dba
This media is not supported in your browser
VIEW IN TELEGRAM
🛠 dolphie - функциональный tui инструмент для получения информации и аналитики работы MySQL\MariaDB сервера...

https://github.com/charles-001/dolphie

#mysql #mariadb #tui