Re: Fehler beim Zugriff auf Datenbank. DB-Datei zu groß ? - baseportal Forum - Web-Anwendungen einfach, schnell, leistungsfähig!
baseportal
English - Deutsch "Es gibt keine dummen Fragen - jeder hat einmal angefangen"

 baseportal-ForumDie aktuellsten 10, 30, 50, 100 Einträge anzeigen.  

 
 Ausgewählter Eintrag: Zur Liste 
    Beitrag von Sander (8133 Beiträge) am Montag, 21.November.2005, 01:23.
    Re: Fehler beim Zugriff auf Datenbank. DB-Datei zu groß ?

      >>verhindert vielleicht auch das einfache Öffnen meiner großen DB mit DO od er LOOP ... 
      

      ja deswegen fragte ich nach range=...


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von kerker (9 Beiträge) am Samstag, 19.November.2005, 01:19.
    Fehler beim Zugriff auf Datenbank. DB-Datei zu groß ?

      Bei jedem Versuch meine Datenbank anzuzeigen erhalte ich einen "Fehler: Server oder DNS kann nicht gefunden werden"-Fehler(IE6). Ältere Sicherungskopien werden normal angezeigt. Der einzige Unterschied scheint mir die Dateigrösse der jeweiligen Datenbank-Datei zu sein. Die anzeigbaren Backups sind zwischen 7 und 12 MB gross, die aktuelle hat im Moment 221380 KB, oje, das sind ja 221 MB! Ups, jetzt wo ich das schreibe merk´ich´s auch. Ein exportieren ist nicht möglich, weil ich das Verwaltungsmenue der Datenbankdatei nicht öffnen kann. Schon beim Zugriffversuch wird der Fehler angezeigt. Ich würde die Daten gerne retten und dann die Datei komplett löschen. Was soll/kann ich tun?

     Antworten

    Beitrag von Sander (8133 Beiträge) am Sonntag, 20.November.2005, 00:28.
    Re: Fehler beim Zugriff auf Datenbank. DB-Datei zu groß ?

      die abfrage mit range limitieren

     Antworten

    Beitrag von kerker (9 Beiträge) am Sonntag, 20.November.2005, 01:46.
    Re: Fehler beim Zugriff auf Datenbank. DB-Datei zu groß ?

      <loop db=xyz_db sort=- range=0,1>
      

      führt unmittelbar zum Fehler :-(

     Antworten

    Beitrag von kerker (9 Beiträge) am Sonntag, 20.November.2005, 01:59.
    Re: Fehler beim Zugriff auf Datenbank. DB-Datei zu groß ?

      Lustigerweise ist ein schreibender Zugriff auf die Datei weiterhin möglich. Ich habe mein Script aber inzwischen geändert und schreibe nicht weiter, die DB-Datei ist ja schon groß genug. Vermutlich werden irgendwelche Limits erreicht, "Datei zu groß", "Bearbeitungszeit zu lang", "Zuviele Abfragen" oder sowas in der Art.

     Antworten

    Beitrag von Claus (4645 Beiträge) am Sonntag, 20.November.2005, 15:35.
    Re: Fehler beim Zugriff auf Datenbank. DB-Datei zu groß ?

      <loop db=xyz_db sort=- range=0,1>
      
      führt unmittelbar zum Fehler :-(


      Dann hast Du wahrscheinlich den loop nicht geschlossen oder 'nen anderen "Bolzen" drin ;-))

      <loop db=xyz_db sort=- range=0,1>
      $Feldname1.....<br>
      </loop>
      

      Gruß

      Claus

     Antworten

    Beitrag von kerker (9 Beiträge) am Sonntag, 20.November.2005, 17:26.
    Re: Fehler beim Zugriff auf Datenbank. DB-Datei zu groß ?

      Natürlich war diese eine Zeile nur ein Ausschnitt aus dem gesammten Script. Ich wollte damit verdeutlichen, dass auch eine Range-Angabe am Problem nichts ändert.

      Wenn ich bei DB= den Namen einer meiner Backup-Dateien angebe, funktioniert alles normal. Diese Backups haben die selbe Stucktur wie die aktuelle Arbeits-DB, nur sind sie eben wesentlich kleiner! Deshalb vermute ich, dass meine Fehlermeldungen von der Größe der DB-Datei verursacht wird. 220MB sind ja auch gewaltig...

     Antworten

    Beitrag von kerker (9 Beiträge) am Sonntag, 20.November.2005, 20:13.
    Re: Fehler beim Zugriff auf Datenbank. DB-Datei zu groß ?

      Inzwischen habe erkannt, dass die immer noch funktionierenden Schreibzugriffe auf die DB den PUT-Befehl verwenden. Deshalb habe ich nun versucht einzelne Datensätze per GET auszulesen. Und siehe da, es funktioniert. So habe ich festgestellt, dass in der Datenbank über 675000(!) Datensätze gespeichert sind. Ich werde jetzt versuchen, die ausgelesenen Datensätze portionsweise in kleinere Datenbänke zu schreiben...

     Antworten

    Beitrag von Claus (4645 Beiträge) am Sonntag, 20.November.2005, 21:18.
    Re: Fehler beim Zugriff auf Datenbank. DB-Datei zu groß ?

      Bitte bei Problemen einen Link auf die entsprechende Seite und den Teil des betreffenden Quellcodes (das Eingabefeld beim "Aussehen" der Seite) angeben, sowie eine konkrete Beschreibung was erreicht werden soll und was dabei nicht funktioniert. Das erleichtert die Hilfe sehr ;-)

     Antworten

    Beitrag von kerker (9 Beiträge) am Sonntag, 20.November.2005, 22:18.
    Re: Fehler beim Zugriff auf Datenbank. DB-Datei zu groß ?

      Hallo Claus,

      grundsätzlich hast du natürlich völlig recht. In diesem Fall bringt aber der Link auf die Seite nichts weil nichts passiert oder zu sehen ist außer der Fehlermeldung. Der betreffende Quellcode läuft seit ca. 3 Jahren unverändert und besteht im wesentlichen aus ein paar Zeilen perl und einer oder zwei do- bzw. loop-Abfragen und etwas html. Das einzige, was sich geändert hat ist die DB-Größe. Weil eben alles fehlerfrei lief, habe ich es versäumt alte Einträge zu löschen...

      An meinen Scripten kann es wohl auch nicht liegen, wenn die DB auch aus der baseportal-Administration herraus nicht zu öffnen ist. Wenn ich im entsprechenden Verzeichniss zum Öffnen auf die DB klicke, erhalte ich sofort die Eingangs beschriebene Fehlermeldung.

      Inzwischen habe ich per GET/PUT ca. 100000 Einträge in neue DBs umkopiert, ist zwar zäh, aber es funktioniert. Die neuen DBs sind zwischen 10 und 15 MB groß und enthalten zwischen 40000 und 50000 Einträge. Wenn alles umkopiert ist werde ich mit DEL die den Inhalt der großen DB löschen und anschliessend die kleinen exportieren und auch löschen.

      Mich würde mal interessieren wie groß eure DBs sind und wieviele Einträge sie so im Durchschnitt enthalten...

      gruß

      mic

     Antworten

    Beitrag von kerker (9 Beiträge) am Sonntag, 20.November.2005, 23:21.
    Re: Fehler beim Zugriff auf Datenbank. DB-Datei zu groß ?

      Inzwischen bekommt das ganze eine Eigendynamik dir mir gar nicht gefällt:

      Mit

      get "Id==$i", "logs_db";
      

      habe ich die große DB ausgelesen, "Id"-Feld ist die fortlaufende Nummer der Einträge, "$i" habe ich schrittweise bis auf 675000 erhöht, dabei wurde noch ein Datensatz ausgelesen und angezeigt. Daraus schlos ich, dass mindestens so viele Einträge in der DB sind. Dann habe ich leere DBs (back1-backx)erzeugt (gibts keinen create_database-Befehl bei baseportal?) und mit diesem script das Kopieren gestartet:

      <perl>
      

      for($i=0; $i<=99999; $i++)
      {
      get "Id==$i", "logs_db";
      put ["id","$i","zeit","$zeit","raum","$raum","text","$text","server","$server"],"back7";
      }
      

      </perl>

      Das kleine Feld id nimmt den Zählerwert $i auf weil in neuen DBs das Feld Id automatisch verwaltet wird, es zählt scheinbar die Einträge.

      Nach dem Aufruf des Scripts im Browser kam nach einigen Minuten ein Serverfehler im Browserfenster. Auch ein Endwert von 33333 führte zum Fehler, deshalb setzt ich den Endwert schlieslich auf 700000 und startete nach einem Fehler mit dem Schreiben in die nächste neue DB mit dem zuletzt gespeicherten Feldwert "id" (der letzte for-next-Wert, der noch vor dem Fehler geschrieben wurde).

      Nachdem ich 6 neue DBs so gefüllt hatte, alle brachen bei ca. 12-15 MB Größe mit Fehlermeldung im Browser ab, wollte die 7te einfach keinen fehler erzeugen. (Wenn man nebenher im Verzeichniss in der baseportal-Administratur refresht, kann man wunderbar beim Wachsen zuschauen :-)

      Naja, bei knapp 17 MB habe ich dann das Browserfenster geschlossen, weil immer noch keine Fehlermeldung erschien und ich ja nicht ne zweite Riesen-DB erzeugen wollte. Seltsamerweise wuchs in den Munuten danach die DB-Datei um weitere 10 MB, ich vermute, das script lief auf dem Server weiter obwohl mein Browser schon geschlossen war.

      Falls es jemand in diesem Beitrag bis hierher geschafft hat: Herzlichen Glückwunsch!

      Weil ich einiges nicht verstehe und nichts zerstören möchte, breche ich erstmal ab und schlaf drüber. Unklar ist mir, warum das Script überhaupt abbricht, warum an unterschiedlichen Stellen, warum "ID" und "id" nicht synchron zählen (Wert von ID ist ca. 3mal größer als Wert von "id"!), wie sehr belaste ich den baseportalserver durch die großen DBs und meine Versuche,...

     Antworten

    Beitrag von Sander (8133 Beiträge) am Sonntag, 20.November.2005, 23:57.
    Re: Fehler beim Zugriff auf Datenbank. DB-Datei zu groß ?

      ich hoffe, du machst das nicht in der mietversion... dort ging bp vorhin sehr schleppend ;)

      also Id sollte man eigentlich nicht verändern. es soll ja der primärschlüssel sein. also bp überlassen.
      zum abbruch: es gibt einen resourcenüberwacher, der bricht nach einer bestimmten menge an beanspruchten speicher das script ab. warum dein script am schluß weiterlief kann ich nicht sagen.

     Antworten

    Beitrag von kerker (9 Beiträge) am Montag, 21.November.2005, 00:31.
    Re: Fehler beim Zugriff auf Datenbank. DB-Datei zu groß ?

      Ne, ist ein freeaccount, aber das macht das ganze nicht weniger peinlich. Selbstverständlich will ich den Server nicht unnötig stressen und verschiebe deshalb meine Aktivitäten auf die frühen Morgenstunden ;-)

      "Id" habe ich nicht angetastet, allerdings habe den Namen meiner Variablen "id" auch selten doof gewählt. Der Resourcenwächter verhindert vielleicht auch das einfache Öffnen meiner großen DB mit DO oder LOOP ...

     Antworten

    Beitrag von Sander (8133 Beiträge) am Montag, 21.November.2005, 01:23.
    Re: Fehler beim Zugriff auf Datenbank. DB-Datei zu groß ?

      >>verhindert vielleicht auch das einfache Öffnen meiner großen DB mit DO od er LOOP ... 
      

      ja deswegen fragte ich nach range=...

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Montag, 21.November.2005, 19:01.
    Re: Fehler beim Zugriff auf Datenbank. DB-Datei zu groß ?

      Du solltest, wie Sander vorschlug mit "range" arbeiten - warum es bei Dir weiter oben nicht geklappt hat lag am "sort=-". Das Kopierskript also komplett ca. so:

       <perl>
       get "range=0,10000", "db";
       while(get_next "db")
       {
         put...
       }
       </perl>
      

      "ID" und "id" müssen nicht synchron sein, z.b. wenn Du Einträge löschst, dann ist die Id nicht fortlaufend... Mit obigem Code umgehst Du das aber sowieso...

     Antworten

    Beitrag von kerker (9 Beiträge) am Donnerstag, 24.November.2005, 17:30.
    Re: Fehler beim Zugriff auf Datenbank. DB-Datei zu groß ?

      Auch diese Variante ohne sort erzeugt mit der großen Datenbank sofort einen Fehler, mit einer kleineren Backup-Datei funktioniert's natürlich erwartungsgemäs.

     Antworten


     
 Liste der Einträge von 21451 bis 21601:Einklappen Zur Eingabe 
Neueste Einträge << 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | Neuere Einträge < Zur Eingabe  > Ältere Einträge | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 >> Älteste Einträge


Zurück zur Homepage

© baseportal.de. Alle Rechte vorbehalten. Nutzungsbedingungen



powered in 0.08s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!