MySQLトラブルシューティング

[cover photo]
TOPICS
Database
発行年月日
PRINT LENGTH
288
ISBN
978-4-87311-586-3
原書
MySQL Troubleshooting
FORMAT
PDF
Ebook
3,080円
Ebookを購入する

OracleのMySQL担当サポートエンジニアを長年務める著者による、MySQLのトラブル解決のための決定版。著者はどこで問題が起こりやすいか、ユーザがどこで躓くかを熟知しており、6年にわたるテクニカルサポートの経験に基づいた実践的で現場指向の内容となっています。現場の生きた経験を反映した実践的なコンテンツは、MySQLを使うシステムに関わっている中級以上の開発者、運用担当者にとって福音となる一冊です。

目次

序文
はじめに

1章 基本テクニック
    1.1 構文の間違い
    1.2 SELECTの結果が間違っている
    1.3 直前の更新に問題があるかもしれない
    1.4 クエリに関する情報を取得する
    1.5 データからエラーの原因を遡る
    1.6 クエリが遅い
        1.6.1 EXPLAINの情報をもとにクエリを調整する
        1.6.2 テーブルの調整とインデックス
        1.6.3 いつ最適化を終わりにするか
        1.6.4 オプションの効果
        1.6.5 データを変更するクエリ
        1.6.6 特効薬はない
    1.7 サーバが応答しない
    1.8 ストレージエンジンごとの解決方法
        1.8.1 MyISAMでの破損
        1.8.2 InnoDBの破損
    1.9 パーミションの問題

2章 同時並行性の問題
    2.1 ロックとトランザクション
    2.2 ロック
        2.2.1 テーブルロック
        2.2.2 ロック
    2.3 トランザクション
        2.3.1 隠れたクエリ
        2.3.2 デッドロック
        2.3.3 暗黙のコミット
    2.4 メタデータのロック
        2.4.1 メタデータのロックと旧式モデルの比較
    2.5 同時並行性が性能に及ぼす影響
        2.5.1 InnoDBトランザクションでの同時並行性の問題を監視する
        2.5.2 他のリソースでの同時並行性の問題を監視する
    2.6 その他のロックの問題
    2.7 レプリケーションと同時並行性
        2.7.1 ステートメントベースでのレプリケーションの問題
        2.7.2 トランザクション対応テーブルとトランザクション非対応テーブルが混在する
        2.7.3 スレーブでの問題
    2.8 MySQLトラブル解決ツールの効果的な使い方
        2.8.1 SHOW PROCESSLISTとINFORMATION_SCHEMA.PROCESSLISTテーブル
        2.8.2 SHOW ENGINE INNODB STATUSとInnoDBモニタ
        2.8.3 INFORMATION_SCHEMAテーブル
        2.8.4 PERFORMANCE_SCHEMAテーブル
        2.8.5 ログファイル

3章 サーバオプションの効果
    3.1 サービスオプション
    3.2 サーバの振る舞いの変化が想定されている変数
    3.3 ハードウェアリソースを制限するオプション
    3.4 --no-defaultsオプションを使用する
    3.5 性能オプション
    3.6 急がば回れ
    3.7 SET文
    3.8 変更が反映されたかチェックする方法
    3.9 変数の解説
        3.9.1 サーバとクライアントの振る舞いに影響するオプション
        3.9.2 性能関連オプション
        3.9.3 オプションの安全値を計算する

4章 MySQLの環境
    4.1 物理的ハードウェアによる制限
        4.1.1 RAM
        4.1.2 プロセッサとコア
        4.1.3 ディスクI/O
        4.1.4 ネットワーク帯域
        4.1.5 遅延による影響の例
    4.2 OSの制限
    4.3 他のソフトウェアの影響

5章 レプリケーションのトラブル解決
    5.1 スレーブの状態を表示する
    5.2 I/Oスレッドでの問題
    5.3 SQLスレッドの問題
        5.3.1 マスタとスレーブでデータが異なるとき
        5.3.2 スレーブでの循環レプリケーションとレプリケーション以外での書き込み
        5.3.3 未完了あるいは置き換えられたSQL文
        5.3.4 マスタとスレーブでエラーが違う
        5.3.5 設定情報
        5.3.6 スレーブが大幅にマスタから遅れているとき

6章 トラブル解決のテクニックとツール
    6.1 クエリ
        6.1.1 スロークエリログ
        6.1.2 カスタマイズできるツール
        6.1.3 MySQLコマンドラインインタフェース
    6.2 環境の影響
    6.3 サンドボックス
    6.4 エラーとログ
        6.4.1 エラー情報、再び
        6.4.2 クラッシュ
    6.5 情報収集ツール
        6.5.1 情報スキーマ
        6.5.2 InnoDBの情報スキーマテーブル
        6.5.3 InnoDBモニタ
        6.5.4 性能スキーマ
        6.5.5 SHOW [GLOBAL] STATUS
    6.6 問題の箇所を突き止める(テストケースを最小化する)
    6.7 トラブル解決の一般手順
    6.8 テスト方法
        6.8.1 新しいバージョンでクエリを試してみる
        6.8.2 既知のバグをチェックする
        6.8.3 回避策
    6.9 特別なテストのツール
        6.9.1 ベンチマークのツール
        6.9.2 Gypsy
        6.9.3 MySQL Test Framework
    6.10 メンテナンスツール

7章 ベストプラクティス
    7.1 バックアップ
        7.1.1 バックアップを計画する
        7.1.2 バックアップの種類
        7.1.3 ツール
    7.2 必要な情報を集める
        7.2.1 これは一体どういうこと?
    7.3 テスト
    7.4 予防策
        7.4.1 権限
        7.4.2 環境
    7.5 よく考える

付録 情報リソース
    A.1 通常便利な情報を含むリソース
    A.2 バグと知識のデータベース
    A.3 エキスパートナレッジオンライン
    A.4 困った時に質問できる場所
    A.5 書籍

索引