Как установить свежий сервер Percona или заменить MySQL

Вступление

Percona Server - это вставная замена проекта MySQL. Percona стремится обеспечить лучшую производительность, согласованность и масштабируемость на всех аппаратных средствах. Это руководство поможет вам заменить текущую установку MySQL или MariaDB последней версией Percona Server или установить Percona Server с нуля на новую Droplet.

Выгоды

Percona Server имеет ряд преимуществ по сравнению с базовой установкой MySQL:

  • * XtraDB *: Одним из ключевых преимуществ перехода на Percona Server является XtraDB, обратно совместимая вилка движка InnoDB с огромными улучшениями производительности и эффективности, позволяя получить лучшую пропускную способность запросов от вашего текущего оборудования. Поскольку он построен поверх InnoDB, ваши текущие таблицы InnoDB будут загружаться прозрачно через XtraDB без каких-либо процессов миграции.

  • * Стабильность и согласованность *: Percona Server выполняет moremore под нагрузкой, что означает, что ваши приложения будут менее подвержены периодическим простоям или замедлениям.

  • * Метрики *: в Percona Server встроен ряд дополнительных метрик производительности, позволяющих вам точно определить, какие пользователи, таблицы, индексы или запросы замедляют работу. Получение высокой производительности с вашего сервера становится более научным и менее зависимым от догадок.

  • * Аутентификация PAM *: обычно функция, зарезервированная для MySQL Enterprise Edition, с Percona Server вы можете связать свою схему аутентификации с доступом к базе данных.

  • * Совместимость *: так как сервер Percona является заменой MySQL, вы также получаете все обычные преимущества широко распространенной популярности MySQL и большого сообщества пользователей. Это означает, что любое приложение, разработанное для MySQL, может безопасно использовать Percona Server без каких-либо изменений.

Предпосылки

  • * Облачный сервер Debian, Ubuntu или CentOS *: Другие дистрибутивы в настоящее время не поддерживаются. Поддерживаются только версии CentOS 5 и 6; CentOS 7 не поддерживается на момент написания.

  • * Либо новая Droplet, либо современная установка MySQL / MariaDB *: Percona Server может быть установлен либо с нуля на новую Droplet, либо в качестве замены для текущей установки MySQL / MariaDB. В зависимости от того, какая из этих ситуаций у вас есть, некоторые шаги в этой статье могут относиться только к одному случаю и будут помечены * (только новый) * или * (только замена) *. Любые неотмеченные разделы или параграфы должны использоваться в обоих случаях.

  • * Root access *: Все команды в этой статье должны выполняться как root.

  • * Память *: для установки по умолчанию вам понадобится * по крайней мере 1 ГБ Droplet *, в противном случае вы можете получить сбои установки из-за недостатка памяти для выделения пула буферов. Если у вас есть капля объемом 512 МБ с выделенным swap space, вы также можете получить успешную установку, хотя и с низкой производительностью.

  • * Резервное копирование данных (только замена) *: Прежде чем вносить какие-либо изменения в настройки сервера базы данных, убедитесь, что у вас есть резервная копия всех текущих данных. Это руководство оставит все файлы данных на месте, удалив только двоичный файл MySQL и связанные с ним инструменты, но всегда идеально иметь резервную копию на случай, если что-то пойдет не так. У нас есть number статей здесь, в DigitalOcean, которые охватывают резервное копирование файлов базы данных.

  • * Резервное копирование конфигурации (только замена) *: также рекомендуется сделать копию текущей конфигурации MySQL / MariaDB, если вы заменяете текущую установку; этот файл можно найти в системах Debian / Ubuntu и + / etc / my.cnf + в системах CentOS. В CentOS пакет MariaDB удаляет файл конфигурации при удалении, поэтому этот шаг особенно важен в этих системах.

Шаг первый - проверка версий (только замена)

Версии Percona Server совместимы только с аналогичными версиями MySQL. i.e. MySQL 5.6 должен быть заменен только Percona Server 5.6. Попытка использовать несовпадающие версии может привести к повреждению таблицы или помешать запуску сервера.

Чтобы проверить, какая версия у вас запущена, сначала подключитесь к MySQL, используя текущий пароль root:

mysql -u root -p

Затем найдите текущую установленную версию:

SHOW VARIABLES LIKE "version";

Это должно определить, если вам нужно установить Percona Server 5.5 или 5.6. Один крайний случай - если вы используете MariaDB 10.0, который следует заменить на Percona Server 5.6. Если вы используете версию MySQL старше 5.5, вам следует сначала обновить MySQL до версии 5.5 или выше, прежде чем продолжить.

Шаг второй - удаление MySQL (только замена)

Перед установкой сервера Percona нам нужно будет удалить все пакеты MySQL или MariaDB, которые установлены в данный момент, так как вам не следует пытаться одновременно запускать оба пакета на одних и тех же данных.

Вы должны иметь резервную копию своих данных и файлов конфигурации, прежде чем продолжить .

Перед удалением MySQL рекомендуется остановить сервер базы данных, чтобы предотвратить повреждение данных в случае, если процесс не был остановлен безопасно во время удаления пакета:

service mysql stop

Для серверов на основе Debian и Ubuntu серверные и клиентские пакеты MySQL необходимо удалить:

apt-get remove mysql-server mysql-client mysql-common
apt-get autoremove

Для систем CentOS базой данных по умолчанию теперь является MariaDB, которую можно удалить следующим образом:

yum remove MariaDB-server MariaDB-client MariaDB-shared

Для других вариантов, пожалуйста, обратитесь к документации для процедуры удаления.

Шаг третий - установка сервера Percona

Percona Server, скорее всего, отсутствует в репозиториях вашего дистрибутива Linux по умолчанию, поскольку Percona управляет своими собственными репозиториями, чтобы пользователи могли получать обновления как можно быстрее. Поэтому нам нужно будет вручную добавить Percona APT или yum репозитории перед установкой. Следуйте приведенным ниже инструкциям для ОС вашего сервера.

Debian и Ubuntu (Apt)

Пакеты Debian и Ubuntu, выпущенные Percona, подписаны, что означает, что APT необходимо сообщить о новом ключе подписи:

apt-key adv --keyserver keys.gnupg.net --recv-keys 1C4CBDCDCD2EFD2A

Прежде чем мы сделаем следующий шаг, убедитесь, что вы знаете, какой дистрибутив вы используете в данный момент. Для Debian это будет одним из:

  • выжимать

  • страдающий одышкой

Аналогично, для Ubuntu поддерживаются следующие дистрибутивы:

  • ясный

  • точный

  • дерзкий

  • надежный

Если вы не уверены, какую версию дистрибутива вы используете, вы можете выполнить следующую команду:

lsb_release -c

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

nano /etc/apt/sources.list

Добавьте эти строки внизу файла, убедившись, что заменили + DIST + именем вашего дистрибутива (то есть вы бы заменили * DIST * на * wheezy * или * trusty * и т. Д.):

deb http://repo.percona.com/apt  main
deb-src http://repo.percona.com/apt  main

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

touch /etc/apt/preferences.d/00percona.pref

Теперь откройте этот файл в выбранном вами текстовом редакторе (Vim, nano и т. Д.), Добавьте следующие строки и сохраните:

Package: *
Pin: release o=Percona Development Team
Pin-Priority: 1001

Наконец, после добавления и закрепления источников список пакетов можно обновить, и мы можем установить пакет Percona Server.

  • (Только новый) * Для новой Droplet рекомендуется установить виртуальный пакет, который установит версию Percona Server, рекомендованную командой Percona:

apt-get update
apt-get install percona-server-server
  • (Только замена) * Обратитесь к версии MySQL или MariaDB, которую вы обнаружили ранее. Для замены версии 5.5 используйте пакет и для 5.6. MariaDB 10.0 следует заменить на Percona Server 5.6.

apt-get update
apt-get install percona-server-server-

Если эта команда завершается без ошибок, Percona Server будет установлен и успешно запущен. Однако, если вы получаете ошибки во время установки, убедитесь, что у вас достаточно свободной памяти в соответствии с разделом предварительных требований выше. Дополнительную информацию о любых ошибках запуска можно найти в файле журнала Percona Server по адресу.

  • (Только для новых) * При установке в новой системе вас могут попросить в процессе установки установить пароль пользователя корневой базы данных. В этой ситуации также рекомендуется запускать, чтобы не осталось очевидных проблем безопасности:

/usr/bin/mysql_secure_installation

CentOS (Yum)

В настоящее время Percona поддерживает только CentOS версии 5 и 6. На момент написания этой статьи CentOS 7 не поддерживается.

Первым шагом для систем CentOS является установка пакетов репозитория Percona в yum.

Для 64-битных систем CentOS:

yum install http://www.percona.com/downloads/percona-release/percona-release-0.0-1.x86_64.rpm

Для 32-битных систем CentOS:

yum install http://www.percona.com/downloads/percona-release/percona-release-0.0-1.i386.rpm

После этого мы можем установить правильную версию пакета Percona Server.

  • (Только для новых) * При установке с нуля рекомендуется использовать пакет Percona Server 5.6:

yum install Percona-Server-client-56 Percona-Server-server-56
  • (Только замена) * При замене предыдущей установки используйте номер версии, указанный в разделе проверки версии выше, чтобы выбрать правильный соответствующий пакет или. MariaDB 10.0 следует заменить на Percona Server 5.6.

yum install Percona-Server-client- Percona-Server-server-

Вам будет предложено принять пакеты, а затем принять ключ подписи пакета - согласитесь с обоими из них. Через некоторое время установка должна завершиться без ошибок. Если вы получили ошибки транзакции во время установки, убедитесь, что вы полностью удалили все пакеты MySQL / MariaDB перед повторной попыткой.

Теперь, когда пакет установлен, последний шаг установки - запустить сервер:

service mysql start

Если вы получили ошибку, связанную с файлом PID, сервер не запускается. Как упоминалось в предварительных условиях, это часто происходит на серверах с низким объемом оперативной памяти, где ограничение памяти не позволяет выделить пул буферов XtraDB. Если это не так, проверьте наличие дальнейших сообщений об ошибках и убедитесь, что у вас есть правильно согласованные версии между MariaDB и Percona Server.

  • Примечание: * Если вы обновляетесь с MariaDB и получаете сообщение об ошибке, подобное этому:

Can't read dir of '/etc/my.cnf.d' (Errcode: 2 - No such file or directory)
Fatal error in defaults handling. Program aborted
Starting MySQL (Percona Server). ERROR! The server quit without updating PID file (/var/lib/mysql/percona-centos.pid).

Вы должны быть в состоянии создать соответствующий каталог с помощью команды. Затем попробуйте запустить сервер.

  • (Только для новых) * При установке в новой системе вашему корневому пользователю Percona Server не будет назначен пароль, и, следовательно, ваши базы данных не будут защищены. Поэтому настоятельно рекомендуется использовать его для установки нового пароля и других параметров безопасности. Когда вас попросят ввести текущий пароль root, просто нажмите Enter.

/usr/bin/mysql_secure_installation

Шаг четвертый - Конфигурация

Если вы заменили существующую установку MySQL, вы должны были сделать копию вашего файла конфигурации, который теперь можно скопировать обратно. Вы, вероятно, можете пропустить этот раздел, хотя вы можете найти полезные настройки примера.

Тем не менее, если вы устанавливаете Percona Server на новую каплю, вам нужно будет добавить файл конфигурации, поскольку Percona Server в настоящее время работает со значениями по умолчанию, которые могут быть не оптимальными для вашей капли. Перед первым обновлением конфигурации рекомендуется остановить Percona Server, так как расположение файла PID может измениться. Для будущих изменений конфигурации достаточно простого перезапуска после внесения изменений.

service mysql stop

Ниже приведен пример файла конфигурации для капли объемом 1 ГБ с относительно небольшим буферным пулом для совместимости. В Debian / Ubuntu этот файл должен быть записан в. На CentOS этот файл должен быть записан. Файл содержит встроенные комментарии, чтобы объяснить, что делают различные разделы.

# Generated by Percona Configuration Wizard (http://tools.percona.com/) version REL5-20120208
[mysql]

# CLIENT #
# Configure default options for clients
port                           = 3306

[mysqld]

# GENERAL #
# Choose user for execution, default storage engine and location of the PID file
user                           = mysql
default-storage-engine         = InnoDB
pid-file                       = /var/lib/mysql/mysql.pid

# MyISAM #
# Setup MyISAM options with a minimal config, as InnoDB is our default engine
key-buffer-size                = 32M
myisam-recover                 = FORCE,BACKUP

# SAFETY #
# Enforce limits and safety checks
max-allowed-packet             = 16M
max-connect-errors             = 1000000
innodb                         = FORCE

# DATA STORAGE #
# Select location for database files
datadir                        = /var/lib/mysql/

# BINARY LOGGING #
# Enable and setup the binary log
log-bin                        = /var/lib/mysql/mysql-bin
expire-logs-days               = 14
sync-binlog                    = 1

# CACHES AND LIMITS #
# Configure reasonable default limits throughout Percona Server
tmp-table-size                 = 32M
max-heap-table-size            = 32M
query-cache-type               = 0
query-cache-size               = 0
max-connections                = 500
thread-cache-size              = 50
open-files-limit               = 65535
table-definition-cache         = 1024
table-open-cache               = 2048

# INNODB #
# Setup InnoDB/XtraDB engine a 300MB buffer pool and 32MB log file size
innodb-flush-method            = O_DIRECT
innodb-log-files-in-group      = 2
innodb-log-file-size           = 32M
innodb-flush-log-at-trx-commit = 1
innodb-file-per-table          = 1
innodb-buffer-pool-size        = 300M

# LOGGING #
# Setup log file locations for error log and slow log
# Slow log may be disabled on production setups to prevent extra IO
log-error                      = /var/lib/mysql/mysql-error.log
log-queries-not-using-indexes  = 1
slow-query-log                 = 1
slow-query-log-file            = /var/lib/mysql/mysql-slow.log

Для больших капель или в качестве отправной точки для вашего настроенного файла конфигурации вы можете использовать Percona Wizard Configuration, чтобы создать подходящую базу для вашего файла конфигурации.

После сохранения файла вы можете перезапустить Percona Server:

service mysql restart

Если сервер не запускается с этой конфигурацией, попробуйте уменьшить значение до меньшего и повторить приведенную выше команду.

Шаг пятый - Проверка вашей установки

Теперь, когда у нас установлен и запущен сервер Percona, мы можем убедиться, что все прошло как запланировано, выполнив несколько заключительных проверок. Сначала подключитесь к базе данных с помощью клиента и войдите в систему с паролем пользователя базы данных:

mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 45
Server version: 5.5.38-35.2 Percona Server (GPL), Release 35.2, Revision 674

Copyright (c) 2009-2014 Percona LLC and/or its affiliates
Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

Сразу видно, что версия сервера в тексте соединения теперь указывает Percona Server. Используя команду SHOW VARIABLES, мы можем углубиться в подробности о конкретной установленной версии:

SHOW VARIABLES LIKE "version%";
+-------------------------+--------------------------------------------------+
| Variable_name           | Value                                            |
+-------------------------+--------------------------------------------------+
| version                 | 5.5.38-35.2                                      |
| version_comment         | Percona Server (GPL), Release 35.2, Revision 674 |
| version_compile_machine | x86_64                                           |
| version_compile_os      | debian-linux-gnu                                 |
+-------------------------+--------------------------------------------------+
4 rows in set (0.00 sec)

Точные значения и версии могут различаться в вашей установке, но ключевой момент заключается в том, что теперь у нас работает Percona Server, а не MySQL.

Далее мы можем проверить, что мы используем преимущества XtraDB для любых таблиц на основе InnoDB:

SHOW STORAGE ENGINES\G

Результат покажет этот блок среди многих других:

...

*************************** 8. row ***************************
     Engine: InnoDB
    Support: DEFAULT
    Comment: Percona-XtraDB, Supports transactions, row-level locking, and foreign keys
Transactions: YES
         XA: YES
 Savepoints: YES

...

9 rows in set (0.00 sec)

Поле комментария в ответе показывает, что механизм XtraDB был загружен в качестве механизма для таблиц на основе InnoDB. В качестве окончательной проверки рекомендуется убедиться, что все ваши базы данных и таблицы читаются правильно на новом сервере.

Если все эти проверки были пройдены, у вас теперь успешно работает Percona Server. Однако, если какая-либо из этих проверок не прошла успешно, убедитесь, что вы правильно выполнили все предыдущие шаги этого руководства, уделяя особое внимание сопоставлению номеров версий MySQL с номерами версий Percona Server.

Следующие шаги

Так как Percona совместим с MySQL по принципу drop-in, все учебники DigitalOcean, посвященные MySQL могут безопасно использоваться с Percona Server. При подключении к базе данных ваши приложения будут по-прежнему работать одинаково, хотя, надеюсь, теперь благодаря повышению производительности как с Percona Server, так и с XtraDB.

Команды MySQL будут работать точно так же, как и раньше.

Related