GNU/Linux >> Znalost Linux >  >> Debian

Jak zálohovat databáze MySQL pomocí mylvmbackup na Debian Squeeze

mylvmbackup je skript v Perlu pro rychlé vytváření záloh MySQL. K tomu využívá funkci snapshot LVM. K provedení zálohy získá mylvmbackup zámek pro čtení na všech tabulkách a vyprázdní všechny mezipaměti serveru na disk, vytvoří snímek svazku obsahujícího datový adresář MySQL a znovu odemkne tabulky. Tento článek ukazuje, jak jej používat na serveru Debian Squeeze.

Neposkytuji žádnou záruku, že to pro vás bude fungovat!

1 předběžná poznámka

Předpokládám, že MySQL je již ve vašem systému nastaven a spuštěn. Systém musí používat LVM a datový adresář MySQL (/var/lib/mysql) by měl mít vlastní oddíl LVM (ačkoli je to volitelné).

Pokud jste četli Zálohování (a obnovení) oddílů LVM pomocí snímků LVM, víte, že snímky LVM vyžadují pro snímek nějaký nepoužívaný oddíl LVM. Můj testovací systém má druhý, momentálně nepoužívaný pevný disk /dev/sdb, který použije mylvmbackup k vytvoření dočasného logického svazku pro zálohu.

Toto je moje současná situace:

[e-mail chráněno]:~# df -h
Systém souborů             Velikost  Použitá Využití % Připojeno na
/dev/mapper/server1-root
       /                                   8                                          > TMPFS 252M 0 252M 0%/lib/init/rw
Varrun 252M 56K 251M 1%/RUN
Varlock 252M 0 252M/VAR/LOCK
Udev 252M 2,6 m 249 m 2%/dev
TMPFS 252M 0 252M 0%/DEV/SHM
/Dev/SDA1 471M 23M 425M 6%/Boot
/Dev/Mapper/Server1-MYSQL
8,9 G  170 M  8,3 G   2 % /var/lib/mysql
[e-mail chráněný]:~#

Jak vidíte, mám dva oddíly LVM, / a /var/lib/mysql (plus odkládací oddíl LVM, který zde není zobrazen). Skupina svazků se jmenuje server1 a svazky se jmenují swap, root a mysql:

[e-mail chráněno]:~# pvdisplay
  --- Fyzický objem ---
  Název PV               /dev/sda5
  VG Název >        Velikost serveru                                                           Použitelné 3,66 MB
alokatovatelné ano (ale plné)
velikost PE (kbyte) 4096
Celkem PE 7557
zdarma PE 0
přiděleno PE 7557
PV uuid 0gCmpE-FGel-9ayg-E2yg-kkEu-B72X-kFvaye

[chráněno e-mailem]:~#


[chráněno e-mailem]:~# vgdisplay
  --- Skupina svazků ---
  VG Název                server1
  ID systému
  Formát                 lvm2
   Geta 
   Meta  1 <      Meta  1                             Číst /zápis
VG Stav Resizedable
max lv 0
cur lv 3
otevřený lv 3
max pv 0
cur pv 1
akt PV                 1
  VG velikost              29,52 GB
Velikost PE 4,00 MB
Celkem PE 7557
Alloc PE /velikost 7557 /29,52 GB
zdarma PE /velikost 0 /0
vg uuid ph5hpc-jqep- BFYs-wWlA-hu03-qwuQ-0cNIu3

[e-mailem chráněno]:~#


[e-mailem chráněno]:~# lvdisplay
   -- -Logický svazek ---
LV Název /dev /server1 /swap
vg name Server1
LV UUID RCELCK-MO5P-XOMQ-SWTT-N2NV-GAP6-GAEMDP
LV Write Přístupní čtení /zápis
Stav LV k dispozici
#Otevřený 2
LV Velikost 1,00 GB
Aktuální LE 256
Segmenty 1
alokace zdědit
Přečtěte si dopředu sektory     auto
  - aktuálně nastaveno na      256
  Blokovat zařízení            254:0

  --- Logický objem ---
   1 / název server     br />  VG Název                 server1
  LV UUID     5WEN7N-XYMH-MQZ1-FKH5-0XXA-1Y2T-V3PYBB
LV PŘIPOJIT Přístupový čtení /zápis
K dispozici je stav LV
Le 5000
Segmenty 1
alokace zdědí
Přečtěte si dopředu Auto
-v současné době nastaveno na 256
blokové zařízení 254:1

------------------------------------------------------------ -Logický svazek ---
LV Název /dev /server1 /mysql
vg name server Přístupní čtení /zápis
Stav LV k dispozici
#Otevřený 1
LV velikost 8,99 GB
Aktuální LE 2301
Segmenty 1
Přidělení zdědí
Přečtěte si dopředu sektory     auto
  - momentálně nastaveno na     256
  Blokovat zařízení            254:2

[e-mail chráněno]:~#

Zde je přehled mých dvou pevných disků:

[e-mail chráněno]:~# fdisk -l

Disk /dev/sda: 32,2 GB, 32212254720 bajtů
255 hlav, 63 sektorů/stopa, 3916 cylindrů
jednotky =válce 16065 * 512 =8225280 bytes
identifikátoru disku:0x0009353f

Device Boot Začátek Konec bloky Id systém
/ dev / sda1 * 1 62 497983+ 83 Linux
/dev/sda2 63 3916 30957255 5 Extended
/dev/sda5 63 3916 30957223+ 8e Linux LVM

Disk/dev/sdb:10,7 GB, 10737418240 byty
255 hlavy, 63 sektorů/stopa, 1305 cylindrů
Jednotky = cylindry 16065 * 512 = 8225280 bajtů
Identifikátor disku: 0x00000000

Disk /done/dev tabulka oddílů
[e-mailem chráněno]:~#

2 Příprava /dev/sdb

Než budeme moci vytvářet snímky na /dev/sdb, musíme jej rozdělit (Linux LVM) a přidat do naší skupiny svazků (server1).

Nyní vytvořím oddíl /dev/sdb1 a přidám jej do skupiny svazků server1:

fdisk /dev/sdb

server1:~# fdisk /dev/sdb
Zařízení neobsahuje platnou tabulku oddílů DOS ani disklabel Sun, SGI nebo OSF
Vytváření nového disku DOS. Změny zůstanou pouze v paměti,
dokud se nerozhodnete zapsat je. Poté samozřejmě předchozí
obsah nebude obnovitelný.


Počet cylindrů pro tento disk je nastaven na 1305.
Není nic je to špatně, ale to je větší než 1024,
a může v určitých nastaveních způsobovat problémy s:
1) softwarem který běží při zavádění (např. staré verze LILO)
spouštění a software pro vytváření oddílů z jiných OS
    (např. DOS FDISK, OS/2 FDISK)
Upozornění: neplatný příznak 0x0000 tabulky rozdělení 4 bude opraveno w(rite)
>Příkaz (m pro nápovědu): <-- n
Akce příkazu
   e   rozšířeno
   p   primární oddíl (1-4)
<-- p
Číslo oddílu (1-4): <-- 1
První válec (1-1305, výchozí 1):<-- [ENTER]
Použití výchozí hodnoty 1
Poslední válec nebo +velikost nebo + sizeM nebo +sizeK (1-1305, výchozí 1305):<-- [ENTER]
Používá výchozí hodnotu 1305

Příkaz (m pro nápovědu): <-- t
Vybraný oddíl 1
Hexakód (kódy zobrazíte zadáním L ): <-- 8e
Ch starý systém typ oddílu 1 až 8e (Linux LVM)

Příkaz (m pro nápovědu): <-- w
Tabulka oddílů byla změněna!

Volání ioctl() pro znovu načtení tabulky oddílů.
Synchronizace disků.

pvcreate /dev/sdb1
vgextend server1 /dev/sdb1

To je vše – nepotřebujeme na něm vytvářet žádné svazky – to provede mylvmbackup automaticky.

3 Instalace a používání mylvmbackup

Debian Squeeze poskytuje balíček pro mylvmbackup, takže jej můžeme jednoduše nainstalovat následovně:

apt-get install mylvmbackup

Podívejte se na

man mylvmbackup

abyste se naučili, jak ji používat (pokud používáte InnoDB, přečtěte si pozorně část o tabulkách InnoDB).

Konfigurační soubor mylvmbackup je /etc/mylvmbackup.conf, takže své volby můžete zadat buď na příkazovém řádku, nebo v tomto souboru (volby příkazového řádku přepíší možnosti v /etc/mylvmbackup.conf).

Výchozí adresář záloh je /var/cache/mylvmbackup/backup (pokud neurčíte jiné umístění).

Vzorový příkaz pro zálohování tabulek MyISAM by byl:

mylvmbackup --user=root --password=yourrootsqlpassword --mycnf=/etc/mysql/my.cnf --vgname=server1 --lvname=mysql --backuptype=tar

A pro InnoDB:

mylvmbackup --user=root --password=yourrootsqlpassword --innodb_recover --skip_flush_tables --mycnf=/etc/mysql/my.cnf --vgname=server1 --lvname=mysql --backuptype=tar

Ujistěte se, že jste vyplnili správné heslo, název skupiny svazků (zde server1) a název svazku, který obsahuje data MySQL (svazek je /dev/server1/mysql, proto je název mysql).

Všechno jde dobře, měli byste vidět spoustu výstupů:

[e-mail protected]:~# mylvmbackup --user=root --password=yourrootsqlpassword --mycnf=/etc/mysql/my.cnf --vgname=server1 --lvname=mysql --backuptype=tar
20120416 19:16:58 Informace: Připojování k databázi...
20120416 19:16:58 Info: Proplachování tabulek se zámkem čtení...
20120416 19:16:58 Informace: záznam...
20120416 19:16:58 Informace: Pořizování snímku...
Deskriptor souboru 3 zůstal otevřený 
  Logický svazek "mysql_snapshot" vytvořen
20120416: 58:19 Informace: Odemykání tabulek...
20120416 19:16:58 Informace: Odpojování od databáze...
20120416 19:16:58 Informace: Snímek montáže...
2012:1416 19 :59 Informace: Kopírování my.cnf...
20120416 19:16:59 Informace: Probíhá skutečná záloha...
20120416 19:16:59 Informace: Vytváření archivu tar /var/backup/mylv /backup/backup-20120416_191658_mysql.tar.gz
backup/
backup/mydb/
backup/mydb/sys_modules.MYI
backup/mydb/dns_a.frm
backup/mydb/isp_dienste.MYD
backup/mydb/isp_server_ip.frm
zpět up/mydb/dns_spf.frm
backup/mydb/dns_a.MYI
backup/mydb/isp_fakt_dep.frm
backup/mydb/multidoc_dep.frm
backup/mydb/isp_isp_web_template. MYI
backup/mydb/sys_nodes.MYD
backup/mydb/listtype.MYD
backup/mydb/help_documents.MYD
backup/mydb/help_tickets.MYI
záloha /mydb/doctype.frm
backup/mydb/login.MYI
backup/mydb/isp_com.frm
backup/mydb/help_documents.MYI
backup/mydb/isp_dep.MYD
backup/mydb/help_documents.frm
backup/mydb/isp_server.MYD
backup/mydb/isp_fakt_nodes.MYD
backup/mydb/sys_config.MYD
backup/ mydb/dns_nodes.MYI
backup/mydb/sys_config.MYI
backup/mydb/isp_monitor.frm
backup/mydb/isp_server_ip.MYI
backup/mydb/isp_isp_datenbank.frm
backup/mydb/dns_secondary.frm
backup/mydb/isp_nodes.MYI
backup/mydb/dns_isp_dns.MYI
backup/mydb/help_nodes.frm
backup/mydb /isp_fakt_nodes.frm
backup/mydb/isp_server.MYI
backup/mydb/isp_isp_domain.frm
backup/mydb/dns_ dep.frm
backup/mydb/session.frm
backup/mydb/isp_isp_cron.MYD
backup/mydb/isp_fakt_record.MYI
backup/mydb/isp_monitor.MYI
backup/mydb/isp_fakt_rechnung.MYI
backup/mydb/listtype.MYI
backup/mydb/isp_fakt_rechnung.MYD
backup/mydb/isp_traffic.frm
backup/mydb/isp_fakt_dep .MYI
backup/mydb/user_groups.frm
backup/mydb/isp_fakt_record.frm
backup/mydb/isp_fakt_artikel.MYD
backup/mydb/isp_htaccess.MYD
backup/mydb/sys_nodes.frm
backup/mydb/groups.frm
backup/mydb/login.MYD
backup/mydb/isp_firewall.MYD
backup/mydb/isp_server. frm
backup/mydb/help_tickets.frm
backup/mydb/multidoc_dep.MYD
backup/mydb/dns_nodes.frm
backup/mydb/dns_a.MYD
záloha /mydb/sys_config.frm
backup/mydb/dns_isp_dns.frm
backup/mydb/dns_mx.MYI
backup/mydb/isp_isp_web.MYD
backup/mydb/isp_serverstatus.MYI
backup/mydb/isp_serverstatus.MYD
backup/mydb/sys_dep.MYD
backup/mydb/isp_isp_cron.MYI
backup/mydb/session.MYD
backup/mydb/isp_isp_admin.MYD
backup/mydb/dns_ptr.frm
backup/mydb/dns_mx.frm
backup/ mydb/isp_domain.MYD
backup/mydb/sys_dep.MYI
backup/mydb/dns_spf.MYD
backup/mydb/user_groups.MYD
backup/mydb/sys_news.frm
backup/mydb/isp_isp_actions.MYI
backup/mydb/doctype.MYD
backup/mydb/multidoc_nodes.frm
backup/mydb/isp_fakt_artikel.frm
backup/mydb /sys_news.MYD
backup/mydb/isp_traffic.MYD
backup/mydb/user_groups.MYI
backup/mydb/sys_news.MYI
backup/mydb/listtype.frm
backup/mydb/del_status.frm
backup/mydb/isp_fakt_nodes.MYI
backup/mydb/isp_isp_kunde.MYD
backup/mydb/isp_dienste.frm
backup/mydb/ dns_mx.MYD
backup/mydb/doctype.MYI
backup/mydb/help_tickets.MYD
backup/mydb/dns_secondary.MYI
backup/mydb/dns_ptr.MYD
backup/mydb/isp_isp_reseller.frm
backup/mydb/isp_dienste.MYI
backup/mydb/isp_isp_datenbank.MYD
backup/mydb/isp_isp _actions.MYD
backup/mydb/isp_web.frm
backup/mydb/db.opt
backup/mydb/isp_server_ip.MYD
backup/mydb/multidoc_nodes.MYI
backup/mydb/dns_nodes.MYD
backup/mydb/isp_fakt_rechnung.frm
backup/mydb/isp_isp_reseller.MYI
backup/mydb/isp_nodes.MYD
backup/mydb/isp_htaccess .MYI
backup/mydb/isp_isp_web_template.frm
backup/mydb/isp_domain.MYI
backup/mydb/dns_secondary.MYD
backup/mydb/dns_dep.MYD
backup/mydb/isp_firewall.MYI
backup/mydb/help_nodes.MYI
backup/mydb/isp_isp_admin.frm
backup/mydb/isp_isp_cron.frm
backup/mydb/isp_isp_datenbank. MYI
backup/mydb/isp_traffic_ip.frm
backup/mydb/isp_fakt_dep.MYD
backup/mydb/isp_dep.MYI
backup/mydb/dns_dep.MYI
záloha /mydb/isp_isp_reseller.MYD
backup/mydb/dns_isp_dns.MYD
backup/mydb/isp_fakt_artikel.MYI
backup/mydb/multidoc_dep.MYI
backup/mydb/multidoc_nodes.MYD
backup/mydb/del_status.MYD
backup/mydb/groups.MYD
backup/mydb/isp_isp_web_template.MYD
backup/mydb/isp_htaccess.frm
backup/mydb/isp_dep.frm
backup/mydb/isp_isp_web.MYI
backup/mydb/ isp_isp_user.frm
backup/mydb/session.MYI
backup/mydb/isp_isp_admin.MYI
backup/mydb/isp_isp_kunde.MYI
backup/mydb/isp_isp_user.MYI
backup/mydb/isp_fakt_record.MYD
backup/mydb/isp_nodes.frm
backup/mydb/groups.MYI
backup/mydb/del_status.MYI
backup/mydb/dns_spf .MYI
backup/mydb/isp_com.MYD
backup/mydb/isp_isp_user.MYD
backup/mydb/dns_cname.frm
backup/mydb/isp_com.MYI
backup/mydb/dns_cname.MYD
backup/mydb/sys_modules.MYD
backup/mydb/isp_traffic_ip.MYI
backup/mydb/help_nodes.MYD
backup/mydb/sys_user. frm
backup/mydb/isp_traffic_ip.MYD
backup/mydb/sys_user.MYD
backup/mydb/sys_modules.frm
backup/mydb/isp_serverstatus.frm
záloha /mydb/sys_dep.frm
backup/mydb/isp_firewall.frm
backup/mydb/isp_monitor.MYD
backup/mydb/isp_is p_kunde.frm
backup/mydb/dns_cname.MYI
backup/mydb/isp_isp_actions.frm
backup/mydb/sys_user.MYI
backup/mydb/sys_nodes.MYI
backup/mydb/dns_ptr.MYI
backup/mydb/isp_traffic.MYI
backup/mydb/login.frm
backup/ib_logfile0
backup/mysql_upgrade_info
backup/ debian-5.0.flag
backup/mysql/
backup/mysql/host.MYD
backup/mysql/procs_priv.MYD
backup/mysql/time_zone_transition.MYD
backup/mysql/proc.MYI
backup/mysql/time_zone_name.frm
backup/mysql/time_zone_name.MYD
backup/mysql/help_relation.MYI
backup/mysql/user. MYD
backup/mysql/help_category.MYI
backup/mysql/time_zone.frm
backup/mysql/func.MYD
backup/mysql/help_category.MYD
backup /mysql/time_zone_transition.frm
backup/mysql/time_zone_name.MYI
backup/mysql/help_category.frm
backup/mysql/time_zone_leap_second.frm
backup/mysql/MYIzone_transition.
backup/mysql/help_relation.MYD
backup/mysql/host.frm
backup/mysql/db.frm
backup/mysql/db.MYI
backup/mysql/columns_priv.frm
backup/mysql/time_zone.MYI
backup/mysql/time_zone_leap_second .MYD
backup/mysql/func.frm
backup/mysql/columns_priv.MYI
backup/mysql/help_topic.MYD
backup/mysql/host.MYI
backup/mysql/proc.frm
backup/mysql/user.MYI
backup/mysql/help_topic.MYI
backup/mysql/help_relation.frm
backup/mysql/tables_priv. frm
backup/mysql/help_keyword.frm
backup/mysql/user.frm
backup/mysql/time_zone_transition_type.MYI
backup/mysql/procs_priv.frm
záloha /mysql/help_topic.frm
backup/mysql/procs_priv.MYI
backup/mysql/time_zone_transition_type.MYD
backup/mysql/func.MYI
backup/mysql/proc.MYD
backup/mysql/tables_priv.MYD
backup/mysql/help_keyword.MYI
backup/mysql/help_keyword.MYD
backup/mysql/time_zone_leap_second.MYI
backup/ mysql/tables_priv.MYI
backup/mysql/db.MYD
backup/mysql/time_zone_transition_type.fr m
backup/mysql/time_zone.MYD
backup/mysql/columns_priv.MYD
backup/lost+found/
backup/ibdata1
backup/ib_logfile1
backup-pos/backup-20120416_191658_mysql.pos
backup-pos/backup-20120416_191658_my.cnf
20120416 19:17:00 Informace: 070109 Inle 16 ...
20120416 19:17:00 Informace:LVM USAGE STATS:
20120416 19:17:00 Info:LV VG ATTR LSIZE Snap%Move Log Copy%Convert
20120416 19:17:00 Info:   mysql_snapshot server1 swi-a- 5.00G mysql    0.00
  Logický svazek "mysql_snapshot" úspěšně odstraněno
[email preprotected]

Poté můžete zálohu najít v adresáři /var/cache/mylvmbackup/backup (pokud jste nezadali jiné umístění):

ls -l /var/cache/mylvmbackup/backup
[e-mail chráněný]:~# ls -l /var/cache/mylvmbackup/backup
celkem 248
-rw-r--r-- 1 kořenový 246847 2012-04-16 19 :17 backup-20120416_191658_mysql.tar.gz
[e-mail chráněný]:~#

Soubor tar.gz obsahuje dva adresáře, backup (s databázemi a tabulkami z /var/lib/mysql, které můžete jednoduše zkopírovat zpět po havárii databáze - databáze by se měla zastavit, když to uděláte) a backup-pos, který obsahuje váš soubor my.cnf (záloha /etc/mysql/my.cnf):

cd /var/cache/mylvmbackup/backup
tar xvfz backup-20120416_191658_mysql.tar.gz
ls -l
[e-mail chráněný]:/var/cache/mylvmbackup/backup# ls -l
celkem 256
drwxr-xr-x 5 mysql mysql   4096 2012-04-16 19:10 záloha
-rw-r--r-- 1 kořen  kořen  246847 2012-04-16 19:17 backup-20120416_191658_mysql.tar.gz
drwxr-xr-x 2 2 04 29 root 24 backup-pos
[e-mail chráněný]:/var/cache/mylvmbackup/backup#

  • mylvmbackup:http://www.lenzg.net/mylvmbackup/
  • MySQL:http://www.mysql.com/
  • Debian:http://www.debian.org/

Debian
  1. Vytváření jednoduchých virtuálních hostitelů pomocí mod_mysql_vhost na Lighttpd (Debian Squeeze)

  2. Jak nainstalovat MySQL 8.0 / 5.7 na Debian 11 / Debian 10

  3. Jak nainstalovat Mattermost s MySQL na Ubuntu 14.04 a Debian 8

  1. Jak nainstalovat MySQL Workbench na Debian 10

  2. Jak nainstalovat PHP-Fusion 9 na Debian 8

  3. Jak nainstalovat LAMP na Debian 8

  1. Jak nainstalovat MySQL Server na Debian 9

  2. Jak nainstalovat MySQL na Debian 11

  3. Jak nainstalovat MySQL Workbench na Debian 11