Memulihkan streaming

Anda dapat memulihkan streaming yang gagal secara permanen tanpa harus membuat streaming baru. Anda dapat melakukannya dengan menentukan posisi tempat Datastream mencoba melanjutkan perubahan pembacaan dari sumber.

Ringkasan pemulihan streaming

Streaming yang sedang berjalan dapat mengalami beberapa error yang tidak dapat dipulihkan dan mengubah statusnya menjadi FAILED_PERMANENTLY. Error tersebut mencegah streaming terus berjalan, dan dapat menyebabkan hilangnya data.

Anda dapat memulihkan streaming yang gagal secara permanen dengan menyetelnya untuk mengabaikan error dan terus membaca peristiwa yang sedang berlangsung, bukan membuat ulang streaming dan mengisi ulang data historis. Untuk memulihkan streaming yang gagal secara permanen, Anda harus mereset replikasi untuk mulai membaca dari posisi replikasi yang berbeda. Setiap jenis sumber yang didukung memiliki definisinya sendiri tentang posisi replika:

  • Untuk sumber Oracle, posisi replikasi adalah file log redo di database dan nomor perubahan sistem (SCN) dalam file ini.
  • Untuk sumber MySQL, posisi replikasi adalah file log biner (binlog) database dan posisi dalam file ini.
  • Untuk sumber SQL Server, posisi replikasi adalah nomor urut log (LSN) dalam log transaksi atau tabel perubahan.
  • Untuk sumber PostgreSQL (termasuk AlloyDB untuk PostgreSQL), posisi replikasi adalah nomor urut log (LSN) di slot replikasi. Selama pemulihan, aliran data mulai membaca dari LSN pertama di slot replikasi.

Memulihkan streaming untuk sumber MySQL atau Oracle

Untuk memulihkan streaming untuk sumber MySQL atau Oracle, Anda memiliki opsi berikut:

  • Coba lagi dari posisi saat ini (direkomendasikan): Pilih opsi ini untuk mencoba streaming dari posisi saat ini, tempat streaming terakhir gagal. Anda harus memperbaiki file log atau memulihkannya dari cadangan terlebih dahulu. Ini adalah opsi yang direkomendasikan.

  • Lewati posisi saat ini dan streaming dari posisi berikutnya yang tersedia: Jika satu atau beberapa file log tidak ada, pilih opsi ini untuk melewati file tersebut dan melanjutkan streaming dari posisi pertama di file berikutnya yang tersedia. Perubahan dari file log yang hilang akan hilang, tetapi Anda dapat memulihkannya dengan melakukan pengisian ulang.

  • Lewati posisi saat ini dan streaming dari posisi terbaru: Jika satu atau beberapa file log tidak ada, pilih opsi ini untuk melewati file tersebut dan melanjutkan streaming dari posisi terbaru dalam file log terbaru. Perubahan dari file log yang hilang akan hilang, tetapi Anda dapat memulihkannya dengan melakukan pengisian ulang.

  • Lanjutkan dari file dan posisi streaming pilihan Anda: Pilih opsi ini untuk melanjutkan streaming dari file log dan posisi log tertentu. Beberapa perubahan mungkin hilang jika posisi log yang ditentukan tidak tumpang-tindih dengan atau segera mengikuti posisi log yang hilang. Anda dapat memulihkan perubahan ini dengan melakukan pengisian ulang.

Untuk memulihkan streaming yang gagal secara permanen untuk sumber MySQL atau Oracle, lakukan langkah-langkah berikut:

  1. Buka halaman Streams di Google Cloud.

    Buka halaman Streams

  2. Klik Pulihkan di baris dengan nama streaming yang ingin Anda pulihkan.

  3. Panel Pilih strategi pemulihan akan terbuka. Pilih salah satu opsi. Jika Anda memilih Lanjutkan dari file dan posisi streaming pilihan Anda, masukkan hal berikut:

    • Untuk sumber MySQL: nama file log di kolom File name dan posisi log di kolom Position. Jika Anda tidak menentukan posisi, streaming akan dilanjutkan dari posisi pertama dalam file log yang ditunjukkan.
    • Untuk sumber Oracle: nomor perubahan sistem (SCN) di kolom System Change Number (SCN). Kolom ini wajib diisi.
  4. Klik Terapkan.

  5. Saat streaming dipulihkan, stempel waktu akan muncul di kolom Recovered di halaman Streams.

Memulihkan streaming untuk sumber PostgreSQL

Untuk memulihkan streaming untuk sumber PostgreSQL, Anda harus memberikan nama slot replikasi. Server menggunakan slot replikasi ini untuk mengirim peristiwa ke Datastream. Nama slot replikasi dapat sama dengan slot yang digunakan untuk streaming yang gagal atau berbeda:

  • Jika slot replika baru memiliki nama yang berbeda, berikan nama slot replika baru ke Datastream.
  • Jika Anda tidak memberikan nama slot replikasi, Datastream akan menggunakan nama slot replikasi yang ditentukan dalam konfigurasi sumber.

    Untuk mengetahui informasi selengkapnya tentang slot replikasi, lihat Mengonfigurasi database PostgreSQL sumber.

Setiap peristiwa perubahan pada sumber yang terjadi antara hilangnya posisi log dan LSN pertama di slot replikasi baru akan hilang. Anda dapat memulihkan perubahan ini dengan melakukan pengisian ulang.

Untuk memulihkan streaming yang gagal secara permanen untuk sumber PostgreSQL, lakukan langkah-langkah berikut:

  1. Buka halaman Streams di Google Cloud.

    Buka halaman Streams

  2. Klik Pulihkan di baris dengan nama streaming yang ingin Anda pulihkan.

  3. Panel Define a new replication slot akan terbuka.

  4. Di kolom Replication slot name, berikan nama slot replika baru yang akan digunakan untuk memulihkan streaming. Jika Anda membuat ulang slot replikasi menggunakan nama yang sama, atau ingin menggunakan kembali slot yang ditentukan saat mengonfigurasi sumber, Anda dapat mengosongkan kolom ini.

  5. Klik Terapkan.

  6. Saat streaming dipulihkan, stempel waktu akan muncul di kolom Recovered di halaman Streams.

Anda juga dapat memulihkan streaming yang gagal secara permanen dari halaman Detail streaming. Untuk melakukannya, klik Pulihkan streaming saat melihat informasi mendetail tentang streaming Anda.

Memulihkan streaming untuk sumber SQL Server

Untuk memulihkan streaming untuk sumber SQL Server, Anda memiliki opsi berikut:

  • Lanjutkan dari posisi pertama yang tersedia: Pilih opsi ini jika log terpotong atau beberapa data tidak ada di tabel perubahan, dan Anda ingin melanjutkan dari peristiwa pertama yang tersedia. Peristiwa yang hilang akan hilang, tetapi Anda dapat memulihkannya dengan melakukan pengisian ulang.

  • Lanjutkan dari nomor urut log (LSN) pilihan Anda: Pilih opsi ini untuk melanjutkan streaming dari LSN tertentu dalam log transaksi atau tabel perubahan. Beberapa peristiwa mungkin hilang jika LSN yang ditentukan tidak tumpang-tindih dengan atau langsung mengikuti LSN terakhir yang dapat diambil Datastream. Anda dapat memulihkan peristiwa ini dengan melakukan pengisian ulang.

    LSN dalam log transaksi dan tabel perubahan berisi 20 karakter hexadesimal, tetapi untuk log transaksi, LSN dipisahkan oleh pemisah. Contoh:

    • LSN dalam log transaksi: 0000123C:0000BA78:0004
    • LSN dalam tabel perubahan: 0000123C0000BA780004

Untuk memulihkan streaming yang gagal secara permanen untuk sumber SQL Server, lakukan langkah-langkah berikut:

  1. Buka halaman Streams di Google Cloud.

    Buka halaman Streams

  2. Klik Pulihkan di baris dengan nama streaming yang ingin Anda pulihkan.

  3. Panel Pilih strategi pemulihan akan terbuka. Pilih salah satu opsi.

  4. Klik Terapkan.

  5. Saat streaming dipulihkan, stempel waktu akan muncul di kolom Recovered di halaman Streams.

Menggunakan pemulihan streaming untuk sumber MySQL dalam skenario failover manual

Anda dapat melakukan failover manual dan menggunakan pemulihan aliran data untuk menghindari pembuatan ulang aliran data dari awal selama pemeliharaan atau kegagalan instance utama. Umumnya, Datastream tidak mendukung failover ke replika karena mengganggu kontinuitas binlog, tetapi Anda dapat mengikuti langkah-langkah berikut untuk memulihkan aliran data dan memastikan data perubahan Anda dicatat:

  1. Menghentikan semua penulisan ke instance utama.
  2. Pastikan metrik keaktualan data ditetapkan ke 0. Artinya, Datastream telah menangkap semua perubahan dan tidak ada peristiwa baru yang akan dibaca dari sumber. Untuk mengetahui informasi selengkapnya, lihat Memantau streaming.
  3. Lakukan failover ke instance database baru.
  4. Jika perlu, perbarui profil koneksi aliran data ke instance database baru (misalnya, Anda mungkin perlu mengubah nama host atau alamat IP database). Untuk informasi selengkapnya, lihat Mengubah profil koneksi.
  5. Pulihkan streaming dari posisi tertentu pada instance failover untuk memastikan kelangsungan CDC.

Langkah selanjutnya