それが前向きな理由で起こった場合、経営陣の注意を引くことは良いことです。しかし、多くのデータベース管理者は、実際にはレーダーから離れることを好みます。 DBAは、組織のデータベースがスムーズに稼働していることを確認する責任があるため、状況が順調に進んでいる場合、DBAは通常、立ち止まって安心して業務を遂行できます。しかし、何かがうまくいかないとき、突然あなたは会社の最重要指名手配リストのトップネームになります。
DBAは組織内で多くの責任を負っており、事態を悪化させる方法はたくさんありますが、いくつかのMySQLデータベース監視のベストプラクティスに従うことで、データベースではなく、非常に鋭いウィットの管理者に確実に認識されるようになります。解決に3日かかった停止。
データベースの定期的なヘルスチェックを実施する
MySQL DBAの場合、データベースの定期的なヘルスチェックをスケジュールすることは、データベースを自分でスケジュールすることとほぼ同じくらい重要です(注:これは、延期している物理的なものの予約をするためのリマインダーです!)。
人と同様に、すべてのデータベースに同じメンテナンスニーズがあるわけではないため、ヘルスチェックはデータベースの特定の機能要件に合わせて調整する必要があります。たとえば、ミッションクリティカルまたはライフクリティカルなデータベースは、クリティカルでないデータベースよりも頻繁にチェックする必要があります。ミサイル防衛システムの失敗は、地元の書店の頻繁な顧客報酬プログラムの失敗よりもはるかに厳しい影響を及ぼします。
定期的なヘルスチェックを設定する場合、対処する必要のある進行中のMySQLの問題を特定するのに役立つ情報を提供することに焦点を当てるいくつかの領域があります。
MySQLの可用性
可用性は、追跡するための最も重要なメトリックです。データベースが利用できない場合、修正されるまで、これらのメトリックの残りを追跡する意味はあまりありません。 -mysqladmin -h 192.168.1.95 -u root -p statusを実行して可用性を確認し、問題がある場合は診断を開始します。
接続の失敗
失敗した接続の数を経時的に追跡することで、悪意のあるアクティビティを検出できるだけでなく、権限の誤用やパスワードの誤りなど、アプリケーション内の不吉なエラーを減らすことができます。
コマンドSHOWGLOBALSTATUS LIKE‘aborted_connects’を実行します。特定の期間にデータベースで中止された接続試行の回数を判別します。
エラーログ
エラーログの監視は、発生したエラーと、対処する必要のあるより大きな再発する問題を示す可能性のあるパターンがあるかどうかを確認するための優れた方法です。
InnoDBのデッドロック
MySQLのデッドロックは、別のトランザクションが他のトランザクションが必要とするリソースをロックしている場合に発生します。デッドロックは、処理とタイムアウトを遅くし、ユーザーを苛立たせます。 SHOW ENGINEINNODBSTATUSを使用します。デッドロックを見つけて解決します。
構成の変更
パフォーマンスの突然の低下は、さまざまな原因によって引き起こされる可能性があります。ただし、最近の構成変更を確認し、パフォーマンスに悪影響を与えるものを調整することで、トラブルシューティングの時間を節約できます。
低速クエリログ
クエリが遅いと、CPUとメモリが過剰に使用されるため、データベースの実行が遅くなります。低速クエリログを定期的に確認して、クエリの実行時間が長すぎるかどうかを判断し、トラブルシューティングを行って根本原因を特定して修正します。
MySQLのパフォーマンスの問題の根本原因を理解するために可視性を維持する
MySQLデータベースで定期的なヘルスチェックを実施することは、高可用性を維持し、慢性的なパフォーマンスの問題を最小限に抑えるために不可欠ですが、システム全体のトラブルシューティングに対するヘルスチェックの有用性にはいくつかの制限があります。
定期的なパフォーマンスの問題は定期的なヘルスチェック中に表示されない場合があるため、MySQL環境に対する継続的な可視性を確立することが重要です。パフォーマンスの問題をすばやく特定して解決することは、ダウンタイムが減り、ユーザーに悪影響を与えるパフォーマンスの問題が減ることを意味します。
MySQLデータベースシステムの可視性を維持するための最良の方法の1つは、重大なイベントのアラートを設定して、しきい値を超えたときに迅速に対応し、問題の根本原因に到達できるようにすることです。
少なくとも、パフォーマンス低下の次の一般的な原因に対してアラートしきい値を設定する必要があります。
- ベースラインのMySqlパフォーマンスメトリックからの大幅な逸脱
- 高いCPU使用率
- クエリのレイテンシ
- クエリエラー
- 接続制限
- バッファプールの使用法
パフォーマンスの問題をすばやく特定して解決する
小規模で静的な環境で社内スクリプトを使用してパフォーマンスの追跡を回避できる場合がありますが、スクリプトは、絶えず成長している大規模で動的なシステムに対応するために必要なプロアクティブな監視に取って代わるものではありません。
ほとんどすべての状況で、問題が重大な問題を引き起こす前に、問題を迅速に特定して解決するには、商用データベース監視ツールが最善の策です。
市場には多くのパフォーマンス監視ツールがあり、さまざまな価格で幅広い機能を提供しています。組織に適したツールを選択することで、予算に合った価格で特定のニーズに最適なツールを選択できます。
万能のツールはありませんが、検討しているパフォーマンス監視ツールで探す必要のある重要なデータベース監視機能がいくつかあります。
- スケーラビリティ
- モバイルモニタリング
- 直感的なUI
- 予算にやさしいが機能が豊富
- 接続キャップなし
- 多次元ワークロード分析
- アラームの根本原因分析
- ブロッキング分析
- スマートアラーム
- 履歴データの追跡