前書き
Percona Serverは、MySQLプロジェクトのドロップイン置換フォークです。 Perconaは、すべてのハードウェアで優れたパフォーマンス、一貫性、およびスケーラビリティを提供することを目指しています。 このチュートリアルでは、現在のMySQLまたはMariaDBインストールを最新のPercona Serverバージョンに置き換えるか、新しいドロップレットにPercona Serverをゼロからインストールする方法を説明します。
利点
Percona Serverには、基本的なMySQLインストールよりも多くの利点があります。
-
* XtraDB *:Percona Serverに切り替えることの主な利点の1つは、パフォーマンスと効率が大幅に向上したInnoDBエンジンの下位互換性のあるフォークであるhttp://www.percona.com/software/percona-xtradb[XtraDB]です。現在のハードウェアからクエリのスループットを向上させることができます。 InnoDBの上に構築されるため、現在のInnoDBテーブルは移行プロセスなしでXtraDBを介して透過的にロードされます。
-
安定性と一貫性:Percona Serverは、負荷がかかった状態でhttp://www.percona.com/software/percona-server/benchmarks [より均一に]を実行します。つまり、アプリケーションが断続的なダウンタイムやスローダウンの影響を受けにくくなります。
-
メトリック: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インストールの代わりとしてインストールできます。 これらの状況に応じて、この記事の一部の手順は1つのケースにのみ関連し、(新規のみ)*または(交換のみ)*でマークされます。 マークされていないセクションまたは段落は、両方の場合に使用する必要があります。
-
ルートアクセス:この記事内のすべてのコマンドはルートとして実行する必要があります。
-
メモリ:デフォルトのインストールでは、少なくとも1GBのドロップレットが必要です。そうしないと、バッファプールの割り当てに十分なメモリがないためにインストールが失敗する可能性があります。 swap spaceが割り当てられた512MBのドロップレットがある場合、パフォーマンスは劣りますが、インストールが成功する場合があります。
-
データバックアップ(交換のみ):データベースサーバーの設定を変更する前に、現在のデータをすべてバックアップしてください。 このチュートリアルでは、すべてのデータファイルをそのまま残し、MySQLバイナリと関連ツールのみを削除しますが、何らかの問題が発生した場合に備えてバックアップを保持することが常に理想的です。 DigitalOceanには、データベースファイルのバックアップをカバーするhttps://www.digitalocean.com/community/search?primary_filter=tutorials&query=mysql+backup [記事数]があります。
-
構成のバックアップ(交換のみ):同様に、現在のインストールを置き換える場合は、現在のMySQL / MariaDB構成のコピーを作成することをお勧めします。このファイルは、Debian / Ubuntuシステム上およびCentOSシステム上の「+ / etc / my.cnf +」にあります。 CentOSでは、MariaDBパッケージはアンインストール時に構成ファイルを削除するため、これらのシステムではこの手順が特に重要です。
ステップ1-バージョンの確認(交換のみ)
Percona Serverバージョンは、同等のMySQLバージョンとのみドロップイン互換です。 i.e. MySQL 5.6はPercona Server 5.6のみと交換する必要があります。 一致しないバージョンを使用しようとすると、テーブルが破損したり、サーバーが起動しなくなることがあります。
現在実行しているバージョンを確認するには、まず現在のルートパスワードでMySQLに接続します。
mysql -u root -p
次に、現在インストールされているバージョンを見つけます。
SHOW VARIABLES LIKE "version";
これにより、Percona Server 5.5または5.6をインストールする必要があるかどうかが識別されます。 エッジケースの1つは、MariaDB 10.0を実行している場合で、Percona Server 5.6に置き換える必要があります。 5.5より古いバージョンのMySQLを実行している場合、続行する前にまずMySQLを5.5以上にアップグレードする必要があります。
ステップ2-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
他のバリエーションについては、アンインストール手順についてドキュメントを参照してください。
ステップ3-Perconaサーバーのインストール
Percona Serverは、Linuxディストリビューションのデフォルトリポジトリに含まれていない可能性があります。Perconaは独自のリポジトリを管理して、更新ができるだけ早くユーザーにプッシュされるようにするためです。 したがって、インストールする前にPercona APTまたはyumリポジトリを手動で追加する必要があります。 サーバーのOSに応じて、以下の手順に従ってください。
DebianおよびUbuntu(Apt)
PerconaによってリリースされたDebianおよびUbuntuパッケージは署名されています。つまり、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チームが推奨するバージョンのPercona Serverがインストールされます。
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システムの最初のステップは、yumへのPerconaリポジトリパッケージのインストールです。
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バッファープールの割り当てが妨げられる低RAMサーバーで発生します。 そうでない場合、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のルートユーザーにはパスワードが割り当てられていないため、データベースは安全ではありません。 したがって、新しいパスワードやその他のセキュリティオプションのセットアップに使用することを強くお勧めします。 現在のルートパスワードの入力を求められたら、Enterキーを押します。
/usr/bin/mysql_secure_installation
ステップ4-構成
既存のMySQLインストールを置き換えた場合は、構成ファイルのコピーを作成して、コピーできるようにする必要があります。 この設定は役に立つかもしれませんが、おそらくこのセクションはスキップできます。
ただし、Percona Serverを現在のDropletに最適なデフォルト値で実行しているため、Percona Serverを新しいDropletにインストールする場合は、構成ファイルを追加する必要があります。 構成を初めて更新する前に、PIDファイルの場所が変更される可能性があるため、Percona Serverを停止することをお勧めします。 将来の構成変更については、変更が行われた後、単純な再起動で十分です。
service mysql stop
以下は、互換性のために比較的小さなバッファープールを使用した1GBドロップレットのサンプル構成ファイルです。 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
大きなドロップレットの場合、またはカスタマイズされた構成ファイルの開始点として、https://tools.percona.com/wizard [Percona Configuration Wizard]を使用して、構成ファイルに適したベースを作成できます。
ファイルを保存したら、Percona Serverを再起動できます。
service mysql restart
サーバーがこの設定で起動に失敗した場合は、値を小さくして上記のコマンドを繰り返してみてください。
ステップ5-インストールの確認
Percona Serverをインストールして実行したので、いくつかの最終チェックを実行することで、すべてが計画どおりに実行されたことを確認できます。 最初に、クライアントを使用してデータベースに接続し、データベースのルートユーザーパスワードでログインします。
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)
正確な値とバージョンはインストール環境によって異なる場合がありますが、重要な点は、MySQLではなくPercona Serverを実行していることです。
次に、InnoDBベースのテーブルでXtraDBを利用していることを確認できます。
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とドロップイン互換であるため、https://www.digitalocean.com/community/tags/mysql [MySQLを扱うDigitalOceanチュートリアル]はすべてPercona Serverで安全に使用できます。 データベースに接続するとき、アプリケーションは同じように機能しますが、Percona ServerとXtraDBの両方のパフォーマンスが向上することを期待しています。
MySQLコマンドは以前とまったく同じように機能します。