Académique Documents
Professionnel Documents
Culture Documents
La mthode
1. Dfinir les deux variables suivantes, pour vous faciliter la vie, comme cela vous naurez pas
retaper le nom utilisateur et le mot de passe chaque commande lance.
SET ISC_USER=SYSDBA
SET ISC_PASSWORD=masterkey
2. Travaillez toujours sur une copie de la base, s la base en production. Utilisez le systme
dexploitation pour faire cette copie. Pour cela, vous devez avoir un accs exclusif la base.
3. Vrifiez maintenant si la base est corrompue. Vous devez avoir un accs exclusif la base,
mais comme vous travaillez avec une copie, ce nest pas un problme :)
4. Si la commande prcdente vous indique qil y a un problme avec la base, vous devez la
corriger.
6. Si vous trouvez encore des erreurs, vous devez faire une sauvegarde / restauration. La
commande de sauvegarde doit tre la suivante :
1
gbak -create -v database.gbk database_new.gdb
-inactive, si cest des problmes dindex, cela restaure la base, mais nactive aucun index, vous
pourrez tle faire manuellement, un par un.
-one_at_a_time, cela restaure la base table par table, et commit table par table, vous pourrez ainsi
recuprer au moins quelques donnes.
La mthode de secours
Si la mthode ci-dessus ne fonctionne pas, mais que vous accdez encore la base abime, utilisez
QLI pour transfrer les donnes dans une nouvelle base.
1. Crez une base vide.
2. Modifiez le code suivant (get_tables.sql) pour pointer la base abime.
commit;
rdb$relation_name, ';'
3. Modifiez le fichier de sortie pour quil ressemble quelque chose comme cela :
2
based on relation src.JOB;
tgt.COUNTRY = src.COUNTRY;
tgt.JOB = src.JOB;
tgt.DEPARTMENT = src.DEPARTMENT;
tgt.EMPLOYEE = src.EMPLOYEE;
tgt.PROJECT = src.PROJECT;
tgt.PHONE_LIST = src.PHONE_LIST;
tgt.EMPLOYEE_PROJECT = src.EMPLOYEE_PROJECT;
3
tgt.CUSTOMER = src.CUSTOMER;
tgt.SALES = src.SALES;
tgt.PROJ_DEPT_BUDGET = src.PROJ_DEPT_BUDGET;
tgt.SALARY_HISTORY = src.SALARY_HISTORY;
QLI>@move.sql
Pour vous permettre de comprendre ce que fait exactement gfix, voici un extrait du code source,
qui explique en dtail ce qui ce passe.
Voir http://www.firebird-fr.eu.org/article.php3?id_article=13
This paper was updated by Paul Beach in September 2000, and is copyright Paul Beach and
IBPhoenix Inc. You may republish it verbatim, including this notation. You may update, correct, or
expand the material, provided that you include a notation that this work was produced by Paul
Beach and IBPhoenix Inc.