Nyiptakeun cadangan MySQL nganggo utilitas XtraBackup

Percona XtraBackup mangrupakeun utilitas pikeun cadangan database panas MySQL.

Nalika nyieun cadangan data, teu aya tabel anu dikonci, sareng sistem anjeun terus beroperasi tanpa aya larangan.

XtraBackup 2.4 bisa nyieun salinan cadangan tabel InnoDBXtraDB и MyISAM dina server MySQL 5.11, 5.5, 5.6 jeung 5.7, sarta ogé dina server percona keur MySQL с XtraDB.

Pikeun digawekeun ku MySQL 8.x versi kudu dipaké XtraBackup 8.x. Artikel ieu ngan bakal ngobrol ngeunaan XtraBackup 2.4.

Kauntungan utama XtraBackup Éta utilitas ieu cocog pikeun nyiptakeun cadangan server anu sarat pisan sareng pikeun sistem anu jumlah transaksi anu rendah.

Upami ukuran total database MySQL anjeun signifikan (puluhan gigabyte), maka utilitas standar abdi moal ngidinan Anjeun pikeun gancang nyieun salinan cadangan, sarta malikkeun dump bakal butuh loba waktu.

setting

setting XtraBackup ti gudang apt Percona.

Jalankeun paréntah di handap ieu sacara 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. Saatos instalasi, ngajalankeun paréntah xtrabackup -v. Kusabab, hal anu penting pikeun mastikeun yén utilitas jalan leres dina server. Hasilna, hal kawas ieu bakal dipintonkeun dina layar:

xtrabackup: argumen server dipikawanoh: - datadir = / var / lib / MySQL - tmpdir = / tmp - server-id = 1 - logbin = /var/log/mysql/mysql-bin.log - innodbbufferpoolsize = 16384M - innodbfilepertable = 1 - innodbflushmethod=Odirect — innodbflushlogattrxcommit=0xtrabackup vérsi 2.4.20 dumasar kana server MySQL 5.7.26 Linux (x8664) (révisi id: c8b4056)

Nyiptakeun cadangan MySQL nganggo utilitas XtraBackup

Hak aksés, idin sareng hak istimewa 

XtraBackup kedah tiasa:

  • Nyambung ka server MySQL Anjeun.

  • Mibanda hak aksés ka diréktori nyaéta data

  • Nalika nyieun salinan cadangan, boga hak nulis kana parameter dieusian sasaran-dir katalog.

Naon datadir?

nyaéta data nyaeta diréktori dimana server database MySQL nyimpen data. Sadaya database, sadaya tabel aya. Dina kalolobaan distribusi Linux, diréktori standar nyaéta /var/lib/mysql.

Naon diréktori target-dir?

sasaran-dir - Ieu diréktori dimana cadangan bakal disimpen.

Pamaké pangkalan data peryogi hak aksés di handap ieu kana tabel sareng pangkalan data pikeun dicadangkeun:

  • RELOAD jeung konci tabel

  • KLIEN REPLIKAN

  • Jieun tabelspace

  • proses

  • hebat

  • nyiptakeun

  • INSERT

  • MILIH

Konfigurasi 

Konfigurasi XtraBackup dilakukeun nganggo pilihan anu kalakuanana sami sareng pilihan MySQL standar.

Naon eta hartosna?

Parameter konfigurasi bisa dieusian boh dina garis paréntah atawa dina file konfigurasi DBMS, contona dina /etc/my.cnf.

Utilitas XtraBackup maca partisi saatos peluncuran [Mysqld] и [xtrabackup] tina file konfigurasi MySQL. Hal ieu dilakukeun supados utilitas tiasa nganggo setélan DBMS anjeun tanpa kedah netepkeun parameter sacara manual salami unggal cadangan.

Contona, nilai nyaéta data jeung sababaraha parameter InnoDB Kami nampi XtraBackup tina konfigurasi DBMS anjeun.

Upami pikeun XtraBackup tiasa dianggo anjeun badé override parameter anu aya dina bagian éta [Mysqld], lajeng ngan tangtukeun aranjeunna dina file konfigurasi dina bagian [xtrabackup]. Kusabab aranjeunna bakal dibaca engké, prioritas maranéhna bakal leuwih luhur.

Anjeun teu kedah nambihan parameter naon waé abdi.cnf. Kabéh parameter diperlukeun bisa dieusian dina garis paréntah. Biasana hijina hal anu bisa merenah ditempatkeun dina bagian [xtrabackup] anjeun na abdi.cnf mangrupa parameter target_dir, anu sacara standar nangtukeun diréktori dimana cadangan bakal disimpen. Tapi ieu téh pilihan.

Conto nangtukeun jalur ka diréktori kalayan salinan cadangan di abdi.cnf:

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

Skrip cadangan

Anjeun tiasa nganggo skrip ieu pikeun nyieun 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

Naon anu lumangsung nalika palaksanaan naskah?

Anu mimiti, urang mupus (ngahapus) diréktori dimana urang bakal nyimpen salinan cadangan:

rm -rf /mysql/backup.

Lajeng, ngagunakeun utiliti XtraBackup nyieun salinan cadangan tur nyimpen eta di /mysql/cadangan/:

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

Sateuacanna, urang nyiptakeun pangguna dina MySQL xtrabackup kalawan hak husus diperlukeun. Ngagunakeun parameter target-dir urang tangtukeun diréktori mana cadangan kudu disimpen.

Titik penting!

Catetan baris skrip:

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

Data katalog /mysql/cadangan henteu konsisten dugi aranjeunna asak. 

Kanyataan yén parobahan tiasa lumangsung nalika nyalin file. Operasi xtrabackup --prepare --target-dir=/mysql/backup ngajadikeun data cadangan sampurna konsisten kana waktu.

Anjeun tiasa ngalakukeun operasi persiapan data dina mesin naon waé. Teu kedah ngalakukeun ieu dina server dimana sumber DBMS ayana. Anjeun tiasa nyalin cadangan ka server target jeung nyiapkeun eta di dinya.

Hal anu terakhir anu urang laksanakeun nyaéta nyiptakeun arsip dimana urang nempatkeun cadangan:

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

Malikkeun cadangan 

Sateuacan anjeun tiasa mulangkeun cadangan ka server target, data kedah ngalangkungan fase persiapan. Tingali di luhur pikeun kumaha ngalakukeun ieu.

Prosés recovery data basajan pisan. Anjeun kudu nimba cadangan ti arsip tur ngaganti data dina nyaéta data.

Kumaha ngaganti data dina datadir?

Hayu urang nganggap dua pilihan.

pilihan 1

Paké utiliti XtraBackup. Anjeun kudu nangtukeun hiji pilihan --copy-back

Paréntah di handap bakal mindahkeun cadangan ka nyaéta data server target:

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

pilihan 2

Anjeun tiasa ngalakukeunana béda, ngalakukeun tanpa utiliti XtraBackup.

Sadaya anu anjeun kedah laksanakeun nyaéta nyalin cadangan éta nyaéta data. Anjeun tiasa ngalakukeun ieu kalawan cp atawa rsync.

Kadé ngartos yén prosedur pikeun malikkeun cadangan bisul handap pikeun ngan ngaganti eusi diréktori. nyaéta data.

Sateuacan anjeun ngawitan mulangkeun cadangan dina server target, anjeun kedah:

  • Ngeureunkeun server MySQL.

  • Hapus polder nyaéta data atawa mindahkeun eusina ka lokasi sejen. Katalog nyaéta data kudu kosong.

Sanggeus réngsé mindahkeun data ka nyaéta data MySQL server bisa dimimitian.

bahan dipaké

Dokuméntasi resmi percona XtraBackup.

sumber: www.habr.com

Tambahkeun komentar