このページを共有

# データベースとリポジトリのサイズの取得

この項では、ALM データベースとリポジトリのサイズを取得する方法について説明します。

すべての ALM プロジェクトには、独自のデータベース・スキーマとファイル・リポジトリがあります。このトピックのすべての手順を、SaaS に移行するすべてのプロジェクトに対して実行する必要があります。

このトピックの内容:

## SA データベース・スキーマ名の取得

次の手順に従って、サイト管理データベース・スキーマの名前を取得します。

1. ALM サーバにログインします。

2. 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

3. 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

4. DBNAME タグを使用して、サイト管理スキーマ名を検索します。

   たとえば、<DbName>SA_SCHEMA_NAME</DbName> のような箇所を検索します。

先頭に戻る

## ファイル・リポジトリのサイズの取得

次の手順に従って、ファイル・サーバからファイル・リポジトリのサイズを取得します。

1. ALM サイト管理を開きます。

2. 移行するプロジェクトを選択します。［プロジェクト詳細］タブの［プロジェクトディレクトリ］フィールドで、プロジェクトのファイル・リポジトリ・パスを見つけます。

3. ファイル・サーバ・マシンで、プロジェクトのリポジトリ・パスに移動し、次のコマンドを実行します。

   UNIX

   ディレクトリとすべてのサブディレクトリのサマリを計算して、人間が読める形式でサイズの値を表示するには、次のコマンドを使用します。

   Copy code

       du –sh ＜ディレクトリ名＞

   次に例を示します。

   Copy code

       root@ubuntu# du -sh /usr/ X11R6

       4.0K /usr/X11R6

   すべてのパス・リポジトリが同じパスをたどっている場合は、次のコマンドを使用すると、フォルダ内のサブディレクトリの最初のレベルのみのサマリが表示されます。このサマリにより、同じパスにあるすべてのファイル・リポジトリ・フォルダのサイズがわかります。

   次に例を示します。

   Copy code

       root@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

   Linux

   ディレクトリとすべてのサブディレクトリのサマリを計算して、人間が読める形式でサイズの値を表示するには、次のコマンドを使用します。

   Copy code

       du – sh

   次に例を示します。

   Copy code

       $ du -sh svn/ports

       6.2M svn/ports

   Windows

   フォルダを右クリックして［プロパティ］を選択し、フォルダのサイズを表示します。

先頭に戻る

## データベースからのプロジェクト情報の取得

すべてのプロジェクトの数、バージョン管理が有効になっているプロジェクトの数、特定のプロジェクト内のチェックアウトされたエンティティの数を取得します。

すべてのプロジェクトの数を取得するには、次の手順を実行します。

1. サイト管理データベース・スキーマを取得します。「SA データベース・スキーマ名の取得」を参照してください。

2. SA_SCHEMA パラメータを正しいサイト管理スキーマ名に設定します。

3. 次のクエリを実行します。

   Copy code

       SELECT COUNT(*) FROM '＜スキーマ＞'.PROEJCTS;

バージョン管理が有効になっているプロジェクトの数を取得するには、次の手順を実行します。

1. サイト管理データベース・スキーマを取得します。「SA データベース・スキーマ名の取得」を参照してください。

2. SA_SCHEMA パラメータを正しいサイト管理スキーマ名に設定します。

3. 次のクエリを実行します。

   Copy code

       SELECT * FROM PROJECTS WHERE PR_HAS_VCSDB='Y';

特定のプロジェクト内のチェックアウトされたエンティティの数を取得するには、次の手順を実行します。

1. 次のいずれかを実行して、プロジェクトのプロジェクト・データベース・スキーマ名を取得します。

   - ［サイト管理］＞［プロジェクト］タブでプロジェクトを選択します。［データベース名］フィールドの値を確認します。

   - サイト管理データベース・スキーマで次のクエリを実行し、クエリの出力から、プロジェクトの DB_NAME フィールドの値を取得します。

     Copy code

         SELECT * FROM PROJECTS

2. プロジェクト・データベース・スキーマ内で次のクエリを実行します。

   Oracle サーバ
   Copy code

       Select
       (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 code

       Select
       (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

先頭に戻る

## プロジェクト・データベース・スキーマのサイズの取得

次の手順に従って、プロジェクト・データベース・スキーマのサイズを取得します。

1. ALM サイト管理を開きます。

2. 移行するプロジェクトを選択します。［プロジェクト詳細］タブの［データベース名］フィールドで、プロジェクトのデータベース・スキーマを見つけます。［データベースサーバ］フィールドで、スキーマが配置されているサーバを見つけます。

3. データベース・サーバで、次のコマンドを実行してデータベース・スキーマのサイズを取得します。

   Oracle サーバ

   DB_USER_SCHEMA スキーマのサイズを取得するには、Oracle インスタンスに接続し、次の SQL クエリを実行します。

   - 各データベース・スキーマのサイズを取得するには、次のコマンドを実行します。

     Copy code

         SELECT SUM(BYTES)/1024/1024 "MB" FROM DBA_SEGMENTS WHERE owner='＜スキーマ＞';

   - すべてのデータベース・スキーマのサイズを一度に取得するには、次のコマンドを実行します。

     Copy code

         SELECT owner, SUM(BYTES)/1024/1024 "MB" FROM DBA_SEGMENTS group by owner

   MS SQL Server

   次のコマンドを実行して、現在のデータベースで使用されている領域のサマリを出力します。

   Copy code

       sp_spaceused

   出力：

   Copy code

       database_name database_size
       --------------- ---------------------------
       master 5 MB
       reserved data index_size unused
       --------- --------- ----------- --------
       2176 KB 1374 KB 72 KB 730 KB

   注: database_size メトリックには、データ・ファイルとログ・ファイルの両方を含む、現在のデータベースのサイズがメガバイト単位で示されます。

先頭に戻る

## すべてのプロジェクトのデータベースとリポジトリのサイズの取得

スマート・リポジトリ・メカニズムに基づいて、データベースに格納されているデータベース・スキーマやファイル・リポジトリのサイズなど、すべてのプロジェクトの詳細を取得します。

この項は、スマート・リポジトリ・メカニズムを備えた ALM 11.00 以降にのみ適用されます。

前提条件：

1. サイト管理データベース・スキーマを取得します。「SA データベース・スキーマ名の取得」を参照してください。

2. SA_SCHEMA パラメータを正しいサイト管理スキーマ名に設定します。

すべてのプロジェクトのデータベースとリポジトリのサイズを取得するには、次の手順を実行します。

次のクエリを実行します。

Oracle
Copy code

    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;

MS SQL
Copy code

    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 サーバの場所が提供されます。

データベース・スキーマをエクスポートするには、次の手順を実行します。

データベースの種類に応じて、次のエクスポート・アクションのいずれかを実行します。

Oracle

1. データベース・ユーザとしてデータベース・サーバに接続します。

2. エクスポートするスキーマごとに、次のコマンドを実行します。

   Copy code

       expdp system/＜パスワード＞ schemas=＜スキーマ名＞ dumpfile=＜スキーマ名＞_＜日付＞.dmp logfile=＜スキーマ
       名＞_＜日付＞.log exclude=statistics directory=DATA_PUMP_DIR

3. `sqlplus system/＜パスワード＞`などのシステム・ユーザでデータベースに接続し、次のコマンドを実行して Data Pump ディレクトリを見つけます。

   Copy code

       SELECT directory_path FROM dba_directories WHERE directory_name = 'DATA_PUMP_DIR';

4. ディレクトリに移動すると、すべてのダンプ・ファイルがそこにあります。

5. データベース・スキーマのバックアップを圧縮します。

6. `md5sum` を実行します。

7. コマンド・ウィンドウを開き、md5.zip ファイルが展開された場所に移動して、次のコマンドを実行します。

   Copy code

       md5.exe -generate ＜圧縮されたフォルダのパス＞＜圧縮されたフォルダの名前＞.zip

   次に例を示します。

   Copy code

       md5.exe – generate C:\”Documents and Settings”\Desktop\ project1_filereposiotry.zip

   コマンドによって md5sum 出力が返されます。次に例を示します。

   Copy code

       24BCED0C939DD7E61C6E4CCE252687BE db_schemas.zip

8. この出力をテキスト・ファイルにコピーします。

9. 圧縮したデータベース・スキーマとテキスト・ファイルを FTP サーバにアップロードします。

MS SQL Server

1. 次のいずれかのオプションで、データベース・スキーマをバックアップします。

   - 次のコマンドを実行して、各データベース・スキーマをバックアップします。

     Copy code

         Backup database X to disk=’＜パス＞’

   - 次のコマンドを実行して、各データベース・スキーマをデタッチします。

     Copy code

         Sp_detach_db ‘＜データベース名＞’

2. データベース・スキーマのバックアップを圧縮します。

3. `md5sum` を実行します。

4. コマンド・ウィンドウを開き、md5.zip ファイルが展開された場所に移動して、次のコマンドを実行します。

   Copy code

       md5.exe -generate ＜圧縮されたフォルダのパス＞＜圧縮されたフォルダの名前＞.zip

   次に例を示します。

   Copy code

       md5.exe – generate C:\”Documents and Settings”\Desktop\ project1_filereposiotry.zip

   コマンドによって md5sum 出力が返されます。次に例を示します。

   Copy code

       24BCED0C939DD7E61C6E4CCE252687BE db_schemas.zip

5. この出力をテキスト・ファイルにコピーします。

6. 圧縮したデータベース・スキーマとテキスト・ファイルを FTP サーバにアップロードします。

先頭に戻る

次のステップ：

- 「ALM/QC プロジェクトのエクスポート」

https://admhelp.microfocus.com ALM 8942
検索結果の改善のヒント... ALM ヘルプセンター ALM ヘルプセンター ALM ヘルプ 17.0 すべてローカル・ヘルプセンターの表示オンライン・ヘルプセンターの表示戻るブラウザ履歴で元に戻る進むブラウザ履歴で前に進む検索の強調表示を解除次のトピック次のトピックに移動前のトピック前のトピックに移動現在のトピックを印刷バージョン: