Quantcast
Channel: ウィリアムのいたずらの、まちあるき、たべあるき
Viewing all articles
Browse latest Browse all 7272

MySQLトラブルシューティング技巧解説

$
0
0
OTN MySQL User Forum Tokyoの午後3のお話

DBAの3つの課題
  安定性/パフォーマンス/作業効率

●SQLの結果がおかしい
・SQLがエラーになる
 実際のSQLを実行して、見る
   →一般クエリーログ
long_query_time=0としたときのスロークエリーログ
    シンタックスエラーなどは、アプリ側でログをとらないとわからない
 SQLの特定が重要

  ・一般クエリーログ
    投げられたリクエストすべてを返す
    出力先はファイルまたはテーブル

・期待した結果が返らない
 バグの可能性
   他のストレージ
   EXPLAINで実行計画
   そもそも、そのSQLは正しいか?
     →テンポラリテーブルを使って中間結果を見る


●文字化け
・いろんなところで、文字コード指定ができる
   →自動的に変換

・SHOW GLOBAL VARIABLES LIKE 'char %';

・接続用の文字コードは?

・端末の文字コード
   SET NAMES
・テーブルのデータ
   latin1でマルチバイト指定してないか?
・カラムごとに文字コードを指定可能
  →INFORMATION_SCHEMAを利用して調べられる
   TABLESテーブルに文字コードはない
・Connectror/Jの留意点
・LOAD DATA INFILE / SELECT INTO OUTFILE

●レプリケーション
・ステートメントベースと行ベース(データそのものを記録)
  →MIXEDも
・SQLスレッドの停止
  →スレーブ上のテーブルを間違って更新
   スレーブのクラッシュ
   バイナリーログの欠損
    →マスターがクラッシュなど
・IOスレッドの停止
  →ネットワークエラー
   max_allowed_packetが足りない
・状態確認
  スレーブ:SHOW SLAVE STATUS
  マスター:SHOW MASTER STATUS
・遅延
  レプリケーションハートビート
  レプリケーショモニター
・対策
  バイナリログの欠損を防ぐ
  テンポラリテーブルを使わないなど

●クラッシュ
・エラーログを見る
 クラッシュした後にリカバリーされているか?
 コア解析は、いわば検死解剖
 ソースコードの理解不可欠

●データ破壊
・MyISAMはクラッシュリカバリなし


●Out Of Memory
・32ビットバージョンのmysqldで起こることも
・OOM killer メッセージが出ない

●デッドロック
・デッドロックは障害ではない。

電池がなくなりそうなので、このへんでいったんきります。
後で追加します。

Viewing all articles
Browse latest Browse all 7272

Trending Articles