Mendiagnosis masalah

Ringkasan

Streaming mungkin mengalami error selama runtime.

  • Beberapa error, seperti sandi yang buruk pada database sumber, dapat dipulihkan. Artinya, error tersebut dapat diperbaiki dan streaming dilanjutkan secara otomatis.
  • Error dapat memengaruhi satu objek, seperti peristiwa yang berisi jenis data yang tidak didukung. Error lainnya dapat memengaruhi beberapa objek atau seluruh aliran data, seperti saat Datastream tidak dapat terhubung ke database sumber.
  • Bergantung pada error-nya, informasi diberikan di halaman Streams atau Stream details pada 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 dijelaskan dalam pesan error.

Halaman ini berisi informasi tentang konfigurasi, konektivitas, error Oracle, dan MySQL, beserta langkah-langkah untuk memecahkan masalah error tersebut.

Error konfigurasi dan konektivitas

Error Langkah pemecahan masalah
Gagal terhubung ke database sumber (generik).

Hal ini dapat terjadi karena berbagai alasan. Untuk memecahkan masalah error ini, lakukan tindakan berikut:

  1. Pastikan database sumber sudah aktif dan dapat dijangkau.
  2. Buka profil koneksi sumber dari halaman Streams atau Connection profile.
  3. Verifikasi bahwa informasi konektivitas profil koneksi sudah benar.
  4. Pastikan nama pengguna dan sandi cocok.
  5. Pastikan nama pengguna ada di database dan memiliki hak istimewa yang diperlukan.
  6. Simpan semua perubahan yang telah dibuat di halaman Profil koneksi.

Streaming dilanjutkan secara otomatis.

Gagal terhubung ke database sumber (pemberian izin IP). 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 pada 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 tersebut. Setelah masalah ini diperbaiki, streaming akan dilanjutkan secara otomatis.
Gagal terhubung ke database sumber (tunnel SSH Teruskan). Ini dapat terjadi jika ada masalah dengan tunnel Forward SSH. Periksa status tunnel. Jika tunnel dihentikan, maka tunnel tersebut harus dimulai. Setelah masalah ini diperbaiki, streaming akan dilanjutkan secara otomatis.
Datastream tidak dapat terhubung ke bastion host melalui tunnel Forward SSH. Pastikan konfigurasi tunnel SSH Forward 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 Connection profile, lalu pilih profil koneksi yang diberikan. Pastikan sertifikat disiapkan dengan benar. Setelah melakukan perubahan, simpan profil koneksi, dan streaming akan dilanjutkan secara otomatis.
Gagal menggunakan konektivitas pribadi untuk terhubung ke database sumber.
  1. Pastikan Anda telah menyelesaikan semua prasyarat di bagian Sebelum memulai.
  2. Setelah membuat konfigurasi konektivitas pribadi, pastikan rute yang berisi alamat IP internal database muncul di tab Rute yang diekspor pada halaman Peering Jaringan VPC.

    Untuk melakukannya, buka halaman Peering Jaringan VPC, lalu telusuri peering yang ditambahkan (namanya peering-[UUID]). Rute dapat ditemukan di tab Exported routes. Jika rute ini tidak ada, tambahkan secara manual.

  3. Datastream tidak memeriksa tumpang-tindih dengan rute peering dinamis. Menyediakan subnet yang tumpang-tindih dengan rute dinamis dapat menyebabkan masalah konektivitas. Oleh karena itu, kami tidak merekomendasikan penggunaan subnet yang merupakan bagian dari rute dinamis.
  4. Pastikan rute kustom untuk rentang alamat IP Datastream diiklankan dengan benar. Jika rute kustom tidak ada, lihat panduan Iklan rute kustom.
  5. Jika Anda masih mengalami masalah saat menghubungkan ke database sumber, lihat Menyiapkan reverse proxy.
Jenis konektivitas STATIC_SERVICE_IP_CONNECTIVITY tidak diizinkan saat batasan Kebijakan Org/datastream.disablePublicConnectivity aktif.

Anda memilih metode konektivitas jaringan daftar IP yang diizinkan atau Forward SSH tunnel 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 Anda.

Untuk mengatasi masalah ini, pilih metode konektivitas jaringan peering VPC pribadi atau nonaktifkan kebijakan organisasi.

Untuk menonaktifkan kebijakan organisasi:

  1. Buka halaman Kebijakan organisasi di Konsol Google Cloud.
  2. Pilih kebijakan organisasi Datastream - Block Public Connectivity Methods.
  3. Klik EDIT.

  4. Di bagian Berlaku untuk halaman, pilih Sesuaikan.
  5. Di bagian Penegakan, pilih Nonaktif.

  6. Klik SAVE.
  7. Kembali ke profil koneksi Oracle yang Anda buat, lalu klik CREATE.
Saat mengonfigurasi database sumber untuk streaming, 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 untuk ditarik saat mengonfigurasi sumber streaming di Konsol Google Cloud. Daripada memilih Skema dan tabel tertentu di bagian Pilih objek yang akan disertakan, pilih Kustom. Di kolom Object matching criteria, masukkan skema dan tabel yang ingin diambil Datastream.

Saya telah menambahkan beberapa tabel ke aliran data menggunakan menu Objek yang akan disertakan. Namun, saat melihat tab Objek di Detail aliran data, saya dapat melihat bahwa beberapa tabel tidak ada. Pastikan bahwa ada setidaknya satu pembaruan CDC untuk setiap tabel ini sehingga Datastream dapat mengenali perubahan dan menyertakan tabel dalam aliran secara otomatis.
Gagal 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 mana yang akan disertakan, atau gunakan Datastream API. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi database sumber.
Acara dihapus selama streaming dan tidak direplikasi di tujuan.

Aliran data mungkin menghapus peristiwa yang tidak didukung selama streaming. Anda dapat melakukan tindakan berikut untuk mengatasi masalah ini:

  • Picu pengisian ulang seluruh tabel secara manual. Ini berfungsi jika peristiwa yang dihapus hanya merupakan peristiwa UPSERT. Jika peristiwa yang dilepaskan menyertakan peristiwa DELETE, Anda harus memotong tabel di BigQuery sebelum melakukan pengisian ulang.

    Untuk informasi tentang cara melakukan pengisian ulang, lihat Memulai pengisian ulang.

  • Hubungi Dukungan Google dan minta mereka untuk melakukan pengisian ulang sebagian. Hal ini hanya dapat dilakukan jika Anda dapat mengidentifikasi peristiwa yang dilepas dengan klausa WHERE SQL, dan jika tidak ada peristiwa yang merupakan peristiwa DELETE.
  • Abaikan masalah jika jumlah peristiwa yang dihapus rendah atau jika peristiwa yang dihapus tidak signifikan.

Error Oracle

Error Langkah pemecahan masalah
Logging tambahan tidak dikonfigurasi dengan benar pada database sumber.

Kesalahan pengambilan data pengambilan data perubahan (CDC) yang sedang berlangsung dapat terjadi jika konfigurasi pencatatan log tambahan tidak benar pada database sumber. Verifikasi bahwa logging tambahan telah dikonfigurasi dengan benar. Secara khusus, pastikan bahwa logging tambahan diaktifkan untuk tabel database yang di-streaming dari sumber ke tujuan. Streaming dilanjutkan secara otomatis.

Tidak dapat melanjutkan replikasi karena posisi log hilang. Error ini dapat terjadi saat proses replikasi dijeda untuk waktu yang 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 menghapus permanen file log sesegera mungkin, kecuali jika Anda menentukan periode rotasi minimum agar file tersebut tetap tersimpan. Di server Oracle, tetapkan berapa lama file log harus dipertahankan. Misalnya, gunakan CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 4 DAYS; untuk menyimpan file log setidaknya selama 4 hari.

Untuk deployment RDS, gunakan exec rdsadmin.rdsadmin_util.set_configuration('archivelog retention hours',96);

Daftar pengecualian memasukkan daftar penyertaan. Daftar yang disertakan sepenuhnya dimuat dalam daftar pengecualian, sehingga daftar objek yang diambil Datastream dari sumber kosong. Ubah pemilihan objek, lalu coba lagi.
Mode logging untuk database Oracle tidak ditetapkan ke penerbitLOG. Ubah mode logging, lalu coba lagi.
Datastream menampilkan pesan error ORA-00942: table or view does not exist, tetapi semuanya telah dikonfigurasi dengan benar. Hal ini dapat disebabkan oleh penyimpanan {i>caching<i} di server Oracle. Membuat ulang pengguna database akan memperbaiki masalah caching.
Perubahan pada sumber Oracle tidak diterapkan di tujuan saat streaming sudah berjalan. Karena Datastream membaca dari file log ulangi 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 pengalihan log secara manual. Untuk informasi selengkapnya, lihat Bekerja dengan file log ulangi 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 pada database sumber.

Hal ini dapat terjadi pada streaming MySQL berkelanjutan jika konfigurasi binlog pada database sumber salah. Untuk memecahkan masalah error ini, lakukan tindakan berikut:

  1. Verifikasi bahwa binlog dikonfigurasi dengan benar.
  2. Pastikan format log biner database MySQL disetel ke ROW.
  3. Mulai ulang streaming.
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 periode waktu yang mendekati periode retensi binlog. Buat ulang streaming.
Gagal menjalankan aliran data karena versi tujuan dan database sumber tidak kompatibel.

Hal ini dapat terjadi jika database sumber tidak mematuhi matriks dukungan versi. Untuk memecahkan masalah error ini, lakukan tindakan berikut:

  1. Pastikan database sumber mematuhi matriks.
  2. Membuat ulang streaming dengan database sumber yang telah diupdate.
Binlog sumber MySQL AWS RDS tidak ada, baik sebagian maupun seluruhnya. Binlog mungkin telah dihapus. AWS RDS menghapus permanen binlog sesegera mungkin, kecuali jika Anda menentukan periode rotasi minimum untuk mempertahankannya. Dalam instance AWS RDS MySQL 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 memasukkan daftar penyertaan. Daftar yang disertakan sepenuhnya dimuat dalam daftar pengecualian, sehingga daftar objek yang diambil Datastream dari sumber kosong. Ubah pemilihan 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 berenkode PEM tidak diterima di menu Jenis enkripsi. Datastream tidak mendukung rantai sertifikat SSL dalam profil koneksi MySQL. Hanya satu sertifikat berenkode PEM x509 yang didukung.
Terjadi error internal yang tidak terduga. Untuk mengetahui detail selengkapnya, hubungi Dukungan Google.

Error PostgreSQL

Error Langkah pemecahan masalah
Dekoder logis tidak dikonfigurasi dengan benar pada database sumber.

Pastikan decoding logis telah dikonfigurasi dengan benar. Lihat Mengonfigurasi database PostgreSQL sumber.

Slot replikasi tidak ada Kesalahan saat mengambil data pengambilan data perubahan (CDC) yang sedang berlangsung dapat terjadi jika slot replikasi tidak ada pada 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 informasi selengkapnya.
Slot replikasi aktif dalam proses yang berbeda. Error ini dapat terjadi ketika 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 pada proses lain kecuali untuk Datastream.
Publikasi tidak dikonfigurasi dengan benar Error ini dapat terjadi jika publikasi tidak dikonfigurasi untuk menampilkan 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 saat proses replikasi dijeda untuk waktu yang lama, yang menyebabkan file WAL hilang. Streaming tidak boleh dijeda selama periode waktu yang mendekati periode retensi file WAL. Buat ulang streaming.
Daftar pengecualian memasukkan daftar penyertaan. Daftar yang disertakan sepenuhnya dimuat dalam daftar pengecualian, sehingga daftar objek yang diambil Datastream dari sumber kosong. Ubah pemilihan objek, lalu coba lagi.
Datastream tidak dapat mereplikasi skema PostgreSQL. Pastikan Datastream memiliki izin untuk mereplikasi skema.
Transaksi besar pada database sumber menyebabkan masalah dengan replikasi dan sinkronisasi data. Jika Anda menyisipkan, memperbarui, atau menghapus sejumlah besar data dalam database sumber, slot replikasi mungkin akan kelebihan beban dengan peristiwa yang sesuai. Datastream memerlukan waktu untuk membaca dan memproses peristiwa ini. Karena slot replikasi PostgreSQL ber-thread tunggal, pemrosesan perubahan lain pada slot replikasi, termasuk perubahan pada data di tabel lain, ditunda hingga Datastream memenuhi semua perubahan dalam slot replikasi.
Transaksi besar pada database sumber menyebabkan throughput CDC yang rendah. Datastream tidak mendukung CDC multi-thread di PostgreSQL. Untuk mengatasi batasan ini, dan untuk meningkatkan throughput CDC, Anda dapat membagi sumber menjadi beberapa stream, masing-masing dengan slot publikasi dan replikasinya sendiri. Misalnya, Anda mungkin ingin membuat satu aliran data untuk tabel terbesar dalam database dan satu aliran data untuk semua tabel lainnya, atau satu aliran data untuk tabel prioritas teratas dan aliran satu lagi untuk tabel lainnya. Kasus penggunaannya dapat bervariasi, jadi Anda perlu mempertimbangkan apa yang paling masuk akal dalam skenario CDC tertentu. Untuk mengetahui informasi tentang cara membuat publikasi, lihat Mengonfigurasi database PostgreSQL sumber.
Acara 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, berarti hal ini melanggar batasan CDC BigQuery dan menyebabkan error. Untuk mengatasi masalah ini, selesaikan langkah-langkah berikut:
  1. Ubah identitas replika menjadi DEFAULT:
    
    ALTER TABLE TABLE_NAME REPLICA IDENTITY DEFAULT
    Ganti TABLE_NAME dengan nama tabel yang identitas replikanya ingin Anda ubah.
  2. Hapus tabel dari daftar objek aliran data yang akan disertakan. Untuk mengetahui informasi selengkapnya, lihat Mengubah informasi konfigurasi tentang database sumber.
  3. Hapus tabel dari BigQuery. Untuk mengetahui informasi selengkapnya, lihat Menghapus tabel.
  4. Di Datastream, tambahkan lagi tabel ke aliran data dengan mengedit konfigurasi sumber Anda.
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 pada database sumber, dan untuk mendapatkan informasi log yang lengkap. Aktifkan CDC untuk database, lalu coba lagi.

Untuk informasi tentang 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 aliran data. Datastream memerlukan akses baca langsung ke log transaksi untuk mereplikasi perubahan real-time pada tabel sumber, dan untuk mendapatkan informasi log yang lengkap. Aktifkan CDC untuk tabel yang disertakan dalam aliran data, lalu coba lagi.

Untuk informasi tentang 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 informasi selengkapnya tentang edisi SQL Server yang didukung, lihat Ringkasan SQL Server sebagai sumber.
SQL Server versi VERSION_NAME dari edisi Standar tidak didukung. Datastream tidak mendukung versi SQL Server edisi Standard ini. Untuk informasi selengkapnya tentang versi SQL Server yang didukung, lihat Ringkasan SQL Server sebagai sumber.

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 melepaskan 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 dengan benar jika kunci utamanya berbeda. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi tujuan BigQuery.