А мы с вами давайте сегодня пройдёмся по утилитам для оптимизации и контроля производительности 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 часов.
4. Утилиты mytop, mtop, innotop. С помощью этих утилит, мы можем подключится к серверу БД нужным пользователем, при необходимости можем указать конкретную базу данных и посмотреть статистику - какой запрос был сделан, к какой базе, сколько этот запрос выполнялся, от какого хоста, в каком состоянии запрос находится сейчас и т. п. Имеется возможность принудительно завершить любой процесс. Нужные опции утилитам можно передать как через параметры запуска, так и через конфиги. Все три утилиты имеют поддержку ввода команд, которые позволяют администратору использовать весь доступный функционал. Список команд можно получить введя уже в запущеном приложении символ знака вопроса -
Расширенная версия заметки (сюда и правда не влезло всё что хотелось показать) доступна на сайте. По возможности рекомендую ознакомиться именно с ней.
#будничное #mariadb #mysql #утилиты
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
Администратору после такой установки остаётся лишь развернуть БД в нужную инсталляцию MySQL, указать в своих скриптах на какой порт локалхоста необходимо подключиться, и его скрипты сразу начнут работать с нужной версией сервера баз.
Как по мне, это отличный подход, который скорее всего понравится разработчикам - ведь теперь можно в рамках одного сервера тестировать разные инсталляции, обновления на отдельных базах и т. п., но в то же время смутит обычных веб-мастеров, которым для работы с альтернативным сервером БД, как минимум нужно будет уметь прописывать в своих скриптах порт для соединения с MySQL. Короткая заметка по настройке необходимого прилагается.
#будничное #ispmanager #mysql #mariadb
Записки сисадмина
Несколько MySQL на одном сервере
Пришлось заняться вопросом работы нескольких установок MySQL в рамках одного сервера. Хорошей новостью стало то, что ISPmanager 5 с некоторого времени поддерживает такую возможность и позволяет настроить всё необходимое прямо из панели управления. Для того…
Иногда проверка и починка базы с помощью mysqlcheck может пройти не совсем удачно, с ошибкой для определённой таблицы в БД:
В этом случае имеет смысл воспольоваться утилитой myisamchk. Останавливем сервер БД, и чиним нужную нам таблицу следующим образом (пример из CentOS 7):
#будничное #mysql #mariadb
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
✏️ Коротка заметка о переносе файлов сервера БД в нестандартную директорию, и настройка Selinux'а для этого.
📗 Открыть на сайте
#будничное #mariadb #selinux
📗 Открыть на сайте
#будничное #mariadb #selinux
t.me
Selinux, MariaDB и перенос директории
На сервере с CentOS 7 и активным Selinux’ом потребовалось для MariaDB изменить дефолтную директорию с базами.
Астрологи объявили месяц Гитхаба. Количество полезностей оттуда увеличилось...
Вот, например, innodb_ruby - утилита для парсинга ibdata1 файлов InnoDB. Полезно для изучения структуры или для дебага, например.
Ставим как обычный ruby gem:
И запускаем, указав путь до файла и выбрав нужный режим:
Режим system-spaces покажет структуру файла и кое-какую статистику. О режимах и примерах запуска можно почитать в wiki проекта:
https://github.com/jeremycole/innodb_ruby/wiki
#mysql #mariadb #innodb
Вот, например, 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
GitHub
Home
A parser for InnoDB file formats, in Ruby. Contribute to jeremycole/innodb_ruby development by creating an account on GitHub.
🛠 Интересный набор скриптов для работы с MySQL: https://gitlab.com/gwinans/dba-tools/
📗 А вот тут моя давняя подборка инструментов для MySQL же: https://sysadmin.pm/mariadb-mysql-optimization/
#mysql #mariadb #dba
📗 А вот тут моя давняя подборка инструментов для 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
https://github.com/charles-001/dolphie
#mysql #mariadb #tui