Layanan Transmisi Data (DTS) mendukung sinkronisasi satu arah antar instans ApsaraDB for Tair (Redis OSS-compatible). Fitur ini dapat digunakan untuk redundansi geo-aktif dan pemulihan bencana geo.
Prasyarat
Sebelum memulai, pastikan hal-hal berikut:
Instans ApsaraDB for Tair (Redis OSS-compatible) tujuan telah dibuat. Untuk informasi lebih lanjut, lihat Langkah 1: Buat instans.
Ruang penyimpanan yang tersedia pada instans tujuan lebih besar daripada ruang penyimpanan yang digunakan pada instans sumber.
Versi database tujuan sama dengan atau lebih baru daripada versi database sumber. Versi tujuan yang lebih lama dapat menyebabkan masalah kompatibilitas.
Akun database sumber memiliki izin baca, sedangkan akun database tujuan memiliki izin baca dan tulis. Untuk informasi selengkapnya, lihat Buat dan kelola akun database.
Enkripsi Data Transparan (TDE) not diaktifkan pada instans sumber atau tujuan. Instans yang telah diaktifkan TDE tidak dapat digunakan dengan DTS.
Jika sumber adalah instans ApsaraDB for Tair (Edisi Perusahaan) dengan media penyimpanan Persistent Memory, parameter
appendonlydiatur keyes. Untuk informasi lebih lanjut, lihat Nonaktifkan Persistensi AOF.Jalankan
config set repl-timeout 600pada instans sumber untuk mengatur timeout replikasi master-replika menjadi 600 detik. Jika instans sumber menyimpan data dalam jumlah besar, tingkatkan nilai ini sesuai kebutuhan.Tingkatkan nilai
repl-backlog-sizedalamredis.confpada instans sumber untuk meningkatkan stabilitas sinkronisasi.
Penagihan
| Jenis sinkronisasi | Biaya |
|---|---|
| Sinkronisasi data penuh | Gratis |
| Sinkronisasi data inkremental | Dikenai biaya. Untuk informasi lebih lanjut, lihat Ikhtisar penagihan. |
Topologi sinkronisasi yang didukung
Sinkronisasi satu arah satu-ke-satu
Sinkronisasi satu arah satu-ke-banyak
Sinkronisasi kaskade satu arah
Untuk detailnya, lihat Topologi sinkronisasi.
Perintah yang dapat disinkronkan
Perintah berikut dapat disinkronkan:
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; ZADD, ZINCRBY, ZINTERSTORE, ZREM, ZREMRANGEBYLEX, ZUNIONSTORE, ZREMRANGEBYRANK, ZREMRANGEBYSCORE; SWAPDB, UNLINK (hanya untuk versi mesin sumber 4.0); XADD, XCLAIM, XDEL, XAUTOCLAIM, XGROUP CREATECONSUMER, XTRIM.
Perintah berikut tidak dapat disinkronkan:
PUBLISH: tidak didukung.
EVAL/EVALSHA (skrip Lua): DTS tidak dapat memastikan apakah skrip Lua dieksekusi pada tujuan selama sinkronisasi inkremental karena tujuan tidak mengembalikan hasil eksplisit.
SYNC/PSYNC untuk data LIST: DTS tidak menghapus data yang sudah ada sebelum melakukan sinkronisasi, sehingga tujuan mungkin berisi catatan duplikat.
Catatan penggunaan
Sebelum mengonfigurasi tugas
| Kategori | Catatan |
|---|---|
| Batasan database sumber | DTS menyisipkan kunci dengan awalan DTS_REDIS_TIMESTAMP_HEARTBEAT ke database sumber untuk melacak timestamp pembaruan. Pada arsitektur kluster, DTS menyisipkan kunci ini ke setiap shard. Kunci ini difilter selama sinkronisasi dan kedaluwarsa saat tugas berakhir. |
| Batasan database sumber | Jika database sumber bersifat read-only atau akun DTS tidak memiliki izin WRITE (SETEX), latensi sinkronisasi yang dilaporkan mungkin tidak akurat. |
| Batasan database sumber | Jangan menjalankan perintah FLUSHDB atau FLUSHALL pada database sumber. Perintah ini menyebabkan ketidakkonsistenan data antara sumber dan tujuan. |
| Batasan database sumber | Jika kebijakan kedaluwarsa diatur pada kunci sumber tertentu, kunci tersebut mungkin tidak segera dihapus setelah kedaluwarsa. Akibatnya, tujuan mungkin berisi lebih sedikit kunci daripada sumber. Jalankan perintah info untuk memeriksa jumlah kunci pada tujuan. |
| Batasan database sumber | Jika sumber adalah instans Redis standalone yang dikelola sendiri yang disinkronkan ke kluster Redis: setiap perintah hanya dapat beroperasi pada satu slot. Melakukan operasi pada kunci yang termasuk dalam slot berbeda menyebabkan error berikut dan menghentikan sinkronisasi: CROSSSLOT Keys in request don't hash to the same slot. Lakukan operasi hanya pada satu kunci dalam satu waktu selama sinkronisasi. |
| Batasan database tujuan | Selama sinkronisasi data penuh, DTS menggunakan resource baca dan tulis dari kedua instans, yang dapat meningkatkan beban server. Sinkronkan data selama jam sepi. |
| Batasan database tujuan | Hanya gunakan DTS untuk menulis data ke tujuan selama sinkronisasi. Menulis dari sumber lain menyebabkan ketidakkonsistenan data. |
| Batasan database tujuan | Jika tujuan diterapkan dalam arsitektur kluster dan sebuah shard mencapai batas memorinya atau instans kehabisan storage, tugas gagal karena out of memory (OOM). |
| Batasan database tujuan | Kebijakan default maxmemory-policy untuk instans Tair (Redis OSS-Compatible) adalah volatile-lru. Jika tujuan memiliki memori yang tidak mencukupi, penggantian data (eviction) dapat menyebabkan ketidakkonsistenan antar instans tanpa menghentikan tugas. Untuk mencegah kehilangan data, atur maxmemory-policy menjadi noeviction pada tujuan — tugas akan gagal jika memori habis, tetapi tidak ada data yang hilang secara diam-diam. Untuk informasi lebih lanjut, lihat Apa kebijakan penggantian default Tair? |
| TLS/SSL | Jika instans ApsaraDB for Tair (Redis OSS-Compatible) mengaktifkan TLS, hubungkan ke DTS menggunakan SSL-encrypted. TLSv1.3 tidak didukung. Instans yang mengaktifkan TLS tidak dapat terhubung ke DTS sebagai Alibaba Cloud Instance. |
| Kompatibilitas versi | Versi database tujuan harus sama dengan atau lebih baru daripada versi sumber. |
Selama dan setelah sinkronisasi
| Kategori | Catatan |
|---|---|
| Perlu dikonfigurasi ulang | Jika jumlah shard pada instans sumber berubah, atau Anda melakukan scaling spesifikasi database (seperti kapasitas memori), konfigurasi ulang tugas sinkronisasi. Hapus data yang sebelumnya telah disinkronkan dari tujuan sebelum mengonfigurasi ulang untuk memastikan konsistensi. |
| Perlu dikonfigurasi ulang | Jika alamat koneksi database Redis yang dikelola sendiri (sumber atau tujuan) berubah selama sinkronisasi, konfigurasi ulang tugas tersebut. |
| Pemicu resinkronisasi penuh | Situasi berikut dapat menyebabkan DTS melakukan resinkronisasi semua data ke tujuan, sehingga menyebabkan ketidakkonsistenan data sementara: kegagalan koneksi sementara di mana breakpoint resume gagal; pergantian master-slave atau failover pada sumber atau tujuan; perubahan alamat koneksi; atau modifikasi objek sinkronisasi. |
| Menjalankan ulang tugas | Menjalankan ulang instans sinkronisasi yang mencakup tugas penuh dan inkremental menyebabkan DTS menjalankan ulang kedua fase tersebut. |
| Pemulihan tugas DTS | Jika tugas DTS gagal, dukungan teknis DTS akan berusaha memulihkannya dalam waktu 8 jam. Selama proses ini, tugas mungkin dijalankan ulang dan parameter tugas (bukan parameter database) mungkin dimodifikasi. Parameter yang mungkin dimodifikasi tercantum dalam Modifikasi parameter instans. |
Konfigurasi tugas sinkronisasi satu arah
Langkah 1: Buka halaman Sinkronisasi Data
Gunakan salah satu metode berikut untuk membuka halaman Sinkronisasi Data.
Konsol DTS
Masuk ke Konsol DTS.
Di panel navigasi kiri, klik Data Synchronization.
Di pojok kiri atas, pilih wilayah tempat instans sinkronisasi berada.
Konsol DMS
Operasi aktual dapat berbeda tergantung pada mode dan tata letak Konsol DMS. Untuk informasi lebih lanjut, lihat Simple mode dan Sesuaikan tata letak dan gaya Konsol DMS.
Masuk ke Konsol DMS.
Di bilah navigasi atas, arahkan pointer ke Data + AI, lalu pilih DTS (DTS) > Data Synchronization.
Dari daftar drop-down di samping Data Synchronization Tasks, pilih wilayah tempat instans sinkronisasi berada.
Langkah 2: Buat tugas
Klik Create Task untuk membuka halaman konfigurasi tugas.
Langkah 3: Konfigurasi database sumber dan tujuan
| Bagian | Parameter | Deskripsi |
|---|---|---|
| N/A | Task Name | Nama tugas. DTS menghasilkan nama secara otomatis. Tentukan nama deskriptif agar mudah diidentifikasi. Nama tidak perlu unik. |
| Source Database | Select Existing Connection | Jika instans sudah terdaftar di DTS, pilih dari daftar drop-down — DTS akan mengisi otomatis parameter lainnya. Lihat Kelola koneksi database. Di Konsol DMS, gunakan daftar drop-down Select a DMS database instance. Jika instans belum terdaftar, konfigurasi parameter di bawah secara manual. |
| Source Database | Database Type | Pilih Tair/Redis. |
| Source Database | Access Method | Pilih Alibaba Cloud Instance. |
| Source Database | Instance Region | Pilih wilayah instans ApsaraDB for Tair (Redis OSS-Compatible) sumber. |
| Source Database | Replicate Data Across Alibaba Cloud Accounts | Pilih No (contoh ini menggunakan instans dalam akun yang sama). |
| Source Database | Instance ID | Pilih ID instans sumber. |
| Source Database | Authentication Method | Pilih Password Login untuk contoh ini. Catatan Account + Password Login memerlukan Redis versi 6.0 atau lebih baru. Untuk Secret-free login, aktifkan akses tanpa password pada instans terlebih dahulu — lihat Aktifkan akses tanpa password. |
| Source Database | Database Password | Masukkan password untuk instans sumber. Formatnya adalah <user>:<password> — contohnya, admin:Rp829dlwa. Untuk izin akun, lihat bagian Prasyarat. |
| Source Database | 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. |
| Destination Database | Select Existing Connection | Sama seperti database sumber. |
| Destination Database | Database Type | Pilih Tair/Redis. |
| Destination Database | Access Method | Pilih Alibaba Cloud Instance. |
| Destination Database | Instance Region | Pilih wilayah instans ApsaraDB for Tair (Redis OSS-Compatible) tujuan. |
| Destination Database | Replicate Data Across Alibaba Cloud Accounts | Pilih No (contoh ini menggunakan instans dalam akun yang sama). |
| Destination Database | Instance ID | Pilih ID instans tujuan. |
| Destination Database | Authentication Method | Pilih Password Login untuk contoh ini. Catatan yang sama berlaku seperti untuk sumber. |
| Destination Database | Database Password | Masukkan password untuk instans tujuan. Formatnya adalah <user>:<password>. |
| Destination Database | Encryption | Pilih Non-encrypted atau SSL-encrypted. |
Klik Test Connectivity and Proceed di bagian bawah halaman.
Pastikan blok CIDR server DTS telah ditambahkan ke pengaturan keamanan kedua instans untuk mengizinkan akses DTS. Untuk informasi lebih lanjut, lihat Tambahkan blok CIDR server DTS.
Jika sumber atau tujuan adalah database yang dikelola sendiri dan tidak diakses melalui Alibaba Cloud Instance, klik Test Connectivity di kotak dialog CIDR Blocks of DTS Servers.
Langkah 4: Konfigurasi objek sinkronisasi
Pada langkah Configure Objects, atur parameter berikut:
Parameter Deskripsi Synchronization Types Pilih Incremental Data Synchronization, atau Full Data Synchronization + Incremental Data Synchronization. CatatanJika Anda memilih Incremental Data Synchronization, Anda juga harus memilih Full Data Synchronization.
Synchronization Topology Pilih One-way Synchronization. CatatanParameter ini hanya tersedia jika baik sumber maupun tujuan adalah instans Tair (Edisi Perusahaan).
Processing Mode of Conflicting Tables Precheck and Report Errors: DTS memeriksa apakah data sudah ada di tujuan. Jika data sudah ada, pemeriksaan awal gagal dan tugas tidak dapat dimulai. Ignore Errors and Proceed: Melewati pemeriksaan keberadaan data. PeringatanHal ini dapat menyebabkan kehilangan data — catatan sumber akan menimpa catatan tujuan yang memiliki kunci yang sama.
Source Objects Pilih database yang akan disinkronkan dan klik ikon panah untuk menambahkannya ke Selected Objects. Anda hanya dapat memilih database, bukan kunci individual. Untuk menyaring kunci tertentu, gunakan fitur data filtering di Selected Objects. Selected Objects Untuk memetakan data ke database tertentu (DB 0–DB 255) atau menyaring berdasarkan awalan kunci, klik kanan database di Selected Objects dan konfigurasikan pengaturan di dialog Edit Schema. Lihat Map object names dan Tentukan kondisi filter. Klik Next: Advanced Settings dan konfigurasikan hal berikut:
Parameter Deskripsi Dedicated Cluster for Task Scheduling Secara default, DTS menggunakan klaster bersama. Beli klaster khusus untuk stabilitas tugas yang lebih tinggi. Lihat Apa itu klaster khusus DTS. Retry Time for Failed Connections Durasi DTS mencoba ulang jika sumber atau tujuan tidak tersedia. Nilai valid: 10–1440 menit. Default: 720 menit. Atur nilai ini lebih dari 30 menit. Jika DTS terhubung kembali dalam periode ini, tugas dilanjutkan; jika tidak, tugas gagal. CatatanJika beberapa tugas menggunakan database sumber atau tujuan yang sama, waktu retry terpendek yang berlaku. Biaya tetap berjalan selama DTS mencoba ulang.
Retry Time for Other Issues Durasi DTS mencoba ulang jika operasi DDL atau DML gagal. Nilai valid: 1–1440 menit. Default: 10 menit. Atur nilai ini lebih dari 10 menit. Nilai ini harus lebih kecil daripada Retry Time for Failed Connections. Enable Throttling for Full Data Synchronization Batasi penggunaan resource DTS pada sumber dan tujuan selama sinkronisasi 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). Opsi ini hanya tersedia jika Full Data Synchronization dipilih. Enable Throttling for Incremental Data Synchronization Batasi penggunaan resource DTS selama sinkronisasi inkremental dengan mengatur RPS of Incremental Data Synchronization dan Data synchronization speed for incremental synchronization (MB/s). Environment Tag Tag opsional untuk mengidentifikasi instans DTS. Extend Expiration Time of Destination Database Key Memperpanjang periode validitas kunci yang disinkronkan ke tujuan. Aktifkan opsi ini jika alur kerja Anda menggunakan perintah berikut untuk memastikan konsistensi: EXPIRE key seconds,PEXPIRE key milliseconds,EXPIREAT key timestamp,PEXPIREAT key timestampMs.CatatanDalam skenario kunci terdistribusi, perpanjangan masa kedaluwarsa dapat menunda pelepasan kunci.
Configure ETL Pilih Yes untuk mengonfigurasi fitur ekstrak, transformasi, dan muat (ETL), lalu masukkan pernyataan pemrosesan di editor kode. Pilih No untuk melewati. Lihat Apa itu ETL? dan Konfigurasi ETL dalam tugas migrasi data atau sinkronisasi data. Monitoring and Alerting Pilih Yes untuk mengonfigurasi peringatan jika tugas gagal atau latensi melebihi ambang batas, lalu atur ambang batas peringatan dan kontak notifikasi. Pilih No untuk melewati. Lihat Konfigurasi pemantauan dan peringatan saat membuat tugas DTS. Klik Next Step: Data Verification untuk mengonfigurasi verifikasi data. Untuk informasi lebih lanjut, lihat Konfigurasi tugas verifikasi data.
Langkah 5: Jalankan pemeriksaan awal
Untuk melihat 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 untuk menyimpan konfigurasi dan memulai pemeriksaan awal.
Tugas hanya dapat dimulai setelah pemeriksaan awal berhasil.
Jika pemeriksaan awal gagal, klik View Details di samping setiap item yang gagal, atasi masalahnya, lalu jalankan ulang pemeriksaan awal.
Jika peringatan dipicu: untuk item yang tidak dapat diabaikan, atasi masalah dan jalankan ulang pemeriksaan awal. Untuk item yang dapat diabaikan, klik Confirm Alert Details, lalu klik Ignore > OK > Precheck Again. Mengabaikan peringatan dapat menyebabkan ketidakkonsistenan data.
Langkah 6: Beli dan mulai instans
Tunggu hingga Success Rate mencapai 100%, lalu klik Next: Purchase Instance.
Di halaman pembelian, konfigurasi parameter berikut:
Bagian Parameter Deskripsi New Instance Class Billing Method Subscription: bayar di muka untuk jangka waktu tetap — lebih hemat biaya untuk penggunaan jangka panjang. Pay-as-you-go: ditagih per jam — cocok untuk penggunaan jangka pendek. Rilis instans saat tidak lagi digunakan untuk menghindari biaya berkelanjutan. Resource Group Settings Kelompok sumber daya untuk instans ini. Default: default resource group. Lihat Apa itu Resource Management? Instance Class DTS menyediakan beberapa kelas instans yang berbeda dalam kecepatan sinkronisasi. Pilih berdasarkan kebutuhan throughput Anda. Lihat Kelas instans untuk instansi sinkronisasi data. Subscription Duration Hanya untuk penagihan subscription: pilih 1–9 bulan, atau 1, 2, 3, atau 5 tahun. Baca dan pilih Data Transmission Service (Pay-as-you-go) Service Terms.
Klik Purchase And Start, lalu klik OK di dialog konfirmasi.
Tugas muncul di halaman Sinkronisasi Data. Anda dapat memantau perkembangannya di sana.
Jika tugas mencakup sinkronisasi penuh dan inkremental (Synchronization Types mencakup Full Data Synchronization dan Incremental Data Synchronization), tugas tersebut akan ditampilkan sebagai Incremental Data Synchronization di daftar tugas setelah fase penuh selesai.
Langkah selanjutnya
Setelah tugas sinkronisasi berjalan, verifikasi bahwa data mengalir dengan benar:
Periksa status tugas di halaman Sinkronisasi Data — tugas yang sehat menunjukkan status Synchronizing.
Pantau latensi sinkronisasi di detail tugas. Latensi yang tinggi atau terus meningkat mungkin menunjukkan bahwa database sumber menghasilkan perubahan lebih cepat daripada yang dapat diterapkan oleh DTS, atau adanya masalah jaringan yang memperlambat replikasi.
Jika Anda mengonfigurasi Monitoring and Alerting, pastikan peringatan telah diatur untuk kegagalan tugas dan ambang batas latensi.
Jika tugas gagal, periksa detail error dan rujuk ke bagian Catatan penggunaan untuk penyebab umum. Dukungan teknis DTS juga akan berusaha memulihkan tugas yang gagal dalam waktu 8 jam.