7.6.4 大規模ユーザの場合

ここでは,次の条件の情報を6か月分データベースに格納する場合について説明します。

この場合,1日に発生する稼働情報件数は2,000万件です。これは大規模ユーザに相当するため,日単位にデータパーティションを作成して格納するようにします。

<この項の構成>
(1) データベース容量を見積もる
(2) データパーティション作成のためのクエリスクリプトを作成する
(3) JP1/NETM/DMのデータベースを新規作成,またはアップグレードする
(4) データパーティションを作成する
(5) データパーティション追加を見積もる
(6) データパーティション追加のためのクエリスクリプトを作成する
(7) データパーティションを追加する
(8) データパーティションを再割り当てする
(9) データパーティションを再割り当てするためのクエリスクリプトを作成する
(10) データパーティションを再割り当てする

(1) データベース容量を見積もる

JP1/NETM/DMのデータベースを新規に作成する場合,「ソフトウェア稼働監視履歴データベースデバイス」以外についても見積もります。詳細については,マニュアル「導入・設計ガイド」の「5.4.2 Microsoft SQL Serverのデータベース容量の見積もり」に従ってデータベースを見積もります。「ソフトウェア稼働監視履歴データベースデバイス」と「1か月分のソフトウェア稼働監視履歴データパーティション」については,次のように1か月単位に見積もります。なお,ここでは稼働時間取得対象のプログラム数を10とします。

JP1/NETM/DMの既存のデータベースをデータパーティションに変更する場合,「1か月分のソフトウェア稼働監視履歴データパーティション」について見積もります。

ソフトウェア稼働監視履歴データベースデバイス容量
ソフトウェア稼働監視履歴データベースデバイス容量(単位:バイト)
=(1,861※1×ソフトウェア稼働監視履歴の情報数)※2
+(80×取得した稼働時間の情報数)※3
1か月分のソフトウェア稼働監視履歴データパーティション容量
1か月分のソフトウェア稼働監視履歴データパーティション容量(単位:バイト)
=(1,861×ソフトウェア稼働監視履歴の情報数)※2
=1,861×10,000×2,000×20
≒800ギガバイト
注※1
稼働履歴情報のサイズの最大値を指定する場合は,1,861(バイト)を指定してください。平均的なソフトウェア稼働監視履歴のサイズを指定する場合は,543(バイト)を指定してください。
注※2
ソフトウェア稼働監視履歴の情報数
=ソフトウェアの稼働監視の対象となるクライアントの台数(10,000)
×1クライアント当たりの1日に取得する稼働監視履歴数(2,000)
×稼働情報の保存日数(予備領域として10日)
注※3
取得した稼働時間の情報数
=220×クライアント数×稼働時間取得対象のプログラム数(10)
=1,861×10,000×2,000×10+80×220×1,000×10
≒400ギガバイト

したがって,JP1/NETM/DMのデータベースを新規に作成する場合,400ギガバイトのソフトウェア稼働監視履歴データベースデバイスを予備領域としてデータベースマネージャで作成し,800ギガバイトのソフトウェア稼働監視履歴データパーティションを6か月分,SQL Server Management Studioを使って作成します。

JP1/NETM/DMのデータベースをデータパーティションに変更する場合,既存のソフトウェア稼働監視履歴データベースデバイスを予備領域とし,800ギガバイトのソフトウェア稼働監視履歴データパーティションを6か月分,SQL Server Management Studioを使って作成します。

予備領域を作成するために,ここでは次のディスクを用意したと仮定します。

注※
データベースを新規作成する場合に使用します。

(2) データパーティション作成のためのクエリスクリプトを作成する

データパーティションを作成するためのクエリスクリプトを用意します。

表7-15 クエリスクリプト(大規模ユーザがデータパーティションを作成する場合)

項番クエリスクリプト名説明サンプル
1DropTable.sqlデータベースマネージャで作成される既定のnetmdm_monitoring_securityテーブルを削除します。
サンプルを基にクエリスクリプトを作成する場合,次の項目を変更してください。
  • USEステートメントのデータベース名
付録F.1
2LargeAddFilegroup.sqlデータパーティションを割り当てるファイルグループを追加します。
サンプルを基にクエリスクリプトを作成する場合,次の項目を変更してください。
  • USEステートメントのデータベース名
  • ALTER DATABASEステートメントのデータベース名
付録F.15
3LargeAddFile.sql各ドライブに実ファイルを追加して,ファイルグループに割り当てます。
サンプルを基にクエリスクリプトを作成する場合,次の項目を変更してください。
  • USEステートメントのデータベース名
  • ALTER DATABASEステートメントのデータベース名
  • ALTER DATABASEステートメントのFILENAME指定パス
  • ALTER DATABASEステートメントのSIZE指定サイズ
付録F.16
4LargeCreatePartition.sqlパーティション関数とパーティション構成を作成します。
サンプルを基にクエリスクリプトを作成する場合,次の項目を変更してください。
  • USEステートメントのデータベース名
  • CREATE PARTITION FUNCTIONのyyyymmdd形式の値
付録F.17
5CreateTable.sqlパーティション構成上にnetmdm_monitoring_securityテーブルを作成します。
サンプルを基にクエリスクリプトを作成する場合,次の項目を変更してください。
  • USEステートメントのデータベース名
付録F.6

表7-15のクエリスクリプトを実行することで表7-16,表7-17に示すデータパーティションを作成できます。

表7-16 ファイルとファイルグループ(大規模ユーザがデータパーティションを作成する場合)

項番論理名ファイル名初期サイズ上限値増加量ファイルグループ名
1NETMDM_MONI_DEVICED:¥Program Files¥Hitachi¥NETMDB¥MSSQL¥MONITOR.sdf400,000MBUNLIMITED10%netmdm_moni_seg
2NETMDM_DP_0001E:¥NETMDP¥MONITOR_DP_0001.ndf800GBUNLIMITED10%netmdm_moni_dp_0001
3NETMDM_DP_0002F:¥NETMDP¥MONITOR_DP_0002.ndf800GBUNLIMITED10%netmdm_moni_dp_0002
4NETMDM_DP_0003G:¥NETMDP¥MONITOR_DP_0003.ndf800GBUNLIMITED10%netmdm_moni_dp_0003
5NETMDM_DP_0004H:¥NETMDP¥MONITOR_DP_0004.ndf800GBUNLIMITED10%netmdm_moni_dp_0004
6NETMDM_DP_0005I:¥NETMDP¥MONITOR_DP_0005.ndf800GBUNLIMITED10%netmdm_moni_dp_0005
7NETMDM_DP_0006J:¥NETMDP¥MONITOR_DP_0006.ndf800GBUNLIMITED10%netmdm_moni_dp_0006

表7-17 パーティション関数とパーティション構成(大規模ユーザがデータパーティションを作成する場合)

パーティション関数名パーティション構成名
netmdm_monitoring_security_pfnetmdm_monitoring_security_ps

このパーティション構成とパーティション関数によって,次の表に示すようにイベントの開始時刻に対して稼働監視履歴が日ごとに格納されます。

表7-18 格納される稼働監視履歴(大規模ユーザがデータパーティションを作成する場合)

項番ファイルグループ名パーティション番号格納される稼働監視履歴
1netmdm_moni_seg1イベントの開始時刻<2011/01/01
2netmdm_moni_dp_000122011/01/01≦イベントの開始時刻<2011/01/02
332011/01/02≦イベントの開始時刻<2011/01/03
442011/01/03≦イベントの開始時刻<2011/01/04
55~29それぞれのパーティション番号に1日ずつ格納される
6302011/01/29≦イベントの開始時刻<2011/01/30
7312011/01/30≦イベントの開始時刻<2011/01/31
8322011/01/31≦イベントの開始時刻<2011/02/01
9netmdm_moni_dp_0002332011/02/01≦イベントの開始時刻<2011/02/02
1034~59それぞれのパーティション番号に1日ずつ格納される
11602011/02/28≦イベントの開始時刻<2011/03/01
12netmdm_moni_dp_0003612011/03/01≦イベントの開始時刻<2011/03/02
1362~90それぞれのパーティション番号に1日ずつ格納される
14912011/03/31≦イベントの開始時刻<2011/04/01
15netmdm_moni_dp_0004922011/04/01≦イベントの開始時刻<2011/04/02
1693~120それぞれのパーティション番号に1日ずつ格納される
171212011/04/30≦イベントの開始時刻<2011/05/01
18netmdm_moni_dp_00051222011/05/01≦イベントの開始時刻<2011/05/02
19123~151それぞれのパーティション番号に1日ずつ格納される
201522011/05/31≦イベントの開始時刻<2011/06/01
21netmdm_moni_dp_00061532011/06/01≦イベントの開始時刻<2011/06/02
22154~181それぞれのパーティション番号に1日ずつ格納される
231822011/06/30≦イベントの開始時刻

(3) JP1/NETM/DMのデータベースを新規作成,またはアップグレードする

JP1/NETM/DMのデータベースを新規に作成する場合は,「7.5.1 データベースを新規作成する」を参照してください。このとき,ソフトウェア稼働監視履歴データベースファイルには,表7-16項番1の初期サイズ,上限値,増加量を指定します。

JP1/NETM/DMの既存のデータベースをデータパーティションに変更する場合は,「7.5.4 データベースをアップグレードする」に従ってアップグレードしてください。

(4) データパーティションを作成する

SQL Server Management Studioを使って表7-15のクエリスクリプトを実行することで,データパーティションを作成します。

JP1/NETM/DMのデータベースを新規作成する手順

  1. 「DropTable.sql」を実行して,データベースマネージャで作成される既定のnetmdm_monitoring_securityテーブルを削除する。
  2. 「LargeAddFilegroup.sql」を実行して,データパーティションを割り当てるファイルグループを追加する。
  3. 各ドライブ直下に「NETMDP」フォルダを作成する。
  4. 「LargeAddFile.sql」を実行して,各ドライブに実ファイルを追加して,ファイルグループに割り当てる。
  5. 「LargeCreatePartition.sql」を実行して,パーティション関数とパーティション構成を作成する。
  6. 「CreateTable.sql」を実行して,パーティション構成上にnetmdm_monitoring_securityテーブルを作成する。
  7. SQL Server Management Studioを使って対象のデータベース名「NETMDM_SAMPLE」を右クリックして表示されるメニューから[プロパティ]を開いて,「ファイル」および「ファイルグループ」が指定したとおりに構成されていることを確認する。また,「NETMDM_SAMPLE」を右クリックして表示されるメニューから[ストレージ]を選択して,[パーティション構成]には「netmdm_monitoring_security_ps」が,および[パーティション関数]には「netmdm_monitoring_security_pf」がそれぞれ作成されていることを確認する。

JP1/NETM/DMの既存のデータベースをデータパーティションに変更する手順

  1. 「Remote Install Server」サービスを停止する。
  2. bcpユーティリティを使用して,netmdm_monitoring_securityテーブルの既存のデータを一括エクスポートする。
  3. 「DropTable.sql」を実行して,netmdm_monitoring_securityテーブルを削除する。
  4. 「LargeAddFilegroup.sql」を実行して,データパーティションを割り当てるファイルグループを追加する。
  5. 各ドライブ直下に「NETMDP」フォルダを作成する。
  6. 「LargeAddFile.sql」を実行して,Eドライブに実ファイルを追加して,ファイルグループに割り当てる。
  7. 「LargeCreatePartition.sql」を実行して,パーティション関数とパーティション構成を作成する。
  8. 「CreateTable.sql」を実行して,パーティション構成上にnetmdm_monitoring_securityテーブルを作成する。
  9. SQL Server Management Studioを使って対象のデータベース名「NETMDM_SAMPLE」を右クリックして表示されるメニューから[プロパティ]を開いて,「ファイル」および「ファイルグループ」が指定したとおりに構成されていることを確認する。また,「NETMDM_SAMPLE」を右クリックして表示されるメニューから[ストレージ]を選択して,[パーティション構成]には「netmdm_monitoring_security_ps」が,および[パーティション関数]には「netmdm_monitoring_security_pf」がそれぞれ作成されていることを確認する。
  10. bcpユーティリティを使用して,一括エクスポートしたデータを一括インポートする。

(5) データパーティション追加を見積もる

2011年7月1日以降の履歴は2011年6月30日分の履歴を格納するためのパーティション(パーティション番号:182)に格納されます。そのため,2011年7月1日以降の履歴を格納する前に,データパーティションを追加する必要があります。ここでは,さらに1か月分のデータを格納するための新しいデータパーティションを追加する手順を示します。

新しいパーティションのために,ここでは次のディスクを用意したと仮定します。

(6) データパーティション追加のためのクエリスクリプトを作成する

データパーティションを追加するためのクエリスクリプトを用意します。

表7-19 クエリスクリプト(大規模ユーザがデータパーティションを追加する場合)

項番クエリスクリプト名説明サンプル
1LargeAddFilegroup2nd.sqlデータパーティションを割り当てるファイルグループを追加します。
サンプルを基にクエリスクリプトを作成する場合,次の項目を変更してください。
  • USEステートメントのデータベース名
  • ALTER DATABASEステートメントのデータベース名
付録F.18
2LargeAddFiletoKdrive.sqlKドライブに実ファイルを追加して,ファイルグループに割り当てます。
サンプルを基にクエリスクリプトを作成する場合,次の項目を変更してください。
  • USEステートメントのデータベース名
  • ALTER DATABASEステートメントのデータベース名
  • ALTER DATABASEステートメントのFILENAME指定パス
  • ALTER DATABASEステートメントのSIZE指定サイズ
付録F.19
3LargeAlterPartition.sql2011年7月以降の履歴が,追加したファイルグループに日ごとに格納されるように,関数とパーティション構成を変更します。
サンプルを基にクエリスクリプトを作成する場合,次の項目を変更してください。
  • USEステートメントのデータベース名
  • ALTER PARTITION FUNCTIONのyyyymmdd形式の値
付録F.20

以上のクエリスクリプトを実行することで表7-20に示すデータパーティションを追加できます。

表7-20 ファイルとファイルグループ(大規模ユーザがデータパーティションを作成する場合)

項番論理名ファイル名初期サイズ上限値増加量ファイルグループ名
1NETMDM_DP_0007K:¥NETMDP¥MONITOR_DP_0007.ndf800GBUNLIMITED10%netmdm_moni_dp_0007

また,パーティション構成とパーティション関数の変更によって,次の表に示すように稼働監視履歴のイベントの開始時刻に対して日ごとに格納されます。

表7-21 格納される稼働監視履歴(大規模ユーザがデータパーティションを作成する場合)

項番ファイルグループ名パーティション番号格納される稼働監視履歴
1netmdm_moni_dp_00061532011/06/01≦イベントの開始時刻<2011/06/02
21822011/06/30≦イベントの開始時刻<2011/07/01
3netmdm_moni_dp_00071832011/07/01≦イベントの開始時刻<2011/07/02
42132011/07/31≦イベントの開始時刻

(7) データパーティションを追加する

SQL Server Management Studioを使って表7-19のクエリスクリプトを実行することで,データパーティションを追加します。

  1. 「Remote Install Server」サービスを停止する。
  2. 「LargeAddFilegroup2nd.sql」を実行して,データパーティションを割り当てるファイルグループを追加する。
  3. 「K:¥NETMDP」フォルダを作成する。
  4. 「LargeAddFiletoKdrive.sql」を実行して,Kドライブに実ファイルを追加して,ファイルグループに割り当てる。
  5. 「LargeAlterPartition.sql」を実行して,パーティション関数とパーティション構成を変更する。
  6. SQL Server Management Studioを使って対象のデータベース名「NETMDM_SAMPLE」を右クリックして表示されるメニューから[プロパティ]を開いて,「ファイル」および「ファイルグループ」が指定したとおりに追加されていることを確認する。
注※
すでに2011年7月1日以降の履歴が格納されていると「LargeAlterPartition.sql」の実行に時間が掛かることがあります。

(8) データパーティションを再割り当てする

ここでは,新しいパーティションのためにディスクを用意できないとして,2011年1月以前の履歴を削除して,2011年8月の履歴を格納するように再度割り当てます。

(9) データパーティションを再割り当てするためのクエリスクリプトを作成する

データパーティションを再割り当てするためのクエリスクリプトを用意します。

表7-22 クエリスクリプト(大規模ユーザがデータパーティションを再割り当てする場合)

項番クエリスクリプト名説明サンプル
1CreateArchTable.sql削除データを移動するためのnetmdm_monitoring_security_archテーブルを作成します。
サンプルを基にクエリスクリプトを作成する場合,次の項目を変更してください。
  • USEステートメントのデータベース名
付録F.10
2LargeSwitchPartition.sql2011年1月以前の履歴をnetmdm_monitoring_securityテーブルからnetmdm_monitoring_security_archテーブルに切り替えます。
サンプルを基にクエリスクリプトを作成する場合,次の項目を変更してください。
  • USEステートメントのデータベース名
付録F.21
3DropArchTable.sqlnetmdm_monitoring_security_archテーブルを削除します。
サンプルを基にクエリスクリプトを作成する場合,次の項目を変更してください。
  • USEステートメントのデータベース名
付録F.12
4LargeMergeRange.sql今後は,2011年1月以前の履歴がnetmdm_moni_segに格納されるようにパーティション関数を変更します。
サンプルを基にクエリスクリプトを作成する場合,次の項目を変更してください。
  • USEステートメントのデータベース名
  • ALTER PARTITION FUNCTIONのyyyymmdd形式の値
付録F.22
5LargeAlterPartition2nd.sql2011年8月の履歴が,履歴を削除した既存のファイルグループに格納されるように,パーティション関数とパーティション構成を変更します。
サンプルを基にクエリスクリプトを作成する場合,次の項目を変更してください。
  • USEステートメントのデータベース名
  • ALTER PARTITION FUNCTIONのyyyymmdd形式の値
付録F.23

表7-22のクエリスクリプトを実行して,古い履歴を削除し,パーティション構成とパーティション関数の変更することで,次の表に示すように格納されます。

表7-23 格納される稼働監視履歴(大規模ユーザがデータパーティションを再割り当てする場合)

項番ファイルグループ名パーティション番号格納される稼働監視履歴
1netmdm_moni_seg1イベントの開始時刻<2011/01/01
2netmdm_moni_dp_000222011/02/01≦イベントの開始時刻<2011/02/02
33~28それぞれのパーティション番号に1日ずつ格納される
4292011/02/28≦イベントの開始時刻<2011/03/01
5netmdm_moni_dp_0003302011/03/01≦イベントの開始時刻<2011/03/02
631~59それぞれのパーティション番号に1日ずつ格納される
7602011/03/31≦イベントの開始時刻<2011/04/01
8netmdm_moni_dp_0004612011/04/01≦イベントの開始時刻<2011/04/02
962~89それぞれのパーティション番号に1日ずつ格納される
10902011/04/30≦イベントの開始時刻<2011/05/01
11netmdm_moni_dp_0005912011/05/01≦イベントの開始時刻<2011/05/02
1292~120それぞれのパーティション番号に1日ずつ格納される
131212011/05/31≦イベントの開始時刻<2011/06/01
14netmdm_moni_dp_00061222011/06/01≦イベントの開始時刻<2011/06/02
15123~150それぞれのパーティション番号に1日ずつ格納される
161512011/06/30≦イベントの開始時刻<2011/07/01
17netmdm_moni_dp_00071522011/07/01≦イベントの開始時刻<2011/07/02
18153~181それぞれのパーティション番号に1日ずつ格納される
191822011/07/31≦イベントの開始時刻<2011/08/01
20netmdm_moni_dp_00011832011/08/01≦イベントの開始時刻<2011/08/02
21184~212それぞれのパーティション番号に1日ずつ格納される
222132011/08/31≦イベントの開始時刻

(10) データパーティションを再割り当てする

SQL Server Management Studioを使って表7-22のクエリスクリプトを実行することで,データパーティションを追加します。

  1. 「Remote Install Server」サービスを停止する。
  2. 「CreateArchTable.sql」を実行して,削除データを移動するためのnetmdm_monitoring_security_archテーブルを作成する。
  3. 「LargeSwitchPartition.sql」を実行して,2011年1月以前の履歴をnetmdm_monitoring_securityテーブルからnetmdm_monitoring_security_archテーブルに移動する。
  4. 「DropArchTable.sql」を実行して,netmdm_monitoring_security_archテーブルを削除する。
  5. 「LargeMergeRange.sql」を実行して,今後は,2011年1月以前の履歴がnetmdm_moni_segに格納されるようにパーティション関数を変更する。
  6. 「LargeAlterPartition2nd.sql」を実行して,2011年8月の履歴が,履歴を削除した既存のファイルグループに格納されるように,パーティション関数とパーティション構成を変更する。
注※
dcmmonrstコマンドでも履歴を削除できますが,netmdm_monitoring_security_archテーブルに移動してテーブルごと削除すれば,dcmmonrstコマンドを使用するよりも削除する時間を短縮できます。