PowerGres

技術情報 | PowerGres体験記 | 第 3 回 実践!!システム構築 (Windows 編) – 高信頼化ソリューション

このページに記載の情報は、2005 年にリリースした PowerGres Plus V2 を対象としています。PowerGres Plus V2 の販売はすでに終了しています。

PowerGres Plus の最新バージョンに関する情報は、製品紹介ページまたは PowerGres 体験記ページを参照してください。

第 3 回 実践!!システム構築 (Windows 編) 『Windows でシステムの簡単な構築を実現!!』

はじめに

第 2 回目では、Linux でシステムを構築する手順について説明しました。 Windows でも Linux と同様に OS の機能を利用してシステムを簡単に構築することができます。 その機能を十分理解している方はすでに Windows でサーバを簡単に構築されていると思います。

PowerGres Plus では、Linux と同じようにシステムのスケジューリング機能を利用して、Windows で簡単にバックアップやシステムの監視を行うことができます。 システムの監視結果は、データベースの状態を指定した時間にレポートとして出力することができるだけでなく、データベースに異常があった場合は管理者にメールを送信し、異常を伝えることができます。

第 3 回では、PowerGres Plus のバックアップや監視機能を Windows のスケジューリング機能と組み合わせ、システムを簡単に構築するポイントを紹介します。

最初に、第 2 回でお約束した通り、異常を検出した場合の対処について説明します。

異常を検出した場合の対処

第 2 回で説明したとおり、データベースに異常が発生した場合は以下のような情報をシステム管理者は受け取ることができます。

==============================================
PowerGres Plus Report.(2005/11/09 14:13:29)
==============================================
[Host Name/Port No.] Server1/5432
[STATUS] Abnormal(Database)

異常の内容は、システムカタログと呼ばれる表に格納されているので、監視用のスクリプト (Linux) や、バッチファイル (Windows) で詳細情報を出力するように修正すると、詳細な原因を示す情報を確認することができます。 例えば、データベーススペースに異常が発生しているかどうかを検索する場合には以下のような SQL 文で検索できます。

SELECT cause, dbspacename,device from pgx_dbspaces where STATUS='INH' ;

データベーススペースの情報は、表「pgx_dbspaces」に設定されています。 以下の情報を参照することができます。

cause 異常が発生したとき、その原因を意味するコードが設定されます。
dbspacename データベーススペース名
device データベーススペースが割り当てられているファイルパス
status データベーススペースの状態が以下の 2 種類のコードで設定されます。
  • 「NOR」正常
  • 「INH」異常

以下のように結果が表示されます。

     Cause    dbspacename     device
-------------------------------------------------------------------
HER       dbsamplespace   d:\PlusDbspace\postgres\dbsamplespace

(1Rows)

データベース以外の情報もシステムカタログに設定されています。 monitor.sh (Linux)、Monitor.bat (Windows) の環境変数「DBSPACES_SQL」、「SEQUENCES_SQL」、「TABLES_SQL」、「INDEXES_SQL」、「ARCHIVE_LOG_SQL」に設定している SQL 文を参照してください。

異常検出時の対処

図 1: 異常検出時の対処

スクリプト修正による詳細情報の出力

SQL 文を入力しなくても、monitor.sh (Linux)、または、Monitor.bat (Windows) のコメントをはずすだけで、同様の情報を調べることができます。 スクリプトの修正方法は、今回の「システム構築の実践」で説明しています。 コメントをはずすと先ほどの SQL 文の結果と同等の内容が以下のように出力されます。

-------------------------------------------------------------
Cause Resource Name(Kind/Name)
-------------------------------------------------------------
HER  DBSPACE/dbsamplespace(device=d:\PlusDbspace\postgres\dbsamplespace)

上記の例では、Cause に「HER」と表示され、データベーススペース「dbsamplespace」にハード障害が発生していることが表示されています。 ただし、ハード障害を意味する種別は、デバイス異常が発生している場合と、オペーションミスなどにより、システムにログインしてデータベースの資産を削除してしまった場合にも発生します。 以下のような確認を行なってください。

また、ハード障害以外に以下の異常が通知されます。

運用の概要

今回は、Windows システムで実際にシステムを構築した例を説明しますが、どのような運用を行うかを PowerGres Plus の機能紹介と合わせて説明します。

定期的なバックアップ

PowerGres Plus では、「pgx_dmpall」コマンドと、Windows の「タスク」を組み合わせ、定期的なバックアップを行うことができます。

定期的なバックアップ

図 2: 定期的なバックアップ

状態監視

PowerGres Plus では常にデータ管理 (ディスクのチェック) を行っているため、ディスクに異常があった場合、その部分をマーキングして、アクセスしないようにします。 これにより、壊れたディスクにアクセスして業務が停止したり、データが破壊されることを防ぎます。

異常が発生したかどうかは、イベントビューアのログを参照することで確認することができます。

さらに、タスクと組み合わせて、データベースの状態を、定刻にレポートで提出したり、異常が発生した場合にメールで、異常を管理者に通知することができます。

状態監視によるレポート出力

図 3: 状態監視によるレポート出力

システム構築の実践

実際にバックアップ、監視機能を「タスク」でスケジューリングする例を以下に示します。

バックアップのスケジューリング

pgx_dmpall コマンドを毎週日曜日の 2 時 1 分に行うように Windows の「タスク」で設定します。 これでバックアップ処理を簡単にスケジューリングすることができます。

バックアップのスケジューリング

図 4: バックアップのスケジューリング

タスクの設定例

以下にタスクに設定する例を記述します。

  1. コントロールパネルタスクスケジュールされたタスクの追加 を選択します。 次へ ボタンをクリックします。

  2. 登録するプログラムを選択します。 参照 ボタンをクリックして、pgx_dmpall.exe を選択します。

  3. タスクを実行する単位として、週単位 を選択して、次へ ボタンをクリックします。

  4. 開始時間 2:01、間隔 1 週間に一回、曜日 日を入力して、次へ ボタンをクリックします。

  5. 実行ユーザの情報を入力します。 ここではインスタンス管理者を入力します。

  6. 次へボタンを押して、完了 ボタンをクリックします。 以下のように、タスクが追加されます。

  7. pgx_dmpall を選択し、ポップアップメニューを選択し、実行コマンドの後ろに、バックアップを行うインスタンスディレクトリをオプションとして指定します。 ここでは、インスタンスディレクトリは、D:\PlusData\postgres と仮定します。

定時レポートの出力

PowerGres Plus は、常にデータベースの状態を監視し、システムカタログにその情報を蓄えています。 そのシステムカタログの内容を参照することで、定刻にレポートを出力することができます。

参照システムカタログ

pgx_dbspaces データベーススペース
pgx_sequences シーケンス
pgx_tables テーブル
pgx_indexes インデックス
pgx_archive_log アーカイブログ

上記のテーブルの「status」カラムを参照することで、各リソースに異常が発生しているかどうかを判断することができます。

以下の 2 つのファイルを使用して行います。

Monitor.bat 監視バッチファイル
SendMail.vbs メールを発信する Visual Basic スクリプト

ファイルの配置

上記のファイルを同じディレクトリに配置します。 今回は、「C:\powergresplus_monitor」に配置します。

環境変数の設定

Monitor.bat ファイルの環境変数を自分のシステムに合わせて設定します。

PGUSER="ユーザ名"
PGPORT="5432"
LOG_DIR="C:\TEMP"

※ LOG_DIR に指定した、ディレクトリは事前に作成しておく必要があります。

テスト

バッチファイルは、単独で実行可能ですので、Monitor.bat を実行し、結果を確認します。 以下のように C:\TEMP\monitor.log に出力されます。 メール発信を抑制したいときは、Monitor.bat の「NOTICE_OPTION」の値を 2 に設定してください。

==============================================
PowerGres Plus Report.(2005/11/09 14:13:29)
==============================================
[Host Name/Port No.] Server1/5432
[STATUS] Normal
==============================================

[STATUS] には、以下のように情報が表示されます。

正常終了時 [STATUS] Normal
異常終了時 [STATUS] Abnormal(種別)

※種別には、以下の 3 種類があります。

Database データベースに異常があった場合
Backup バックアップに異常があった場合
Database and Backup データベース、バックアップ両方に異常があった場合

タスクの設定例

以下にタスクに設定する例を記述します。 監視用バッチファイルを毎時 30 分になると実行する例です。 タスクには、毎時を指定する機能がないため、毎日、0:30、1:30、と24 回設定する必要があります。

Monitor.bat には、パラメタとしてデータベース名を指定する必要があるので、バックアップのスケジューリングのように実行プログラムのパラメタとしてデータベース名を指定する必要があります。

例えば、データベース名 dbsample の場合は以下のように実行します。

C:\powergresplus_monitor\Monitor.bat dbsample

異常通知

異常を検出するバッチファイルをタスクに設定する例を説明します。 以下の 2 つのファイルを同じディレクトリに配置します。

Monitor.bat 監視バッチファイル
SendMail.vbs メールを発信する Visual Basic スクリプト

ファイルの配置、環境変数の設定は、「定時レポートの提出」と同じです。

監視機能のスケジューリング

図 5: 監視機能のスケジューリング

詳細情報を出力するようにする

Monitor.bat の 387 行目から、405 行目が詳細情報を出力する部分です。 この間のコメント (REM) を取り除くことで詳細情報が出力されます。

メールの通知先の変更

SendMail.vbs のサンプルのメールアドレスを実際に使用するメールアドレスに変更します。 変更箇所は、「バッチファイルの修正による応用」に詳細を記述してあります。

出力結果

異常が検出されると以下のように monitor.log に出力され、メールが発信されます。

==============================================
PowerGres Plus Report.(2005/11/09 14:13:29)
==============================================
[Host Name/Port No.] Server1/5432
[STATUS] Abnormal(Database)

-------------------------------------------------------------
Cause Resource Name(Kind/Name)
-------------------------------------------------------------
HER  DBSPACE/dbsamplespace(device=d:\PlusDbspace\postgres\dbsamplespace)
=============================================================

上記の例では、データベーススペース「dbsamplespace」に異常があることが通知されています。 データベーススペースが割り付けられているファイルパスは、データベーススペース名の後ろに記述されています。

補足

タスクの設定例

以下にタスクに設定する例を記述します。 監視用バッチファイルを毎時 30 分になると実行する例です。

バッチファイルは、すべて同一ディレクトリに配置する必要があるので、今回は以下のディレクトリに格納します。

C:\powergresplus_monitor

設定方法は、定時レポート出力 と同じです。

バッチファイルの修正による応用

バッチファイルの内容は、第 2 回とほぼ同じであるため、メール発信の宛先変更のポイントなどを説明します。

メール発信あて先の変更

メール発信のあて先は、SendMail.vbs の 17 行目で以下のように設定されています。

strFromAddress="kanri@example.com"
strToAddress="kanri@example.com"

このメールアドレスを以下のように変更することで、powergres_manager@sample.fujitsu.com というインスタンス管理者のメールアドレスに、powergres_monitor@sample.fujitsu.com というメールアドレスから、送信することができます。

strFromAddress="powergres_monitor@sample.fujitsu.com"
strToAddress="powergres_manager@sample.fujitsu.com"

その他の修正のポイント

Monitor.bat、SendMail.vbs で「(必須)」と記述されている環境変数への値の設定が変更のポイントとなります。 詳細は、各ファイルの内容を参照してください。

最後に

PowerGres Plus の機能により、バックアップ、システムの監視をスケジューリングする方法について紹介しました。 PowerGres Plus のバックアップや監視機能と Windows の「タスク」を組み合わせて使用しているため、専用のアプリケーションを作成したり、別途スケジューリングソフトを用意する必要はなく、システムを簡単に構築することができます。 前回説明した Linux 同様、Windows でもシステムを簡単に構築できることを、ご説明しました。

製品・サービスに関するお問い合わせ
03-5979-2701

お問い合せ受付時間 月 - 金 10:00 - 17:00

メールフォームでのお問い合わせ

ページトップへ