Gunakan Percona XtraBackup untuk memulihkan backup fisik dari ApsaraDB RDS for MySQL ke database MySQL yang dikelola sendiri.
Latar Belakang
ApsaraDB RDS for MySQL mendukung pemulihan backup instans ke database yang dikelola sendiri. Anda dapat menggunakan berbagai metode pemulihan data, seperti memulihkan dari backup fisik atau backup logis. Untuk informasi lebih lanjut tentang pemilihan metode pemulihan data, lihat Metode pemulihan data MySQL.
Anda dapat melihat tipe backup suatu instans di Konsol ApsaraDB RDS. Di panel navigasi sebelah kiri, buka Backup and Restoration > Base Backups > Data Backup.
Jika tidak tersedia backup fisik, Anda harus terlebih dahulu membuat backup manual. Untuk instruksinya, lihat Manual backup.
Skenario
Anda dapat memulihkan backup fisik dari instans RDS for MySQL ke database yang dikelola sendiri jika tidak lagi memerlukan instans tersebut dalam jangka panjang atau jika instans tersebut telah dilepas tetapi Anda masih memiliki file backup fisiknya.
Prasyarat
Instans RDS MySQL Anda harus memenuhi persyaratan berikut:
Versi mesin utama: 8.0, 5.7, 5.6, atau 5.5
Edisi: High-availability Edition
Tipe penyimpanan: Premium Local SSDs
CatatanInformasi ini dapat dilihat di halaman Basic Information instans Anda.
Anda hanya dapat mengunduh file backup fisik untuk instans yang memenuhi persyaratan di atas. Jika instans Anda adalah instans Edisi Dasar, lihat FAQ dalam topik ini.
Tabel-tabel di instans RDS Anda tidak boleh dienkripsi dengan TDE.
PentingTabel terenkripsi dapat menyebabkan kesalahan pemulihan. Lakukan operasi dekripsi terlebih dahulu.
Status TDE dapat diperiksa di halaman Data Security > TDE instans di Konsol RDS.
Pengguna RAM Anda harus memiliki izin untuk mengunduh file cadangan. Untuk instruksi, lihat Mengizinkan pengguna RAM dengan izin read-only untuk mengunduh file cadangan.
Batasan
Pemulihan file backup fisik hanya didukung untuk instans yang menggunakan disk lokal. Untuk memulihkan backup snapshot untuk instans yang menggunakan cloud disk, lihat Pulihkan data instans ApsaraDB RDS for MySQL ke instans MySQL yang dikelola sendiri menggunakan file backup snapshot.
Proses ini memulihkan semua data dari file cadangan. Untuk memulihkan hanya database atau tabel tertentu, lihat Memulihkan cadangan logis RDS MySQL ke database yang dikelola sendiri.
Saat ini, file backup fisik dari RDS for MySQL hanya dapat dipulihkan ke database yang dikelola sendiri di Linux.
Pemulihan data untuk kluster MySQL Group Replication (MGR) saat ini tidak didukung.
Dampak
Jika Anda memulihkan backup fisik RDS MySQL ke database yang dikelola sendiri yang juga menjalankan layanan lain, layanan tersebut akan menjadi tidak tersedia.
Metode pemulihan ini memulihkan data ke direktori data database baru, sehingga data asli di database yang dikelola sendiri tidak terpengaruh.
Cara kerja
Pemulihan backup fisik melibatkan langkah-langkah berikut:
Lakukan backup fisik penuh database.
Unduh file backup fisik ke perangkat lokal dan ekstrak dengan tool
qpress.Gunakan
Percona XtraBackupuntuk memulihkan file backup yang telah diekstrak ke direktori data database yang dikelola sendiri.Mulai ulang database. Anda kemudian dapat melihat data RDS MySQL asli di database yang dikelola sendiri.
Catatan
URL unduhan backup berlaku selama satu jam. Jika URL kedaluwarsa, refresh halaman untuk mendapatkan URL baru.
Jangan mengubah atau menghapus isi file backup. Jika tidak, file tersebut mungkin rusak dan tidak dapat dipulihkan. Jika Anda perlu mengubah data, pulihkan terlebih dahulu backup ke database yang dikelola sendiri.
Penagihan
Jika Anda membuat backup manual, pantau penggunaan penyimpanan backup Anda. Penyimpanan backup yang melebihi kuota gratis akan dikenai biaya backup.
Jika database yang dikelola sendiri Anda berada di lingkungan on-premises, Anda akan mengunduh data backup melalui Internet. Anda akan dikenai biaya traffic Internet jika traffic unduhan Anda melebihi kuota gratis.
CatatanJika database yang dikelola sendiri Anda berada di instans ECS di wilayah dan VPC yang sama dengan instans RDS, pengunduhan data backup melalui alamat internal tidak dikenai biaya traffic.
Sebelum memulai
Persiapan lingkungan
Alat
Langkah 1: Unduh file backup
Buka daftar instans RDS, pilih wilayah, lalu klik ID instans target.
Di panel navigasi sebelah kiri, klik Backup and Restoration.
Di tab Base Backups > Data backup, temukan backup fisik target dan klik Download instance backup di kolom Actions.
Jika tidak tersedia file backup fisik, Anda dapat membuat backup manual. Untuk informasi lebih lanjut, lihat Lakukan backup manual.
Jika Anda dialihkan ke halaman Advanced Download, instans RDS Anda adalah instans cloud disk. Untuk memulihkan data, lihat Pulihkan data dari file backup snapshot instans ApsaraDB RDS for MySQL ke database yang dikelola sendiri.
Di kotak dialog Download instance backup, salin URL internal atau URL publik sesuai kebutuhan.
PentingJika Anda menggunakan URL internal, Anda hanya dapat mengunduh file backup dari server di wilayah dan VPC yang sama. Anda tidak dapat mengunduh file dari server di wilayah berbeda atau di jaringan klasik.
Jika Anda menggunakan URL publik untuk mengunduh file cadangan, Anda akan dikenai biaya atas lalu lintas internet yang melebihi kuota gratis. Untuk informasi selengkapnya, lihat Detail Penagihan.
URL unduhan backup berlaku selama satu jam. Jika kedaluwarsa, refresh halaman untuk mendapatkan URL terbaru.
Jangan mengubah atau menghapus isi file backup. Jika tidak, file tersebut mungkin rusak dan tidak dapat dipulihkan. Jika Anda perlu melakukan modifikasi, pulihkan terlebih dahulu data ke database yang dikelola sendiri.
Login ke server Linux yang menjalankan database MySQL yang dikelola sendiri Anda dan jalankan perintah berikut untuk mengunduh backup fisik.
wget -c 'https://****.bak.rds.aliyuncs.com/****_xb.qp?****' -O test_xb.qpCatatanGanti
https://****.bak.rds.aliyuncs.com/****_xb.qp?****dalam perintah di atas dengan alamat unduhan backup aktual. Setelah Anda mengunduh file backup, simpan segera untuk mencegah kebocoran data.Dalam contoh ini,
test_xb.qpdigunakan sebagai nama file. Anda dapat menentukan nama file kustom, tetapi ekstensi file harus sesuai dengan ekstensi di URL unduhan.Saat ini, URL unduhan untuk backup RDS for MySQL menggunakan salah satu dari dua format ekstensi file:
_xb.qpatau_qp.xb. Anda dapat memeriksa tautan unduhan untuk melihat format mana yang digunakan oleh file backup Anda.Format backup fisik RDS for MySQL 5.5 adalah
tar.gz.
FAQ Unduhan
Langkah 2: Ekstrak file backup
Pilih perintah untuk mengekstrak paket backup berdasarkan ekstensi nama file-nya.
Lihat bagian Prasyarat untuk menginstal Percona XtraBackup dan qpress, lalu jalankan perintah berikut.
FAQ Dekompresi
Langkah 3: Pulihkan data
Sebelum memulihkan database, hentikan layanan database yang dikelola sendiri Anda.
Anda dapat menggunakan perintah ps -ef | grep '[m]ysql' untuk memeriksa proses mysql dan menggunakan perintah sudo kill -9 <PID> untuk menghentikan proses tersebut.
MySQL 8.0
Persiapkan pemulihan.
/u01/xtrabackup80/bin/xtrabackup --defaults-file=/var/mysql_bkdata/backup-my.cnf --prepare --target-dir=/var/mysql_bkdata/Parameter:
Parameter
Deskripsi
--defaults-file
Menetapkan opsi default MySQL dari file konfigurasi.
File backup RDS MySQL berisi file konfigurasi bernama
backup-my.cnf. File ini berada di direktori ekstraksi backup di/var/mysql_bkdata/.--prepare
Perintah prepare untuk tool XtraBackup.
--target-dir
Direktori ekstraksi backup
/var/mysql_bkdata/.Ubah direktori data (datadir) database yang dikelola sendiri Anda.
Edit file konfigurasi database.
sudo vim /etc/my.cnfUntuk menemukan path file konfigurasi database, lihat Prasyarat.
Tekan tombol
iuntuk memasuki mode edit, dan atur parameter datadir menjadi/var/mysql_newdata.datadir = /var/mysql_newdatamysql_newdataadalah direktori data baru untuk database yang dikelola sendiri, yang telah Anda buat di bagian Prasyarat.Berikan izin pada direktori data baru.
chown -R mysql:mysql /var/mysql_newdataTekan tombol
Escuntuk keluar dari mode edit, dan masukkan:wq!untuk menyimpan dan keluar.
Pulihkan data.
sudo xtrabackup --defaults-file=/etc/my.cnf --copy-back --target-dir=/var/mysql_bkdata/Parameter:
Parameter
Deskripsi
--defaults-file
Mendapatkan path target untuk pemulihan data dari pengaturan direktori data (datadir) di file
my.cnfdatabase yang dikelola sendiri.--copy-back
Perintah restore untuk tool XtraBackup.
--target-dir
Tool XtraBackup memulihkan data dari direktori ekstraksi backup,
/var/mysql_bkdata/, ke direktori data database yang dikelola sendiri.
MySQL 5.7
Persiapkan pemulihan.
innobackupex --defaults-file=/var/mysql_bkdata/backup-my.cnf --apply-log /var/mysql_bkdata/Parameter:
Parameter
Deskripsi
--defaults-file
Menetapkan opsi default MySQL dari file konfigurasi.
File backup RDS MySQL berisi file konfigurasi bernama
backup-my.cnfyang berada di direktori ekstraksi backup:/var/mysql_bkdata/.--apply-log
Perintah prepare untuk tool XtraBackup.
Perintah ini diikuti oleh direktori untuk menyimpan file backup, yaitu direktori ekstraksi backup
/var/mysql_bkdata/.Ubah file konfigurasi database yang dikelola sendiri
my.cnf.Edit file konfigurasi database.
sudo vim /etc/my.cnfUntuk menemukan path file konfigurasi database, lihat Prasyarat.
Tekan tombol
iuntuk memasuki mode edit dan ubah parameter datadir menjadi/var/mysql_newdata.datadir = /var/mysql_newdatamysql_newdataadalah direktori data baru untuk database yang dikelola sendiri, yang dibuat di bagian Persiapan.Tambahkan konten berikut ke
my.cnf.innodb_undo_tablespaces=2 innodb_undo_directory=/var/mysql_newdataPentingNilai parameter innodb_undo_tablespaces harus sesuai dengan nilai di
/var/mysql_bkdata/backup-my.cnf. Anda dapat menjalankan perintahcat /var/mysql_bkdata/backup-my.cnf | grep innodb_undo_tablespacesuntuk menanyakan nilai tersebut.Tekan tombol
Escuntuk keluar dari mode edit, dan masukkan:wq!untuk menyimpan dan keluar.
Pulihkan data.
sudo innobackupex --defaults-file=/etc/my.cnf --copy-back /var/mysql_bkdata/Parameter:
Parameter
Deskripsi
--defaults-file
Dari file
my.cnfdatabase yang dikelola sendiri, dapatkan path target untuk pemulihan data, yaitu direktori data (datadir) yang ditentukan.--copy-back
Perintah restore untuk tool XtraBackup.
Direktori yang ditentukan setelah perintah ini adalah direktori ekstraksi backup, seperti
/var/mysql_bkdata/, dari mana tool XtraBackup memulihkan data ke direktori data database yang dikelola sendiri.
MySQL 5.6
Persiapkan pemulihan.
innobackupex --defaults-file=/var/mysql_bkdata/backup-my.cnf --apply-log /var/mysql_bkdata/Parameter:
Parameter
Deskripsi
--defaults-file
Menetapkan opsi default MySQL dari file konfigurasi.
File backup RDS MySQL mencakup file konfigurasi bernama
backup-my.cnf. File ini berada di direktori ekstraksi backup,/var/mysql_bkdata/.--apply-log
Perintah prepare untuk tool XtraBackup.
Setelah perintah ini, tentukan direktori untuk menyimpan file backup: direktori ekstraksi backup
/var/mysql_bkdata/.Ubah direktori data (datadir) database yang dikelola sendiri Anda.
Edit file konfigurasi database.
sudo vim /usr/my.cnfUntuk menemukan path file konfigurasi database, lihat Prasyarat.
Tekan tombol
iuntuk memasuki mode edit dan tambahkan parameter datadir.datadir = /var/mysql_newdatamysql_newdataadalah direktori data baru untuk database yang dikelola sendiri, yang Anda buat di Persiapan.Tekan tombol
Escuntuk keluar dari mode edit, lalu masukkan:wq!untuk menyimpan dan keluar.
Pulihkan data.
sudo innobackupex --defaults-file=/usr/my.cnf --copy-back /var/mysql_bkdata/Parameter:
Parameter
Deskripsi
--defaults-file
Dalam file
my.cnfdatabase yang dikelola sendiri, dapatkan path target untuk pemulihan data dari parameter direktori data (datadir).--copy-back
Perintah restore untuk tool XtraBackup.
Perintah ini menentukan direktori yang berisi file backup, yaitu direktori ekstraksi backup
/var/mysql_bkdata/. Tool XtraBackup memulihkan data dari direktori ini ke direktori data database yang dikelola sendiri.
MySQL 5.5
Persiapkan pemulihan.
innobackupex --defaults-file=/var/mysql_bkdata/backup-my.cnf --apply-log /var/mysql_bkdata/Parameter:
Parameter
Deskripsi
--defaults-file
Menetapkan opsi default MySQL dari file konfigurasi.
File backup RDS MySQL berisi file konfigurasi bernama
backup-my.cnf. File ini berada di direktori ekstraksi backup, yaitu/var/mysql_bkdata/.--apply-log
Perintah prepare untuk tool XtraBackup.
Perintah ini diikuti oleh direktori untuk menyimpan file backup, yaitu direktori ekstraksi backup
/var/mysql_bkdata/.Ubah file konfigurasi database yang dikelola sendiri
my.cnf.Edit file konfigurasi database.
sudo vim /etc/my.cnfUntuk menemukan path file konfigurasi database, lihat Prasyarat.
Tekan tombol
iuntuk memasuki mode edit, dan tambahkan parameter datadir.datadir = /var/mysql_newdatamysql_newdataadalah direktori data baru untuk database yang dikelola sendiri, yang dibuat di bagian Persiapan.Tambahkan konten berikut ke
my.cnf.innodb_log_file_size=1048576000PentingNilai parameter innodb_log_file_size harus sama dengan nilai di
/var/mysql_bkdata/backup-my.cnf. Anda dapat menggunakan perintahcat /var/mysql_bkdata/backup-my.cnf | grep innodb_log_file_sizeuntuk menanyakan nilai tersebut.Tekan tombol
Escuntuk keluar dari mode edit, dan masukkan:wq!untuk menyimpan dan keluar.
Pulihkan data.
sudo innobackupex --defaults-file=/etc/my.cnf --copy-back /var/mysql_bkdata/Parameter:
Parameter
Deskripsi
--defaults-file
Dapatkan path target untuk pemulihan data dari pengaturan direktori data (datadir) di file
my.cnfdatabase yang dikelola sendiri Anda.--copy-back
Perintah restore untuk tool XtraBackup.
Setelah perintah ini, tentukan direktori ekstraksi backup, seperti
/var/mysql_bkdata/, dari mana tool XtraBackup memulihkan data ke direktori data database yang dikelola sendiri.
FAQ Pemulihan
Langkah 4: Mulai database
MySQL 8.0 dan 5.7
(Opsional) Di konsol RDS for MySQL, lihat parameter instans untuk memeriksa nilai lower_case_table_names. Jika nilainya
1, Anda perlu mengubah file konfigurasimy.cnfdatabase yang dikelola sendiri.Edit file konfigurasi database.
sudo vim /etc/my.cnfUntuk menemukan path file konfigurasi database, lihat Prasyarat.
Tekan
iuntuk memasuki mode edit, dan tambahkan konten berikut.lower_case_table_names=1Tekan tombol
Escuntuk keluar dari mode edit, dan masukkan:wq!untuk menyimpan dan keluar.
Berikan izin pada direktori data.
sudo chown -R mysql:mysql /var/mysql_newdataJalankan perintah berikut untuk memulai proses MySQL.
sudo mysqld --defaults-file=/etc/my.cnf --user=mysql --datadir=/var/mysql_newdata &Parameter:
Parameter
Deskripsi
--defaults-file
Path file konfigurasi untuk database yang dikelola sendiri. Topik ini menggunakan
/etc/my.cnfsebagai contoh. Anda dapat merujuk ke Persiapan untuk mengonfirmasi path file konfigurasi database.--user
User yang memulai database. Nilainya tetap mysql.
--datadir
Direktori data yang digunakan database adalah
/var/mysql_newdatadalam contoh ini. Anda dapat merujuk ke Prasyarat untuk menentukan direktori data database Anda.
MySQL 5.6
(Opsional) Di konsol ApsaraDB RDS for MySQL, lihat parameter instans untuk memeriksa nilai lower_case_table_names. Jika nilainya
1, Anda perlu mengubah file konfigurasimy.cnfdatabase yang dikelola sendiri.Edit file konfigurasi database.
sudo vim /usr/my.cnfUntuk menemukan path file konfigurasi database, lihat Prasyarat.
Tekan
iuntuk memasuki mode edit dan tambahkan konten berikut.lower_case_table_names=1Tekan tombol
Escuntuk keluar dari mode edit dan masukkan:wq!untuk menyimpan dan keluar.
Berikan izin pada direktori data.
sudo chown -R mysql:mysql /var/mysql_newdataJalankan perintah berikut untuk memulai proses MySQL.
sudo mysqld --defaults-file=/usr/my.cnf --user=mysql --datadir=/var/mysql_newdata &Parameter
Deskripsi
--defaults-file
Path file konfigurasi database yang dikelola sendiri. Topik ini menggunakan
/usr/my.cnfsebagai contoh. Lihat Prasyarat untuk mengonfirmasi path tersebut.--user
User yang memulai database. Nilainya tetap mysql.
--datadir
Direktori data yang digunakan untuk startup database. Topik ini menggunakan
/var/mysql_newdatasebagai contoh. Anda dapat merujuk ke Prasyarat untuk menentukan direktori data database.
MySQL 5.5
Berikan izin pada direktori data.
sudo chown -R mysql:mysql /var/mysql_newdataJalankan perintah berikut untuk memulai proses MySQL.
sudo mysqld --defaults-file=/etc/my.cnf --user=mysql --datadir=/var/mysql_newdata &Parameter
Deskripsi
--defaults-file
Path ke file konfigurasi database yang dikelola sendiri. Topik ini menggunakan
/etc/my.cnfsebagai contoh. Untuk mengonfirmasi path untuk database Anda, lihat Persiapan.--user
User yang memulai database. Nilainya tetap mysql.
--datadir
Direktori data digunakan untuk memulai database. Topik ini menggunakan
/var/mysql_newdatasebagai contoh. Anda dapat merujuk ke Prasyarat untuk mengonfirmasi direktori data database Anda.
FAQ Startup
Langkah 5: Hubungkan dan verifikasi
Jalankan perintah berikut untuk login ke database MySQL dan verifikasi bahwa proses berhasil dimulai.
mysql -u -pCatatanPerintah login ini digunakan untuk memverifikasi bahwa pemulihan berhasil. Jika Anda hanya perlu melihat data tabel, pastikan akun tersebut memiliki izin query.
Jika Anda lupa akun atau password Anda, tambahkan parameter
--skip-grant-tablessaat menjalankan perintah untuk memulai proses MySQL. Setelah proses dimulai, proses tersebut akan melewati pemeriksaan izin dan memungkinkan Anda login ke database tanpa akun atau password. Setelah berhasil login, Anda dapat mengatur ulang akun dan password Anda.
Jalankan perintah berikut untuk memeriksa apakah database dari instans ApsaraDB RDS for MySQL ada.
SHOW DATABASES;
FAQ Koneksi dan Verifikasi
Referensi
Untuk memulihkan semua data atau database dan tabel tertentu dari instans RDS for MySQL ke instans RDS lain, lihat Pulihkan data lengkap atau Pulihkan database dan tabel.
Untuk metode pemulihan data lainnya, lihat Ikhtisar metode pemulihan data.