Cisco Service Control Management Suite Collection Manager ユーザ ガイド Rel. 3.1
データベースおよび CSV リポジトリ の管理
データベースおよび CSV リポジトリの管理
発行日;2012/02/04 | ドキュメントご利用ガイド | ダウンロード ; この章pdf , ドキュメント全体pdf (PDF - 600KB) | フィードバック

目次

データベースおよび CSV リポジトリの管理

一般的なデータベース管理タスク

データベース テーブルのリスト化

古いレコードの定期削除の管理

定期削除の設定

定期削除コンフィギュレーション ファイルの適用

バンドルされたデータベースの管理

テーブルの削除

古いレコードの削除

データベースのバックアップ

データベースの復元

IP アドレスが変更された Sybase のアップデート

CSV リポジトリの管理

CSV リポジトリのファイル構造

CSV ファイル リポジトリの設定

カンマ エスケープの設定

プリント不可能文字のエスケープ設定

データベースおよび CSV リポジトリの管理

この章では、ユーティリティ スクリプトを使用して Collection Manager(CM)データベースおよび CSV リポジトリを管理する方法について説明します。

ほとんどのデータベース管理タスクは、バンドルされた Sybase データベースにのみ適用可能です。


) ユーティリティ スクリプトの一般的な使用手順については、「ユーティリティ スクリプトの使用法」を参照してください。


「一般的なデータベース管理タスク」

「バンドルされたデータベースの管理」

「CSV リポジトリの管理」

一般的なデータベース管理タスク

サポート対象のすべてのデータベースに適用可能なデータベース管理タスク

データベース テーブル リストの生成

古いファイルの定期削除に対するスケジュールの定義と適用

データベースに格納されているすべてのレコードに、Cisco Server Control Management Suite(SCMS)CM が Raw Data Record(RDR)を受信した時間を示すタイムスタンプが与えられます。このタイムスタンプは、データベース テーブルにさまざまなメンテナンス処理を実行する場合に使用します。

データベースの設定および維持に使用するスクリプトは、次のとおりです。

~scmscm/scripts/dbtables.sh

~scmscm/scripts/dbperiodic.py

~scmscm/db_maint/create_periodic_del_procs.sh

データベース テーブルのリスト化

データベース内のすべてのテーブルをリスト化するには、 dbtables.sh スクリプトを使用します。

~scmscm/scripts/dbtables.sh
 

適用可能な場合、テーブル内の行数と最古および最新のタイムスタンプが表示されます。

テーブルの実際の内容は Cisco Service Control Application(SCA)Reporter を使用して表示することができます。詳細については、『 Cisco Service Control Application Reporter User Guide 』を参照してください。

次の表は、 dbtables.sh のスクリプト オプションについてまとめたものです。

 

表5-1 dbtables.sh オプション

オプション

説明

-l

既存のテーブル名のみを表示します(統計情報なし)。

-a

リスト内の非レポート テーブルを含みます。

-f

JDBC ではなくクライアントを使用して、高速回線カウントをイネーブルにします。


) バンドルされた Sybase データベースにのみ適用可能です。


-t { sec_num }

応答に対する最大待機時間(秒)です。デフォルトは、タイムアウトなしです。

-h

このヘルプ メッセージを出力し、終了します。

次に、 dbtables.sh の出力例を示します。

>~scmscm/scripts/dbtables.shExecuting query ...
name| num_lines| min_time| max_time|
----------------+--------+------------------------+------------------------+
RPT_SUR| 131000| 2006-10-30 16:46:42.24| 2007-02-15 12:00:32.216|
RPT_LUR| 170000| 2007-04-10 15:25:45.31| 2007-04-11 07:06:05.45|
RPT_VLUR| 4694| 2007-04-11 13:12:39.683| 2007-04-11 13:18:07.396|
RPT_PUR| 116000| 2007-04-09 04:45:55.566| 2007-04-11 07:44:09.186|
RPT_TR| 57766| 2007-04-11 13:12:39.683| 2007-04-11 13:18:07.396|
RPT_MALUR| 109000| 2007-04-09 04:46:35.903| 2007-04-09 13:32:18.42|
RPT_MEDIA| 120000| 2007-04-05 17:14:24.443| 2007-04-11 13:16:29.436|
RPT_TOPS_PERIOD0| 194250| 2007-03-18 20:00:00.01| 2007-04-23 06:00:00.16|
RPT_TOPS_PERIOD1| 46940| 2007-03-19 00:00:00.05| 2007-04-23 00:00:00.1|

古いレコードの定期削除の管理

古いレコードの定期削除を管理するには、次の一般的な手順を実行する必要があります。

CM のインストール時に定期削除手順がインストールされていない場合は、インストールします。

scmscm ユーザとしてログオンし、CM を起動して、データベース テーブルが作成されるまで 1 ~ 2 分待機して、次のスクリプトを実行します。

~scmscm/db_maint/create_periodic_del_procs.sh.
 

定期削除コンフィギュレーション ファイルを編集します。

dbperiodic.py ユーティリティ スクリプトを使用して新規設定を適用します。

直前の削除期間がまだ終了していない場合は、テーブルの定期削除は実行されません。これにより、データベースに過度の負荷がかかって、アダプタの挿入パフォーマンスが低下することがなくなります。

同時に複数のテーブルが削減されるようにスケジューリングされている場合は、定期削除コンフィギュレーション ファイルに記述された順番にテーブルが処理されます。

設定を簡素化するために、1 つのスケジュールですべてのテーブルを連続的に定期削除するようスケジューリングすることもできます。


) すべての定期削除アクティビティは、システム ログ ファイル(/var/adm/messages )に記録されます。



) MySQL データベースを使用している場合、定期削除はバージョン 5 でのみサポートされます。


「定期削除の設定」

「定期削除コンフィギュレーション ファイルの適用」

定期削除の設定

定期削除コンフィギュレーション ファイル( dbperiodic.conf )は、デフォルトで ~scmscm/db_maint/ にあります。このファイルの構造は INI ファイルと似ています。セクションごとに、特定のテーブル セットに対して特定のデータ削減処理が記述されていて、指定されたスケジュールに従って削除処理が実行されます。


) ファイルを解析する場合、このファイルの各セクションの名前は使用されません。任意の名前を使用できます。


各セクションは、角カッコで囲まれたセクション名で開始し、次の表に示されたパラメータが続きます(コンフィギュレーション ファイルの各セクションにすべてのフィールドが必要なわけではありません)。パラメータおよびその値は等号(=)で区切ります。以下のテーブルに、定期削除コンフィギュレーション ファイルの例を示します。

 

表5-2 定期削除コンフィギュレーション ファイルのパラメータ

パラメータ名
説明
デフォルト

active

コンフィギュレーション ファイルのこのセクションを使用するかどうか

true/false

true

false

tablenames

このセクションが適用されるテーブルの名前

カンマで区切られたテーブルの名前、または*(すべてのテーブルを指定する場合)

*(すべて)

RPT_SUR、RPT_LUR

daystokeep

レコードを保持する日数

正の整数

14

30

minute

hour

day

month

コンフィギュレーション ファイルのこのセクションで削除を実行する時期

0 ... 59、*

0 ... 23、*

1 ... 31、*

1 ... 12、*

0 *

(すべて)*

(すべて)*

(すべて)

0

0、4、8、12、16、20

1

1、3、5、7、9、11


active および daystokeep を除くすべてのパラメータの値には、単一の値、カンマ区切り値のリスト、値の範囲(ダッシュで区切った 2 つの値)、またはすべての有効値を表すアスタリスク(*)を指定できます。tablenames には範囲を指定できません。


次の例では、すべてのフィールドがデフォルト値に設定されます。

# This dbperiodic.conf file emulates the legacy style for periodic
# deletion. All tables are processed every hour on the hour, and
# records are kept for 14 days.
[hourly all]
active = true
tablenames = *
daystokeep = 14
minute = 0
hour = *
 

次の例では、各テーブルにそれぞれ 10 日分のデータを残して、すべてのテーブルが午前 4:30 に削減されます。さらに、それぞれ 3 日分のデータを残して、リアルタイム テーブルが 1 時間おきに削減されます。

# This dbperiodic.conf file reduces all tables once a day and
# real-time tables once an hour.
[daily all]
active = true
tablenames = *
daystokeep = 10
minute = 30
hour = 4
[hourly real-time]
active = true
tablenames = RPT_SUR,RPT_LUR,RPT_PUR
daystokeep = 3
minute = 0
hour = *

定期削除コンフィギュレーション ファイルの適用

新規定期削除コンフィギュレーション ファイルをロードして適用したり、現在のファイルを表示したりするには、 dbperiodic.py スクリプトを使用します。

~scmscm/scripts/dbperiodic.py[--dump] [--load| --loadfile=path_to_dbperiodic.conf]
 

スクリプトを使用して新規コンフィギュレーション ファイルをロードするには、ファイルを解析し、妥当性を確認し、scmscm ユーザの crontab を更新して変更を反映させます。

 

表5-3 dbperiodic.py オプション

オプション
説明
--load

/export/home/scmscm/db_maint/ dbperiodic.conf から定期削除コンフィギュレーションをロードします。

--loadfile = path to periodic delete configuration file

指定されたファイルから定期削除コンフィギュレーションをロードします。

--dump

定期削除コンフィギュレーションを出力します。

--h

このスクリプトのオプションを表示します。

次に、現在の定期削除コンフィギュレーションを出力する例を示します。

~scmscm/scripts/dbperiodic.py --dump

) このスクリプトは、ロード済の定期削除設定を出力します。現在の定期削除コンフィギュレーション ファイルがまだロードされていない場合は、実際のコンフィギュレーションとこのファイルの内容が異なることがあります。


次に、 ~scmscm/db_maint/dbperiodic.conf から定期削除コンフィギュレーション ファイルをロードする例を示します。

~scmscm/scripts/dbperiodic.py --load
 

次に、指定場所から定期削除コンフィギュレーション ファイルをロードする例を示します。

~scmscm/scripts/dbperiodic.py --loadfile=path_to_periodic_delete_configuration_file

バンドルされたデータベースの管理

バンドルされたデータベースの管理には、次のものが含まれています。

テーブルの削除

テーブルからの古いレコードの手動削除

データベースのバックアップおよび復元

IP アドレスが変更された Sybase のアップデート

データベースに格納されているすべてのレコードに、Cisco Server Control Management Suite(SCMS)CM が RDR を受信した時間を示すタイムスタンプが与えられます。このタイムスタンプは、データベース テーブルにさまざまなメンテナンス処理を実行する場合に使用します。

バンドルされた Sybase データベースのみを維持するのに使用するスクリプトは、次のとおりです。

~scmscm/scripts/droptable.sh

~scmscm/scripts/prunetable.sh

~scmscm/scripts/sybback.sh

~scmscm/scripts/sybrestore.sh

テーブルの削除

データベースからテーブルを1つ、または現在のテーブルをすべて削除するには、 droptable.sh スクリプトを使用します。

~scmscm/scripts/droptable.sh[-f] tableParameter
 

 

表5-4 droptable.sh オプション

オプション

説明

table_name

データベースから table_name を削除します。

ALLTABLES

データベースからすべてのテーブルを削除します。

-f

強制的に削除します(応答プロンプトやエラー報告は表示されません)。

-h

このスクリプトのオプションを表示します。

次に、確認プロンプトを表示しないで、データベースからテーブル RPT_SUR を削除する例を示します。

~scmscm/scripts/droptable.sh -f RPT_SUR
 

次に、データベースからすべてのテーブルを削除する例を示します。

~scmscm/scripts/droptable.sh ALLTABLES
 

古いレコードの削除

レコードのタイムスタンプに基づいてデータベース テーブルからレコードを削除するには、 prunetable.sh スクリプトを使用します。

~scmscm/scripts/prunetable.sh[-f] num_days table_name
 

 

表5-5 prunetable.sh オプション

オプション

説明

num_days

削除 されない 最長保存期間(日数)

table_name

レコードが削除されるテーブル

-f

強制的に削除します(応答プロンプトやエラー報告は表示されません)。

-h

このスクリプトのオプションを表示します。

次に、テーブル RPT_SUR から、保存期間が 7 日を超えたすべてのレコードを削除する例を示します。

- f フラグが指定されていないため、確認プロンプトまたはエラー報告(またはその両方)が表示されることがあります。

>~scmscm/scripts/prunetable.sh 7 RPT_SUR

データベースのバックアップ

データベース内にある全テーブルのテキスト ファイル バックアップを作成するには、 sybback.sh スクリプトを使用します。

~scmscm/scripts/sybback.sh -d path_to_backup_directory
 

すべてのテーブルが ASCII ファイルに変換され、バックアップ ディレクトリに格納されます。

 

表5-6 sybback.sh オプション

オプション

説明

-d path_to_backup_directory

バックアップ テキスト ファイルを指定したディレクトリに書き込みます。

-h

このスクリプトのオプションを表示します。

データベースの復元

sybback.sh スクリプトから作成されたバックアップ ファイルからデータベースを復元するには、 sybrestore.sh スクリプトを使用します。

~scmscm/scripts/sybrestore.sh -d path_to_restore_directory
 

 

表5-7 sybrestore.sh オプション

オプション

説明

-d path_to_restore_directory

指定されたディレクトリ内のテキスト ファイルを使用してデータベースを復元します。

-h

このスクリプトのオプションを表示します。


sybback.sh スクリプト および sybrestore.sh は、Sybase の実行可能なバックアップ メカニズムではありません。これらは、マシン間で小さなテーブルを転送するなど、少量のデータのバックアップと復元を行うために設計されたものです。



) 実行可能なバックアップ メカニズムが必要な場合は、Sybase の Backup Server 製品のマニュアルを参照してください。


IP アドレスが変更された Sybase のアップデート

IP アドレスが変更された Sybase サーバは、アップデートする必要があります。root ユーザとして、次のコマンドを実行します。

~scmscm/setup/syb_interfaces.sh
 

CSV リポジトリの管理

ユーティリティ スクリプトを使用して、CM が出力した CSV ファイルのリポジトリを管理できます。これらのファイルは CSV アダプタによってディスクに書き込まれ、サービス プロバイダーの Operational Support System(OSS)またはサードパーティ製課金システムで使用されます。ディスク オーバーフローを防止するために、CSV リポジトリのサイズをモニタする必要があります。


) バックアップ パラメータが trueに設定されている場合、CSV ファイルの削除に失敗するとディスクのオーバーフローとなる可能性があります(CSV ファイルが削除されなくなります)。



) サードパーティ製アプリケーションに CSV ファイルを管理し必要に応じてこれを削除する責任があります。


このスクリプトを正常に呼び出すためには、CM の HTTP アダプタが動作していなければいけません。アダプタがダウンしている場合、エラー メッセージが表示されます。

「CSV リポジトリのファイル構造」

「CSV ファイル リポジトリの設定」

「カンマ エスケープの設定」

「プリント不可能文字のエスケープ設定」

CSV リポジトリのファイル構造

CSV ファイルは複数のサブディレクトリに格納されます。各サブディレクトリには、RDR タグの番号が設定されます(RDR タグは RDR タイプを示します)。各 RDRは、名前が RDR タグ番号と一致するサブディレクトリに格納されます。RDR タグの詳細については、『 Cisco Service Control Application for Broadband Reference Guide 』を参照してください。

CSV ファイルには、ディレクトリごとに異なる番号が連番で(自動的に)付加されます。親ディレクトリの場所を変更するには、 cm/config ディレクトリ内の cm.conf ファイルを編集します。

CSV ファイル リポジトリの設定

csvconf.sh スクリプト、 ~scmscm/scripts/csvconf.sh を使用して次のことを実行します。

リポジトリに現在格納されている RDR 数の表示

CSV ファイルの最大数、および各ファイル内の最大レポート(行)数の設定

古い CSV ファイルが上書きされる時点でバックアップを作成するかどうかの制御

CSV ファイルの各行にこの RDR に送信された Service Control Engine(SCE)の IP を示すものが含まれているかどうかの管理(デフォルトでこのオプションはオフ)


) このスクリプトを使用する代わりに、~scmscm/cm/config/csvadapter.conf ファイルを編集できます。このファイルの変更を有効にするには、CM を再起動する必要があります。



) CSV リポジトリ内のすべてのサブディレクトリに、同じ設定が適用されます。



) これらのパラメータを設定しても、既存の CSV ファイルは変更されず、この後作成されるファイルにのみ影響します。


 

表5-8 csvconf.sh オプション

オプション

説明

--list

CSV リポジトリの内容(リポジトリに現在格納されている RDR 数)を表示します。

--clear

CSV リポジトリからすべてのファイルを削除します(このオプションでは、すべての CSV ファイルが削除されますが、ファイルが格納されているディレクトリは削除されません)。

--maxlines = N

CSV ファイルごとの RDR の最大数を N (1 ~ 20,000 の整数)に設定します。

--maxfiles = M

各サブディレクトリの CSV ファイルの最大数を M (10 ~ 10,000 の整数)に設定します。

--backups ={ true | false }

古い CSV ファイルのバックアップをイネーブルまたはディセーブルにします。

--recordsource ={ true | false }

CSV ファイルへのレコード送信元の追加をイネーブルまたはディセーブルにします。

次に、サブディレクトリごとの CSV ファイルの最大数を 1000 に設定する例を示します。

>~scmscm/scripts/csvconf.sh --maxfiles=1000
 

次に、CSV ファイルごとのレコードの最大数を 10,000 に設定する例を示します。

>~scmscm/scripts/csvconf.sh --maxlines=10000
 

次に、CSV リポジトリからすべてのファイルを削除する例を示します。

~scmscm/scripts/csvconf.sh --clear
 

次に、リポジトリ内の古い CSV ファイルのバックアップをディセーブルにする例を示します。

~scmscm/scripts/csvconf.sh --backups=false
 

カンマ エスケープの設定

CSV ファイルのフィールド内にカンマを含める場合に、カンマがフィールドの末尾を示さないように指定するには、エスケープ シーケンスを使用します。

3 つのエスケープ方式がサポートされています。

単一引用符 ― 単一引用符は、1 つまたは複数のカンマが含まれているフィールドを囲みます。既存 RDR 内にすでに存在する単一引用符は特に処理されません。

URL ― フィールドに含まれている各カンマを %2C で置き換えます。既存 RDR 内にすでに存在するこのシーケンスは特に処理されません。

バックスラッシュ ― フィールド内の各カンマをバックスラッシュ(\)で置き換えます。既存 RDR 内にすでに存在するバックスラッシュは特に処理されません。

最初の 2 つのエスケープ方式は、Microsoft Excel と互換性があります。バックスラッシュ方式は Excel と互換性がありませんが、下位互換性のために残されています。

デフォルトでは、単一引用符が使用されます。エスケープ方式を変更するには、 escapeMethod 属性値を変更します。この属性は、 CSVAdapter ディレクトリ内の csvadapter.conf ファイル内にあります。この値の有効値は backslash quote 、または url です。

プリント不可能文字のエスケープ設定

オプションで、CSV アダプタでプリント不可能文字をエスケープすることができます。このオプションを有効化すると、アダプタのパフォーマンスに悪影響を与えます。デフォルトで、このオプションはディセーブルです。

このオプションがイネーブルの場合、フィールド内に含まれている CR や LF などの各プリント不可能文字をバックスラッシュ(\)で置き換えます。

このオプションは、 CSVAdapter ディレクトリ内の csvadapter.conf ファイル内でイネーブルにできます。このファイルの変更を有効にするには、CM を再起動する必要があります。