MySQL」タグアーカイブ

MySQL バイナリログからデータを復旧

MySQL で作業してるときにうっかりオペミスしてしまったときの対処方法。
作業前にダンプ取ってて、作業終了後すぐにオペミスに気づいた場合は、そのダンプから戻せば良いですが、ダンプ取ったのが結構前だったとか、オペミスに気づいたのが時間をおいてからだったとかって時の復旧方法です。
前提条件として、以下の状況だった場合のみです。バイナリログを取ってない場合はあきらめましょう。

  • バイナリログを取っている( /etc/my.cnf で log-bin=mysql-bin とか設定してある )
  • mysqldump 等でバックアップしている
  • バックアップ時点でのバイナリログの書き込み位置を保存している。またはバックアップした日時が特定できる

参考 : unoh.github.com by unoh

続きを読む

MariaDB Galera Cluster による DB サーバの冗長化

さくらインターネット研究所さんの「MariaDB Galera Clusterを試す」という記事を読んで居ても立ってもいられなくなり、さっそく AWS で構築してみました。
上記の記事によれば

簡単にまとめると次のようになります。

  • Galera Replicationが複数のRDBMをレプリケーションするwsrep APIを提供し、同期をとります
  • 完全同期型であるため、すべてのノードがアクティブかつマスターとなります
  • クラスターノードのどれに対してもリード/ライトが可能です
  • ノードの追加/削除は自動で行えます
  • クライアント接続は通常のMySQLとなんら変わりなく使えます

via. MariaDB Galera Clusterを試す (1) « さくらインターネット研究所

おー!スレーブ/マスター形式のレプリケーションよりも、断然使いやすそうやんか!
ってわけで AWS の ELB 配下に複数台 MariaDB Galera Cluster を配置する方法を解説します。
続きを読む

percona

Percona MySQL をさくらのVPSで使う

percona別にさくらのVPSじゃなくても良いんですが

MySQL の派生プロダクトとして Percona MySQL というモノがあります。
これは、MySQL Performance Blog を書いてる Percona 社が提供してくれているプロダクトで、MySQL からの公式ビルドには含まれていない人気のあるパッチを追加したものです。
高負荷時の InnoDB のパフォーマンスを向上してくれるパッチなんかも含まれます。

Percona 社さんが yum のリポジトリを提供してくれてるのでインストールも簡単です。
とりあえず、どんなもんか確かめてみたかったので、さくらのVPS 512 (CentOS 64bit) にインストールして、MySQL 用のベンチマークソフト super-smack で、ベンチを取ってみました。
続きを読む

MySQL 5.5.x 環境に cacti をインストール

サーバの運用監視に Cacti とか入れたりするんですが、MySQL 5.5.x 環境に新規で cacti をインストールしようとするときは、ちょっと注意が必要です。
Cacti をインストールする際に走らせる sql 文に create table 〜 TYPE=MyISAM って書いてあるんだけど、MySQL 5.5 からは ENGINE=MyISAM って、書かなきゃならんです。

そんなときは sed 一発

$ cp cacti.sql cacti.sql.bak
$ sed s/TYPE=MyISAM/ENGINE=MyISAM/ cacti.sql.bak > cacti.sql

簡単ですね。

MySQL 5.5.11 にアップデート

remi レポジトリに MySQL-5.5.11 がきてたのでアップデート。
MySQL 5.5 replace MySQL 5.1 – Les RPM de Remi – Blog

アップデート後 mysqld が起動しなくなったので焦ったけど、メモリ不足が原因だったので query_cache と tmp_table_size に割り当ててるメモリを減らして解決。
あと innodb_buffer_pool_size は指定してなかったんだけど、デフォルトで 128MB 取られるようだったので、これも指定して 64M に下げて運用。
設定は、もうちょい追い込まないとダメだなぁ。
メモリがプアな VPS だと、色々と工夫が必要です。

アップデート後に注意が必要な点としては、他にも [mysqld] ディテクティブの default-char-set が使えなくなったとかあるようです。
firegoby » Blog Archive » MySQL5.5.3にアップグレードしたら再起動に失敗した。

WordBench.org のサーバをチューニング

最近 WordBench が、当サイトと同じめ組のVPSに引っ越して来ました。
そんな縁もあって WordBench.org のサーバのチューニングを手伝ったのでメモ。
今回、行ったチューニングは Apache, PHP, MySQL についてだけで、WordPress のプラグインを用いる ( WP Super Cacheobject cache など ) チューニングは行っていません。
WP Super Cache とか使わなくても、サーバー側の設定をつめてやるだけで、子サイトを複数持った WordBench のようなサイトでも、十分に良いパフォーマンスが得られますよっていうお話です。

大まかな項目は、こんな感じ。

  • PHP の設定 – PHP アクセラレータ eAccelerator の導入
  • Apache の設定 – mod_deflate, mod_expires の有効化
  • MySQL の設定 – クエリキャッシュ, ソートバッファ等の設定

続きを読む

Yet Another Related Posts Plugin の SQL 文を高速化

昨年、め組のVPS に移行した後、チマチマとパフォーマンスチューニングを行ってきたのですが、そこで得られた情報をシェアしておきます。

VPS に移行したことで共用レンタルサーバでは弄れなかった MySQL や Apache の設定なんかも弄れるようになったので、MySQL で実行に時間のかかっているクエリーをログに残してチューニングするようなことも手軽にできます。
スロークエリログの取得方法は、以下を参考に。
漢(オトコ)のコンピュータ道: MySQL 5.1のスロークエリログ

さて、このブログでの関連記事表示には Yet Another Related Posts Plugin を使用しています。
実行に2秒以上かかったクエリーをログに残したところ Yet Another Related Posts Plugin が生成したクエリーがログに記録されたので、これを修正しました。
続きを読む

さくらVPSに lighttpd + PHP 5.3 + MySQL 5.1 をインストール

さくらのVPSのお試し期間を使って、色々試してみたので、メモ。
初期設定とかは、hiromasa さんのエントリを参考に。

今回の構成は、Web サーバ lighttpd 、PHP 5.3.x、MySQL 5.1.x で WordPress を動作させるところまでやってみます。
続きを読む

Sweetcron インストールから Cron ジョブ設定まで

Sweetcron スクリーンショット - Dashboard先日導入した Sweetcron のインストールと設定のメモ。
インストール自体は、日本語のガイドがあるので、そちらを参照すれば問題なく終了します。
ただ、さくらで使うには、若干注意が必要です。
インストール – Sweetcron Japanese Doc

テーマは、HEY. Like this Sweetcron theme? > Colin's Life を、ちょっと修正して使ってます。
また Sweetcron では、登録された RSS フィードを取得して一覧表示するのですが、プラグインと呼ばれる仕組みを使ってサイトごとに取得したデータを加工することができます。
Twitterのフィードを取得してきた際に以下の変更を行うように Plugin を修正しました。

  • 発言者の Twitter アイコンを表示する
  • Twitpic の URL があれば、投稿された写真のサムネイルを表示する

続きを読む

Sweetcron

ライフストリーミングツール「Sweetcron」をインストールしてみました。
何ができるの?って方は、以下のエントリが参考になると思われます。

で、今回インストールしたさきはこちら
テーマは、以下のサイトで配布しているモノを使わせてもらいました。
HEY. Like this Sweetcron theme? » Colin's Life

ついった、ブログ、はてブ、livedoorクリップ、coComment の MyComments などを集約させています。
サイトごとに記事収集方法を変更できるため、ちょっといじって、ついったの発言に Twitpic の URL がある場合は、サムネイルを表示するようにしました。
PHP で簡単に書けるので、色々と遊べそうです。