Nicht ausgeführtes Skript

Alles, was den Programmierer beschäftigt

Moderator: SYNERPY

Antworten
miboe
Beiträge: 1295
Registriert: Fr Jul 28, 2006 9:13 am

Nicht ausgeführtes Skript

Beitrag von miboe »

Hallo zusammen,

ich hätte da mal gerne ein Problem. Auf unserem Server ist normalerweise niemand angemeldet (wie eigentlich üblich). Deswegen läuft auch der Jobserver nicht.

Ich habe mir nun ein Command Script, wie Windoofs das nennt, geschrieben, das wie folgt aussieht:

Code: Alles auswählen

e:\applics\firebird\firebird_1_5\bin\isql "e:\applics\Averp-Datenbank\averp.fdb" -u "" -p "" -i "E:\applics\Averp\Bartlhbu.sql"
e:\applics\firebird\firebird_1_5\bin\gfix -mend -user  -password  e:\applics\Averp-Datenbank\averp.fdb
e:\applics\firebird\firebird_1_5\bin\gfix -sweep -user  -password  e:\applics\Averp-Datenbank\averp.fdb
e:\applics\firebird\firebird_1_5\bin\gbak -b -k -l -v -user  -password  e:\applics\Averp-Datenbank\averp.fdb e:\applics\Averp-Datenbank\averp.fbk >e:\applics\Averp-Datenbank\backup.txt
e:\applics\firebird\firebird_1_5\bin\gfix -shut -user  -password  e:\applics\Averp-Datenbank\averp.fdb
copy e:\applics\Averp-Datenbank\averp.fdb e:\applics\Averp-Datenbank\averp_safety.fdb
e:\applics\firebird\firebird_1_5\bin\gbak -r -k -l -v -user  -password  e:\applics\Averp-Datenbank\averp.fbk e:\applics\Averp-Datenbank\averp.fdb >e:\applics\Averp-Datenbank\restore.txt
e:\applics\firebird\firebird_1_5\bin\gfix -online -user  -password  e:\applics\Averp-Datenbank\averp.fdb
Dieses Script soll einmal wöchentlich laufen, das Buchungsprotokoll aufräumen und in bißchen Housekeeping betreiben. Manuell ausgeführt läuft es prima (Username und Paßwort sind nur hier im Forum nicht vorhanden :) ) auch als Batchfile per Doppelklick. Über die geplanten Tasks bekomme ich aber bei jedem Befehl den Fehler "Database unavailable"

Irgend jemand eine Idee wo das herkommt? Sind die Kommandozeilen Tools von Firebird etwa nicht script tauglich unter Windows? Das Script läuft ja nachts, zwar mit der Option "Ausführen als Admin" aber es ist halt niemand am Rechner wirklich eingeloggt.

Gruß
Michael
Nur wer das Unmögliche versucht, wird das Machbare erreichen!
--
Datenbank: 2012-A02
Programm: 4.2.5.65
OS: Win 7 Pro / Ubuntu 10.04.3
miboe
Beiträge: 1295
Registriert: Fr Jul 28, 2006 9:13 am

Beitrag von miboe »

Hat denn wirklich niemand einen Hinweis für mich? :shock:
Nur wer das Unmögliche versucht, wird das Machbare erreichen!
--
Datenbank: 2012-A02
Programm: 4.2.5.65
OS: Win 7 Pro / Ubuntu 10.04.3
nbrommer
Beiträge: 54
Registriert: Di Jan 17, 2006 2:21 pm
Wohnort: Hamburg

Beitrag von nbrommer »

Hallo,

versuche einfach die Batch - File als geplannten Task auszuführen (aufrufen).

Grüße
Norbert B.
miboe
Beiträge: 1295
Registriert: Fr Jul 28, 2006 9:13 am

Beitrag von miboe »

Genau das mit dem geplanten Task mache ich ja und genau dabei bekomme ich die ganzen Fehlermeldungen "Database unavailable" was ich nicht verstehe. Wenn wir "normal" am System arbeiten ist ja auch keiner am Server eingeloggt und trotzdem ist die Datenbank "available".

Selbst auf der Firebird FAQ ist es genau so beschrieben, wie ich es hier gemacht habe und es funktioniert trotzdem nicht :(

Mist, aber vielleicht fällt einem der Cracks noch was ein ...
Michael
Nur wer das Unmögliche versucht, wird das Machbare erreichen!
--
Datenbank: 2012-A02
Programm: 4.2.5.65
OS: Win 7 Pro / Ubuntu 10.04.3
nbrommer
Beiträge: 54
Registriert: Di Jan 17, 2006 2:21 pm
Wohnort: Hamburg

Beitrag von nbrommer »

Hi,

läuft dabei auch der Firebird Server im Hintergrund?

Gruß
Norbert B.
miboe
Beiträge: 1295
Registriert: Fr Jul 28, 2006 9:13 am

Beitrag von miboe »

Ich wüßte nicht, daß der Service für den Firebird-Server zeitabhängig ein und ausgeschaltet wird. Aber davon unabhängig, kann ich das Batchfile auch dann nicht per geplantem Task laufen lassen, wenn ich mich normal übers Averp-Frontend oder den IBexpert an der Datenbank anmelden kann.

Kann es denn sein, daß die Kommandozeilen-Tools, wenn über einen geplanten Task ausgeführt, Username und Paßwort nicht verarbeiten sondern eine Einstellung per Umgebungsvariable erwarten?

Gruß
Michael
Nur wer das Unmögliche versucht, wird das Machbare erreichen!
--
Datenbank: 2012-A02
Programm: 4.2.5.65
OS: Win 7 Pro / Ubuntu 10.04.3
SYN13
Beiträge: 23
Registriert: Do Sep 02, 2004 6:32 pm

Beitrag von SYN13 »

Mit welchen Benutzer wir der Task ausgeführt?
(bitte mit Administrator ausführen)

"Database unavailable"
Datenbank nicht gefunden

Auch die Pfadangabe ist nicht sehr günstig. Da bei nicht aktiven Benutzer die alte Pfadauflösung (DOS 8.3) verwendet wird. Es kann daher sein das er wirklich den Pfad nicht finden kann da z.B. aus
"e:\applics\Averp-Datenbank\averp.fdb"
vergleichbar altes Format
"e:\applics\Averp-~1\averp.fdb"
werden kann. Es könnte auch sein das er mit dem Minuszeichen in dieser Umgebung so nicht zu Recht kommt. Somit währe die Aussage, dass er die Datei nicht finden kann sogar korrekt. Ich würde dies einfach Testen mittels Ordner „AvERPDB“ und da mal eine Datenbank hinterlegen diese sollte ebenfalls vor dem (.GDB/.FDB) nicht mehr als 8 Zeichen ohne Sonderzeichen haben.
Auch kann es sein das er seinen Server sucht :) somit mal die Datenbankangabe mit dem nachfolgenden Pfad versuchen.
"127.0.0.1:E:\applics\Averp-Datenbank\averp.fdb"

„Your user name and password are not defined……“
Benutzer oder Passwort nicht korrekt


Es könnte ebenfalls sein, dass der entsprechende Benutzer vom Windows noch nicht geladen wurde und daher nicht das Recht hat Passwörter zu übertragen.

Anmerkung:
Um das reine Backup zu erstellen, sollte eigentlich der GBAK Scheduler 1.0 verwendet werden, da dieser sich als Dienst eintragen läst und somit Benutzer unabhängig agieren kann mit der Sicherheit eines Dienstes.
miboe
Beiträge: 1295
Registriert: Fr Jul 28, 2006 9:13 am

Beitrag von miboe »

Es geht aber ja leider nicht um das reine Backup ... die anderen Komponenten im Skript sind mir in dem speziellen Fall wichtiger und in dem Skript um das es hier geht, wird die Kombination aus Backup und Restore eigentlich eher als "Hammerversion" der Garbage-Collection benutzt. Es wäre ja allerliebst, wenn Synerpy den JobServer auch so umstellen würde, daß er wahlweise als Dienst oder Anwendung läuft. Dann wären die Klimmzüge mit ISQL Vergangenheit.

Ich werde die Tips dann alle am Montag mal ausprobieren und mir auch den Gbak-Scheduler nochmal anschauen.

Gruß und Danke
Michael
Nur wer das Unmögliche versucht, wird das Machbare erreichen!
--
Datenbank: 2012-A02
Programm: 4.2.5.65
OS: Win 7 Pro / Ubuntu 10.04.3
nowacka
Beiträge: 47
Registriert: Do Dez 21, 2006 3:26 pm

Beitrag von nowacka »

Hallo miboe,

habt ihr das mit dem skript hinbekommen? oder schon weiter gekommen? Stehe nämlich vor dem selben problem, komme da aber irgendwie nicht weiter.

schöne grüße
Geri12
Beiträge: 589
Registriert: Mi Apr 16, 2008 7:51 am

Beitrag von Geri12 »

Hallo

Zu dieser Fehlermeldung fällt mir ein, dass ich diese bei uns darauf zurück führen konnte, dass bei uns das SYSDBA-Passwort geändert wurde. Ab diesem Zeitpunkt wurde eine Datensicherung über GBAKSCHD.exe _immer_ direkt mit obiger Fehlermeldung abgebrochen. Nach einer Rück-Änderung auf das Standard-SYSDBA-Passwort war der Zugriff auf die Datenbank über GBAKSCHD.exe wieder OK ...

[EDIT, 30.10.2008] Auf meiner Suche nach dem Begriff GBAK bin ich auf dieses Posting gestoßen und habe festgestellt, dass ich fälschlich GBAK statt GBAKSCHD im Kopf hatte und dadurch geschrieben habe. Habe das gerade korrigiert, doch dadurch passt das Posting von der Logik her jetzt allerdings evt. nicht mehr so ganz.
Zuletzt geändert von Geri12 am Do Okt 30, 2008 10:48 am, insgesamt 1-mal geändert.
Gruß
Geri12

Software-Version: V4.2.5.2
FDB-Version: AvERP2008-A.14
miboe
Beiträge: 1295
Registriert: Fr Jul 28, 2006 9:13 am

Beitrag von miboe »

Ich bin gerade nicht auf der Arbeit :) werde aber morgen den aktualisierten Script der dann lief nochmal auszugsweise einstellen. Es lag mehr oder weniger daran, daß bei nicht angemeldetem User der Server sich selbst nicht kennt und deswegen die reine Pfadangabe zur Datenbank nicht reichte. Man muß also alle Datenbankpfade (und nur die) durch SERVERNAME:e:\applics..... ersetzen.

Wie gesagt, morgen mehr

Gruß
Michael
Nur wer das Unmögliche versucht, wird das Machbare erreichen!
--
Datenbank: 2012-A02
Programm: 4.2.5.65
OS: Win 7 Pro / Ubuntu 10.04.3
Antworten