Cadangan Panas dengan Percona XtraBackup di Aplikasi WordPress Satu-Klik

Daftar Isi

  • pengantar
  • Prasyarat
  • Langkah 1: Buat pengguna sistem non-root
  • Langkah 2: Periksa mesin penyimpanan
  • Langkah 3: Buat pengguna basis data untuk cadangan
  • Langkah 4: Instal Percona XtraBackup
  • Langkah 5: Buat direktori penyimpanan cadangan
  • Langkah 6: Buat cadangan lengkap pertama
  • Langkah 7: Buat cadangan inkremental berikut
  • Langkah 8: Siapkan file cadangan untuk memulihkan basis data
  • Langkah 9: Kembalikan database
  • Langkah selanjutnya

pengantar

Percona XtraBackup adalah program berbasis MySQL gratis yang digunakan untuk membuat cadangan panas. Ini juga bersumber terbuka. Dengan Percona XtraBackup, Anda dapat membuat cadangan panas menjalankan database MySQL, MariaDB, atau Percona Server tanpa menghentikan layanan basis data Anda atau membuatnya hanya-baca. Ini adalah fitur penting bisnis untuk banyak bisnis online.

Untuk database yang menggunakan mesin penyimpanan InnoDB, XtraDB, dan HailDB, Percona XtraBackup dapat melakukan pencadangan non-pemblokiran. Untuk basis data yang menggunakan mesin penyimpanan MyISAM, Gabung, dan Arsip, Percona XtraBackup juga dapat melakukan pencadangan dengan menjeda sebentar penulisan di akhir prosedur pencadangan.

Pada artikel ini, saya akan menunjukkan kepada Anda bagaimana menginstal dan menggunakan Percona XtraBackup untuk melakukan backup panas penuh dan tambahan pada server Vultr berdasarkan pada aplikasi WordPress Satu-Klik. Kami akan melakukan pencadangan penuh dan dua pencadangan inkremental, dan kemudian mengembalikan basis data ke masing-masing dari tiga pencadangan yang sesuai.

Prasyarat

Saya berasumsi bahwa Anda telah menggunakan contoh server One-Click WordPress Vultr dari awal dan telah login sebagai root, menggunakan SSH.

Langkah 1: Buat pengguna sistem non-root

Untuk tujuan keamanan, praktik yang disarankan adalah membuat akun pengguna lain dengan izin root, lalu menggunakannya untuk masuk dan melakukan operasi harian Anda pada sistem. Anda masih dapat menjalankan hampir semua perintah superuser dengan sudoperintah tersebut.

1) Buat pengguna baru. Ganti sysuserdengan nama pengguna Anda sendiri.

useradd sysuser

2) Tetapkan kata sandi untuk pengguna baru Anda. Ganti sysuserdengan nama pengguna Anda sendiri.

passwd sysuser

3) Berikan izin root kepada pengguna baru Anda.

visudo

Temukan paragraf di bawah ini.

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

Tambahkan baris langsung di bawah paragraf ini, ganti sysuserdengan nama pengguna Anda sendiri.

sysuser     ALL=(ALL)     ALL

Simpan dan keluar.

:wq

4) Beralih ke akun pengguna baru Anda.

logout

Kemudian, gunakan kredensial pengguna baru untuk masuk dari jendela terminal Anda.

Langkah 2: Periksa mesin penyimpanan

Secara default, login root MySQL disimpan di VPS di /root/.my.cnf. Tampilkan kata sandi di terminal Anda dengan perintah berikut.

sudo cat /root/.my.cnf

Gunakan kredensial yang ditampilkan di layar untuk masuk ke konsol MySQL.

mysql -u root -p

Di shell MySQL, jalankan yang berikut ini.

SHOW DATABASES;

Semua database MySQL akan ditampilkan di layar. Database bernama like wp5273512adalah database WordPress yang ingin kami backup. Dalam perintah berikut, ganti wp5273512dengan yang Anda miliki:

USE wp5273512;

Periksa mesin penyimpanan untuk setiap tabel:

SHOW TABLE STATUS\G

Anda akan menemukan bahwa semua tabel di database MySQL WordPress Anda menggunakan mesin penyimpanan InnoDB yang sempurna untuk melakukan backup panas dengan Percona XtraBackup.

Untuk basis data MySQL lainnya yang menggunakan mesin penyimpanan MyISAM, kita masih dapat mencadangkannya dengan Percona XtraBackup dengan menghentikan sebentar penulisan.

Langkah 3: Buat pengguna basis data untuk cadangan

Masih di shell MySQL, gunakan perintah berikut untuk membuat pengguna database khusus untuk cadangan. Ingatlah untuk mengganti nama pengguna xbuserdan kata sandi basis data xbpasswddengan yang Anda miliki:

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;

Hak istimewa yang diberikan di atas diperlukan untuk fungsionalitas Percona XtraBackup penuh. Anda dapat menghapus beberapa dari mereka untuk fungsi yang lebih sedikit dan keamanan yang lebih baik. Untuk lebih jelasnya, lihat situs web resmi Percona XtraBackup .

Langkah 4: Instal Percona XtraBackup

Anda dapat menginstal Percona XtraBackup dari repositori RPM Percona dengan cukup mudah:

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

Langkah 5: Buat direktori penyimpanan cadangan

Pertama, Anda perlu menambahkan pengguna sysuserke mysqlgrup. Ganti sysuserdengan nama pengguna Anda sendiri.

sudo gpasswd -a sysuser mysql

Buat direktori untuk menyimpan cadangan lengkap.

sudo mkdir -p /dbbackup/full/

Buat direktori lain untuk menyimpan cadangan tambahan.

sudo mkdir -p /dbbackup/inc/

Ubah pemilik direktori ini menjadi pengguna sysuserdan grup sysuser.

sudo chown -R sysuser:sysuser /dbbackup

Logout untuk menerapkan perubahan ini.

logout

Lalu, masuk dengan sysuserlagi.

Langkah 6: Buat cadangan lengkap pertama

XtraBackup terutama terdiri dari program XtraBackup dan innobackupexskrip perl. Biasanya, Anda dapat menggunakan innobackupexskrip perl untuk melakukan berbagai prosedur pengoperasian untuk kenyamanan.

Masukkan perintah berikut untuk membuat cadangan lengkap pertama. Ingatlah untuk mengganti nama pengguna basis data xbuser, kata sandi pengguna basis data xbpasswd, dan direktori cadangan lengkap /dbbackup/full/dengan yang Anda miliki.

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

Dengan perintah ini dijalankan dengan benar, Anda akan melihat pesan konfirmasi "innobackupex: selesai OK!" pada baris terakhir dari output.

Semua file yang baru dibuat dari cadangan lengkap ini akan disimpan dalam direktori yang bertanda waktu di bawah /dbbackup/full/. Sebagai contoh /dbbackup/full/2015-05-22_05-45-54,.

Langkah 7: Buat cadangan inkremental berikut

Masukkan perintah berikut untuk membuat cadangan tambahan pertama. Pengganti variabel dalam perintah sesuai.

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

Sekali lagi, Anda akan melihat "innobackupex: selesai OK!" di akhir output ketika perintah dijalankan dengan sukses. File cadangan akan disimpan di direktori bertanda waktu di bawah /dbbackup/inc/.

Masukkan perintah berikut untuk membuat cadangan inkremental kedua. Ganti variabel dalam perintah sesuai.

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

Setelah sukses, Anda akan melihat "innobackupex: selesai OK!" pesan lagi. Periksa /dbbackup/inc/lagi folder untuk melihat file cadangan.

Langkah 8: Siapkan file cadangan untuk memulihkan basis data

Semua file cadangan database harus disiapkan sebelum dapat digunakan untuk mengembalikan database.

Catatan : Sebelum Anda melakukan prosedur persiapan dan pengembalian, Anda sebaiknya menyimpan salinan seluruh direktori cadangan (seperti /dbbackup/) di tempat lain jika ada kerusakan pada cadangan file yang disebabkan oleh kesalahan.

Di setiap direktori cadangan, ada file bernama xtrabackup_checkpointsyang berisi jenis cadangan dan nomor urutan log awal dan akhir ( from_lsndan to_lsn). Anda dapat menggunakan angka-angka itu untuk memperjelas strategi pemulihan basis data Anda. Lihatlah contoh di bawah ini.

Dalam xtrabackup_checkpointsfile cadangan lengkap pertama, saya punya:

backup_type = full-backuped
from_lsn = 0
to_lsn = 2932478

Dalam xtrabackup_checkpointsfile cadangan inkremental pertama, saya punya:

backup_type =incremental
from_lsn = 2932478
to_lsn = 2970177

Dalam xtrabackup_checkpointsfile cadangan inkremental kedua, saya punya:

backup_type = incremental
from_lsn = 2970177
to_lsn = 3004672

Secara singkat, Anda harus menangani setiap cadangan dengan urutan lsn yang meningkat. Jika urutan lsn tidak lengkap atau tidak teratur, Anda dapat kehilangan data.

Catatan : Perintah berikut melibatkan tiga direktori, ganti dengan yang Anda miliki.

Untuk mengembalikan database ke keadaan cadangan penuh pertama, Anda perlu menyiapkan file cadangan dengan perintah berikut:

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

Untuk mengembalikan database ke status cadangan tambahan pertama, Anda harus menyiapkan file cadangan dengan perintah berikut:

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

Untuk mengembalikan database ke status cadangan tambahan kedua, Anda perlu menyiapkan file cadangan dengan perintah berikut:

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

Catatan :

Untuk cadangan inkremental, Anda harus menggunakan --redo-onlyopsi pada semua kecuali cadangan inkremental terakhir. Namun demikian, menggunakan opsi ini pada cadangan inkremental terakhir masih tidak berbahaya bagi konsistensi data Anda - itu hanya akan menyebabkan beberapa penundaan karena rollback basis data.

Perintah terakhir dari setiap skenario tambahan adalah opsional tetapi disarankan, karena akan mempercepat pemulihan.

Setelah persiapan, perubahan yang dicatat dalam file cadangan tambahan akan ditambahkan ke file cadangan lengkap basis yang disiapkan, jadi Anda harus selalu menggunakan file cadangan lengkap yang disiapkan untuk memulihkan database Anda, tidak masalah jika Anda memilih cadangan penuh atau cadangan tambahan.

Langkah 9: Kembalikan database

Sebelum Anda dapat memulihkan database Anda, Anda harus menghentikan layanan database.

sudo service mysqld stop

Anda juga perlu mengosongkan direktori basis data. Anda dapat memindahkan file database saat ini ke tempat lain untuk pencegahan.

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

Kembalikan database Anda dengan file "cadangan lengkap" yang disiapkan.

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

Karena prosedur pemulihan akan mengubah pemilik direktori basis data, Anda perlu mengubahnya kembali mysql:mysqluntuk membuatnya operasional.

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

Mulai ulang layanan basis data.

sudo service mysqld start

Itu dia. Pada titik ini, Anda dapat mengunjungi situs WordPress Anda untuk memverifikasi bahwa proses pemulihan berhasil.



Leave a Comment

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

6 Hal yang Sangat Menggila dari Nintendo Switch

6 Hal yang Sangat Menggila dari Nintendo Switch

Banyak dari Anda tahu Switch keluar pada Maret 2017 dan fitur-fitur barunya. Bagi yang belum tahu, kami sudah menyiapkan daftar fitur yang membuat 'Switch' menjadi 'gadget yang wajib dimiliki'.

Janji Teknologi Yang Masih Belum Ditepati

Janji Teknologi Yang Masih Belum Ditepati

Apakah Anda menunggu raksasa teknologi untuk memenuhi janji mereka? periksa apa yang belum terkirim.

Fungsionalitas Lapisan Arsitektur Referensi Big Data

Fungsionalitas Lapisan Arsitektur Referensi Big Data

Baca blog untuk mengetahui berbagai lapisan dalam Arsitektur Big Data dan fungsinya dengan cara yang paling sederhana.

Bagaimana AI Dapat Membawa Otomatisasi Proses ke Tingkat Selanjutnya?

Bagaimana AI Dapat Membawa Otomatisasi Proses ke Tingkat Selanjutnya?

Baca ini untuk mengetahui bagaimana Kecerdasan Buatan menjadi populer di antara perusahaan skala kecil dan bagaimana hal itu meningkatkan kemungkinan untuk membuat mereka tumbuh dan memberi keunggulan pada pesaing mereka.

CAPTCHA: Berapa Lama Itu Bisa Tetap Menjadi Teknik yang Layak Untuk Perbedaan Human-AI?

CAPTCHA: Berapa Lama Itu Bisa Tetap Menjadi Teknik yang Layak Untuk Perbedaan Human-AI?

CAPTCHA telah berkembang cukup sulit bagi pengguna untuk dipecahkan dalam beberapa tahun terakhir. Apakah itu akan tetap efektif dalam deteksi spam dan bot di masa mendatang?

Singularitas Teknologi: Masa Depan Peradaban Manusia yang Jauh?

Singularitas Teknologi: Masa Depan Peradaban Manusia yang Jauh?

Saat Sains Berkembang dengan kecepatan tinggi, mengambil alih banyak upaya kita, risiko menundukkan diri kita pada Singularitas yang tidak dapat dijelaskan juga meningkat. Baca, apa arti singularitas bagi kita.

Telemedicine Dan Perawatan Kesehatan Jarak Jauh: Masa Depan Ada Di Sini

Telemedicine Dan Perawatan Kesehatan Jarak Jauh: Masa Depan Ada Di Sini

Apa itu telemedicine, perawatan kesehatan jarak jauh dan dampaknya terhadap generasi mendatang? Apakah itu tempat yang bagus atau tidak dalam situasi pandemi? Baca blog untuk menemukan tampilan!

Pernahkah Anda Bertanya-tanya Bagaimana Hacker Menghasilkan Uang?

Pernahkah Anda Bertanya-tanya Bagaimana Hacker Menghasilkan Uang?

Anda mungkin pernah mendengar bahwa peretas menghasilkan banyak uang, tetapi pernahkah Anda bertanya-tanya bagaimana cara mereka mendapatkan uang sebanyak itu? mari berdiskusi.

Pembaruan Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Masalah Daripada Menyelesaikan

Pembaruan Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Masalah Daripada Menyelesaikan

Baru-baru ini Apple merilis macOS Catalina 10.15.4 pembaruan suplemen untuk memperbaiki masalah tetapi tampaknya pembaruan menyebabkan lebih banyak masalah yang mengarah ke bricking mesin mac. Baca artikel ini untuk mempelajari lebih lanjut