Anda dapat memulihkan streaming yang gagal secara permanen tanpa harus membuat streaming baru. Anda dapat melakukannya dengan menentukan posisi tempat Datastream mencoba untuk melanjutkan pembacaan perubahan dari sumber.
Ringkasan pemulihan streaming
Aliran data yang sedang berjalan dapat mengalami beberapa error yang tidak dapat dipulihkan dan mengubah statusnya menjadi
FAILED_PERMANENTLY
. Error tersebut akan mencegah streaming terus berjalan, dan dapat menyebabkan kehilangan data.
Anda dapat memulihkan aliran data yang gagal secara permanen dengan menyetelnya agar mengabaikan error dan terus membaca peristiwa yang sedang berlangsung, bukan membuat ulang aliran data dan mengisi ulang data historis. Untuk memulihkan aliran data 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 replikasi:
- Untuk sumber Oracle, posisi replikasi adalah file log ulangi dalam database dan nomor perubahan sistem (SCN) dalam file ini.
- Untuk sumber MySQL, posisi replikasi adalah file log biner database (binlog) dan posisi dalam file ini.
- Untuk sumber PostgreSQL (termasuk AlloyDB untuk PostgreSQL), posisi replikasi adalah nomor urut log (LSN) dalam 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 melakukan streaming dari posisi saat ini, tempat streaming terakhir kali gagal. Anda perlu 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 ini dan melanjutkan streaming dari posisi pertama pada 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 ini dan melanjutkan streaming dari posisi terbaru di 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:
Buka halaman Streams di Google Cloud.
Pilih kotak centang di sebelah kiri streaming yang ingin Anda pulihkan.
Klik Pulihkan.
Panel Pilih strategi pemulihan akan terbuka. Pilih salah satu opsi. Jika Anda memilih Lanjutkan dari file dan posisi streaming pilihan Anda, masukkan informasi 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.
Klik Terapkan.
Saat streaming dipulihkan, stempel waktu akan muncul di kolom Recovered pada halaman Streaming.
Memulihkan aliran data untuk sumber PostgreSQL
Guna memulihkan aliran untuk sumber PostgreSQL, Anda harus memberikan nama slot replikasi. Server menggunakan slot replikasi ini untuk mengirim peristiwa ke Datastream. Nama slot replikasi bisa sama dengan slot yang digunakan untuk aliran data yang gagal atau berbeda:
- Jika slot replikasi baru memiliki nama yang berbeda, berikan nama slot replikasi baru ke Datastream. Untuk mengetahui informasi selengkapnya, lihat Memulihkan aliran data untuk sumber PostgreSQL.
- Jika Anda tidak memberikan nama slot replikasi, Datastream akan menggunakan nama slot replikasi yang ditentukan dalam konfigurasi sumber. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi database PostgreSQL sumber.
Setiap peristiwa perubahan pada sumber yang terjadi antara kehilangan posisi log dan LSN pertama di slot replikasi baru akan hilang. Anda dapat memulihkan perubahan ini dengan melakukan pengisian ulang.
Guna memulihkan aliran data yang gagal secara permanen untuk sumber PostgreSQL, lakukan langkah-langkah berikut:
Buka halaman Streams di Google Cloud.
Pilih kotak centang di sebelah kiri streaming yang ingin Anda pulihkan.
Klik Pulihkan.
Panel Define a new replication slot akan terbuka.
Di kolom Replication slot name, berikan nama slot replikasi baru tempat aliran data akan mencoba dipulihkan. 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.
Klik Terapkan.
Saat streaming dipulihkan, stempel waktu akan muncul di kolom Recovered pada halaman Streaming.
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.
Menggunakan pemulihan streaming untuk sumber MySQL dalam skenario failover manual
Anda dapat melakukan failover manual dan menggunakan pemulihan streaming untuk menghindari pembuatan ulang streaming dari awal selama pemeliharaan atau kegagalan instance utama. Umumnya, Datastream tidak mendukung failover pada replika karena merusak kontinuitas binlog, tetapi Anda dapat mengikuti langkah-langkah berikut untuk memulihkan aliran data dan memastikan data perubahan direkam:
- Menghentikan semua penulisan ke instance utama.
- Pastikan metrik keaktualan data ditetapkan ke 0. Hal ini berarti Datastream menangkap semua perubahan dan tidak ada peristiwa baru untuk dibaca dari sumber. Untuk mengetahui informasi selengkapnya, lihat Memantau streaming.
- Gagal beralih ke instance database baru.
- Jika perlu, perbarui profil koneksi aliran data ke instance database baru (misalnya, Anda mungkin perlu mengubah nama host database atau alamat IP). Untuk mengetahui informasi selengkapnya, lihat Mengubah profil koneksi.
- Pulihkan streaming dari posisi tertentu pada instance failover untuk memastikan kontinuitas CDC.