One-Click WordPress Uygulamasında Percona XtraBackup ile Etkin Yedekler

İçindekiler

  • Giriş
  • Ön şartlar
  • 1. Adım: Root olmayan bir sistem kullanıcısı oluşturun
  • 2. Adım: Depolama motorunu kontrol edin
  • 3. Adım: Yedekleme için bir veritabanı kullanıcısı oluşturun
  • Adım 4: Percona XtraBackup'ı yükleyin
  • 5. Adım: Yedek depolama dizinleri oluşturun
  • 6. Adım: İlk tam yedeklemeyi oluşturun
  • Adım 7: Aşağıdaki artımlı yedekleri oluşturun
  • Adım 8: Veritabanını geri yüklemek için yedekleme dosyalarını hazırlama
  • Adım 9: Veritabanını geri yükleme
  • Sonraki adımlar

Giriş

Percona XtraBackup, sıcak yedekleme yapmak için kullanılan ücretsiz bir MySQL tabanlı programdır. Aynı zamanda açık kaynaklıdır. Percona XtraBackup ile, veritabanı hizmetinizi durdurmadan veya salt okunur hale getirmeden MySQL, MariaDB veya Percona Server veritabanlarını çalıştırmanın sıcak yedeklemelerini yapabilirsiniz. Bu, birçok çevrimiçi işletme için kritik bir özelliktir.

InnoDB, XtraDB ve HailDB depolama motorlarını kullanan veritabanları için Percona XtraBackup, engellemeyen yedeklemeler gerçekleştirebilir. MyISAM, Birleştirme ve Arşiv depolama motorlarını kullanan veritabanları için Percona XtraBackup, yedekleme prosedürünün sonunda yazma işlemlerini kısaca duraklatarak da yedekleme yapabilir.

Bu makalede, One-Click WordPress uygulamasını temel alan bir Vultr sunucusunda tam ve artımlı sıcak yedekleme yapmak için Percona XtraBackup'ı nasıl kuracağınızı ve kullanacağınızı göstereceğim. Tam bir yedekleme ve iki artımlı yedekleme gerçekleştireceğiz ve ardından veritabanını üç yedeklemenin her birinin durumuna geri yükleyeceğiz.

Ön şartlar

Tek tıklamayla WordPress Vultr sunucu örneğini sıfırdan dağıttığınızı ve SSH kullanarak kök olarak oturum açtığınızı varsayıyorum.

1. Adım: Root olmayan bir sistem kullanıcısı oluşturun

Güvenlik nedeniyle, önerilen bir uygulama kök izinlerine sahip başka bir kullanıcı hesabı oluşturmak, daha sonra oturum açmak ve sistemdeki günlük işlemlerinizi gerçekleştirmek için kullanmaktır. Süper kullanıcı komutlarının neredeyse tamamını komutla yürütebilirsiniz sudo.

1) Yeni bir kullanıcı oluşturun. sysuserKendi kullanıcı adınızla değiştirin .

useradd sysuser

2) Yeni kullanıcınızın şifresini ayarlayın. sysuserKendi kullanıcı adınızla değiştirin .

passwd sysuser

3) Yeni kullanıcınıza kök izinleri verin.

visudo

Aşağıdaki paragrafı bulun.

## Allow root to run any commands anywhere
root     ALL=(ALL)     ALL

Bu paragrafın hemen altına bir satır ekleyin sysuser, kendi kullanıcı adınızla değiştirin .

sysuser     ALL=(ALL)     ALL

Kaydet ve çık.

:wq

4) Yeni kullanıcı hesabınıza geçin.

logout

Ardından, terminal pencerenizden giriş yapmak için yeni kullanıcının kimlik bilgilerini kullanın.

2. Adım: Depolama motorunu kontrol edin

Varsayılan olarak, MySQL kök oturumu VPS'ye kaydedilir /root/.my.cnf. Terminalinizdeki parolayı aşağıdaki komutla görüntüleyin.

sudo cat /root/.my.cnf

MySQL konsolunda oturum açmak için ekranda görüntülenen kimlik bilgilerini kullanın.

mysql -u root -p

MySQL kabuğunda aşağıdakileri çalıştırın.

SHOW DATABASES;

Tüm MySQL veritabanları ekranda görüntülenmiş olacaktır. Like adlı wp5273512veritabanı yedeklemek istediğimiz WordPress veritabanıdır. Aşağıdaki komutta, wp5273512kendi komutunuzla değiştirin :

USE wp5273512;

Her bir tablo için depolama motorunu kontrol edin:

SHOW TABLE STATUS\G

WordPress MySQL veritabanınızdaki tüm tabloların, Percona XtraBackup ile sıcak yedekleme yapmak için mükemmel olan InnoDB depolama motorunu kullandığını göreceksiniz.

MyISAM depolama motorunu kullanan diğer MySQL veritabanları için, yine de yazmaları kısaca duraklatarak Percona XtraBackup ile yedekleyebiliriz.

3. Adım: Yedekleme için bir veritabanı kullanıcısı oluşturun

Yine de MySQL kabuğunda, yedekleme için özel bir veritabanı kullanıcısı oluşturmak için aşağıdaki komutları kullanın. Veritabanı kullanıcı adını xbuserve şifreyi xbpasswdkendi adınızla değiştirmeyi unutmayın:

CREATE USER 'xbuser'@'localhost' IDENTIFIED BY 'xbpasswd';
GRANT RELOAD, LOCK TABLES, REPLICATION CLIENT, CREATE TABLESPACE, PROCESS, SUPER, CREATE, INSERT, SELECT ON *.* TO 'xbuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Yukarıda verilen ayrıcalıklar tam Percona XtraBackup işlevselliği için gereklidir. Daha az işlevsellik ve daha iyi güvenlik için bazılarını kaldırabilirsiniz. Daha fazla ayrıntı için Percona XtraBackup resmi web sitesine bakın .

Adım 4: Percona XtraBackup'ı yükleyin

Percona XtraBackup'u Percona'nın RPM deposundan oldukça kolay bir şekilde kurabilirsiniz:

sudo yum install -y http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm
sudo yum install -y percona-xtrabackup

5. Adım: Yedek depolama dizinleri oluşturun

İlk olarak, kullanıcıyı eklemek gerekir sysuseriçin mysqlgrubun. sysuserKendi kullanıcı adınızla değiştirin .

sudo gpasswd -a sysuser mysql

Tam yedeklemeleri depolamak için bir dizin oluşturun.

sudo mkdir -p /dbbackup/full/

Artımlı yedeklemeleri depolamak için başka bir dizin oluşturun.

sudo mkdir -p /dbbackup/inc/

Bu dizinlerin sahibini kullanıcı sysuserve grup olarak değiştirin sysuser.

sudo chown -R sysuser:sysuser /dbbackup

Bu değişiklikleri yürürlüğe koymak için oturumu kapatın.

logout

Ardından sysusertekrar oturum açın .

6. Adım: İlk tam yedeklemeyi oluşturun

XtraBackup öncelikle XtraBackup programı ve innobackupexperl betiğinden oluşur. Genellikle, innobackupexkolaylık sağlamak için çeşitli çalıştırma prosedürlerini gerçekleştirmek için perl komut dosyasını kullanabilirsiniz .

İlk tam yedeklemeyi oluşturmak için aşağıdaki komutu girin. Veritabanı kullanıcı adını xbuser, veritabanı kullanıcı parolasını xbpasswdve tam yedekleme dizinini /dbbackup/full/kendi parolanızla değiştirmeyi unutmayın .

sudo innobackupex --user=xbuser  --password=xbpasswd /dbbackup/full/

Bu komut doğru bir şekilde yürütüldüğünde, "innobackupex: tamamlandı!" Onay mesajını görürsünüz. çıktının son satırında.

Bu tam yedeklemenin yeni oluşturulan tüm dosyaları, zaman damgalı bir dizinde saklanır /dbbackup/full/. Örneğin /dbbackup/full/2015-05-22_05-45-54,.

Adım 7: Aşağıdaki artımlı yedekleri oluşturun

İlk artımlı yedeği oluşturmak için aşağıdaki komutu girin. Komuttaki değişkenleri buna göre değiştirin.

sudo innobackupex --user=xbuser  --password=xbpasswd --incremental --incremental-basedir=/dbbackup/full/2015-05-22_05-45-54 /dbbackup/inc/

Yine, "innobackupex: tamamlandı!" komut başarıyla yürütüldüğünde çıktının sonunda. Yedek dosyalar altında zaman damgalı bir dizinde saklanır /dbbackup/inc/.

İkinci artımlı yedeklemeyi oluşturmak için aşağıdaki komutu girin. Komuttaki değişkenleri uygun şekilde değiştirin.

sudo innobackupex --user=xbuser  --password=xbpasswd --incremental --incremental-basedir=/dbbackup/inc/2015-05-22_05-48-12 /dbbackup/inc/

Başarı üzerine, "innobackupex: tamamlandı!" mesajı tekrar. /dbbackup/inc/Yedekleme dosyalarını görmek için klasörü tekrar kontrol edin .

Adım 8: Veritabanını geri yüklemek için yedekleme dosyalarını hazırlama

Veritabanını geri yüklemek için kullanılmadan önce tüm veritabanı yedekleme dosyalarının hazırlanması gerekir.

Not : Hazırlama ve geri yükleme yordamlarını gerçekleştirmeden önce /dbbackup/, dosyaların yedeklenmesinde herhangi bir zararın yanlışlıkla oluşması durumunda tüm yedekleme dizininin (örneğin ) bir kopyasını başka bir yerde tutmanız daha iyi olur.

Her yedekleme dizininde, xtrabackup_checkpointsyedekleme türünü ve başlangıç ​​ve bitiş günlük sırası numaralarını ( from_lsnve to_lsn) içeren bir dosya vardır . Veritabanı geri yükleme stratejinizi açıklığa kavuşturmak için bu numaraları kullanabilirsiniz. Aşağıdaki örneklere bakın.

Gelen xtrabackup_checkpointsilk tam yedekleme dosyası, var:

backup_type = full-backuped
from_lsn = 0
to_lsn = 2932478

Gelen xtrabackup_checkpointsilk artımlı yedekleme dosyası, var:

backup_type =incremental
from_lsn = 2932478
to_lsn = 2970177

Gelen xtrabackup_checkpointsikinci artımlı yedekleme dosyası, var:

backup_type = incremental
from_lsn = 2970177
to_lsn = 3004672

Kısacası, her yedeği artan lsn sırası ile ele almalısınız. Lsn dizisi eksik veya düzensizse, veri kaybedebilirsiniz.

Not : Aşağıdaki komutlar üç dizin içerir, bunları kendi dizinlerinizle değiştirin.

Veritabanını ilk tam yedeklemenin durumuna geri yüklemek için, yedekleme dosyalarını aşağıdaki komutla hazırlamanız gerekir:

sudo innobackupex --apply-log /dbbackup/full/2015-05-22_05-45-54

Veritabanını ilk artımlı yedeklemenin durumuna geri yüklemek için, yedekleme dosyalarını aşağıdaki komutlarla hazırlamanız gerekir:

sudo innobackupex --apply-log --redo-only /dbbackup/full/2015-05-22_05-45-54
sudo innobackupex --apply-log /dbbackup/full/2015-05-22_05-45-54 --incremental-dir=/dbbackup/inc/2015-05-22_05-48-12
sudo innobackupex --apply-log /dbbackup/full/2015-05-22_05-45-54

Veritabanını ikinci artımlı yedeklemenin durumuna geri yüklemek için, yedekleme dosyalarını aşağıdaki komutlarla hazırlamanız gerekir:

sudo innobackupex --apply-log --redo-only /dbbackup/full/2015-05-22_05-45-54
sudo innobackupex --apply-log --redo-only /dbbackup/full/2015-05-22_05-45-54 --incremental-dir=/dbbackup/inc/2015-05-22_05-48-12
sudo innobackupex --apply-log /dbbackup/full/2015-05-22_05-45-54 --incremental-dir=/dbbackup/inc/2015-05-22_05-51-32
sudo innobackupex --apply-log /dbbackup/full/2015-05-22_05-45-54

Notlar :

Artımlı yedeklemeler için, --redo-onlyseçeneği son artımlı yedekleme dışındaki tüm öğelerde kullanmalısınız. Bununla birlikte, son artımlı yedeklemede bu seçeneğin kullanılması verilerinizin tutarlılığına hala zararsızdır - yalnızca veritabanının geri alınması nedeniyle biraz gecikmeye neden olur.

Her artımlı senaryonun son komutu isteğe bağlıdır ancak önerilir, çünkü geri yüklemeyi hızlandırır.

Hazırlıktan sonra, artımlı yedekleme dosyalarında kaydedilen değişiklikler hazırlanan temel tam yedekleme dosyalarına eklenecektir, bu nedenle tam bir yedekleme veya artımlı yedekleme seçseniz de, veritabanınızı geri yüklemek için her zaman hazırlanan tam yedekleme dosyalarını kullanmalısınız.

Adım 9: Veritabanını geri yükleme

Veritabanınızı geri yükleyebilmeniz için önce veritabanı hizmetini durdurmanız gerekir.

sudo service mysqld stop

Veritabanı dizinini de boşaltmanız gerekir. Geçerli veritabanı dosyalarını önlem için başka bir yere taşıyabilirsiniz.

sudo mkdir /currentdb
sudo mv /var/lib/mysql/* /currentdb

Hazırlanan "tam yedekleme" dosyalarıyla veritabanınızı geri yükleyin.

sudo innobackupex --copy-back /dbbackup/full/2015-05-22_05-45-54

Geri yükleme yordamı veritabanı dizininin sahibini değiştireceğinden, mysql:mysqlçalışır duruma getirmek için dizini yeniden değiştirmeniz gerekir .

sudo chown -R mysql:mysql /var/lib/mysql

Veritabanı hizmetini yeniden başlatın.

sudo service mysqld start

Bu kadar. Bu noktada, geri yükleme işleminin başarılı olduğunu doğrulamak için WordPress sitenizi ziyaret edebilirsiniz.



26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Birçoğunuz Switch'in Mart 2017'de çıkacağını ve yeni özelliklerini biliyorsunuz. Bilmeyenler için, 'Switch'i 'olmazsa olmaz bir gadget' yapan özelliklerin bir listesini hazırladık.

Hala Teslim Edilmeyen Teknoloji Sözleri

Hala Teslim Edilmeyen Teknoloji Sözleri

Teknoloji devlerinin sözlerini yerine getirmesini mi bekliyorsunuz? teslim edilmeyenleri kontrol edin.

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Mimarisindeki farklı katmanları ve işlevlerini en basit şekilde öğrenmek için blogu okuyun.

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zekanın küçük ölçekli şirketler arasında nasıl popüler hale geldiğini ve onları büyütme ve rakiplerine üstünlük sağlama olasılıklarını nasıl artırdığını öğrenmek için bunu okuyun.

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA, son birkaç yılda kullanıcıların çözmesi oldukça zorlaştı. Gelecekte spam ve bot tespitinde etkili kalabilecek mi?

Teknolojik Tekillik: İnsan Uygarlığının Uzak Bir Geleceği mi?

Teknolojik Tekillik: İnsan Uygarlığının Uzak Bir Geleceği mi?

Bilim hızla gelişip birçok çabamızı üstlendikçe, kendimizi açıklanamaz bir Tekilliğe maruz bırakmanın riskleri de artıyor. Okuyun, tekillik bizim için ne anlama gelebilir.

Teletıp ve Uzaktan Sağlık Hizmeti: Gelecek Burada

Teletıp ve Uzaktan Sağlık Hizmeti: Gelecek Burada

Teletıp, uzaktan sağlık hizmetleri ve gelecek nesiller üzerindeki etkisi nedir? Pandemi durumunda iyi bir yer mi değil mi? Bir görünüm bulmak için blogu okuyun!

Hackerların Nasıl Para Kazandığını Hiç Merak Ettiniz mi?

Hackerların Nasıl Para Kazandığını Hiç Merak Ettiniz mi?

Bilgisayar korsanlarının çok para kazandığını duymuş olabilirsiniz, ancak bu kadar parayı nasıl kazandıklarını hiç merak ettiniz mi? Hadi tartışalım.

macOS Catalina 10.15.4 Ek Güncellemesi Çözmekten Daha Fazla Soruna Neden Oluyor

macOS Catalina 10.15.4 Ek Güncellemesi Çözmekten Daha Fazla Soruna Neden Oluyor

Son zamanlarda Apple, sorunları gidermek için macOS Catalina 10.15.4'ü ek bir güncelleme yayınladı, ancak güncelleme, mac makinelerinde tuğla oluşmasına neden olan daha fazla soruna neden oluyor gibi görünüyor. Daha fazla bilgi edinmek için bu makaleyi okuyun