T: Apa dampak memodifikasi data di database tujuan saat tugas sinkronisasi data atau migrasi sedang berjalan?
J: DTS mendukung sinkronisasi data antara berbagai sumber data, seperti sistem manajemen database relasional (RDBMS), database NoSQL, dan database pemrosesan analitik daring (OLAP). Untuk daftar instans database yang didukung, lihat Skema sinkronisasi data.
T: Apakah data dapat dituliskan ke database sumber dan tujuan secara bersamaan selama tugas sinkronisasi data atau migrasi berlangsung?
J: Ya. Namun, saat instance DTS berjalan, jika sumber data selain DTS menulis data ke database tujuan, hal tersebut dapat menyebabkan pengecualian pada data di database tujuan atau pada instance DTS.
Q: Apakah DTS mendukung sinkronisasi data berdasarkan pengambilan sampel atau migrasi berdasarkan rentang waktu?
J: Tidak.
T: Saat menyinkronkan atau memigrasikan data, apakah saya perlu membuat tabel secara manual di database tujuan?
J: Untuk Instans DTS yang mendukung tugas skema (Sinkronisasi skema atau migrasi skema), jika Anda telah mengonfigurasi tugas skema (Synchronization Types dengan Schema Synchronization yang dipilih, atau Migration Types dengan Schema Migration yang dipilih), Anda tidak perlu membuat tabel secara manual di database tujuan.
T: Saat menyinkronkan atau memigrasikan data, apakah database sumber dan database tujuan harus terhubung melalui jaringan?
J: Ya. Untuk mengetahui cara menambahkan tabel baru, lihat Tambahkan objek sinkronisasi.
T: Bagaimana cara menggunakan API untuk mengonfigurasi fitur ETL pada tugas sinkronisasi atau migrasi?
J: Anda dapat mengonfigurasinya melalui parameter Reserve pada API dengan menggunakan parameter umum seperti etlOperatorCtl dan etlOperatorSetting. Untuk informasi selengkapnya, lihat ConfigureDtsJob dan Referensi parameter Reserve.
T: Apakah data di database sumber tetap dipertahankan setelah sinkronisasi atau migrasi DTS selesai?
A: Ya. DTS tidak menghapus data di database sumber. Jika Anda tidak perlu mempertahankan data tersebut, hapuslah secara manual.
T: Jika saya menghapus data dari database sumber pada tugas sinkronisasi inkremental, apakah data yang telah disinkronkan di database tujuan juga akan dihapus?
J: Ya. Untuk informasi selengkapnya, lihat Mengaktifkan pembatasan kecepatan untuk migrasi data.
T: Kesalahan sinkronisasi inkremental menunjukkan bahwa paket terlalu besar atau nilai max_allowed_packet di tujuan tidak mencukupi. Bagaimana cara mengatasinya?
J: Data dengan kunci yang sama akan ditimpa. DTS memeriksa tujuan selama tahap pemeriksaan awal. Jika tujuan tidak kosong, kesalahan akan dilaporkan.
T: Tugas sinkronisasi terputus selama beberapa jam, dan saya menduga terdapat kunci MDL di tujuan. Bagaimana cara mengatasinya?
J: Ya. Anda dapat menggunakan fitur pemetaan untuk menyaring kolom yang tidak perlu disinkronkan, serta menentukan kondisi WHERE SQL untuk menyaring data yang akan disinkronkan. Untuk informasi lebih lanjut, lihat Sinkronkan atau migrasikan kolom tertentu dan Saring data tugas dengan kondisi SQL.
T: Kesalahan sinkronisasi inkremental menunjukkan bahwa tabel sementara hilang di database tujuan atau terjadi konflik SELECT INTO. Bagaimana cara mengatasinya?
J: Tidak. Jenis tugas yang berbeda tidak dapat saling dikonversi.
T: Saat menggunakan DTS untuk sinkronisasi data atau migrasi, apakah data yang sudah ada di tujuan akan ditimpa?
J: Ya. Saat mengonfigurasi tugas sinkronisasi, jangan pilih Schema Synchronization.
T: Apa saja kemungkinan penyebab ketidakkonsistenan data antara sumber dan tujuan pada instansi sinkronisasi data?
Kemungkinan penyebab ketidakkonsistenan data adalah sebagai berikut:
Saat mengonfigurasi tugas, Anda tidak mengosongkan tujuan, sehingga tujuan berisi data yang sudah ada.
Saat mengonfigurasi tugas, Anda hanya memilih modul sinkronisasi inkremental dan tidak memilih modul sinkronisasi penuh.
Saat mengonfigurasi tugas, Anda hanya memilih modul sinkronisasi penuh dan tidak memilih modul sinkronisasi inkremental, serta data sumber berubah setelah tugas selesai.
Data selain yang ditulis oleh tugas DTS ditulis ke tujuan.
Penulisan inkremental tertunda, dan belum semua data inkremental ditulis ke tujuan.
T: Apakah saya dapat memodifikasi nama database sumber di database tujuan dalam tugas sinkronisasi data?
J: Ya. Untuk mengetahui cara memodifikasi nama database sumber di database tujuan, lihat Ubah nama objek yang disinkronkan di instans tujuan.
T: Apakah DTS mendukung sinkronisasi real-time operasi DML atau DDL?
Ya. Untuk sinkronisasi data antar database relasional, operasi DML yang didukung adalah INSERT, UPDATE, dan DELETE, sedangkan operasi DDL yang didukung adalah CREATE, DROP, ALTER, RENAME, dan TRUNCATE.
CatatanOperasi DML dan DDL yang didukung bervariasi tergantung skenarionya. Di Skema sinkronisasi data, pilih tautan sinkronisasi yang sesuai dengan skenario bisnis Anda, lalu lihat operasi DML dan DDL yang didukung dalam panduan konfigurasi untuk tautan tersebut.
T: Apakah instans hanya baca dapat digunakan sebagai instans sumber tugas sinkronisasi?
Tugas sinkronisasi secara default mencakup sinkronisasi data inkremental. Oleh karena itu, dua skenario berikut berlaku:
Jika instans tersebut adalah instans hanya baca yang mencatat log transaksi (misalnya, ApsaraDB RDS for MySQL 5.7 atau 8.0), instans tersebut dapat berfungsi sebagai instans sumber.
Jika instans tersebut adalah instans hanya baca yang tidak mencatat log transaksi (misalnya, ApsaraDB RDS for MySQL 5.6), instans tersebut tidak dapat berfungsi sebagai instans sumber.
T: Apakah DTS mendukung sinkronisasi data untuk database dan tabel yang di-shard?
J: Ya. Misalnya, Anda dapat menyinkronkan database dan tabel yang di-shard di MySQL atau PolarDB for MySQL ke AnalyticDB for MySQL untuk menggabungkan beberapa tabel.
T: Mengapa volume data di instans tujuan lebih kecil daripada di instans sumber setelah tugas sinkronisasi selesai?
J: Jika data difilter selama sinkronisasi, atau jika tabel di instans sumber mengandung banyak fragmen, volume data di instans tujuan mungkin lebih kecil daripada di instans sumber setelah migrasi selesai.
T: Apakah tugas sinkronisasi lintas akun mendukung sinkronisasi dua arah?
J: Saat ini, tugas sinkronisasi dua arah lintas akun hanya didukung antar instans ApsaraDB RDS for MySQL, antar kluster PolarDB for MySQL, antar instans Tair (Edisi Perusahaan), antar instans ApsaraDB for MongoDB (arsitektur replica set), dan antar instans ApsaraDB for MongoDB (arsitektur kluster ter-shard).
T: Apakah DTS mendukung tugas sinkronisasi dua arah lintas batas negara?
J: Tidak.
T: Mengapa catatan yang ditambahkan ke salah satu database dalam tugas sinkronisasi dua arah tidak muncul di database lainnya?
J: Tugas balik mungkin belum dikonfigurasi.
T: Mengapa progres tugas sinkronisasi inkremental tidak pernah mencapai 100%?
J: Sinkronisasi inkremental DTS terus-menerus mereplikasi perubahan dari sumber ke tujuan secara real-time dan tidak berhenti sendiri. Oleh karena itu, tidak ada status penyelesaian 100%. Jika Anda tidak lagi memerlukan sinkronisasi real-time, hentikan tugas di konsol DTS.
Q: Mengapa tugas sinkronisasi inkremental gagal menyinkronkan data?
J: Jika hanya sinkronisasi inkremental yang dikonfigurasi untuk instans DTS, DTS hanya menyinkronkan data inkremental yang dihasilkan setelah tugas dimulai. Data yang sudah ada sebelum tugas dimulai tidak disinkronkan ke database tujuan. Untuk memastikan konsistensi data, kami menyarankan Anda memilih Incremental Data Synchronization, Schema Synchronization, dan Full Data Synchronization saat mengonfigurasi tugas.
T: Apakah menyinkronkan data penuh dari database RDS memengaruhi kinerja database RDS sumber?
Ya. Kinerja kueri database sumber terpengaruh. Anda dapat menggunakan salah satu dari tiga metode berikut untuk mengurangi dampak tugas DTS terhadap database sumber:
Tingkatkan spesifikasi instans database sumber.
Jeda tugas DTS dan jalankan ulang saat beban pada database sumber rendah.
Kurangi laju tugas DTS. Sesuaikan laju migrasi penuh.
T: Apakah DTS mendukung sinkronisasi dari MySQL ke ClickHouse?
J: Fitur sinkronisasi data dari database MySQL ke kluster ClickHouse di DTS telah dihentikan. Pengguna yang telah membeli fitur ini tidak terpengaruh. Untuk pembelian fitur baru, merujuk ke dokumentasi produk ApsaraDB for ClickHouse dan lihat topik Sinkronkan data dari ApsaraDB RDS for MySQL untuk mengonfigurasi sinkronisasi dari MySQL ke ClickHouse.
T: Mengapa tidak ada latensi yang ditampilkan untuk instansi sinkronisasi yang database sumbernya adalah PolarDB-X 1.0?
J: Instans yang database sumbernya adalah PolarDB-X 1.0 merupakan tugas terdistribusi, tetapi metrik yang dipantau DTS hanya ada di subtask. Oleh karena itu, informasi latensi tidak ditampilkan untuk instans yang sumbernya adalah PolarDB-X 1.0. Untuk melihat informasi latensi, klik ID instans dan buka Task Management > Subtask Details untuk instans tersebut.
T: Mengapa tugas penggabungan multi-tabel melaporkan error DTS-071001?
J: Hal ini mungkin terjadi karena operasi DDL daring dilakukan pada database sumber saat tugas penggabungan multi-tabel sedang berjalan, yang mengubah skema tabel sumber, dan perubahan yang sesuai tidak diterapkan secara manual ke database tujuan.
T: Apa yang harus saya lakukan jika penambahan daftar putih gagal saat mengonfigurasi tugas di konsol sebelumnya?
J: Konfigurasikan tugas di konsol baru.
T: Apa yang harus saya lakukan jika tugas sinkronisasi data DTS gagal karena operasi DDL dilakukan pada database sumber?
J: Jalankan secara manual operasi DDL di tujuan berdasarkan operasi DDL yang dilakukan di sumber, lalu jalankan ulang tugas. Selama sinkronisasi data, jangan gunakan alat seperti pt-online-schema-change untuk melakukan perubahan DDL daring pada objek yang disinkronkan di database sumber. Jika tidak, sinkronisasi akan gagal. Jika tidak ada data selain yang ditulis oleh DTS yang ditulis ke database tujuan, Anda dapat menggunakan Data Management (DMS) untuk melakukan perubahan DDL daring, atau Anda dapat memodifikasi objek yang disinkronkan untuk menghapus tabel yang terpengaruh oleh DDL. Prosedur penghapusan tabel dapat dilihat di Hapus objek sinkronisasi.
T: Apa yang harus saya lakukan jika tugas sinkronisasi data DTS gagal karena operasi DDL dilakukan pada database tujuan?
Jika database atau tabel di tujuan di-drop selama sinkronisasi inkremental oleh DTS dan tugas menjadi abnormal, Anda dapat menggunakan salah satu dari dua solusi berikut untuk memulihkan tugas:
Solusi 1: Konfigurasi ulang tugas dan jangan pilih database atau tabel yang menyebabkan tugas gagal sebagai objek yang akan disinkronkan.
Solusi 2: Modifikasi objek yang disinkronkan dan hapus database atau tabel yang menyebabkan tugas gagal. Prosedurnya dapat dilihat di Hapus objek sinkronisasi.
T: Apakah tugas sinkronisasi dapat dipulihkan setelah dirilis? Apakah konsistensi data dapat dijamin dengan mengonfigurasi ulang tugas?
J: Tugas sinkronisasi yang telah dirilis tidak dapat dipulihkan. Saat Anda mengonfigurasi ulang tugas, jika Anda tidak memilih Full Data Synchronization, data yang ditambahkan selama periode dari rilis tugas hingga dimulainya tugas baru tidak dapat disinkronkan ke database tujuan, sehingga konsistensi data tidak dapat dijamin. Jika bisnis Anda memerlukan akurasi data yang ketat, Anda dapat menghapus data dari database tujuan, lalu mengonfigurasi ulang tugas sinkronisasi, dan memilih Schema Synchronization dan Full Data Synchronization di Task Stages (Incremental Data Synchronization dipilih secara default).
T: Apa yang harus saya lakukan jika tugas sinkronisasi penuh DTS tidak menunjukkan progres dalam waktu lama?
J: Jika tabel yang akan disinkronkan tidak memiliki kunci primer, sinkronisasi penuh akan sangat lambat. Kami menyarankan Anda menambahkan kunci primer ke tabel di database sumber sebelum menyinkronkannya.
T: Saat menyinkronkan tabel dengan nama yang sama, apakah data dari tabel sumber hanya ditransfer jika data tersebut tidak ada di tabel tujuan?
J: Ya. Saat mengonfigurasi tugas, atur Processing Mode of Conflicting Tables ke Ignore Errors and Proceed. Jika skema konsisten, selama sinkronisasi penuh, ketika tujuan menemukan catatan yang nilai kunci primernya sama dengan yang ada di sumber, catatan dari sumber tidak disinkronkan ke tujuan.
T: Bagaimana cara mengonfigurasi tugas sinkronisasi lintas akun?
J: Anda harus menentukan Skenario untuk tugas lintas akun terlebih dahulu, kemudian gunakan Akun Alibaba Cloud yang memiliki instansiasi basis data untuk Mengonfigurasi otorisasi RAM untuk tugas DTS lintas akun, lalu Mengonfigurasi tugas DTS lintas akun.
T: Apa yang harus saya lakukan jika saya tidak dapat memilih instans DMS LogicDB?
J: Pastikan Anda memilih wilayah yang benar tempat instans tersebut berada. Jika Anda masih tidak dapat memilih instans tersebut, mungkin hanya tersedia satu instans. Lanjutkan mengonfigurasi parameter lainnya.
T: Apakah tugas sinkronisasi yang menggunakan SQL Server sebagai sumber mendukung sinkronisasi fungsi?
J: Tidak. Jika tabel dipilih sebagai granularitas objek yang disinkronkan, objek lain seperti view, trigger, dan prosedur tersimpan tidak disinkronkan ke database tujuan.
T: Apa yang harus saya lakukan jika tugas sinkronisasi data melaporkan error?
J: Berdasarkan pesan error, lihat solusinya di Ikhtisar Error Umum.
T: Bagaimana cara mengaktifkan penggabungan hotspot untuk tugas sinkronisasi?
J: Merujuk ke Modifikasi nilai parameter untuk mengubah nilai trans.hot.merge.enable menjadi true.
T: Bagaimana cara melakukan sinkronisasi jika database sumber berisi Pemicu?
J: Saat seluruh database dipilih sebagai objek yang disinkronkan dan TRIGGER di database memperbarui tabel di database tersebut, ketidakkonsistenan data antara database sumber dan tujuan mungkin terjadi. Untuk prosedur sinkronisasi, lihat Mengonfigurasi tugas untuk database sumber dengan trigger.
T: Apakah DTS mendukung sinkronisasi database sys dan database sistem?
J: Tidak.
T: Apakah DTS mendukung sinkronisasi database admin dan local MongoDB?
J: Tidak. DTS tidak mendukung database admin dan local MongoDB sebagai database sumber atau tujuan.
T: Kapan tugas balik dari tugas sinkronisasi dua arah dapat dikonfigurasi?
J: Tugas balik dari tugas sinkronisasi dua arah hanya dapat dikonfigurasi setelah tugas inkremental maju tidak memiliki latensi.
T: Saat PolarDB-X 1.0 menjadi sumber tugas sinkronisasi, apakah PolarDB-X 1.0 sumber mendukung penskalaan node?
J: Tidak. Jika PolarDB-X 1.0 sumber melakukan penskalaan node naik atau turun, Anda harus mengonfigurasi ulang tugas.
T: Apakah DTS dapat menjamin keunikan data yang disinkronkan ke Kafka?
J: Tidak. Karena data ditambahkan ke Kafka, data duplikat mungkin terjadi saat tugas DTS dijalankan ulang atau saat log sumber ditarik beberapa kali. DTS menjamin idempotensi data: data diatur secara berurutan, dan nilai terbaru dari data duplikat ditempatkan di akhir.
T: Apakah sinkronisasi data DTS mendukung sinkronisasi dari ApsaraDB RDS for MySQL ke tujuan lain?
J: Ya. Untuk prosedur konfigurasinya, lihat Sinkronkan data dari ApsaraDB RDS for MySQL ke AnalyticDB for MySQL 3.0.
T: Mengapa sinkronisasi penuh tidak ditampilkan untuk tugas sinkronisasi antar instans Redis?
J: Sinkronisasi antar instans Redis mendukung sinkronisasi data penuh dan sinkronisasi data inkremental. Kedua tahap tersebut digabung dan ditampilkan sebagai Incremental Data Synchronization.
T: Apakah saya dapat melewati sinkronisasi penuh?
J: Ya. Setelah Anda melewati sinkronisasi penuh, sinkronisasi inkremental akan berlanjut, tetapi error mungkin terjadi. Kami menyarankan agar Anda tidak melewati sinkronisasi penuh.
T: Apakah DTS mendukung sinkronisasi otomatis terjadwal?
J: DTS saat ini tidak mendukung pengaktifan terjadwal tugas sinkronisasi data.
T: Apakah ruang terfragmentasi di tabel juga disinkronkan selama sinkronisasi?
J: Tidak.
T: Apa yang perlu saya ketahui saat menyinkronkan data dari MySQL 8.0 ke MySQL 5.6?
J: Anda harus membuat database di MySQL 5.6 sebelum melakukan sinkronisasi. Kami menyarankan agar database sumber dan tujuan menjalankan versi yang sama, atau Anda menyinkronkan dari versi yang lebih rendah ke versi yang lebih tinggi untuk memastikan kompatibilitas. Menyinkronkan dari versi yang lebih tinggi ke versi yang lebih rendah dapat menyebabkan masalah kompatibilitas database.
T: Apakah saya dapat menyinkronkan akun dari database sumber ke database tujuan?
J: Saat ini, hanya tugas sinkronisasi antar instans ApsaraDB RDS for MySQL yang mendukung sinkronisasi akun. Tugas sinkronisasi lainnya tidak mendukung fitur ini.
T: Apakah saya dapat mengonfigurasi tugas sinkronisasi dua arah lintas akun?
Saat ini, tugas sinkronisasi dua arah lintas akun hanya didukung antar instans ApsaraDB RDS for MySQL, antar kluster PolarDB for MySQL, antar instans Tair (Edisi Perusahaan), antar instans ApsaraDB for MongoDB (arsitektur replica set), dan antar instans ApsaraDB for MongoDB (arsitektur kluster ter-shard).
CatatanUntuk tugas yang tidak memiliki opsi konfigurasi Replicate Data Across Alibaba Cloud Accounts, Anda dapat mencoba menggunakan Cloud Enterprise Network (CEN) untuk mengimplementasikan tugas sinkronisasi dua arah lintas akun. Untuk informasi lebih lanjut, lihat Akses database lintas akun atau wilayah.
T: Bagaimana cara mengonfigurasi parameter saat ApsaraMQ for Kafka menjadi tujuan?
J: Konfigurasikan parameter berdasarkan skenario aktual Anda. Untuk metode konfigurasi beberapa parameter khusus, lihat Mengonfigurasi parameter instans Kafka.
T: Berapa banyak instansi sinkronisasi data yang dapat saya coba secara gratis?
J: Anda dapat mencoba satu instansi sinkronisasi secara gratis selama periode tiga bulan. Untuk informasi lebih lanjut, lihat Uji Coba Gratis Alibaba Cloud.
T: Bagaimana cara menangani error "ERR invalid DB index" saat menggunakan DTS untuk menyinkronkan atau memigrasikan data Redis?
Penyebab: Error
ERR invalid DB indexterjadi saat database tujuan melakukan operasiSELECT DB. Hal ini biasanya disebabkan oleh jumlahdatabaseyang tidak mencukupi di database tujuan. Jika database tujuan menggunakan proxy, periksa apakah proxy tersebut dapat menghapus batasan jumlahdatabase.Solusi: Modifikasi konfigurasi
databasedi database tujuan. Kami menyarankan Anda menaikkan nilainya agar sesuai dengan database sumber, lalu jalankan ulang tugas DTS. Perintah untuk mengkueri konfigurasidatabasedi database tujuan adalah sebagai berikut:CONFIG GET databases;T: Bagaimana cara menangani error "IDENTIFIER CLUSTERED" saat menyinkronkan atau memigrasikan data dari SQL Server ke AnalyticDB for PostgreSQL?
Jawaban:
Penyebab: Saat menyinkronkan atau memigrasikan data SQL Server ke AnalyticDB for PostgreSQL, tugas tidak dapat dilanjutkan karena perintah
CREATE CLUSTERED INDEXtidak didukung.Solusi: Setelah Anda memastikan tidak ada perintah DDL lain dalam periode latensi, Modifikasi parameter instans atur
sink.ignore.failed.ddlmenjadi true (untuk menyaring eksekusi semua pernyataan DDL). Setelah checkpoint sinkronisasi atau migrasi inkremental maju, atur kembalisink.ignore.failed.ddlmenjadi false.T: Dalam tugas sinkronisasi atau migrasi Redis, apakah memperpanjang waktu kedaluwarsa kunci di database tujuan memiliki efek nyata?
J:
Untuk mencegah kunci kedaluwarsa selama sinkronisasi data penuh, Anda dapat memperpanjang waktu kedaluwarsa kunci di database tujuan dalam tugas. Untuk tugas DTS yang mencakup bagian sinkronisasi atau migrasi inkremental, jika kunci di database sumber kedaluwarsa dan dihapus, kunci yang sesuai di database tujuan juga akan dilepas.
T: Setelah waktu kedaluwarsa kunci di database tujuan diperpanjang, jika kunci di database sumber kedaluwarsa, apakah kunci yang sesuai di database tujuan dilepas segera?
J:
Kunci di database tujuan tidak selalu dilepas segera setelah kedaluwarsa. Kunci di database tujuan dilepas segera hanya jika kunci yang sesuai di database sumber kedaluwarsa dan dibersihkan.
Misalnya, jika kunci di database sumber diatur untuk kedaluwarsa dalam 5 detik dan waktu kedaluwarsa kunci yang sesuai di database tujuan diperpanjang menjadi 30 detik, ketika kunci sumber kedaluwarsa dan secara otomatis dibersihkan setelah 5 detik, kunci tujuan dilepas segera. Saat kunci di database sumber kedaluwarsa dan secara otomatis dibersihkan, sistem menambahkan operasi penghapusan ke file AOF. Permintaan tersebut disinkronkan ke database tujuan dan dieksekusi di sana.
T: Bagaimana cara menangani error "column_name[xxx], the length of input string is too long than vec schema" saat menggunakan DTS untuk menyinkronkan data ke SelectDB?
Penyebab: Ukuran inkremental kolom xxx di sumber telah melebihi batas panjang tipe kolom xxx di tujuan.
Solusi: Jika kolom bertipe
STRING, Anda dapat mengatasi masalah ini dengan menaikkan parameter string_type_length_soft_limit_bytes di konsol SelectDB. Anda harus mengaturnya ke nilai yang lebih besar daripanjang aktual(7.241.898).
T: Bagaimana cara menangani error "column(xxx) values is null while columns is not nullable." saat menggunakan DTS untuk menyinkronkan data ke SelectDB?
Penyebab: Kolom xxx di tujuan adalah
NOT NULL, tetapi nilaiNULLditulis ke dalamnya.Solusi:
Ubah tipe kolom di tujuan agar mengizinkan nilai NULL.
Modifikasi objek yang disinkronkan: Hapus tabel bermasalah, perbaiki data sumber, lalu drop tabel yang sesuai di tujuan. Modifikasi kembali objek yang disinkronkan untuk menambahkan kembali tabel tersebut, lalu jalankan ulang sinkronisasi penuh dan inkremental.
CatatanSkenario umum: Sumber berisi data tanggal yang tidak valid, seperti
0000-0000-0000. DTS secara otomatis mengonversi data tersebut menjadiNULL, yang memicu kesalahan.T: Bagaimana cara memperbaiki pemetaan nama tabel tujuan yang dikonfigurasi salah?
J: Di halaman konfigurasi tugas DTS, pada bagian Selected Objects, perluas database tujuan, temukan tabel dengan pemetaan salah, lalu klik tombol Edit di sebelah kanan. Di kotak dialog yang muncul, ubah nama tabel tujuan menjadi nama yang benar, lalu simpan perubahan tersebut.
T: Bagaimana cara mengisi kembali data historis setelah saya menambahkan kolom baru?
DTS tidak secara otomatis mengisi kembali data historis untuk kolom yang baru ditambahkan. Aturan ini berlaku untuk semua jenis database tujuan, bukan hanya SelectDB. Untuk mengisi kembali data historis, lakukan langkah-langkah berikut:
Tambahkan secara manual kolom baru ke tabel tujuan.
Di konsol DTS, modifikasi objek yang disinkronkan dan hapus tabel dari objek yang disinkronkan.
Jalankan
TRUNCATEuntuk mengosongkan data dari tabel tujuan (jika Anda perlu memastikan konsistensi data).Tambahkan kembali tabel ke objek yang disinkronkan untuk memicu sinkronisasi data penuh plus data inkremental, yang memigrasikan data historis, termasuk kolom baru, ke database tujuan.
T: Saat tugas sinkronisasi inkremental DTS melaporkan error karena skema tabel tidak konsisten, apakah saya dapat melewati operasi DML secara massal?
DTS tidak mendukung pelewatkan operasi DML secara massal secara langsung. Anda dapat menggunakan salah satu dari dua solusi berikut:
Solusi 1 (disarankan): Tambahkan pernyataan DDL yang hilang agar skema tabel sumber dan tujuan konsisten, lalu jalankan ulang tugas. Solusi ini tidak menyebabkan kehilangan data.
Solusi 2: Modifikasi checkpoint sinkronisasi (misalnya, lewati rentang waktu satu detik atau satu menit) untuk melewati catatan inkremental yang menyebabkan error.
PeringatanSolusi 2 melewatkan semua operasi DML (termasuk INSERT, UPDATE, dan DELETE) dalam rentang waktu tersebut, yang dapat menyebabkan kehilangan data atau ketidakkonsistenan. Evaluasi dampaknya secara hati-hati sebelum menggunakan solusi ini.
T: Apa itu opsi "Migrate Events" dalam konfigurasi DTS? Bagaimana cara memilih nilainya?
Opsi Migrate Events mengontrol apakah objek event di database sumber disinkronkan ke database tujuan.
No (default): Objek event di database sumber tidak disinkronkan. Jika database tujuan tidak perlu menjalankan logika event terjadwal, pertahankan nilai default.
Yes: Definisi event dan logika pemicu di database sumber disinkronkan ke database tujuan. Jika Anda perlu mereproduksi sepenuhnya penjadwalan event database sumber di database tujuan, pilih opsi ini.
T: Bagaimana cara menangani ketidakkonsistenan data atau desinkronisasi skema saat memodifikasi objek yang disinkronkan?
J: Saat salah satu dari masalah berikut terjadi, Anda dapat menyelesaikannya dengan menghapus dan menambahkan kembali objek yang disinkronkan:
Data di database tujuan tidak konsisten dengan data di database sumber.
Perubahan DDL di sisi sumber (seperti menambah kolom atau mengubah tipe kolom) tidak disinkronkan ke tujuan.
Tabel dengan kunci unik yang berisi nilai NULL disinkronkan secara abnormal.
Error sintaksis SQL (seperti error
near 'null').
Prosedur:
Modifikasi objek yang disinkronkan pada tugas DTS dan hapus tabel bermasalah.
Di tujuan, drop (
DROP TABLE) atau kosongkan (TRUNCATE TABLE) tabel bermasalah yang sesuai.Tambahkan kembali tabel ke objek yang disinkronkan pada tugas DTS, lalu mulai pemeriksaan awal. DTS menginisialisasi ulang skema dan melakukan sinkronisasi penuh dan inkremental pada tabel tersebut.
T: Apa dampak memodifikasi data di database tujuan saat tugas sinkronisasi atau migrasi data sedang berjalan?
Memodifikasi data di database tujuan dapat menyebabkan tugas DTS gagal. Selama migrasi atau sinkronisasi data, melakukan operasi pada objek yang sedang dimigrasikan atau disinkronkan di database tujuan dapat menyebabkan masalah seperti konflik kunci primer atau catatan pembaruan yang hilang, yang pada akhirnya menyebabkan tugas DTS gagal. Namun, Anda dapat melakukan operasi yang tidak mengganggu tugas DTS. Misalnya, jika Anda membuat tabel di instans tujuan dan menulis data ke dalamnya, tugas DTS tidak terpengaruh karena tabel tersebut tidak termasuk dalam objek migrasi atau sinkronisasi.
Karena DTS membaca informasi dari database instans sumber dan memigrasikan atau menyinkronkan data penuh, data skema, dan data inkremental ke instans tujuan, modifikasi data yang dilakukan di database tujuan selama tugas mungkin ditimpa oleh data yang dimigrasikan atau disinkronkan dari database sumber.
T: Saat menggunakan DTS untuk sinkronisasi atau migrasi data, apakah data yang sudah ada di tujuan ditimpa?
J: Mengambil contoh sinkronisasi data, perilaku default dan parameter terkait DTS adalah sebagai berikut:
Perilaku default DTS: Jika terjadi konflik kunci primer atau kunci unik saat tugas sinkronisasi berjalan:
-
Jika skema tabel sama dan catatan di database tujuan memiliki nilai kunci primer atau kunci unik yang sama dengan catatan di database sumber:
-
Selama sinkronisasi penuh, DTS mempertahankan catatan di kluster tujuan. Catatan yang sesuai dari database sumber tidak disinkronkan.
-
Selama sinkronisasi inkremental, catatan dari database sumber menimpa catatan di database tujuan.
-
-
Jika skema tabel berbeda, sinkronisasi data awal mungkin gagal. Hal ini dapat mengakibatkan hanya data kolom parsial yang disinkronkan atau kegagalan sinkronisasi total. Lakukan dengan hati-hati.
Parameter terkait: Saat mengonfigurasi tugas, Anda dapat menggunakan parameter Processing Mode of Conflicting Tables untuk mengelola cara pemrosesan data terkait.
-
Precheck and Report Errors: Memeriksa apakah tabel dengan nama yang sama ada di database tujuan. Jika tabel dengan nama yang sama tidak ada, pemeriksaan awal lolos. Jika tabel dengan nama yang sama ada, pemeriksaan awal gagal dan tugas sinkronisasi data tidak dimulai.
CatatanJika Anda tidak dapat menghapus atau mengganti nama tabel dengan nama yang sama di database tujuan, Anda dapat memetakannya ke nama tabel yang berbeda. Untuk informasi lebih lanjut, lihat Pemetaan nama tabel dan kolom.
-
Ignore Errors and Proceed: Melewatkan pemeriksaan nama tabel duplikat di database tujuan.
PeringatanMemilih Ignore Errors and Proceed dapat menyebabkan ketidakkonsistenan data dan membahayakan bisnis Anda. Misalnya:
-
Jika skema tabel sama dan catatan di database tujuan memiliki nilai kunci primer atau kunci unik yang sama dengan catatan di database sumber:
-
Selama sinkronisasi penuh, DTS mempertahankan catatan di kluster tujuan. Catatan yang sesuai dari database sumber tidak disinkronkan.
-
Selama sinkronisasi inkremental, catatan dari database sumber menimpa catatan di database tujuan.
-
-
Jika skema tabel berbeda, sinkronisasi data awal mungkin gagal. Hal ini dapat mengakibatkan hanya data kolom parsial yang disinkronkan atau kegagalan sinkronisasi total. Lakukan dengan hati-hati.
-
Saran: Untuk memastikan konsistensi data, kami menyarankan Anda menghapus tabel tujuan sebelum mengonfigurasi tugas DTS, jika bisnis Anda mengizinkannya.
T: Error sinkronisasi inkremental menunjukkan bahwa tabel temporary hilang di database tujuan atau terjadi konflik SELECT INTO. Bagaimana cara menyelesaikannya?
Penyebab:
Masalah ini sebenarnya tidak disebabkan oleh tabel temporary yang hilang di database tujuan. Sebaliknya, setelah Change Data Capture (CDC) diaktifkan di database sumber, trigger yang dibuat oleh DTS mencegat pembuatan tabel implisit yang dilakukan oleh
SELECT INTO, yang menyebabkan konflik selama sinkronisasi data.Solusi:
Verifikasi bahwa file log transaksi di sumber ada dan utuh.
Nonaktifkan fitur CDC di database sumber.
Login ke konsol DTS, konfigurasi ulang tugas sinkronisasi, pilih Parse source database logs sebagai metode sinkronisasi inkremental, lalu jalankan ulang tugas.
T: Tugas sinkronisasi telah terputus selama beberapa jam, dan saya menduga ada kunci MDL di tujuan. Bagaimana cara menyelesaikannya?
Penyebab:
Kunci metadata (kunci MDL) di tujuan, yang disebabkan oleh operasi DDL berdurasi panjang (seperti menambah kolom ke tabel besar atau membangun ulang indeks), menghalangi penulisan data inkremental dari DTS, sehingga tautan sinkronisasi terputus dalam waktu lama.
Solusi:
Login ke konsol ApsaraDB RDS, buka instans database tujuan, lalu jalankan
SHOW FULL PROCESSLISTuntuk menemukan sesi abnormal yang memegang kunci MDL. Lalu, hentikan sesi tersebut.Login ke konsol DTS dan modifikasi objek sinkronisasi untuk menghapus tabel yang terpengaruh oleh kunci MDL dari cakupan sinkronisasi.
Drop tabel di database tujuan (sebelum operasi ini, pastikan data telah dibackup atau dapat dihapus).
Setelah tugas sinkronisasi DTS kembali normal dan latensi sinkronisasi turun ke nol, modifikasi kembali objek sinkronisasi untuk menambahkan kembali tabel ke cakupan sinkronisasi dan selesaikan migrasi ulang.
T: Error sinkronisasi inkremental menunjukkan bahwa paket terlalu besar atau nilai max_allowed_packet di tujuan tidak mencukupi. Bagaimana cara menyelesaikannya?
Penyebab:
Sumber berisi baris dengan data dalam jumlah besar yang melebihi batas parameter
max_allowed_packetdi tujuan selama sinkronisasi inkremental, sehingga menyebabkan error sinkronisasi.Solusi:
Login ke database sumber dan kueri nilai saat ini dari parameter
max_allowed_packet:SHOW VARIABLES LIKE 'max_allowed_packet';Catat nilainya (misalnya,
1073741824, yaitu 1 GB).Login ke konsol ApsaraDB RDS (atau konsol PolarDB jika tujuan adalah PolarDB for MySQL). Di halaman Parameters instans database tujuan, atur parameter
max_allowed_packetke nilai yang tidak kurang dari nilai di sumber.Setelah modifikasi parameter selesai, jalankan ulang tugas sinkronisasi di konsol DTS dan verifikasi apakah sinkronisasi kembali normal.
T: Apakah saya dapat menyesuaikan laju setelah instans sinkronisasi atau migrasi sedang berjalan?
J: Ya. Untuk informasi lebih lanjut, lihat Aktifkan pembatasan kecepatan untuk migrasi data.
T: Apakah data di database sumber dipertahankan setelah sinkronisasi atau migrasi DTS selesai?
J: Ya. DTS tidak menghapus data di database sumber. Jika Anda tidak perlu mempertahankan data di database sumber, hapus secara manual.
T: Bagaimana cara menggunakan API untuk mengonfigurasi fitur ETL untuk tugas sinkronisasi atau migrasi?
J: Anda dapat mengonfigurasinya di parameter Reserve API dengan menggunakan parameter umum seperti etlOperatorCtl dan etlOperatorSetting. Untuk informasi lebih lanjut, lihat ConfigureDtsJob dan Referensi parameter Reserve.
T: Saat menyinkronkan atau memigrasikan data, apakah database sumber dan tujuan perlu terhubung melalui jaringan?
J: Tidak.
T: Saat menyinkronkan atau memigrasikan data, apakah saya perlu membuat tabel secara manual di database tujuan?
J: Untuk Instans DTS yang mendukung tugas skema (Sinkronisasi skema atau migrasi skema), jika Anda telah mengonfigurasi tugas skema (Synchronization Types dengan Schema Synchronization yang dipilih, atau Migration Types dengan Schema Migration yang dipilih), Anda tidak perlu membuat tabel secara manual di database tujuan.
T: Apakah DTS mendukung sinkronisasi atau migrasi data sampling berdasarkan rentang waktu?
J: Tidak.
T: Apakah data dapat ditulis ke database sumber dan tujuan secara bersamaan saat tugas sinkronisasi atau migrasi data sedang berjalan?
J: Ya. Namun, selama instans DTS berjalan, jika sumber data selain DTS menulis data ke database tujuan, pengecualian mungkin terjadi pada data database tujuan atau pada instans DTS.
T: Apakah DTS mendukung migrasi data atau sinkronisasi data lintas akun?
J: Ya. Untuk informasi tentang cara mengonfigurasinya, lihat Mengonfigurasi tugas DTS lintas akun.