Metcal v8 Guide pour fusionner deux bases de données 1. Objectif... 1 2. Limitations... 1 3. Préparation... 2 3.1 Pré-requis concernant les deux bases... 2 3.2 Pré-requis concernant la base d accueil... 2 3.3 Pré-requis concernant la base à importer... 2 4. Déchargement de la base de données à importer... 2 4.1 Information sur la base de données à importer... 2 4.2 Déchargement des tables de la base de données à importer... 4 4.3 Préparation du fichier de chargement SQL... 5 5. Connexion sur la base de données d accueil... 5 5.1 Information sur la base de données d accueil... 5 5.2 Exécution du fichier de chargement SQL... 6 6. Vérifications de la base de données fusionnée... 6 6.1 Nombre d enregistrements... 6 6.2 Gestion des utilisateurs importés... 7 6.3 Vérification de la fusion... 7 1. Objectif Il s agit de fusionner deux bases de données possédant une structure identique. A l issue de la fusion, l ensemble du parc des instruments de la base importée, incluant les mesures, les événements de réparation, de maintenance, de localisation et les propriétaires des matériels (clients) sera exploitable dans la base d accueil. 2. Limitations Les bureaux des utilisateurs, les ségrégations de la base de données, les listes déroulantes, les triggers et les tables externes supplémentaires éventuellement présentes dans la base de données importées ne sont pas migrés vers la base de données d accueil. Les utilisateurs de niveaux 0 ne sont pas importés dans la base de données d accueil. Les autres utilisateurs sont migrés mais avec le niveau de privilège 0. Ils pourront être rétablis dans leurs privilèges ultérieurement. Les licences contenues dans la base de données d importation ne sont pas recopiées. Elles doivent être réintégrer dans la base de données d accueil à partir de leur source (disquette ou clef USB). Page 1 sur 7
3. Préparation 3.1 Pré-requis concernant les deux bases Les deux bases de données viennent d être sauvegardées. Les deux bases de données sont à la même version (incluant le numéro de build). Si ce n est pas le cas, on utilise l outil dbupdate.exe pour amener les deux bases à la même version. La structure des deux bases de données est rigoureusement identique : Même champs utilisés, même propriétés pour chaque champ. Il n existe aucun instrument en commun dans les deux bases de données (pas d immatriculation commune) Il n existe aucun client en commun dans les deux bases de données. Sur les deux bases, les identifiants et mots de passe administrateur sont connus et les logiciels Sybase Central et ISQL sont installés. Le procédé décrit ci-dessous concerne MET/CAL v7.30 à v8.1 et Sybase Central v6 (SQL Anywhere v11). Lors de la fusion de base de données gérées avec MET/CAL v7.20 et Sybase Central v4.1 (SQL Anywhere v8), seules les étapes 4.2 et 4.3 diffèrent. Sybase Central v4.1 ne permet pas le déchargement distinct de chacune des tables. On effectue donc un déchargement complet dont on extrait ensuite les tables requises. 3.2 Pré-requis concernant la base d accueil Les listes déroulantes obligatoires sont inhibées. Elles pourront être rétablies à l issu de l importation. 3.3 Pré-requis concernant la base à importer Tous les utilisateurs sont associés au bureau par défaut. Il n existe pas de ségrégation hormis celle concernant les deux sous-bases «mt» et «std». 4. Déchargement de la base de données à importer 4.1 Information sur la base de données à importer Afin de vérifier le nombre d enregistrement de chaque table présent dans la base de données, on exécute une séquence de commande en langage SQL depuis le logiciel ISQL. Connexion à la ba se de données : On saisit l identifiant et le mot de passe administrateur dans l onglet [Identification]. On saisit le nom du serveur dans l onglet [Database] puis on clique sur [OK]. Page 2 sur 7
Choix du menu déroulant [File][Open] [statistiques BDD B.sql]. select 'customers'; output to "C:\datas\BDD_B.csv" format ascii append; select count (*) as Nb_Client from mt.customers; output to "C:\datas\BDD_B.csv" format ascii append; select 'userlist'; ( ) select 'inventory'; ( ) select 'calibration'; ( ) select 'location'; ( ) select 'repair'; ( ) select 'CalResults'; ( ) select 'Standards'; ( ) select 'results'; ( ) Cliquer ensuite sur [SQL][Execute] pour exécuter la séquence de commande SQL. Le fichier CSV obtenu avec la base de données à importer sera ensuite mis en liaison avec le fichier équivalent issu de la base de données d accueil puis le fichier issu de la fusion des bases. Ceci permettra de vérifier que la somme des enregistrements des deux premières bases correspond bien au nombre d enregistrement de la base de données de fusion. Page 3 sur 7
4.2 Déchargement des tables de la base de données à importer Pour chacune des tables concernées, le déchargement consiste à créer deux fichiers. Un fichier SQL qui est un fichier de commande SQL qui sera exécuté sur la base de données d accueil. Un fichier DAT qui est un fichier de données qui sera invoqué par le fichier de commande SQL lors de l importation. La création de ces deux fichiers nécessite le lancement de Sybase Central. La connexion s effectue en cliquant sur SQL Anywhere 11, puis bouton droit, [Connect ] Dans la boîte de dialogue qui s ouvre, les paramètres à saisir sont les mêmes que pour le 4.1. Une fois connecté à la base de données, on choisit une par une les tables qui vont être déchargées. Choix de la table : mt.customers Bouton droit [Unload Data ] Dans la boîte de dialogue qui s ouvre, il s agit de choisir un répertoire pour le fichier DAT (Data files) puis de choisir un répertoire et un nom explicite pour le fichier SQL (Reload file). On clique ensuite sur [OK] pour générer les deux fichiers. On répète ensuite l opération pour les tables suivantes : mt.userlist mt.inventory mt.calibration mt.location mt.repair mt.calresults mt.standards mt.results Page 4 sur 7
4.3 Préparation du fichier de chargement SQL Une fois les fichiers SQL générés, on peut les concaténer en un seul fichier pour simplifier ensuite l opération d importation. Il convient de respecter impérativement l ordre de chargement des tables suivant : mt.customers mt.userlist mt.inventory mt.calibration mt.location mt.repair mt.calresults mt.standards mt.results 5. Connexion sur la base de données d accueil 5.1 Information sur la base de données d accueil Afin de vérifier le nombre d enregistrement de chaque table présent dans la base de données d accueil, on exécute une séquence de commande en langage SQL depuis le logiciel ISQL. Menu déroulant [File][Open] [statistiques BDD A.sql] select 'customers'; output to "C:\datas\BDD_A.csv" format ascii append; select count (*) as Nb_Client from mt.customers; output to "C:\datas\BDD_A.csv" format ascii append; select 'userlist'; ( ) select 'inventory'; ( ) select 'calibration'; ( ) select 'location'; ( ) select 'repair'; ( ) select 'CalResults'; ( ) select 'Standards'; ( ) select 'results'; ( ) On clique ensuite sur [SQL][Execute] pour exécuter la séquence de commande SQL. Page 5 sur 7
5.2 Exécution du fichier de chargement SQL Toujours depuis le logiciel ISQL, on exécute la séquence de commande en langage SQL qui permet l importation. [File][Open] [chargement_bdd.sql] LOAD TABLE "mt"."customers" ("KTAG","KPUBLISH","K4601", ( ) FROM '718.dat' ( ) go LOAD TABLE "mt"."userlist" ( ) LOAD TABLE "mt"."inventory" ( ) LOAD TABLE "mt"."calibration" ( ) LOAD TABLE "mt"."location" ( ) LOAD TABLE "mt"."repair" ( ) LOAD TABLE "mt"."calresults" ( ) LOAD TABLE "mt"."standards" ( ) LOAD TABLE "mt"."results" ( ) commit work go On clique ensuite sur [SQL][Execute] pour exécuter la séquence de commande SQL. 6. Vérifications de la base de données fusionnée 6.1 Nombre d enregistrements Afin de vérifier le nombre d enregistrement total, on exécute une séquence de commande en langage SQL depuis le logiciel ISQL. Menu déroulant [File][Open] [statistiques BDD AB.sql] Chaque table doit contenir la somme des enregistrements des deux tables d origine. select 'customers'; output to "C:\datas\BDD_AB.csv" format ascii append; select count (*) as Nb_Client from mt.customers; output to "C:\datas\BDD_AB.csv" format ascii append; select 'userlist'; ( ) select 'inventory'; ( ) select 'calibration'; ( ) select 'location'; ( ) select 'repair'; ( ) select 'CalResults'; ( ) select 'Standards'; ( ) select 'results'; ( ) On clique ensuite sur [SQL][Execute] pour exécuter la séquence de commande SQL. Page 6 sur 7
6.2 Gestion des utilisateurs importés Connexion au logiciel METTRACK en mode administrateur Menu [Installation][Utilisateurs/Mots de passe] Sélectionner les utilisateurs de la base de données importée. Bouton [Delete User] Au message [Confirm deletion of user xxx from the database? ], cliquer sur [Oui]. Au message [The user cannot be deleted because the user has created or edited one or more records in the database. Do you wish to disable the password for xxx?], cliquer sur [Oui]. Il est ensuite possible de rétablir les niveaux de privilèges précédents octroyés aux utilisateurs concernés. 6.3 Vérification de la fusion Accès à MetTrack avec un identifiant et un mot de passe utilisateur Lancement d une fiche de vie d un instrument de la base de données importée mettant en évidence les liens entre l instrument (table Inventory), son propriétaire (table Customers), et les différents événements (tables Calibration, Location, Repair). Lancement d un relevé de mesure d un instrument de la base de données importée mettant en évidence les liens entre les tables Calibration, Standards, Calresults et Results. Page 7 sur 7