TomCrow 0 Report post Posted February 13, 2005 Hallo! Ich verwende seit einiger Zeit das db-script von Dragoran für's db-backup.. Bisher hab' ich's - zum Glück - noch nie benötigt, aber bei verschiedenen "Tests" (u.a. lokal) bekomme ich immer Syntax-Fehler, wenn ich eine ganze .sql-Datei wieder über phpMyAdmin einlesen will. Die Datei structure.sql ist z.B. nur 57 kB groß und ist etwa in der Art aufgebaut: DROP TABLE IF EXISTS `cpg131_albums`; CREATE TABLE `cpg131_albums` ( `aid` int(11) NOT NULL auto_increment, `title` varchar(255) NOT NULL default '', `description` text NOT NULL, `visibility` int(11) NOT NULL default '0', `uploads` enum('YES','NO') NOT NULL default 'NO', `comments` enum('YES','NO') NOT NULL default 'YES', `votes` enum('YES','NO') NOT NULL default 'YES', `pos` int(11) NOT NULL default '0', `category` int(11) NOT NULL default '0', `pic_count` int(11) NOT NULL default '0', `thumb` int(11) NOT NULL default '0', `last_addition` datetime NOT NULL default '0000-00-00 00:00:00', `stat_uptodate` enum('YES','NO') NOT NULL default 'NO', `keyword` varchar(50) default NULL, PRIMARY KEY (`aid`), KEY `alb_category` (`category`)) TYPE=MyISAM DROP TABLE IF EXISTS `cpg131_banned`; CREATE TABLE `cpg131_banned` ( `ban_id` int(11) NOT NULL auto_increment, `user_id` int(11) default NULL, `ip_addr` tinytext, `expiry` datetime default NULL, PRIMARY KEY (`ban_id`)) TYPE=MyISAM DROP TABLE IF EXISTS `cpg131_categories`; CREATE TABLE `cpg131_categories` ( `cid` int(11) NOT NULL auto_increment, `owner_id` int(11) NOT NULL default '0', `name` varchar(255) NOT NULL default '', `description` text NOT NULL, `pos` int(11) NOT NULL default '0', `parent` int(11) NOT NULL default '0', `thumb` int(11) NOT NULL default '0', `subcat_count` int(11) NOT NULL default '0', `alb_count` int(11) NOT NULL default '0', `pic_count` int(11) NOT NULL default '0', `stat_uptodate` enum('YES','NO') NOT NULL default 'NO', PRIMARY KEY (`cid`), KEY `cat_parent` (`parent`), KEY `cat_pos` (`pos`), KEY `cat_owner_id` (`owner_id`)) TYPE=MyISAM .. Wenn ich die Befehle aber einzeln ausführe, klappt das. Fehlt/stört da irgendein "Trennzeichen" zwischen den einzelnen Abschnitten oder liegt es an der Formattierung?? mfg, Tom Share this post Link to post
howgo 0 Report post Posted February 13, 2005 (edited) hallo tom, ich kann dir zwar da nicht direkt weiterhelfen, hatte das aber früher auch schon mal genau so wie du und kam nicht dahinter was der Fehler war (aber nicht mit dragorans script) Jetzt aber ich verwende schon seit langem den "MySQL Commander" - der kommt auch mit sehr großen Dumps zurecht (was bei dir zwar mom. ned das Problem ist) und ich hatte damit noch nie Probleme beim wiederherstellen. Wenn die Dumps erstmal hochgeladen wurden, dann geht die Wiederherstellung in null komma nix. http://www.bitesser.de/freeware/script.php?id=1 Edited February 13, 2005 by howgo Share this post Link to post
TomCrow 0 Report post Posted February 13, 2005 Hallo howgo! Erstmal danke für den Tipp! Aber eigentlich sollte Dragorans script ja genau solche Probleme mit großen dbs verhindern bzw. durch Aufsplitten "kompensieren" (es gibt dann eben nicht eine ibf_posts sondern ibf_posts1, ibf_posts2, usw. - die jeweilige Größe läßt sich Eeinstellen, um dem timeout beim Einlesen vorzubeugen..). Mittlerweile bin ich beim Durchsehen etwas schlauer geworden: in der structure.sql fehlen anscheinend die abschließenden Semikolons, wenn ich die nachträglich einsetze, klappt's: DROP TABLE IF EXISTS `cpg131_albums`; CREATE TABLE `cpg131_albums` ( `aid` int(11) NOT NULL auto_increment, `title` varchar(255) NOT NULL default '', `description` text NOT NULL, `visibility` int(11) NOT NULL default '0', `uploads` enum('YES','NO') NOT NULL default 'NO', `comments` enum('YES','NO') NOT NULL default 'YES', `votes` enum('YES','NO') NOT NULL default 'YES', `pos` int(11) NOT NULL default '0', `category` int(11) NOT NULL default '0', `pic_count` int(11) NOT NULL default '0', `thumb` int(11) NOT NULL default '0', `last_addition` datetime NOT NULL default '0000-00-00 00:00:00', `stat_uptodate` enum('YES','NO') NOT NULL default 'NO', `keyword` varchar(50) default NULL, PRIMARY KEY (`aid`), KEY `alb_category` (`category`)) TYPE=MyISAM; DROP TABLE IF EXISTS `cpg131_banned`; Leider kommt nach TYPE=MyISAM manchmal noch ein COMMENT=.., daher kann man nicht einfach alle TYPE=MyISAM durch TYPE=MyISAM; ersetzen.. Notlösung: die structure.sql ist ja nicht so groß und läßt sich daher im "Falle des Falles" auch manuell korrigieren; bei den übrigen .sql-Dateien, die das script liefert, dürft's funktionieren, die einzelnen INSERT statements werden mit ; abgeschlossen (hab' aber nur Stichproben gemacht ). Dabei aber auch gleich noch eine weitere Frage: wie importiere ich die .sql-Dateien so, dass auch die Umlaute korrekt übernommen werden? Im Moment bekomme ich überall ein Fragezeichen (was v.a. bei der ibf_posts wohl katastrophal wär').. mfg, Tom Share this post Link to post
kingofcomedy 0 Report post Posted February 13, 2005 (edited) Aber eigentlich sollte Dragorans script ja genau solche Probleme mit großen dbs verhindern bzw. durch Aufsplitten "kompensieren" (es gibt dann eben nicht eine ibf_posts sondern ibf_posts1, ibf_posts2, usw. - die jeweilige Größe läßt sich Eeinstellen, um dem timeout beim Einlesen vorzubeugen..). Das passt zwar nicht direkt zum Thema, aber auch Dragorans Script, welches ich früher auch genutzt habe und sehr zufrieden damit war, wird, wenn ich das noch richtig in Erinnerung habe, ab einer gewissen DB-Grösse (ca. 50 MB) nicht mehr richtig funktionieren. Edited February 13, 2005 by kingofcomedy Share this post Link to post
Tankred 0 Report post Posted February 21, 2005 Bei mir hatte das Skript bis zirka 70 Megabyte problemlos funktioniert (Boardversion 1.3). Share this post Link to post