Cara Backup MYSQL Dengan Percona XtraBackup Ubuntu 16.04. Percona XtraBackup merupakan backup utilitas berbasis opensource untuk MySQL.
Cara Backup MYSQL Dengan Percona XtraBackup Ubuntu 16.04. Percona XtraBackup merupakan backup utilitas berbasis opensource untuk MySQL. Mendukung semua yang ada di MySQL seperti Percona Server, MariaDB, dan (Oracle) MySQL. Percona Xtrabackup melakukan Hot Backup untuk MySQL. Hot Backup berarti untuk membuat backup dari server MySQL ketika sedang berjalan tanpa downtime.
Dalam tutorial ini, saya akan menunjukkan cara untuk membuat backup database MySQL hot dengan aplikasi OpenSource Percona XtraBackup pada Ubuntu 16.04 (Xenial Xerus). Saya akan menggunakan MariaDB sebagai server database untuk melakukan backup tapi setup yang sama akan bekerja untuk server MySQL juga.
Prasyarat
- Ubuntu Server 16.04 - (Xenial Xerus)
- MySQL atau MariaDB Server
- Wewenang superuser / root
Langkah 1 - Instalasi Percona XtraBackup
The first step is to install latest Percona XtraBackup software on our Ubuntu server. Log in to your server by SSH (or on the console):
ssh root@192.168.1.15TYPE YOUR PASSWORD :
Percona XtraBackup tersedia dalam repositori Ubuntu, tapi kami ingin menggunakan versi terbaru dari repositori Percona.
Tambahkan repositori Percona dengan men-download 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
sudo dpkg -i percona-release_0.1-3.$(lsb_release -sc)_all.deb
Berikutnya, memperbarui repositori dan menginstal Percona XtraBackup 2.4 (versi terbaru saat ini):
sudo apt-get update
sudo apt-get install percona-xtrabackup-24
sudo apt-get install percona-xtrabackup-24
Percona XtraBackup sudah diinstall
Langkah 2 - Konfigurasi User dan Backup Direktori
Untuk melakukan backup Hot, kita perlu membuat user mysql baru dengan hak-hak istimewa dan izin. Dalam tutorial ini, saya akan menggunakan MariaDB 10,0 sebagai database server. Jika Anda belum menginstal sebuah database MySQL kompatibel belum maka Anda dapat menginstal dengan perintah di bawah ini:
sudo apt-get install mariadb-server mariadb-client
Mengatur password yang aman untuk user root dengan perintah ini:
mysql_secure_installation
Jika MariaDB diinstal, mengakses shell MariaDB / MySQL sebagai root user dengan perintah klien mysql:
mysql -u root -p TYPE MySQL PASSWORD
Membuat user baru yang disebut 'bekupuser' dengan password 'mypassword' (memilih password yang aman untuk server Anda!):
CREATE USER 'bekupuser'@'localhost' IDENTIFIED BY 'mypassword';
Memberikan pengguna hak istimewa berikut: 'RELOAD, PROSES, LOCK TABLES, REPLIKASI CLIENT'.
GRANT RELOAD, LOCK TABLES, PROCESS, REPLICATION CLIENT ON *.* TO 'bekupuser'@'localhost';FLUSH PRIVILEGES;
exit
exit
Berikutnya, membuat direktori baru untuk menyimpan file backup MySQL:
mkdir -p /data/backups/mysql/
Pengguna backup baru dan direktori backup telah dibuat.
Step 3 - Performa Backup dengan Innobackupex
Innobackupex adalah script wrapper Perl untuk program xtrabackup. Ini adalah versi patch script innobackup yang disediakan oleh oracle, didistribusikan dengan alat Backup InnoDB. Innobackupex menyediakan backup untuk seluruh contoh database MySQL, menggunakan xtrabackup dalam kombinasi dengan xbstream dan xbcrypt.
Pada langkah ini, kita akan membuat dan menyiapkan backup penuh untuk contoh MySQL.
A. membuat backup dengan Innobackupex
Pada langkah 2, kami telah membuat sebuah direktori baru untuk backup dan menambahkan pengguna backup mysql baru. Kami akan menggunakannya sekarang untuk membuat backup dengan perintah innobackupex.
Buat backup MySQL dengan innobackupex ke direktori baru '/data/backup/my_backup':
innobackupex --user=bekupuser --password=mypassword --no-timestamp /data/backups/my_backup
catatan:
- --user = user dengan hak backup diperlukan (langkah-2).
- password = password dari pengguna backup.
- --no-timestamp = menonaktifkan penciptaan subdirektori waktu dicap baru di root dir backup.
- / Data / backup / my_backup = direktori untuk cadangan, maka akan dibuat secara otomatis selama proses backup. Jika direktori ada, Anda akan mendapatkan pesan kesalahan.
Opsi lainya:
mkdir -p /data/backups/my_backup2innobackupex --user=bekupuser --password=mypassword /data/backups/my_backup2
orinnobackupex --user=bekupuser --password=mypassword /data/backups/
orinnobackupex --user=bekupuser --password=mypassword /data/backups/
Catatan :
Jika tidak ada direktori 'MyBackup 2', Anda akan mendapatkan direktori Anda berdasarkan format 'timestamp'.
Hasil:
B. Siapkan Backup Penuh Dengan Innobackupex
Setelah membuat backup baru, data tidak siap untuk mengembalikan. Ada satu langkah lagi sehingga data yang siap untuk dipulihkan. Kita membutuhkan 'mempersiapkan panggung' sehingga data dapat dipulihkan.
Siapkan backup menggunakan innobackupex dengan opsi --apply-log ke direktori backup '/data/backup/my_backup':
innobackupex --apply-log /data/backups/my_backup
Pastikan proses selesai tanpa kesalahan sebelum Anda melanjutkan.
Jika Anda memiliki cukup memori dan database besar, maka Anda dapat menggunakan opsi --use-memori = jumlah memori untuk memberitahu innobackupex berapa banyak memori yang dapat digunakan:
innobackupex --apply-log --use-memory=4G /data/backups/my_backup
Data siap untuk dikembalikan sekarang. Kita bisa mengembalikannya pada server yang sama atau pada server lain yang berjalan MariaDB.
Step 4 - Restore Full Backup dengan Innobackupex
Pada langkah ini, kita akan mengembalikan instance MySQL dengan innobackupex.
Sebelum kita mengembalikan instance MySQL, kita perlu menghentikan proses MySQL dengan perintah systemctl (proses MariaDB bernama mysql):
systemctl stop mysql
Membuat backup dari direktori data lama MySQL:
mkdir ~/mysql_old/mv /var/lib/mysql/* ~/mysql_old/
Selanjutnya, mengembalikan instance sql dari backup penuh dengan innobackupex:
innobackupex --copy-back /data/backups/my_backup
Ketika Anda melihat hasil 'innobackupex: selesai OK', maka Anda telah berhasil dipulihkan misalnya MySQL Anda.
Sekarang mengubah pemilik direktori data MySQL untuk pengguna mysql dan memulai layanan lagi:
chown -R mysql:mysql /var/lib/mysqlsystemctl start mysql
MySQL instance telah berhasil dipulihkan dengan Percona-xtrabackup.
COMMENTS