Sandaran Panas dengan Percona XtraBackup pada Aplikasi WordPress Satu Klik

Isi kandungan

  • Pengenalan
  • Prasyarat
  • Langkah 1: Buat pengguna sistem bukan root
  • Langkah 2: Periksa mesin simpanan
  • Langkah 3: Buat pengguna pangkalan data untuk sandaran
  • Langkah 4: Pasang Percona XtraBackup
  • Langkah 5: Buat direktori penyimpanan sandaran
  • Langkah 6: Buat sandaran penuh pertama
  • Langkah 7: Buat cadangan tambahan berikut
  • Langkah 8: Sediakan fail sandaran untuk memulihkan pangkalan data
  • Langkah 9: Pulihkan pangkalan data
  • Langkah selanjutnya

Pengenalan

Percona XtraBackup adalah program berasaskan MySQL percuma yang digunakan untuk membuat sandaran panas. Ia juga bersumber terbuka. Dengan Percona XtraBackup, anda boleh membuat sandaran panas menjalankan pangkalan data MySQL, MariaDB, atau Percona Server tanpa menghentikan perkhidmatan pangkalan data anda atau menjadikannya hanya untuk membaca. Ini adalah ciri penting perniagaan untuk banyak perniagaan dalam talian.

Untuk pangkalan data yang menggunakan enjin penyimpanan InnoDB, XtraDB, dan HailDB, Percona XtraBackup dapat melakukan sandaran tanpa penyekat. Untuk pangkalan data yang menggunakan mesin penyimpanan MyISAM, Merge, dan Archive, Percona XtraBackup juga dapat melakukan sandaran dengan menjeda penulisan secara ringkas pada akhir prosedur sandaran.

Dalam artikel ini, saya akan menunjukkan kepada anda cara memasang dan menggunakan Percona XtraBackup untuk melakukan sandaran panas penuh dan tambahan pada pelayan Vultr berdasarkan aplikasi WordPress Satu Klik. Kami akan melakukan sandaran penuh dan dua cadangan tambahan, dan kemudian mengembalikan pangkalan data ke keadaan masing-masing dari tiga sandaran tersebut.

Prasyarat

Saya mengandaikan bahawa anda telah menggunakan contoh pelayan WordPress Vultr Satu Klik dari awal dan telah log masuk sebagai root, menggunakan SSH.

Langkah 1: Buat pengguna sistem bukan root

Untuk tujuan keselamatan, amalan yang disarankan adalah membuat akaun pengguna lain dengan izin root, kemudian menggunakannya untuk log masuk dan melakukan operasi harian anda di sistem. Anda masih boleh melaksanakan hampir semua perintah superuser dengan sudoperintah tersebut.

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

useradd sysuser

2) Tetapkan kata laluan untuk pengguna baru anda. Ganti sysuserdengan nama pengguna anda sendiri.

passwd sysuser

3) Beri kebenaran root kepada pengguna baru anda.

visudo

Cari perenggan di bawah.

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

Tambahkan baris tepat di bawah perenggan ini, ganti sysuserdengan nama pengguna anda sendiri.

sysuser     ALL=(ALL)     ALL

Simpan dan berhenti.

:wq

4) Tukar ke akaun pengguna baru anda.

logout

Kemudian, gunakan kelayakan pengguna baru untuk log masuk dari tetingkap terminal anda.

Langkah 2: Periksa mesin simpanan

Secara lalai, log masuk root MySQL disimpan pada VPS di /root/.my.cnf. Paparkan kata laluan di terminal anda dengan arahan berikut.

sudo cat /root/.my.cnf

Gunakan kelayakan yang dipaparkan di skrin untuk log masuk ke konsol MySQL.

mysql -u root -p

Dalam shell MySQL, jalankan yang berikut.

SHOW DATABASES;

Semua pangkalan data MySQL akan dipaparkan di skrin. Pangkalan data yang dinamakan seperti wp5273512adalah pangkalan data WordPress yang ingin kita sandarkan. Dalam arahan berikut, ganti wp5273512dengan perintah anda sendiri:

USE wp5273512;

Periksa mesin simpanan untuk setiap jadual:

SHOW TABLE STATUS\G

Anda akan mendapati bahawa semua jadual dalam pangkalan data MySQL WordPress anda menggunakan enjin penyimpanan InnoDB yang sangat sesuai untuk melakukan sandaran panas dengan Percona XtraBackup.

Untuk pangkalan data MySQL lain yang menggunakan enjin penyimpanan MyISAM, kami masih boleh membuat sandaran dengan Percona XtraBackup dengan menghentikan sementara penulisan.

Langkah 3: Buat pengguna pangkalan data untuk sandaran

Masih dalam shell MySQL, gunakan perintah berikut untuk membuat pengguna pangkalan data khusus untuk sandaran. Ingatlah untuk mengganti nama pengguna pangkalan data xbuserdan kata laluan xbpasswddengan yang anda sendiri:

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;

Keistimewaan yang diberikan di atas diperlukan untuk fungsi Percona XtraBackup sepenuhnya. Anda boleh membuang sebahagian daripadanya kerana kurang fungsi dan keselamatan yang lebih baik. Untuk maklumat lebih lanjut, lihat laman web rasmi Percona XtraBackup .

Langkah 4: Pasang Percona XtraBackup

Anda boleh memasang Percona XtraBackup dari repositori RPM Percona dengan 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 sandaran

Pertama, anda perlu menambahkan pengguna sysuserke mysqlkumpulan. Ganti sysuserdengan nama pengguna anda sendiri.

sudo gpasswd -a sysuser mysql

Buat direktori untuk menyimpan sandaran penuh.

sudo mkdir -p /dbbackup/full/

Buat direktori lain untuk menyimpan sandaran tambahan.

sudo mkdir -p /dbbackup/inc/

Tukar pemilik direktori ini kepada pengguna sysuserdan kumpulan sysuser.

sudo chown -R sysuser:sysuser /dbbackup

Log keluar untuk melaksanakan perubahan ini.

logout

Kemudian, log masuk dengan sysusersekali lagi.

Langkah 6: Buat sandaran penuh pertama

XtraBackup terdiri terutamanya dari program XtraBackup dan innobackupexskrip perl. Biasanya, anda boleh menggunakan innobackupexskrip perl untuk melakukan pelbagai prosedur operasi untuk kemudahan.

Masukkan arahan berikut untuk membuat sandaran penuh pertama. Ingatlah untuk mengganti nama pengguna pangkalan data xbuser, kata laluan pengguna pangkalan data xbpasswd, dan direktori sandaran penuh /dbbackup/full/dengan yang anda miliki.

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

Dengan perintah ini dilaksanakan dengan betul, anda akan melihat mesej pengesahan "innobackupex: selesai OK!" pada baris terakhir output.

Semua fail sandaran penuh yang baru dibuat ini akan disimpan dalam direktori yang diberi cap masa di bawah /dbbackup/full/. Contohnya , /dbbackup/full/2015-05-22_05-45-54.

Langkah 7: Buat cadangan tambahan berikut

Masukkan arahan berikut untuk membuat cadangan tambahan pertama. Pemboleh ubah pengganti dalam arahan dengan sewajarnya.

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!" pada akhir output apabila arahan berjaya dilaksanakan. Fail sandaran akan disimpan dalam direktori yang dicap waktu di bawah /dbbackup/inc/.

Masukkan arahan berikut untuk membuat cadangan tambahan kedua. Gantikan pemboleh ubah dalam arahan dengan sewajarnya.

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

Setelah berjaya, anda akan melihat "innobackupex: selesai OK!" pesan lagi. Periksa /dbbackup/inc/folder sekali lagi untuk melihat fail sandaran.

Langkah 8: Sediakan fail sandaran untuk memulihkan pangkalan data

Semua fail sandaran pangkalan data perlu disediakan sebelum dapat digunakan untuk memulihkan pangkalan data.

Catatan : Sebelum melakukan prosedur penyediaan dan pemulihan, sebaiknya simpan salinan keseluruhan direktori sandaran (seperti /dbbackup/) di tempat lain sekiranya kerosakan pada sandaran fail disebabkan oleh kesalahan.

Di setiap direktori sandaran, ada file bernama xtrabackup_checkpointsyang berisi jenis sandaran dan nombor urutan log awal dan akhir ( from_lsndan to_lsn). Anda boleh menggunakan nombor tersebut untuk menjelaskan strategi pemulihan pangkalan data anda. Lihat contoh di bawah.

Dalam xtrabackup_checkpointsfail sandaran penuh pertama, saya mempunyai:

backup_type = full-backuped
from_lsn = 0
to_lsn = 2932478

Dalam xtrabackup_checkpointsfail cadangan tambahan pertama, saya mempunyai:

backup_type =incremental
from_lsn = 2932478
to_lsn = 2970177

Dalam xtrabackup_checkpointsfail cadangan tambahan kedua, saya mempunyai:

backup_type = incremental
from_lsn = 2970177
to_lsn = 3004672

Secara ringkas, anda harus mengatasi setiap cadangan dengan susunan lsn yang semakin meningkat. Sekiranya urutan lsn tidak lengkap atau tidak teratur, anda mungkin kehilangan data.

Catatan : Perintah berikut melibatkan tiga direktori, gantinya dengan yang anda sendiri.

Untuk memulihkan pangkalan data ke keadaan sandaran penuh pertama, anda perlu menyediakan fail sandaran dengan arahan berikut:

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

Untuk mengembalikan pangkalan data ke keadaan cadangan tambahan pertama, anda perlu menyiapkan fail sandaran dengan arahan 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 pangkalan data ke keadaan cadangan tambahan kedua, anda perlu menyiapkan fail sandaran dengan arahan 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 tambahan, Anda harus menggunakan --redo-onlypilihan pada semua kecuali cadangan tambahan terakhir. Walaupun begitu, menggunakan pilihan ini pada sandaran tambahan terakhir masih tidak berbahaya bagi konsistensi data anda - ia hanya akan menyebabkan beberapa kelewatan kerana penggantian pangkalan data.

Perintah terakhir dari setiap senario tambahan adalah pilihan tetapi disyorkan, kerana akan mempercepat pemulihan.

Selepas penyediaan, perubahan yang dicatatkan dalam fail cadangan tambahan akan ditambahkan ke fail sandaran penuh yang disiapkan, jadi anda harus selalu menggunakan fail sandaran penuh yang disiapkan untuk memulihkan pangkalan data anda, tidak kira jika anda memilih sandaran penuh atau cadangan tambahan.

Langkah 9: Pulihkan pangkalan data

Sebelum anda dapat memulihkan pangkalan data anda, anda perlu menghentikan perkhidmatan pangkalan data.

sudo service mysqld stop

Anda juga perlu mengosongkan direktori pangkalan data. Anda boleh memindahkan fail pangkalan data semasa ke tempat lain untuk berjaga-jaga.

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

Pulihkan pangkalan data anda dengan fail "sandaran penuh" yang disediakan.

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

Kerana prosedur pemulihan akan mengubah pemilik direktori pangkalan data, anda perlu mengubahnya kembali mysql:mysqluntuk menjadikannya beroperasi.

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

Mulakan semula perkhidmatan pangkalan data.

sudo service mysqld start

Itu sahaja. Pada ketika ini, anda boleh mengunjungi laman WordPress anda untuk mengesahkan bahawa proses pemulihan berjaya.



Leave a Comment

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

6 Perkara Yang Sangat Menggila Tentang Nintendo Switch

6 Perkara Yang Sangat Menggila Tentang Nintendo Switch

Ramai daripada anda tahu Switch akan keluar pada Mac 2017 dan ciri baharunya. Bagi yang tidak tahu, kami telah menyediakan senarai ciri yang menjadikan 'Tukar' sebagai 'gajet yang mesti ada'.

Janji Teknologi Yang Masih Tidak Ditepati

Janji Teknologi Yang Masih Tidak Ditepati

Adakah anda menunggu gergasi teknologi memenuhi janji mereka? semak apa yang masih belum dihantar.

Fungsi Lapisan Seni Bina Rujukan Data Besar

Fungsi Lapisan Seni Bina Rujukan Data Besar

Baca blog untuk mengetahui lapisan berbeza dalam Seni Bina Data Besar dan fungsinya dengan cara yang paling mudah.

Bagaimana AI Boleh Mengambil Automasi Proses ke Tahap Seterusnya?

Bagaimana AI Boleh Mengambil Automasi Proses ke Tahap Seterusnya?

Baca ini untuk mengetahui cara Kecerdasan Buatan semakin popular di kalangan syarikat berskala kecil dan cara ia meningkatkan kebarangkalian untuk menjadikan mereka berkembang dan memberikan pesaing mereka kelebihan.

CAPTCHA: Berapa Lama Ia Boleh Kekal Sebagai Teknik Berdaya maju Untuk Perbezaan Manusia-AI?

CAPTCHA: Berapa Lama Ia Boleh Kekal Sebagai Teknik Berdaya maju Untuk Perbezaan Manusia-AI?

CAPTCHA telah menjadi agak sukar untuk diselesaikan oleh pengguna dalam beberapa tahun kebelakangan ini. Adakah ia dapat kekal berkesan dalam pengesanan spam dan bot pada masa hadapan?

Keunikan Teknologi: Masa Depan Tamadun Manusia yang Jauh?

Keunikan Teknologi: Masa Depan Tamadun Manusia yang Jauh?

Apabila Sains Berkembang pada kadar yang pantas, mengambil alih banyak usaha kita, risiko untuk menundukkan diri kita kepada Ketunggalan yang tidak dapat dijelaskan juga meningkat. Baca, apakah makna ketunggalan bagi kita.

Teleperubatan Dan Penjagaan Kesihatan Jauh: Masa Depan Ada Di Sini

Teleperubatan Dan Penjagaan Kesihatan Jauh: Masa Depan Ada Di Sini

Apakah teleperubatan, penjagaan kesihatan jauh dan impaknya kepada generasi akan datang? Adakah ia tempat yang baik atau tidak dalam situasi pandemik? Baca blog untuk mencari paparan!

Pernahkah Anda Terfikir Bagaimana Penggodam Mendapatkan Wang?

Pernahkah Anda Terfikir Bagaimana Penggodam Mendapatkan Wang?

Anda mungkin pernah mendengar bahawa penggodam memperoleh banyak wang, tetapi pernahkah anda terfikir bagaimana mereka memperoleh wang seperti itu? Mari berbincang.

Kemas Kini Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Isu Daripada Penyelesaian

Kemas Kini Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Isu Daripada Penyelesaian

Baru-baru ini Apple mengeluarkan macOS Catalina 10.15.4 kemas kini tambahan untuk menyelesaikan masalah tetapi nampaknya kemas kini itu menyebabkan lebih banyak masalah yang membawa kepada pemusnahan mesin mac. Baca artikel ini untuk mengetahui lebih lanjut