GNU/Linux >> Belajar Linux >  >> Debian

Cara Mencadangkan Database MySQL Dengan mylvmbackup Di Debian Squeeze

mylvmbackup adalah skrip Perl untuk membuat cadangan MySQL dengan cepat. Ini menggunakan fitur snapshot LVM untuk melakukannya. Untuk melakukan pencadangan, mylvmbackup memperoleh kunci baca di semua tabel dan menghapus semua cache server ke disk, membuat snapshot volume yang berisi direktori data MySQL, dan membuka kunci tabel lagi. Artikel ini menunjukkan cara menggunakannya di server Debian Squeeze.

Saya tidak memberikan jaminan apa pun bahwa ini akan berhasil untuk Anda!

1 Catatan Awal

Saya berasumsi bahwa MySQL sudah diatur dan berjalan di sistem Anda. Sistem harus menggunakan LVM, dan direktori data MySQL (/var/lib/mysql) harus memiliki partisi LVM sendiri (walaupun itu opsional).

Jika Anda telah membaca Cadangkan (Dan Pulihkan) Partisi LVM Dengan LVM Snapshots, Anda tahu bahwa snapshot LVM memerlukan beberapa partisi LVM yang tidak digunakan untuk snapshot. Sistem pengujian saya memiliki hard drive /dev/sdb kedua yang saat ini tidak digunakan yang akan digunakan oleh mylvmbackup untuk membuat volume logis sementara untuk cadangan.

Ini adalah situasi saya saat ini:

[email protected]:~# df -h
Filesystem          Size  Used Avail Use% Mounted on
/dev/mapper/server1-root
                         8     > TMPFS 252M 0 252M 0%/lib/init/rw
Varrun 252m 56k 251m 1%/var/run
varlock 252m 0 252m 0%/var/kunci
udev 252m 2.6m 249m 2% /dev
tmpfs               252M     0  252M   0% /dev/shm
/dev/sda1           471M   23M  425J/>   6% G  170M  8.3G   2% /var/lib/mysql
[email protected]:~#

Seperti yang Anda lihat, saya memiliki dua partisi LVM, / dan /var/lib/mysql (ditambah partisi swap LVM tidak ditampilkan di sini). Grup volume diberi nama server1, dan volume diberi nama swap, root, dan mysql:

[email protected]:~# pvdisplay
  --- Physical volume ---
  PV Name            /dev/sda5
  VG Name               1
  Dapat dialokasikan          ya (tetapi penuh)
  PE Ukuran (KByte)      4096
  Total PE            7557
  < PEPV 0gCmpE-FGel-9ayg-E2yg-kkEu-B72X-kFvaye

[dilindungi email]:~#


[dilindungi email]:~# vgdisplay
  --- Volume group ---
  VG Name            server1
  System ID
  Format             lvm2
  Metadata Area Metadata
  Format             lvm2
  Metadata       Baca /Tulis
Status VG Diubah Ulang
Max Lv 0
Cur lv 3
Buka LV 3
Max PV 0
Cur PV 1
ACT PV               1
  VG Ukuran            29.52 GB
PE Ukuran 4.00 MB
Total PE 7557
Alloc PE /Ukuran 7557 /29.52 GB
PE /Ukuran GRATIS 0 /0
VG UUID PH5HPC-JQEP- BFYs-wWlA-hu03-qwuQ-0cNIu3

[email protected]:~#


[email protected]:~# lvdisplay
  -- - Logical volume ---
  LV Name             /dev/server1/swap
  VG Name             server1
 MOLV UUID          Gattt Akses Baca /Tulis
Status LV Tersedia
#Buka 2
Ukuran LV 1,00 GB
LE saat ini LE 256
Segmen 1
Alokasi Warisan
Baca sektor depan     otomatis
  - saat ini setel ke     256
  Blokir perangkat          254:0

  --- Logical volume ---
  LV Name    < server br />  VG Name              server1
  LV UUID     5wen7n-xymh-mqz1-fkh5-0xxa-1y2t-v3pybb
lv menulis akses baca /tulis
status lv tersedia
#buka 1
ukuran LV 19.53 gb
saat ini LE            5000
  Segmen             1
  Alokasi           mewarisi
  Baca depan sektor     otomatis
      saat ini - Logical volume ---
  LV Name             /dev/server1/mysql
  VG Name            server1
 LV UUID     >      Akses Baca /Tulis
Status LV Tersedia
#Buka 1
Ukuran LV 8.99 GB
LE saat ini LE 2301
Segmen 1
Alokasi Warisan
Baca sektor depan     otomatis
  - saat ini setel ke     256
  Blokir perangkat          254:2

[dilindungi email]:~#

Berikut ini ikhtisar dari dua hard drive saya:

[email protected]:~# fdisk -l

Disk /dev/sda: 32.2 GB, 32212254720 bytes
255 heads, 63 sektor/track, 3916 silinder
Unit =silinder 16065*512 =8225280 byte
Disk Identifier:0x0009353f

Perangkat boot start blok end ID sistem
/sda1*1 62 497983+ 83 Linux
/dev/sda2             63       3916    30957255    5  Diperpanjang
/dev/sda5            63       3916    8 240 VM/Sda>          63       3916    > 240 VM/
 8 byte{} head, 63 sektor/track, 1305 silinder
Satuan = silinder 16065 * 512 = 8225280 byte
Pengidentifikasi disk: 0x00000000

Disk /dev/sdb tidak berisi a valid tabel partisi
[dilindungi email]:~#

2 Mempersiapkan /dev/sdb

Sebelum kita dapat membuat snapshot di /dev/sdb, kita harus mempartisinya (Linux LVM) dan menambahkannya ke grup volume kita (server1).

Sekarang saya akan membuat partisi /dev/sdb1 dan menambahkannya ke grup volume server1:

fdisk /dev/sdb

server1:~# fdisk /dev/sdb
Perangkat tidak berisi tabel partisi DOS yang valid, juga disklabel Sun, SGI, atau OSF
Membuat label disk DOS baru. Perubahan akan tetap di memori,
sampai Anda memutuskan untuk menulisnya. Setelah itu, tentu saja, konten
sebelumnya tidak akan dapat dipulihkan.


Jumlah silinder untuk disk ini disetel ke 1305.
Tidak ada apa-apa salah dengan itu, tetapi ini lebih besar dari 1024,
dan dalam pengaturan tertentu dapat menyebabkan masalah dengan:
1) perangkat lunak yang berjalan pada saat boot (mis., LILO versi lama)
2) boot dan partisi perangkat lunak dari OS lain
   (mis., DOS FDISK, OS/2 FDISK)
Peringatan: bendera 0x0000 tidak valid dari tabel partisi 4 akan dikoreksi dengan w(ritus)

Perintah (m untuk bantuan): <-- n
Tindakan perintah
   e   diperpanjang
   p   partisi primer (1-4)
<-- p
Nomor partisi (1-4): <-- 1
Silinder pertama (1-1305, default 1):<-- [ENTER]
Menggunakan nilai default 1
Silinder terakhir atau +ukuran atau + sizeM atau +sizeK (1-1305, default 1305):<-- [ENTER]
Menggunakan nilai default 1305

Command (m for help): <-- t
Partisi yang dipilih 1
Kode hex (ketik L untuk mencantumkan kode): <-- 8e
Ch jenis sistem partisi 1 hingga 8e (Linux LVM)

Command (m untuk bantuan): <-- w
Tabel partisi telah diubah!

Memanggil ioctl() untuk membaca ulang tabel partisi.
Menyinkronkan disk.

pvcreate /dev/sdb1
vgextend server1 /dev/sdb1

Itu saja - kita tidak perlu membuat volume apa pun di dalamnya - ini akan dilakukan oleh mylvmbackup secara otomatis.

3 Memasang Dan Menggunakan mylvmbackup

Debian Squeeze menyediakan paket untuk mylvmbackup, oleh karena itu kita cukup menginstalnya sebagai berikut:

apt-get install mylvmbackup

Lihat di

man mylvmbackup

untuk mempelajari cara menggunakannya (baca bagian tentang tabel InnoDB dengan cermat jika Anda menggunakan InnoDB).

File konfigurasi mylvmbackup adalah /etc/mylvmbackup.conf, jadi Anda dapat menentukan opsi Anda di baris perintah atau di file itu (opsi baris perintah akan menggantikan opsi di /etc/mylvmbackup.conf).

Direktori pencadangan default adalah /var/cache/mylvmbackup/backup (kecuali jika Anda menentukan lokasi lain).

Contoh perintah untuk membuat cadangan tabel MyISAM adalah:

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

Dan untuk InnoDB:

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

Pastikan Anda mengisi password yang benar, nama grup volume (server1 di sini) dan nama volume volume yang berisi data MySQL (volumenya adalah /dev/server1/mysql, jadi namanya mysql).

Saya semuanya berjalan dengan baik, Anda akan melihat banyak output:

[email protected]:~# mylvmbackup --user=root --password=yourrootsqlpassword --mycnf=/etc/mysql/my.cnf --vgname=server1 --lvname=mysql --backuptype=tar
20120416 19:16:58 Info: Menyambungkan ke database...
20120416 19:16:58 Info: Membilas tabel dengan read lock...
20120416 19:16:58 Info: Mengambil posisi record...
20120416 19:16:58 Info: Mengambil snapshot...
Descriptor file 3 kiri terbuka
  Logical volume "mysql_snapshot" dibuat
20120416 19:16:58 Info: Membuka kunci tabel...
20120416 19:16:58 Info: Memutuskan dari database...
20120416 19:16:58 Info: Memasang snapshot...
20120416 19:16 :59 Info: Menyalin my.cnf...
20120416 19:16:59 Info: Mengambil cadangan sebenarnya...
20120416 19:16:59 Info: Membuat arsip tar /var/cache/mylvmbackup /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
kembali 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
cadangan /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_ .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. dari
backup/mydb/help_tickets.frm
backup/mydb/multidoc_dep.MYD
backup/mydb/dns_nodes.frm
backup/mydb/dns_a.MYD
backup /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_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_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/mydbaccess/isp_ht .MYI
backup/mydb/isp_isp_web_template.frm
backup/mydb/isp_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
backup /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.
cadangan/mydb/del_status.MYD
cadangan/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
backup /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
cadangan /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/time_zone_transition.MYI
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
backup /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 Info: SELESAI
20120416 19:17:00 Info: Pembersihan ...
20120416 19:17:00 Info: LVM Statistik penggunaan:
20120416 19:17:00 Info:   LV           VG      Attr   LSize Origin Snap%  Move Log Copy%: 2012 17:00 Info:   mysql_snapshot server1 swi-a- 5.00G mysql    0,00
  Logical volume "mysql_snapshot" berhasil dihapus
[email protected]:~#

Setelah itu Anda dapat menemukan cadangan di direktori /var/cache/mylvmbackup/backup (kecuali Anda telah menentukan lokasi lain):

ls -l /var/cache/mylvmbackup/backup
[email protected]:~# ls -l /var/cache/mylvmbackup/backup
total 248
-rw-r--r-- 1 root root 246847 2012-04-16 19 :17 backup-20120416_191658_mysql.tar.gz
[email protected]:~#

File tar.gz berisi dua direktori, backup (dengan database dan tabel dari /var/lib/mysql yang dapat Anda salin kembali setelah database crash - database harus dihentikan ketika Anda melakukan ini) dan backup-pos yang berisi file my.cnf Anda (cadangan dari /etc/mysql/my.cnf):

cd /var/cache/mylvmbackup/backup
tar xvfz backup-20120416_191658_mysql.tar.gz
ls -l
[dilindungi email]:/var/cache/mylvmbackup/backup# ls -l
total 256
drwxr-xr-x 5 mysql mysql   4096 16-16 19:10 cadangan
-rw-r--r-- 1 root  root  246847 2012-04-16 19:17 backup-20120416_191658_mysql.tar.gz
drwxr-xr-x 2 root  root    4096 2012-04-16 19:24 pos cadangan
[dilindungi email]:/var/cache/mylvmbackup/backup#

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

Debian
  1. Cara Mengenkripsi Direktori/Partisi Dengan eCryptfs Pada Debian Squeeze

  2. Cara Menginstal MySQL 8.0 / 5.7 di Debian 11 / Debian 10

  3. Cara Menginstal MySQL di Debian 11

  1. Cara Menginstal Mattermost dengan MySQL di Ubuntu 14.04 &Debian 8

  2. Cara Menginstal Server MySQL di Debian 9

  3. Cara Menginstal MySQL Workbench di Debian 10

  1. Cara Menginstal MySQL Workbench di Debian 11

  2. Cara Menginstal PHP-Fusion 9 di Debian 8

  3. Cara menginstal LAMP di Debian 8