XtraBackup yardımcı programını kullanarak MySQL yedeklemesi oluşturma

Percona XtraBackup sıcak veritabanı yedeklemeleri için bir yardımcı programdır MySQL.

Veri yedeği oluştururken hiçbir tablo kilitlenmez ve sisteminiz hiçbir kısıtlama olmaksızın çalışmaya devam eder.

Xtra Yedekleme 2.4 tabloların yedek kopyalarını oluşturabilir InnoDB'ninXtraDB и MyISAM sunucularda MySQL 5.11, 5.5, 5.6 ve 5.7ve ayrıca sunucuda Perkon için MySQL с XtraDB.

Birlikte çalışmak MySQL 8.x versiyonu kullanılmalı XtraBackup 8.x. Bu makale sadece hakkında konuşacak XtraBackup'ın 2.4.

ana avantajı XtraBackup bu yardımcı programın hem yüksek yüklü sunucuların yedeklerini oluşturmak hem de işlem sayısı az olan sistemler için uygun olmasıdır.

MySQL veritabanlarınızın toplam boyutu önemliyse (onlarca gigabayt), standart yardımcı program mysql dökümü hızlı bir şekilde bir yedek kopya oluşturmanıza izin vermeyecek ve dökümü geri yüklemek çok zaman alacaktır.

Montaj

Montaj XtraBackup depodan uygun Percona.

Aşağıdaki komutları sırayla çalıştırın:

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. Kurulumdan sonra komutu çalıştırın xtrabackup -v. Bu nedenle yardımcı programın sunucuda doğru şekilde çalıştığından emin olmak önemlidir. Sonuç olarak, ekranda buna benzer bir şey görüntülenecektir:

xtrabackup: tanınan sunucu argümanları: - datadir=/var/lib/mysql - tmpdir=/tmp - sunucu-id=1 - logbin=/var/log/mysql/mysql-bin.log - innodbbbufferpoolsize=16384M - innodbfilepertable=1 - innodbflushmethod=Odirect — innodbflushlogattrxcommit=0xtrabackup sürüm 2.4.20, MySQL sunucusu 5.7.26 Linux'u (x8664) temel alır (düzeltme kimliği: c8b4056)

XtraBackup yardımcı programını kullanarak MySQL yedeklemesi oluşturma

Erişim hakları, izinler ve ayrıcalıklar 

XtraBackup şunları yapabilmelidir:

  • MySQL sunucunuza bağlanın.

  • Dizine erişim haklarına sahip olun veri dizini

  • Yedek kopya oluştururken belirtilen parametreye yazma haklarına sahip olun hedef-dir katalog.

datadir nedir?

veri dizini veritabanı sunucusunun bulunduğu dizindir MySQL verileri saklar. Tüm veritabanları, tüm tablolar orada. Çoğu Linux dağıtımında varsayılan dizin: /var/lib/mysql.

Hedef-dir dizini nedir?

hedef-dir - Bu, yedeğin kaydedileceği dizindir.

Veritabanı kullanıcısının, yedeklenecek tablolara ve veritabanlarına aşağıdaki erişim haklarına ihtiyacı vardır:

  • TABLOLARI YENİDEN YÜKLEYİN ve KİLİTLEYİN

  • ÇOĞALTMA İSTEMCİSİ

  • TABLO ALANI OLUŞTURUN

  • SÜRECİ

  • Kişiye Özel

  • CREATE

  • INSERT

  • SEÇİN

Yapılandırma 

Yapılandırma XtraBackup standart MySQL seçenekleriyle aynı davranan seçenekler kullanılarak yapılır.

Bu ne anlama geliyor?

Yapılandırma parametreleri komut satırında veya DBMS yapılandırma dosyasında belirtilebilir; örneğin /etc/my.cnf.

XtraBackup yardımcı programı başlatıldıktan sonra bölümleri okur [Mysqld] и [ekstra yedekleme] MySQL yapılandırma dosyalarından. Bu, yardımcı programın, her yedekleme sırasında parametreleri manuel olarak belirlemek zorunda kalmadan DBMS'nizin ayarlarını kullanabilmesi için yapılır.

Örneğin, değer veri dizini ve bazı parametreler InnoDB'nin XtraBackup'ı DBMS'nizin yapılandırmasından alıyoruz.

XtraBackup'ın çalışması için bölümdeki parametreleri geçersiz kılmak istiyorsanız [Mysqld], ardından bunları bölümdeki yapılandırma dosyasında belirtmeniz yeterlidir. [ekstra yedekleme]. Daha sonra okunacakları için öncelikleri daha yüksek olacaktır.

Herhangi bir parametre eklemenize gerek yok benim.cnf. Gerekli tüm parametreler komut satırında belirtilebilir. Genellikle bölüme rahatça yerleştirilebilen tek şey [ekstra yedekleme] sizin benim.cnf bir parametredir hedef_dir, varsayılan olarak yedeklemelerin yerleştirileceği dizini belirtir. Ancak bu isteğe bağlıdır.

Yedek kopyanın bulunduğu dizinin yolunu belirtme örneği benim.cnf:

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

Yedekleme komut dosyası

Yedekleme oluşturmak için aşağıdaki komut dosyasını kullanabilirsiniz:

#!/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

Komut dosyası yürütme sırasında ne olur?

Öncelikle yedek kopyayı kaydedeceğimiz dizini temizliyoruz (siliyoruz):

rm -rf /mysql/backup.

Daha sonra yardımcı programı kullanarak XtraBackup bir yedek kopya oluşturun ve kaydedin /mysql/yedekleme/:

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

Daha önce MySQL'de bir kullanıcı oluşturduk xtrabackup gerekli ayrıcalıklara sahip. Parametreyi kullanma target-dir yedeğin kaydedileceği dizini belirtiyoruz.

Önemli bir nokta!

Komut satırına dikkat edin:

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

Katalog verileri /mysql/yedekleme pişene kadar tutarlı olmazlar. 

Gerçek şu ki, dosyalar kopyalanırken değişiklikler meydana gelebilir. Operasyon xtrabackup --prepare --target-dir=/mysql/backup yedekleme verilerinin zaman içinde mükemmel şekilde tutarlı olmasını sağlar.

Veri hazırlama işlemini herhangi bir makinede gerçekleştirebilirsiniz. Kaynak DBMS'nin bulunduğu sunucuda bunu yapmanıza gerek yoktur. Yedeklemeyi hedef sunucuya kopyalayıp orada hazırlayabilirsiniz.

Yaptığımız son şey, yedeğimizi yerleştireceğimiz bir arşiv oluşturmaktır:

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

Bir yedeği geri yükleme 

Bir yedeği hedef sunucuya geri yükleyebilmeniz için verilerin bir hazırlık aşamasından geçmesi gerekir. Bunun nasıl yapılacağını öğrenmek için yukarıya bakın.

Veri kurtarma işlemi oldukça basittir. Yedeği arşivden çıkarmanız ve içindeki verileri değiştirmeniz gerekir. veri dizini.

Datadir'deki veriler nasıl değiştirilir?

İki seçeneği ele alalım.

opsiyon 1

Yardımcı programı kullanın XtraBackup. Bir seçenek belirtmeniz gerekiyor --geri kopyala

Aşağıdaki komut yedeği şuraya aktaracaktır: veri dizini hedef sunucu:

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

opsiyon 2

Bunu farklı bir şekilde yapabilirsiniz, yardımcı program olmadan yapabilirsiniz XtraBackup.

Tek yapmanız gereken yedeği kopyalamak veri dizini. Bunu şununla yapabilirsiniz: cp veya rsync.

Bir yedeği geri yükleme prosedürünün yalnızca dizinin içeriğini değiştirmekten ibaret olduğunu anlamak önemlidir. veri dizini.

Hedef sunucuya bir yedeği geri yüklemeye başlamadan önce şunları yapmalısınız:

  • MySQL sunucusunu durdurun.

  • Klasörü temizle veri dizini veya içeriğini başka bir konuma taşıyın. Katalog veri dizini boş olmalı.

Veri aktarımını tamamladıktan sonra veri dizini MySQL sunucusu başlatılabilir.

Kullanılan malzemeler

Resmi belgeler Perkon XtraBackup.

Kaynak: habr.com

Yorum ekle