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'nin, XtraDB и 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, yüksek yüklü dosyaların yedek kopyalarını oluşturmak için uygun olması, bu özelliğin temel amacının bu işlemleri gerçekleştirmek olduğunu gösteriyor. sunucularAynı şekilde, işlem sayısı düşük olan sistemler için de geçerlidir.
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-242. 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 - server-id=1 - logbin=/var/log/mysql/mysql-bin.log - innodbbufferpoolsize=16384M - innodbfilepertable=1 - innodbflushmethod=Odirect - innodbflushlogattrxcommit=0xtrabackup sürüm 2.4.20, MySQL sunucu 5.7.26 tabanlıdır. Linux (x8664) (revizyon kimliği: c8b4056)

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 depolar. Tüm veritabanları, tüm tablolar orada bulunur. Çoğu dağıtımda Linux Varsayılan olarak, bu dizin şöyledir: /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/backupKomut 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/backupDaha ö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/backupBir 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/backupopsiyon 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
.
Kaynak: habr.com
