Gunakan Data Transmission Service (DTS) untuk memigrasikan instans Tair (Redis OSS-compatible) dari satu Akun Alibaba Cloud ke akun lainnya, dengan dukungan migrasi penuh dan inkremental agar layanan Anda tetap berjalan selama proses migrasi.
Prasyarat
Sebelum memulai, pastikan bahwa:
-
Instans Tair (Redis OSS-compatible) tujuan sudah ada. Ruang penyimpanan yang tersedia pada instans tujuan harus lebih besar daripada ruang penyimpanan yang digunakan pada instans sumber.
-
Instans sumber dan tujuan menjalankan versi Redis yang kompatibel. Migrasi dari versi lebih rendah ke versi lebih tinggi didukung, sedangkan migrasi dari versi lebih tinggi ke versi lebih rendah dapat menyebabkan masalah kompatibilitas.
-
Untuk kombinasi versi yang didukung, lihat Ikhtisar skenario migrasi data.
Cara kerja
Migrasi lintas akun memerlukan tindakan dari dua Akun Alibaba Cloud:
-
Pemilik akun sumber: Masuk ke Konsol Manajemen Alibaba Cloud, buat peran RAM, dan berikan izin kepada akun tujuan untuk mengakses instans Redis sumber. Lihat Konfigurasikan otorisasi RAM untuk tugas lintas akun.
-
Pemilik akun tujuan: Masuk ke Konsol Manajemen Alibaba Cloud dan konfigurasikan tugas migrasi DTS (diuraikan dalam bagian Prosedur di bawah).
Penagihan
| Jenis migrasi | Biaya konfigurasi instans | Biaya lalu lintas internet |
|---|---|---|
| Migrasi data penuh | Gratis | Dikenakan biaya jika Access Method tujuan adalah Public IP Address. Lihat Ikhtisar penagihan. |
| Migrasi data inkremental | Dikenakan biaya. Lihat Ikhtisar penagihan. |
Jenis migrasi
| Jenis migrasi | Deskripsi |
|---|---|
| Migrasi penuh | DTS menyalin semua data yang ada dari sumber ke tujuan. |
| Migrasi inkremental | Setelah migrasi penuh selesai, DTS terus mereplikasi operasi tulis baru dari sumber ke tujuan. Gunakan ini untuk melakukan migrasi tanpa mengganggu aplikasi Anda. |
Jalankan keduanya bersamaan jika memungkinkan. Jika akun DTS tidak memiliki izin SYNC/PSYNC pada sumber, jalankan hanya migrasi penuh.
Catatan penggunaan
Tinjau batasan berikut sebelum memulai migrasi.
Batasan database sumber
-
Kebutuhan bandwidth: Server yang menghosting database sumber harus memiliki bandwidth keluar yang mencukupi. Jika tidak, kecepatan migrasi data akan terpengaruh.
-
Versi 2.8 Tair (Redis OSS-compatible) tidak didukung sebagai sumber.
-
Jika hanya menjalankan migrasi penuh (tanpa inkremental), hentikan operasi tulis ke sumber selama migrasi untuk mencegah ketidakkonsistenan data.
-
Saat memigrasikan dari sumber Edisi Dasar ke tujuan dengan arsitektur kluster, gunakan hanya operasi single-key. Perintah multi-key yang mencakup beberapa slot akan mengembalikan:
CROSSSLOT Keys in request don't hash to the same slot -
DTS menyisipkan kunci dengan awalan
DTS_REDIS_TIMESTAMP_HEARTBEATke sumber untuk melacak timestamp pembaruan. Jika sumber menggunakan arsitektur kluster, kunci ini disisipkan ke setiap shard. Kunci ini difilter selama migrasi dan kedaluwarsa setelah tugas selesai. -
Jika sumber adalah instans hanya baca atau akun DTS tidak memiliki izin SETEX, latensi yang dilaporkan mungkin tidak akurat.
-
Untuk meningkatkan stabilitas migrasi, tingkatkan parameter
repl-backlog-sizedalamredis.conf. -
Jika sumber adalah instans Tair Edisi Perusahaan dengan Storage Medium diatur ke Persistent Memory, atur parameter
appendonlykeyes. Untuk detailnya, lihat Prosedur. -
Jika sumber adalah instans anak dari Global Distributed Cache, DTS hanya memigrasikan instans anak tersebut. Instans anak lainnya tidak didukung.
Batasan lainnya
-
Baik sumber maupun tujuan tidak mendukung instans penyimpanan kapasitas Tair (Redis OSS-compatible) Edisi Perusahaan.
-
Jika enkripsi data transparan (TDE) diaktifkan pada salah satu instans, DTS tidak dapat melakukan migrasi.
-
Jika tujuan kehabisan memori, kebijakan penggantian default (
maxmemory-policy) adalahvolatile-lru, yang dapat menyebabkan ketidakkonsistenan data. Untuk mencegah kehilangan data diam-diam, atur kebijakan penggantian tujuan kenoeviction. Dengannoeviction, operasi tulis gagal saat memori penuh dan tugas berhenti, tetapi tidak ada data yang dihapus diam-diam. Untuk detail kebijakan, lihat Pengantar kebijakan penggantian data Redis. -
Jika instans tujuan menggunakan arsitektur kluster dan salah satu shard mencapai batas memorinya, atau jika instans kehabisan ruang penyimpanan, tugas DTS gagal dengan error out-of-memory (OOM).
-
Operasi penskalaan (menambah atau menghapus shard), perubahan spesifikasi, atau modifikasi titik akhir atau port pada salah satu instans selama migrasi akan mengganggu tugas. Jika hal ini terjadi, hapus semua data yang telah disinkronkan dari tujuan dan konfigurasi ulang tugas tersebut.
-
Setelah event failover (termasuk alih bencana master/standby) pada tujuan, data mungkin hanya ditulis ke memori tanpa replikasi ke secondary, menyebabkan kehilangan data.
-
Jika instans migrasi mencakup tugas penuh dan inkremental, me-restart instans tersebut dapat menyebabkan DTS menjalankan ulang kedua tugas tersebut.
-
Me-restart instans migrasi dapat menyebabkan perintah non-idempoten (seperti
INCRBYatauLPUSH) dieksekusi berulang kali, menyebabkan ketidakkonsistenan data. -
Untuk skrip Lua yang dipanggil melalui
EVALatauEVALSHA, DTS tidak dapat memastikan eksekusi berhasil selama migrasi inkremental. -
Untuk struktur data List, DTS tidak membersihkan data tujuan yang sudah ada saat menggunakan
psyncatausync, yang dapat menghasilkan entri duplikat. -
Jika kunci di sumber memiliki kebijakan kedaluwarsa, jumlah kunci yang terlihat di tujuan (misalnya, melalui
INFO) mungkin lebih rendah daripada sumber. Kunci tanpa kebijakan kedaluwarsa atau kunci yang belum kedaluwarsa konsisten antara sumber dan tujuan. -
Ketika Access Method diatur ke Public IP Address, Instance Mode tidak mendukung Cluster.
-
Jalankan migrasi selama jam sepi. Migrasi penuh mengonsumsi sumber daya baca dan tulis pada kedua instans.
-
Setelah migrasi penuh, ruang penyimpanan tujuan akan lebih besar daripada sumber karena operasi INSERT konkuren.
-
DTS mencoba memulihkan tugas yang gagal secara otomatis hingga tujuh hari. Sebelum mengalihkan trafik ke tujuan, hentikan atau rilis tugas tersebut, atau cabut izin tulis akun DTS menggunakan
REVOKEuntuk mencegah tugas yang dipulihkan menimpa data tujuan. -
Jika instans Tair (Redis OSS-compatible) yang dienkripsi TLS terlibat, hubungkan ke DTS menggunakan SSL-encrypted (TLSv1.3 tidak didukung). Menghubungkan dengan SSL-encrypted ke sumber Alibaba Cloud Instance saat ini tidak didukung.
-
Jika tugas gagal, staf dukungan DTS akan mencoba memulihkannya dalam waktu delapan jam. Pemulihan dapat melibatkan me-restart tugas atau menyesuaikan parameter tugas. Hanya parameter tugas DTS yang dimodifikasi—bukan parameter database. Untuk parameter yang dapat disesuaikan, lihat Modifikasi parameter instans.
Kasus khusus untuk sumber Redis yang dikelola sendiri
Saat Access Method sumber bukan Alibaba Cloud Instance:
-
Alih bencana master/standby pada sumber menyebabkan kegagalan tugas.
-
DTS menghitung latensi dengan membandingkan timestamp catatan terakhir yang dimigrasikan dengan waktu saat ini. Jika sumber tidak memiliki aktivitas DML dalam periode yang lama, latensi yang ditampilkan mungkin tidak akurat. Jalankan operasi DML pada sumber untuk memperbarui latensi. Jika memigrasikan seluruh database, gunakan tabel heartbeat yang menulis data setiap detik.
-
Perubahan titik akhir Redis selama migrasi (misalnya, karena migrasi instans atau alih bencana master/standby) dapat menyebabkan percobaan ulang, penundaan, kegagalan, atau ketidakkonsistenan data. Pantau status tugas dan konfigurasi ulang jika muncul perilaku tidak normal.
Perintah yang didukung untuk migrasi inkremental
APPEND, BITOP, BLPOP, BRPOP, BRPOPLPUSH, DECR, DECRBY, DEL, EVAL, EVALSHA, EXEC, EXPIRE, EXPIREAT, FLUSHALL, FLUSHDB, GEOADD, GETSET, HDEL, HINCRBY, HINCRBYFLOAT, HMSET, HSET, HSETNX, INCR, INCRBY, INCRBYFLOAT, LINSERT, LPOP, LPUSH, LPUSHX, LREM, LSET, LTRIM, MOVE, MSET, MSETNX, MULTI, PERSIST, PEXPIRE, PEXPIREAT, PFADD, PFMERGE, PSETEX, PUBLISH, RENAME, RENAMENX, RESTORE, RPOP, RPOPLPUSH, RPUSH, RPUSHX, SADD, SDIFFSTORE, SELECT, SET, SETBIT, SETEX, SETNX, SETRANGE, SINTERSTORE, SMOVE, SPOP, SREM, SUNIONSTORE, ZADD, ZINCRBY, ZINTERSTORE, ZREM, ZREMRANGEBYLEX, ZUNIONSTORE, ZREMRANGEBYRANK, ZREMRANGEBYSCORE, XADD, XCLAIM, XDEL, XAUTOCLAIM, XGROUP CREATECONSUMER, XTRIM
Persiapan
Masuk ke Konsol Manajemen Alibaba Cloud menggunakan akun sumber. Buat peran RAM dan berikan izin kepada akun tujuan untuk mengakses instans Redis sumber. Untuk petunjuknya, lihat Konfigurasikan otorisasi RAM untuk tugas lintas akun.
Selesaikan langkah ini sebelum mengonfigurasi tugas migrasi di bawah.
Prosedur
Langkah-langkah berikut menggunakan akun tujuan untuk mengonfigurasi tugas migrasi DTS.
Untuk panduan lengkap tentang penyiapan RAM lintas akun, lihat Konfigurasikan otorisasi RAM untuk tugas lintas akun.
Langkah 1: Buka daftar tugas migrasi
Masuk menggunakan akun tujuan dan navigasi ke daftar tugas migrasi data menggunakan salah satu metode berikut:
Dari konsol DTS
-
Masuk ke konsol Data Transmission Service (DTS).konsol Data Transmission Service (DTS)
-
Di panel navigasi kiri, klik Data Migration.
-
Di pojok kiri atas, pilih wilayah tempat instans migrasi akan ditempatkan.
Dari konsol DMS
Langkah-langkah dapat berbeda tergantung pada mode dan tata letak konsol DMS Anda. Untuk detailnya, lihat Konsol mode simple dan Sesuaikan tata letak dan gaya konsol DMS.
-
Masuk ke konsol Data Management (DMS).konsol Data Management (DMS)
-
Di bilah menu atas, pilih .
-
Di sebelah kanan Data Migration Tasks, pilih wilayah tempat instans migrasi akan ditempatkan.
Langkah 2: Buat tugas
Klik Create Task untuk membuka halaman konfigurasi tugas.
Langkah 3: Konfigurasikan database sumber dan tujuan
Baca dengan cermat batasan yang ditampilkan di bagian atas halaman konfigurasi sebelum memilih instans. Melewatkan langkah ini dapat menyebabkan kegagalan tugas atau ketidakkonsistenan data.
Konfigurasikan parameter untuk kedua database sumber dan tujuan:
Nama tugas
| Parameter | Deskripsi |
|---|---|
| Task Name | DTS menghasilkan nama secara otomatis. Tentukan nama deskriptif untuk memudahkan identifikasi. Nama tidak perlu unik. |
Database sumber
| Parameter | Deskripsi |
|---|---|
| Select Existing Connection | Pilih instans database yang telah terdaftar sebelumnya dari daftar, atau biarkan kosong untuk mengonfigurasi secara manual. Di konsol DMS, parameter ini bernama Select a DMS database instance. |
| Database Type | Pilih Tair/Redis. |
| Access Method | Pilih Alibaba Cloud Instance. |
| Instance Region | Pilih wilayah tempat instans sumber berada. |
| Replicate Data Across Alibaba Cloud Accounts | Pilih Yes. Ini mengaktifkan kolom lintas akun di bawah. |
| Alibaba Cloud Account | Masukkan ID Akun Alibaba Cloud yang memiliki instans Tair (Redis OSS-compatible) sumber. Untuk mendapatkan ID ini, lihat Dapatkan ID Akun Alibaba Cloud yang memiliki database sumber. |
| RAM Role Name | Masukkan nama peran RAM yang Anda buat di akun sumber, misalnya, ram-for-dts. Untuk membuat peran ini, lihat Langkah 1: Buat peran RAM. |
| Instance ID | Pilih ID instans sumber. |
| Authentication Method | Pilih metode autentikasi. Contoh ini menggunakan Password Login. Account + Password Login hanya tersedia untuk Redis 6.0 atau lebih baru. Untuk Secret-free login, aktifkan akses tanpa password terlebih dahulu—lihat Aktifkan akses tanpa password melalui VPC. |
| Database Password | Masukkan password instans sumber. Akun harus memiliki izin baca. Untuk akun kustom, gunakan format <account>:<password>, misalnya, testaccount:Test1234. Biarkan kosong jika tidak ada password yang diatur. Untuk mengatur ulang password yang lupa, lihat Ubah atau atur ulang password. |
| Encryption | Pilih Non-encrypted atau SSL-encrypted. Untuk Redis yang dikelola sendiri dengan SSL, unggah juga CA Certificate dan masukkan CA Key. |
Database tujuan
| Parameter | Deskripsi |
|---|---|
| Select Existing Connection | Pilih instans database yang telah terdaftar sebelumnya dari daftar, atau biarkan kosong untuk mengonfigurasi secara manual. Di konsol DMS, parameter ini bernama Select a DMS database instance. |
| Database Type | Pilih Tair/Redis. |
| Access Method | Pilih Alibaba Cloud Instance. |
| Instance Region | Pilih wilayah tempat instans tujuan berada. |
| Replicate Data Across Alibaba Cloud Accounts | Pilih No. Instans tujuan termasuk dalam akun saat ini. |
| Instance ID | Pilih ID instans tujuan. |
| Authentication Method | Pilih metode autentikasi. Contoh ini menggunakan Password Login. Account + Password Login hanya tersedia untuk Redis 6.0 atau versi lebih baru. Untuk Secret-free login, aktifkan akses tanpa password terlebih dahulu—lihat Enable password-free access over a VPC. |
| Database Password | Masukkan password instans tujuan. Akun tersebut harus memiliki izin baca dan tulis. Untuk akun kustom, gunakan format <account>:<password>, contohnya testaccount:Test1234. Untuk mengatur ulang password yang lupa, lihat Change or reset the password. |
| Encryption | Pilih Non-encrypted atau SSL-encrypted. Untuk Redis yang dikelola sendiri dengan SSL, unggah juga CA Certificate dan masukkan CA Key. |
Langkah 4: Uji konektivitas
Klik Test Connectivity and Proceed di bagian bawah halaman.
Pastikan rentang IP layanan DTS telah ditambahkan ke pengaturan keamanan kedua instans. Lihat Tambahkan alamat IP server DTS ke daftar putih.
Jika salah satu instans dikelola sendiri (Access Method bukan Alibaba Cloud Instance), klik Test Connectivity di dialog CIDR Blocks of DTS Servers.
Langkah 5: Konfigurasikan objek migrasi
Di halaman Configure Objects, atur parameter berikut:
| Parameter | Deskripsi |
|---|---|
| Migration Types | Pilih keduanya Full Data Migration dan Incremental Data Migration untuk migrasi tanpa downtime. Pilih hanya Full Data Migration jika akun DTS tidak memiliki izin SYNC/PSYNC pada sumber. |
| Processing Mode of Conflicting Tables | Precheck and Report Errors: Pemeriksaan awal memverifikasi bahwa tujuan kosong. Jika tidak, tugas tidak dimulai. Ignore Errors and Proceed: Melewati pemeriksaan tujuan kosong. Jika kunci di tujuan memiliki nama yang sama dengan kunci sumber, data sumber akan menimpa tujuan. Hal ini dapat menyebabkan kehilangan data—lanjutkan dengan hati-hati. |
| Source Objects | Klik objek di kotak Source Objects, lalu klik |
| Selected Objects | Untuk memetakan database (DB 0–255) atau menyaring berdasarkan awalan kunci, klik kanan database di Selected Objects dan konfigurasikan di dialog Edit Schema. Lihat Pemetaan skema dan Atur kondisi filter. |
Klik Next Advanced Settings dan konfigurasikan hal berikut:
| Parameter | Deskripsi |
|---|---|
| Dedicated Cluster for Task Scheduling | DTS menggunakan kluster bersama secara default. Beli klaster khusus untuk eksekusi tugas yang lebih stabil. |
| Retry Time for Failed Connections | Default: 720 menit. Rentang: 10–1.440 menit. Atur minimal 30 menit. Jika DTS terhubung kembali dalam jendela ini, tugas dilanjutkan secara otomatis; jika tidak, tugas gagal. Catatan: Anda dikenai biaya selama periode percobaan ulang. |
| Retry Time for Other Issues | Default: 10 menit. Rentang: 1–1.440 menit. Atur minimal 10 menit. Nilai ini harus lebih kecil dari Retry Time for Failed Connections. |
| Enable Throttling for Full Data Migration | Batasi beban baca dan tulis selama migrasi penuh dengan mengatur Queries per second (QPS) to the source database, RPS of Full Data Migration, dan Data migration speed for full migration (MB/s). Tersedia hanya jika Full Data Migration dipilih. |
| Enable Throttling for Incremental Data Migration | Batasi beban selama migrasi inkremental dengan mengatur RPS of Incremental Data Migration dan Data migration speed for incremental migration (MB/s). Tersedia hanya jika Incremental Data Migration dipilih. |
| Extend Expiration Time of Destination Database Key | Tambahkan waktu kedaluwarsa tambahan ke kunci yang dimigrasikan. Berguna ketika aplikasi Anda bergantung pada kedaluwarsa kunci, seperti kunci terdistribusi. Berlaku untuk: expire, pexpire, expireat, pexpireat. |
| Environment Tag | Opsional. Tandai instans untuk mengidentifikasi lingkungannya. |
| Configure ETL | Aktifkan atau nonaktifkan fitur ekstrak, transformasi, muat (ETL). Lihat Apa itu ETL? dan Konfigurasikan ETL dalam tugas migrasi data atau sinkronisasi data. |
| Monitoring and Alerting | Konfigurasikan peringatan untuk menerima notifikasi jika migrasi gagal atau latensi melebihi ambang batas. Lihat ambang batas peringatanpemberitahuan peringatan. |
Klik Next Data Verification untuk mengonfigurasi verifikasi data. Untuk detail selengkapnya, lihat Mengonfigurasi tugas verifikasi data.
Langkah 6: Jalankan pemeriksaan awal
Klik Next: Save Task Settings and Precheck.
Untuk melihat pratinjau parameter API untuk konfigurasi ini, arahkan kursor ke tombol dan klik Preview OpenAPI parameters.
DTS menjalankan pemeriksaan awal sebelum memulai migrasi. Tugas hanya dimulai setelah pemeriksaan awal berhasil.
Jika pemeriksaan awal gagal, klik View Details di sebelah item yang gagal, perbaiki masalahnya, dan jalankan kembali pemeriksaan awal.
Jika muncul peringatan: untuk item yang tidak dapat dilewati, perbaiki masalah dan jalankan ulang. Untuk item yang dapat dilewati, klik Confirm Alert Details > Ignore > OK > Precheck Again. Mengabaikan peringatan dapat menyebabkan ketidakkonsistenan data.
Langkah 7: Beli dan mulai
-
Saat Success Rate mencapai 100%, klik Next: Purchase Instance.
-
Di halaman Purchase, pilih kelas instans:
Parameter Deskripsi Resource Group Settings Pilih kelompok sumber daya untuk instans ini. Default: kelompok sumber daya default. Lihat Apa itu Resource Management?. Instance Class Pilih spesifikasi berdasarkan volume dan kecepatan migrasi Anda. Lihat Spesifikasi tautan migrasi data. -
Baca dan terima Data Transmission Service (Pay-as-you-go) Service Terms.
-
Klik Buy and Start, lalu klik OK di dialog konfirmasi.
Pantau kemajuan migrasi di halaman migrasi data.
Jika tugas mencakup migrasi penuh dan inkremental, tugas tersebut ditampilkan sebagai Incremental Data Migration di halaman daftar tugas migrasi.
Langkah selanjutnya
-
Untuk memverifikasi konsistensi data setelah migrasi, lihat Konfigurasikan tugas verifikasi data.
-
Sebelum mengalihkan trafik aplikasi ke instans tujuan, hentikan atau rilis tugas DTS untuk mencegah tugas yang dipulihkan secara otomatis menimpa data tujuan.
-
Untuk skenario migrasi lainnya, lihat Ikhtisar skenario migrasi data.
Setelah migrasi
Instans tujuan adalah instans baru yang terpisah dengan titik akhir koneksi berbeda dari instans sumber. Setelah Anda memverifikasi bahwa data sudah benar, alihkan konfigurasi koneksi aplikasi Anda ke titik akhir instans tujuan, dan tambahkan alamat IP klien baru (misalnya, server yang dimigrasikan) ke daftar putih instans tujuan. Jika tidak, operasi tulis dari bisnis Anda masih akan mengarah ke instans sumber.