Streaming mungkin mengalami error selama runtime.
- Beberapa error, seperti sandi yang salah di database sumber, dapat dipulihkan, yang berarti error tersebut dapat diperbaiki dan streaming akan dilanjutkan secara otomatis.
- Error dapat memengaruhi satu objek, seperti peristiwa yang berisi jenis data yang tidak didukung. Error lain dapat memengaruhi beberapa objek atau seluruh aliran data, seperti saat Datastream tidak dapat terhubung ke database sumber.
- Bergantung pada error, informasi diberikan di halaman Aliran data atau Detail aliran data di UI Datastream. Anda juga dapat menggunakan API Datastream untuk mengambil informasi tentang error.
Untuk memecahkan masalah error, buka streaming untuk melihat error, lalu ikuti langkah-langkah yang diuraikan dalam pesan error.
Halaman ini berisi informasi tentang error konfigurasi, konektivitas, Oracle, dan MySQL, beserta langkah-langkah untuk memecahkan masalah error tersebut.
Error konfigurasi dan konektivitas
Error | Langkah pemecahan masalah |
---|---|
Gagal terhubung ke database sumber (umum). | Hal ini dapat terjadi karena berbagai alasan. Untuk memecahkan masalah error ini, lakukan tindakan berikut:
Streaming akan dilanjutkan secara otomatis. |
Gagal terhubung ke database sumber (daftar IP yang diizinkan). | Hal ini dapat terjadi jika metode konektivitas yang dipilih adalah Daftar IP yang diizinkan, tetapi satu atau beberapa alamat IP keluar Datastream tidak ditambahkan dengan benar di database sumber. Pastikan alamat IP keluar yang ditampilkan di profil koneksi Datastream dikonfigurasi di firewall jaringan sehingga server database sumber dapat menerima koneksi dari alamat IP ini. Setelah masalah ini diperbaiki, streaming akan dilanjutkan secara otomatis. |
Kegagalan koneksi ke database sumber (Tunnel SSH penerusan). | Hal ini dapat terjadi jika ada masalah dengan tunnel SSH Teruskan. Periksa status tunnel. Jika dihentikan, tunnel harus dimulai. Setelah masalah ini diperbaiki, streaming akan dilanjutkan secara otomatis. |
Datastream tidak dapat terhubung ke host bastion melalui tunnel SSH Penerusan. | Pastikan konfigurasi tunnel SSH Penerusan dikonfigurasi dengan benar di profil koneksi sumber, dan port terbuka di server tunnel SSH. |
Gagal terhubung ke database sumber karena sertifikat yang buruk. | Hal ini dapat terjadi jika ada masalah dengan sertifikat yang diberikan saat menentukan profil koneksi sumber. Buka halaman Profil koneksi, lalu pilih profil koneksi yang diberikan. Pastikan sertifikat disiapkan dengan benar. Setelah melakukan perubahan, simpan profil koneksi, dan streaming akan dilanjutkan secara otomatis. |
Kegagalan saat menggunakan konektivitas pribadi untuk terhubung ke database sumber. |
|
Jenis konektivitas STATIC_SERVICE_IP_CONNECTIVITY tidak diizinkan saat batasan Kebijakan Organisasi/datastream.disablePublicConnectivity aktif. | Anda memilih metode konektivitas jaringan IP yang diizinkan atau Tunnel SSH penerusan publik untuk profil koneksi yang Anda buat. Namun, kebijakan organisasi Blokir Metode Konektivitas Publik untuk Datastream diaktifkan. Oleh karena itu, Anda tidak dapat memilih metode konektivitas publik untuk profil koneksi. Untuk mengatasi masalah ini, pilih metode konektivitas jaringan VPC peering pribadi atau nonaktifkan kebijakan organisasi. Untuk menonaktifkan kebijakan organisasi:
|
Saat mengonfigurasi database sumber untuk aliran data, saya tidak dapat menemukan tabel dan skema yang ingin ditransfer dalam daftar objek yang akan disertakan. | Hal ini dapat terjadi jika database Anda memiliki ribuan tabel dan skema. Beberapa di antaranya mungkin tidak disertakan dalam daftar objek yang akan diambil saat mengonfigurasi sumber untuk streaming di konsol Google Cloud. Pilih Kustom, bukan Skema dan tabel tertentu di bagian Pilih objek yang akan disertakan. Di kolom Kriteria pencocokan objek, masukkan skema dan tabel yang ingin Anda tarik oleh Datastream. |
Saya telah menambahkan beberapa tabel ke aliran data menggunakan menu Objek yang akan disertakan. Namun, saat melihat tab Objects di Stream details, saya dapat melihat bahwa beberapa tabel tidak ada. | Pastikan ada setidaknya satu update CDC untuk setiap tabel ini sehingga Datastream dapat mengenali perubahan dan otomatis menyertakan tabel dalam aliran data. |
Kegagalan memuat daftar objek saat menggunakan menu Objects to include di konsol Google Cloud. | Hal ini dapat terjadi jika database Anda memiliki lebih dari 5.000 skema dan tabel. Gunakan metode lain untuk menentukan objek yang akan disertakan, atau gunakan Datastream API. Untuk informasi selengkapnya, lihat Mengonfigurasi database sumber. |
Peristiwa yang dihapus selama streaming dan tidak direplikasi di tujuan. | Datastream mungkin menghapus peristiwa yang tidak didukung selama streaming. Anda dapat melakukan tindakan berikut untuk mengatasi masalah ini:
|
Error Oracle
Error | Langkah pemecahan masalah |
---|---|
Logging tambahan tidak dikonfigurasi dengan benar di database sumber. | Error saat mengambil data pengambilan data perubahan (CDC) yang sedang berlangsung dapat terjadi jika konfigurasi logging tambahan tidak benar di database sumber. Pastikan logging tambahan dikonfigurasi dengan benar. Secara khusus, pastikan logging tambahan diaktifkan untuk tabel database yang di-streaming dari sumber ke tujuan. Streaming akan dilanjutkan secara otomatis. |
Tidak dapat melanjutkan replikasi karena posisi log hilang. | Error ini dapat terjadi saat proses replikasi dijeda dalam waktu lama, yang menyebabkan posisi log hilang. Streaming tidak boleh dijeda selama jangka waktu yang mendekati periode retensi log. Buat ulang streaming. |
File log tidak ada, baik sebagian maupun seluruhnya. | File log mungkin telah dihapus. Oracle akan menghapus file log sesegera mungkin kecuali jika Anda menentukan periode rotasi minimum untuk mempertahankannya.
Di server Oracle, tetapkan durasi penyimpanan file log. Misalnya, gunakan
Untuk deployment RDS, gunakan |
Daftar pengecualian mencakup daftar penyertaan. | Daftar yang disertakan sepenuhnya terdapat dalam daftar yang dikecualikan, sehingga daftar objek yang diambil Datastream dari sumber akan kosong. Ubah pilihan objek, lalu coba lagi. |
Mode logging untuk database Oracle tidak ditetapkan ke ARCHIVELOG. | Ubah mode logging, lalu coba lagi. |
Datastream menampilkan pesan error ORA-00942: table or view does not exist , tetapi semuanya dikonfigurasi dengan benar. |
Hal ini dapat disebabkan oleh penyimpanan dalam cache di server Oracle. Membuat ulang pengguna database akan memperbaiki masalah penyimpanan dalam cache. |
Perubahan pada sumber Oracle tidak tercermin di tujuan saat streaming sudah berjalan. | Karena Datastream membaca dari file log redo yang diarsipkan, perubahan yang Anda buat pada sumber tidak akan ditampilkan di tujuan hingga log diarsipkan. Untuk melihat perubahan di tujuan, ubah kebijakan arsip log atau paksa tombol log secara manual. Untuk informasi selengkapnya, lihat Menggunakan file log pengulangan database Oracle. |
Terjadi error internal yang tidak terduga. | Untuk mengetahui detail selengkapnya, hubungi Dukungan Google. |
Error MySQL
Error | Langkah pemecahan masalah |
---|---|
Binlog tidak dikonfigurasi dengan benar di database sumber. | Hal ini dapat terjadi untuk streaming MySQL berkelanjutan jika konfigurasi binlog salah di database sumber. Untuk memecahkan masalah error ini, lakukan tindakan berikut:
|
Tidak dapat melanjutkan replikasi karena posisi binlog hilang. | Error ini dapat terjadi saat proses replikasi dijeda untuk waktu yang lama, yang menyebabkan posisi binlog hilang. Streaming tidak boleh dijeda selama jangka waktu yang mendekati periode retensi binlog. Buat ulang streaming. |
Kegagalan menjalankan streaming karena versi database sumber dan tujuan tidak kompatibel. | Hal ini dapat terjadi jika database sumber tidak mematuhi matriks dukungan versi. Untuk memecahkan masalah error ini, lakukan tindakan berikut:
|
Binlog sumber MySQL AWS RDS tidak ada, baik sebagian maupun seluruhnya. | Binlog mungkin telah dihapus. AWS RDS akan menghapus binlog sesegera mungkin, kecuali jika Anda menentukan periode rotasi minimum untuk mempertahankannya.
Di instance MySQL AWS RDS sumber,
tetapkan berapa lama, dalam jam, binlog harus dipertahankan. Misalnya, gunakan
mysql.rds_set_configuration('binlog retention hours', 168);
untuk menyimpan binlog setidaknya selama 7 hari. |
Daftar pengecualian mencakup daftar penyertaan. | Daftar yang disertakan sepenuhnya terdapat dalam daftar yang dikecualikan, sehingga daftar objek yang diambil Datastream dari sumber akan kosong. Ubah pilihan objek, lalu coba lagi. |
Datastream tidak dapat mereplikasi database MySQL. | Pastikan Datastream memiliki izin untuk mereplikasi database. |
Saat membuat profil koneksi untuk sumber MySQL, beberapa sertifikat SSL yang dienkode PEM tidak diterima di menu Jenis enkripsi. | Datastream tidak mendukung rantai sertifikat SSL di profil koneksi MySQL. Hanya satu sertifikat berenkode PEM x509 yang didukung. |
Latensi tinggi saat melakukan streaming dari sumber MySQL. | Tingkatkan kemampuan Datastream untuk membaca dari database sumber:
|
Validasi konfigurasi MySQL CDC gagal. | Database sumber Anda tidak dikonfigurasi untuk metode CDC yang Anda pilih. Pilih metode lain, atau selesaikan konfigurasi untuk metode CDC Anda. Untuk detail selengkapnya, lihat Mengonfigurasi database MySQL sumber. |
Terjadi error internal yang tidak terduga. | Untuk mengetahui detail selengkapnya, hubungi Dukungan Google. |
Error PostgreSQL
Error | Langkah pemecahan masalah |
---|---|
Decoding logis tidak dikonfigurasi dengan benar di database sumber. | Pastikan decoding logis dikonfigurasi dengan benar. Lihat Mengonfigurasi database PostgreSQL sumber. |
Slot replikasi tidak ada. | Error saat mengambil data pengambilan data perubahan (CDC) yang sedang berlangsung dapat terjadi jika slot replikasi tidak ada di database. Pastikan slot replikasi dikonfigurasi dengan benar. Lihat Mengonfigurasi database PostgreSQL sumber. |
Slot replikasi dikonfigurasi dengan plugin yang salah. | Error ini dapat terjadi jika slot replikasi dikonfigurasi dengan plugin yang berbeda dari pgoutput . Pastikan slot replikasi dikonfigurasi dengan benar. Lihat Database PostgreSQL sumber untuk mengetahui informasi selengkapnya. |
Slot replikasi aktif dalam proses yang berbeda. | Error ini dapat terjadi saat slot replikasi sedang digunakan oleh proses lain. Slot replikasi hanya dapat digunakan oleh satu proses dalam satu waktu. Pastikan Anda tidak menggunakan slot replikasi yang sama dalam proses lain, kecuali untuk Datastream. |
Publikasi tidak dikonfigurasi dengan benar. | Error ini dapat terjadi jika publikasi tidak dikonfigurasi untuk mengekspos tabel yang disertakan dalam konfigurasi streaming. Pastikan publikasi dikonfigurasi dengan benar. Lihat Mengonfigurasi informasi tentang database sumber untuk aliran data. |
Publikasi tidak ada. | Error ini dapat terjadi jika publikasi tidak ada di database. Pastikan publikasi dikonfigurasi dengan benar. Lihat Mengonfigurasi database PostgreSQL sumber. |
Tidak dapat melanjutkan replikasi karena file WAL hilang. | Error ini dapat terjadi jika proses replikasi dijeda untuk waktu yang lama, yang menyebabkan file WAL hilang. Streaming tidak boleh dijeda selama jangka waktu yang mendekati periode retensi file WAL. Buat ulang streaming. |
Daftar pengecualian mencakup daftar penyertaan. | Daftar yang disertakan sepenuhnya terdapat dalam daftar yang dikecualikan, sehingga daftar objek yang diambil Datastream dari sumber akan kosong. Ubah pilihan objek, lalu coba lagi. |
Datastream tidak dapat mereplikasi skema PostgreSQL. | Pastikan Datastream memiliki izin untuk mereplikasi skema. |
Transaksi besar di database sumber menyebabkan masalah pada replikasi dan sinkronisasi data. | Jika Anda menyisipkan, memperbarui, atau menghapus sejumlah besar data di database sumber, slot replikasi mungkin kelebihan beban dengan peristiwa yang sesuai. Datastream memerlukan waktu untuk membaca dan memproses peristiwa ini. Karena slot replikasi PostgreSQL bersifat single-thread, pemrosesan perubahan lain di slot replikasi, termasuk perubahan pada data di tabel lain, akan tertunda hingga Datastream mengejar semua perubahan di slot replikasi. |
Transaksi besar di database sumber menyebabkan throughput CDC rendah. | Datastream tidak mendukung CDC multi-thread di PostgreSQL. Untuk mengatasi batasan ini, dan meningkatkan throughput CDC, Anda dapat membagi sumber menjadi beberapa aliran, masing-masing dengan slot publikasi dan replikasinya sendiri. Misalnya, Anda dapat membuat satu aliran data untuk tabel terbesar di database dan satu lagi untuk semua tabel lainnya, atau satu aliran data untuk tabel prioritas teratas dan satu lagi untuk tabel lainnya. Kasus penggunaannya mungkin bervariasi, jadi Anda perlu mempertimbangkan hal yang paling masuk akal dalam skenario CDC tertentu. Untuk informasi tentang cara membuat publikasi, lihat Mengonfigurasi database PostgreSQL sumber. |
Peristiwa yang tidak didukung dihapus dengan kode alasan: BIGQUERY_TOO_MANY_PRIMARY_KEYS . |
Jika identitas replika PostgreSQL untuk tabel ditetapkan ke FULL , Datastream akan memperlakukan semua kolom dalam tabel ini sebagai kunci utama. Jika ada lebih dari 16 kolom dalam tabel, hal ini melanggar batasan CDC BigQuery dan menyebabkan error. Untuk mengatasi masalah ini, selesaikan langkah-langkah berikut:
|
Terjadi error internal yang tidak terduga. | Untuk mengetahui detail selengkapnya, hubungi Dukungan Google. |
Error SQL Server
Error | Langkah pemecahan masalah |
---|---|
CDC dinonaktifkan untuk database DATABASE_NAME. | Pengambilan data perubahan (CDC) harus diaktifkan untuk database. Datastream memerlukan akses baca langsung ke log transaksi untuk mereplikasi perubahan real-time ke database sumber, dan untuk mendapatkan informasi log lengkap. Aktifkan CDC untuk database, lalu coba lagi. Untuk mengetahui informasi tentang cara mengaktifkan CDC untuk database, lihat Mengonfigurasi database SQL Server sumber. |
Tabel dengan CDC dinonaktifkan. | Pengambilan data perubahan (CDC) harus diaktifkan untuk semua tabel yang disertakan dalam streaming. Datastream memerlukan akses baca langsung ke log transaksi untuk mereplikasi perubahan real-time ke tabel sumber, dan untuk mendapatkan informasi log lengkap. Aktifkan CDC untuk tabel yang disertakan dalam streaming, lalu coba lagi. Untuk informasi tentang cara mengaktifkan CDC untuk tabel sumber, lihat Mengonfigurasi database SQL Server sumber. |
Izin tidak ada. | Datastream tidak memiliki izin yang diperlukan untuk membaca dari sumber. Berikan hak istimewa yang sesuai ke akun pengguna yang digunakan untuk terhubung ke database Anda, lalu coba lagi. |
Edisi EDITION_NAME SQL Server tidak didukung. | Datastream tidak mendukung edisi SQL Server ini. Untuk mengetahui informasi selengkapnya tentang edisi SQL Server yang didukung, lihat Ringkasan SQL Server sebagai sumber. |
SQL Server versi VERSION_NAME edisi Standar tidak didukung. | Datastream tidak mendukung edisi SQL Server Standard versi ini. Untuk mengetahui informasi selengkapnya tentang versi SQL Server yang didukung, lihat Ringkasan SQL Server sebagai sumber. |
Konfigurasi SQL Server CDC: gagal. | Metode CDC yang Anda pilih tidak sesuai dengan konfigurasi database Anda. Ubah metode CDC, lalu coba lagi. |
Error BigQuery
Error | Langkah pemecahan masalah |
---|---|
BIGQUERY_UNSUPPORTED_PRIMARY_KEY_CHANGE, details: Failed to write to BigQuery due to an unsupported primary key change: adding primary keys to existing tables is not supported. |
Jika kunci utama berubah di sumber, Anda harus menghapus tabel di BigQuery dan memulai pengisian ulang lagi. Ini adalah batasan BigQuery, karena tidak ada cara untuk memastikan penggabungan peristiwa baru dengan baris yang ada jika kunci utamanya berbeda. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi tujuan BigQuery. |
Tabel BigQuery tujuan memiliki lebih banyak kumpulan data daripada tabel sumber. | Hal ini dapat terjadi jika tabel sumber tidak memiliki kunci utama. Dalam hal ini, Datastream memproses tabel dalam mode tulis append-only, dan setiap peristiwa untuk baris tertentu akan muncul sebagai baris terpisah di BigQuery. |
Data akan diduplikasi saat melakukan pengisian ulang dalam mode tulis Hanya tambahkan. | Saat Anda memilih mode tulis Hanya tambahkan untuk aliran data, data Anda akan ditambahkan di BigQuery sebagai aliran peristiwa SELECT * FROM (SELECT *, row_number() OVER (PARTITION BY datastream_metadata.uuid) AS num FROM TABLE_NAME) WHERE num=1
|
Datastream dikonfigurasi untuk mode tulis penggabungan, tetapi perubahan tidak digabungkan di BigQuery. | Pastikan ada kunci utama di tabel sumber Anda. BigQuery memerlukannya untuk menggabungkan perubahan ke dalam tabel tujuan. Jika tidak ada kunci utama, pertimbangkan untuk menambahkannya di tabel sumber atau tujuan. Untuk menambahkan kunci utama di tabel BigQuery tujuan, ikuti langkah-langkah berikut:
|
Tidak dapat menambahkan kunci utama, menghapus kunci utama, atau mengubah definisi kunci utama untuk tabel yang sudah direplikasi ke BigQuery. | Secara default, Datastream tidak mendukung penambahan kunci utama ke tabel yang sudah direplikasi ke BigQuery tanpa kunci utama atau penghapusan kunci utama dari tabel yang direplikasi ke BigQuery dengan kunci utama. Namun, Anda dapat mengubah definisi kunci utama untuk tabel sumber yang direplikasi ke BigQuery yang sudah memiliki kunci utama:
|
Langkah selanjutnya
- Untuk mempelajari cara mencari potensi masalah pada streaming, lihat Memecahkan masalah streaming.
- Untuk mempelajari cara mengonfigurasi database sumber, lihat Sumber.
- Untuk mempelajari cara mengonfigurasi tujuan BigQuery atau Cloud Storage, lihat Tujuan.