Ringkasan pemulihan point-in-time (PITR)

Pemulihan point-in-time (PITR) Firestore memberikan perlindungan terhadap penghapusan atau penulisan yang tidak disengaja. PITR mempertahankan versi dokumen Anda dari stempel waktu yang lalu. Misalnya, jika developer mengirim data yang salah, menghapus atau menulis secara tidak sengaja, PITR dapat memulihkan data ke titik waktu tertentu di waktu sebelumnya (hingga maksimum 7 hari) dengan mudah.

Untuk setiap database live yang mengikuti Praktik terbaik, penggunaan PITR tidak memengaruhi performa baca atau tulis.

Periode PITR

Setelah Anda mengaktifkan PITR, Firestore mulai menyimpan data PITR. Data PITR dipertahankan selama 7 hari di periode PITR.

Anda dapat baca data sesuai stempel waktu berdasarkan waktu PITR diaktifkan:

Status pengaktifan PITR Data PITR paling awal tersedia
Dinonaktifkan 1 jam sebelum waktu permintaan baca
diaktifkan dalam waktu 7 hari 1 jam sebelum PITR diaktifkan
diaktifkan lebih dari 7 hari yang lalu 7 hari sebelum waktu permintaan baca

Satu versi per menit dipertahankan dalam periode PITR. Anda dapat membaca dokumen dengan tingkat perincian menit menggunakan stempel waktu satu menit. Operasi baca yang tidak pada tingkat perincian menit, misalnya 2023-05-30 09:00:00.1234AM, akan menampilkan error bahwa read_time terlalu lama.

Hanya satu versi dokumen yang dipertahankan jika terjadi beberapa kali penulisan. Misalnya, jika dokumen memiliki beberapa rentang penulisan, mulai dari v1, v2, ... vk antara stempel waktu 2023-05-30 09:00:00AM (eksklusif) dan 2023-05-30 09:01:00AM (inklusif), permintaan baca pada stempel waktu 2023-05-30 09:01:00AM akan menampilkan versi vk dari dokumen.

Anda dapat membaca dari data yang dibuat selama periode PITR. Data disimpan pada tingkat perincian satu menit dan Anda dapat memulihkan data pada tingkat perincian yang sama. Fitur PITR Firestore dinonaktifkan secara default.

Kolom earliestVersionTime pada database Anda menentukan waktu baca paling awal yang diizinkan untuk data Anda.

Terlepas dari apakah PITR diaktifkan atau tidak, Anda dapat membaca (tetapi tidak mengekspor) dokumen pada stempel waktu dengan perincian mikrodetik dalam satu jam terakhir, tetapi tidak sebelum earliestVersionTime.

Cara memulihkan data

Ada dua cara untuk memulihkan data:

  • Untuk memulihkan sebagian database, lakukan pembacaan yang sudah tidak berlaku yang menentukan kondisi kueri atau menggunakan pencarian kunci langsung beserta stempel waktu sebelumnya, lalu tuliskan hasilnya ke database live. Hal ini biasanya digunakan untuk operasi bedah pada database live. Misalnya, jika Anda tidak sengaja menghapus dokumen tertentu atau salah memperbarui subset data, Anda dapat memulihkannya dengan metode ini. Untuk mengetahui petunjuknya, lihat memulihkan sebagian database Anda.

  • Untuk memulihkan seluruh database, ekspor database yang menentukan stempel waktu sebelumnya, lalu impor ke database baru. Operasi ekspor PITR mendukung semua filter, termasuk ekspor semua dokumen dan ekspor koleksi tertentu. Anda dapat mengekspor data PITR dengan stempel waktu satu menit dalam tujuh hari terakhir, tetapi tidak lebih awal dari VersionTime.

Harga

Pertimbangkan informasi harga berikut sebelum mengaktifkan PITR untuk database Anda:

  • Penyimpanan: Firestore mengukur ukuran database setiap hari. Selama sebulan, titik contoh ini dirata-ratakan untuk menghitung ukuran penyimpanan database. Nilai rata-rata ini dikalikan dengan harga satuan PITR (GB-bulan). Lihat harga penyimpanan untuk mengetahui informasi selengkapnya.

    Penyimpanan PITR tidak memiliki paket gratis dan Anda harus mengaktifkan penagihan jika ingin menggunakan PITR.

  • Penagihan komputasi: Setiap kueri yang Anda buat selama periode PITR 7 hari, baik melalui pembacaan yang sudah tidak berlaku maupun ekspor, akan dikenai biaya operasi baca berdasarkan jumlah dokumen yang dibaca. Lihat Harga untuk informasi selengkapnya.

  • Penagihan minimum: Anda dapat ditagih hingga 1 hari biaya penyimpanan PITR meskipun Anda menonaktifkan PITR dalam satu hari setelah pengaktifan.

Langkah berikutnya