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

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

紙版発売

B5変形判/520ページ

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

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テストのまとめ

著者プロフィール

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

日本オラクル株式会社 所属
ブログ「漢のコンピュータ道」を執筆。
コンピュータひと筋30年。本稿において示されている見解は、私自身の見解であって、私の所属するオラクルの見解を必ずしも反映したものではありません。

ブログ: 漢のコンピュータ道