mysqlhotcopy ist ein Perl-Skript, das
ursprünglich von Tim Bunce entwickelt und beigetragen wurde.
Es erstellt mithilfe von LOCK TABLES
,
FLUSH TABLES
und cp
oder
scp
ein schnelles Backup der Datenbank.
Dieses Skript stellt die schnellste Möglichkeit dar, eine
Sicherungskopie der Datenbank oder einzelner Tabellen zu
erstellen, kann aber nur auf dem Computer ausgeführt werden,
auf dem auch die Datenbankverzeichnisse gespeichert sind.
mysqlhotcopy erlaubt lediglich die
Sicherung von MyISAM
-Tabellen. Es läuft
unter Unix und NetWare.
shell> mysqlhotcopy db_name
[/path/to/new_directory
]
shell> mysqlhotcopy db_name_1
... db_name_n
/path/to/new_directory
Gesichert werden Tabellen in der angegebenen Datenbank, die einem regulären Ausdruck entsprechen:
shell> mysqlhotcopy db_name
./regex
/
Der reguläre Ausdruck für den Tabellennamen kann verneint
werden, indem man ihm eine Tilde
(‘~
’) voranstellt:
shell> mysqlhotcopy db_name
./~regex
/
mysqlhotcopy unterstützt die folgenden Optionen:
--help
, -?
Zeigt eine Hilfemeldung an und wird dann beendet.
--addtodest
Benennt das Zielverzeichnis (sofern vorhanden) nicht um, sondern fügt nur Dateien hinzu.
--allowold
Bricht nicht ab, wenn das Ziel vorhanden ist, sondern
benennt es durch Anhängen des Suffix
_old
um.
--checkpoint=
db_name
.tbl_name
Fügt Prüfpunkteinträge in die angegebene Datenbank
db_name
und Tabelle
tbl_name
ein.
--chroot=
path
Basisverzeichnis des chroot-Käfigs,
auf dem mysqld läuft. Der Wert
path
sollte mit dem der Option
--chroot
übereinstimmen, die für
mysqld angegeben wurde.
--debug
Aktiviert die Debugausgabe.
--dryrun
, -n
Meldet Aktionen, ohne sie auszuführen.
--flushlog
Synchronisiert Logs, nachdem alle Tabellen gesperrt wurden.
--host=
,
host_name
-h
host_name
Hostname des lokalen Hosts, der zur Herstellung einer
TCP/IP-Verbindung zum lokalen Server verwendet wird.
Standardmäßig erfolgt die Verbindung zu
localhost
über eine Unix-Socketdatei.
--keepold
Gibt an, dass das vorherige (umbenannte) Ziel nach Abschluss nicht gelöscht wird.
--method=
command
Methode zum Kopieren von Dateien (cp
oder scp
).
--noindices
Gibt an, dass vollständige Indexdateien nicht Bestandteil der Sicherung sind. Hierdurch wird die Sicherung beschleunigt, und die Backup-Datei wird kleiner. Die Indizes der neu geladenen Tabellen lassen sich später mit myisamchk -rq rekonstruieren.
--password=
,
password
-p
password
Verwendet das angegebene Passwort zur Verbindung mit dem Server. Beachten Sie, dass der Passwortwert – anders als bei anderen MySQL-Programmen – bei dieser Option nicht optional ist. Wenn Sie das Passwort nicht auf der Befehlszeile angeben wollen, können Sie auch eine Optionsdatei verwenden.
Die Angabe eines Passworts direkt auf der Befehlszeile ist als nicht sicher einzuordnen. Siehe auch Abschnitt 5.9.6, „Wie Sie Ihre Kennwörter sicher halten“.
--port=
,
port_num
-P
port_num
Die TCP/IP-Portnummer, die zur Verbindung mit dem lokalen Server verwendet werden soll.
--quiet
, -q
Stummer Modus (außer bei Fehlern).
--record_log_pos=
db_name
.tbl_name
Zeichnet den Status von Master und Slave in der
angegebenen Datenbank db_name
und Tabelle tbl_name
auf.
--regexp=
expr
Kopiert alle Datenbanken, deren Namen dem angegebenen regulären Ausdruck entsprechen.
--resetmaster
Setzt das Binärlog nach Sperren aller Tabellen zurück.
--resetslave
Setzt die Datei master.info
nach
Sperren aller Tabellen zurück.
--socket=
,
path
-S
path
Unix-Socketdatei, die für die Verbindung verwendet werden soll.
--suffix=
str
Suffix für Namen kopierter Datenbanken.
--tmpdir=
path
Das Temporärverzeichnis. Vorgabe ist
/tmp
.
--user=
,
user_name
-u
user_name
Verwendet den angegebenen MySQL-Benutzernamen zur Verbindung mit dem Server.
mysqlhotcopy liest die Abschnitte
[client]
und
[mysqlhotcopy]
aus Optionsdateien aus.
Um mysqlhotcopy auszuführen, müssen Sie
Zugriff auf die Dateien der zu sichernden Tabellen haben und
benötigen zudem die Berechtigung SELECT
für diese Tabellen sowie die Berechtigung
RELOAD
(damit Sie FLUSH
TABLES
ausführen können).
perldoc
bietet eine umfassende
Dokumentation zu mysqlhotcopy
einschließlich Informationen zur Struktur der Tabellen, die
für die Optionen --checkpoint
und
--record_log_pos
erforderlich sind:
shell> perldoc mysqlhotcopy
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.