[gelöst] MySQL 4.1 Sicherung

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
floogy
Beiträge: 125
Registriert: 19.04.2006 22:43:15

[gelöst] MySQL 4.1 Sicherung

Beitrag von floogy » 13.04.2007 12:27:10

Hallo,

Ich habe ein paar Fragen zur MySQL Sicherung.
In http://dev.mysql.com/doc/refman/4.1/en/ ... ntion.html wird empfohlen mysqld mit der Option --log-bin zu restarten:
2. Stop mysqld if it is running, then start it with the --log-bin[=file_name] option. See Section 5.11.4, “The Binary Log”. The binary log files provide you with the information you need to replicate changes to the database that are made subsequent to the point at which you executed mysqldump.

Code: Alles auswählen

# ps axu|grep mysql
root     11582  0.0  0.0  2564 1280 ?        S    Mar29   0:00 /bin/sh /usr/bin/mysqld_safe
mysql    11667  0.0  0.3 133832 26036 ?      S    Mar29   0:17 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --skip-locking --port=3306 --socket=/var/run/mysqld/mysqld.sock
root     11668  0.0  0.0  1496  504 ?        S    Mar29   0:00 logger -p daemon.err -t mysqld_safe -i -t mysqld
Diese Option scheint bei mir noch nicht verwendet zu werden. In /etc/mysql/my.cnf findet sich folgendes:

Code: Alles auswählen

# Error logging goes to syslog. This is a Debian improvement :)
#
# Here you can see queries with especially long duration
#log-slow-queries       = /var/log/mysql/mysql-slow.log
#
# The following can be used as easy to replay backup logs or for replication.
#server-id              = 1
log-bin                 = /var/log/mysql/mysql-bin.log
# See /etc/mysql/debian-log-rotate.conf for the number of files kept.
max_binlog_size         = 104857600
#binlog-do-db           = include_database_name
#binlog-ignore-db       = include_database_name
Ich dachte mit log-bin = /var/log/mysql/mysql-bin.log wäre das schon aktiviert? Wie kann ich das automatisch für alle Datenbanken erstellen?

Eine weitere Frage bezieht sich darauf, ob ich die InnoDB sichern muss. Sie scheint ja per default aktiviert zu sein, mit ps finde ich aber nichts.

Code: Alles auswählen

#
# * InnoDB
#
# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
# Read the manual for more InnoDB related options. There are many!
Mir ist das Handbuch etwas kompliziert, wie muss ich hier vorgehen?
Zuletzt geändert von floogy am 13.04.2007 17:57:14, insgesamt 1-mal geändert.

Benutzeravatar
mistersixt
Beiträge: 6601
Registriert: 24.09.2003 14:33:25
Lizenz eigener Beiträge: GNU Free Documentation License

Beitrag von mistersixt » 13.04.2007 12:34:27

Was meinst Du mit "Sicherung"? Eine "Replication" auf einen anderen mysql-Server machen? Oder einfach die Datenbank ansich beispielsweise einmal nachts sichern? Wenn Letzteres kannst Du entweder mit "mysqldump" einen Dump der Datenbanken machen (such mal nach "mysql dump restore" bei Google) oder einfach die Verzeichnisse /var/lib/mysql/ weg-tar-en. Mysql ist da zum Glück sehr pflegeleicht ;) !

Gruss, mistersixt.
--
System: Debian Bookworm, 6.11.x.-x-amd64, ext4, AMD Ryzen 7 3700X, 8 x 3.8 Ghz., Radeon RX 5700 XT, 32 GB Ram, XFCE

floogy
Beiträge: 125
Registriert: 19.04.2006 22:43:15

Beitrag von floogy » 13.04.2007 12:52:00

Ich möchte mysql vor dem upgrade auf etch sichern, und mit --log-bin die Änderungen sichern, die seit dem letzten mysqldump anfielen, durch Zugriffe auf die Datenbanken.

Ich habe nun noch folgendes gefunden:

Code: Alles auswählen

 ls -lh /var/log/mysql/mysql-bin.*
-rw-rw----  1 mysql adm  122 2007-03-29 05:27 /var/log/mysql/mysql-bin.000457
-rw-rw----  1 mysql adm 5,1M 2007-04-13 03:43 /var/log/mysql/mysql-bin.000458
-rw-rw----  1 mysql adm   64 2007-03-29 05:27 /var/log/mysql/mysql-bin.index
Ist das das bin-log der Option --log-bin? Weshalb ist das mit ps axu nicht zu sehen?


Außerdem läßt sich InnoDB nicht mit mysqldump sichern:
(But note that these methods do not work if your database contains InnoDB tables. InnoDB does not store table contents in database directories, and mysqlhotcopy works only for MyISAM and ISAM tables.)
http://dev.mysql.com/doc/refman/4.1/en/backup.html

Wie finde ich heraus, ob ich InnoDB verwende, oder ob InnoDB Tabellen/Datenbanken vorhanden sind?

EDIT: Ich werde nun davon ausgehen, dass die --log-bin Option verwendet wird, da /var/log/mysql/mysql-bin.000458 nun ein aktuelles Datum besitzt. Ich nehme mal an, dass das in debian entweder über logrotate oder cron geregelt wird.

Ich sichere /var/lib/mysql in ein tar-Archiv, da ich denke, dass InnoDB per default aktiviert ist.

Ich sichere nun mit mysqldump, und mache danach das dist-upgrade.
http://dev.mysql.com/doc/refman/4.1/en/mysqldump.html
mysqldump --all-databases --single-transaction > all_databases.sql

Antworten