データベースとリポジトリのサイズの取得
この項では、ALM データベースとリポジトリのサイズを取得する方法について説明します。
すべての ALM プロジェクトには、独自のデータベース・スキーマとファイル・リポジトリがあります。このトピックのすべての手順を、SaaS に移行するすべてのプロジェクトに対して実行する必要があります。
SA データベース・スキーマ名の取得
次の手順に従って、サイト管理データベース・スキーマの名前を取得します。
-
ALM サーバにログインします。
-
ALM/QC がデプロイまたはインストールされているディレクトリに移動します。
Linux
デプロイメント・フォルダ -
ALM 12.60 P1 以降: /var/opt/Micro Focus/ALM/
-
ALM 12.60 以前: /var/opt/HP/ALM/
インストール・フォルダ /opt/Micro Focus/ALM
Windows
デプロイメント・フォルダ C:\Quality Center または C:\QC インストール・フォルダ -
ALM 12.60 P1 以降:C:\Program Files\Micro Focus\ALM
-
ALM 12.60 以前: C:\Program Files\HP\ALM
-
-
siteadmin.xml ファイルが保存されているディレクトリに移動し、ファイルを編集モードで開きます。
Linux /var/opt/Micro Focus/ALM/webapps/qcbin/WEB-INF Windows 次のいずれかの場所にあります。
-
<ALM/QC ディレクトリ>/webapps/qcbin/WEB_INF
-
<ALM/QC ディレクトリ>\jboss\server\default\deploy\10sabin.war\WEB-INF
-
<ALM/QC ディレクトリ>\application\10sabin.war\WEB-INF
-
-
DBNAME タグを使用して、サイト管理スキーマ名を検索します。
たとえば、<DbName>SA_SCHEMA_NAME</DbName> のような箇所を検索します。
ファイル・リポジトリのサイズの取得
次の手順に従って、ファイル・サーバからファイル・リポジトリのサイズを取得します。
-
ALM サイト管理を開きます。
-
移行するプロジェクトを選択します。[プロジェクト詳細]タブの[プロジェクトディレクトリ]フィールドで、プロジェクトのファイル・リポジトリ・パスを見つけます。
-
ファイル・サーバ・マシンで、プロジェクトのリポジトリ・パスに移動し、次のコマンドを実行します。
UNIX
ディレクトリとすべてのサブディレクトリのサマリを計算して、人間が読める形式でサイズの値を表示するには、次のコマンドを使用します。
Copy codedu –sh <ディレクトリ名>次に例を示します。
Copy coderoot@ubuntu# du -sh /usr/ X11R6
4.0K /usr/X11R6すべてのパス・リポジトリが同じパスをたどっている場合は、次のコマンドを使用すると、フォルダ内のサブディレクトリの最初のレベルのみのサマリが表示されます。このサマリにより、同じパスにあるすべてのファイル・リポジトリ・フォルダのサイズがわかります。
次に例を示します。
Copy coderoot@ubuntu# du -sh /usr/*
4.0K /usr/X11R6
96M /usr/bin
24K /usr/games
12M /usr/include
164M /usr/lib
0 /usr/lib64
96K /usr/local
25M /usr/sbin
197M /usr/share
4.0K /usr/src
Windows
フォルダを右クリックして[プロパティ]を選択し、フォルダのサイズを表示します。
データベースからのプロジェクト情報の取得
すべてのプロジェクトの数、バージョン管理が有効になっているプロジェクトの数、特定のプロジェクト内のチェックアウトされたエンティティの数を取得します。
すべてのプロジェクトの数を取得するには、次の手順を実行します。
-
サイト管理データベース・スキーマを取得します。「SA データベース・スキーマ名の取得」を参照してください。
-
SA_SCHEMA パラメータを正しいサイト管理スキーマ名に設定します。
-
次のクエリを実行します。
Copy codeSELECT COUNT(*) FROM '<スキーマ>'.PROEJCTS;
バージョン管理が有効になっているプロジェクトの数を取得するには、次の手順を実行します。
-
サイト管理データベース・スキーマを取得します。「SA データベース・スキーマ名の取得」を参照してください。
-
SA_SCHEMA パラメータを正しいサイト管理スキーマ名に設定します。
-
次のクエリを実行します。
Copy codeSELECT * FROM PROJECTS WHERE PR_HAS_VCSDB='Y';
特定のプロジェクト内のチェックアウトされたエンティティの数を取得するには、次の手順を実行します。
-
次のいずれかを実行して、プロジェクトのプロジェクト・データベース・スキーマ名を取得します。
-
[サイト管理]>[プロジェクト]タブでプロジェクトを選択します。[データベース名]フィールドの値を確認します。
-
サイト管理データベース・スキーマで次のクエリを実行し、クエリの出力から、プロジェクトの DB_NAME フィールドの値を取得します。
Copy codeSELECT * FROM PROJECTS
-
-
プロジェクト・データベース・スキーマ内で次のクエリを実行します。
Oracle サーバ
Copy codeSelect
(SELECT count(*) from vc_test) as Tests ,
(Select count(*) from vc_req) as Requirements,
(select count (*) from vc_component) as Components,
(select count(*) from vc_resources) as Resources,
(Select count(*) FROM VC_ASSET_RELATIONS) as ASSET_RELATIONS ,
(Select count(*) FROM VC_ASSET_REPOSITORY_ITEMS) as ASSET_REPOSITORY_ITEMS,
(Select count(*) FROM VC_BPTEST_TO_COMPONENTS) as BPTEST_TO_COMPONENTS,
(Select count(*) FROM VC_BP_ITERATION) as BP_ITERATION,
(Select count(*) FROM VC_BP_ITER_PARAM) as BP_ITER_PARAM,
(Select count(*) FROM VC_BP_PARAM) as BP_PARAM,
(Select count(*) FROM VC_COMPONENT_MULTIVALUE) as COMPONENT_MULTIVALUE,
(Select count(*) FROM VC_COMPONENT_STEP) as COMPONENT_STEP,
(Select count(*) FROM VC_COMPONENT_STEP_PARAMS) as COMPONENT_STEP_PARAMS,
(Select count(*) FROM VC_CROS_REF) as CROS_REF,
(Select count(*) FROM VC_DESSTEPS) as DESSTEPS ,
(Select count(*) FROM VC_FRAMEWORK_PARAM) as FRAMEWORK_PARAM,
(Select count(*) FROM VC_REQ_MULTIVALUE) as REQ_MULTIVALUE,
(Select count(*) FROM VC_RUNTIME_PARAM) as RUNTIME_PARAM,
(Select count(*) FROM VC_STEP_PARAMS) as STEP_PARAMS,
(Select count(*) FROM VC_TEST_MULTIVALUE) as TEST_MULTIVALUE,
(Select count(*) FROM VC_TEST_PARAMS) as TEST_PARAMS,
(Select count(*) FROM VC_USER_ASSETS) as USER_ASSETS,
(Select count(*) FROM VER_CTRL)
from dual
MS SQL Server
Copy codeSelect
(SELECT count(*) from td.vc_test) as Tests ,
(Select count(*) from td.vc_req) as Requirements,
(select count (*) from td.vc_component) as Components,
(select count(*) from td.vc_resources) as Resources,
(Select count(*) FROM td.VC_ASSET_RELATIONS) as ASSET_RELATIONS ,
(Select count(*) FROM td.VC_ASSET_REPOSITORY_ITEMS) as ASSET_REPOSITORY_ITEMS,
(Select count(*) FROM td.VC_BPTEST_TO_COMPONENTS) as BPTEST_TO_COMPONENTS,
(Select count(*) FROM td.VC_BP_ITERATION) as BP_ITERATION,
(Select count(*) FROM td.VC_BP_ITER_PARAM) as BP_ITER_PARAM,
(Select count(*) FROM td.VC_BP_PARAM) as BP_PARAM,
(Select count(*) FROM td.VC_COMPONENT_MULTIVALUE) as COMPONENT_MULTIVALUE,
(Select count(*) FROM td.VC_COMPONENT_STEP) as COMPONENT_STEP,
(Select count(*) FROM td.VC_COMPONENT_STEP_PARAMS) as COMPONENT_STEP_PARAMS,
(Select count(*) FROM td.VC_CROS_REF) as CROS_REF,
(Select count(*) FROM td.VC_DESSTEPS) as DESSTEPS ,
(Select count(*) FROM td.VC_FRAMEWORK_PARAM) as FRAMEWORK_PARAM,
(Select count(*) FROM td.VC_REQ_MULTIVALUE) as REQ_MULTIVALUE,
(Select count(*) FROM td.VC_RUNTIME_PARAM) as RUNTIME_PARAM,
(Select count(*) FROM td.VC_STEP_PARAMS) as STEP_PARAMS,
(Select count(*) FROM td.VC_TEST_MULTIVALUE) as TEST_MULTIVALUE,
(Select count(*) FROM td.VC_TEST_PARAMS) as TEST_PARAMS,
(Select count(*) FROM td.VC_USER_ASSETS) as USER_ASSETS,
(Select count(*) FROM td.VER_CTRL) as VER_CTRL
プロジェクト・データベース・スキーマのサイズの取得
次の手順に従って、プロジェクト・データベース・スキーマのサイズを取得します。
-
ALM サイト管理を開きます。
-
移行するプロジェクトを選択します。[プロジェクト詳細]タブの[データベース名]フィールドで、プロジェクトのデータベース・スキーマを見つけます。[データベースサーバ]フィールドで、スキーマが配置されているサーバを見つけます。
-
データベース・サーバで、次のコマンドを実行してデータベース・スキーマのサイズを取得します。
Oracle サーバ
DB_USER_SCHEMA スキーマのサイズを取得するには、Oracle インスタンスに接続し、次の SQL クエリを実行します。
-
各データベース・スキーマのサイズを取得するには、次のコマンドを実行します。
Copy codeSELECT SUM(BYTES)/1024/1024 "MB" FROM DBA_SEGMENTS WHERE owner='<スキーマ>';
-
すべてのデータベース・スキーマのサイズを一度に取得するには、次のコマンドを実行します。
Copy codeSELECT owner, SUM(BYTES)/1024/1024 "MB" FROM DBA_SEGMENTS group by owner
MS SQL Server
次のコマンドを実行して、現在のデータベースで使用されている領域のサマリを出力します。
Copy codesp_spaceused出力:
Copy codedatabase_name database_size
--------------- ---------------------------
master 5 MB
reserved data index_size unused
--------- --------- ----------- --------
2176 KB 1374 KB 72 KB 730 KB注: database_size メトリックには、データ・ファイルとログ・ファイルの両方を含む、現在のデータベースのサイズがメガバイト単位で示されます。
-
すべてのプロジェクトのデータベースとリポジトリのサイズの取得
スマート・リポジトリ・メカニズムに基づいて、データベースに格納されているデータベース・スキーマやファイル・リポジトリのサイズなど、すべてのプロジェクトの詳細を取得します。
この項は、スマート・リポジトリ・メカニズムを備えた ALM 11.00 以降にのみ適用されます。
前提条件:
-
サイト管理データベース・スキーマを取得します。「SA データベース・スキーマ名の取得」を参照してください。
-
SA_SCHEMA パラメータを正しいサイト管理スキーマ名に設定します。
すべてのプロジェクトのデータベースとリポジトリのサイズを取得するには、次の手順を実行します。
次のクエリを実行します。
SET serveroutput ON size unlimited;
DECLARE
sa_name VARCHAR2(50 CHAR) := '<SA_SCHEMA>';
table_exists NUMBER;
create_table LONG;
TYPE cur_type
IS
REF
CURSOR;
schema_cur cur_type;
project_schemas_cur cur_type;
projects_query LONG;
project_size_query LONG;
project_schema VARCHAR2(100 CHAR) ;
project_name VARCHAR2(100 CHAR) ;
domain_name VARCHAR2(100 CHAR) ;
repo_path VARCHAR2(100 CHAR) ;
is_active VARCHAR2(1 CHAR) ;
is_template VARCHAR2(1 CHAR) ;
db_size INTEGER;
BEGIN
projects_query := 'select p.domain_name, p.project_name, p.db_name, p.physical_directory, p.pr_is_active, p.IS_TEMPLATE , t.db_size_mb
from ' || sa_name || '.projects p join (SELECT round(sum(bytes)/1024/1024,2) as db_size_mb, owner
FROM dba_segments WHERE lower(owner) in (select lower(db_name) from ' || sa_name || '.projects) group by owner) t on lower(t.owner) = lower(p.db_name) ';
dbms_output.put_line(projects_query);
create_table:='
CREATE TABLE project_size_report
(Domain VARCHAR2(50 CHAR),
project VARCHAR2(50 CHAR),
db_name VARCHAR2(50 CHAR),
physical_directory VARCHAR2(100 CHAR),
is_active VARCHAR2(1 CHAR),
is_template VARCHAR2(1 CHAR),
count_files integer,
repo_size_mb number,
db_size_mb VARCHAR2(50 CHAR)
)';
SELECT COUNT(*)
INTO table_exists
FROM dba_tables
WHERE lower(table_name) = 'project_size_report';
IF (table_exists <> 0) THEN
EXECUTE immediate 'drop TABLE project_size_report';
COMMIT;
END IF;
EXECUTE immediate create_table;
COMMIT;
OPEN project_schemas_cur FOR projects_query;
<<main_loop>>
LOOP
FETCH project_schemas_cur
INTO domain_name,
project_name,
project_schema,
repo_path,
is_active,
is_template,
db_size ;
IF project_schemas_cur%found THEN
project_size_query := 'insert into project_size_report (Domain, project, db_name , physical_directory , is_active , is_template , count_files, repo_size_mb , db_size_mb)
Select ' || '''' || domain_name || '''' || 'as Domain, ' || '''' || project_name || '''' || ' as project, ' || '''' || project_schema || '''' || ' as db_name, ' || '''' || repo_path || '''' || ' as physical_directory, ' || '''' || is_active || '''' || ' as is_active, ' || '''' || is_template || '''' || ' as is_template, count_files, project_repo_size_mb, ' || '''' || db_size || '''' || ' as db_size_mb from (select count(*) as count_files , round(sum(t.sz),2) as project_repo_size_mb from (select distinct srlf_physical_id, srlf_size/1024/1024 as sz
from '|| project_schema || '.smart_repository_physical_file inner join ' || project_schema ||'.smart_repository_logical_file on srlf_physical_id = srpf_id )t ) ';
dbms_output.put_line('running over project ' || domain_name || ' / ' || project_name);
dbms_output.put_line(project_schemas_cur%ROWCOUNT);
EXECUTE immediate project_size_query;
COMMIT;
ELSE
EXIT;
END IF;
END LOOP main_loop;
CLOSE project_schemas_cur;
dbms_output.put_line('Finished script, please run: select * from project_size_report');
END;
/
--- スクリプトの実行が終了したら、このテーブルに対して select from を実行します
------- select * from project_size_report;
USE [master]
GO
GO
SET QUOTED_IDENTIFIER ON
GO
/*
注意:サイト管理データベース・スキーマの値(sa_name)を見つける必要があります。
標準設定のサイト管理データベース・スキーマ名は「qcsiteadmin_db」ですが、
ALM/QC のインストール時に変更されている可能性があります。
デプロイメント・ディレクトリにある siteadmin.xml 内の <DbName> 値を確認してください。
siteadmin.xml は、標準設定では、C:\ProgramData\HP\ALM\webapps\qcbin\WEB-INF\siteadmin.xml です。
*/
begin
declare @sa_name varchar(100)
declare @report_table varchar(100)
declare @db_name varchar(100)
declare @n_repo_count nvarchar(max)
declare @n_repo_size nvarchar(max)
declare @n_db_size nvarchar(max)
declare @query nvarchar(max)
declare @message varchar(500)
USE [master]
GO
GO
SET QUOTED_IDENTIFIER ON
GO
/*
注意:サイト管理データベース・スキーマの値(sa_name)を見つける必要があります。
標準設定のサイト管理データベース・スキーマ名は「qcsiteadmin_db」ですが、
ALM/QC のインストール時に変更されている可能性があります。
デプロイメント・ディレクトリにある siteadmin.xml 内の <DbName> 値を確認してください。
siteadmin.xml は、標準設定では、C:\ProgramData\HP\ALM\webapps\qcbin\WEB-INF\siteadmin.xml です。
*/
begin
declare @sa_name varchar(100)
declare @report_table varchar(100)
declare @db_name varchar(100)
declare @n_repo_count nvarchar(max)
declare @n_repo_size nvarchar(max)
declare @n_db_size nvarchar(max)
declare @query nvarchar(max)
declare @message varchar(500)
end
exec ('CREATE TABLE ' + @report_table +
'(
"PROJECT_NAME" varchar(255),
"DOMAIN_NAME" varchar(255),
"DB_NAME" varchar(60),
"PHYSICAL_DIRECTORY" varchar(255),
"PR_IS_ACTIVE" varchar(2),
"SEND_MAIL" varchar(2),
"PR_HAS_VCSDB" varchar(2),
"IS_TEMPLATE" varchar(2),
"DB_SIZE" varchar(255),
"REPO_SIZE" varchar(255),
"REPO_COUNT" varchar(255)
)')
SET @message = 'Creating the report table '
+ @report_table RAISERROR( @message, 10,1) WITH NOWAIT
end
set @query = N'USE ' + @sa_name + + N'; declare objcursor CURSOR FOR select db_name from td.projects'
exec sys.sp_executesql @query
open objcursor
fetch next from objcursor into @db_name
while @@FETCH_STATUS = 0
begin
set @query = 'use master; SELECT @n_db_size = sum((size * 8) / 1024) FROM sys.master_files WHERE DB_NAME(database_id) = '''
+@db_name+ ''' group by database_id'
EXEC sp_executesql @query, N'@n_db_size varchar(max) OUTPUT', @n_db_size = @n_db_size OUTPUT
set @query = 'use ' + @db_name + '; select @n_repo_count = count(*) , @n_repo_size = round(sum(t.sz),2) from ' +
'(select distinct srlf_physical_id, srlf_size/1024/1024 sz from td.smart_repository_physical_file ' +
'inner join td.smart_repository_logical_file on srlf_physical_id = srpf_id) t '
EXEC sp_executesql @query,
N'@n_repo_count varchar(255) OUTPUT, @n_repo_size varchar(max) OUTPUT',
@n_repo_count = @n_repo_count OUTPUT, @n_repo_size = @n_repo_size OUTPUT
set @query = 'use ' + @sa_name + '; insert into master..project_size_report select project_name, domain_name, db_name, '
+ 'physical_directory, pr_is_active, saq_is_active, pr_has_vcsdb, is_template, '''+ @n_db_size +
+ ''', ''' + @n_repo_size + ''' , ''' + @n_repo_count + ''' from td.projects where db_name = ''' + @db_name + ''''
exec sp_executesql @query
fetch next from objcursor into @db_name
end
close objcursor
deallocate objcursor
end;
-- このスクリプトは、テーブル 'project_size_report' を作成し、必要な情報を入力します。
-- テーブルを Excel または CSV 形式でエクスポートし、SaaS CSM に送り返します。
--select * from master..project_size_report /* <@report_table> */
-- 必要に応じて、後でテーブルを削除します。
--drop table master..project_size_report /* <@report_table> */
データベース・スキーマのエクスポート
移行する各プロジェクトのデータベース・スキーマをエクスポートします。
前提条件
データベース・スキーマをエクスポートする前に、次の前提条件を考慮してください。
| AWS S3 バケット | AWS S3 バケットの場所は、移行プロセス中に CSM から提供されます。 |
| MD5 ソフトウェア | md5 など。 |
| FTP サーバ | AWS S3 バケットが何らかの理由で利用できない場合にのみ、移行プロセス中に CSM から FTP サーバの場所が提供されます。 |
データベース・スキーマをエクスポートするには、次の手順を実行します。
データベースの種類に応じて、次のエクスポート・アクションのいずれかを実行します。
-
データベース・ユーザとしてデータベース・サーバに接続します。
-
エクスポートするスキーマごとに、次のコマンドを実行します。
Copy codeexpdp system/<パスワード> schemas=<スキーマ名> dumpfile=<スキーマ名>_<日付>.dmp logfile=<スキーマ
名>_<日付>.log exclude=statistics directory=DATA_PUMP_DIR -
sqlplus system/<パスワード>などのシステム・ユーザでデータベースに接続し、次のコマンドを実行して Data Pump ディレクトリを見つけます。Copy codeSELECT directory_path FROM dba_directories WHERE directory_name = 'DATA_PUMP_DIR'; -
ディレクトリに移動すると、すべてのダンプ・ファイルがそこにあります。
-
データベース・スキーマのバックアップを圧縮します。
-
md5sumを実行します。 -
コマンド・ウィンドウを開き、md5.zip ファイルが展開された場所に移動して、次のコマンドを実行します。
Copy codemd5.exe -generate <圧縮されたフォルダのパス><圧縮されたフォルダの名前>.zip次に例を示します。
Copy codemd5.exe – generate C:\”Documents and Settings”\Desktop\ project1_filereposiotry.zipコマンドによって md5sum 出力が返されます。次に例を示します。
Copy code24BCED0C939DD7E61C6E4CCE252687BE db_schemas.zip -
この出力をテキスト・ファイルにコピーします。
-
圧縮したデータベース・スキーマとテキスト・ファイルを FTP サーバにアップロードします。
-
次のいずれかのオプションで、データベース・スキーマをバックアップします。
-
データベース・スキーマのバックアップを圧縮します。
-
md5sumを実行します。 -
コマンド・ウィンドウを開き、md5.zip ファイルが展開された場所に移動して、次のコマンドを実行します。
Copy codemd5.exe -generate <圧縮されたフォルダのパス><圧縮されたフォルダの名前>.zip次に例を示します。
Copy codemd5.exe – generate C:\”Documents and Settings”\Desktop\ project1_filereposiotry.zipコマンドによって md5sum 出力が返されます。次に例を示します。
Copy code24BCED0C939DD7E61C6E4CCE252687BE db_schemas.zip -
この出力をテキスト・ファイルにコピーします。
-
圧縮したデータベース・スキーマとテキスト・ファイルを FTP サーバにアップロードします。
次のステップ:

