All Products
Search
Document Center

ApsaraDB RDS:Migrasikan data dari instans yang dikelola sendiri yang menjalankan MySQL 5.7 atau MySQL 8.0 ke instans ApsaraDB RDS for MySQL

Last Updated:Aug 22, 2026

Gunakan metode ini jika instans MySQL yang Anda kelola sendiri dapat di-offline-kan selama migrasi. Buat cadangan fisik penuh menggunakan Percona XtraBackup, alirkan ke Object Storage Service (OSS), lalu impor melalui konsol ApsaraDB RDS untuk membuat instans RDS baru.

Jika database Anda tidak dapat di-offline-kan, gunakan Data Transmission Service (DTS) untuk melakukan migrasi dengan downtime minimal.

Prasyarat

Sebelum memulai, pastikan Anda telah memiliki:

  • Instans MySQL yang dikelola sendiri yang memenuhi persyaratan migrasi. Lihat Batasan untuk daftar lengkapnya.

  • Bucket OSS di wilayah yang sama dengan instans RDS tujuan. Lihat Buat bucket jika Anda perlu membuatnya.

  • Go dan Unzip telah terinstal di Host yang menjalankan Instans MySQL yang dikelola sendiri.

Batasan

Tinjau batasan berikut sebelum melanjutkan:

Category

Constraint

MySQL version

Sumber harus menjalankan MySQL 5.7.32 atau versi sebelumnya, atau MySQL 8.0.18 atau versi sebelumnya. Sumber dan tujuan harus menjalankan versi MySQL yang sama.

Backup tool

MySQL 5.7 memerlukan Percona XtraBackup 2.4. MySQL 8.0 memerlukan Percona XtraBackup 8.0.

Backup scope

Hanya cadangan penuh. File cadangan diferensial dan log tidak didukung. Data inkremental yang dihasilkan setelah pencadangan selesai tidak termasuk.

XtraBackup options

Opsi --tables, --tables-exclude, --tables-file, --databases, dan --databases-file tidak didukung.

Backup file format

File harus dalam format _QP.XB, atau dikompresi menjadi TAR.GZ. Nama file tidak boleh mengandung karakter khusus.

OSS encryption

Atur Encryption Method ke None saat membuat bucket OSS. Bucket terenkripsi tidak didukung.

OSS region

Bucket OSS harus berada di wilayah yang sama dengan instans RDS.

OSS file size

Maksimum 16 TB saat mengunggah secara bertahap melalui CLI.

Data directory

Direktori datadir harus merupakan jalur penyimpanan default. Jalankan mysqladmin -u<username> -p<password> variables | grep datadir untuk memverifikasi.

InnoDB configuration

innodb_data_file_path harus diatur ke nilai default ibdata1.

Destination

Data hanya dapat dipulihkan ke instans RDS baru — bukan ke instans yang sudah ada. Tujuan harus berupa instans pay-as-you-go yang menjalankan MySQL 5.7 atau MySQL 8.0 pada RDS Edisi Dasar dengan SSD standar.

Storage

Instans RDS tujuan harus memiliki kapasitas penyimpanan lebih besar daripada data sumber.

Not migrated

Akun pengguna, fungsi kustom, prosedur tersimpan, dan informasi zona waktu tidak dimigrasikan. Catat hal-hal ini sebelum migrasi dan tambahkan secara manual setelahnya.

GTID replication

Jika Anda berencana mereplikasi data inkremental setelah migrasi, aktifkan replikasi berbasis GTID dan atur gtid_mode dan enforce_gtid_consistency ke ON pada instans sumber.

AliyunRDSImportRole

Setelah Anda memberi otorisasi kepada ApsaraDB RDS untuk mengakses OSS, sebuah peran RAM bernama AliyunRDSImportRole dibuat di Resource Access Management (RAM). Jangan ubah atau hapus peran ini.

Backup retention

Jangan hapus file cadangan dari OSS sebelum migrasi selesai.

Identifikasi objek yang tidak dimigrasikan

Jalankan kueri berikut pada instans sumber untuk mencantumkan prosedur tersimpan dan fungsi yang perlu Anda buat ulang setelah migrasi:

SELECT ROUTINE_SCHEMA, ROUTINE_NAME, ROUTINE_TYPE
FROM information_schema.routines
WHERE ROUTINE_SCHEMA NOT IN ('sys', 'information_schema', 'performance_schema', 'mysql');

Catat juga akun pengguna dan pengaturan zona waktu sebelum melanjutkan.

Cara kerja

  1. Instal Percona XtraBackup pada host yang menjalankan instans MySQL yang dikelola sendiri.

  2. Instal MySQL Backup Helper, yang menyediakan backup_helper (pemeriksaan kompatibilitas) dan oss_stream (unggah ke OSS).

  3. Jalankan pemeriksaan kompatibilitas, buat cadangan penuh, dan alirkan langsung ke OSS. Kemudian impor file cadangan melalui konsol ApsaraDB RDS untuk membuat instans RDS baru.

Lingkungan dalam panduan ini menggunakan instans Elastic Compute Service (ECS) yang menjalankan CentOS Linux V8.3.2011. Untuk langkah-langkah khusus Ubuntu, lihat Lampiran 1: Instal Percona XtraBackup pada Ubuntu dan Lampiran 2: Instal Go dan Unzip pada Ubuntu.

Langkah 1: Instal Percona XtraBackup

Percona XtraBackup adalah alat hot backup untuk MySQL yang mendukung pencadangan penuh tanpa mengganggu uptime. Instal versi yang sesuai dengan versi MySQL Anda.

MySQL 5.7

MySQL 5.7 — menggunakan Percona XtraBackup 2.4:

wget https://downloads.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.29/binary/redhat/8/x86_64/percona-xtrabackup-24-2.4.29-1.el8.x86_64.rpm
yum localinstall percona-xtrabackup-24-2.4.29-1.el8.x86_64.rpm

MySQL 8.0

MySQL 8.0 — menggunakan Percona XtraBackup 8.0:

wget https://downloads.percona.com/downloads/Percona-XtraBackup-8.0/Percona-XtraBackup-8.0.35-31/binary/redhat/8/x86_64/percona-xtrabackup-80-8.0.35-31.1.el8.x86_64.rpm
yum localinstall percona-xtrabackup-80-8.0.35-31.1.el8.x86_64.rpm

Untuk Ubuntu, lihat Lampiran 1.

Langkah 2: Instal MySQL Backup Helper

MySQL Backup Helper menyediakan dua alat: backup_helper memeriksa apakah instans Anda mendukung migrasi, dan oss_stream mengalirkan cadangan langsung ke OSS.

Instal dependensi (CentOS)

sudo yum install -y go
sudo yum install -y unzip

Untuk Ubuntu, lihat Lampiran 2.

Buat MySQL Backup Helper

  1. Unduh kode sumber:

    wget https://github.com/aliyun/mysql-backup-helper/archive/refs/heads/master.zip
  2. Ekstrak paket:

    unzip master.zip
  3. Buat backup_helper:

    cd mysql-backup-helper-master
    go build -a -o backup_helper main.go
  4. Buat oss_stream:

    cd oss_stream
    go build -a -o oss_stream oss_stream.go

Langkah 3: Cadangkan dan migrasikan

3.1 Periksa kompatibilitas migrasi

Jalankan backup_helper untuk memverifikasi bahwa instans sumber mendukung migrasi:

cd ~/mysql-backup-helper-master && ./backup_helper \
  -host <host-ip> \
  -port <port> \
  -user <username> \
  --password <password>

Ganti placeholder dengan nilai aktual Anda:

Placeholder

Description

Example

<host-ip>

Alamat IP host yang menjalankan instans MySQL

127.0.0.1

<port>

Port MySQL

3306

<username>

Username akun root

root

<password>

Password akun root

Aa123456@

Jika pemeriksaan berhasil, lanjutkan ke langkah berikutnya.

3.2 Cadangkan dan unggah ke OSS

Peringatan

Percona XtraBackup menulis baris perintah lengkap (termasuk kata sandi) ke file xtrabackup_info di dalam cadangan. Setelah pengunggahan selesai, pastikan file ini tidak mengekspos kredensial sensitif.

Jalankan pencadangan dan alirkan langsung ke bucket OSS Anda. Pilih perintah sesuai versi MySQL Anda.

MySQL 5.7

MySQL 5.7 — menggunakan innobackupex:

innobackupex --backup \
  --host=<host-ip> \
  --port=<port> \
  --user=<username> \
  --password=<password> \
  --stream=xbstream \
  --compress <temp-dir> | \
  ./mysql-backup-helper-master/oss_stream/oss_stream \
  -accessKeyId <AccessKey-ID> \
  -accessKeySecret <AccessKey-secret> \
  -bucketName <bucket-name> \
  -endpoint <OSS-endpoint> \
  -objectName <backup-file-name>

Contoh:

innobackupex --backup --host=127.0.0.1 --port=3306 --user=root --password=Aa123456@ \
  --stream=xbstream --compress /root/mysql/data | \
  ./mysql-backup-helper-master/oss_stream/oss_stream \
  -accessKeyId LTAI**************** \
  -accessKeySecret ****** \
  -bucketName test \
  -endpoint oss-ap-southeast-1.aliyuncs.com \
  -objectName backup_qp.xb

MySQL 8.0

MySQL 8.0 — menggunakan xtrabackup:

xtrabackup --backup \
  --host=<host-ip> \
  --port=<port> \
  --user=<username> \
  --password=<password> \
  --stream=xbstream \
  --compress <temp-dir> | \
  ./mysql-backup-helper-master/oss_stream/oss_stream \
  -accessKeyId <AccessKey-ID> \
  -accessKeySecret <AccessKey-secret> \
  -bucketName <bucket-name> \
  -endpoint <OSS-endpoint> \
  -objectName <backup-file-name>

Contoh:

xtrabackup --backup --host=127.0.0.1 --port=3306 --user=root --password=Aa123456@ \
  --stream=xbstream --compress /root/mysql/data | \
  ./mysql-backup-helper-master/oss_stream/oss_stream \
  -accessKeyId LTAI**************** \
  -accessKeySecret ******** \
  -bucketName test \
  -endpoint oss-ap-southeast-1.aliyuncs.com \
  -objectName backup_qp.xb

Ganti placeholder dengan nilai aktual Anda:

Placeholder

Description

Example

<host-ip>

Alamat IP host yang menjalankan instans MySQL

127.0.0.1

<port>

Port MySQL

3306

<username>

Username akun root

root

<password>

Password akun root

Aa123456@

<temp-dir>

Direktori sementara untuk pencadangan

/root/mysql/data

<AccessKey-ID>

ID AccessKey Alibaba Cloud Anda

LTAI5tXxx

<AccessKey-secret>

Rahasia AccessKey Alibaba Cloud Anda

xXxXxXx

<bucket-name>

Nama bucket OSS Anda

test

<OSS-endpoint>

Titik akhir bucket OSS Anda

oss-ap-southeast-1.aliyuncs.com

<backup-file-name>

Nama objek cadangan di OSS

backup_qp.xb

Untuk database besar, jalankan perintah dengan nohup agar tidak terganggu jika sesi terputus. MySQL 5.7: MySQL 8.0:
nohup sh -c 'innobackupex --backup --host=127.0.0.1 --port=3306 --user=root --password=Aa123456@ --stream=xbstream --compress /root/mysql/data | ./mysql-backup-helper-master/oss_stream/oss_stream -accessKeyId LTAI**************** -accessKeySecret ****** -bucketName test -endpoint oss-ap-southeast-1.aliyuncs.com -objectName backup_qp.xb' &
nohup sh -c 'xtrabackup --backup --host=127.0.0.1 --port=3306 --user=root --password=Aa123456@ \
  --stream=xbstream --compress /root/mysql/data | \
  ./mysql-backup-helper-master/oss_stream/oss_stream \
  -accessKeyId LTAI**************** -accessKeySecret ****** \
  -bucketName test -endpoint oss-ap-southeast-1.aliyuncs.com -objectName backup_qp.xb' &

Saat pencadangan selesai, terminal akan menampilkan completed OK !.

Login ke konsol OSS untuk memastikan file berhasil diunggah. Jika pengunggahan gagal, jalankan kembali perintah pencadangan.

Jika OSS sementara tidak tersedia, simpan cadangan ke file lokal terlebih dahulu lalu unggah nanti. Lihat Lampiran 3: Cadangkan secara lokal dan unggah ke OSS.

3.3 Impor cadangan di konsol ApsaraDB RDS

  1. Login ke konsol ApsaraDB RDS. Di bilah navigasi atas, pilih wilayah instans RDS tujuan. Di panel navigasi kiri, klik Backups.

  2. Di tab User Backups, klik Import Backup.

  3. Pada wizard Import Guide, baca instruksi dan klik Next hingga mencapai 3. Import Data.

    Langkah 1. Back Up Source Database dan 2. Upload Backup Files to OSS dalam wizard ini sesuai dengan Langkah 3.1 dan 3.2 dalam panduan ini.
  4. Pada langkah 3. Import Data, konfigurasikan parameter berikut lalu klik OK.

    Jika ApsaraDB RDS belum diberi otorisasi untuk mengakses OSS, klik Authorize di bagian bawah langkah ini. Di halaman yang muncul, klik Confirm Authorization Policy.

    Parameter

    Description

    MySQL version

    Menampilkan 5.7/8.0 secara otomatis. MySQL 5.7 dan MySQL 8.0 keduanya didukung.

    Region

    Wilayah bucket OSS yang menyimpan file cadangan. Harus sesuai dengan wilayah instans RDS tujuan.

    OSS Bucket

    Bucket OSS yang berisi file cadangan. Lihat Upload objects untuk detailnya.

    OSS file name

    Objek cadangan di bucket OSS. Mendukung pencocokan fuzzy dan eksak. File harus dalam format _QP.XB, atau dikompresi sebagai TAR.GZ.

    Note

    Deskripsi opsional untuk membantu mengidentifikasi file cadangan.

    Zone

    Zona bucket OSS. Memilih zona memungkinkan ApsaraDB RDS membuat snapshot dalam hitungan detik, sehingga mengurangi waktu impor. Instans RDS baru akan dibuat di zona ini.

    Storage Capacity

    Kapasitas penyimpanan yang diperlukan untuk file cadangan. Nilai valid: 20–6000 GB. Default-nya 3× ukuran file cadangan (minimum 20 GB).

  5. Di tab User Backups, tunggu hingga Status tugas verifikasi berubah dari Verifying menjadi Completed.

    Penting

    Waktu verifikasi bervariasi. Instans dengan aktivitas write tinggi atau transaksi besar selama pencadangan mungkin memerlukan waktu verifikasi lebih lama.

  6. Temukan file cadangan dan klik Restore di kolom Actions.

  7. Konfigurasikan parameter berikut lalu klik Next: Instance Configuration.

    Parameter

    Description

    Zone of Primary Node

    Zona untuk instans RDS utama. Hanya ditampilkan jika Anda tidak memilih zona saat mengimpor file cadangan.

    Storage Type

    ESSD PL1: Enterprise SSD tingkat kinerja 1. Standard SSD: Perangkat penyimpanan blok elastis standar. Lihat Storage types untuk detailnya.

    Instance Type

    General-purpose (Entry-level): Memori dan I/O dialokasikan eksklusif, dengan CPU dan penyimpanan bersama. Lihat Primary ApsaraDB RDS instance types untuk daftar lengkapnya.

    Storage Capacity

    Penyimpanan yang disediakan untuk file data, file sistem, file log, dan file transaksi. Dapat disesuaikan dalam penambahan 5 GB.

  8. Konfigurasikan parameter berikut lalu klik Next: Confirm Order.

    Parameter

    Description

    Network Type

    Pilih VPC. virtual private cloud (VPC) menyediakan keamanan lebih tinggi dan kinerja lebih baik. Anda juga harus mengonfigurasi VPC dan vSwitch of Primary Node. Instans RDS dan instans ECS apa pun yang ingin Anda hubungkan harus berada di VPC yang sama.

    Parameter Template

    Template parameter sistem atau kustom. Lihat Use a parameter template.

    Time Zone

    Zona waktu untuk instans RDS.

    Table Name Case Sensitivity

    Jika nama tabel di instans sumber peka huruf besar/kecil, pilih Case-sensitive untuk menjaga konsistensi.

  9. Konfirmasi konfigurasi instans di bagian Parameters, atur Purchase Plan, terima Ketentuan Layanan, lalu klik Pay Now.

    ApsaraDB RDS memerlukan waktu 1–5 menit untuk membuat instans.

Langkah selanjutnya

Konfigurasikan periode retensi cadangan

Secara default, file cadangan yang diimpor disimpan selama 3 hari. Sesuaikan periode retensi sesuai kebutuhan Anda.

  1. Login ke konsol ApsaraDB RDS. Pilih wilayah, lalu klik Backups di panel navigasi kiri.

  2. Temukan file cadangan. Di kolom Expiration Time, klik Set Retention Period.

  3. Pilih periode retensi dari daftar drop-down, atau pilih Custom Retention Period dan masukkan nilai.

  4. Klik OK.

Jika waktu kedaluwarsa melebihi tahun 2099, akan ditampilkan sebagai Permanent.

Tambahkan tag ke file cadangan

  1. Login ke konsol ApsaraDB RDS. Pilih wilayah, lalu klik Backups.

  2. Temukan file cadangan. Di kolom Tags, klik +Add.

  3. Di kotak dialog, klik Create a label, isi Key dan Value, klik OK di samping bidang untuk membuat tag, lalu klik OK di pojok kanan bawah.

    Untuk menggunakan tag yang sudah ada, pilih dari daftar drop-down Select the label.
  4. Untuk memperbarui tag, arahkan kursor ke tag tersebut lalu klik edit. Di tooltip, ulangi langkah 3.

Periksa data log untuk pemulihan inkremental

Jika terjadi perubahan data di instans sumber selama pencadangan, file cadangan berisi informasi log untuk pemulihan inkremental.

  1. Login ke konsol ApsaraDB RDS. Pilih wilayah, lalu klik Backups.

  2. Temukan file cadangan dan klik View Details di kolom Actions.

  3. Di pesan yang muncul, tinjau data log:

    • Master_Log_File: File log pertama yang berisi data inkremental.

    • Master_Log_Position: Entri log pertama dalam file tersebut yang berisi data inkremental.

Periode retensi default untuk catatan validasi cadangan adalah 7 hari. Setelah migrasi, segera replikasikan data inkremental dari instans sumber ke instans RDS tujuan.

Hapus file cadangan

Jika Anda tidak lagi memerlukan file cadangan, hapus untuk mengurangi biaya penyimpanan.

  1. Login ke konsol ApsaraDB RDS. Pilih wilayah, lalu klik Backups.

  2. Temukan file cadangan dan klik Delete di kolom Actions.

  3. Di kotak dialog konfirmasi, klik OK.

Tingkatkan instans RDS Anda

Setelah migrasi, Anda dapat melakukan operasi berikut pada instans RDS baru:

Operasi lain di tab User Backups

  • Filter kolom: Klik ikon 自定义列表项 di pojok kanan atas untuk menampilkan atau menyembunyikan kolom. Pindahkan kolom antara daftar tersembunyi (kiri) dan daftar ditampilkan (kanan) menggunakan ikon 右 dan 左. Klik OK.

  • Ekspor daftar instans: Klik ikon 导出资源列表 untuk mengekspor informasi cadangan sebagai file CSV.

  • Refresh: Klik ikon 刷新 untuk merefresh tab User Backups.

Lampiran 1: Instal Percona XtraBackup pada Ubuntu

Pilih versi yang sesuai dengan versi MySQL Anda.

MySQL 8.0

  1. Instal Percona XtraBackup:

    wget https://downloads.percona.com/downloads/Percona-XtraBackup-8.0/Percona-XtraBackup-8.0.35-31/binary/redhat/8/x86_64/percona-xtrabackup-80-8.0.35-31.1.el8.x86_64.rpm
    yum localinstall percona-xtrabackup-80-8.0.35-31.1.el8.x86_64.rpm
  2. Instal qpress:

    sudo apt-get install -y qpress
Jika muncul The following packages have unmet dependencies, jalankan apt-get -f install untuk menyelesaikan dependensi, lalu coba lagi.

Lampiran 2: Instal Go dan Unzip pada Ubuntu

Instal bahasa pemrograman Go:

sudo apt-get install -y software-properties-common
sudo add-apt-repository ppa:longsleep/golang-backports
sudo apt-get update
sudo apt-get install -y golang-go

Instal Unzip:

sudo apt-get -y install unzip

Lampiran 3: Cadangkan secara lokal dan unggah ke OSS

Gunakan pendekatan ini jika OSS sementara tidak tersedia saat Anda menjalankan pencadangan.

Langkah 1: Cadangkan ke file lokal

Pilih perintah sesuai versi MySQL Anda.

MySQL 5.7:

innobackupex --backup \
  --host=<host-ip> --port=<port> \
  --user=<username> --password=<password> \
  --stream=xbstream --compress <temp-dir> \
  > /<backup-dir>/<backup-file-name>_qp.xb

Contoh:

innobackupex --backup --host=127.0.0.1 --port=3306 --user=root --password=Aa123456@ \
  --stream=xbstream --compress /root/mysql/data > /root/backup_qp.xb

MySQL 8.0:

xtrabackup --backup \
  --host=<host-ip> --port=<port> \
  --user=<username> --password=<password> \
  --stream=xbstream --compress <temp-dir> \
  > /<backup-dir>/<backup-file-name>_qp.xb

Contoh:

xtrabackup --backup --host=127.0.0.1 --port=3306 --user=root --password=Aa123456@ \
  --stream=xbstream --compress /root/mysql/data > /root/backup_qp.xb

Langkah 2: Unggah file lokal ke OSS

Saat OSS tersedia, unggah menggunakan oss_stream:

cat /<backup-dir>/<backup-file-name>_qp.xb | \
  ./mysql-backup-helper-master/oss_stream/oss_stream \
  -accessKeyId LTAI**************** \
  -accessKeySecret ******** \
  -bucketName test \
  -endpoint oss-ap-southeast-1.aliyuncs.com \
  -objectName backup_qp.xb

Contoh:

cat /root/backup_qp.xb | \
  ./mysql-backup-helper-master/oss_stream/oss_stream \
  -accessKeyId ******** \
  -accessKeySecret LTAI**************** \
  -bucketName test \
  -endpoint oss-ap-southeast-1.aliyuncs.com \
  -objectName backup_qp.xb