So-net無料ブログ作成

MySQLのログファイル [MySQL]

MySQLのログファイル

MySQLのログファイルは、実行エラーログ、クエリログ、スロークエリログ及びトランザクションログの4種類のログがあります。

実行エラーログ

実行エラーログは、起動、停止及び実行時のエラーがMySQLディレクトリに"ホスト名.err"というファイル名で保管されます。
MySQLで障害発生時に障害特定の情報を得ることが出来ます。

・設定方法
 1.コマンド
  UNIX、Linuxの場合



  Windowsの場合



  オプション

オプション 内容
--log-error[=filename] エラーログの出力先ファイル名を指定します。
--log-warnings[=level] 警告メッセージのエラーログに出力レベルを指定します。
level:0 メッセージは記録されません。
level:1以上 警告メッセージが記録されます。
デフォルトは1
-W [level] --log-warnings[=level]と同様
--console Windows用のオプションです。コンソールの標準エラー出力にログが出力されます。



 2.MySQL設定ファイル

mysqldセクションに設定を記述します。

クエリログ
全てのSQL文(接続を含む)をMySQLディレクトリに"ホスト名.log"というファイル名で保管されます。 クエリログはクエリを受け取った時点でログを書き込みます。 サーバ負荷の問題があるので、開発時またはデバッグ時に使用します。  1.コマンド   UNIX、Linuxの場合
  Windowsの場合
  オプション

オプション 内容
--log[=filename] エラーログの出力先ファイル名を指定します。
-l [filename] --log[=filename]と同様

 2.MySQL設定ファイル mysqld セクションに設定を記述します。
 3.ログ内容
カラム 内容
Time クエリー実行完了時間からロック解除までの間の時間
Id クライアントの識別番号
Command 接続、クエリー実施、切断などのコマンド
Argument Commandに対する引数

スロークエリログ
指定した時間(秒)に処理が終了しなかったSQL文とINDEXを使用しなかったSQL文をMySQLディレクトリに"ホスト名.show.log"というファイル名で保管されます。 ・設定方法  1.コマンド   UNIX、Linuxの場合
  Windowsの場合
  オプション

オプション 内容
--log-slow-queries[=filename] ログの出力先ファイル名を指定します。
--long-query-time=second 実行時間が指定時間(秒)以上の場合ログを出力
--log-queries-not-using-indexes INDEXを指定しなかった場合にログを出力するよう指定
--log-slow-admin-statements 管理用コマンドの実行が遅かった場合もログを出力するよう指定

 2.MySQL設定ファイル mysqld セクションに設定を記述します。

トランザクションログ
MySQLに対する全てのデータベースの更新情報をMySQLディレクトリに"ホスト名.bin.nnnnnn"というファイル名で保管されます。(nnnnnn:6桁のシーケンス番号) サーバのパフォーマンスが約1%程度低下することがあります。 ・設定方法  1.コマンド   UNIX、Linuxの場合
  Windowsの場合
  オプション

オプション 内容
--log-bin[=basename] ログのベースファイル名を指定します。
--log-bin-index[=filename] ログのインデックスファイル名を指定します。
--max-binlog-size=size ログファイルの最大サイズを指定
サイズを超えた場合は、ファイルをローテートして使用
--sync-binlog={0|1} の書き込み時に、ファイル書き込みの同期を行うか指定
0:同期無効
1:同期有効
トランザクションを確実に書き込む場合は有効を指定
--expire-logs-days=day ログの保持期間
期間を超えたログは削除されます。
--binlog-do-db=dbname ログを取るデータベースを指定
--binlog-ignore-db=dbname ログを取らないデータベースを指定

 2.MySQL設定ファイル mysqld セクションに設定を記述します。


MySQLのパラメータ(my.ini編) [MySQL]

MySQLのパラメータ(my.ini編)
システムを提供する際にDBMSのチューニングと監視を理解し運用マニュアルにまとめる必要があります。MySQLはまだ始めたばかりでDBのデータが揃っていないので順次精査していきたいと思います。

* メモリのチューニングはkey_buffer_size + (( sort_buffer + record_buffer_size ) * max_connections)が物理メモリを超えないように注意が必要。

* Intel系のLinuxはinnodb_buffer_pool_size + key_buffer_size + max_connections * (sort_buffer_size + read_buffer_size) + max_connections * 2 MB
が2 GB に近い場合は、注意が必要。

変数 内容 チューニング
key_buffer_size MyISAMのインデックスブロック用に使用されるバッファメモリの最大値 Key_reads / Key_read_requests(キャッシュミス率)が0.003より大きい場合は値を増やす。
MySQL ABは搭載メモリの1/4を推奨
table_cache テーブルのファイルポインタを保存しておくためのキャッシュ Open_tables=table_cacheでOpened_tablesが増加している場合、table_cacheを増やす。
注意:システムのファイルオープンの上限を超えない値を設定する。
innodb_buffer_pool_size  InnnoDBのバッファのプールサイズ

 MySQL ABは搭載メモリの80%を推奨

*innodb_log_file_sizeと共に調整

innodb_additional_mem_pool_size 内部データ用プールバッファ ログメッセージにより追加をで判断
read_buffer_size インデックスを使用しない検索で使用するバッファサイズ
read_rnd_buffer_size ランダム読込時に使用されるバッファサイズ
join_buffer_size インデックスを使用しないときの表結合に使用するバッファサイズ
thread_cache_size 不要になったスレッドを再利用するためのバッファサイズ スレッドを再利用することで接続時の応答を向上することが出来ます。 Threads_created,Threads_connected,Threads_runningが大きくなっている場合見直す必要があります
max_allowed_packet
データ・バッファ入力最大バッファサイズ
sort_buffer
sort時に使用されるバッファのサイズ 大きくすることでORDER BY、GROUP BYのパフォーマンスを向上
max_connections クライアントからの最大接続数

MySQLのインストール [MySQL]

MySQLのインストール

最近は、フリーのDBを使いたいというユーザの要望が多いので、MySQLをインストール
してみました。C#からConnector/NetとODBCを使用した接続の確認は取れました。
文字コードの扱いはまだ精査しなければなりませんが・・・

MySQL Connector/Netでの接続




MySQL Connector/ODBC 3.51での接続


環境:
 OS:Windows 2003
 Webサーバ:IIS
 開発言語:Microsoft Visual Studio 2005 C#またはVB

キットと入手先

キット 入手先
MySQL http://dev.mysql.com/downloads/mysql/5.0.html
MySQL Connector/ODBC 3.51 http://dev.mysql.com/downloads/connector/odbc/3.51.html
MySQL Connector/Net http://dev.mysql.com/downloads/connector/net/5.1.html

・設定
Windows版のMySQLはmy.iniファイルにより起動パラメータを決定します。
my.ini:MySQLインストール時にインストールディレクトリに作成されます。

1.My.iniの選択
サーバの種類に合わせてmy.iniを選択します。

ファイル 内容
my-huge.ini 1GB~2GB以下のメモリのマシン
my-innodb-heavy-4G.ini 4GBのメモリとInnoDBで作成されたマシン
my-large.ini 512MB以下のメモリのマシン/td>
my-medium.ini 128MB以下のメモリのマシン
my-small.ini 64MB以下のメモリのマシン
2.文字コードの設定 文字コードは、設定ファイルで指定する方法とプログラムで設定する方法があります。 設定できるキャラクタは'sjis',ujis',utf8'です。 ・設定ファイルで設定 設定ファイル:my.ini セクション:[client] default-character-set=sjis セクション:[mysql] default-character-set=sjis セクション:[mysqld] default-character-set=sjis character-set-server=sjis ・プログラムでの設定 プログラムでキャラクタをセットする場合は、SQL文でをコネクション毎に設定します。
3.デフォルトテーブルタイプの設定 MySQLは複数のストレージエンジンをサポートしています。ストレージエンジンはテーブル毎に指定することが出来ますが、指定しなかった 場合のデフォルトを指定できます。 [mysqld] default-storage-engine=INNODB
テーブルタイプ 内容
MyISAM トランザクション管理は行いませんが安全を保った上では高速なタイプです。
HEAP メモリにテーブルを保持しているため最も高速なタイプです。
InnoDB トランザクション機能を持つタイプで行単位のロックをサポートしています。
BDB(Berkeley DB) トランザクション機能を持つタイプでページ単位のロックをサポートしています。
4.メッセージの日本語化 メッセージはある程度日本語化されています。 [mysqld] language=japanese-sjis 5.ログの設定 実行に時間が掛かったクエリー及びインデックスを使わなかったログを取ります。 long-query-time=2は2秒以上掛かったログを記憶します。 [mysqld] log-slow-queries long-query-time=2 log-long-format ・起動方法 mysqld または net start mysql ・停止方法 mysqladmin -u root shutdown または net stop mysql ・データベース一覧

・データベースの切り替え

・テーブル一覧


・サーバの状態表示
文字化けに関するトラブルを耳にする。この場合,まずはstatusコマンドで,文字コードの設定を確認することをお勧めする。 サーバーの文字コードを確認した上で,意図していない文字コードになっていないか確認できる。


メッセージを送る

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。

×

この広告は1年以上新しい記事の更新がないブログに表示されております。