序章

Percona Server は、MySQLプロジェクトのドロップイン代替フォークです。 Perconaは、すべてのハードウェアでより優れたパフォーマンス、一貫性、およびスケーラビリティを提供することを目的としています。 このチュートリアルでは、現在のMySQLまたはMariaDBのインストールを最新のPercona Serverバージョンに置き換えるか、PerconaServerを新しいドロップレットに最初からインストールする方法について説明します。

利点

Percona Serverには、基本的なMySQLインストールに比べて多くの利点があります。

  • XtraDB :PerconaServerに切り替えることの主な利点の1つはXtraDB です。これは、パフォーマンスと効率が大幅に向上したInnoDBエンジンの下位互換性のあるフォークであり、クエリスループットを向上させることができます。現在のハードウェアから。 InnoDBの上に構築されているため、現在のInnoDBテーブルは、移行プロセスなしでXtraDBを介して透過的にロードされます。

  • 安定性と一貫性:Percona Serverは、負荷がかかった状態でより均一に実行します。つまり、アプリケーションが断続的なダウンタイムや速度低下の影響を受けにくくなります。

  • メトリクス:Percona Serverには、いくつかの追加のパフォーマンスメトリクスが組み込まれているため、速度を低下させているユーザー、テーブル、インデックス、またはクエリを正確に検出できます。 サーバーから優れたパフォーマンスを得るには、より科学的になり、当て推量に依存することが少なくなります。

  • PAM認証:通常、MySQL Enterprise Edition専用の機能であり、Percona Serverを使用すると、認証スキームをデータベースアクセスに関連付けることができます。

  • 互換性:PerconaサーバーはMySQLのドロップイン代替であるため、MySQLの広範な人気とユーザーの大規模なコミュニティの通常のすべての利点も得られます。 これは、MySQL用に設計されたすべてのアプリケーションが変更なしでPerconaサーバーを安全に使用できることを意味します。

前提条件

  • Debian、Ubuntu、またはCentOSクラウドサーバー:他のディストリビューションは現在サポートされていません。 CentOSバージョン5および6のみがサポートされています。 CentOS 7は、執筆時点ではサポートされていません。

  • 新しいDropletまたは最新のMySQL/MariaDBインストールのいずれか:Percona Serverは、新しいDropletに最初からインストールすることも、現在のMySQL/MariaDBインストールの代わりとしてインストールすることもできます。 これらの状況のどれを使用しているかによって、この記事の一部の手順は1つのケースにのみ関連する場合があり、(新規のみ)または(交換のみ)のマークが付けられます。 マークされていないセクションまたは段落は、両方の場合に使用する必要があります。

  • ルートアクセス:この記事内のすべてのコマンドはルートとして実行する必要があります。

  • メモリ:デフォルトのインストールでは、少なくとも1GBのドロップレットが必要です。そうしないと、バッファプールの割り当てにメモリが不足しているためにインストールが失敗する可能性があります。 スワップスペースが割り当てられた512MBのドロップレットがある場合は、パフォーマンスは劣りますが、インストールが成功する可能性もあります。

  • データのバックアップ(置換のみ):データベースサーバーの設定を変更する前に、現在のすべてのデータのバックアップがあることを確認してください。 このチュートリアルでは、すべてのデータファイルをそのまま残し、MySQLバイナリと関連ツールのみを削除しますが、問題が発生した場合に備えてバックアップをとることが常に理想的です。 ここDigitalOceanには、データベースファイルのバックアップをカバーする多数の記事があります。

  • 構成のバックアップ(置換のみ):同様に、現在のインストールを置き換える場合は、現在のMySQL/MariaDB構成のコピーを作成することをお勧めします。 このファイルは、Debian/Ubuntuシステムの/etc/mysql/my.cnfにあります。 /etc/my.cnf CentOSシステムで。 CentOSでは、MariaDBパッケージはアンインストール時に構成ファイルを削除するため、この手順はこれらのシステムで特に重要です。

ステップ1—バージョンの確認(交換のみ)

Percona Serverのバージョンは、同等のMySQLバージョンとのみドロップイン互換です。 すなわち MySQL5.6はPerconaServer5.6のみに置き換える必要があります。 不一致のバージョンを使用しようとすると、テーブルが破損したり、サーバーが起動できなくなったりする可能性があります。

現在実行しているバージョンを確認するには、最初に現在のルートパスワードを使用してMySQLに接続します。

mysql -u root -p

次に、現在インストールされているバージョンを見つけます。

SHOW VARIABLES LIKE "version";

これにより、PerconaServer5.5または5.6をインストールする必要があるかどうかが識別されます。 1つのエッジケースは、MariaDB 10.0を実行している場合です。これは、PerconaServer5.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は独自のリポジトリを管理して更新ができるだけ早くユーザーにプッシュされるようにするため、PerconaServerはLinuxディストリビューションのデフォルトリポジトリに含まれていない可能性があります。 したがって、インストールする前に、PerconaAPTまたはyumリポジトリを手動で追加する必要があります。 サーバーのOSについては、以下の手順に従ってください。

DebianとUbuntu(Apt)

PerconaによってリリースされたDebianおよびUbuntuパッケージは署名されています。つまり、APTに新しい署名キーを通知する必要があります。

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

次のステップに進む前に、現在使用しているディストリビューションを確認してください。 Debianの場合、これは次のいずれかになります。

  • 絞る
  • wheezy

同様に、Ubuntuでサポートされているディストリビューションは次のとおりです。

  • 明快
  • 正確
  • 生意気
  • 信頼できる

使用している配布バージョンがわからない場合は、次のコマンドを実行できます。

lsb_release -c

実行しているディストリビューションが確認できたら、/etc/apt/sources.listファイルに次の行を追加して新しいPerconaリポジトリを追加できます。

nano /etc/apt/sources.list

これらの行をファイルの最後に追加し、必ず置き換えてください DIST ディストリビューション名を使用します(つまり、DISTwheezyまたはtrustyなどに置き換えます):

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

ソースファイルを保存したら、次にPerconaパッケージを固定して、Perconaのパッケージがディストリビューションのデフォルトリポジトリのパッケージよりも常に優先されるようにする必要があります。 これを行うには、最初にAPTの新しい設定ファイルを作成します。

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

次に、このファイルを /etc/apt/preferences.d/00percona.pref で、選択したテキストエディター(Vim、nanoなど)で開き、次の行を追加して保存します。

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

最後に、ソースを追加して固定すると、パッケージリストを更新して、PerconaServerパッケージをインストールできます。

(新規のみ)新しいドロップレットの場合は、 percona-server-server 仮想パッケージをインストールすることをお勧めします。これにより、Perconaチームが推奨するバージョンのPerconaサーバーがインストールされます。

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

(交換のみ)以前に見つけたMySQLまたはMariaDBのバージョンを参照してください。 バージョン5.5を置き換えるには、 percona-server-server-5.5 パッケージを使用し、5.6の場合はpercona-server-server-5.6を使用します。 MariaDB10.0はPerconaServer5.6に置き換える必要があります。

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

このコマンドがエラーなしで完了すると、Percona Serverがインストールされ、正常に実行されます。 ただし、インストール中にエラーが発生した場合は、上記の前提条件のセクションに従って、十分な空きメモリがあることを確認してください。 起動エラーの詳細については、PerconaServerのログファイル/var/log/mysqld.logを参照してください。

(新規のみ)新しいシステムにインストールする場合、インストールプロセス中にルートデータベースのユーザーパスワードを設定するように求められる場合があります。 この状況では、 mysql_secure_installation を実行して、明らかなセキュリティ問題が残っていないことを確認することもお勧めします。

/usr/bin/mysql_secure_installation

CentOS(Yum)

現在、PerconaでサポートされているのはCentOSバージョン5および6のみです。 執筆時点では、CentOS7はサポートされていません。

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

これが完了すると、正しいバージョンのPerconaServerパッケージをインストールできます。

(新規のみ)最初からインストールする場合は、PerconaServer5.6パッケージを使用することをお勧めします。

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

(交換のみ)以前のインストールを交換する場合は、上記のバージョンチェックセクションにあるバージョン番号を使用して、Percona-Server-server-55またはの正しい対応するパッケージを選択してください。 ]Percona-Server-server-56。 MariaDB10.0はPerconaServer5.6に置き換える必要があります。

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

パッケージを受け入れてから、パッケージ署名キーを受け入れるように求められます–これらの両方に同意します。 しばらくすると、インストールはエラーなしで完了するはずです。 インストール中にトランザクションエラーが発生した場合は、再試行する前に、MySQL/MariaDBパッケージを完全に削除したことを確認してください。

パッケージがインストールされたら、最後のインストール手順はサーバーを起動することです。

service mysql start

PIDファイルに関するエラーを受け取った場合、サーバーは起動に失敗しています。 前提条件で述べたように、これは、メモリ制限によってXtraDBバッファプールの割り当てが妨げられる低RAMサーバーでよく発生します。 そうでない場合は、 /var/log/mysqld.log でエラーメッセージを確認し、MariaDBとPerconaServerのバージョンが正しく一致していることを確認してください。

注: 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).

コマンドmkdir/etc/my.cnf.dを使用して適切なディレクトリを作成できるはずです。 次に、サーバーを起動してみます。

(新規のみ)新しいシステムにインストールする場合、Percona Serverのrootユーザーにはパスワードが割り当てられないため、データベースは安全ではありません。 したがって、 mysql_secure_installation を使用して、新しいパスワードやその他のセキュリティオプションを設定することを強くお勧めします。 現在のルートパスワードの入力を求められたら、Enterキーを押します。

/usr/bin/mysql_secure_installation

ステップ4—構成

既存のMySQLインストールを置き換えた場合は、構成ファイルのコピーを作成して、コピーして戻すことができるはずです。 設定例が役立つ場合もありますが、このセクションはスキップできます。

ただし、Percona Serverを新しいDropletにインストールする場合は、構成ファイルを追加する必要があります。PerconaServerは現在、Dropletに最適ではない可能性のあるデフォルト値で実行されているためです。 初めて構成を更新する前に、PIDファイルの場所が変更される可能性があるため、PerconaServerを停止することをお勧めします。 将来の構成変更については、変更が行われた後、単純な再起動で十分です。

service mysql stop

以下は、互換性のために比較的小さなバッファープールを備えた1GBのドロップレットのサンプル構成ファイルです。 Debian / Ubuntuでは、このファイルは/etc/mysql/my.cnfに書き込む必要があります。 CentOSでは、このファイルは/etc/my.cnfに書き込む必要があります。 このファイルには、さまざまなセクションが行っていることを説明するインラインコメントが含まれています。

# 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構成ウィザードを使用して、構成ファイルに適したベースを作成できます。

ファイルを保存したら、PerconaServerを再起動できます。

service mysql restart

サーバーがこの構成で起動できない場合は、 innodb-buffer-pool-size を小さい値に減らして、上記のコマンドを繰り返してみてください。

ステップ5—インストールの確認

Percona Serverがインストールされて実行されたので、いくつかの最終チェックを実行することで、すべてが計画どおりに進んだことを確認できます。 まず、 mysql クライアントを使用してデータベースに接続し、データベースのrootユーザーパスワードでログインします。

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サーバーを指定していることがわかります。 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ではなくPerconaServerが実行されていることです。

次に、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サーバーが正常に実行されます。 ただし、これらのチェックのいずれかが成功しなかった場合は、MySQLのバージョン番号をPercona Serverのバージョン番号と一致させることに特に注意して、このチュートリアルの前のすべての手順を正しく完了していることを確認してください。

次のステップ

PerconaはMySQLとドロップイン互換であるため、MySQLをカバーするすべてのDigitalOceanチュートリアルをPerconaServerで安全に使用できます。 データベースに接続するとき、アプリケーションは同じように機能しますが、PerconaServerとXtraDBの両方からパフォーマンスが向上することを願っています。

MySQLコマンドは以前とまったく同じように機能します。