Membuat cadangan MySQL menggunakan utilitas XtraBackup

Cadangan Percona Xtra adalah utilitas untuk backup database panas MySQL.

Saat membuat cadangan data, tidak ada tabel yang dikunci, dan sistem Anda terus beroperasi tanpa batasan apa pun.

XtraBackup 2.4 dapat membuat salinan cadangan tabel InnoDBXtraDB ΠΈ MyISAM di server MySQL 5.11, 5.5, 5.6 dan 5.7, dan juga di server percona untuk MySQL Ρ XtraDB.

Bekerja dengan MySQL 8.x versi harus digunakan XtraBackup 8.x. Artikel ini hanya akan membahasnya XtraBackup 2.4.

Keuntungan utama Cadangan Xtra adalah utilitas ini cocok untuk membuat cadangan server dengan muatan tinggi dan untuk sistem dengan jumlah transaksi rendah.

Jika ukuran total database MySQL Anda signifikan (puluhan gigabyte), maka utilitas standarnya mysqldump.dll tidak akan memungkinkan Anda membuat salinan cadangan dengan cepat, dan memulihkan dump akan memakan banyak waktu.

Instalasi

Instalasi Cadangan Xtra dari repositori tepat Perkona.

Jalankan perintah berikut secara berurutan:

wget https://repo.percona.com/apt/percona-release_latest.$(lsb_release -sc)_all.deb

sudo dpkg -i percona-release_latest.$(lsb_release -sc)_all.deb

sudo apt-get update 

sudo apt-get install percona-xtrabackup-24

2. Setelah instalasi, jalankan perintah xtrabackup -v. Karena itu penting untuk memastikan bahwa utilitas berfungsi dengan benar di server. Hasilnya, sesuatu seperti ini akan ditampilkan di layar:

xtrabackup: argumen server yang dikenali: - datadir=/var/lib/mysql - tmpdir=/tmp - server-id=1 - logbin=/var/log/mysql/mysql-bin.log - innodbbufferpoolsize=16384M - innodbfilepertable=1 - innodbflushmethod=Odirect β€” innodbflushlogattrxcommit=0xtrabackup versi 2.4.20 berdasarkan server MySQL 5.7.26 Linux (x8664) (id revisi: c8b4056)

Membuat cadangan MySQL menggunakan utilitas XtraBackup

Hak akses, izin dan hak istimewa 

XtraBackup seharusnya dapat:

  • Hubungkan ke server MySQL Anda.

  • Memiliki hak akses ke direktori datadir

  • Saat membuat salinan cadangan, miliki hak menulis ke parameter yang ditentukan target-dir katalog.

Apa itu datadir?

datadir adalah direktori tempat server database MySQL menyimpan data. Semua database, semua tabel ada di sana. Pada sebagian besar distribusi Linux, direktori defaultnya adalah /var/lib/mysql.

Apa itu direktori target-dir?

target-dir - Ini adalah direktori tempat cadangan akan disimpan.

Pengguna database memerlukan hak akses berikut ke tabel dan database untuk dicadangkan:

  • MUAT ULANG dan KUNCI TABEL

  • KLIEN REPLIKASI

  • BUAT RUANG TABEL

  • PROSES

  • SUPER

  • MEMBUAT

  • MEMASUKKAN

  • MEMILIH

Konfigurasi 

Konfigurasi Cadangan Xtra dilakukan menggunakan opsi yang berperilaku sama dengan opsi MySQL standar.

Apa artinya ini?

Parameter konfigurasi dapat ditentukan baik pada baris perintah atau dalam file konfigurasi DBMS, misalnya di /etc/my.cnf.

Utilitas XtraBackup membaca partisi setelah peluncuran [Mysqld] ΠΈ [cadangan ekstra] dari file konfigurasi MySQL. Hal ini dilakukan agar utilitas dapat menggunakan pengaturan DBMS Anda tanpa harus menentukan parameter secara manual pada setiap pencadangan.

Misalnya saja nilainya datadir dan beberapa parameter InnoDB Kami mendapatkan XtraBackup dari konfigurasi DBMS Anda.

Jika agar XtraBackup berfungsi Anda ingin mengganti parameter yang ada di bagian tersebut [Mysqld], lalu tentukan saja di file konfigurasi di bagian tersebut [cadangan ekstra]. Karena akan dibaca nanti, prioritasnya akan lebih tinggi.

Anda tidak perlu menambahkan parameter apa pun saya.cnf. Semua parameter yang diperlukan dapat ditentukan pada baris perintah. Biasanya satu-satunya hal yang dapat ditempatkan dengan nyaman di bagian tersebut [cadangan ekstra] milikmu saya.cnf adalah parameter target_dir, yang secara default menentukan direktori tempat cadangan akan ditempatkan. Tapi ini opsional.

Contoh menentukan jalur ke direktori dengan salinan cadangan saya.cnf:

[xtrabackup]
target_dir = /data/backups/mysql/

Skrip cadangan

Anda dapat menggunakan skrip berikut untuk membuat cadangan:

#!/bin/bash

# УдаляСм Π΄Π°Π½Π½Ρ‹Π΅ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ Π±Π΅ΠΊΠ°ΠΏΠ°
rm -rf /mysql/backup

# CΠΎΠ·Π΄Π°Ρ‘ΠΌ Π±Π΅ΠΊΠ°ΠΏ
xtrabackup --user=xtrabackup 
 --password=xxxx_SECRET_xxxx 
 --backup 
 --target-dir=/mysql/backup

# ВыполняСм ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΡƒ Π±Π΅ΠΊΠ°ΠΏΠ° для развёртывания
xtrabackup --prepare --target-dir=/mysql/backup

# Π‘ΠΎΠ·Π΄Π°Ρ‘ΠΌ Π°Ρ€Ρ…ΠΈΠ²
tar -zcvf /home/developer/dumps/xtrabackup-all-dbs-"$(date +%F-%H:%M:%S)".gz /mysql/backup

Apa yang terjadi selama eksekusi skrip?

Pertama-tama, kita menghapus (menghapus) direktori tempat kita akan menyimpan salinan cadangan:

rm -rf /mysql/backup.

Kemudian, menggunakan utilitas Cadangan Xtra buat salinan cadangan dan simpan di dalamnya /mysql/cadangan/:

xtrabackup --user=xtrabackup --password=xxxxz1cYf95550Gc6xxxxxxxpE3rB03xxxx --backup --target-dir=/mysql/backup

Sebelumnya kita telah membuat user di MySQL xtrabackup dengan hak istimewa yang diperlukan. Menggunakan parameter target-dir kami menentukan direktori tempat cadangan harus disimpan.

Poin penting!

Perhatikan baris skrip:

xtrabackup --prepare --target-dir=/mysql/backup

Data katalog /mysql/cadangan tidak konsisten sampai matang. 

Faktanya adalah perubahan bisa terjadi saat menyalin file. Operasi xtrabackup --prepare --target-dir=/mysql/backup membuat data cadangan sangat konsisten dari waktu ke waktu.

Anda dapat melakukan operasi persiapan data di mesin mana pun. Hal ini tidak perlu dilakukan pada server tempat DBMS sumber berada. Anda dapat menyalin cadangan ke server target dan menyiapkannya di sana.

Hal terakhir yang kami lakukan adalah membuat arsip tempat kami menyimpan cadangan:

tar -zcvf /home/developer/dumps/xtrabackup-all-dbs-Β«$(date % F% H% M% S)Β».gz /mysql/backup

Memulihkan cadangan 

Sebelum Anda dapat memulihkan cadangan ke server target, data harus melalui tahap persiapan. Lihat di atas untuk mengetahui cara melakukan ini.

Proses pemulihan data sangat sederhana. Anda perlu mengekstrak cadangan dari arsip dan mengganti data di dalamnya datadir.

Bagaimana cara mengganti data di datadir?

Mari pertimbangkan dua opsi.

Opsi 1

Gunakan utilitas Cadangan Xtra. Anda perlu menentukan pilihan --salin-kembali

Perintah di bawah ini akan mentransfer cadangan ke datadir server sasaran:

xtrabackup --copy-back --target-dir=/mysql/backup

Opsi 2

Anda dapat melakukannya secara berbeda, lakukan tanpa utilitas Cadangan Xtra.

Yang perlu Anda lakukan hanyalah menyalin cadangan ke datadir. Anda dapat melakukan ini dengan cp ΠΈΠ»ΠΈ rsync.

Penting untuk dipahami bahwa prosedur untuk memulihkan cadangan hanya sekedar mengganti isi direktori datadir.

Sebelum Anda mulai memulihkan cadangan di server target, Anda harus:

  • Hentikan server MySQL.

  • Folder kosong datadir atau memindahkan isinya ke lokasi lain. Katalog datadir harus kosong.

Setelah selesai transfer data ke datadir Server MySQL dapat dimulai.

Bahan yang digunakan

Dokumentasi resmi percona Cadangan Xtra.

Sumber: www.habr.com

Tambah komentar