All Products
Search
Document Center

ApsaraDB RDS:Pulihkan backup fisik RDS MySQL ke database yang dikelola sendiri

Last Updated:Aug 27, 2026

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.

Catatan

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

    Catatan
    • Informasi 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.

    Penting
    • Tabel 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

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:

  1. Lakukan backup fisik penuh database.

  2. Unduh file backup fisik ke perangkat lokal dan ekstrak dengan tool qpress.

  3. Gunakan Percona XtraBackup untuk memulihkan file backup yang telah diekstrak ke direktori data database yang dikelola sendiri.

  4. 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.

    Catatan

    Jika 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

  1. Perintah dalam topik ini ditujukan untuk CentOS 7.9 64-bit. Sesuaikan perintah tersebut jika Anda menggunakan distribusi Linux yang berbeda.

  2. Deploy database MySQL yang dikelola sendiri. Versi mesin utamanya harus sesuai dengan versi mesin utama instans RDS MySQL Anda. Misalnya, keduanya dapat berupa MySQL 8.0.

    Jalankan perintah berikut untuk memeriksa versi mesin utama database MySQL yang dikelola sendiri:

    mysql --version
  3. Tentukan path file konfigurasi database MySQL yang dikelola sendiri Anda.

    Topik ini menggunakan path contoh berikut:

    • Path-nya adalah /etc/my.cnf untuk MySQL 8.0 dan 5.7.

    • Path-nya adalah /usr/my.cnf untuk MySQL 5.6.

    • Untuk MySQL 5.5, buat file tersebut dengan menjalankan perintah echo "[mysqld]" | sudo tee /etc/my.cnf.

    Jalankan perintah berikut untuk menemukan path file konfigurasi database MySQL yang dikelola sendiri Anda.

    sudo find / -name my.cnf
    Catatan

    Jika perintah tersebut mengembalikan path yang berbeda, gunakan path tersebut dalam perintah selanjutnya.

  4. Buat direktori ekstraksi backup, seperti mysql_bkdata, untuk menyimpan file backup yang telah diekstrak.

    Jalankan perintah berikut untuk membuat direktori ekstraksi backup:

    sudo mkdir /var/mysql_bkdata
    sudo chown -R $USER:$USER /var/mysql_bkdata
    Catatan

    Parameter $USER:$USER menggunakan variabel lingkungan untuk mendapatkan user dan grup user saat ini. Anda tidak perlu mengubahnya.

  5. Buat direktori data, seperti mysql_newdata. Direktori ini menyimpan file backup yang dipulihkan yang digunakan database saat startup.

    Jalankan perintah berikut untuk membuat direktori data:

    sudo mkdir /var/mysql_newdata
    sudo chown -R $USER:$USER /var/mysql_newdata
    Catatan

    Parameter $USER:$USER dalam perintah di atas menggunakan variabel lingkungan untuk mendapatkan user dan grup user saat ini. Anda tidak perlu mengubahnya.

Alat

  1. Instal tool backup dan pemulihan Percona XtraBackup.

    MySQL 8.0

    Untuk instans MySQL 8.0, unduh versi yang tepat dari tool XtraBackup untuk lingkungan host Anda, unggah ke server Anda, lalu instal. Jika Anda perlu mengunggah file ke instans ECS, lihat Unggah atau unduh file.

    Penting

    RDS MySQL 8.0 memperkenalkan tipe redo log baru, yang dapat menyebabkan masalah kompatibilitas dengan versi open source Percona XtraBackup. Oleh karena itu, Anda harus mengunduh tool XtraBackup yang disediakan RDS dari tabel di bawah ini.

    Lingkungan host

    Unduh

    Perintah instalasi

    Catatan

    Contoh ini mengasumsikan tool berada di direktori /Xtrabackup8.0. Sesuaikan perintah sesuai lokasi unduhan aktual Anda.

    Linux 6 (x86_64)

    Unduh tool RDS XtraBackup 8.0

    sudo yum localinstall -y /XtraBackup8.0/t-rds-xtrabackup-80-8.0.31-20230817110455.alios6.x86_64

    Linux 7 (x86_64)

    Unduh tool RDS XtraBackup 8.0

    sudo yum localinstall -y /XtraBackup8.0/t-rds-xtrabackup-80-8.0.31-20230817110455.alios7.x86_64.rpm

    Linux 7 (ARM AArch64)

    Unduh tool RDS XtraBackup 8.0

    sudo yum localinstall -y /XtraBackup8.0/t-rds-xtrabackup-80-8.0.31-20230817110455.alios7.aarch64.rpm

    Linux 8 (ARM AArch64)

    Unduh tool RDS XtraBackup 8.0

    sudo yum localinstall -y /XtraBackup8.0/t-rds-xtrabackup-80-8.0.31-20230817110455.al8.aarch64.rpm
    Catatan

    Setelah instalasi, file executable Percona XtraBackup berada di direktori /u01/xtrabackup80/bin. Secara default, path direktori ini tidak ditambahkan ke variabel lingkungan PATH di Linux.

    Untuk menjalankan perintah Percona XtraBackup dari direktori mana pun, Anda dapat menggunakan salah satu metode berikut:

    • Tentukan path lengkap saat menjalankan perintah Percona XtraBackup. Topik ini menggunakan metode ini dalam beberapa perintah. Contohnya: /u01/xtrabackup80/bin/xtrabackup --xxxxxx.

    • Tambahkan secara manual direktori /u01/xtrabackup80/bin ke variabel lingkungan PATH.

    MySQL 5.7, 5.6, atau 5.5

    Untuk instans MySQL 5.7, 5.6, atau 5.5, unduh dan instal Percona XtraBackup 2.4.

    Topik ini menggunakan Percona XtraBackup 2.4.28 sebagai contoh. Perintah instalasinya adalah sebagai berikut:

    wget https://downloads.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.28/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.28-1.el7.x86_64.rpm
    sudo yum localinstall -y percona-xtrabackup-24-2.4.28-1.el7.x86_64.rpm
  2. Instal tool dekompresi qpress.

    ## Unduh paket tar qpress.
    wget "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20230406/flxd/qpress-11-linux-x64.tar"
    
    ## Ekstrak paket tar yang diunduh.
    tar -xvf qpress-11-linux-x64.tar
    
    ## Berikan izin eksekusi ke file qpress.
    sudo chmod 775 qpress
    
    ## Salin file qpress ke /usr/bin agar dapat diakses secara global.
    sudo cp qpress /usr/bin

Langkah 1: Unduh file backup

  1. Buka daftar instans RDS, pilih wilayah, lalu klik ID instans target.

  2. Di panel navigasi sebelah kiri, klik Backup and Restoration.

  3. Di tab Base Backups > Data backup, temukan backup fisik target dan klik Download instance backup di kolom Actions.

  4. Di kotak dialog Download instance backup, salin URL internal atau URL publik sesuai kebutuhan.

    Penting
    • Jika 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.

  5. 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.qp
    Catatan
    • Ganti 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.qp digunakan 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.qp atau _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

  • T: Mengapa terjadi error saat saya mengunduh file data?

    J: Saat menggunakan perintah wget -c 'https://****.bak.rds.aliyuncs.com/****_xb.qp?****' -O test_xb.qp, sertakan alamat unduhan dalam tanda kutip tunggal (') untuk membantu program mengenali alamat dengan benar dan mencegah error.

Langkah 2: Ekstrak file backup

Pilih perintah untuk mengekstrak paket backup berdasarkan ekstensi nama file-nya.

Penting

Lihat bagian Prasyarat untuk menginstal Percona XtraBackup dan qpress, lalu jalankan perintah berikut.

Paket xbstream (ekstensi _xb.qp)

Saat menjalankan perintah ekstraksi berikut, ganti test_xb.qp dengan nama file backup Anda dan /var/mysql_bkdata/ dengan path ekstraksi backup yang telah Anda buat.

### MySQL 8.0
qpress -do  test_xb.qp | /u01/xtrabackup80/bin/xbstream -x -v -C /var/mysql_bkdata/

### MySQL 5.5/5.6/5.7
qpress -do  test_xb.qp | xbstream -x -v -C /var/mysql_bkdata/

Paket xbstream (ekstensi _qp.xb)

Saat menjalankan perintah ekstraksi berikut, ganti test_qp.xb dengan nama file backup Anda dan /var/mysql_bkdata/ dengan path ekstraksi yang telah Anda buat.

## Langkah 1: Bongkar file
cat test_qp.xb | xbstream -x -v -C /var/mysql_bkdata/

## Langkah 2: Ekstrak file
### MySQL 5.5/5.6/5.7
innobackupex --decompress --remove-original /var/mysql_bkdata/

### MySQL 8.0
/u01/xtrabackup80/bin/xtrabackup --decompress --remove-original --target-dir=/var/mysql_bkdata/

Paket tar (ekstensi .tar.gz)

Saat menjalankan perintah ekstraksi berikut, ganti test.tar.gz dengan nama file backup Anda dan /var/mysql_bkdata/ dengan path ekstraksi backup yang telah Anda buat.

tar -izxvf test.tar.gz -C /var/mysql_bkdata/

Paket xbstream (ekstensi .xb.gz)

Saat menjalankan perintah ekstraksi berikut, ganti test.xb.gz dengan nama file backup Anda dan /var/mysql_bkdata/ dengan path ekstraksi yang telah Anda buat.

### MySQL 8.0
gzip -d -c test.xb.gz | /u01/xtrabackup80/bin/xbstream -x -v -C /var/mysql_bkdata/

### MySQL 5.5/5.6/5.7
gzip -d -c test.xb.gz | xbstream -x -v -C /var/mysql_bkdata/

FAQ Dekompresi

  • T: Apa yang harus saya lakukan jika terjadi error saat mengekstrak file backup yang diunduh?

    J: Periksa item berikut untuk mengatasi masalah kesalahan:

    Pastikan file yang diunduh adalah file backup fisik.

    Pastikan file terkompresi yang disimpan memiliki akhiran nama file yang benar (akhiran harus sesuai dengan yang ada di URL, seperti xb.qp, .tar.gz, .xb.gz, atau _qp.xb).

    Gunakan perintah ekstraksi yang benar untuk format file tersebut.

    Error umum:

    • Saat menjalankan perintah ekstraksi, muncul error sh: qpress: command not found.

      Solusi: Lihat Prasyarat untuk memastikan bahwa alat qpress telah terinstal pada server database yang Anda kelola sendiri.

    • Saat mengekstrak paket xbstream dengan ekstensi _qp.xb, muncul error innobackupex not found.

      Solusi: Lihat Prasyarat untuk memastikan Percona XtraBackup telah diinstal di server database yang dikelola sendiri Anda.

    • Muncul error can't change to dir to xx( errorcode:no such file or directory) saat menggunakan perintah cat untuk membongkar file paket xbstream yang memiliki akhiran _qp.xb.

      Solusi: Error ini menunjukkan nama file atau path yang salah. Verifikasi nama file dan path dalam perintah Anda.

Langkah 3: Pulihkan data

Penting

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

  1. 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/.

  2. Ubah direktori data (datadir) database yang dikelola sendiri Anda.

    1. Edit file konfigurasi database.

      sudo vim /etc/my.cnf

      Untuk menemukan path file konfigurasi database, lihat Prasyarat.

    2. Tekan tombol i untuk memasuki mode edit, dan atur parameter datadir menjadi /var/mysql_newdata.

      datadir = /var/mysql_newdata

      mysql_newdata adalah direktori data baru untuk database yang dikelola sendiri, yang telah Anda buat di bagian Prasyarat.

    3. Berikan izin pada direktori data baru.

      chown -R mysql:mysql /var/mysql_newdata 
    4. Tekan tombol Esc untuk keluar dari mode edit, dan masukkan :wq! untuk menyimpan dan keluar.

  3. 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.cnf database 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

  1. 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 yang 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/.

  2. Ubah file konfigurasi database yang dikelola sendiri my.cnf.

    1. Edit file konfigurasi database.

      sudo vim /etc/my.cnf

      Untuk menemukan path file konfigurasi database, lihat Prasyarat.

    2. Tekan tombol i untuk memasuki mode edit dan ubah parameter datadir menjadi /var/mysql_newdata.

      datadir = /var/mysql_newdata

      mysql_newdata adalah direktori data baru untuk database yang dikelola sendiri, yang dibuat di bagian Persiapan.

    3. Tambahkan konten berikut ke my.cnf.

      innodb_undo_tablespaces=2
      innodb_undo_directory=/var/mysql_newdata
      Penting

      Nilai parameter innodb_undo_tablespaces harus sesuai dengan nilai di /var/mysql_bkdata/backup-my.cnf. Anda dapat menjalankan perintah cat /var/mysql_bkdata/backup-my.cnf | grep innodb_undo_tablespaces untuk menanyakan nilai tersebut.

    4. Tekan tombol Esc untuk keluar dari mode edit, dan masukkan :wq! untuk menyimpan dan keluar.

  3. Pulihkan data.

    sudo innobackupex --defaults-file=/etc/my.cnf --copy-back /var/mysql_bkdata/

    Parameter:

    Parameter

    Deskripsi

    --defaults-file

    Dari file my.cnf database 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

  1. 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/.

  2. Ubah direktori data (datadir) database yang dikelola sendiri Anda.

    1. Edit file konfigurasi database.

      sudo vim /usr/my.cnf

      Untuk menemukan path file konfigurasi database, lihat Prasyarat.

    2. Tekan tombol i untuk memasuki mode edit dan tambahkan parameter datadir.

      datadir = /var/mysql_newdata

      mysql_newdata adalah direktori data baru untuk database yang dikelola sendiri, yang Anda buat di Persiapan.

    3. Tekan tombol Esc untuk keluar dari mode edit, lalu masukkan :wq! untuk menyimpan dan keluar.

  3. Pulihkan data.

    sudo innobackupex --defaults-file=/usr/my.cnf --copy-back /var/mysql_bkdata/

    Parameter:

    Parameter

    Deskripsi

    --defaults-file

    Dalam file my.cnf database 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

  1. 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/.

  2. Ubah file konfigurasi database yang dikelola sendiri my.cnf.

    1. Edit file konfigurasi database.

      sudo vim /etc/my.cnf

      Untuk menemukan path file konfigurasi database, lihat Prasyarat.

    2. Tekan tombol i untuk memasuki mode edit, dan tambahkan parameter datadir.

      datadir = /var/mysql_newdata

      mysql_newdata adalah direktori data baru untuk database yang dikelola sendiri, yang dibuat di bagian Persiapan.

    3. Tambahkan konten berikut ke my.cnf.

      innodb_log_file_size=1048576000
      Penting

      Nilai parameter innodb_log_file_size harus sama dengan nilai di /var/mysql_bkdata/backup-my.cnf. Anda dapat menggunakan perintah cat /var/mysql_bkdata/backup-my.cnf | grep innodb_log_file_size untuk menanyakan nilai tersebut.

    4. Tekan tombol Esc untuk keluar dari mode edit, dan masukkan :wq! untuk menyimpan dan keluar.

  3. 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.cnf database 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

  • T: Sistem mengembalikan error xtrabackup: Unknown error 3613. Bagaimana cara mengatasinya?

    J: Perbarui Percona XtraBackup ke versi terbaru dan coba lagi.

  • T: Sistem mengembalikan error Original data directory /var/mysql_newdata is not empty!. Apa yang harus saya lakukan?

    J: Gunakan perintah sudo rm -rf /var/mysql_newdata/* untuk mengosongkan file di folder tersebut, lalu coba lagi operasi pemulihan.

  • T: Sistem mengembalikan error InnodDB: Encryption information in datafile: ./xxx.ibd can't be decrypted, please check if a keyring plugin is loaded and initialized successfully.. Apa yang harus saya lakukan?

    Periksa apakah TDE diaktifkan untuk instans Anda:

    • Jika TDE diaktifkan, periksa adanya tabel yang dienkripsi. Seperti yang dijelaskan di Prasyarat, dekripsi tabel yang dienkripsi dengan mengikuti instruksi di Konfigurasi Transparent Data Encryption (TDE), lalu ikuti instruksi dalam topik ini untuk memulihkan data.

    • Jika TDE tidak diaktifkan, pastikan Anda telah menginstal versi Percona XtraBackup yang benar seperti yang dijelaskan di Prasyarat.

  • T: File backup yang diunduh berisi data yang dienkripsi TDE, yang menyebabkan pemulihan data gagal. Apa solusinya?

    J: Anda tidak dapat memulihkan data dari file backup terenkripsi yang diunduh. Tabel yang dienkripsi di instans RDS menyebabkan error pemulihan. Seperti yang dijelaskan di Prasyarat, dekripsi tabel dengan mengikuti instruksi di Konfigurasi Transparent Data Encryption (TDE), buat backup baru, lalu pulihkan data lagi.

  • T: Bagaimana cara mengatasi error innobackupex: File 'undo001' not found (Errcode: 2 - No Such file or directory) yang terjadi saat pemulihan?

    J: File undo adalah file sistem yang berbeda-beda di tiap versi database. Periksa apakah database yang dikelola sendiri Anda memiliki versi yang sama dengan database ApsaraDB RDS for MySQL.

Langkah 4: Mulai database

MySQL 8.0 dan 5.7

  1. (Opsional) Di konsol RDS for MySQL, lihat parameter instans untuk memeriksa nilai lower_case_table_names. Jika nilainya 1, Anda perlu mengubah file konfigurasi my.cnf database yang dikelola sendiri.

    1. Edit file konfigurasi database.

      sudo vim /etc/my.cnf

      Untuk menemukan path file konfigurasi database, lihat Prasyarat.

    2. Tekan i untuk memasuki mode edit, dan tambahkan konten berikut.

      lower_case_table_names=1
    3. Tekan tombol Esc untuk keluar dari mode edit, dan masukkan :wq! untuk menyimpan dan keluar.

  2. Berikan izin pada direktori data.

    sudo chown -R mysql:mysql /var/mysql_newdata
  3. Jalankan 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.cnf sebagai 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_newdata dalam contoh ini. Anda dapat merujuk ke Prasyarat untuk menentukan direktori data database Anda.

MySQL 5.6

  1. (Opsional) Di konsol ApsaraDB RDS for MySQL, lihat parameter instans untuk memeriksa nilai lower_case_table_names. Jika nilainya 1, Anda perlu mengubah file konfigurasi my.cnf database yang dikelola sendiri.

    1. Edit file konfigurasi database.

      sudo vim /usr/my.cnf

      Untuk menemukan path file konfigurasi database, lihat Prasyarat.

    2. Tekan i untuk memasuki mode edit dan tambahkan konten berikut.

      lower_case_table_names=1
    3. Tekan tombol Esc untuk keluar dari mode edit dan masukkan :wq! untuk menyimpan dan keluar.

  2. Berikan izin pada direktori data.

    sudo chown -R mysql:mysql /var/mysql_newdata
  3. Jalankan 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.cnf sebagai 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_newdata sebagai contoh. Anda dapat merujuk ke Prasyarat untuk menentukan direktori data database.

MySQL 5.5

  1. Berikan izin pada direktori data.

    sudo chown -R mysql:mysql /var/mysql_newdata
  2. Jalankan 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.cnf sebagai 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_newdata sebagai contoh. Anda dapat merujuk ke Prasyarat untuk mengonfirmasi direktori data database Anda.

FAQ Startup

  • T: Apa penyebab error mysqld: [ERROR] Failed to open required defaults file: /etc/my.cnf pada sistem operasi Ubuntu, dan bagaimana cara mengatasinya?

    J: Error ini disebabkan oleh program keamanan Ubuntu AppArmor. Gunakan perintah apt install -y apparmor-utils dan aa-complain /usr/sbin/mysqld untuk mengubah pengaturan AppArmor.

  • T: Setelah pemulihan selesai, apa yang harus dilakukan jika database yang dikelola sendiri gagal dimulai atau Anda mengalami error 1105 Unknown error saat penggunaan?

    J: Jalankan pernyataan SQL berikut untuk mengubah mesin penyimpanan database:

    USE mysql;
    ALTER TABLE proc engine=myisam;
    ALTER TABLE event engine=myisam;
    ALTER TABLE func engine=myisam;
    Catatan

    Jika Anda menerima error ERROR 1067 (42000): Invalid default value for 'modified', pertama-tama eksekusi pernyataan SET SQL_MODE='ALLOW_INVALID_DATES';.

  • T: Apa password root setelah database dipulihkan?

    J: Metode untuk mendapatkan password root bervariasi berdasarkan versi:

    • Jika instans Anda menjalankan MySQL 5.7 atau 8.0, password root sama dengan password root database yang dikelola sendiri Anda.

    • Jika instans Anda menjalankan MySQL 5.5 atau 5.6, Anda harus mengatur ulang password root sebelum dapat menggunakan database. Untuk informasi lebih lanjut, lihat dokumentasi resmi.

  • T: Error InnodDB: Assertion failure in thread 140xxx in file page0zip.ic xxx terjadi saat startup. Bagaimana cara mengatasinya?

    J: Error ini mungkin disebabkan oleh ruang disk yang tidak mencukupi. Coba perluas disk server database yang dikelola sendiri Anda lalu coba lagi.

  • T: Bagaimana cara mengatasi kesalahan berikut yang terjadi saat startup: [ERROR] Failed to open the relay log xxx, [ERROR] Slave: Failed to initialize the master info xxx, atau [ERROR] Failed to create or recover replication info repositories.?

    J: Error ini terjadi karena instans RDS dikonfigurasi untuk high availability (HA), tetapi database lokal yang dikelola sendiri tidak menggunakan node primary dan secondary. Anda dapat mengabaikan error ini dengan aman karena tidak memengaruhi startup.

  • T: Bagaimana cara mengatasi error [ERROR] Data Dictionary initialization failed yang terjadi saat startup?

    J: Error ini mungkin disebabkan oleh ketidakcocokan sistem operasi. Sistem operasi dasar ApsaraDB RDS adalah Linux. Kami menyarankan Anda menggunakan sistem operasi berbasis Linux untuk memulihkan database, karena penggunaan sistem operasi yang berbeda dapat menyebabkan masalah kompatibilitas versi.

  • T: Perintah sudo systemctl start mysqld gagal memulai layanan MySQL lokal. Apa yang harus saya lakukan?

    J: Ini mungkin disebabkan oleh SELinux yang berada dalam mode Enforcing di Linux. Anda dapat menjalankan perintah getenforce untuk memeriksa status saat ini SELinux.

    • Jika ini adalah lingkungan pengembangan atau pengujian, kami menyarankan Anda mengubah mode SELinux ke mode Permissive. Kemudian, coba mulai MySQL dengan menggunakan sudo systemctl start mysqld.

    • Untuk lingkungan produksi, kami menyarankan Anda memeriksa log SELinux untuk menentukan alasan spesifik kegagalan startup dan kemudian memperbaiki kebijakan SELinux berdasarkan informasi tersebut.

Langkah 5: Hubungkan dan verifikasi

  1. Jalankan perintah berikut untuk login ke database MySQL dan verifikasi bahwa proses berhasil dimulai.

    mysql -u -p
    Catatan
    • Perintah 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-tables saat 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.

  2. Jalankan perintah berikut untuk memeriksa apakah database dari instans ApsaraDB RDS for MySQL ada.

    SHOW DATABASES;

FAQ Koneksi dan Verifikasi

  • T: Setelah pemulihan, mengapa nilai waktu dalam data saya tidak konsisten dengan waktu lokal, dan bagaimana cara memperbaikinya?

    J: Jika zona waktu database yang dikelola sendiri berbeda dengan zona waktu instans RDS, Anda harus mengubah parameter time_zone database yang dikelola sendiri agar sesuai dengan instans RDS. Jika parameter time_zone instans RDS diatur ke system, periksa wilayah tempat instans RDS berada dan atur parameter time_zone database yang dikelola sendiri ke zona waktu wilayah tersebut.

  • T: Saya menerima error Access denied for user 'XXX' saat menghubungkan ke database yang dikelola sendiri. Bagaimana cara mengatasinya?

    J: Verifikasi bahwa Anda menggunakan akun dan password yang benar dari instans ApsaraDB RDS for MySQL asli.

  • T: Saya lupa password saat menghubungkan ke database yang dikelola sendiri. Apa yang harus saya lakukan?

    J: Jika Anda lupa akun atau password, mulai proses MySQL dengan parameter --skip-grant-tables. Tindakan ini melewati pemeriksaan izin saat startup, memungkinkan Anda login ke database tanpa akun atau password. Harap dicatat, penggunaan parameter --skip-grant-tables merupakan risiko keamanan. Anda harus segera mengubah akun dan password setelah login.

  • T: Setelah menghubungkan ke database yang dikelola sendiri, saya hanya melihat database sistem atau sebagian database. Bagaimana cara menanganinya?

    J: Mulai ulang database, lalu hubungkan menggunakan akun root atau akun berhak istimewa tinggi dari instans RDS asli untuk melihat database.

Referensi

FAQ

Bisakah saya memulihkan backup RDS for MySQL yang diunduh ke instans RDS for MySQL lain?

Tidak, operasi ini tidak didukung secara langsung. Untuk memulihkan data ke instans lain, Anda dapat menggunakan salah satu metode berikut:

Bagaimana cara memulihkan data untuk rentang waktu tertentu ke database yang dikelola sendiri?

Anda dapat mengunduh backup log untuk rentang waktu yang ditentukan dari konsol dan memulihkannya ke database yang dikelola sendiri Anda. Untuk informasi lebih lanjut, lihat Unduh backup dan Pemulihan titik-waktu.

Bagaimana cara mencadangkan data dari instans RDS for MySQL ke database yang dikelola sendiri?

Bagaimana cara memulihkan atau memigrasikan data dari instans RDS Edisi Dasar?

Instans RDS Edisi Dasar hanya mendukung backup snapshot. Anda dapat menggunakan salah satu metode berikut:

Bisakah saya memulihkan backup fisik dari beberapa instans RDS for MySQL ke satu database yang dikelola sendiri?

Tidak, fitur ini tidak didukung. Anda harus memulihkan setiap cadangan fisik ke database yang dikelola sendiri secara terpisah. Setelah data dipulihkan, Anda dapat menggunakan DTS atau mysqldump untuk mengkonsolidasikan data. Untuk informasi selengkapnya, lihat Menggunakan DTS untuk memigrasikan database MySQL yang dikelola sendiri ke instans RDS for MySQL atau Memigrasikan data MySQL dengan menggunakan mysqldump.

Jika saya membuat akun istimewa di instans sumber, apakah hak istimewanya tetap setelah saya memulihkan backup fisik ke database yang dikelola sendiri?

Ya. Backup mempertahankan izin akun, dan operasi pemulihan tidak mengubahnya.