Obtenir la taille de la base de données et du référentiel
Cette section fournit des instructions sur la manière d’obtenir la taille de votre base de données et de votre référentiel ALM.
Chaque projet ALM possède son propre schéma de base de données et son propre référentiel de fichiers. Toutes les étapes de cette rubrique doivent être réalisées pour chaque projet que vous souhaitez migrer vers SaaS.
Obtenir le nom du schéma de la base de données SA
Suivre les étapes ci-dessous pour obtenir le nom du schéma de base de données de l’administration du site.
-
Se connecter au serveur ALM.
-
Aller dans le répertoire où ALM/QC est déployé ou installé.
Linux
Dossier de déploiement -
ALM 12.60 P1 ou plus récent : /var/opt/Micro Focus/ALM/
-
ALM 12.60 ou antérieur : /var/opt/HP/ALM/
Dossier d’installation /opt/Micro Focus/ALM
Windows
Dossier de déploiement C:\Quality Center ou C:\QC Dossier d’installation -
ALM 12.60 P1 ou plus récent : C:\Program Files\Micro Focus\ALM
-
ALM 12.60 ou antérieur : C:\Program Files\HP\ALM
-
-
Aller dans le répertoire où le fichier siteadmin.xml est enregistré, et l’ouvrir en mode modifier.
Linux /var/opt/Micro Focus/ALM/webapps/qcbin/WEB-INF Windows Effectuer l’une des opérations suivantes :
-
<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
-
-
Rechercher le nom du schéma de l’administrateur du site à l’aide de l’étiquette DBNAME.
Par exemple, <DbName>SA_SCHEMA_NAME</DbName>.
Obtenir la taille du référentiel de fichiers
Suivre l’étape ci-dessous pour obtenir la taille du référentiel de fichiers du serveur de fichiers.
-
Ouvrez Administration du site ALM
-
Sélectionner le projet à migrer. Dans l’onglet Détails du projet, sous le champ Répertoire du projet, trouver le chemin du référentiel de fichiers du projet.
-
Sur la machine du serveur de fichiers, naviguer vers le chemin du référentiel du projet et exécuter la commande suivante.
UNIX
Pour résumer le répertoire et tous les sous-répertoires et afficher les valeurs de taille dans un format lisible par l’homme, utiliser :
Copy codedu –sh <directory name>Par exemple,
Copy coderoot@ubuntu# du -sh /usr/ X11R6
4.0K /usr/X11R6Si vous constatez que tous vos référentiels suivent le même chemin, utiliser la commande suivante pour afficher le résumé du premier niveau des sous-répertoires du dossier uniquement. Ce résumé vous permet de connaître la taille de tous les dossiers de référentiels de fichiers sur le même chemin.
Par exemple,
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
Cliquer avec le bouton droit de la souris sur le dossier et sélectionner Propriétés pour afficher la taille du dossier.
Obtenir des informations sur les projets à partir de la base de données
Obtenir le nombre de tous les projets, le nombre de projets dont le contrôle de version est activé, et le nombre d’entités contrôlées dans des projets spécifiques.
Pour obtenir le nombre de tous les projets :
-
Obtenir le schéma de base de données de l’administration du site. Voir Obtenir le nom du schéma de la base de données SA.
-
Définir le paramètre SA_SCHEMA sur le nom correct du schéma d’administration du site.
-
Exécuter le script suivant :
Copy codeSÉLECTIONNER DÉCOMPTE(*) DE '<SCHEMA>'.PROEJCTS ;
Pour obtenir le nombre de projets dont le contrôle de version est activé :
-
Obtenir le schéma de base de données de l’administration du site. Voir Obtenir le nom du schéma de la base de données SA.
-
Définir le paramètre SA_SCHEMA sur le nom correct du schéma d’administration du site.
-
Exécuter le script suivant :
Copy codeSÉLECTIONNER* DE PROJETS OÙ PR_HAS_VCSDB='Y' ;
Pour obtenir le nombre d’entités contrôlées dans un projet spécifique :
-
Obtenir le nom du schéma de la base de données du projet en effectuant l’une des opérations suivantes :
-
Sélectionner le projet dans l’onglet Administration du site > Projets. Vérifier la valeur du champ Nom de la base de données.
-
Exécuter la requête suivante sur le Schéma de base de données de l’administration du site et, à partir du résultat de la requête, obtenir la valeur du champ DB_NAME du projet :
Copy codeSÉLECTIONNER * À PARTIR DE PROJETS
-
-
Exécuter la requête suivante dans le schéma de la base de données du projet :
Serveur Oracle
Copy codeSélectionner (SELECT count(*) from vc_test) comme Tests, (Select count(*) from vc_req) comme Exigences, (select count (*) from vc_component) comme Composants, (select count(*) from vc_resources) comme Ressources, (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
Dans le serveur MS SQL
Copy codeSélectionner (SELECT count(*) from td.vc_test) comme Tests, (Select count(*) from td.vc_req) comme Exigences, (select count (*) from td.vc_component) comme Composants, (select count(*) from td.vc_resources) comme Ressources, (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
Obtenir la taille du schéma de la base de données du projet
Suivre les étapes ci-dessous pour obtenir la taille du schéma de la base de données du projet.
-
Ouvrez Administration du site ALM
-
Sélectionner le projet à migrer. Dans l’onglet Détails du projet, sous le champ Nom de la base de données, rechercher le schéma de la base de données du projet. Dans le champ Serveur de base de données, rechercher le serveur où se trouve le schéma.
-
Sur le serveur de base de données, exécuter la commande suivante pour obtenir la taille du schéma de la base de données.
Serveur Oracle
Pour obtenir la taille du schéma DB_USER_SCHEMA, se connecter à l’instance Oracle et exécuter la requête SQL suivante.
-
Pour obtenir la taille de chaque schéma de base de données, exécuter :
Copy codeSELECT SUM(BYTES)/1024/1024 "MB" FROM DBA_SEGMENTS WHERE owner='<SCHEMA>';
-
Pour obtenir la taille de tous les schémas de la base de données en une seule fois, exécuter :
Copy codeSÉLECTIONNER propriétaire, SUM(BYTES)/1024/1024 "MB" FROM DBA_SEGMENTS regrouper par propriétaire
Serveur MS SQL
Exécuter la commande suivante pour imprimer un résumé de l’espace utilisé dans la base de données actuelle.
Copy codesp_spaceusedRésultat :
Copy codedatabase_name database_size
--------------- ---------------------------
master 5 MB
reserved data index_size unused
--------- --------- ----------- --------
2176 KB 1374 KB 72 KB 730 KBNote : La métrique database_size indique la taille de la base de données actuelle en mégaoctets, y compris les fichiers de données et les fichiers journaux.
-
Obtenir la taille de la base de données et du référentiel de tous les projets
Obtenir tous les détails des projets, y compris leur schéma de base de données et la taille du référentiel de fichiers, tels qu’ils sont stockés dans la base de données sur la base du mécanisme de référentiel intelligent.
Cette section s’applique uniquement à ALM 11.00 et aux versions ultérieures qui incluent le mécanisme de référentiel intelligent.
Conditions préalables :
-
Obtenir le schéma de base de données de l’administration du site. Voir Obtenir le nom du schéma de la base de données SA.
-
Définir le paramètre SA_SCHEMA sur le nom correct du schéma d’administration du site.
Pour obtenir la taille de la base de données et du référentiel de tous les projets :
Exécuter le script suivant :
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 ! vous devrez chercher votre valeur pour le schéma de base de données d’admin. du site (sa_name).
Le nom du schéma de base de données de l’administration du site par défaut est « qcsiteadmin_db »
mais il a pu être modifié lors de l’installation d’ALM/QC
Vérifier la valeur <DbName> dans siteadmin.xml sous le répertoire déploiement,
par défaut : 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).
Le nom du schéma de base de données de l’administration du site par défaut est « qcsiteadmin_db »
mais il a pu être modifié lors de l’installation d’ALM/QC
Vérifier la valeur <DbName> dans siteadmin.xml sous le répertoire déploiement,
par défaut : 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> */
Exporter le schéma de la base de données
Exporter le schéma de la base de données de chaque projet que vous voulez migrer.
Conditions préalables
Tenir compte des conditions préalables suivantes avant d’exporter le schéma de la base de données.
| Sceau AWS S3 | Un emplacement pour le Sceau AWS S3 doit être fourni par votre CSM pendant le processus de migration. |
| Logiciel MD5 | Par exemple, md5. |
| Serveur FTP | Seulement lorsque le Sceau AWS S3 n’est pas disponible pour une raison quelconque, un emplacement de serveur FTP doit être fourni par votre CSM pendant le processus de migration. |
Pour exporter le schéma de la base de données :
Effectuer l’une des actions d’exportation suivantes, selon le type de votre base de données :
-
Se connecter au serveur de la base de données en tant qu’utilisateur de la base de données.
-
Exécuter la commande suivante pour chaque schéma que vous souhaiter exporter.
Copy codeexpdp system/<password> schemas=<schema name> dumpfile=<schema name>_<date>.dmp logfile=<schema
name>_<date>.log exclude=statistics directory=DATA_PUMP_DIR -
Se connecter à la base de données en tant qu’utilisateur système, par exemple,
sqlplus système/<password>, et exécuter la commande suivante pour ouvrir votre répertoire de vidage de données :Copy codeSÉLECTIONNER directory_path FROM dba_directories OÙ directory_name = 'DATA_PUMP_DIR'; -
Passer au répertoire, et vous verrez tous les fichiers de vidage.
-
Compresser les sauvegardes des schémas de la base de données.
-
Exécuter
md5sum. -
Ouvrir une fenêtre de commande, naviguer jusqu’à l’emplacement où le fichier md5.zip a été extrait, et exécuter la commande suivante.
Copy codemd5.exe -generate <compressed folder path><compressed folder name.zip>Par exemple,
Copy codemd5.exe – generate C:\”Documents and Settings”\Desktop\ project1_filereposiotry.zipLa commande renvoie le résultat md5sum. Par exemple,
Copy code24BCED0C939DD7E61C6E4CCE252687BE db_schemas.zip -
Copier le résultat dans un fichier texte.
-
Télécharger le schéma de base de données compressé et le fichier texte vers le serveur FTP.
-
Sauvegarder les schémas de la base de données en utilisant l’une des options suivantes.
-
Compresser les sauvegardes des schémas de la base de données.
-
Exécuter
md5sum. -
Ouvrir une fenêtre de commande, naviguer jusqu’à l’emplacement où le fichier md5.zip a été extrait, et exécuter la commande suivante.
Copy codemd5.exe -generate <compressed folder path><compressed folder name.zip>Par exemple,
Copy codemd5.exe – generate C:\”Documents and Settings”\Desktop\ project1_filereposiotry.zipLa commande renvoie le résultat md5sum. Par exemple,
Copy code24BCED0C939DD7E61C6E4CCE252687BE db_schemas.zip -
Copier le résultat dans un fichier texte.
-
Télécharger le schéma de base de données compressé et le fichier texte vers le serveur FTP.
Étapes suivantes :

