Convertir des rapports après une mise à jour vers la version 8.00A
Les rapports des tâches, agents, processus serveurs, etc. consomment beaucoup d'espace dans la base de données AE. Lors de la mise à jour de la base de données de la version Automation Engine 6.00A à la version 8.00A, ces données sont converties de façon particulière. Cela peut prendre plusieurs heures en fonction du volume de données. Pour ne pas désactiver votre système trop longtemps lors de la mise à jour, vous avez la possibilité de copier les rapports ultérieurement. Il n'est pas nécessaire d'arrêter le système pour cela.
Vous ne pouvez ensuite copier les données des rapports que pour les bases de données MS SQL Server et Oracle ! Notez qu'ILM ne doit pas être activé et les ordinateurs sur lesquels les scripts de la base de données et la base de données elle-même sont exécutés ne doivent pas être arrêtés.
De plus, la conversion ultérieure des rapports ne peut être effectuée que pour la mise à jour d'une base de données vers la version 8.00A ! Lors d'une montée de la version 6.00A vers la version 9.00A, les données des rapports sont converties pendant le processus de mise à jour.
Remarques importantes : La base de données AE ne doit pas être réorganisée pendant le déroulement du processus !
Suivez les indications de la section Mise à jour d'un système AE jusqu'à l'étape "Mise à jour de la base de données AE" lorsque vous installez la mise à jour.
Dans les étapes qui suivent, les commandes doivent être exécutées manuellement dans la base de données AE. Automic recommande de ne faire exécuter ces commandes que par un administrateur de la base de données ou de le faire avec son aide. Pour cela, vous devez faire appel à un utilisateur de la base de données qui possède les autorisations correspondantes mentionnées dans le chapitre Configuration de la base de données. Sélectionnez le type de base de données correct et accédez à la section "Créer un utilisateur de base de données" ou "Définir un utilisateur AE". Il est essentiel de disposer de l'autorisation d'exécuter des procédures enregistrées !
Vous avez également la possibilité d'effectuer une mise à jour sans rapports et de supprimer ces derniers. Pour cela, exécutez uniquement le point 1 et supprimez ensuite les tables RH_OLD et RT_OLD. Notez toutefois que les données des rapports ne pourront plus être rétablies !
Déroulement
|
1.
|
Avant la mise à jour de la base de données AE |
- Ouvrez le répertoire \db\general\8.00A.
-
Le répertoire DB est enregistré sous IMAGE:DB et doit également être stocké en parallèle au répertoire BIN des utilitaires.
- Ouvrez le fichier UC_UPD.TXT.
- Modifiez la ligne "process_sql_file do_report.sql" en "message process_sql_file do_report.sql". Les rapports (à l'exception des Agents) ne seront ainsi pas convertis pendant le processus de mise à jour.
Les rapports des Agents sont déjà convertis avec les instructions du fichier "switch_report.sql". Si vous modifiez ces données par la suite, vous ne pourrez plus accéder aux rapports précédents une fois que vous aurez démarré l'agent.
- Démarrez le programme AE DB Load et sélectionnez le fichier UC_UPD.TXT (voir Mise à jour d'un système AE - Mise à jour de la base de données AE). La base de données est maintenant mise à jour.
- Vous exécutez ensuite les autres étapes de la section Instructions d'installation de la mise à jour jusqu'à la fin.
|
2. |
Conversion des rapports après la mise à jour AE |
-
Attention : Vérifiez, avant de convertir les rapports, si vous disposez d'un espace mémoire suffisant et si les tables RT/RH sont toujours adaptées à la base de données ! La table RH contient les enregistrements des rapports et la table RT les textes des rapports.
- Connectez-vous à la base de données avec l'utilisateur qui possède tous les droits requis.
- Le contenu du fichier "do_report.sql", qui a été précédemment ignoré, peut maintenant être exécuté ; ce fichier est à l'origine de la conversion des données des rapports. Le processus de conversion comprend deux procédures enregistrées qui ont été créées par le script "switch_report.sql".
- Exécutez d'abord la procédure enregistrée UC_PREPARE_COPY_REP avec la commande suivante :
Oracle : EXECUTE UC_PREPARE_COPY_REP ;
MS SQL Server : exec UC_PREPARE_COPY_REP
Les tables temporaires RH_TEMP et RH_TEMP2 sont ainsi créées. La table RH_TEMP est remplie avec le contenu de la table RH_OLD, laquelle contient les enregistrements des rapports originaux. Tous les enregistrements qui ont déjà été convertis par les procédures de stockage UC_GET_LAST_AGENT_LOG et UC_WRITE_LAST_AGENT_LOG sont supprimés de la table RH_TEMP pour les Agents.
- La procédure de stockage UC_WRITE_OLD_REP doit ensuite être appelée. Le nombre d'enregistrements qui doivent être copiés en une seule fois et la durée d'attente consécutive en secondes doivent être spécifiés dans les paramètres.
Oracle :EXECUTE UC_WRITE_OLD_REP(10000,1) ;
MS SQL Server : exec UC_WRITE_OLD_REP '10000', '00:00:01'
Les 10000 premiers enregistrements de la table RH_TEMP sont ainsi toujours chargés dans la table RH_TEMP2. Ces enregistrements sont ensuite copiés des tables RH_OLD / RT_OLD vers les tables RH / RT, qui comportent déjà le nouveau schéma de la version 8.00A. La procédure supprime ensuite les enregistrements stockés dans les tables temporaires. Si une erreur survient, la procédure se poursuit jusqu'à ce que toutes les données aient été copiées.
|
3. |
Procédure en cas d'erreur "ah for rh not found" |
-
Les procédures de réparation ne peuvent être exécutées que si vous convertissez les rapports manuellement par la suite !
Vous devez exécuter les étapes suivantes si le message ci-après s'affiche lors de l'exécution de la procédure enregistrée UC_WRITE_OLD_REP : "ah for rh not found - use repair procedures"
- Exécutez la procédure enregistrée UC_REPAIR_FK_RH dans la base de données AE :
Oracle : EXECUTE UC_REPAIR_FK_RH ;
MS SQL Server : exec UC_REPAIR_FK_RH
Tous les enregistrements qui ne sont plus disponibles dans les statistiques (AH) sont ainsi supprimés de la table RH_TEMP.
- La commande suivante peut maintenant être de nouveau appelée :
Oracle : EXECUTE UC_WRITE_OLD_REP(10000,1) ;
MS SQL Server : exec UC_WRITE_OLD_REP '10000', '00:00:01'
- Répétez ces étapes si l'erreur se produit à nouveau.
|
4. |
Procédure en cas d'erreur "rh for rt not found" |
Vous devez exécuter les étapes suivantes si le message ci-après s'affiche lors de l'exécution de la procédure enregistrée UC_WRITE_OLD_REP : "rh for rt not found - use repair procedures"
- Exécutez la procédure enregistrée UC_REPAIR_FILL_TEMP2. Le nombre d'enregistrements qui ont déjà été utilisés pour la procédure UC_WRITE_OLD_REP est spécifié dans les paramètres.
Oracle : EXECUTE UC_REPAIR_FILL_TEMP2(10000) ;
MS SQL Server : exec UC_REPAIR_FILL_TEMP2 10000
La table temporaire RH_TEMP2 est maintenant remplie avec les enregistrements pour lesquels une erreur est survenue.
- Exécutez ensuite la commande suivante :
Oracle : EXECUTE UC_REPAIR_FK_RT_ANY_DUPL ;
MS SQL Server : exec UC_REPAIR_FK_RT_ANY_DUPL
Les enregistrements erronés de la table RH_TEMP2 sont supprimés des tables RT/RH. La table RH_TEMP2 est ensuite vidée.
- La commande suivante peut maintenant être de nouveau appelée :
Oracle : EXECUTE UC_WRITE_OLD_REP(10000,1) ;
MS SQL Server : exec UC_WRITE_OLD_REP '10000', '00:00:01'
- Répétez ces étapes si l'erreur se produit à nouveau.
|
5.
|
Suppression des tables temporaires |
- Si le processus s'est déroulé correctement (procédure enregistrée UC_WRITE_OLD_REP), les tables temporaires peuvent être supprimées de la base de données. Cette opération est importante pour libérer de l'espace mémoire.
- Le fichier "do_report.sql" contient des commandes DROP commentées. Supprimez le commentaire et exécutez ces lignes manuellement dans la base de données AE.
- Les commandes suivantes sont disponibles :
Oracle :
drop table ah_temp ;
drop table rh_temp ;
drop table rh_temp2 ;
drop table rt_old ;
drop table rh_old ;
MS SQL Server :
drop table ah_temp
GO
drop table rh_temp
GO
drop table rh_temp2
GO
drop table rt_old
GO
drop table rh_old
GO
Graphique du déroulement du processus