Topik ini menjelaskan cara memigrasikan data dari instance MySQL yang dikelola sendiri ke instance ApsaraDB RDS untuk MySQL yang menjalankan versi MySQL yang sama dengan instance MySQL yang dikelola sendiri. Anda dapat melakukan backup penuh pada instance MySQL yang dikelola sendiri, mengunggah file backup penuh ke Bucket OSS (Object Storage Service), mengimpor file backup penuh dari Bucket OSS ke konsol manajemen ApsaraDB RDS, dan kemudian memulihkan data dari file backup penuh ke instance RDS baru.
Prasyarat
Instance MySQL yang dikelola sendiri memenuhi kondisi migrasi cloud. Untuk informasi lebih lanjut, lihat Lampiran 4: Batasan.
Bucket OSS dibuat di wilayah tempat instance RDS berada. Untuk informasi lebih lanjut tentang cara membuat bucket, lihat Buat Bucket.
CatatanBucket OSS yang Anda buat harus berada di wilayah yang sama dengan instance RDS.
Proses migrasi
Proses migrasi terdiri dari langkah-langkah berikut:
Langkah 1: Instal Percona XtraBackup
Langkah 2: Instal MySQL Backup Helper
Langkah 3: Backup Instance MySQL yang Dikelola Sendiri dan Migrasikan Data Backup ke Instance RDS
Lingkungan
Dalam topik ini, instance MySQL yang dikelola sendiri diterapkan pada Instance ECS (Elastic Compute Service). Gambar yang digunakan untuk membuat instance MySQL yang dikelola sendiri menjalankan CentOS Linux V8.3.2011. Jika gambar menjalankan distribusi Linux lainnya, Anda harus menggunakan perintah yang sesuai. Untuk informasi lebih lanjut, lihat Buat Instance di Tab Peluncuran Kustom.
Langkah 1: Instal Percona XtraBackup
Percona XtraBackup dikembangkan oleh Percona untuk membantu Anda mencadangkan database MySQL tanpa memengaruhi waktu aktif. Percona XtraBackup kompatibel dengan berbagai mesin penyimpanan. Untuk informasi lebih lanjut tentang cara menginstal Percona XtraBackup di Ubuntu, lihat Lampiran 1: Instal XtraBackup di Ubuntu.
Anda harus memilih versi Percona XtraBackup berdasarkan versi MySQL.
MySQL 5.7
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.rpmMySQL 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.rpmLangkah 2: Instal MySQL Backup Helper
Prasyarat
Bahasa pemrograman Go telah diinstal. Jika Go belum diinstal, jalankan perintah berikut di CLI untuk menginstal Go:
sudo yum install -y goUtilitas Unzip telah diinstal. Jika Unzip belum diinstal, jalankan perintah berikut di CLI untuk menginstal Unzip:
sudo yum install -y unzip
Perintah sebelumnya hanya didukung untuk CentOS. Jika Anda menggunakan Ubuntu, instal utilitas berdasarkan Lampiran 2: Instal Go dan Unzip di Sistem Operasi Ubuntu.
Prosedur
Unduh paket kode sumber MySQL Backup Helper.
wget https://github.com/aliyun/mysql-backup-helper/archive/refs/heads/master.zipCatatanAnda dapat mengunduh paket kode sumber MySQL Backup Helper dari halaman mysql-backup-helper.
Ekstrak paket kode sumber MySQL Backup Helper.
unzip master.zipPergi ke folder mysql-backup-helper-master dan kompilasi file main.go menjadi file yang dapat dieksekusi bernama backup_helper.
cd mysql-backup-helper-master go build -a -o backup_helper main.goPergi ke folder oss_stream dan kompilasi file oss_stream.go menjadi file yang dapat dieksekusi bernama oss_stream.
cd oss_stream go build -a -o oss_stream oss_stream.go
Langkah 3: Backup instance MySQL yang dikelola sendiri dan migrasikan data backup ke instance RDS
Gunakan MySQL Backup Helper untuk memeriksa apakah instance MySQL yang dikelola sendiri mendukung backup.
cd ~/mysql-backup-helper-master && ./backup_helper -host <Alamat IP host tempat instance MySQL yang dikelola sendiri berada> -port <Port yang digunakan untuk terhubung ke instance MySQL yang dikelola sendiri> -user <Nama pengguna akun root yang digunakan untuk terhubung ke instance MySQL yang dikelola sendiri> --password <Kata sandi akun root yang digunakan untuk terhubung ke instance MySQL yang dikelola sendiri>
Jika instance MySQL yang dikelola sendiri mendukung backup, lakukan backup penuh pada instance MySQL yang dikelola sendiri dan unggah file backup penuh ke Bucket OSS Anda. Jika tidak ada Bucket OSS yang dibuat, buat satu. Untuk informasi lebih lanjut, lihat Prasyarat.
Anda harus memilih perintah berdasarkan versi MySQL.
MySQL 5.7
innobackupex --backup --host=<Alamat IP host tempat instance MySQL yang dikelola sendiri berada> --port=<Port yang digunakan untuk terhubung ke instance MySQL yang dikelola sendiri> --user=<Nama pengguna akun root yang digunakan untuk terhubung ke instance MySQL yang dikelola sendiri> --password=<Kata sandi akun root yang digunakan untuk terhubung ke instance MySQL yang dikelola sendiri> --stream=xbstream --compress <Direktori sementara yang digunakan untuk menyimpan file backup penuh> | ./mysql-backup-helper-master/oss_stream/oss_stream -accessKeyId <ID AccessKey akun Alibaba Cloud Anda> -accessKeySecret <Rahasia AccessKey akun Alibaba Cloud Anda> -bucketName <Nama Bucket OSS Anda> -endpoint <Endpoint yang digunakan untuk terhubung ke Bucket OSS Anda> -objectName <Nama file backup penuh>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-********.aliyuncs.com -objectName backup_qp.xbJumlah data dalam instance MySQL yang dikelola sendiri juga memengaruhi waktu yang diperlukan untuk menyelesaikan backup penuh. Semakin besar jumlah data, semakin lama waktu yang diperlukan. Jika instance MySQL yang dikelola sendiri memiliki jumlah data yang besar, kami sarankan Anda menjalankan perintah nohup untuk melakukan backup penuh di latar belakang. Dengan cara ini, Anda dapat mencegah gangguan pada backup penuh jika terjadi logoff yang tidak terduga. Contoh perintah:
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' &MySQL 8.0
xtrabackup --backup --host=<Alamat IP host tempat instance MySQL yang dikelola sendiri berada> --port=<Port yang digunakan untuk terhubung ke instance MySQL yang dikelola sendiri> --user=<Nama pengguna akun root yang digunakan untuk terhubung ke instance MySQL yang dikelola sendiri> --password=<Kata sandi akun root yang digunakan untuk terhubung ke instance MySQL yang dikelola sendiri> --stream=xbstream --compress <Direktori sementara yang digunakan untuk menyimpan file backup penuh> | ./mysql-backup-helper-master/oss_stream/oss_stream -accessKeyId <ID AccessKey akun Alibaba Cloud Anda> -accessKeySecret <Rahasia AccessKey akun Alibaba Cloud Anda> -bucketName <Nama Bucket OSS Anda> -endpoint <Endpoint yang digunakan untuk terhubung ke Bucket OSS Anda> -objectName <Nama file backup penuh>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-****.aliyuncs.com -objectName backup_qp.xbJumlah data dalam instance MySQL yang dikelola sendiri juga memengaruhi waktu yang diperlukan untuk menyelesaikan backup penuh. Semakin besar jumlah data, semakin lama waktu yang diperlukan. Jika instance MySQL yang dikelola sendiri memiliki jumlah data yang besar, kami sarankan Anda menjalankan perintah nohup untuk melakukan backup penuh di latar belakang. Dengan cara ini, Anda dapat mencegah gangguan pada backup penuh jika terjadi logoff yang tidak terduga. Contoh perintah:
nohup sh -c 'xtrabackup --backup --host=127.0.0.1 --port=3306 --user=root --password=Aa123456@ --stream=xbstream /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' &CatatanStatus instance MySQL yang dikelola sendiri selama backup penuh memengaruhi waktu yang diperlukan untuk menyelesaikan backup penuh. Misalnya, jika banyak catatan redo log dihasilkan dari banyak operasi tulis atau transaksi besar dijalankan selama backup penuh, waktu yang diperlukan meningkat. Saat backup penuh selesai, sistem menampilkan pesan
completed OK !.Jika Bucket OSS Anda sementara tidak dapat diakses, kami sarankan Anda menyimpan file backup penuh ke komputer Anda. Saat Bucket OSS Anda berfungsi seperti biasa, Anda dapat mengunggah file backup penuh ke Bucket OSS Anda. Untuk informasi lebih lanjut, lihat Lampiran 3: Lakukan Backup Penuh, Simpan File Backup Penuh ke Komputer Anda, dan Kemudian Unggah File Backup Penuh ke Bucket OSS Anda.
Setelah Anda mengunggah file backup penuh ke Bucket OSS Anda, Anda dapat masuk ke Konsol OSS untuk memeriksa apakah pengunggahan berhasil. Jika pengunggahan gagal, Anda dapat mengulangi langkah ini.
Masuk ke Konsol ApsaraDB RDS. Di bilah navigasi atas, pilih wilayah tempat Anda ingin memulihkan data instance MySQL yang dikelola sendiri. Di panel navigasi di sebelah kiri, klik Backups.
Pada tab User Backups, klik Import Backup.
Di wizard Import Guide, baca pesan yang ditampilkan dan klik Next hingga Anda masuk ke langkah 3. Import Data.
CatatanPanduan Impor Backup membimbing Anda melalui proses migrasi. Untuk informasi lebih lanjut, lihat Lampiran 3: Lakukan Backup Penuh, Simpan File Backup Penuh ke Komputer Anda, dan Kemudian Unggah File Backup Penuh ke Bucket OSS Anda.
1. Back Up Source Database: Lakukan backup penuh pada instance MySQL yang dikelola sendiri.
2. Upload Backup Files to OSS: Unggah file backup penuh instance MySQL yang dikelola sendiri ke Bucket OSS Anda.
Di langkah Step 3: Import the data, konfigurasikan parameter berikut dan klik OK.
Parameter
Deskripsi
MySQL version
Nilai 5.7/8.0 ditampilkan secara otomatis.
CatatanAnda dapat mengimpor data dari instance yang dikelola sendiri yang menjalankan MySQL 5.7 atau MySQL 8.0.
Region
Wilayah yang Anda tentukan di Langkah 1. Anda harus menyetel parameter ini ke wilayah Bucket OSS yang menyimpan file backup penuh.
OSS Bucket
Bucket OSS yang menyimpan file backup penuh instance MySQL yang dikelola sendiri. Untuk informasi lebih lanjut tentang Bucket OSS, lihat Unggah objek.
OSS file name
File backup penuh yang disimpan sebagai objek di Bucket OSS. Anda dapat memasukkan nama file backup penuh di bidang OSS file name untuk mencari file tersebut. Pencocokan kabur dan pencocokan tepat didukung.
CatatanFile backup penuh yang disimpan sebagai objek di Bucket OSS Anda harus dalam format
_QP.XB. Sebagai alternatif, Anda dapat mengekspresikan file dalam format_QP.XBke dalam paket dalam formatTAR.GZdan kemudian menyimpan paket sebagai objek di Bucket OSS. Untuk informasi lebih lanjut, lihat Lampiran 5: Batasan.Note
Deskripsi yang membantu Anda mengidentifikasi file backup penuh.
Zone
Zona Bucket OSS yang menyimpan file backup penuh. Setelah Anda memilih zona, ApsaraDB RDS membuat snapshot di zona tersebut dalam hitungan detik. Ini sangat mengurangi waktu yang diperlukan untuk mengimpor file backup penuh ke Bucket OSS.
CatatanSetelah file backup penuh diimpor, Anda dapat memulihkan data file backup penuh ke instance RDS baru. Instance RDS baru berada di zona yang Anda pilih.
Storage Capacity
Jumlah penyimpanan yang diperlukan untuk file backup penuh. Nilai valid: 20 hingga 6000: Satuan: GB.
CatatanSecara default, jumlah penyimpanan yang diperlukan adalah 3 kali ukuran file backup penuh. Jika ukuran file dikalikan dengan 3 tidak melebihi 20 GB, parameter ini secara default menjadi 20.
CatatanJika ApsaraDB RDS tidak diizinkan untuk mengakses OSS, klik Authorize di bagian bawah langkah 3. Import Data. Di pojok kiri bawah halaman yang muncul, klik Confirm Authorization Policy.
Untuk informasi lebih lanjut, baca instruksi pada halaman ini.
Sistem membuat tugas untuk memverifikasi file cadangan penuh di tab User Backups. Tunggu hingga parameter Status dari tugas berubah dari Verifying menjadi Completed.
PentingJangka waktu yang diperlukan untuk memverifikasi file backup pengguna bervariasi berdasarkan status instance RDS saat dibackup. Misalnya, waktu yang lama diperlukan untuk memverifikasi file backup pengguna dalam skenario berikut: Sejumlah besar operasi tulis dilakukan pada instance RDS selama backup instance dan oleh karena itu sejumlah besar redo log dihasilkan, atau transaksi besar dijalankan pada instance RDS selama backup instance.
Temukan file cadangan penuh yang diperlukan dan klik Restore pada kolom Actions di sebelah kanan kolom Backup ID/Name.
Konfigurasikan parameter berikut dan klik Next: Instance Configuration.
Parameter
Deskripsi
Zone of Primary Node
Zona tempat instance RDS utama berada.
CatatanJika Anda tidak memilih zona untuk Bucket OSS yang menyimpan file backup penuh saat mengimpor file tersebut, parameter ini ditampilkan. Jika Anda memilih zona untuk Bucket OSS yang menyimpan file backup penuh saat mengimpor file tersebut, parameter ini tidak ditampilkan.
Storage Type
ESSD PL1: level performa 1 (PL1) Enterprise SSD (ESSD).
Standard SSD: SSD standar adalah perangkat penyimpanan blok elastis yang dirancang berdasarkan arsitektur penyimpanan terdistribusi Alibaba Cloud. Anda dapat menyimpan data di SSD standar untuk memisahkan komputasi dari penyimpanan.
CatatanUntuk informasi lebih lanjut, lihat Jenis Penyimpanan.
Instance Type
General-purpose (Entry-level): Instance RDS tujuan umum secara eksklusif menempati memori yang dialokasikan dan sumber daya I/O. Namun, ia berbagi inti CPU dan sumber daya penyimpanan dengan instance RDS tujuan umum lainnya yang ditempatkan pada host yang sama.
CatatanPilih jenis instance. Setiap jenis instance mendukung jumlah inti CPU tertentu, kapasitas memori, jumlah maksimum koneksi, dan IOPS maksimum. Untuk informasi lebih lanjut, lihat Jenis Instance Utama ApsaraDB RDS.
Storage Capacity
Konfigurasikan kapasitas penyimpanan untuk instance RDS Anda. Kapasitas penyimpanan disediakan untuk menyimpan file data, file sistem, file log, dan file transaksi di instance RDS. Anda dapat menyesuaikan kapasitas penyimpanan dengan ukuran langkah 5 GB.
Konfigurasikan parameter berikut dan klik Next: Confirm Order.
Parameter
Deskripsi
Network Type
Jenis jaringan instance RDS. Pilih VPC. Virtual private cloud (VPC) adalah jaringan terisolasi yang memberikan keamanan lebih tinggi dan kinerja lebih baik daripada jaringan klasik. Jika Anda memilih jenis jaringan VPC, Anda juga harus mengonfigurasi parameter VPC dan vSwitch of Primary Node.
CatatanInstance RDS dan instance ECS yang ingin Anda hubungkan harus berada di VPC yang sama. Jika tidak, instance RDS dan instance ECS tidak dapat berkomunikasi melalui jaringan internal.
Parameter Template
Template parameter yang digunakan oleh instance RDS. Anda dapat memilih template parameter sistem atau template parameter kustom. Untuk informasi lebih lanjut, lihat Gunakan template parameter.
Time Zone
Pilih zona waktu untuk instance RDS Anda.
Table Name Case Sensitivity
Menentukan apakah nama tabel di instance RDS bersifat sensitif huruf besar-kecil. Jika nama tabel di instance MySQL yang dikelola sendiri bersifat sensitif huruf besar-kecil, kami sarankan Anda memilih Case-sensitive untuk memfasilitasi migrasi data antara instance RDS dan instance MySQL yang dikelola sendiri.
Konfirmasikan konfigurasi instance RDS di bagian Parameters, konfigurasikan parameter Purchase Plan, baca dan pilih Ketentuan Layanan, lalu klik Pay Now untuk menyelesaikan pembayaran.
CatatanApsaraDB RDS memerlukan waktu 1 hingga 5 menit untuk membuat instance RDS. Tunggu hingga instance dibuat.
Apa yang Harus Dilakukan Selanjutnya
Konfigurasikan Periode Retensi File Backup Penuh
Secara default, file backup penuh disimpan selama tiga hari setelah diimpor ke ApsaraDB RDS. Anda dapat menyesuaikan periode retensi berdasarkan kebutuhan bisnis Anda.
Jika Anda tidak lagi memerlukan file backup penuh, Anda dapat menghapus file tersebut.
Masuk ke konsol ApsaraDB RDS. Di bilah navigasi atas, pilih wilayah. Di panel navigasi di sebelah kiri, klik Backups.
Temukan file backup penuh yang diperlukan dan klik Set Retention Period di kolom Expiration Time di sebelah kanan kolom Backup ID/Name.
Di kotak dialog yang muncul, pilih periode retensi dari daftar drop-down yang disediakan oleh ApsaraDB RDS. Sebagai alternatif, pilih Custom Retention Period lalu masukkan angka. Anda dapat mengklik panah ke atas atau panah ke bawah untuk menyesuaikan periode retensi.
CatatanKolom Expiration Time menampilkan waktu kedaluwarsa file backup penuh. Jika waktu kedaluwarsa melebihi tahun 2099, maka akan ditampilkan sebagai Permanent.
Klik OK.
Tambahkan Tag ke File Backup Penuh
Setelah file backup penuh diimpor ke ApsaraDB RDS, Anda dapat menambahkan tag ke file tersebut.
Masuk ke konsol ApsaraDB RDS. Di bilah navigasi atas, pilih wilayah. Di panel navigasi di sebelah kiri, klik Backups.
Temukan file backup penuh yang diperlukan dan klik +Add di kolom Tags di sebelah kanan kolom Backup ID/Name.
Di kotak dialog yang muncul, klik Create a label, tentukan bidang Key dan Value dari tag, klik OK di sebelah kanan parameter untuk membuat tag, lalu klik OK di pojok kanan bawah kotak dialog.
CatatanJika tag sudah ada, pilih tag dari daftar drop-down Select the label untuk menambahkan tag ke file backup penuh.
Jika Anda ingin mengubah tag file backup penuh, gerakkan pointer ke tag dan klik edit. Di tooltip yang muncul, ulangi Langkah 3 untuk membuat atau memilih tag.
Periksa Data Log File Backup Penuh
Jika perubahan data dilakukan di instance MySQL yang dikelola sendiri selama backup penuh, file backup penuh yang dihasilkan berisi informasi log yang mencatat perubahan data. Anda dapat menggunakan informasi log untuk memulihkan data tambahan. Untuk informasi lebih lanjut, lihat Langkah 3: Backup Instance MySQL yang Dikelola Sendiri dan Migrasikan Data Backup ke Instance RDS.
Masuk ke konsol ApsaraDB RDS. Di bilah navigasi atas, pilih wilayah. Di panel navigasi di sebelah kiri, klik Backups.
Temukan file backup penuh yang diperlukan dan klik View Details di kolom Actions di sebelah kanan kolom Backup ID/Name.
Di pesan yang muncul, periksa data log.
CatatanDaftar berikut menjelaskan informasi log:
Master_Log_File:: nama file log pertama yang menyimpan data tambahan.
Master_Log_Position:: entri log pertama yang berisi data tambahan di file log pertama.
Hapus File Backup Penuh
Jika Anda tidak lagi memerlukan file backup penuh, Anda dapat menghapus file tersebut untuk mengurangi biaya.
Masuk ke konsol ApsaraDB RDS. Di bilah navigasi atas, pilih wilayah. Di panel navigasi di sebelah kiri, klik Backups.
Temukan file backup penuh yang diperlukan dan klik Delete di kolom Actions di sebelah kanan kolom Backup ID/Name.
Di pesan yang muncul, klik OK.
Lakukan Operasi Lainnya
Filter Columns: Anda dapat mengklik ikon untuk menampilkan atau menyembunyikan kolom di tab User Backups. Secara default, semua kolom ditampilkan.
Masuk ke konsol ApsaraDB RDS. Di bilah navigasi atas, pilih wilayah. Di panel navigasi di sebelah kiri, klik Backups.
Di pojok kanan atas tab, klik ikon
. Di kotak dialog yang muncul, pilih kolom yang ingin Anda tampilkan atau sembunyikan, dan klik ikon
atau
untuk mengelola kolom. CatatanKolom di daftar di sebelah kiri disembunyikan, dan kolom di daftar di sebelah kanan ditampilkan.
Klik OK.
Export Instance List: Anda dapat mengklik ikon untuk mengekspor informasi backup sebagai file CSV.
Masuk ke konsol ApsaraDB RDS. Di bilah navigasi atas, pilih wilayah. Di panel navigasi di sebelah kiri, klik Backups.
Di pojok kanan atas tab, klik ikon
untuk mengekspor informasi backup.
Refresh: Anda dapat mengklik ikon untuk menyegarkan tab Backup Pengguna.
Masuk ke konsol ApsaraDB RDS. Di bilah navigasi atas, pilih wilayah. Di panel navigasi di sebelah kiri, klik Backups.
Klik ikon
untuk menyegarkan tab Backup Pengguna.