Zur Boardunity Forenstartseite

Zurück   Boardunity & Video Forum » Technik » Programmierung und Datenbanken

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1  
Alt 02.01.2004, 00:17
Benutzerbild von stalkerX
Der mit dem Code tanzt...
 
Registriert seit: 07.2002
Ort: Hamburg
Beiträge: 58

Sicherung der mySQL-DB


Abend.

Sichert ihr eure mySQL-Tabellen als Backup? Wenn ja, womit und wie oft? Auf dem Server oder auf dem Recher?

Würde mich sehr gerne interessieren
__________________
.: eBiene Deluxe - dein professioneller Bookmark-Manager im Web :.
  #2  
Alt 02.01.2004, 00:25
Boardunity Team
 
Registriert seit: 12.2001
Beiträge: 1.624
Hi Stalker,

also ich sichere die Datenbank täglich per Cron-Job. Dazu folgt dann 1-2mal die Woche das Komplettbackup auf USB-Stick.

Als Backup-Tool für gelegentliche Sicherungen dient mir nach wie vor phpmyadmin.

  #3  
Alt 04.01.2004, 19:52
Zeitdenken Team
 
Registriert seit: 12.2003
Beiträge: 41
ein Cron Job & das in Mysql integrierte Tool mysqldump senden mir täglich eine Mail ;-)

  #4  
Alt 04.01.2004, 20:10
Benutzerbild von Daniel Richter
TVBlogger
 
Registriert seit: 07.2003
Ort: Wilhelmshaven
Beiträge: 2.110
Zitat:
Zitat von jantilly
ein Cron Job & das in Mysql integrierte Tool mysqldump senden mir täglich eine Mail ;-)
hmm wie groß ist deine Datenbank? Das kann ja nicht viel sein, denn ich könnte das bei > 100 mb SQL Dump nicht mehr machen

__________________
Daniel Richter
Immer ein Besuch wert: TVBlogger.de - Aktuelle Nachrichten aus der Welt des Fernsehens
  #5  
Alt 04.01.2004, 21:20
Mitglied
 
Registriert seit: 09.2003
Beiträge: 106
Warum nicht?
Ich mache ebenfalls mysqldump per cronjob 1 mal täglich. Alle 2 Tage lade ich mir ein Backup herunter.

  #6  
Alt 05.01.2004, 10:09
Mitglied
 
Registriert seit: 10.2003
Beiträge: 39

Cron-Job...


Zitat:
Zitat von Boardster
...
also ich sichere die Datenbank täglich per Cron-Job.
...
Hi,

betreibe selbst ein YaBBSE Forum und sichere auch nahezu Täglich via mysqldump des Forums und via PHPMyAdmin.
Gerne würde ich mich mit der Materie Cron-Job beschäftigen da ich bei meinem neuen Provider einen frei habe. Brauch ich ein selbstgeschriebenes Skript? Sollten die mir soetwas anbeiten? Wie geht soetwas von statten?

Für ein WebBackup nutze ich BTW, klappt sehr gut

Geändert von netzopfer (24.06.2008 um 21:04 Uhr).
  #7  
Alt 05.01.2004, 10:15
Boardunity Team
 
Registriert seit: 12.2001
Beiträge: 1.624
Vielleicht hilft dir dieses Script weiter:

Es liefert keinen Output und besteht aus einer Config-Datei und dem Script.

config.inc
Code:
<?php
/*******************************************/
/* MySQL Database Backup                   */
/*******************************************/

//  -------------------------------------------------------------------------------------
// Script configuration:
$path = "../../phptmp/"; // backup path
    $host = "localhost"; // hostname
    $use_date = 1; // use date in file name

$numdb = 2; // number of databases to backup

$account[1] = "name"; // any name (used for filename)
    $user[1] = "wwXXXX"; // DB user
    $pw[1] = "XXXXXXXX"; // password
    $databasename[1] = "XXDatenbanknameXX"; // DB

$account[2] = "name2"; // any name (used for filename)
    $user[2] = "wwXXXX"; // DB user
    $pw[2] = "XXXXXXXX"; // password
    $databasename[2] = "usr_wwXXXX_1"; // DB
    

?>

backup.php
Code:
<?php 
/*******************************************/
/* MySQL Database Backup for Cron Jobs     */
/*******************************************/

//  -------------------------------------------------------------------------------------
include ("config.inc");

for ($idb = 1; $idb <= $numdb; $idb++) {


$conn_id = mysql_connect($host,$user[$idb],$pw[$idb]) or die(mysql_error());

$database = $databasename[$idb];
$zaehler = 0;
$start=0;


// generate filesuffix if it should be used
if($use_date == 1) {
$datum = date(Ymd)."_"; 
} else{
$datum = ""; 
}

$file_name = $path.$datum.$account[$idb].".sql";
$file_old = $path.$database.".old";
$aktime=date("d-m-Y H:i");
$db_name = $dump1."$aktime\n";
$db_name.= $dump2."$database \r\n";
if (file_exists($file_name)){unlink($file_name);}  
$fd = fopen($file_name,"a+");
fwrite($fd, $db_name); 
fclose($fd);     
 
// Tabellenname Array auslesen und aufbauen

$tbl_array = array(); $c = 0;
$result2 = mysql_list_tables($database);
for($x=0; $x<mysql_num_rows($result2); $x++) {  
$tabelle = mysql_tablename($result2,$x);
if ($tabelle <>"") {
$tbl_array[$c] = mysql_tablename($result2,$x); $c++;$zaehler++;
}
}

flush();

// Start Ausgabe und Berechnung 
for ($y = 0; $y < $c; $y++) {  
$tabelle=$tbl_array[$y];

// Struktur der Tabelle einlesen

$def = "";
$def .= "DROP TABLE IF EXISTS $tabelle; \n";
$def .= "CREATE TABLE $tabelle (\n"; 
$result3 = mysql_db_query($database, "SHOW FIELDS FROM $tabelle",$conn_id);
while($row = mysql_fetch_array($result3)) {
$def .= "    $row[Field] $row[Type]";
if ($row["Default"] != "") $def .= " DEFAULT '$row[Default]'";
if ($row["Null"] != "YES") $def .= " NOT NULL";
if ($row[Extra] != "") $def .= " $row[Extra]";
$def .= ",\n";
}
$def = ereg_replace(",\n$","", $def);
$result3 = mysql_db_query($database, "SHOW KEYS FROM $tabelle",$conn_id);
while($row = mysql_fetch_array($result3)) {
$kname=$row[Key_name];
if(($kname != "PRIMARY") && ($row[Non_unique] == 0)) $kname="UNIQUE|$kname";
if(!isset($index[$kname])) $index[$kname] = array();
$index[$kname][] = $row[Column_name];
}
while(list($xy, $columns) = @each($index)) {
$def .= ",\n";
if($xy == "PRIMARY") $def .= "   PRIMARY KEY (" . implode($columns, ", ") . ")";
else if (substr($xy,0,6) == "UNIQUE") $def .= "   UNIQUE ".substr($xy,7)." (" . implode($columns, ", ") . ")";
else $def .= "   KEY $xy (" . implode($columns, ", ") . ")";
}

$def .= "\n); \n";
     
// Ende Struktur Modul
$db = @mysql_select_db($database,$conn_id); 

$tabelle="".$tabelle; 
$ergebnis=array();
$tbl_name = $dump3."$tabelle \r\n"; 
$fd = fopen($file_name,"a+"); 
fwrite($fd, $tbl_name.$def); 
fclose($fd);

unset($data);
if ($tabelle>""){  
$ergebnis[]=@mysql_select_db($database,$conn_id); 
$result=mysql_query("select * from $tabelle"); 
$anzahl= mysql_num_rows ($result); 
$spaltenzahl = mysql_num_fields($result); 
for ($i=0;$i<$anzahl;$i++) { 
$zeile=mysql_fetch_array($result); 
$data.="insert into $tabelle ("; 
for ($spalte = 0; $spalte < $spaltenzahl;$spalte++) { 
$feldname = mysql_field_name($result, $spalte); 
if($spalte == ($spaltenzahl - 1)) { 
$data.= $feldname; 
} else { 
$data.= $feldname.","; 
} 
};
$data.=") VALUES ("; 
for ($k=0;$k < $spaltenzahl;$k++){ 
if($k == ($spaltenzahl - 1)) { 
$data.="'".addslashes($zeile[$k])."'"; 
} else { 
$data.="'".addslashes($zeile[$k])."',"; 
} 
} 
$data.= ");\n"; 
} 
$data.= "\n";
} else { 
$ergebnis[]= $err; 
} 

$zeit = (date("d_m_Y")); 
$fd = fopen($file_name,"a+"); 
$zeit = time() - $start;
$speed = $speed+$zeit;

for ($i3=0;$i3<count($ergebnis);$i3++){ 
fwrite($fd, $data); 
fclose($fd); 
} 
}
$groesse = filesize($file_name) / 1024;
$place =  $place+$groesse;

mysql_close($conn_id);

}

exit; 
?>

...und dann in den Account-Einstellungen "backup.php" als Cron-Job wählen.

  #8  
Alt 05.01.2004, 13:10
Benutzerbild von Björn
Boardunity Team
 
Registriert seit: 10.2003
Ort: Rhode
Beiträge: 1.205
oh das gefällt mir!
ich werde mir das mal genauer anschaun
thx


edit: was mir nicht gefällt: config.inc
wird normaler weiße nicht geparst sprich jeder könnte sich die db pws im klartext runterladen!

am besten in config.inc.php umbennen und in backup.php anpassen
mfg

__________________
Björn C. Klein
Welt-Held!
PunkRockNews.de
  #9  
Alt 05.01.2004, 13:37
Benutzerbild von MaMo
Viscacha Coder
 
Registriert seit: 09.2003
Beiträge: 812
Zitat:
Zitat von Boardster
Vielleicht hilft dir dieses Script weiter:

Es liefert keinen Output und besteht aus einer Config-Datei und dem Script.

config.inc

...und dann in den Account-Einstellungen "backup.php" als Cron-Job wählen.
Cool, aber ich bräuchte das für Perl
Mal sehen, vielleicht schreibe ich das in den nächsten Tagen mal um
MfG MaMo

__________________
Forensoftware mit integriertem CMS: Viscacha 0.8!
  #10  
Alt 05.01.2004, 14:04
Mitglied
 
Registriert seit: 10.2003
Beiträge: 39
Zitat:
Zitat von Boardster
Vielleicht hilft dir dieses Script weiter:

Es liefert keinen Output und besteht aus einer Config-Datei und dem Script.

(Code)

...und dann in den Account-Einstellungen "backup.php" als Cron-Job wählen.
Danke erstmal für deine Hilfe, hab es mal inst. und gestest. Der Dump klappt hervorragend jedoch kann ich nicht zurück spielen
Kommen gleich Fehler hinter fehler und wenn ich mir das Dumpfile mal so anschaue sieht es etwas merkwürdig aus
Code:
05-01-2004 13:51
XXDBNameXX
yabbse_banned
DROP TABLE IF EXISTS yabbse_banned;
CREATE TABLE yabbse_banned (
    type tinytext NOT NULL,
    value tinytext NOT NULL
);

yabbse_boards 
DROP TABLE IF EXISTS yabbse_boards; 
CREATE TABLE yabbse_boards (
    ID_CAT tinyint(4) DEFAULT '0' NOT NULL,
    ID_BOARD int(11) NOT NULL auto_increment,
    name tinytext NOT NULL,
    description text,
    moderators text,
    boardOrder tinyint(4) DEFAULT '0' NOT NULL,
    numTopics int(11) DEFAULT '0' NOT NULL,
    numPosts int(11) DEFAULT '0' NOT NULL,
    isAnnouncement tinyint(4) DEFAULT '0' NOT NULL,
    notifyAnnouncements tinyint(4) DEFAULT '0' NOT NULL,
    count tinyint(4) DEFAULT '0' NOT NULL,
    ID_LAST_TOPIC int(11),
   PRIMARY KEY (ID_BOARD),
   KEY ID_CAT (ID_CAT),
   KEY boardOrder (boardOrder)
);
insert into yabbse_boards (ID_CAT,ID_BOARD,name,description,moderators,boardOrder,numTopics,numPosts,isAnnouncement,notifyAnnouncements,count,ID_LAST_TOPIC) VALUES ('5','1','Test','Teste bis der Arzt kommt...','test','2','1','5','0','0','1','170');
...
...
...
Hilfe...


edit: Das Dumpfile der ForenSW funktioniert? Was habe iuch falsch gemacht?


Geändert von netzopfer (24.06.2008 um 21:05 Uhr).
  #11  
Alt 05.01.2004, 22:16
Benutzerbild von stalkerX
Der mit dem Code tanzt...
 
Registriert seit: 07.2002
Ort: Hamburg
Beiträge: 58
Warum ich eigentlich gefragt habe: Ich bin grad dabei eine mySQL-Backup-Applikation zu schreiben. Damit ist es möglich gesamte Datenbank oder auch einzelne Tabellen zu archivieren - auf dem WebServer oder es wird als downloadbare Datei bereitgestellt, im SQL- oder GZ-Format.

Es wäre fein, wenn noch jemand, ausser mir , die Anwendung testet. Reports bitte an mich... Schon mal danke! Hier die fast blanke DL-Seite: http://lab.ebiene.de/

P.S: Struktur und Restore kommen noch.

__________________
.: eBiene Deluxe - dein professioneller Bookmark-Manager im Web :.
  #12  
Alt 05.01.2004, 23:05
Benutzerbild von Gérome
*wurgelpurgel*
 
Registriert seit: 08.2003
Ort: Server-Raum im Keller
Beiträge: 243
Der Vielfalt zuliebge möchte ich noch eine weitere Lösung vorstellen, mit der ich heute unseren neuen Server bei all-inkl.com mit einer 140 MB-Datenbak gefüttert habe: "DumpTimer" von http://www.mywitch.de/usindex.php4. Diese Anwendung finde ich persönlich recht "trickreich". Sie setzt auf eine Kombination aus Win32-Anwendung und PHP-Script und ist mittels inkrementeller Datenströme in der Lage, nahezu beliebig große Datenbanken zu transferieren, ohne in einen Timeout zu laufen. Dazu ist es nicht einmal nötig, daß die DB von außen zugänglich ist, da diese Verbindung über ein PHP-Script hergestellt wird, welches (per Hand bzw. per FTP *g*) auf dem Webspace abzulegen ist.

Bei 1&1 haben wir unsere Dumps immer schön über die Konsole mit mySQL-Dump erledigt - jetzt dürfen wir dies ja leider nicht mehr und ich denke, mit diesem Produkt etwas (für uns) brauchbares gefunden zu haben.


Grüße,
Gérome

  #13  
Alt 06.01.2004, 01:37
Mitglied
 
Registriert seit: 07.2002
Beiträge: 357
Ich zitiere mich mal selbst ,-)

http://webhostingtalk.de/showpost.ph...99&postcount=6

  #14  
Alt 03.03.2005, 11:07
Mitglied
 
Registriert seit: 10.2004
Ort: Paderborn
Beiträge: 69
Hat jemand von Euch schon mal mit mysqlhotcopy gearbeitet und kann einige Erfahrungen berichten? Es soll bei größeren Datenbanken das schnellere und sicherere Verfahren sein die Datenbank zu sichern.

Aus dem MySQL-Handbuch:
Zitat:
mysqlhotcopy ist ein Perl-Skript, das LOCK TABLES, FLUSH TABLES und cp oder scp benutzt, um schnell eine Datensicherung einer Datenbank anzulegen. Es stellt die schnellste Möglichkeit dar, eine Sicherung einer Datenbank oder einzelner Tabellen durchzuführen, läuft aber nur auf derselben Maschine, auf der sich die Datenbankverzeichnisse befinden.

__________________
Thomas Babut
Gruß,
Tomek
  #15  
Alt 04.03.2005, 21:00
Benutzerbild von Luki
Administrator
 
Registriert seit: 02.2004
Ort: Hamburg
Beiträge: 486
-> MySQL Backup erstellen (auch bei grossen Datenbanken)
hier auch schon ausgiebig diskutiert

ich verwende ebenfalls den mysql eigenen Befehl für Backups und sicher die Datenbank 70MB täglich!

  #16  
Alt 29.09.2007, 09:39
Benutzerbild von redlabour
politikstube.de Admin
 
Registriert seit: 09.2004
Ort: Wuppertal, NRW
Beiträge: 6
Online : MySQLDumper MySQLDumper - smart backup for all your web projects
Lokal: Dumptimer MySql Sicherung s (MySQL Backup)- Software für MySQL Datenbanken, auch für MySQL Datenbanken im Internet. - RichtSoft

__________________
[size=1][URL=http://www.politikstube.de]politikstube - die andere Politikcommunity[/URL][/size]
Antwort


Stichworte
-


Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
bestes board ohne MySql? ernstl Entscheidungshilfe 15 30.12.2004 18:13
Einträge von Heute aus einer MySQL DB auslesen. Daniel Richter Programmierung und Datenbanken 10 08.11.2004 18:57
MySQL Volltextsuche - Leistungsfähigkeit? exe Programmierung und Datenbanken 8 05.05.2004 13:05
PHP & MySQL: Lizenzkonflikte wurden gelöst Michael Przybyla Boardunity-Talk 5 06.04.2004 21:57
forenentwicklung und die neuen mysql lizenzen Björn Entwicklung und Konzeption sozialer Software 4 12.11.2003 18:33






1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25