MySQL Percona 基本情報とインストール


ioDrive+MySQL勉強会でチラリと紹介したMySQL Percona Serverですが、並列処理やDiskI/Oに配慮された設計だけではなく、それ以外にも様々な強みがあるので紹介していきたいと思います。

Percona関連の日本語情報はまだまだ少ないようですので、自分の復習も兼ねて基本的なところから少しずつ書いていきます。



はじめに

表記について

  • MySQL Community ServerをMySQL
  • PerconaのMySQLをPercona Serverもしくは比較時には単にPercona
  • あえてファイル名をmysql_perconaのようにしている所は、無関係者にMySQLの設定と理解してもらうためです

  • 記事の書き方について

    わかりやすくするため記事を小分けにして長期に渡って書く予定です。そのため気分によって途中で別ジャンルの記事を挟むこともありますが、ちゃんと続けます。

    バージョンについて

    5.5.8あたりの時によく調べましたが、現時点での最新である下記バージョンで再調査しつつ書いていきます。別記事でも書きますが、XtraBackupは重大なバグを含むバージョンがあるので、最新を使うべきです。

  • Percona Server : 5.5.27
  • XtraBackup : 2.0.2
  • Percona Toolkit : 2.1.3

  • Perconaを採用する理由

    DiskI/Oに配慮された設計であるため、ioDriveやSSDを利用する上ではより性能の向上を望め、HDDにおいてもより安定した調整を行うことができます。これは主に MySQLサーバの my.cnf の話になります。

    他に便利な外部ツールが多くあり、XtraBackupによるバックアップはロックを必要としなかったり、差分バックアップを取ることができます。

    また、Percona Toolkitの中には、オンライン(ロック・サービス停止無し)でスキーマ変更を行うことができるツールなど、多くの便利ツールを含んでいるので要チェックです。

    リンク情報

    Percona総合

  • Perconaトップ
  • Percona Software 一覧
  • Percona Wikiトップ

  • Blog

  • Percona運営ブログリスト
  • DB改造屋雑記

  • Blog記事

  • MySQLの新ストレージエンジン Percona XtraDB とは!?
  • Percona MySQL と OurDelta
  • Percona XtraDB とは?

  • インストール方法

    公式のWikiはこちら。
  • Installing Percona Server 5.5 from Binaries

  • ここでの説明はDebian Squeezeでのaptですが、yum用も配布されています。

    鍵の登録

    インストール

    レポジトリを記述します。
    /etc/apt/sources.list.d/mysql_percona.list

    インストールします。依存関係でclientやlibaio1も入ってくれます。

    起動の確認がとれたら、いったん停止しておきます。
    パスはMySQL Community Serverのdebだと /opt になりますが、Perconaはオーソドックスに /usr と /etc に必要なものが全て入ります。

    ついでにXtraBackupとToolkitも入れておきます。

    my.cnfの作成

    具体的な内容は割愛しますが、まずは普段利用している通常のMySQLのmy.cnfをそのまま持ってくればOKです。

    /etc/mysql/my.cnf

    データディレクトリとログディレクトリの作成

    ここではioDriveを利用している前提で、ioDriveを /fio にマウントしているものとします。
    そして、その下に必要なディレクトリをこのような構成で作成します。

    最後のシステムログはどこでもいいですが、それ以外は全てioDriveに保存しないとパフォーマンスが劣化します。

    容量の都合でバイナリログだけHDDに出すことを考えるかもしれませんが、その場合は数%のiowaitを伴うのでioDriveに保存するのが賢明です


    まずデータディレクトリを移動します。
    もしmy.cnfのInnoDBログファイルのサイズがデフォルトの5MBではない場合は削除しておきます。(削除しなかったら起動に失敗してエラーログで気づきます)

    移動ではなく新規作成の場合は

    次にディレクトリを作成します。

    起動します。失敗したら、エラーログを確認して修正してから再実行してください。

    ユーザ権限の整理

    もしパッケージインストール時にrootパスワードを空にしてしまっていたら、設定しておきます。

    次にユーザ権限を整理します。作成内容は主に下記の通りです。

  • サービス用
  • レプリケーション用
  • 監視用(from snmpd, nagios-nrpe-server, Nagios, etc…)
  • あとはサービスに応じてSUPER, RELOAD, FILE あたりを付与しておいてください。

    ログローテート

    パッケージに /etc/logrotate.d/percona-server-server-5.5 を含んでいるので、これを再利用します。

    ログはmvした形だと続きが記録されなくなるので、flush-logsが実行されています。




    インストール手順は以上です。

    今後はあと数回、Percona Serverについて書いて、その次に長い長いXtraBackupにいこうと思っています。
    気長によろしくお願いします。

    MySQL Percona 基本情報とインストール への1件のコメント

    1. 外道父 より:

      読み返してディレクトリ構造について一点忘れていたので補足です。

      バイナリログなどは分けたのにInnoDBログファイルは分けてないのはワザとです。
      innodb_data_home_dir や innodb_log_group_home_dir を設定して場所を変更すると、XtraBackupのリストアの時などにめんどくさいことになるからです。また、分ける必要がないほどファイル数が少ないというのも理由です。

    コメントを残す

    メールアドレスが公開されることはありません。

    次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <img localsrc="" alt=""> <pre class="" title="" data-url=""> <span class="" title="" data-url="">