GNU/Linux >> Belajar Linux >  >> Ubuntu

Lakukan Pencadangan Panas Database MySQL dengan Percona XtraBackup di Ubuntu 16.04

Percona XtraBackup adalah utilitas cadangan sumber terbuka untuk MySQL. Ini mendukung semua rasa MySQL seperti Percona Server, MariaDB, dan (Oracle) MySQL. Percona Xtrabackup melakukan Hot Backup untuk MySQL. Hot Backup berarti membuat cadangan server MySQL saat sedang berjalan tanpa downtime.

Dalam tutorial ini, saya akan menunjukkan cara membuat cadangan database MySQL dengan alat OpenSource Percona XtraBackup di Ubuntu 16.04 (Xenial Xerus). Saya akan menggunakan MariaDB sebagai server database untuk melakukan pencadangan, tetapi pengaturan yang sama juga akan berfungsi untuk server MySQL.

Prasyarat

  • Server Ubuntu 16.04 - (Xenial Xerus)
  • Server MySQL atau MariaDB
  • Keistimewaan Root

Langkah 1 - Instal Percona XtraBackup

Langkah pertama adalah menginstal perangkat lunak Percona XtraBackup terbaru di server Ubuntu kami. Masuk ke server Anda dengan SSH (atau di konsol):

ssh [email protected]
TYPE YOUR PASSWORD

Percona XtraBackup tersedia di repositori Ubuntu, tetapi kami ingin menggunakan versi terbaru dari repositori Percona.

Tambahkan repositori Percona dengan mengunduh paket deb dari web dan menginstalnya dengan perintah dpkg:

wget https://repo.percona.com/apt/percona-release_0.1-3.$(lsb_release -sc)_all.deb
sudo dpkg -i percona-release_0.1-3.$(lsb_release -sc)_all.deb

Selanjutnya, perbarui repositori dan instal Ppercona XtraBackup 2.4 (versi terbaru saat ini):

sudo apt-get update
sudo apt-get install percona-xtrabackup-24

Percona XtraBackup telah diinstal.

Langkah 2 - Konfigurasi Direktori Pengguna dan Cadangan

Untuk melakukan pencadangan panas, kita perlu membuat pengguna mysql baru dengan hak dan izin khusus. Dalam tutorial ini, saya akan menggunakan MariaDB 10.0 sebagai database server. Jika Anda belum menginstal database yang kompatibel dengan MySQL, Anda dapat menginstal dengan perintah di bawah ini:

sudo apt-get install mariadb-server mariadb-client

Tetapkan kata sandi yang aman untuk pengguna root dengan perintah ini:

mysql_secure_installation

Jika MariaDB terinstal, akses shell MariaDB/MySQL sebagai pengguna root dengan perintah klien mysql:

mysql -u root -p
TYPE MySQL PASSWORD

Buat pengguna baru bernama 'bekupuser ' dengan kata sandi 'kata sandi saya ' (pilih kata sandi yang aman untuk server Anda!):

CREATE USER 'bekupuser'@'localhost' IDENTIFIED BY 'mypassword';

Beri pengguna hak istimewa berikut:'RELOAD, PROCESS, LOCK TABLES, REPLICATION CLIENT'.

GRANT RELOAD, LOCK TABLES, PROCESS, REPLICATION CLIENT ON *.* TO 'bekupuser'@'localhost';
FLUSH PRIVILEGES;
exit

Selanjutnya, buat direktori baru untuk menyimpan file cadangan MySQL:

mkdir -p /data/backups/mysql/

Pengguna cadangan baru dan direktori cadangan telah dibuat.

Langkah 3 - Lakukan Pencadangan dengan Innobackupex

Innobackupex adalah pembungkus skrip Perl untuk program xtrabackup. Ini adalah versi patch dari skrip innobackup yang disediakan oleh oracle, didistribusikan dengan alat Cadangan InnoDB. Innobackupex menyediakan cadangan untuk seluruh instance database MySQL, menggunakan xtrabackup yang dikombinasikan dengan xbstream dan xbcrypt.

Pada langkah ini, kita akan membuat dan menyiapkan full backup untuk instance MySQL.

A. Buat cadangan dengan Innobackupex

Pada langkah 2, kami telah membuat direktori baru untuk cadangan dan menambahkan pengguna cadangan mysql baru. Kami akan menggunakannya sekarang untuk membuat cadangan dengan perintah innobackupex.

Buat cadangan MySQL dengan innobackupex ke direktori baru '/data/backups/my_backup':

innobackupex --user=bekupuser  --password=mypassword --no-timestamp /data/backups/my_backup

Catatan:

--pengguna =pengguna dengan hak pencadangan yang diperlukan (langkah-2).

--sandi =kata sandi pengguna cadangan.

--tanpa stempel waktu =nonaktifkan pembuatan subdirektori stempel waktu baru di direktori root cadangan.

/data/backups/my_backup =direktori untuk cadangan, itu akan dibuat secara otomatis selama proses pencadangan. Jika direktori ada, Anda akan mendapatkan pesan kesalahan.

Pilihan lain:

mkdir -p /data/backups/my_backup2

innobackupex --user=bekupuser --password=mypassword /data/backups/my_backup2

or

innobackupex --user=bekupuser --password=mypassword /data/backups/

Catatan:

Jika tidak ada direktori 'my_backup2 ', Anda akan mendapatkan direktori berdasarkan 'stempel waktu ' format.

Hasil:

B. Siapkan Cadangan Lengkap dengan Innobackupex

Setelah membuat cadangan baru, data belum siap untuk dipulihkan. Ada satu langkah lagi sehingga data siap untuk dipulihkan. Kami membutuhkan 'tahap persiapan' agar data dapat dipulihkan.

Siapkan backup menggunakan innobackupex dengan opsi --apply-log ke direktori cadangan '/data/backups/my_backup ':

innobackupex --apply-log /data/backups/my_backup

Pastikan proses selesai tanpa kesalahan sebelum Anda melanjutkan.

Jika Anda memiliki cukup memori dan database yang besar, maka Anda dapat menggunakan opsi --use-memory=memorynumber untuk memberi tahu innobackupex berapa banyak memori yang mungkin digunakan:

innobackupex --apply-log --use-memory=4G /data/backups/my_backup

Data siap untuk dipulihkan sekarang. Kami dapat memulihkannya di server yang sama atau di server lain yang menjalankan MariaDB.

Langkah 4 - Pulihkan Cadangan Penuh dengan Innobackupex

Pada langkah ini, kami akan memulihkan instance MySQL dengan innobackupex.

Sebelum kita mengembalikan instance MySQL, kita perlu menghentikan proses MySQL dengan perintah systemctl (proses MariaDB bernama mysql):

systemctl stop mysql

Buat cadangan direktori data MySQL lama:

mkdir ~/mysql_old/
mv /var/lib/mysql/* ~/mysql_old/

Selanjutnya, pulihkan instance mysql dari cadangan penuh dengan innobackupex:

innobackupex --copy-back /data/backups/my_backup

Ketika Anda melihat hasil 'innobackupex:selesai OK ', maka Anda telah berhasil memulihkan instance MySQL Anda.

Sekarang ubah pemilik direktori data MySQL menjadi pengguna mysql dan mulai layanan lagi:

chown -R mysql:mysql /var/lib/mysql
systemctl start mysql

Instance MySQL telah berhasil dipulihkan dengan percona-xtrabackup.


Ubuntu
  1. Cara Instal Nginx Dengan PHP5 Dan MySQL Di Ubuntu 11.10

  2. Cara Menginstal Mattermost dengan MySQL di Ubuntu 14.04 &Debian 8

  3. Cara Membuat Backup Database MySQL Menggunakan mysqldump di Ubuntu 20.04

  1. Instal dan Mulai dengan MySQL Workbench di Ubuntu

  2. Ubuntu 20.04:WordPress dengan instalasi Nginx

  3. Ubuntu 20.04 WordPress dengan instalasi Apache

  1. Instalasi WordPress di Ubuntu Linux dengan Apache dan MySQL

  2. Cara Menginstal WordPress dengan Nginx di Ubuntu 18.04

  3. Cara Menginstal WordPress dengan Apache di Ubuntu 18.04