無料PHPプログラム

MySQL 5.1 リファレンスマニュアル :: 4 データベース管理 :: 4.2 mysqld ? MySQL サーバ :: 4.2.7 シャットダウン プロセス
« 4.2.6 SQL モード

4.2.8 サーバ サイド ヘルプ »
Section Navigation      [Toggle]
  • 4.2 mysqld ? MySQL サーバ
  • 4.2.1 オプションと変数のリファレンス
  • 4.2.2 コマンド オプション
  • 4.2.3 システム変数
  • 4.2.4 システム変数の使用
  • 4.2.5 ステータス変数
  • 4.2.6 SQL モード
  • 4.2.7 シャットダウン プロセス
  • 4.2.8 サーバ サイド ヘルプ

4.2.7. シャットダウン プロセス

サーバのシャットダウン プロセスには次のことが行われます。

  1. シャットダウン プロセスの開始

    サーバのシャットダウン (システム終了) には様々な方法があります。たとえば、SHUTDOWN 権限を持つユーザは、mysqladmin shutdown コマンドを実行できます。MySQL がサポートしているプラットフォームであれば mysqladmin コマンドを使用します。OS に対応したシャットダウンの開始方法として、Unix 環境のシャットダウンでは、サーバが SIGTERM を受けるとシャットダウンし、Windows 環境では、サービス マネージャの指示でシャットダウンします。

  2. サーバによるシャットダウン スレッドの作成 (必要に応じて)

    シャットダウンの開始方法によっては、サーバがシャットダウン プロセスを処理するスレッドを作成することがあります。シャットダウンがクライアントからの要求によるのであった場合に、シャットダウン スレッドが作成されます。シャットダウンが SIGTERM を受信したことによるものである場合、シャットダウン処理をグナル スレッド (SIGTERM に対して) が行うことがあります。または、別のスレッドを作成して、その処理を行うことがあります。サーバがシャットダウン スレッドを作成しようとして、作成できない場合には、サーバは診断メッセージをエラー ログに表示します。これは、メモリ不足などの場合に発生します。

    Error: Can't create thread to kill server
    
  3. サーバによる新規接続の拒否

    シャットダウン中に新たなアクティビティを開始しないようにするために、サーバは新たなクライアントからの接続を拒否します。これは、P ポート、Unix のソケット ファイル、Windows の名前付きパイプや共有ファイルなどの接続に対して、ネットワーク接続を閉じる、という方法を取ります。

  4. サーバによる現行のアクティビティの停止

    クライアント接続に関連しているスレッドでは、クライアントへの接続を止め、そのスレッドはバイタルを失った (無くなった) ものとしてマークします。スレッドはそのようにマークされたことを認識し、消滅します。アイドル接続のスレッドは、簡単に消滅します。クエリを処理中のスレッドはその程度を定期的に把握しているために、消滅するまでに時間がかかります。スレッド停止に関する詳細は、項12.5.5.3. 「KILL 構文」 を参照してください。このリンクでは、MyISAM テーブルでの REPAIR TABLE または OPTIMIZE TABLE オペ中の消滅に関して特記しています。

    オープン トランザクションのスレッドは、トランザクションがロールバックします。ノート: スレッドが非トランザクションのテーブルを更新中の場合には、UPDATE または INSERT などのオペレーションでテーブルを部分的に更新した状態にすることがあります。これはオペレーションが完了する前に停止する可能性があるためです。

    サーバがマスタのレプリケーション サーバである場合は、スレッドは接続中のサーバに関連するスレッドを別のクライアントからのスレッドのように扱います。そのため、レプリケーションに関係しているスレッドはバイタルを失い、状態のチェックが済むと終了します。

    サーバがすスレーブのレプリケーション サーバである場合、I/O と SQL のスレッドがアクティブなときには、クライアント スレッドが失われる前に中断します。SQL スレッドは現行クエリを完了してから、中断します。これにより、レプリケーションで問題が発生しないようにします。SQL スレッドがその時点でトランザクションの最中であった場合は、トランザクションがロールバックします。

  5. ストレージ エンジンのシャットダウンまたはクローズ

    この段階で、テーブル キャッシュはフラッシュが済み、オープン テーブルのすべてを閉じます。

    それぞれのストレージ エンジンでは、関係しているテーブルに対して必要なアクションを取ります。たとえば、MyISAM では、テーブルへのインデックスの書き込みで保留中のものをフラッシュします。InnoDB では、ディクスにバッファ メモリをフラッシュします。その時点での LSN をテーブルスペースへ書き込み、内部スレッドを停止します。innodb_fast_shutdown で 2 と設定していた場合はこの限りではありません。

  6. サーバの終了

Copyright c 1997, 2010, Oracle and/or its affiliates. All rights reserved. Legal Notices
Top / Previous / Next / Up / Table of Contents
© 2010, Oracle Corporation and/or its affiliates

無料CGI PHPスクリプト | 新着情報スクリプト | 営業日カレンダー | PHPマニュアル | MySQLマニュアル | PEARマニュアル

Copyright (c) 2010 jmcodex.com All rights reserved.