Gunakan Data Transmission Service (DTS) untuk melakukan migrasi data antar instans Tair (Redis OSS-compatible) dengan downtime minimal. DTS mendukung migrasi data penuh dan migrasi data inkremental, sehingga Anda dapat tetap menjalankan instans sumber selama proses migrasi.
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
-
Instans sumber dan tujuan Tair (Redis OSS-compatible). Untuk membuat instans, lihat Langkah 1: Buat instans.
-
Ruang penyimpanan kosong yang cukup pada instans tujuan—harus melebihi ruang penyimpanan yang digunakan oleh instans sumber.
-
Akun instans sumber dengan izin baca; akun instans tujuan dengan izin baca dan tulis.
Untuk versi database yang didukung, lihat Ikhtisar solusi migrasi.
Pilih jenis migrasi
Pilih jenis migrasi berdasarkan toleransi downtime Anda:
|
Jenis migrasi |
Cara kerja |
Kapan digunakan |
|
Full data migration |
Menyalin semua data yang ada dari sumber ke tujuan. Gratis. Jika Access Method tujuan diatur ke Public IP Address, biaya traffic Internet akan dikenakan — lihat Ikhtisar penagihan. |
Anda dapat mentolerir jendela pemeliharaan dan akan menghentikan operasi tulis ke instans sumber selama migrasi. |
|
Full + incremental data migration |
Menyalin data yang ada, lalu mereplikasi operasi tulis secara terus-menerus hingga Anda melakukan alih bencana. Fase inkremental dikenai biaya — lihat Ikhtisar penagihan. |
Anda membutuhkan downtime nol atau hampir nol. Direkomendasikan untuk beban kerja produksi. |
Jika Anda hanya memilih migrasi data penuh, hentikan semua operasi tulis ke instans sumber selama migrasi. Operasi tulis ke sumber setelah snapshot diambil tidak akan tercermin di tujuan, sehingga menyebabkan ketidakkonsistenan data.
Batasan
Tinjau batasan berikut sebelum memulai tugas migrasi Anda.
Batasan instans sumber:
-
Versi instans sumber tidak boleh 2.8.
-
Server yang menghosting instans sumber harus memiliki bandwidth keluar yang cukup. Bandwidth yang tidak mencukupi akan mengurangi kecepatan migrasi.
-
DTS menulis kunci heartbeat dengan awalan
DTS_REDIS_TIMESTAMP_HEARTBEATke instans sumber (satu per shard dalam penerapan kluster). Kunci ini difilter selama migrasi dan kedaluwarsa setelah tugas selesai. -
Jika sumber adalah instans Tair (Edisi Perusahaan) dengan Storage Medium: Persistent Memory, atur parameter
appendonlykeyessebelum migrasi. Lihat Nonaktifkan Persistensi AOF. -
Jika sumber bersifat read-only atau akun tidak memiliki izin
SETEX, latensi migrasi yang dilaporkan mungkin tidak akurat. -
Arsitektur kluster: Setiap perintah Redis beroperasi pada satu slot. Operasi lintas-slot pada sumber menyebabkan error berikut dan mengganggu tugas migrasi:
CROSSSLOT Keys in request don't hash to the same slotLakukan operasi satu kunci dalam satu waktu selama migrasi.
Batasan instans tujuan:
-
Instans Tair (Redis OSS-Compatible) Edisi Enhanced yang dioptimalkan penyimpanan tidak dapat digunakan sebagai sumber maupun tujuan.
-
Versi instans tujuan harus sama atau lebih baru daripada versi sumber.
-
Jika Transparent Data Encryption (TDE) diaktifkan pada tujuan, DTS tidak dapat melakukan migrasi data ke instans tersebut.
-
Jika shard kluster tujuan kehabisan memori atau penyimpanan, tugas migrasi gagal dengan error out of memory (OOM).
-
Kebijakan penggantian default (
maxmemory-policy) adalahvolatile-lru. Jika tujuan kekurangan memori, ketidakkonsistenan data mungkin terjadi. Atur kebijakan penggantian kenoevictionagar DTS secara eksplisit gagal menulis daripada diam-diam mengganti data. Untuk detailnya, lihat Bagaimana Tair (Redis OSS-Compatible) mengganti data secara default?
Batasan lainnya:
-
DTS tidak mengosongkan data LIST yang sudah ada di tujuan sebelum menulis. Jika tujuan sudah memiliki kunci LIST, catatan duplikat mungkin muncul.
-
Skrip Lua
EVALdanEVALSHA: DTS tidak dapat memastikan eksekusi di tujuan selama migrasi inkremental. -
Kunci dengan kebijakan kedaluwarsa mungkin tidak langsung dihapus setelah kedaluwarsa, sehingga jumlah kunci di tujuan mungkin lebih rendah daripada di sumber.
-
Jika Access Method untuk database Redis yang dikelola sendiri adalah Public IP Address, Anda tidak dapat mengatur Instance Mode ke Cluster.
-
TLS: Jika TLS diaktifkan pada instans Tair, hubungkan melalui SSL-encrypted. TLSv1.3 tidak didukung, dan Anda tidak dapat menghubungkan instans yang diaktifkan SSL sebagai Alibaba Cloud Instance.
-
Mengubah konfigurasi instans (spesifikasi, nomor port) selama migrasi akan mengganggu tugas. Hapus data tujuan dan konfigurasi ulang tugas migrasi setelah perubahan konfigurasi apa pun.
-
DTS mencoba ulang tugas migrasi yang gagal hingga tujuh hari. Sebelum mengalihkan beban kerja ke tujuan, hentikan atau lepas tugas DTS yang gagal. Jika tidak, tugas yang dilanjutkan kembali dapat menimpa data tujuan dengan data sumber yang kedaluwarsa.
-
Jika instans migrasi data berisi tugas migrasi data penuh dan inkremental, DTS mungkin memulai ulang kedua tugas tersebut setelah instans dimulai ulang.
-
Jika instans gagal berjalan, dukungan teknis DTS akan mencoba memulihkannya dalam waktu 8 jam. Selama pemulihan, instans mungkin dimulai ulang atau parameter instans DTS mungkin disesuaikan (parameter database tidak dimodifikasi). Untuk parameter yang mungkin disesuaikan, lihat Modifikasi parameter instans.
-
Peristiwa berikut dapat menyebabkan migrasi ulang penuh, berpotensi menyebabkan ketidakkonsistenan data:
-
Kegagalan unggah yang dapat dilanjutkan karena koneksi sementara.
-
Alih bencana atau failover primer/sekunder pada sumber atau tujuan
-
Perubahan endpoint pada sumber atau tujuan.
-
Hanya untuk Redis yang dikelola sendiri:
-
Alih bencana primary/secondary pada sumber selama migrasi menyebabkan tugas gagal.
-
Latensi migrasi dihitung dari timestamp catatan terakhir yang dimigrasikan dibandingkan dengan waktu sumber saat ini. Jika sumber tidak memiliki aktivitas DML dalam periode yang lama, latensi yang dilaporkan mungkin tidak akurat. Untuk menjaga akurasi latensi, buat tabel heartbeat yang menulis setiap detik saat melakukan migrasi seluruh database.
Perintah yang didukung untuk migrasi data inkremental
DTS mendukung perintah Redis berikut selama migrasi data 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
Buat tugas migrasi
Langkah 1: Buka halaman Migrasi Data
Gunakan konsol DTS atau konsol DMS.
Konsol DTS
-
Login ke Konsol DTS.Konsol DTS
-
Di panel navigasi kiri, klik Data Migration.
-
Di pojok kiri atas, pilih wilayah tempat instans migrasi Anda berada.
Konsol DMS
Langkah-langkah dapat berbeda tergantung mode dan tata letak konsol DMS. Lihat Mode simple dan Sesuaikan tata letak dan gaya konsol DMS.
-
Login ke Konsol DMS.Konsol DMS
-
Di bilah navigasi atas, buka Data + AI > DTS (DTS) > Data Migration.
-
Dari dropdown di sebelah kanan Data Migration Tasks, pilih wilayah tempat instans migrasi Anda berada.
Langkah 2: Konfigurasikan database sumber dan tujuan
-
Klik Create Task untuk membuka halaman konfigurasi tugas.
-
Konfigurasikan database sumber dan tujuan menggunakan parameter pada tabel berikut.
Kategori
Parameter
Deskripsi
N/A
Task Name
Masukkan nama deskriptif untuk tugas DTS. Nama tidak perlu unik.
Source Database
Select Existing Connection
Pilih instans database terdaftar dari dropdown untuk mengisi otomatis bidang di bawah. Jika instans belum terdaftar, isi bidang secara manual.
Database Type
Pilih Tair/Redis.
Access Method
Pilih Alibaba Cloud Instance.
Instance Region
Pilih wilayah instans Tair (Redis OSS-compatible) sumber.
Replicate Data Across Alibaba Cloud Accounts
Pilih No untuk migrasi dalam akun yang sama.
Instance ID
Pilih ID instans sumber.
Authentication Method
Pilih metode autentikasi. Contoh ini menggunakan Password Login. Account + Password Login memerlukan Redis 6.0 atau lebih baru. Untuk Secret-free login, aktifkan akses tanpa password pada instans terlebih dahulu — lihat Aktifkan akses tanpa password.
Database Password
Masukkan password untuk instans sumber (diperlukan izin baca). Untuk akun default, masukkan hanya password. Untuk akun kustom, gunakan format
<account>:<password>— contohnya,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 CA Certificate dan masukkan CA Key.
Destination Database
Select Existing Connection
Sama seperti sumber — pilih instans terdaftar atau isi bidang secara manual.
Database Type
Pilih Tair/Redis.
Access Method
Pilih Alibaba Cloud Instance.
Instance Region
Pilih wilayah instans Tair (Redis OSS-compatible) tujuan.
Replicate Data Across Alibaba Cloud Accounts
Pilih No untuk migrasi dalam akun yang sama.
Instance ID
Pilih ID instans tujuan.
Authentication Method
Opsi yang sama seperti sumber.
Database Password
Masukkan password untuk instans tujuan (diperlukan izin baca dan tulis). Gunakan format password yang sama seperti sumber.
Encryption
Pilih Non-encrypted atau SSL-encrypted.
-
Klik Test Connectivity and Proceed.
Tambahkan blok CIDR server DTS ke pengaturan keamanan instans sumber dan tujuan Anda. Lihat Tambahkan blok CIDR server DTS. Untuk database yang dikelola sendiri yang tidak menggunakan akses Alibaba Cloud Instance, klik Test Connectivity di dialog CIDR Blocks of DTS Servers.
Langkah 3: Pilih objek dan konfigurasikan pengaturan lanjutan
-
Di halaman Configure Objects, atur parameter berikut.
Parameter
Deskripsi
Migration Types
-
Instans Redis Edisi Open-Source: Pilih Full Data Migration + Incremental Data Migration atau Full Data Migration. Kami merekomendasikan memilih Full Data Migration + Incremental Data Migration untuk memastikan konsistensi data. Jika akun DTS tidak memiliki izin
SYNCatauPSYNCpada sumber, pilih hanya Full Data Migration. -
Instans Tair (Edisi Perusahaan): Pilih Full Data Migration dan/atau Incremental Data Migration sesuai kebutuhan Anda. Kami merekomendasikan memilih keduanya untuk memastikan konsistensi data.
Processing Mode of Conflicting Tables
Precheck and Report Errors: memverifikasi tujuan kosong sebelum memulai; gagal dalam pemeriksaan awal jika tidak kosong. Ignore Errors and Proceed: melewati pemeriksaan tujuan kosong.
PeringatanData sumber akan menimpa data tujuan untuk kunci yang cocok, yang dapat menyebabkan kehilangan data.
Source Objects
Pilih satu atau beberapa database dari daftar Source Objects, lalu klik ikon panah untuk memindahkannya ke Selected Objects. Untuk migrasi kunci tertentu, gunakan fitur penyaringan data di kotak Selected Objects.
Selected Objects
Untuk memetakan ke DB tujuan tertentu (DB 0–DB 255) atau menyaring berdasarkan awalan kunci, klik kanan database di kotak Selected Objects, lalu konfigurasikan 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
Secara default, DTS menggunakan kluster bersama. Beli kluster khusus untuk stabilitas migrasi yang lebih baik. Lihat Apa itu kluster khusus DTS.
Retry Time for Failed Connections
Berapa lama DTS mencoba ulang setelah kegagalan koneksi. Nilai valid: 10–1.440 menit. Default: 720 menit. Atur minimal 30 menit. Jika DTS terhubung kembali dalam jendela ini, tugas dilanjutkan. Jika tidak, tugas gagal.
CatatanSaat beberapa tugas berbagi sumber atau tujuan yang sama, waktu coba ulang yang paling baru diatur akan berlaku. DTS mengenakan biaya untuk instans selama percobaan ulang.
Retry Time for Other Issues
Berapa lama DTS mencoba ulang setelah kegagalan DDL atau DML. Nilai valid: 1–1.440 menit. Default: 10 menit. Atur lebih dari 10 menit. Harus lebih pendek dari Retry Time for Failed Connections.
Enable Throttling for Full Data Migration
Membatasi throughput migrasi penuh untuk mengurangi beban pada sumber dan tujuan. 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 Migration Types mencakup Full Data Migration.
Enable Throttling for Incremental Data Migration
Membatasi throughput migrasi inkremental. Konfigurasikan RPS of Incremental Data Migration dan Data migration speed for incremental migration (MB/s). Tersedia hanya jika Migration Types mencakup Incremental Data Migration.
Extend Expiration Time of Destination Database Key
Menambahkan waktu kedaluwarsa tambahan ke kunci yang dimigrasikan ke tujuan. Gunakan ini jika aplikasi Anda menggunakan perintah seperti
expire,pexpire,expireat, ataupexpireatuntuk menghindari kedaluwarsa kunci sebelum alih bencana.CatatanIni dapat menunda pelepasan kunci terdistribusi.
Environment Tag
Opsional. Pilih tag untuk memberi label instans.
Configure ETL
Pilih Yespengaturan pemberitahuan peringatan untuk mengonfigurasi aturan extract, transform, and load (ETL). Masukkan pernyataan pemrosesan data di editor kode. Lihat Konfigurasi ETL dalam tugas migrasi data atau sinkronisasi data. Pilih No untuk melewati.
Monitoring and Alerting
Pilih Yes untuk menerima peringatan saat tugas gagal atau latensi migrasi melebihi ambang batas. Konfigurasikan ambang batas peringatan dan pengaturan notifikasi. Lihat Konfigurasi pemantauan dan peringatan.
-
Klik Next Step: Data Verification untuk mengonfigurasi verifikasi data (opsional). Untuk informasi selengkapnya, lihat Mengonfigurasi tugas verifikasi data.
Langkah 4: Jalankan pemeriksaan awal
-
Klik Next: Save Task Settings and Precheck.
Untuk melihat parameter API yang sesuai sebelum menyimpan, arahkan kursor ke tombol dan klik Preview OpenAPI parameters.
-
Tunggu hingga pemeriksaan awal selesai. DTS harus lulus pemeriksaan awal sebelum tugas migrasi dimulai.
-
Jika item pemeriksaan gagal, klik View Details di sebelah item yang gagal, perbaiki masalahnya, lalu klik Precheck Again.
-
Jika peringatan dipicu: jika tidak dapat diabaikan, perbaiki dan periksa ulang. Jika dapat diabaikan, klik Confirm Alert Details > Ignore > OK > Precheck Again. Mengabaikan peringatan dapat menyebabkan ketidakkonsistenan data.
-
Langkah 5: Beli dan mulai instans
-
Tunggu hingga Success Rate mencapai 100%, lalu klik Next: Purchase Instance.
-
Di halaman Purchase Instance, konfigurasikan hal berikut.
Bagian
Parameter
Deskripsi
New Instance Class
Resource Group
Kelompok sumber daya untuk instans migrasi. Default: default resource group. Lihat Apa itu Resource Management?
Instance Class
Pilih kelas instans berdasarkan kecepatan migrasi yang dibutuhkan. Lihat Kelas instans untuk instans migrasi data.
-
Baca dan centang kotak untuk menyetujui Data Transmission Service (Pay-as-you-go) Service Terms.
-
Klik Buy And Start, lalu klik OK di dialog konfirmasi.
Lacak progres di halaman migrasi data.
Jika tugas mencakup migrasi penuh dan inkremental, tugas tersebut ditampilkan sebagai Incremental Data Migration di daftar tugas.
Setelah migrasi
Setelah migrasi berjalan (atau selesai untuk migrasi penuh saja), lakukan langkah-langkah berikut sebelum menghentikan instans sumber.
1. Verifikasi konsistensi data
Bandingkan jumlah kunci dan periksa sampel data di instans tujuan. Perlu diingat bahwa kunci yang kedaluwarsa dapat menyebabkan jumlah yang sedikit lebih rendah di tujuan.
Jika Anda mengonfigurasi verifikasi data selama penyiapan tugas, periksa hasil verifikasi di konsol DTS.
2. Alihkan traffic aplikasi
Perbarui string koneksi aplikasi Anda agar mengarah ke instans tujuan. Untuk migrasi inkremental, tunggu hingga latensi migrasi turun ke nol atau hampir nol sebelum beralih—ini memastikan tujuan telah sepenuhnya tersinkronisasi.
3. Hentikan dan lepas tugas DTS
Setelah memastikan aplikasi Anda berfungsi dengan benar menggunakan instans tujuan, hentikan tugas migrasi DTS. DTS mencoba ulang tugas yang gagal hingga tujuh hari, sehingga melepas tugas mencegahnya dilanjutkan kembali dan menimpa data di tujuan.