desknet's CAMSのデータシート等の機能では、お客様によって保存するデータを任意にカスタマイズすることが可能となっており、追加できる項目として「添付ファイル」形式の部品も用意されています。この「添付ファイル」の部品をテーブルから削除した場合や、添付ファイルを管理しているテーブルごと削除した場合などは、不要領域が残ってしまうため、「vacuumlo」コマンドにて不要領域の削除を行います。
PostgreSQLデータベースから、不要となった添付ファイルのデータを削除するため、以下の手順で処理を実行します。
コマンドプロンプトからの手動での実行と、atコマンドによる自動実行を行うことができます。
実行方法については、以下の手順をご参照ください。 |
|
手動で実行する場合の手順 |
サーバー上で[スタート]−[すべてのプログラム]−[アクセサリ]−[コマンドプロンプト]をクリックし、コマンドプロンプトを起動します。
PostgreSQLへのコマンドを実行可能とするように、環境変数の設定を行います。 |
[環境設定] |
set PATH= C:\Program Files\PostgreSQL\8.3\bin
@ A B |
|
説明:
@ 環境変数をセットするためのコマンドです。
A 設定対象の環境変数です。
B PostgreSQLのコマンド群がインストールされているフォルダを指定します。
(desknet's CAMSのインストーラにて標準インストールされた場合など、デフォルトは上記のようになります。)
|
次に、PostgreSQLより不要な添付ファイルデータの削除処理を行います。 |
|
[vacuumloの実行] |
vacuumlo -U postgres camsdb
@ A B C |
|
説明:
@ 不要なデータを削除するためのコマンドです。
A データベースの管理ユーザーを指定します。
※desknet's CAMSと一緒にPostgresSQLをインストールされた場合は、“postgres”と
なります。
手動でインストールされたお客様におかれましては、お使いの環境に応じてPostgreSQLの管理者権限のある
ユーザーを指定してください。
B 対象となるデータベースです。変更の必要はありません。
|
|
vacuumloコマンドを実行する際に、パスワード認証を求められます。
desknet's CAMSのインストーラーからPostgreSQLをインストールしていただいた場合は、パスワードは”postgres”となります。パスワードを変更された場合、もしくは手動でインストールされたお客様におかれましては、お使いの環境に応じてパスワードを入力してください。
以上で、不要な添付ファイルデータの削除は終了となります。 |
|
この作業は、頻繁に行っていただく必要はありません。ただし、データベースのバックアップを行う場合や、添付ファイル項目の削除もしくはテーブルの削除を行われた際には、実行することをお奨めします。 |
|
自動で実行する場合の手順 |
以下の設定を行うことで、不要な添付ファイルデータ領域の削除処理を自動的に実行することができるようになります。 |
|
1) 認証用パスワードファイルの作成 |
desknet’s CAMSのインストール先のフォルダ(IISの場合、“C:\Inetpub\Scripts\cams”)配下に、“pgpass.conf”というファイルを作成します。 Windows付属の「メモ帳」等のテキストエディタを起動し、“pgpass.conf”を開きます。
開いたファイルに、以下の一行を追加します。 |
|
[pgpass.confの内容] |
localhost:5432:camsdb:cams:dncamsus
@ A B C D |
|
説明:
@PostgreSQLのインストール先のホスト名です。
APostgreSQLへ接続する際に使用するポート番号です。
Bデータベース名です。CAMSデータベースの名前(camsdb)を指定します。
Cユーザー名です。変更していない場合は“cams”です。
DCで指定したユーザーのパスワードです。変更していない場合は“dncamsus”です。
ファイルへの追加が完了したら、ファイルを保存してください。 |
|
2) バッチ(.bat)ファイルの作成 |
Windows付属の「メモ帳」等のテキストエディタを起動し、PostgreSQLのバキューム処理を起動するバッチファイル“cmsvacuum.bat”をdesknet’sCAMSがインストールされているフォルダに作成します。
Windows付属の「メモ帳」等のテキストエディタを起動し、“cmsvacuum.bat”を開いて、以下の二行を追加します。 |
|
[cmsvacuum.batの内容] |
set PGPASSFILE=C:\Inetpub\Scripts\cams\pgpass.conf
C:\Program Files\PostgreSQL\8.3\bin\vacuumlo.exe” -U cams camsdb |
|
1行目の説明:
set PGPASSFILE=C:\Inetpub\Scripts\cams\pgpass.conf
@ A B
@ 環境変数をセットするためのコマンドです。
A 設定対象の環境変数です。
B 先に説明したパスワードの設定ファイルを指定します。 |
|
2行目の説明
“C:\Program Files\PostgreSQL\8.3\bin\vacuumlo.exe” -U cams camsdb
C D E
C PostgreSQLのVACUUMを実行する実行ファイルまでのフルパスです。
D ユーザー名です。変更していない場合は“cams”です。
E バキューム対象のデータベースです。CAMSデータベースの名前(camsdb)を指定します。 |
|
3) atコマンドの登録 |
Windowsの機能であるatコマンドを利用して、定期的にバキュームを実行させるようにします。
サーバー上で[スタート]−[プログラム]−[アクセサリ]−[コマンドプロンプト]をクリックし、コマンドプロンプトを起動します。 |
Windows付属の「at」コマンドを実行します。 |
|
【atコマンドの説明】
at 00:00 /every:M,T,W,Th,F,S,Su C:\Inetpub\Scripts\cams\cmsvacuum.bat
@ A B |
説明:
@ 「B」に指定したコマンドが実行される時間です。
A 「B」に指定したコマンドが実行される曜日です。
B 「@」、「A」で指定された曜日の時間に実行されるコマンドです。 |
※上記の例では、毎日(月、火、水、木、金、土、日)深夜0時にC:\Inetpub\Scripts\camsにある「cmsvacuum.bat」が実行されます。 |
|
正常に実行されると「新しいジョブをジョブID=XXで追加しました。」というメッセージが表示されます。これで登録は完了です。サーバー上で指定した曜日の指定した時間に、「cmsvacuum.bat」が実行されるようになります。 |
|
※コマンドプロンプトよりatコマンドを実行した際に、“サービスが開始されていません。”
というエラーメッセージが表示された場合は、[コントロールパネル]→[管理ツール]→[サービス]より、サービス一覧にて“Task Scheduler”を選択します。もし、“Task Scheduler”の状態欄が“開始”となっていない場合は、[サービスの開始]をクリックしてサービスを開始し、再度atコマンドへの登録を行ってください。 |
Windows付属の「タスクマネージャ」を起動し、「プロセス」一覧を表示します。
指定した時間になって、一覧に「vacuumlo.exe」が存在していれば正常に起動ができています。
以上で、定期的なバキューム処理のスケジューリングは完了です。 |
尚、ここでVACUUMの自動実行をatコマンドで登録された場合、desknet's CAMSのアンインストール時に、atコマンドの解除を行っていただく必要があります。詳細については、以下「atコマンドの解除」をご参照ください。 |
|
atコマンドの解除 |
スケジュールされたジョブを削除する場合は、サーバー上で[スタート]−[プログラム]−[アクセサリ]−[コマンドプロンプト]よりコマンドプロンプトを起動し、スケジュールの登録時に実行した「at」コマンドに削除オプションをつけて実行します。 |
|
【atコマンドの説明】
at XX /delete
@ A |
説明:
@ スケジュールの登録に成功し、「ジョブID=XXで追加しました。」と表示された際の「XX」の値を指定します。省略した場合は、すべてのスケジュールが削除されます。
A 削除する際のオプションです。 |
※「at」コマンドをオプション指定なしで実行すると、スケジュールが一覧表示されます。 |
|
状態 ID 日付 時刻 コマンド ライン
---------------------------------------------------------------------------------------------------------------
10 毎 月曜日 火曜日... 00:00 C:\Inetpub\Scripts\cams\cmsvacuum.bat
--------------------------------------------------------------------------------------------------------------- |
※上記の場合、「10」がatコマンドのIDになります。 |
|
一覧表示されたスケジュールから、コマンドラインにて「cmsvacuum.bat」が表示されている行のID列の値が削除対象のIDとなり、「at」コマンドにて削除を実行する際の@に指定する値となります。上記の場合、「10」が削除対象のIDです。 |
|
|