Obtain database and repository size
This section provides instructions about how to obtain the size of your ALM database and repository.
Every ALM project has its own database schema and file repository. All the steps in this topic should be performed for every project you want to migrate to SaaS.
Obtain SA database schema name
Follow the steps below to obtain the name of the Site Administration database schema.
-
Log in to the ALM server.
-
Go to the directory where ALM/QC is deployed or installed.
Linux
Deployment folder -
ALM 12.60 P1 or later: /var/opt/Micro Focus/ALM/
-
ALM 12.60 or earlier: /var/opt/HP/ALM/
Installation folder /opt/Micro Focus/ALM Windows
Deployment folder C:\Quality Center or C:\QC Installation folder -
ALM 12.60 P1 or later: C:\Program Files\Micro Focus\ALM
-
ALM 12.60 or earlier: C:\Program Files\HP\ALM
-
-
Go to the directory where the siteadmin.xml file is saved, and open it in edit mode.
Linux /var/opt/Micro Focus/ALM/webapps/qcbin/WEB-INF Windows One of the following:
-
<ALM/QC directory>/webapps/qcbin/WEB_INF
-
<ALM/QC directory>\jboss\server\default\deploy\10sabin.war\WEB-INF
-
<ALM/QC directory>\application\10sabin.war\WEB-INF
-
-
Search for site admin schema name using the DBNAME tag.
For example, <DbName>SA_SCHEMA_NAME</DbName>.
Obtain file repository size
Follow the step below to obtain the size of the file repository from the file server.
-
Open ALM Site Administration.
-
Select the project you want to migrate. In the Project Details tab, under the Project Directory field, find the file repository path of the project.
-
On the file server machine, navigate to the repository path of the project and run the following command.
UNIX
To summarize the directory and all sub-directories and display size values in a human-readable format, use:
Copy codedu –sh <directory name>
For example,
Copy coderoot@ubuntu# du -sh /usr/ X11R6
4.0K /usr/X11R6If you find all your path repositories follow the same path, use the following command to show the summary of only the first level of the sub-directories within the folder. This summary lets you know the size of all the file repositories folders on the same path.
For example,
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/srcWindows
Right-click the folder and select Properties to view the size of the folder.
Obtain projects information from database
Obtain the number of all projects, the number of projects with version control enabled, and the number of checked-out entities within specific projects.
To obtain the number of all projects:
-
Obtain the Site Administration database schema. See Obtain SA database schema name.
-
Set the SA_SCHEMA parameter to the correct Site Administration schema name.
-
Run the following query:
Copy codeSELECT COUNT(*) FROM '<SCHEMA>'.PROEJCTS;
To obtain the number of projects with version control enabled:
-
Obtain the Site Administration database schema. See Obtain SA database schema name.
-
Set the SA_SCHEMA parameter to the correct Site Administration schema name.
-
Run the following query:
Copy codeSELECT * FROM PROJECTS WHERE PR_HAS_VCSDB='Y';
To obtain the number of checked-out entities within a specific project:
-
Obtain the project database schema name of the project by doing one of the following:
-
Select the project in the Site Administration > Projects tab. Check the value of the Database Name field.
-
Run the following query on the Site Administration database schema, and from the query output, obtain the value of the DB_NAME field of the project:
Copy codeSELECT * FROM PROJECTS
-
-
Run the following query within the project database schema:
Oracle server
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 dualMS 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
Obtain project database schema size
Follow the steps below to obtain the size of the project database schema.
-
Open ALM Site Administration.
-
Select the project you want to migrate. In the Project Details tab, under the Database Name field, find the database schema of the project. Under the Database Server field, find the server where the schema is located.
-
On the database server, run the following command to obtain the size of the database schema.
Oracle server
To obtain the size of the DB_USER_SCHEMA schema, connect to the Oracle instance and run the following SQL query.
-
To obtain the size of each database schema, run:
Copy codeSELECT SUM(BYTES)/1024/1024 "MB" FROM DBA_SEGMENTS WHERE owner='<SCHEMA>';
-
To obtain the size of all database schemas at one time, run:
Copy codeSELECT owner, SUM(BYTES)/1024/1024 "MB" FROM DBA_SEGMENTS group by owner
MS SQL Server
Run the following command to print a summary of space used in the current database.
Copy codesp_spaceused
Output:
Copy codedatabase_name database_size
--------------- ---------------------------
master 5 MB
reserved data index_size unused
--------- --------- ----------- --------
2176 KB 1374 KB 72 KB 730 KBNote: The database_size metric shows the size of the current database in megabytes, including both data and log files.
-
Obtain database and repository size of all projects
Obtain all the projects details including their database schema and file repository size as stored in the database based on the smart repository mechanism.
This section is applicable only to ALM 11.00 and later that includes the smart repository mechanism.
Prerequisites:
-
Obtain the Site Administration database schema. See Obtain SA database schema name.
-
Set the SA_SCHEMA parameter to the correct Site Administration schema name.
To obtain database and repository size of all projects:
Run the following query:

SET serveroutput ON size unlimited;
DECLARE
sa_name VARCHAR2(50 CHAR) := '<SA_SCHEME>';
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;

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\Micro Focus\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\Micro Focus\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> */
Export database schema
Export the database schema of each project you want to migrate.
Prerequisites
Consider the following prerequisites before you export the database schema.
AWS S3 Bucket | An AWS S3 Bucket location should be provided by your CSM during the migration process. |
MD5 software | For example, md5. |
FTP server | Only when AWS S3 Bucket is not available for some reason, a FTP server location should be provided by your CSM during the migration process. |
To export the database schema:
Perform one of the following export actions, depending on your database type:

-
Connect to the database server as a database user.
-
Run the following command for each schema you want to export.
Copy codeexpdp system/<password> schemas=<schema name> dumpfile=<schema name>_<date>.dmp logfile=<schema
name>_<date>.log exclude=statistics directory=DATA_PUMP_DIR -
Connect to the database as a system user, for example,
sqlplus system/<password>
, and run the following command to locate your data pump directory:Copy codeSELECT directory_path FROM dba_directories WHERE directory_name = 'DATA_PUMP_DIR';
-
Change to the directory, and you will see all the dump files.
-
Compress the backups of the database schemas.
-
Run
md5sum
. -
Open a command window, navigate to the location where the md5.zip file was extracted, and run the following command.
Copy codemd5.exe -generate <compressed folder path><compressed folder name.zip>
For example,
Copy codemd5.exe – generate C:\”Documents and Settings”\Desktop\ project1_filereposiotry.zip
The command returns the md5sum output. For example,
Copy code24BCED0C939DD7E61C6E4CCE252687BE db_schemas.zip
-
Copy the output to a text file.
-
Upload the compressed database schema and the text file to the FTP server.

-
Back up the database schemas by one of the following options.
-
Compress the backups of the database schemas.
-
Run
md5sum
. -
Open a command window, navigate to the location where the md5.zip file was extracted, and run the following command.
Copy codemd5.exe -generate <compressed folder path><compressed folder name.zip>
For example,
Copy codemd5.exe – generate C:\”Documents and Settings”\Desktop\ project1_filereposiotry.zip
The command returns the md5sum output. For example,
Copy code24BCED0C939DD7E61C6E4CCE252687BE db_schemas.zip
-
Copy the output to a text file.
-
Upload the compressed database schema and the text file to the FTP server.
Next steps: