分享此页面

# 获取数据库和存储库大小

此部分提供有关如何获取 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 '<SCHEMA>'.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='<SCHEMA>';

   - 要一次获取所有数据库架构的大小，请运行:

     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 度量显示当前数据库的大小 (以 MB 为单位)，包括数据和日志文件。

返回页首

## 获取所有项目的数据库和存储库大小

根据智能存储库机制获取所有项目详细信息，包括存储在数据库中的项目数据库架构和文件存储库大小。

此部分仅适用于包含智能存储库机制的 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;
    /
    --- WHEN IT FINISHES RUN, YOU DO SELECT FROM THIS TABLE
    -------     select * from project_size_report;

MS SQL
Copy code

    USE [master]
    GO
    GO
    SET QUOTED_IDENTIFIER ON
    GO

    /*
      NOTE! you will have to find your value for the site admin db schema (sa_name).
      The default Site Administration database schema name is "qcsiteadmin_db"
      but it could have been changed when ALM/QC was installed
      Check the value <DbName> in siteadmin.xml under the deloyment directory,
      by default: 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

    /*
      NOTE! you will have to find your value for the site admin db schema (sa_name).
      The default Site Administration database schema name is "qcsiteadmin_db"
      but it could have been changed when ALM/QC was installed
      Check the value <DbName> in siteadmin.xml under the deloyment directory,
      by default: 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;

    --  This script creates a table 'project_size_report' with the required information.
    --  Export the table in Excel or CSV format and send it back to your SaaS CSM:
    --select * from master..project_size_report /* <@report_table> */

    --  Delete the table afterward if you wish:
    --drop table master..project_size_report /* <@report_table> */

返回页首

## 导出数据库架构

导出要迁移的每个项目的数据库架构。

先决条件

在导出数据库架构之前，考虑以下先决条件。

AWS S3 存储桶 | 您的 CSM 应在迁移过程中提供 AWS S3 存储桶位置。
MD5 软件 | 例如，md5。
FTP 服务器 | 只有当 AWS S3 存储桶由于某种原因不可用时，您的 CSM 才应在迁移过程中提供 FTP 服务器位置。

要导出数据库架构，请执行以下操作:

根据您的数据库类型，执行以下导出操作之一:

Oracle

1. 以数据库用户身份连接到数据库服务器。

2. 为要导出的每个架构运行以下命令。

   Copy code

       expdp system/<密码> schemas=<schema name> dumpfile=<架构名称>_<日期>.dmp
       logfile=<架构名称>_<日期>.log exclude=statistics directory=DATA_PUMP_DIR

3. 以系统用户身份连接数据库，例如 `sqlplus system/<密码>`，然后运行以下命令找到您的数据转储目录:

   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 ‘database name’

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 全部查看本地帮助中心查看联机帮助中心后退在浏览器历史记录中后退前进在浏览器历史记录中前进删除突出显示的搜索项下一个主题转到下一个主题上一个主题转到上一个主题打印当前主题版本: