2 votes

Firebird 2.1 : gfix -online renvoie "database shutdown" (arrêt de la base de données)

Une recherche sur Google n'a malheureusement rien changé, car la plupart des résultats indiquent la syntaxe à utiliser pour mettre en ligne une base de données après l'utilisation de gfix -shut -force 30 (ou tout autre nombre de secondes) comme gfix -online dbname , et j'ai couru gfix -online dbname avec et sans identifiants de connexion à la base de données en question.

Le message que je reçois est le suivant :

database dbname shutdown

Ce qui est très bien, sauf que je veux le mettre en ligne maintenant. Il n'est pas question de fermer fbserver.exe (qui tourne sur une machine Windows, c'est Classic Server 2.1.1 mais c'est peut (Super) car nous avons d'autres bases de données qui fonctionnent à partir de cette base et qui ont besoin d'un temps de fonctionnement de presque 24 heures sur 24 et 7 jours sur 7. Le message de l'autre gfix -shut -force ou -attach ou -tran est Target shutdown mode is invalid for database dbname ce qui semble correspondre à la documentation sur ce qui se passe si la base de données est déjà complètement fermée. Les Target shutdown mode invalid Le message apparaît également si j'utilise -online single o -online multi mais pas -online / -online normal .

Les idées et les commentaires sont très appréciés, d'autant plus qu'en ce moment, le temps est un facteur important pour moi. Je vous remercie.

EDIT : La raison pour laquelle j'ai arrêté la base de données est de supprimer les transactions "actives" qui étaient liées à une adresse IP spécifique, et cet ordinateur est mon terminal de développement (en fait une machine virtuelle où je développe des interfaces pour le logiciel de base de données), mais je n'avais pas de processus se connectant à la base de données à ce moment-là. Il me semble qu'il s'agissait de transactions orphelines, et elles n'étaient pas dans les limbes, à ce qu'il paraît. L'exécution d'un balayage manuel ne les a pas effacées, la suppression des lignes de MON$STATEMENTS n'a pas fonctionné, même si Firebird 2.1 est censé permettre d'annuler les requêtes de cette manière. Mon dernier recours a été de "redémarrer" la base de données, d'où le problème ci-dessus.

EDIT 2 : Je viens de le remarquer dans les notes de mise à jour de la version 2.1.3 :

Un problème de régression est apparu lors de l'implémentation des nouveaux modes d'arrêt de gfix lorsque l'arrêt est appelé avec les options -attach ou -tran. Si les connexions sont toujours en vie à l'expiration du délai spécifié, le moteur renvoie un message indiquant que l'arrêt a échoué. Cependant, au lieu de laisser la base de données en ligne, comme il se doit, il la place dans un état "hors ligne" incertain et les connexions ultérieures sont refusées.

J'ai utilisé -shut -force 30 Cela ne devrait donc pas avoir d'incidence. Cependant, après les 30 secondes, l'appel n'est pas revenu correctement, et après avoir attendu environ 3 minutes, j'ai fermé mon tty au serveur (machine virtuelle linux sur le serveur Windows), ce qui a pu ou non interrompre l'opération gfix. Exécution ps ne montre aucun processus gfix. Je me demande si cela n'a pas mis la base de données dans un "état incertain"...

4voto

kovarov Points 56

Utiliser en ligne

gfix  -user "SYSDBA" -password "masterkey"  -online DATA.FDB

après l'utilisation de la base de données, réessayer

gfix  -user "SYSDBA" -password "masterkey"   -shut -force 0 DATA.FDB

1voto

pagep Points 453

J'ai eu le même problème, récemment ce que j'ai fait c'est que j'ai d'abord arrêté le service FB et ensuite j'ai tué toutes les connexions fbclient sur le serveur. J'ai redémarré le service FB et j'ai utilisé le cmd "bring server online". J'espère que cela vous aidera.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X