Anda dapat memulihkan streaming yang gagal secara permanen tanpa harus membuat streaming baru. Anda dapat melakukannya dengan menentukan posisi dari mana Datastream mencoba melanjutkan membaca perubahan 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 aliran data terus berjalan, dan dapat menyebabkan hilangnya data.
Anda dapat memulihkan aliran yang gagal secara permanen dengan menyetelnya untuk mengabaikan error dan terus membaca peristiwa yang sedang berlangsung, bukan membuat ulang aliran dan mengisi ulang data historis. Untuk memulihkan aliran yang gagal secara permanen, Anda harus mereset replikasi untuk mulai membaca dari posisi replikasi yang berbeda. Setiap jenis sumber yang didukung memiliki definisi sendiri tentang posisi replikasi:
- Untuk sumber Oracle, posisi replikasi adalah file log redo dalam database dan system change number (SCN) dalam file ini.
- Untuk sumber MySQL, posisi replikasi adalah file log biner (binlog) database dan posisi dalam file ini (untuk replikasi berbasis binlog), atau serangkaian ID transaksi global yang disebut kumpulan GTID (untuk replikasi berbasis GTID, hanya didukung di Datastream API).
- 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.
- Untuk sumber MongoDB, posisi replikasi adalah stempel waktu dalam log operasi (oplog) MongoDB.
Memulihkan aliran untuk sumber MySQL atau Oracle
Untuk memulihkan stream untuk sumber MySQL (replikasi berbasis binlog) 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 dalam 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 yang paling baru. 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 langsung mengikuti posisi log yang hilang. Anda dapat memulihkan perubahan ini dengan melakukan pengisian ulang.
Untuk memulihkan stream yang gagal secara permanen untuk sumber MySQL atau Oracle, lakukan langkah-langkah berikut:
Buka halaman Streams di Google Cloud.
Klik Pulihkan di baris dengan nama aliran yang ingin Anda pulihkan.
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: system change number (SCN) di kolom System Change Number (SCN). Kolom ini wajib diisi.
Klik Terapkan.
Saat streaming dipulihkan, stempel waktu akan muncul di kolom Dipulihkan di halaman Streaming.
Memulihkan aliran untuk sumber PostgreSQL
Untuk memulihkan aliran 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 aliran yang gagal atau berbeda:
- Jika slot replikasi baru memiliki nama yang berbeda, berikan nama slot replikasi 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:
Buka halaman Streams di Google Cloud.
Klik Pulihkan di baris dengan nama aliran yang ingin Anda pulihkan.
Panel Define a new replication slot akan terbuka.
Di kolom Replication slot name, masukkan nama slot replikasi baru yang akan digunakan untuk mencoba memulihkan streaming. Jika Anda membuat ulang slot replikasi menggunakan nama yang sama, atau Anda ingin menggunakan kembali slot yang Anda tentukan saat mengonfigurasi sumber, Anda dapat mengosongkan kolom ini.
Klik Terapkan.
Saat streaming dipulihkan, stempel waktu akan muncul di kolom Dipulihkan di halaman Streaming.
Anda juga dapat memulihkan streaming yang gagal secara permanen dari halaman Detail streaming. Untuk melakukannya, klik Pulihkan aliran saat melihat informasi mendetail tentang aliran Anda.
Memulihkan stream untuk sumber SQL Server
Untuk memulihkan aliran untuk sumber SQL Server, Anda memiliki opsi berikut:
Lanjutkan dari posisi pertama yang tersedia: pilih opsi ini jika log terpotong atau beberapa rekaman 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 di log transaksi atau tabel perubahan. Beberapa peristiwa mungkin hilang jika LSN yang ditentukan tidak tumpang-tindih dengan atau segera 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 heksadesimal, tetapi untuk log transaksi, LSN dipisahkan oleh pembatas. Contoh:
- LSN dalam log transaksi:
0000123C:0000BA78:0004
- LSN dalam tabel perubahan:
0000123C0000BA780004
- LSN dalam log transaksi:
Untuk memulihkan aliran yang gagal secara permanen untuk sumber SQL Server, lakukan langkah-langkah berikut:
Buka halaman Streams di Google Cloud.
Klik Pulihkan di baris dengan nama aliran yang ingin Anda pulihkan.
Panel Pilih strategi pemulihan akan terbuka. Pilih salah satu opsi.
Klik Terapkan.
Saat streaming dipulihkan, stempel waktu akan muncul di kolom Dipulihkan di halaman Streaming.
Memulihkan streaming untuk sumber MongoDB
Pemulihan streaming untuk sumber MongoDB tersedia menggunakan Datastream API. Anda dapat memulihkan streaming MongoDB menggunakan opsi berikut:
Posisi mulai terbaru: pilih opsi ini jika Anda ingin melanjutkan streaming dari stempel waktu saat ini di oplog MongoDB. Peristiwa yang hilang akan hilang, tetapi Anda dapat memulihkannya dengan melakukan pengisian ulang.
Posisi mulai tertentu: pilih opsi ini untuk melanjutkan streaming dari stempel waktu yang dipilih. Stempel waktu yang Anda gunakan dalam permintaan harus valid, artinya tidak boleh lebih awal dari posisi paling awal yang tersedia di oplog MongoDB, dan tidak boleh di masa mendatang.
Untuk mengetahui informasi tentang cara membuat permintaan untuk memulihkan streaming MongoDB, lihat dokumentasi referensi Datastream API.
Untuk mengetahui informasi tentang log operasi MongoDB, lihat dokumentasi MongoDB.
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 ke replika karena akan merusak kontinuitas binlog, tetapi Anda dapat mengikuti langkah-langkah berikut untuk memulihkan aliran dan memastikan data perubahan Anda dicatat:
- Menghentikan semua penulisan ke instance utama.
- Pastikan metrik keaktualan data disetel ke 0. Artinya, Datastream mencatat semua perubahan dan tidak ada peristiwa baru yang dapat dibaca dari sumber. Untuk informasi selengkapnya, lihat Memantau aliran data.
- Lakukan failover ke instance database baru.
- Jika perlu, perbarui profil koneksi aliran ke instance database baru (misalnya, Anda mungkin perlu mengubah nama host atau alamat IP database). Untuk mengetahui informasi selengkapnya, lihat Mengubah profil koneksi.
- Pulihkan aliran dari posisi tertentu pada instance failover untuk memastikan kelangsungan CDC.
Langkah berikutnya
- Untuk mempelajari status streaming lebih lanjut, lihat Siklus proses streaming.
- Untuk mempelajari cara melihat informasi tentang streaming, lihat Melihat streaming.
- Untuk mempelajari cara memantau streaming, lihat Memantau streaming.
- Untuk mempelajari cara mengelola pengisian ulang untuk streaming, lihat Mengelola pengisian ulang untuk objek streaming.
- Untuk mempelajari cara menghapus aliran yang ada, lihat Menghapus aliran.