エキスパートのための MySQL[運用+管理]トラブルシューティングガイド
2010年6月12日紙版発売
奥野幹也 著
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テストのまとめ
この本に関連する書籍
-
失敗から学ぶ RDBの正しい歩き方
「データベースがよく落ちる」「前任者が残したテーブル,SQLが読み解けない」「RDBMSを入れ替えたら予期せぬバグが」――MySQLやPostgreSQLといったRDBMS(リレーショナ...
-
MySQL Cluster構築・運用バイブル ~仕組みからわかる基礎と実践のノウハウ
MySQLのストレージエンジンとして動作し,スケールアウトや高可用性のニーズに応えてくれるのがMySQL Cluster。RDBMSとNoSQL両方のインターフェイスを持つ「NewSQL」の...
-
プロになるための データベース技術入門―MySQL for Windows 困ったときに役立つ開発・運用ガイド
本書は,MySQLのWindows版を対象にその特徴や使い方を解説します。障害発生時にどうしたらよいのか,データベース技術の基礎の基礎から,応用までじっくりデータベース...
-
Webエンジニアのためのデータベース技術[実践]入門
Software Designの好評連載「データベース技術の羅針盤」の内容を中心に,加筆・修正を加えて書籍化しました。「データベースがないと何が困るのか」という読者へのアプ...
-
エンジニアのためのMySQL運用管理大全
世界中で広く使われているデータベースシステム「MySQL」の操作,運用,管理など,データベース管理者に必要とされる技術について詳しく解説しています。実際にMySQLデ...
-
MySQLポケットリファレンス
MySQLはさまざまなWebサービスの中核を担うデータベースです。本書はMySQLの基礎的な内容を中心に,日常的によく使うちょっとしたコマンドや,外部管理ツールとの連携な...