エキスパートのための MySQL[運用+管理]トラブルシューティングガイド

[表紙]エキスパートのための MySQL[運用+管理]トラブルシューティングガイド

B5変形判/520ページ

定価(本体3,300円+税)

ISBN 978-4-7741-4294-4

→学校・法人一括購入ご検討の皆様へ

書籍の概要

この本の概要

高額なデータベースシステムでなくとも十分との認識が広まったことから,MySQLがクローズアップされて久しい。すでに書籍も少なからず出版されていますが,多くの場合はシステムの「構築」という点にフォーカスされており,解説も使用開始前で終わっていることが多いようです。その点,本書は「運用」の,しかもトラブルシューティングに焦点を当てており,完全に独自の路線(サポートを受けているかのような実用的な内容)を採用。著者はMySQLユーザーのトラブルに日々対応している専門家ですので,その点でも万全です。

こんな方におすすめ

  • MySQLに携わっている現場の管理者
  • 特にMySQLに関わることの多いデータベース技術者
  • その他すべてのMySQlユーザー

目次

第1章 MySQLの概要

1 MySQLとは?

  • 1-1 世界で最も有名なオープンソースRDBMS
  • 1-2 LAMPの“M”
  • 1-3 MySQLの歴史

2 MySQL Serverの種類

  • 2-1 FOSS Exceptionとは?

3 MySQLの構造

  • 3-1 ストレージエンジン
  • 3-2 MySQLレプリケーション
  • 3-3 セッション
  • 3-4 クエリキャッシュ
  • 3-5 MySQLシステムライブラリ

4 MySQLのセットアップ

  • 4-1 MySQLを入手しよう
  • 4-2 パッケージの種類
  • 4-3 ディレクトリ構造とシステムデータベース
  • 4-4 起動/停止/自動起動
  • 4-5 コマンドラインオプションとオプションファイルの利用
  • 4-6 my.cnf設定例
  • 4-7 複数のインスタンスを起動する

5 MySQL Serverにアクセスする

  • 5-1 mysqlコマンド
  • 5-2 GUIツール

6 堅牢な運用を行うための推奨設定

  • 6-1 mysql_secure_installation
  • 6-2 DNSへの問い合わせを取り除く
  • 6-3 TCP/IPを利用しない
  • 6-4 バイナリログ
  • 6-5 クエリキャッシュを利用しない
  • 6-6 メモリのサイジング
  • 6-7 ディスクキャッシュに関する注意点
  • 6-8 InnoDBにおけるディスク関連のチューニング

7 インストール中によく起きる問題と対処法

  • 7-1 パッケーシがインストールできない
  • 7-2 異なるバージョンのMySQLが起動する
  • 7-3 Solaris用パッケージのインストール時にエラーメッセージが出る
  • 7-4 mysqldが起動しない

第2章 開発時における問題

1 文字化け

  • 1-1 MySQLにおける文字コードの仕組み
  • 1-2 文字コード関連のシステム変数
  • 1-3 利用できる文字コード
  • 1-4 MySQL Serverの設定
  • 1-5 テーブルに格納されるデータの文字コード
  • 1-6 現在設定されている文字コードを確認する
  • 1-7 アプリケーションによる文字コードの指定方法
  • 1-8 文字コードに関する諸問題
  • 1-9 文字コードに関するまとめ

2 MySQL CLI上で表示されるエラーを理解する

3 トランザクション

  • 3-1 MySQLにおけるトランザクション
  • 3-2 トランザクション利用時の注意点
  • 3-3 トランザクションのまとめ

4 SQLモード

  • 4-1 SQLモードの種類
  • 4-2 特別なSQLモード
  • 4-3 SQLモードのまとめ

5 アプリケーションによるエラーハンドリング

  • 5-1 エラーハンドリングの流れ
  • 5-2 各種エラーへの対処
  • 5-3 エラーを捕捉する
  • 5-4 エラーハンドリングのまとめ

第3章 MySQLの状態をみる

1 SHOWコマンドとINFORMATION_SCHEMA

  • 1-1 MySQL Serverの状態を調べるSHOWコマンド
  • 1-2 MySQLの各種オブジェクトの状態を調べるSHOWコマンド
  • 1-3 テーブルの詳細な情報を調べるSHOWコマンド
  • 1-4 権限に関するSHOWコマンド
  • 1-5 ストレージエンジンの状態を調べるSHOWコマンド
  • 1-6 レプリケーション関連のSHOWコマンド
  • 1-7 その他のSHOWコマンド
  • 1-8 INFORMATION_SCHEMA

2 EXPLAIN

  • 2-1 idとSelect Type
  • 2-2 table
  • 2-3 Record Access Type
  • 2-4 possible_keys とkey,key_len
  • 2-5 ref
  • 2-6 rows
  • 2-7 Extra
  • 2-8 EXPLAINのバリエーション
  • 2-9 EXPLAINのまとめ

3 プロファイリング

  • 3-1 プロファイリングを有効にする
  • 3-2 クエリを実行する
  • 3-3 プロファイリング情報を表示する
  • 3-4 プロファイリング情報の履歴
  • 3-5 プロファイリング情報の見方

4 MySQLのログ

  • 4-1 エラーログ
  • 4-2 バイナリログ
  • 4-3 一般クエリログ
  • 4-4 スロークエリログ
  • 4-5 トレースファイル
  • 4-6 ストレージエンジンが作成するログファイル
  • 4-7 ログファイル比較

5 InnoDBモニタ

  • 5-1 標準のInnoDBモニタ
  • 5-2 ロックモニタ
  • 5-3 テーブルモニタ
  • 5-4 テーブルスペースモニタ

6 システムの状態を調べる

  • 6-1 UNIX基本コマンド
  • 6-2 情報収集ツール

第4章 DTrace

1 DTraceとは

  • 1-1 プローブとプロバイダ
  • 1-2 SDT/Fasttrapプロバイダの別名
  • 1-3 MySQL特有のプローブ
  • 1-4 コンパイル時の設定

2 dtraceコマンド

  • 2-1 Probeをリストアップ
  • 2-2 プローブを有効にする方法
  • 2-3 プローブがFireしたときに採取できる情報

3 D言語プログラムを書こう

  • 3-1 D言語プログラムの構造
  • 3-2 変数を使おう
  • 3-3 変数の型
  • 3-4 情報を出力する方法を極めよう
  • 3-5 投機トレース
  • 3-6 D言語プログラムサンプル

4 DTrace Toolkit

5 Apple Instruments

6 DTraceのまとめ

第5章 運用中に起きる諸問題

1 レプリケーション

  • 1-1 レプリケーションの仕組み
  • 1-2 レプリケーションのセットアップ
  • 1-3 レプリケーションの操作
  • 1-4 よく起きる問題の原因と対処法
  • 1-5 レプリケーションを堅牢にするためのテクニック
  • 1-6 まとめ

2 クラッシュ

  • 2-1 シグナル
  • 2-2 スタックトレース
  • 2-3 スタックトレースからバグの原因を探る
  • 2-4 コア解析

3 クラッシュリカバリ

  • 3-1 InnoDB
  • 3-2 InnoDB

4 テーブルの破損

  • 4-1 テーブル破損のシナリオ
  • 4-2 破損が起きたときの兆候
  • 4-3 破損からの回復

5 性能の低下

  • 5-1 スロークエリログ
  • 5-2 MySQLの性能改善計画

6 ハードウェア障害

  • 6-1 ネットワークエラー
  • 6-2 CPUやシステムチップ,バスのエラー
  • 6-3 メモリエラー
  • 6-4 ディスクエラー
  • 6-5 ハードウェア障害に関するまとめ

第6章 堅牢な運用を実現するために

1 バックアップとリストア

  • 1-1 mysqldump
  • 1-2 コールドバックアップ
  • 1-3 mysqlhotcopy
  • 1-4 スナップショット
  • 1-5 バイナリログ
  • 1-6 InnoDB Hot Backup
  • 1-7 その他のバックアップツール
  • 1-8 まとめ

2 High Availability

  • 2-1 HAクラスター
  • 2-2 ネットワークの冗長化
  • 2-3 MySQL Cluster
  • 2-4 MySQLレプリケーション
  • 2-5 High Availabilityのまとめ

3 セキュリティ

  • 3-1 セキュアな MySQL構築の大原則
  • 3-2 不正ログインを防ぐ
  • 3-3 SQLインジェクション

4 アップグレード

  • 4-1 MySQLにおけるバージョンの考え方
  • 4-2 どのようなときにアップグレードするべきか
  • 4-3 アップグレードの概要
  • 4-4 レプリケーションを利用したアップグレード
  • 4-5 アップグレード時における注意点

第7章 ソースコードのビルド

1 ソースコードを入手する

  • 1-1 ソースコード版パッケージ
  • 1-2 Bazaar

2 ビルドしよう!

  • 2-1 gccコンパイラオプション
  • 2-2 ソースコードを展開する
  • 2-3 configure
  • 2-4 make
  • 2-5 ccache
  • 2-6 BUILD/compile*スクリプト

3 QAテスト

  • 3-1 MySQL Test Framework
  • 3-2 valgrind
  • 3-3 ベンチマークツール
  • 3-4 QAテストのまとめ

著者プロフィール

奥野幹也(おくのみきや)

1975年生まれ。栃木県在住のギーク。フリー(自由な)ソフトウェアの普及をライフワークとしている。MySQLのサポートに従事。MySQLのトラブルシューティングだけでなくチューニングも得意とする。

Blog:http://nippondanji.blogspot.com/

Twitter:@nippondanji