タグ

ブックマーク / hirose31.hatenablog.jp (13)

  • 快適mysqlコマンド★カスタマイズの決定版 - (ひ)メモ

    この記事は MySQL Casual Advent Calendar 2013 の25日目の記事です。 自分の過去のブログも含めて、mysqlコマンドのカスタマイズについていろいろな情報がありますが、わたしがオススメの秘伝のタレをまとめたいと思います。是非、ご参考に。 定型文(SQL)のショートカット入力 「show create table TABLENAME\G」とか「select user,host,password from mysql.user order by user,host;」とか、よく実行するけど長くて入力するのがめんどうなのがありますよね。それをショートカットで入力できるようにする方法です。 mysqlコマンドで行編集ができるのは、readlineやlibeditをリンクしているおかげです。 従来の公式バイナリ配布物に含まれるmysqlコマンドはreadlineでした

    快適mysqlコマンド★カスタマイズの決定版 - (ひ)メモ
    sh2
    sh2 2013/12/25
    rehashしたときの一般クエリログをあとで確認
  • ファイル指定で、ページキャッシュにのっているか確認したり追い出したり - (ひ)メモ

    ファイル指定で、ページキャッシュにのっているか確認したり追い出したりするPerlモジュールを書きました。 https://metacpan.org/release/Sys-PageCache https://github.com/hirose31/Sys-PageCache Linux なら動くはずですが、動かなかったら教えてください。あと一応、FreeBSD 8.3以上でも動くと思います。 既存の実装にGooglelinux-ftoolsやエヌハヤシ氏のpagecache-toolがありますが、これのPerlモジュール実装(XS)になります。 https://code.google.com/p/linux-ftools/ https://github.com/nhayashi/pagecache-tool たまにfreeコマンドでみるとbuffers/cacheがっててswapしてる

    ファイル指定で、ページキャッシュにのっているか確認したり追い出したり - (ひ)メモ
    sh2
    sh2 2013/09/14
    キャッシュ持ちすぎでスワップが始まる問題、解決できることを知らなかった
  • check_mysql_queryで範囲指定 - InnoDBの空き容量を監視する - (ひ)メモ

    なぎおす! な!なんとなく〜 ぎ!ギャグでごまかそうと〜 お!おっさんどもが〜 す!すべってゆく〜 ハイ!ガショー!! Nagios (nagios-plugins) にcheck_mysql_queryというのがあります。 http://nagiosplugins.org/man/check_mysql_query MySQLに任意のクエリを発行して、その結果を元に監視の可否をするプラグインです。 「SELECT 1」とかを発行して期待した応答が返ってくるかとか死活監視に使えますが、結果が数値の場合、範囲内/外にあるかどうかの監視もできます。 例えば、(innodb_file_per_tableしていない場合の)InnoDBの空き容量を調べる設定はこんな感じになります。 前提: "infra"というデータベースに、InnoDBの"health"というテーブルがある MySQLのユーザー"

    check_mysql_queryで範囲指定 - InnoDBの空き容量を監視する - (ひ)メモ
    sh2
    sh2 2013/01/08
    ざっと見たところ簡単な方法はなくて、何らかの手段でInnoDBの内部変数srv_data_file_namesとsrv_data_file_sizesの値を引っこ抜く必要がありそうです
  • 同じサブネットへのNIC 2枚指し、またはソースルーティングのおはなし - (ひ)メモ

    「NIC 2枚刺し」というと「IP masqueradeを使ってLinuxルーターを作ろう!」的な話を思い出す老害です。こんにちは。 NICを2枚生やしたサーバーから同じサブネットに両方の足をのばす機会があったのですが、じゃっかん躓いたのでそのメモです。 具体的にいうと、eth0の方は問題ないのですが、eth1についているIPアドレスへの疎通ができない、というものでした。 以下、 eth0についているIPアドレスが10.0.0.10 eth1についているIPアドレスが10.0.0.11 対向の別サーバーが10.0.0.100 という体で読んでください。 さて、 別サーバーからpingしつつ、eth1でtcpdumpしてみると、echo requestは届いているのが観測できました。が、echo replyを返していません。 # tcpdump -i eth1 -nl icmp liste

    同じサブネットへのNIC 2枚指し、またはソースルーティングのおはなし - (ひ)メモ
    sh2
    sh2 2012/08/31
    サブネット内でbonding以外の方法で1Gbps×N出したいと思ってすぐにあきらめたことがあったけど、こうすればいいのか。ip rule add from 10.0.0.11 table 100 prio 200
  • 複合インデックスで範囲検索が遅いとき - (ひ)メモ

    DDLとデータは末尾に示しますが、複合インデックスが効くはずのクエリなんだけどナめてる行数が多くて困ったというお話です。(MySQL 5.1.55) このクエリで返ってくる行数は246件なんですが、それにしてはナめてる行数(rows)がやたら多いです。where句で使っているageとlast_updateとで複合インデックスを張っているのに、です。 between使用: explain extended select id from betweeeeen where age between 30 and 35 and last_update >= 946612000 \G ↓ id: 1 select_type: SIMPLE table: betweeeeen type: range possible_keys: i1 key: i1 key_len: 10 ref: NULL rows

    複合インデックスで範囲検索が遅いとき - (ひ)メモ
    sh2
    sh2 2012/08/22
    他のRDBMSだとどうなるのか、あとで調べたい
  • dstatの万能感がハンパない - (ひ)メモ

    サーバーのリソースを見るにはグラフ化は重要ですが、推移ではなくリアルタイムな状況、例えば秒単位のスパイキーな負荷を見るには、サーバー上でvmstatやiostatなどの*statファミリーを叩く必要があります。 さて、vmstatはメモリの状況やブロック数単位のI/O状況は見られますが、バイト単位のI/O状況やネットワークの送信、受信バイト数を見ることはできません。 # vmstat 1 procs -----------memory---------- ---swap--- -----io----- --system-- -----cpu------ r b swpd free buff cache si so bi bo in cs us sy id wa st 3 1 0 4724956 355452 726532 0 0 54 484 3 3 1 0 99 0 0 2 0 0 47

    dstatの万能感がハンパない - (ひ)メモ
    sh2
    sh2 2012/02/29
    RHEL 5付属のバージョンだとdsk/totalが/dev/sdaと/dev/sdaXを足して2倍の値を報告してしまっていて残念だった。MySQLの状態を見られるのは知らなかった。あとCSV出力が便利
  • 株式会社ディー・エヌ・エーに入社しました - (ひ)メモ

    12月1日付けで株式会社ディー・エヌ・エーに入りました。 入社して1週間が経ち、少しずつ環境にも慣れてきたところで、優秀な仲間たちと楽しく充実した日々を送っています。 自分の仕事はこれまで通り、コードも書ける(書きたい)インフラエンジニアです。 まだ把握しきれていませんが、想像していた以上のトラフィック、サーバー台数のスケールで、これほど大きなシステムに関われることに興奮して鼻血が出そうな毎日です。 特に前職では人数が少なかったせいもあり、エンジニアリング以外のこともいろいろとやりました(おかげでいろいろと経験できてよかったです)が、ディー・エヌ・エーではエンジニアリングに集中し、自分のこれまでの経験と知識と勘を活かし早期にバリューを出せるように努力しつつ、優秀な仲間たちと切磋琢磨し、より自分の腕に磨きをかけていきたいと思っている所存です。 また、ブログや勉強会等しばらくおやすみしていまし

    株式会社ディー・エヌ・エーに入社しました - (ひ)メモ
    sh2
    sh2 2011/12/09
    おめでとうございます!
  • ncある限りぼくはどこまででもいけるッ! - (ひ)メモ

    多段SSHの話。 2008-05-02追記 ncの-w secオプションで、一定時間通信がなければncが終了するようにしました。このオプションを指定しないと、sshコネクションを切った後でもncのプロセスが残留してしまいます。 2010-03-08 OpenSSH 5.4以降のnetcat mode (ssh -W host:port ...) を使えば、ncコマンドは不要かも。 2010-11-08 zshでNo such file or directoryと言われるのは、これが原因かもhttps://bugzilla.mindrot.org/show_bug.cgi?id=1494 正攻法でこたつにアクセスするには下図のようなSSHアクセスを繰り返さなければならない、といった状況があるとする。 uchi ----> otonari otonari ----> genkan genkan

    ncある限りぼくはどこまででもいけるッ! - (ひ)メモ
    sh2
    sh2 2011/06/06
    多段ssh。知らなかった
  • MySQLで、指定したときだけクエリキャッシュする - (ひ)メモ

    今までMySQLのクエリキャッシュはは有効にしてたんですが、Webサービスだとキャッシュヒットするようなクエリはそんなに多くないし、どこかで見かけたんですが(失念…)クエリキャッシュをオフにしたら(逆に)パフォーマンスが上がっただか負荷が下がっただかというのも目にしたので、今度クエリキャッシュはオフにしようと思ってました。(どのみちヒット率悪いし) そんなとき、同僚に query_cache_type を教えてもらいました。(4.0からあるオプションなのに今まで知りませんでした。。。><) http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html#sysvar_query_cache_type てっきりクエリキャッシュはオンかオフかしかできないと思い込んでたんですが、"DEMAND" を指定すると、「原則キャッシ

    MySQLで、指定したときだけクエリキャッシュする - (ひ)メモ
    sh2
    sh2 2010/04/06
    クエリキャッシュはCPUスケーラビリティが悪いので、8コアぐらいのマシンでInnoDB Pluginを入れて単純なクエリをゴリゴリ回すとクエリキャッシュなしの方が速い場合があります
  • メモ: InnoDB Pluginのバグ - (ひ)メモ

    自分も含め、InnoDB Pluginの使用を検討してる人も多いのではないかと思うのですが、ちと気になるバグを見かけたので追試してみました。 Bug #47621 MySQL and InnoDB data dictionaries will become out of sync when renaming columns http://bugs.mysql.com/bug.php?id=47621 http://bugs.mysql.com/bug.php?id=44571 現象 カラムの名前を替えて、新しい名前のカラムに対して index をつけると、InnoDB Plugin 1.0.4 以前は mysqld がクラッシュし、1.0.5 以降はエラーが出て index がつけられない。 対処法 別テーブルを作ってデータをコピーする。 再現方法 DROP TABLE IF EXISTS

    メモ: InnoDB Pluginのバグ - (ひ)メモ
    sh2
    sh2 2010/01/05
    なるほど!
  • 実録、ほぼ無停止なMySQLのフェイルオーバ (動画もあるよ) - (ひ)メモ

    レプリケーションしてるMySQLで、マスタやスレーブが障害停止した場合のリカバリプラン でも掲げたゴールである、「マスタが落ちてもぐーすか寝ていられるようにしたい」がほぼできたので、ほとんどサービスが停止することなく、フェイルオーバする様をスクリーンキャストに収めました。 埋め込みプレイヤーだと、小さくてわからないと思うので、リンク直接でみてください。 http://www.irori.org/pub/mysql-mm.mov 登場するホスト 登場するホストは2台、db901db902です。 最初は、db901が更新系クエリを受けるプライマリでdb900の浮動IPアドレスを持っています。 画面分割 画面は5分割しています。 左上 = 「select sysdate(),@@server_id」をdb900に対して(sleep 1しながら)延々と実行しまくりんぐ 右上 = ping -n

    実録、ほぼ無停止なMySQLのフェイルオーバ (動画もあるよ) - (ひ)メモ
    sh2
    sh2 2009/11/12
    レビューできてなくてすいませんm(_ _)m
  • レプリケーションしてるMySQLで、マスタやスレーブが障害停止した場合のリカバリプラン - (ひ)メモ

    MySQLで、レプリケーションベースのHAな構成について考えたメモです。 3台(というか2台+1台)がいいかなぁと思っていて、前半はその理由を、後半では{マスタ,スレーブ}が{再起不能になった,ちょっとダウンしてすぐ復帰した}場合のリカバリプランについて書きます。 今のところはこれがベストかなと思っているのですが、「こうしたほうがいいと思う!」「ここがおかしい!」などなどのご意見はコメント、TBなどでいただけるとうれしいです。 ゴール マスタが落ちてもぐーすか寝ていられるようにしたい リカバリの作業はできるだけ単純に、かつ、短時間で完了するようにしたい めんどくさいのはいや 基構成、方針 2台+1台 サービスで使うのは2台 (db1, db2) もう1台は管理用 (db3) スレーブを多数並べる構成にはしない 台数増えると管理コストが上がる マスタダウン時のフェイルオーバとそのフェイルバ

    レプリケーションしてるMySQLで、マスタやスレーブが障害停止した場合のリカバリプラン - (ひ)メモ
    sh2
    sh2 2009/10/23
    あとでレビューする
  • InnoDBテーブルでunique keyがある場合、それをprimary keyにするべきかどうか - (ひ)メモ

    InnoDBなテーブルのお話です。 とあるテーブルで、いくつかあるカラムのうち、ただひとつのカラムがunique keyになり得るものだとします。 こういうときは、そのunique keyは無条件でprimary keyにしたほうがイイ!と思ってたんですが、調べてみると必ずしもそうでないようなので、今のところのモヤモヤをまとめてみます。 教えて! 偉い人!! 予備知識 High Performance MySQL 作者: Baron Schwartz,Peter Zaitsev,Vadim Tkachenko,Jeremy D. Zawodny,Arjen Lentz出版社/メーカー: Oreilly & Associates Inc発売日: 2008/06/01メディア: ペーパーバック購入: 4人 クリック: 33回この商品を含むブログ (8件) を見るからの超抜粋。しかしこのは神

    InnoDBテーブルでunique keyがある場合、それをprimary keyにするべきかどうか - (ひ)メモ
    sh2
    sh2 2009/07/25
    MySQLに限ってはautoinc付ける派
  • 1