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 メッセージが出ない
●デッドロック
・デッドロックは障害ではない。
電池がなくなりそうなので、このへんでいったんきります。
後で追加します。
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 メッセージが出ない
●デッドロック
・デッドロックは障害ではない。
電池がなくなりそうなので、このへんでいったんきります。
後で追加します。