(Photo by:Bruno Cordioli)
予防保全、というのは予め起こりうる障害や事故を予想して早めに対策を行い、障害や事故を回避する事である。現在、アプリケーションに関する予防保存はかなり浸透してきたが、データベースに関する予防保全に関しては、
あまり意識されていない。発生した障害をモグラ叩き式に解消する運用を行っている会社が多いようだ。しかし、予防保全策を行う事により、未然に障害を防ぎ、ビジネス継続性を高められる事が多い。
例えば、突出して待機時間が長いイベントを調べたところ、処理競合が発生している事が判明する事がある。その場合、トランザクションの範囲を少なくする等により、デットロックエラーを回避する事ができるのである。
実際、データベースで発生しうる障害の多くは計画的な予防保守を行う事で、予め防止する事ができる。又、効果的な運用設計により、起こってしまった障害の復旧までの時間の短縮化を見込める。本記事では、「問題の可視化」及び「運用設計の強化」により、防げる障害の発生を防ぐ運用について考えてみたい。
データベースの運用の[問題の可視化]
データベースの運用では、運用項目の網羅性が必要である。運用項目は大まかに下記8つの領域に分類されるので、まずは、自社のデータベース運用でどの領域が弱いかの把握から始めたい。
- ① サービスレベル管理:サービスレスポンスタイムの目標値等を定め、その目標値に達するための管理を行う等
- ② 定常監視:死活監視やリソース使用状況のチェック等
- ③ 構成管理:システム構成の管理等
- ④ キャパシティ管理:業務量の増加に応じて、プロセス数の上限設定等
- ⑤ 分析/調査:問題の予兆が無いかの調査等
- ⑥ メンテナンス:計画的パッチ適用、断片化解消等
- ⑦ バックアップ/リカバリ:障害発生時の復旧のためのバックアップ取得及びリカバリ手順の整備等
- ⑧ セキュリティ管理:セキュリティ要件の策定、監査ログの取得/精査等
(Photo by:NEC Corporation of America)
では、どのように網羅性を把握するかであるが、OracleやMicrosoft等の大手のベンダーからは運用上の推奨作業項目のリスト出されているので、それらを元に自社はどの項目ができていて、どの項目ができていないか、の可視化から始めるのが良いだろう。
データベースの運用の[運用設計の強化]
「問題の可視化」を行い未実施項目が判明したら、次にシステムの重要性や運用体制を考慮し、未実施項目の実施の要否を検討する。もちろん、全ての未実施項目を実施する事が望ましいのだが、予算や他業務との関連で、それは難しい。そのため、下記の様な一般的にポイントとなる個所を抑え、漏れなく必要最小限に行う事が望ましい。
- 1) 網羅的かつ必要最小限で行う:例えば定常監視であれば、網羅的に監視する一方で重要でないアラートの発生を減らし、クリティカルなエラーの見落としを防止する等、できるだけ少ない努力で効果を上げる工夫を行う。
- 2) 自動化:ツール等で自動化できるものは極力自動化し、オペレーションミスを減らす。
- 3) 作業手順書の作成:実施が想定される作業については作業手順書を作成し、属人性を減らすと共に作業のばらつきを抑止する。
- 4) 定期的な見直し:最新の運用状況とあるべき運用設計が剥離していないかを確認する。
以上、データベース運用の予防保全について述べたが、まずは「問題の可視化」から行いたい。自社の運用の弱点を認識し、それに対する対応を行う事により、安定的な運用保守が可能となるのである。
本ブログは、Git / Subversionのクラウド型ホスティングサービス「tracpath(トラックパス)」を提供している株式会社オープングルーヴが運営しています。
エンタープライズ向け Git / Subversion 導入や DevOps による開発の効率化を検討している法人様必見!
「tracpath(トラックパス)」は、企業内の情報システム部門や、ソフトウェア開発・アプリケーション開発チームに対して、開発の効率化を支援し、品質向上を実現します。
さらに、システム運用の効率化・自動化支援サービスも提供しています。
”つくる情熱を支えるサービス”を提供し、まるで専属のインフラエンジニアのように、あなたのチームを支えていきます。
No Comments