<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Elmars Notizen &#187; MySQL</title>
	<atom:link href="http://www.elmar-baumann.de/blog/tag/mysql/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.elmar-baumann.de/blog</link>
	<description>Software, Programmieren, Sonstiges</description>
	<lastBuildDate>Mon, 16 Jan 2012 18:25:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>MySQL-Datenbanken wiederherstellen</title>
		<link>http://www.elmar-baumann.de/blog/2008/12/07/mysql-datenbankenwiederherstellen/</link>
		<comments>http://www.elmar-baumann.de/blog/2008/12/07/mysql-datenbankenwiederherstellen/#comments</comments>
		<pubDate>Sun, 07 Dec 2008 17:49:18 +0000</pubDate>
		<dc:creator>Elmar</dc:creator>
				<category><![CDATA[Datenbanken]]></category>
		<category><![CDATA[Backup]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[mysqldump]]></category>
		<category><![CDATA[Restore]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.elmar-baumann.de/blog/?p=55</guid>
		<description><![CDATA[Im letzten Artikel beschrieb ich, wie ich meine MySQL-Datenbanken sichere mit dem Programm mysqldump. Für jede Sicherung gilt das Prinzip: Prüfe, ob die Sicherung in Ordnung ist! Für MySQL-Datenbanken bedeutet das: Schreibe das Backup in eine andere MySQL-Datenbank und prüfe, ob der Inhalt in Ordnung ist. Einsgepielt wird eine mysqldump-Sicherung mit folgendem Befehl: cat datenbank-Fri.sql.gz [...]]]></description>
			<content:encoded><![CDATA[<p>Im letzten Artikel <a href="http://www.elmar-baumann.de/blog/2008/12/03/mysql-datenbanken-sichern-artikel-von-weblogs-wikis-content-management-systemen-sichern/">beschrieb</a> ich, wie ich meine MySQL-Datenbanken sichere mit dem Programm <span class="product">mysqldump</span>. Für jede Sicherung gilt das Prinzip: <strong>Prüfe, ob die Sicherung in Ordnung ist!</strong><br />
<span id="more-55"></span><br />
Für MySQL-Datenbanken bedeutet das: Schreibe das Backup in eine <strong>andere</strong> MySQL-Datenbank und prüfe, ob der Inhalt in Ordnung ist. <q>Einsgepielt</q> wird eine mysqldump-Sicherung mit folgendem Befehl:</p>
<pre>cat datenbank-Fri.sql.gz | gzip -d | mysql andere_datenbank</pre>
<p>Im Beispiel schreibt das Programm <strong>mysql</strong> den Inhalt der Datenbank <code>datenbank-Fri.sql.gz</code> in die Datenbank <code>andere_datenbank</code> . <code>datenbank-Fri.sql.gz</code> wurde geschrieben von <strong>mysqldump</strong> und komprimiert mit <strong>gzip</strong>,</p>
<p>Bislang prüfte ich einmalig für eine Datenbank <q>per Durchsicht</q>: Ich konfigurierte beispielsweise das Weblog so, dass es die andere Datenbank benutzte. Anschließend rief ich ein paar Seiten auf und klickte auf ein paar Links. Wollte ich den Inhalt genau prüfen, würde ich ein Tool suchen oder schreiben, das die Tabellen und Inhalte zweier Datenbanken <strong>automatisch</strong> vergleicht und bei Abweichungen mich per E-Mail informiert.</p>
<p>Ob eine <q>aufgespielte</q> Sicherung nach Umzug auf einen anderen Webserver sofort funktioniert, hängt ab davon, wie das Weblog, Content Management-System oder Wiki  URLs behandeln. <span class="product">WordPress</span> beispielsweise schreibt in die Tabelle <code>options</code> den <strong>URL des Blogs</strong> in die Spalte <code>option_value</code> in die Zeilen, für die die Spalte <code>option_name</code> die Werte <code>siteurl</code> und <code>home</code> enthält. Dieser sollte überprüft und gegebenenfalls geändert werden. Das gleiche gilt für die Option <code>upload_url_path</code>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.elmar-baumann.de/blog/2008/12/07/mysql-datenbankenwiederherstellen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL-Datenbanken sichern</title>
		<link>http://www.elmar-baumann.de/blog/2008/12/03/mysql-datenbanken-sichern-artikel-von-weblogs-wikis-content-management-systemen-sichern/</link>
		<comments>http://www.elmar-baumann.de/blog/2008/12/03/mysql-datenbanken-sichern-artikel-von-weblogs-wikis-content-management-systemen-sichern/#comments</comments>
		<pubDate>Wed, 03 Dec 2008 19:57:16 +0000</pubDate>
		<dc:creator>Elmar</dc:creator>
				<category><![CDATA[Datenbanken]]></category>
		<category><![CDATA[Backup]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[mysqldump]]></category>

		<guid isPermaLink="false">http://www.elmar-baumann.de/blog/?p=27</guid>
		<description><![CDATA[Etliche Weblogs, Wikis und Content Management-Systeme speichern den Inhalt &#8211; alles was ich schreibe &#8211; in MySQL-Datenbanken. MySQL-Datenbanken sind Dateien auf der Festplatte eines Webservers, diesen besitzt ein Internet-Dienstleister. Spätestens nach einem Wechsel des Webservers will ich den Inhalt der alten Datenbanken einfügen in neue MySQL-Datenbanken mit wenig Aufwand. Dazu sichere ich die Datenbanken des [...]]]></description>
			<content:encoded><![CDATA[<p>Etliche Weblogs, Wikis und Content Management-Systeme speichern den Inhalt &#8211; alles was ich schreibe &#8211; in <span class="product">MySQL</span>-Datenbanken. <strong>MySQL</strong>-Datenbanken sind Dateien auf der Festplatte eines Webservers, diesen besitzt ein Internet-Dienstleister.</p>
<p>Spätestens nach einem Wechsel des Webservers will ich den Inhalt der alten Datenbanken einfügen in neue MySQL-Datenbanken mit <strong>wenig Aufwand</strong>.<br />
<span id="more-27"></span><br />
Dazu sichere ich die Datenbanken des Webservers auf meinen <strong>lokalen Rechner</strong>. Weitere Gründe für die lokale Sicherung:</p>
<ol>
<li>Die Datenbank könnte beschädigt werden und nicht mehr (vollständig) wiederhergestellt</li>
<li>Cracker und  Schadsoftware könnten die Datenbank <q>verändern</q></li>
<li>Der Internet-Dienstleister könnte seinen Dienst einstellen ohne dass ich vorher meine Daten auf irgend eine Weise <q>retten</q> kann</li>
</ol>
<p>In einem Artikel über die Prinzipien der Datensicherung <a href="http://www.elmar-baumann.de/fotografie/tipps/computer/dateimanagement/backup-02.html">schrieb</a> ich, Backups sollen automatisch ablaufen. Bei mir sieht das so aus:</p>
<ol>
<li>Einmal <strong>täglich</strong> sichert <strong>auf dem Webserver</strong> das Programm <span class="product">mysqldump</span> meine MySQL-Datenbanken mit den kompletten Einfügebefehlen</li>
<li>Nach einer Woche wird die älteste Sicherung überschrieben, es existieren bis zu 7 Sicherungen, eine für jeden Wochentag</li>
<li>Auf meinem lokalen Rechner ruft Cron <strong>täglich</strong> <strong>(automatisch</strong>) ein Skript auf; dieses veranlasst auf dem Webserver SQL-Dumps (1.) und speichert die SQL-Dumps auf die lokale Festplatte</li>
<li>Inhalte, die das Weblog, Wiki, Content Management-System nur auf die Webserver-Festplatte speichern und nicht in die Datenbank, werden heruntergeladen und auf die lokale Festplatte gespeichert, sofern noch nicht geschehen oder diese auf dem Webserver modifiziert wurden</li>
<li>Die Daten der lokalen Festplatte werden täglich auf eine externe Festplatte gesichert, die nur während der Sicherung eingeschaltet ist; wäre Geld kein Thema, würde ich die lokale Festplatte auf ein LTO 4-Streamerband sichern lassen</li>
</ol>
<p>Der Webserver muss folgende Programme anbieten und auf irgend eine Weise ausführen lassen:</p>
<ul>
<li> <strong>mysqldump</strong></li>
<li><strong>gzip</strong>, die Komprimierung von mysqldump könnte nicht funktionieren</li>
<li><strong>mail</strong></li>
</ul>
<p>Dies berücksichtige ich bei der Auswahl eines Webservers.</p>
<p>Besser ist ein Webserver, bei dem ich zeitgesteuert Programme ausführen lassen kann, es reicht aber einer, der CGI-Skripte erlaubt, unter anderem Bash-Skripte, die sich für diese Aufgabe eignen.</p>
<p>Für den SQL-Dump schrieb ich zwei Bash-Skripte: Eines, das die Datenbank sichert und bei Fehlern eine E-Mail schickt und ein anderes, das für alle Datenbanken dieses Skript aufruft. Sie können beide herunterladen:</p>
<ol>
<li><a href="/blog/wp-content/uploads/mysqldump.sh.txt">Skript, das eine Datenbank sichert</a></li>
<li><a href="/blog/wp-content/uploads/mysqldumpdbs.sh.txt">Skript, das für alle Datenbanken Skript 1 aufruft</a></li>
</ol>
<p>Aus den Skripten löschte ich: Skript 1 verlangt ein Passwort, wird keines oder ein falsches überreicht, unternimmt es nichts und Skript 2 ruft Skript 1 mit einem Passwort auf.</p>
<p>Das Skript, das <strong>cron</strong> täglich aufruft auf meinem lokalen Rechner, ruft das CGI-Skript 2 auf mit dem Webbrowser lynx und dem Parameter <code>--dump</code>. <strong>Lynx</strong> zeigt die Skriptausgabe an und beendet sich, die Ausgabe wird umgeleitet in eine Logdatei.</p>
<p>Die Dateien, die im Dateisystem der Webserver-Festplatte gespeichert sind &#8211; die <strong>WordPress</strong>-, <strong>MediaWiki</strong>-, &#8230; -Installationsverzeichnisse &#8211; sowie die mysqldump-Backupdateien spiegelt das Perl-Skript <span class="product">mirror</span> auf meine lokale Rechnerfestplatte (täglich aufgerufen durch <strong>cron</strong>). Es gibt weitere Programme, die Dateien eines Webservers spiegeln können, spontan fallen mir diese ein: <span class="product">wget</span> und <span class="product">ncftp</span>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.elmar-baumann.de/blog/2008/12/03/mysql-datenbanken-sichern-artikel-von-weblogs-wikis-content-management-systemen-sichern/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

