Установка Percona Server на Ubuntu 20.04

Percona Server — полноценный форк сервера MySQL, совместимый с Oracle MySQL и часто используемый для улучшения производительности, масштабируемости и мониторинга. Percona поддерживается на основных облачных платформах (AWS, Google Cloud, Azure) и масштабируется на десятки CPU‑ядер, обеспечивая высокую пропускную способность I/O.
Что понадобится
- Сервер с Ubuntu 20.04 LTS.
- Доступ root или пользователь с правами sudo.
- Подключение к интернету для скачивания пакетов.
Краткая методология установки
- Обновить список пакетов и установить зависимости.
- Добавить официальный репозиторий Percona.
- Установить Percona Server 8 (ps80).
- Выполнить базовую конфигурацию и проверить работу.
Подготовка системы
Обновите индексы пакетов и установите утилиты:
sudo apt-get update
sudo apt-get install -y wget unzip gnupg2 lsb-releaseВажно: команда apt-get update не принимает опцию -y; обновление только обновляет индексы.
Добавление репозитория Percona
Скачайте пакет конфигурации репозитория и установите его:
wget https://repo.percona.com/apt/percona-release_latest.$(lsb_release -sc)_all.deb
sudo dpkg -i percona-release_latest.$(lsb_release -sc)_all.deb
sudo apt-get updateПосле установки пакета percona-release появится утилита percona-release. Чтобы включить репозиторий Percona Server 8.0, выполните:
sudo percona-release setup ps80
sudo apt-get updateУстановка Percona Server
Установите сервер и зависимости:
sudo apt-get install -y percona-server-serverПри установке пакет предложит задать root‑пароль и выбрать плагин аутентификации. Выберите современный плагин аутентификации по умолчанию (обычно первая опция) и задайте надёжный пароль.

Проверка работы
После установки выполните основные проверки:
systemctl status mysql --no-pager
sudo journalctl -u mysql --since "5 minutes ago" --no-pager
mysql --versionПодключитесь как root (локально) и выполните простые запросы:
sudo mysql -u root -p
SELECT VERSION(), @@innodb_buffer_pool_size, @@max_connections;
EXIT;Базовая настройка безопасности
Запустите скрипт для базовой зачистки и ограничения доступа:
sudo mysql_secure_installationРекомендации:
- Отключите анонимных пользователей.
- Запретите удалённый доступ для root по паролю, создайте отдельного администратора.
- Удалите тестовую базу.
- Обновите политики паролей (validate_password) при необходимости.
Быстрая оптимизация для рабочих нагрузок
Ниже — простые эвристики (начните с них, затем профилируйте):
- innodb_buffer_pool_size: 60–75% от доступной оперативной памяти для баз на InnoDB.
- innodb_thread_concurrency: оставьте авто или настройте по CPU/IO.
- max_connections: устанавливайте с учётом ожидаемой нагрузки и ресурсов.
- log_bin и binlog_format=row — включайте, если нужен репликация и точность восстановления.
Внесите изменения в /etc/mysql/percona-server.conf.d/mysqld.cnf и перезапустите сервис:
sudo systemctl restart mysqlРезервный план и откат
Перед обновлениями или изменением конфигурации всегда:
- Сделайте дамп баз данных:
mysqldump --all-databases > all.sqlили используйте xtrabackup для больших баз. - Снимите копию конфигураций:
cp -a /etc/mysql /root/mysql-config-backup. - При проблемах восстановите дамп или верните конфигурацию и перезапустите сервис.
Если надо удалить Percona и вернуть систему к исходному состоянию:
sudo apt-get remove --purge -y percona-server-server percona-release
sudo rm -rf /var/lib/mysql /etc/mysql(Внимание: удаляет данные — делайте бэкап заранее.)
Отладка типичных проблем
Когда установка не запускается или MySQL не активен — проверьте:
- Логи systemd и /var/log/mysql/error.log.
- Права на /var/lib/mysql и владельца mysql:mysql.
- Недостаток места на диске или inode.
- Конфликты портов (3306) с другим процессом.
Пример команды для поиска ошибки в логе:
sudo grep -i "error" /var/log/mysql/error.log | tail -n 50Когда Percona не подходит — альтернативы
- Если нужна управляемая облачная база — используйте RDS/Aurora (AWS) или Cloud SQL (GCP).
- Для лёгкой контейнеризации и тестов — официальный Docker‑образ Percona Server.
- Если важна совместимость с Oracle‑технологиями — можно оставить Oracle MySQL.
Чек‑лист для ролей
Администратор:
- Добавил репозиторий percona-release и включил ps80.
- Установил пакет и проверил systemctl status.
- Настроил резервное копирование.
Разработчик:
- Проверил подключение приложения.
- Запустил тесты производительности.
SRE/DevOps:
- Настроил мониторинг (Prometheus/Percona Monitoring and Management).
- Настроил alerting по SLI/SLO.
Критерии приёмки
- Сервис mysql активен (systemctl — active).
- Проходит подключение от приложения.
- Выполняются контрольные запросы (SELECT 1).
- Создано и проверено резервное копирование.
Шпаргалка команд
- Обновление пакетов:
sudo apt-get update - Установка Percona-release:
sudo dpkg -i percona-release_latest.$(lsb_release -sc)_all.deb - Включение ps80:
sudo percona-release setup ps80 - Установка сервера:
sudo apt-get install -y percona-server-server - Проверка статуса:
systemctl status mysql - Безопасная настройка:
sudo mysql_secure_installation
Важно: перед изменением конфигурации делайте бэкап данных и конфигов.
Заключение
Поздравляем — Percona Server 8 установлен и готов к использованию на Ubuntu 20.04. Выполните базовую настройку безопасности и мониторинг, затем профилируйте рабочую нагрузку для тонкой настройки производительности.
Короткая памятка:
- Добавьте репозиторий percona-release и включите ps80.
- Установите пакет, задайте крепкий root‑пароль и выберите современный плагин аутентификации.
- Настройте резервное копирование и мониторинг.
Часто задаваемые вопросы
Q: Можно ли обновить с MySQL на Percona с минимальным простоем?
A: Да, Percona совместим с MySQL, но всегда тестируйте обновление и делайте полные бэкапы. Для критичных нагрузок используйте репликацию и пошаговый cutover.
Q: Поддерживает ли Percona репликацию и GTID?
A: Да, Percona Server поддерживает стандартную репликацию MySQL и GTID.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента