Jika Anda perlu melakukan migrasi atau menggabungkan data Redis lintas akun Alibaba Cloud—misalnya setelah restrukturisasi bisnis atau konsolidasi akun—Anda dapat menggunakan Data Transmission Service (DTS) untuk menyiapkan sinkronisasi data satu arah antara dua instans Tair (Redis OSS-Compatible) yang dimiliki oleh akun berbeda.
Ikhtisar
Pengaturan ini melibatkan dua akun yang bertindak secara berurutan:
| Langkah | Akun | Tindakan |
|---|---|---|
| 1. Berikan akses lintas akun | Akun A (pemilik sumber) | Buat role RAM dan tetapkan Akun B sebagai akun tepercaya untuk memberi otorisasi kepada DTS membaca resource milik Akun A. |
| 2. Konfigurasikan tugas sinkronisasi | Akun B (pemilik tujuan) | Masuk ke konsol DTS dan buat tugas sinkronisasi data dengan mereferensikan role RAM dari Langkah 1. |
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Instans Tair (Redis OSS-Compatible) tujuan yang sudah dibuat
Ruang penyimpanan yang cukup di instans tujuan—ruang yang tersedia harus melebihi ukuran total data instans sumber
Versi instans yang kompatibel—lakukan sinkronisasi dari versi yang lebih lama ke versi yang lebih baru, atau antar instans dengan versi yang sama
Untuk daftar versi instans yang didukung, lihat Ikhtisar solusi sinkronisasi data.
Penagihan
| Jenis sinkronisasi | Biaya |
|---|---|
| Sinkronisasi skema dan sinkronisasi data penuh | Gratis |
| Sinkronisasi data inkremental | Dikenai biaya. Untuk detailnya, lihat Ikhtisar penagihan. |
Batasan
Sebelum memulai
Tinjau batasan-batasan berikut sebelum mengonfigurasi tugas:
Kompatibilitas versi: Sinkronisasi hanya boleh dilakukan dari versi yang lebih lama ke versi yang lebih baru. Melakukan sinkronisasi dari versi yang lebih baru ke versi yang lebih lama dapat menyebabkan masalah kompatibilitas.
Sumber berarsitektur kluster — hanya perintah single-key: Jika sumber menggunakan arsitektur kluster, jalankan hanya perintah single-key selama sinkronisasi. Perintah yang beroperasi pada kunci di slot berbeda akan menyebabkan error
CROSSSLOT Keys in request don't hash to the same slotdan memutus tautan sinkronisasi.Tair Enterprise Edition dengan Persistent Memory: Jika instans sumber adalah instans Tair Enterprise Edition yang menggunakan Persistent Memory sebagai media penyimpanan, atur parameter
appendonlymenjadiyessebelum memulai. Lihat Prosedur.Transport Layer Security (TLS): Jika TLS diaktifkan pada instans sumber atau tujuan, gunakan koneksi SSL-encrypted di DTS. TLSv1.3 tidak didukung. Instans Tair yang diaktifkan TLS tidak dapat dihubungkan sebagai tipe Alibaba Cloud Instance di DTS.
Transparent Data Encryption (TDE): Jika TDE diaktifkan pada salah satu instans, DTS tidak dapat digunakan untuk sinkronisasi.
Ukuran replication backlog: Untuk memastikan tautan sinkronisasi stabil, tingkatkan nilai parameter
repl-backlog-sizedalam fileredis.conf.Sumber Redis self-managed — timeout replikasi: Jalankan
config set repl-timeout 600untuk mengatur timeout replikasi menjadi 600 detik. Tingkatkan nilai lebih lanjut jika sumber berisi data dalam jumlah besar.
Selama sinkronisasi
Perhatikan batasan-batasan berikut saat tugas sedang berjalan:
Jangan menulis dari sumber lain ke tujuan. Menulis data dari sumber lain ke tujuan menyebabkan ketidakkonsistenan data antara sumber dan tujuan.
Kebijakan memori tujuan: Secara default, instans Tair (Redis OSS-Compatible) menggunakan
volatile-lruuntuk penggantian data. Jika tujuan kehabisan memori, data mungkin diam-diam diganti tanpa menghentikan tugas, sehingga menyebabkan ketidakkonsistenan. Untuk mencegah kehilangan data diam-diam, aturmaxmemory-policymenjadinoevictionpada tujuan—jika memori habis, tugas gagal alih-alih mengganti data. Untuk detailnya, lihat Apa kebijakan penggantian default?Out of memory (OOM) pada kluster tujuan: Jika sebuah shard di kluster tujuan mencapai batas memorinya, atau jika tujuan memiliki ruang penyimpanan yang tidak mencukupi, tugas sinkronisasi gagal karena OOM.
Kunci kedaluwarsa: Kunci yang kedaluwarsa di sumber mungkin tidak langsung dihapus di tujuan. Jumlah kunci di tujuan mungkin lebih sedikit daripada di sumber. Jalankan perintah
infountuk memverifikasi jumlah kunci.Kunci heartbeat DTS: DTS memasukkan kunci dengan awalan
DTS_REDIS_TIMESTAMP_HEARTBEATke database sumber untuk melacak timestamp pembaruan. Jika database sumber menggunakan arsitektur kluster, DTS memasukkan kunci ini ke setiap shard. Kunci ini difilter selama sinkronisasi dan kedaluwarsa saat tugas berakhir.Pelaporan latensi: Jika sumber adalah instans hanya baca atau akun DTS tidak memiliki izin SETEX, latensi yang dilaporkan mungkin tidak akurat.
Perubahan titik akhir: Jika titik akhir sumber atau tujuan berubah selama sinkronisasi (misalnya karena migrasi instans atau failover), tugas mungkin mencoba ulang, mengalami latensi, gagal, atau menyebabkan ketidakkonsistenan data. Periksa status tugas segera dan konfigurasi ulang jika diperlukan.
Scaling sumber: Jika sumber diskalakan (shard ditambah atau dikurangi) atau memorinya ditingkatkan selama sinkronisasi, konfigurasi ulang tugas tersebut. Kosongkan data tujuan sebelum mengonfigurasi ulang untuk menjaga konsistensi.
Failover primary/replica pada tujuan: Jika failover dipicu pada tujuan, data mungkin hanya ditulis ke memori dan tidak dipertahankan ke replica, yang dapat menyebabkan kehilangan data.
Pemicu sinkronisasi ulang penuh: Peristiwa berikut dapat menyebabkan semua data disinkronkan ulang ke tujuan, mengakibatkan ketidakkonsistenan data sementara:
Kegagalan koneksi sementara mencegah tugas melanjutkan dari breakpoint
Terjadi failover primary/replica pada instans sumber atau tujuan
Titik akhir instans sumber atau tujuan berubah
Objek sinkronisasi instans DTS dimodifikasi
Pemulihan kegagalan instans DTS: Jika sebuah instans gagal, tim helpdesk DTS akan mencoba memulihkan instans tersebut dalam waktu 8 jam. Pemulihan dapat mencakup restart instans DTS atau penyesuaian parameternya (parameter database tidak dimodifikasi). Untuk daftar parameter yang mungkin dimodifikasi, lihat Modifikasi parameter instans.
Restart sinkronisasi penuh dan inkremental: Jika instans DTS yang menjalankan tugas sinkronisasi penuh dan inkremental direstart, kedua tugas tersebut dimulai ulang dari awal.
Perintah yang didukung untuk sinkronisasi inkremental
Tair (Redis OSS-Compatible) Open-Source Edition
APPEND, BITOP, BLPOP, BRPOP, BRPOPLPUSH, DECR, DECRBY, DEL, EVAL, EVALSHA, EXEC, EXPIRE, EXPIREAT, 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, RENAME, RENAMENX, RESTORE, RPOP, RPOPLPUSH, RPUSH, RPUSHX, SADD, SDIFFSTORE, SELECT, SET, SETBIT, SETEX, SETNX, SETRANGE, SINTERSTORE, SMOVE, SPOP, SREM, SUNIONSTORE, SWAPDB\*, UNLINK\*, XADD, XAUTOCLAIM, XCLAIM, XDEL, XGROUP CREATECONSUMER, XTRIM, ZADD, ZINCRBY, ZINTERSTORE, ZREM, ZREMRANGEBYLEX, ZUNIONSTORE, ZREMRANGEBYRANK, ZREMRANGEBYSCORE
\* SWAPDB dan UNLINK hanya didukung jika versi mesin sumber adalah Redis 4.0.
Tair (Redis OSS-Compatible) Enterprise Edition
APPEND, BITOP, BLPOP, BRPOP, BRPOPLPUSH, DECR, DECRBY, DEL, EVAL, EVALSHA, EXEC, EXPIRE, EXPIREAT, 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, RENAME, RENAMENX, RPOP, RPOPLPUSH, RPUSH, RPUSHX, SADD, SDIFFSTORE, SELECT, SET, SETBIT, SETEX, SETNX, SETRANGE, SINTERSTORE, SMOVE, SPOP, SREM, SUNIONSTORE, UNLINK, XADD, XAUTOCLAIM, XCLAIM, XDEL, XGROUP CREATECONSUMER, XTRIM, ZADD, ZINCRBY, ZINTERSTORE, ZREM, ZREMRANGEBYLEX, ZUNIONSTORE, ZREMRANGEBYRANK, ZREMRANGEBYSCORE
Perintah dengan perilaku khusus
| Perintah | Perilaku |
|---|---|
| PUBLISH | Tidak dapat disinkronkan. |
| EVAL, EVALSHA | DTS tidak dapat memastikan apakah skrip Lua dieksekusi di tujuan — tujuan tidak mengembalikan hasil eksekusi eksplisit selama sinkronisasi inkremental. |
| SYNC, PSYNC (tipe LIST) | DTS tidak menghapus data LIST yang sudah ada di tujuan sebelum sinkronisasi. Tujuan mungkin berisi catatan duplikat. |
Langkah 1: Berikan akses lintas akun (Akun A)
Masuk ke Konsol Manajemen Alibaba Cloud menggunakan akun yang memiliki instans Tair sumber (Akun A). Buat role RAM dan tetapkan akun yang memiliki instans tujuan (Akun B) sebagai akun tepercaya untuk memberi otorisasi kepada role RAM tersebut mengakses resource cloud milik Akun A.
Fitur ini mendukung komunikasi lintas situs, memungkinkan komunikasi antara akun situs Tiongkok Daratan (China site) dan akun situs internasional.
Untuk petunjuk langkah demi langkah, lihat Konfigurasikan otorisasi RAM untuk tugas DTS lintas akun.
Langkah 2: Konfigurasikan tugas sinkronisasi (Akun B)
Masuk menggunakan akun yang memiliki instans Tair tujuan (Akun B) dan selesaikan langkah-langkah berikut.
Buka halaman Sinkronisasi Data
Konsol DTS
Masuk ke konsol DTS.konsol DTS
Di panel navigasi kiri, klik Data Synchronization.
Di pojok kiri atas, pilih wilayah tempat tugas sinkronisasi akan berada.
Konsol DMS
Navigasi yang tepat mungkin berbeda tergantung pada mode dan tata letak konsol DMS Anda. Untuk detailnya, lihat Simple mode dan Sesuaikan tata letak dan gaya konsol DMS.
Masuk ke konsol DMS.konsol DMS
Di bilah navigasi atas, arahkan kursor ke Data + AI lalu pilih DTS (DTS) > Data Synchronization.
Dari daftar drop-down di sebelah kanan Data Synchronization Tasks, pilih wilayah tempat instans sinkronisasi berada.
Buat dan konfigurasikan tugas
Klik Create Task.
(Opsional) Klik New Configuration Page di pojok kanan atas.
Lewati langkah ini jika tombol Back to Previous Version sudah ditampilkan. Halaman konfigurasi baru dan sebelumnya mungkin memiliki parameter berbeda—gunakan versi baru.
Konfigurasikan database sumber dan tujuan.
PeringatanSetelah mengonfigurasi database sumber dan tujuan, baca Limits yang ditampilkan di halaman sebelum melanjutkan. Melewati langkah ini dapat menyebabkan kegagalan tugas atau ketidakkonsistenan data.
Database sumber
Parameter Nilai Task Name DTS menghasilkan nama secara otomatis. Tentukan nama deskriptif agar lebih mudah diidentifikasi. Nama tidak perlu unik. Select Existing Connection Jika instans sumber sudah terdaftar di DTS, pilih dari daftar drop-down—DTS akan mengisi kolom lainnya secara otomatis. Jika tidak, konfigurasikan kolom di bawah. Database Type Pilih Tair/Redis. Access Method Pilih Alibaba Cloud Instance. Instance Region Pilih wilayah instans Tair sumber. Replicate Data Across Alibaba Cloud Accounts Pilih Yesalert notification settings. Alibaba Cloud Account Masukkan ID akun Alibaba Cloud (akun utama) yang memiliki instans sumber. RAM Role Name Masukkan nama role RAM yang dibuat di Langkah 1. Instance ID Pilih ID instans Tair sumber. Authentication Method Pilih sesuai kebutuhan Anda. Contoh ini menggunakan Password Login. Jika Anda memilih Secret-free login, pastikan akses tanpa kata sandi diaktifkan pada instans sumber. Lihat Aktifkan akses tanpa kata sandi. Database Password Masukkan kredensial dengan izin baca. Untuk akun kustom, gunakan format <account>:<password>(misalnya,testaccount:Test1234). Untuk akun default (username sama dengan ID instans), masukkan kata sandi secara langsung. Biarkan kosong jika tidak ada kata sandi yang diatur. Untuk mengatur ulang kata sandi, lihat Modify or reset the password.Encryption Pilih Non-encrypted atau SSL-encrypted. Jika Anda memilih SSL-encrypted untuk instans Redis self-managed, unggah CA Certificate dan masukkan CA Key. Database tujuan
Parameter Nilai Select Existing Connection Jika instans tujuan sudah terdaftar di DTS, pilih dari daftar drop-down. Jika tidak, konfigurasikan kolom di bawah. Database Type Pilih Tair/Redis. Access Method Pilih Alibaba Cloud Instance. Instance Region Pilih wilayah instans Tair tujuan. Replicate Data Across Alibaba Cloud Accounts Pilih No—pengaturan lintas akun hanya berlaku untuk sisi sumber. Instance ID Pilih ID instans Tair tujuan. Authentication Method Pilih sesuai kebutuhan Anda. Contoh ini menggunakan Password Login. Jika Anda memilih Secret-free login, pastikan akses tanpa kata sandi diaktifkan. Lihat Aktifkan akses tanpa kata sandi. Database Password Masukkan kredensial dengan izin baca dan tulis. Untuk akun kustom, gunakan format <account>:<password>. Untuk akun default, masukkan kata sandi secara langsung. Untuk mengatur ulang, lihat Modify or reset the password.Encryption Pilih Non-encrypted atau SSL-encrypted. Klik Test Connectivity and Proceed.
Blok CIDR server DTS harus ditambahkan ke daftar putih keamanan instans sumber dan tujuan. Ini dapat dilakukan secara otomatis atau manual. Untuk detailnya, lihat Tambahkan alamat IP server DTS ke daftar putih. Jika salah satu instans bersifat self-managed (metode akses bukan Alibaba Cloud Instance), klik Test Connectivity di kotak dialog CIDR Blocks of DTS Servers.
Konfigurasikan objek yang akan disinkronkan. Di langkah Configure Objects, atur parameter berikut:
Parameter Deskripsi Synchronization Types Secara default, baik Full Data Synchronization maupun Incremental Data Synchronization dipilih. Jika Anda memilih Incremental Data Synchronization, pastikan juga memilih Full Data Synchronization—sinkronisasi lengkap dijalankan terlebih dahulu dan menyediakan garis dasar untuk sinkronisasi bertahap. Synchronization Topology Pilih One-way Synchronization. Parameter ini hanya tersedia jika sumber dan tujuan keduanya merupakan instans Tair (Enterprise Edition). Processing Mode of Conflicting Tables Precheck and Report Errors: gagal dalam pemeriksaan awal jika data sudah ada di tujuan. Ignore Errors and Proceed: melewati pemeriksaan keberadaan data di tujuan. PeringatanMemilih Ignore Errors and Proceed dapat menyebabkan kehilangan data — catatan sumber akan menimpa catatan tujuan dengan kunci yang sama.
Source Objects Pilih satu atau beberapa database dari daftar Source Objects lalu klik ikon panah untuk memindahkannya ke Selected Objects. Hanya database yang dapat dipilih sebagai objek sinkronisasi — kunci individual tidak dapat dipilih. Selected Objects Untuk memetakan DB 0–255 atau memfilter berdasarkan awalan kunci, klik kanan database di Selected Objects lalu pilih Edit Schema. Lihat Map object names dan Specify filter conditions. Nama objek tidak dapat dipetakan secara massal. Klik Next: Advanced Settings dan konfigurasikan parameter lanjutan:
Parameter Deskripsi Dedicated Cluster for Task Scheduling Secara default, DTS menjadwalkan tugas ke kluster bersama. Untuk meningkatkan stabilitas, beli kluster khusus. Lihat What is a DTS dedicated cluster. Retry Time for Failed Connections Durasi waktu DTS mencoba ulang koneksi yang gagal sebelum menghentikan tugas. Nilai yang valid: 10–1.440 menit. Default: 720. Atur ke nilai lebih dari 30. Jika beberapa tugas menggunakan sumber atau tujuan yang sama, waktu retry terpendek yang berlaku. DTS akan menagih Anda untuk instans selama masa percobaan ulang—atur nilai ini sesuai kebutuhan dan segera rilis instans DTS jika sumber atau tujuannya telah dirilis. Retry Time for Other Issues Durasi waktu DTS mencoba ulang operasi DDL atau DML yang gagal. Nilai yang valid: 1–1.440 menit. Default: 10. Atur ke nilai lebih dari 10. Nilai ini harus lebih kecil daripada Retry Time for Failed Connections. Enable Throttling for Full Data Synchronization Batasi penggunaan sumber daya baca/tulis selama sinkronisasi penuh untuk mengurangi beban pada kedua instans. Konfigurasikan Queries per second (QPS) to the source database, RPS of Full Data Migration, dan Data migration speed for full migration (MB/s). Opsi ini tersedia hanya jika Full Data Synchronization dipilih. Enable Throttling for Incremental Data Synchronization Batasi penggunaan sumber daya selama sinkronisasi inkremental. Konfigurasikan RPS of Incremental Data Synchronization dan Data synchronization speed for incremental synchronization (MB/s). Extend Expiration Time of Destination Database Key Perpanjang TTL kunci yang disinkronkan ke tujuan sebanyak jumlah detik tertentu. Konfigurasikan opsi ini saat menggunakan perintah berbasis masa berlaku seperti EXPIRE, PEXPIRE, EXPIREAT, atau PEXPIREAT. CatatanDalam skenario distributed lock, TTL yang diperpanjang dapat menunda pelepasan kunci.
Environment Tag Label untuk mengidentifikasi instans DTS. Opsional. Configure ETL Tentukan apakah akan mengaktifkan pemrosesan extract, transform, and load (ETL). Pilih Yes untuk mengonfigurasi ETL menggunakan editor kode. Lihat Configure ETL in a data migration or data synchronization task. Pilih No untuk melewati. Untuk ikhtisar, lihat What is ETL? Monitoring and Alerting Tentukan apakah akan mengonfigurasi peringatan untuk tugas sinkronisasi. Pilih Yes untuk mengatur ambang batas peringatan dan kontak notifikasi—peringatan akan dipicu saat tugas gagal atau ketika latensi melebihi ambang batas. Lihat Configure monitoring and alerting when you create a DTS task. Klik Next Step: Data Verification untuk mengonfigurasi verifikasi data (opsional). Untuk informasi selengkapnya, lihat Mengonfigurasi tugas verifikasi data.
Simpan tugas dan jalankan pemeriksaan awal.
Untuk melihat pratinjau parameter API untuk konfigurasi tugas ini, arahkan kursor ke Next: Save Task Settings and Precheck lalu klik Preview OpenAPI parameters.
Klik Next: Save Task Settings and Precheck.
DTS menjalankan pemeriksaan awal sebelum memulai tugas. Tugas hanya dimulai setelah pemeriksaan awal berhasil. - Jika pemeriksaan awal gagal, klik View Details di sebelah setiap item yang gagal, perbaiki masalahnya, lalu jalankan ulang pemeriksaan awal. - Jika pemeriksaan awal menghasilkan peringatan yang dapat diabaikan, klik Confirm Alert Details, klik Ignore di kotak dialog, lalu klik Precheck Again. Mengabaikan peringatan dapat menyebabkan ketidakkonsistenan data.
Beli instans.
Tunggu hingga Success Rate mencapai 100%, lalu klik Next: Purchase Instance.
Di halaman pembelian, konfigurasikan pengaturan penagihan dan instans:
Parameter Deskripsi Billing Method
Subscription: bayar di muka; lebih hemat biaya untuk penggunaan jangka panjang. Pay-as-you-go: ditagih per jam; rilis instans saat tidak lagi digunakan untuk menghindari biaya.
Resource Group Settings
Kelompok sumber daya untuk instans sinkronisasi. Default: default resource group. Lihat Apa itu Resource Management?
Instance Class
Pilih kelas berdasarkan kecepatan sinkronisasi yang dibutuhkan. Lihat Kelas instans untuk instansi sinkronisasi data.
Subscription Duration
Hanya tersedia untuk metode penagihan Subscription. Opsi: 1–9 bulan, 1 tahun, 2 tahun, 3 tahun, atau 5 tahun.
Baca dan terima Data Transmission Service (Pay-as-you-go) Service Terms.
Klik Purchase and Start. Di kotak dialog konfirmasi, klik OK. Tugas akan muncul di halaman Data Synchronization. Jika sinkronisasi penuh dan inkremental keduanya dikonfigurasi, Incremental Data Synchronization akan ditampilkan sebagai status saat ini setelah sinkronisasi penuh selesai.
Langkah selanjutnya
Setelah tugas sinkronisasi berjalan:
Pantau status tugas dan latensi di halaman Data Synchronization.
Atur peringatan untuk menerima notifikasi saat tugas gagal atau latensi melebihi ambang batas. Lihat Konfigurasikan pemantauan dan peringatan.
Verifikasi konsistensi data antara sumber dan tujuan menggunakan fitur verifikasi data. Lihat Konfigurasikan tugas verifikasi data.