Layanan Transmisi Data (DTS) memungkinkan migrasi data dari database Redis yang dikelola sendiri ke instans Tair (kompatibel dengan Redis OSS) dengan downtime minimal. Jalankan migrasi data penuh dan migrasi data inkremental secara bersamaan agar aplikasi Anda tetap online selama proses migrasi.
Prasyarat
Sebelum memulai, pastikan hal-hal berikut:
Database Redis sumber yang dikelola sendiri dan instans Tair (kompatibel dengan Redis OSS) tujuan telah dibuat. Untuk membuat instans Tair, lihat Langkah 1: Buat instans Tair.
Instans Tair (kompatibel dengan Redis OSS) tujuan menggunakan mode koneksi langsung. DTS tidak mendukung mode koneksi lainnya.
Perintah
PSYNCatauSYNCdapat dijalankan pada database sumber. Untuk migrasi data inkremental, akun database sumber juga harus memiliki izinPSYNCdanSYNC.Ruang penyimpanan yang tersedia pada instans tujuan lebih besar daripada ukuran total data pada database sumber.
Untuk versi database sumber dan tujuan yang didukung, lihat Ikhtisar skenario migrasi data.
Jenis migrasi
DTS mendukung dua jenis migrasi untuk skenario ini.
| Jenis migrasi | Apa yang dimigrasikan oleh DTS | Ditagih |
|---|---|---|
| Full Data Migration | Semua data yang ada di database sumber pada saat tugas dimulai | Gratis |
| Incremental data migration | Perubahan data yang terjadi selama migrasi memungkinkan peralihan dengan waktu henti mendekati nol. | Ya — lihat Ikhtisar penagihan |
Jalankan Full Data Migration + Incremental Data Migration secara bersamaan untuk memigrasikan data yang ada dan menjaga sinkronisasi target hingga Anda siap beralih sepenuhnya.
Jika hanya menjalankan migrasi data penuh, hentikan operasi tulis ke database sumber selama migrasi untuk mencegah ketidakkonsistenan data.
Biaya lalu lintas internet berlaku ketika Access Method tujuan diatur ke Public IP Address.
Perintah yang didukung untuk migrasi data inkremental
Migrasi data inkremental mendukung perintah Redis berikut:
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
Catatan penggunaan
Tinjau batasan berikut sebelum memulai migrasi.
Batasan database sumber
| Batasan | Detail |
|---|---|
| Bandwidth | Server yang menghosting database sumber harus memiliki bandwidth keluar yang mencukupi. Bandwidth yang tidak mencukupi akan mengurangi kecepatan migrasi. |
| Operasi tulis selama migrasi penuh | Jangan menulis ke database sumber selama migrasi hanya penuh. Operasi tulis bersamaan menyebabkan ketidakkonsistenan data antara sumber dan tujuan. |
| Operasi cross-slot kluster | Saat memigrasikan dari database Redis standalone ke arsitektur kluster, setiap perintah harus beroperasi pada satu slot saja. Perintah cross-slot menyebabkan error berikut dan mengganggu migrasi: CROSSSLOT Keys in request don't hash to the same slot. Lakukan operasi single-key selama migrasi. |
| Kedaluwarsa kunci | Kunci dengan kebijakan kedaluwarsa mungkin tidak langsung dihapus setelah kedaluwarsa. Akibatnya, jumlah kunci di tujuan mungkin lebih rendah daripada di sumber. Jalankan perintah INFO pada tujuan untuk memeriksa jumlah kunci. Kunci tanpa TTL atau kunci yang masih dalam masa TTL-nya konsisten antara sumber dan tujuan. |
| Heartbeat key | DTS menyisipkan kunci dengan awalan DTS_REDIS_TIMESTAMP_HEARTBEAT ke database sumber untuk melacak pembaruan data. Dalam mode kluster, DTS menyisipkan kunci ini ke setiap shard. Kunci tersebut difilter selama migrasi dan kedaluwarsa setelah tugas selesai. |
| Akurasi latensi | Jika database sumber bersifat read-only atau akun sumber tidak memiliki izin SETEX, latensi migrasi yang dilaporkan mungkin tidak akurat. |
Batasan lainnya
| Batasan | Detail |
|---|---|
| Dampak performa | Migrasi data penuh mengonsumsi resource pada sumber dan tujuan. Jalankan migrasi selama jam sepi untuk dataset besar atau server dengan kapasitas terbatas. |
| Pengusiran Memori | Kebijakan penggantian default (maxmemory-policy) pada instans Tair tujuan adalah volatile-lru. Jika tujuan kehabisan memori, ketidakkonsistenan data dapat terjadi tanpa kegagalan tugas. Atur kebijakan penggantian menjadi noeviction untuk mencegah kehilangan data diam-diam — DTS akan secara eksplisit gagal menulis jika memori tidak mencukupi, bukan mengganti data diam-diam. Untuk detail kebijakan penggantian, lihat Apa kebijakan penggantian default Tair? |
| Skrip Lua | DTS tidak dapat memastikan apakah skrip Lua yang dipanggil melalui EVAL atau EVALSHA dieksekusi di tujuan selama migrasi inkremental, karena tujuan tidak mengembalikan hasil eksekusi eksplisit untuk perintah-perintah ini. |
| Duplikat tipe LIST | Saat DTS mentransfer data LIST menggunakan PSYNC atau SYNC, DTS tidak menghapus data yang sudah ada di instans tujuan. Hal ini dapat menyebabkan catatan duplikat di tujuan. |
| Pemicu rekonfigurasi | Anda harus mengonfigurasi ulang tugas migrasi jika salah satu hal berikut terjadi selama migrasi: jumlah shard di kluster sumber berubah, spesifikasi database sumber berubah (misalnya skalabilitas vertikal memori), atau endpoint sumber berubah. Hapus data yang telah dimigrasikan dari tujuan sebelum mengonfigurasi ulang untuk memastikan konsistensi data. |
| Risiko pelanjutan tugas | Jika tugas yang gagal dilanjutkan secara otomatis, data dari sumber dapat menimpa data di tujuan. Hentikan atau lepaskan tugas sebelum mengalihkan beban kerja ke tujuan. |
| Destination OOM | Jika sebuah shard di kluster tujuan mencapai batas memorinya, atau ruang penyimpanan yang tersedia tidak mencukupi, tugas gagal dengan error out of memory (OOM). |
| TDE | Jika Transparent Data Encryption (TDE) diaktifkan pada database tujuan, DTS tidak dapat memigrasikan data. |
| Pemicu remigrasi penuh | Data penuh mungkin dimigrasikan ulang — berpotensi menyebabkan ketidakkonsistenan — jika unggah yang dapat dilanjutkan gagal karena error koneksi sementara, terjadi alih bencana primary/secondary atau failover, atau endpoint berubah di salah satu sisi. |
| TLS | Jika TLS (Transport Layer Security) diaktifkan pada instans Tair tujuan, hubungkan melalui SSL-encrypted (TLSv1.3 tidak didukung). Instans Tair dengan TLS yang diaktifkan tidak dapat dihubungkan ke DTS sebagai Alibaba Cloud Instance. |
| Restart tugas | Jika tugas yang berisi migrasi penuh dan inkremental direstart, DTS mungkin merestart kedua subtugas tersebut. |
| Pemulihan dukungan DTS | Jika tugas DTS gagal, dukungan teknis DTS akan mencoba memulihkannya dalam waktu 8 jam. Selama pemulihan, tugas mungkin direstart dan parameter tugas mungkin dimodifikasi. Parameter database tidak dimodifikasi. |
Jika Anda memilih Ignore Errors and Proceed untuk kunci yang bertentangan, data sumber akan menimpa data tujuan dengan kunci yang sama. Hal ini dapat menyebabkan kehilangan data di tujuan. Lanjutkan dengan hati-hati.
Persiapan untuk migrasi data inkremental
Lewati bagian ini jika hanya menjalankan migrasi data penuh.
Hapus batas buffer output replikasi pada database sumber untuk memastikan tugas migrasi inkremental berjalan tanpa gangguan.
Hubungkan ke database Redis sumber menggunakan redis-cli. Instal client Redis terlebih dahulu jika diperlukan. Lihat situs resmi komunitas Redis.
Placeholder Deskripsi Contoh <host>Endpoint database sumber 127.0.0.1<port>Port layanan database sumber 6379(default)<password>Password database sumber Test123456redis-cli -h <host> -p <port> -a <password>Ganti placeholder berikut:
Jalankan perintah berikut untuk menghapus batas buffer output replikasi:
config set client-output-buffer-limit 'slave 0 0 0'
Buat tugas migrasi
Langkah 1: Buka halaman Data Migration
Gunakan salah satu konsol berikut:
Konsol DTS
Login ke Konsol DTS.Konsol DTS
Di panel navigasi kiri, klik Data Migration.
Di pojok kiri atas, pilih wilayah tempat instans migrasi berada.
Konsol DMS
Login ke Konsol DMS.Konsol DMS
Di bilah navigasi atas, arahkan pointer ke Data + AI > DTS (DTS) > Data Migration.
Dari daftar drop-down di samping Data Migration Tasks, pilih wilayah tempat instans migrasi berada.
Langkah 2: Konfigurasikan database sumber dan tujuan
Klik Create Task, lalu konfigurasikan parameter berikut.
Nama tugas
| Parameter | Deskripsi |
|---|---|
| Task Name | Nama untuk tugas DTS. DTS menghasilkan nama secara otomatis. Gunakan nama deskriptif untuk mengidentifikasi tugas — tidak perlu unik. |
Database sumber
| Parameter | Deskripsi |
|---|---|
| Select Existing Connection | Pilih instans database yang sudah terdaftar di DTS untuk mengisi otomatis parameter koneksi. Lihat Manage database connections. Jika instans belum terdaftar, konfigurasikan parameter secara manual. |
| Database Type | Pilih Tair/Redis. |
| Access Method | Pilih Self-managed Database on ECS. Untuk metode akses lainnya, lihat Preparation overview. |
| Instance Region | Wilayah tempat instans Elastic Compute Service (ECS) yang menghosting database Redis sumber berada. |
| Replicate Data Across Alibaba Cloud Accounts | Pilih No untuk migrasi dalam akun yang sama. |
| ECS Instance ID | ID instans ECS yang menghosting database Redis sumber. Untuk sumber mode kluster, pilih ID instans ECS yang menjalankan node master, dan tambahkan Blok CIDR server DTS ke aturan grup keamanan setiap instans ECS. Lihat Create a security group untuk membuatnya, Associate security groups with an instance (primary ENI) untuk mengaitkannya, dan Add the CIDR blocks of DTS servers untuk daftar blok CIDR. |
| Instance Mode | Arsitektur penerapan database Redis sumber: Standalone atau Cluster. Jika Access Method diatur ke Public IP Address, Cluster tidak didukung. |
| Port | Port layanan database sumber. Default: 6379. Untuk sumber mode kluster, masukkan port node master. |
| Authentication Method | Pilih berdasarkan pengaturan Anda. Account + Password Login memerlukan Redis 6.0 atau lebih baru. Untuk Secret-free login, aktifkan akses tanpa password terlebih dahulu pada database sumber. |
| Database Password | Password untuk database sumber. Biarkan kosong jika tidak ada password yang diatur. Format: <user>:<password> (contoh: admin:Rp829dlwa). |
| Encryption | Pilih Non-encrypted atau SSL-encrypted. Jika Access Method bukan Alibaba Cloud Instance dan Anda memilih SSL-encrypted, unggah CA Certificate dan masukkan CA Key. |
Database tujuan
| Parameter | Deskripsi |
|---|---|
| Select Existing Connection | Pilih instans DTS terdaftar untuk mengisi otomatis parameter koneksi, atau konfigurasikan secara manual. |
| Database Type | Pilih Tair/Redis. |
| Access Method | Pilih Alibaba Cloud Instance. |
| Instance Region | Wilayah tempat instans Tair (kompatibel dengan Redis OSS) tujuan berada. |
| Replicate Data Across Alibaba Cloud Accounts | Pilih No untuk migrasi dalam akun yang sama. |
| Instance ID | ID instans Tair (kompatibel dengan Redis OSS) tujuan. |
| Authentication Method | Pilih berdasarkan pengaturan Anda. Account + Password Login memerlukan Redis 6.0 atau lebih baru. Untuk Secret-free login, aktifkan akses tanpa password terlebih dahulu pada instans tujuan. Lihat Enable password-free access. |
| Database Password | Password untuk instans tujuan. Format: <user>:<password> (contoh: admin:Rp829dlwa). |
| Encryption | Pilih Non-encrypted atau SSL-encrypted. |
Langkah 3: Uji konektivitas dan lanjutkan
Klik Test Connectivity and Proceed di bagian bawah halaman.
Server DTS harus dapat mengakses database sumber dan tujuan. Tambahkan Blok CIDR server DTS ke pengaturan keamanan kedua database sebelum melanjutkan — lihat Add the CIDR blocks of DTS servers untuk instruksi. Jika sumber atau tujuan menggunakan metode akses selain Alibaba Cloud Instance, klik Test Connectivity di kotak dialog CIDR Blocks of DTS Servers.
Langkah 4: Konfigurasikan objek yang akan dimigrasikan
Di halaman Configure Objects, atur parameter berikut.
Parameter Deskripsi Migration Types Pilih Full Data Migration + Incremental Data Migration. Jika akun sumber tidak memiliki izin SYNCatauPSYNC, pilih hanya Full Data Migration.Processing Mode of Conflicting Tables Precheck and Report Errors: memeriksa apakah database tujuan kosong sebelum memulai. Error dikembalikan jika tujuan tidak kosong. Ignore Errors and Proceed: melewati pemeriksaan tujuan kosong. Data sumber menimpa data tujuan dengan kunci yang sama. Source Objects Pilih satu atau beberapa database dari Source Objects, lalu klik
untuk menambahkannya ke Selected Objects. Anda dapat memilih database tetapi tidak kunci individual.Selected Objects Untuk memetakan database (DB 0 hingga DB 255) atau memfilter berdasarkan awalan kunci, klik kanan database di Selected Objects dan konfigurasikan opsi di kotak dialog Edit Schema. Untuk instruksi, lihat Map object names untuk mengganti nama database dan Set filter conditions untuk pemfilteran awalan. Pemetaan nama objek harus dilakukan satu per satu. Klik Next: Advanced Settings dan konfigurasikan parameter berikut.
Parameter Deskripsi Dedicated Cluster for Task Scheduling Secara default, DTS menjadwalkan tugas ke kluster bersama. Untuk stabilitas lebih tinggi, beli klaster khusus. Lihat What is a DTS dedicated cluster. Retry Time for Failed Connections Durasi DTS mencoba ulang setelah kegagalan koneksi. Nilai valid: 10–1.440 menit. Default: 720. Atur minimal 30 menit. Jika beberapa tugas berbagi sumber atau tujuan yang sama, nilai terakhir yang diatur berlaku. DTS menagih instans selama periode percobaan ulang. Retry Time for Other Issues Durasi DTS mencoba ulang setelah kegagalan DDL atau DML. Nilai valid: 1–1.440 menit. Default: 10. Atur minimal 10 menit. Nilai ini harus kurang dari Retry Time for Failed Connections. Enable Throttling for Full Data Migration Membatasi beban baca/tulis pada sumber dan tujuan selama migrasi penuh. Konfigurasikan 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 Membatasi beban pada tujuan selama migrasi inkremental. Konfigurasikan 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 Memperpanjang TTL kunci yang dimigrasikan sejumlah detik tertentu. Atur ini saat menggunakan perintah seperti expire key seconds,pexpire key milliseconds,expireat key timestamp, ataupexpireat key timestampMsuntuk menjaga konsistensi data. Perhatikan bahwa ini dapat menunda pelepasan kunci terdistribusi.Use Slave Node Tersedia saat Instance Mode sumber adalah Cluster. Menentukan apakah membaca data dari node slave (replika). Default: No (membaca dari node master). Environment Tag Tag opsional untuk mengidentifikasi instans DTS. Configure ETL Mengaktifkan fitur ekstrak, transformasi, dan muat (ETL). Pilih Yesalert notification settings untuk memasukkan pernyataan pemrosesan data. Lihat Configure ETL in a data migration or data synchronization task. Monitoring and Alerting Pilih Yes untuk menerima notifikasi saat tugas gagal atau latensi migrasi melebihi ambang batas. Konfigurasikan ambang batas peringatan dan kontak notifikasi. Lihat Configure monitoring and alerting when you create a DTS task. Klik Next Step: Data Verification untuk mengonfigurasi verifikasi data. Untuk detailnya, lihat Configure a data verification task.
Langkah 5: Simpan pengaturan dan jalankan pemeriksaan awal
Untuk melihat pratinjau parameter API untuk tugas ini, arahkan kursor ke Next: Save Task Settings and Precheck dan klik Preview OpenAPI parameters.
Klik Next: Save Task Settings and Precheck untuk menyimpan dan memulai pemeriksaan awal.
Tugas hanya dapat dimulai setelah lulus pemeriksaan awal.
Jika pemeriksaan awal gagal, klik View Details di samping setiap item yang gagal. Perbaiki masalahnya, lalu klik Precheck Again.
Jika muncul peringatan pemeriksaan awal:
Untuk peringatan yang tidak dapat dilewati: perbaiki masalah dan jalankan ulang pemeriksaan awal.
Untuk peringatan yang dapat dilewati: klik Confirm Alert Details > Ignore > OK, lalu klik Precheck Again. Melewatkan peringatan dapat menyebabkan ketidakkonsistenan data.
Langkah 6: Beli instans migrasi
Tunggu hingga Success Rate mencapai 100%, lalu klik Next: Purchase Instance.
Di halaman Purchase Instance, konfigurasikan kelas instans.
Bagian Parameter Deskripsi New Instance Class Resource Group Kelompok sumber daya untuk instans migrasi. Default: default resource group. Lihat What is Resource Management? Instance Class Menentukan kecepatan migrasi. Pilih berdasarkan kebutuhan Anda. Lihat Instance classes of data migration instances. Baca dan terima Data Transmission Service (Pay-as-you-go) Service Terms, lalu klik Buy and Start > OK.
Lacak progres di halaman Data Migration.
Untuk tugas dengan migrasi penuh dan inkremental yang dipilih, halaman Data Migration menampilkan Incremental Data Migration sebagai status aktif.
Langkah selanjutnya
Setelah migrasi data inkremental selesai, hentikan atau lepaskan tugas migrasi sebelum mengalihkan aplikasi Anda ke tujuan. Hal ini mencegah sumber menimpa data yang ditulis ke tujuan setelah alih bencana.