Überlaufende Datenbank

Deutsches Benutzerforum

Überlaufende Datenbank

Postby GWI » Tue May 29, 2012 12:14 am

Ich hab hier eine Neele DB die nach Milan gezogen werden soll.

Jedoch ist die DB über 250 MB was den Im und Export der DB
nicht gerade einfach macht.

Jetzt meine eigentliche Frage!!
In den Tabellen *_access_log und *_credential_cache stehen
kanpp eine halbe Million Einträge zusammen sind beide knapp
200 MB gross.

Das Merkwürde ist das im Admin Interface nur die Letzten 10
Einträge vom AccessLog sichtbar sind, wenn ich die in Tine Lösche
verschwinden die auch aus der DB.

Ich denke mal das ich daher Gefahrlos die Tabelle Leer manchen kann.

Bei der Tabelle Credential Cache bin ich mir nicht sicher welchen Sinn
sie erfüllt, da die Einträge größtenteils aus dem Letzten Jahr stammen.

Wenn ich Trunkate auf die Tabelle mache bekomme ich folgende Meldung:
Code: Select all
#1451 - Cannot delete or update a parent row:
a foreign key constraint fails
(`c5neele`.`tine20_felamimail_account`,
CONSTRAINT `account::credentials_id--credentials::id`
FOREIGN KEY (`credentials_id`) REFERENCES `tine20_credential_cache` (`id`))


Benötige daher mal einen Hinweis in die richtige Richtung

Sven
GWI
Tine 2.0 Community Contributor
 
Posts: 576
Joined: Sat Jul 17, 2010 10:24 am

Re: Überlaufende Datenbank

Postby ph_il » Tue May 29, 2012 2:13 pm

hallo sven,

dazu gibt es die CLI funktion Tinebase.clearTable, die macht genau das, was du brauchst. es muss nur ein datum (alles davor wird gelöscht) als param übergeben werden (und die zu säubernden tabellen).

http://www.tine20.org/wiki/index.php/CL ... clearTable

im credential cache werden auch die felamimail passwörter gespeichert, die sollte man nicht von hand löschen, sonst müssen die user ihre pws wieder neu eingeben.
Philipp Schüle
Tine 2.0 Core Developer

Visit http://www.tine20.com (commercial support, consulting and development)
Visit http://www.officespot20.com (Tine 2.0 hosting)
User avatar
ph_il
Tine 2.0 Core Developer
 
Posts: 3450
Joined: Fri Mar 07, 2008 11:41 am

Re: Überlaufende Datenbank

Postby GWI » Tue May 29, 2012 3:33 pm

ph_il wrote:dazu gibt es die CLI funktion Tinebase.clearTable, die macht genau das, was du brauchst. es muss nur ein datum (alles davor wird gelöscht) als param übergeben werden (und die zu säubernden tabellen).

http://www.tine20.org/wiki/index.php/CL ... clearTable

Cool werde ich dann gleich mal Testen, aber warum geht das nicht Automatisch??
Oder geht es Automatisch und die Installation hat nur nen Schuss weg?

ph_il wrote:im credential cache werden auch die felamimail passwörter gespeichert, die sollte man nicht von hand löschen, sonst müssen die user ihre pws wieder neu eingeben.

Was steht den noch im Credential Cache??
Weil das System benutzen eigentlich nur eine Handvoll Leute ohne massig Externe
Mailaccounts.

Sven
GWI
Tine 2.0 Community Contributor
 
Posts: 576
Joined: Sat Jul 17, 2010 10:24 am

Re: Überlaufende Datenbank

Postby ph_il » Wed May 30, 2012 10:39 am

GWI wrote:Cool werde ich dann gleich mal Testen, aber warum geht das nicht Automatisch??
Oder geht es Automatisch und die Installation hat nur nen Schuss weg?


das sollte tatsächlich automatisch gehen (zumindest für den CC). dazu muss nur der cronjob eingerichtet und in der scheduler tabelle der job drin sein. das passiert normalerweise automatisch.

GWI wrote:Was steht den noch im Credential Cache??
Weil das System benutzen eigentlich nur eine Handvoll Leute ohne massig Externe
Mailaccounts.


bis Milan 2012-03-3 waren alle logins und die mail passwörter im CC. die logins haben wir nun in die session ausgelagert, sie werden jetzt nicht mehr in der DB gespeichert.
Philipp Schüle
Tine 2.0 Core Developer

Visit http://www.tine20.com (commercial support, consulting and development)
Visit http://www.officespot20.com (Tine 2.0 hosting)
User avatar
ph_il
Tine 2.0 Core Developer
 
Posts: 3450
Joined: Fri Mar 07, 2008 11:41 am

Re: Überlaufende Datenbank

Postby LinuxQ » Fri Sep 14, 2012 8:56 am

Hallo,

ich habe meine Tine beim Webhoster liegen und kann das Script nicht ausführen. Nun habe ich mittlerweile eine Credential_cache von 4,5 GB (!). Wie kann ich die bereinigen?

Wenn ich mich beim Hoster mit phpMyAdmin einlogge und ausführe:

Code: Select all
DELETE FROM `tine20_credential_cache` WHERE `id` != 'd00c479e';


Kommt nach langem warten folgender Fehler:

Error Code: 1451. Cannot delete or update a parent row: a foreign key constraint fails (`d00c479e`.`tine20_felamimail_account`, CONSTRAINT `tine20_account::credentials_id--credentials::id` FOREIGN KEY (`credentials_id`) REFERENCES `tine20_credential_cache` (`id`))


Durch die gigantische Größe der Datenbank hat mein Backupscript, das alle Nacht läuft mittlerweile auch seinen Dienst versagt (läuft in den Timeout, da es zu lange benötigt).

Was kann ich da tun?

Gruß

LinuxQ
LinuxQ
 
Posts: 122
Joined: Fri Oct 30, 2009 11:38 am

Re: Überlaufende Datenbank

Postby LinuxQ » Fri Sep 14, 2012 9:30 am

Kann ich eigentlich einigermaßen gefahrlos die ganze credential_cache löschen und neu erstellen? Oder führt das zu Problemen?
LinuxQ
 
Posts: 122
Joined: Fri Oct 30, 2009 11:38 am

Re: Überlaufende Datenbank

Postby LinuxQ » Fri Sep 14, 2012 10:27 am

So, ich habe die credential_cache umbeannnt und eine neue erstellt. Das System funktioniert :)

Aber ich kann die alte Table nicht löschen:

Error Code: 1217. Cannot delete or update a parent row: a foreign key constraint fails


Wat nun?
LinuxQ
 
Posts: 122
Joined: Fri Oct 30, 2009 11:38 am

Re: Überlaufende Datenbank

Postby ph_il » Fri Sep 14, 2012 9:47 pm

die constraints kommen aus felamimail, da wir dort auch die passwörter aus dem credential cache benutzen. es müssten also erst die felamimail credential ids herausgefunden werden:

Code: Select all
select credentials_id from tine20_felamimail_account


und dann diese ids nicht löschen:

Code: Select all
DELETE FROM `tine20_credential_cache` WHERE `id` not in ('1234', '2345', ...);


ab Milan (2012.03.3) werden die credentials normalerweise nicht mehr in der DB sondern in der session gespeichert: https://forge.tine20.org/mantisbt/view.php?id=6346
Philipp Schüle
Tine 2.0 Core Developer

Visit http://www.tine20.com (commercial support, consulting and development)
Visit http://www.officespot20.com (Tine 2.0 hosting)
User avatar
ph_il
Tine 2.0 Core Developer
 
Posts: 3450
Joined: Fri Mar 07, 2008 11:41 am

Re: Überlaufende Datenbank

Postby LinuxQ » Fri Sep 21, 2012 8:05 am

Hallo ph_il,

ich habe den dummen Fehler gemacht und die umbenannte cedential_cache gelöscht. Vor Deiner Antwort und komplett. Es "schien" ja alles zu laufen. Nun will eben Felamimail nicht mehr :(. Ich habe das Mailkonto gelöscht und wollte ein neues anlegen. Mit der Fehlermeldung:

SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`d00c479e`.`tine20_felamimail_account`, CONSTRAINT `tine20_account::credentials_id--credentials::id` FOREIGN KEY (`credentials_id`) REFERENCES `tine20_credential_cache_back` (`id`))
.../library/Zend/Db/Statement.php(284): Zend_Db_Statement_Pdo->_execute()
.../library/Zend/Db/Adapter/Abstract.php(468): Zend_Db_Statement->execute()
.../library/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend_Db_Adapter_Abstract->query()
.../library/Zend/Db/Adapter/Abstract.php(546): Zend_Db_Adapter_Pdo_Abstract->query()
.../Tinebase/Backend/Sql/Abstract.php(760): Zend_Db_Adapter_Abstract->insert()
.../Tinebase/Controller/Record/Abstract.php(428): Tinebase_Backend_Sql_Abstract->create()
[internal function]: Tinebase_Controller_Record_Abstract->create()
.../Tinebase/Frontend/Json/Abstract.php(184): call_user_func_array()
.../Felamimail/Frontend/Json.php(425): Tinebase_Frontend_Json_Abstract->_save()
[internal function]: Felamimail_Frontend_Json->saveAccount()
.../library/Zend/Server/Abstract.php(232): call_user_func_array()
.../Zend/Json/Server.php(558): Zend_Server_Abstract->_dispatch()
.../Zend/Json/Server.php(197): Zend_Json_Server->_handle()
.../Tinebase/Server/Json.php(196): Zend_Json_Server->handle()
.../Tinebase/Server/Json.php(71): Tinebase_Server_Json->_handle()
.../Tinebase/Core.php(247): Tinebase_Server_Json->handle()
.../index.php(57): Tinebase_Core::dispatchRequest()


Mittlerweile habe ich auf den neuesten Stand upgedatet (2012-03-7)

Habe ich noch eine Chance, das ganze zu retten? Ich habe noch einen Dump mit der alten 4,5GB Credential_cache, aber den bekomme ich in eine neue Testdatenbank gar nicht importiert :(

marcel@linux-qkjl:~/Downloads> mysql -h mein.dbserver.com -u meinname -pmeinpassw testdb < dump_d00c479e_13.sql
ERROR 1064 (42000) at line 767: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''ma' at line 1
LinuxQ
 
Posts: 122
Joined: Fri Oct 30, 2009 11:38 am

Re: Überlaufende Datenbank

Postby ph_il » Mon Sep 24, 2012 3:56 pm

scheinbar geht da jetzt was mit den credential_cache tabellen durcheinander. im statement sagt das mysql ja, dass der foreign key auf tine20_credential_cache_back nicht klappt. ist diese tabelle denn angelegt? evtl musst du einmal fmail deinstallieren und neu installieren.
Philipp Schüle
Tine 2.0 Core Developer

Visit http://www.tine20.com (commercial support, consulting and development)
Visit http://www.officespot20.com (Tine 2.0 hosting)
User avatar
ph_il
Tine 2.0 Core Developer
 
Posts: 3450
Joined: Fri Mar 07, 2008 11:41 am

Next

Return to Deutsch [German]

Who is online

Users browsing this forum: Google [Bot] and 12 guests

Startseite
NewsDemoDownloadForumWikiBlog
Support
Support at first hand!
If the forum does not help anymore ... Professional support is available directly from our Tine2.0 core Developers.

more »