1. ホーム
  2. 研究日誌
  3. 【Hinemos】定期的な内部DB再構成で性能を維持しよう

STUDY研究日誌

Hinemosをはじめ、
様々な技術のノウハウを発信しています。

【Hinemos】定期的な内部DB再構成で性能を維持しよう

投稿日: / 更新日:

■はじめに

こんにちは。

Hinemosでは、定期的・非定期に実施すべきメンテナンス運用として、
「再起動」「内部DBの再構成」「内部DBのバックアップ」を推奨しております。

今回この記事では、メンテナンス運用の一つである内部DBの再構成について、
ご紹介させていただきます。

 

1. DBの再構成とは

1.1. 概要

DBの再構成とは、Hinemosのメンテナンス運用の一つであり、
これを行うことで不要領域(使用されていない確保領域)をシステムが再利用できるように
開放することが可能です。

1.2. なぜ定期的なDBの再構成が必要なのか

Hinemosではクライアントから実施した設定情報や障害イベントなどは
マネージャの内部DBに格納します。

Hinemosではデータベース内の不要なデータの削除で不要なデータを削除しても、
データベースに割り当てられているディスク領域は開放されないため、
Hinemosのデータベースで使用されているディスク領域のサイズは変わりません。
このため、この領域を開放してシステムから再利用可能にするためには、
データベースを再構成する必要があります。

また、内部DBへの更新、削除などの処理が頻発すると、データファイルが肥大化したり、
インデックス構造のバランスが崩れることで参照性能が劣化する場合があります。

そのため、定常的な運用の中や内部DBのサイズが急激に変化するようなイベントが
発生したあとにDBを再構成する事で、Hinemosの参照性能を改善する事ができます。

1.3. 実施契機

DBの再構成は、データファイルのフラグメンテーション(特にインデックス)などによる
性能低下を避けるため、3~6ヶ月に1度を目安に定期的に行うことを推奨いたします。

また、以下に該当する場合もデータベースの再構成を推奨します。

 ・内部DBのディスク使用率が極端に上がるような障害イベント発生時
   例)監視対象での障害発生等により大量の通知が発生した
 ・履歴情報削除機能(メンテナンス機能)などによる大量の履歴を一括して削除した後
   例)不必要となったログ情報を大量に削除した
 ・Hinemosマネージャのパフォーマンスが低下した

 ※再構成の実施契機については、通常運用時のイベント発生量やジョブセッションの数、
  及び、サーバスペックに大きく依存します。
  適切な実施契機については、プロジェクト個別に検討してください。

 

2. DB再構成の注意事項

2.1. [実施前] 作業領域(空き容量)の確保

内部DB再構成では、既存のデータファイルから新たなデータファイルにコピーしながら
再構成するため、データベースファイル( /opt/hinemos/var/data/ )が格納されている
ファイルシステム上に十分な空き領域が必要となります。

作業領域として、現在のデータベースサイズ(/opt/hinemos/var/data/配下のファイルサイズ)の
2倍以上の空き領域を確保しておくことを推奨します。

2.2. [実施時] 他処理への影響とオプションの指定

オプションを指定せずにデータベースの再構成を実施した場合、
再構成を行っているテーブルに対して他処理(Hinemosマネージャなど)で60秒を超える
トランザクションが発生していると、他処理のトランザクションが強制停止され、
実行されていた他処理が失敗する可能性があります。

長時間終了しないトランザクションが発生している状況でデータベースの再構成を
実施する場合は -Tオプションの付与を推奨します。

 

3. DB再構成の実行手順

メンテナンススクリプトを使用したデータベース再構成の実行手順を説明します。

  1. OSのコンソールで、以下のメンテナンススクリプトを実行します。

# /opt/hinemos/sbin/mng/hinemos_cluster_db.sh

  ▽主な実行オプション(必要に応じて指定)
   ・指定した内部テーブルのみを再構成する場合
    # /opt/hinemos/sbin/mng/hinemos_cluster_db.sh -t [内部テーブル名]

   ・他処理のトランザクション待機時間を指定する場合(単位:秒)
    # /opt/hinemos/sbin/mng/hinemos_cluster_db.sh -T [待機時間(秒)]

   ※ -T オプションで指定した時間が経過した場合、対象テーブルに対する再構成はスキップします。

  2. パスワードを入力してEnterキーを押します。

  3. データベースの再構成処理が開始され、完了メッセージが出力されたことを確認します。

メンテナンススクリプト実行例

メンテナンススクリプト実行例

 

■おわりに

この記事では、メンテナンス運用として重要な「内部DBの再構成」についてご紹介しました。
定期的な内部DBの再構成は、パフォーマンス低下を予防し、安定したシステム運用を保つために効果的です。
本記事が皆さまの運用の参考になれば幸いです。
注意事項や手順をご確認のうえ、ぜひ定期的な実施にお役立てください。

関連する記事

Hinemos導入はアトミテックにお任せください

見積もりを依頼する

最新情報発信中

Xやメルマガでも、Hinemosの保守、
開発、導入、構築やカスタマイズ等の
お役立ち情報を発信しています。
是非ご登録ください。