Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
Pemulihan point-in-time (PITR) Firestore dalam mode Datastore memberikan perlindungan terhadap penghapusan atau penulisan yang tidak disengaja. PITR mempertahankan versi entitas Anda dari stempel waktu yang lalu. Misalnya, jika developer
mendorong data yang salah, menghapus atau menulis secara tidak sengaja, PITR dapat memulihkan
data ke titik waktu tertentu di masa lalu (hingga maksimum 7 hari) dengan lancar.
Untuk setiap database live yang mengikuti Praktik terbaik, penggunaan PITR tidak memengaruhi performa baca atau tulis.
Periode PITR
Setelah Anda mengaktifkan PITR, mode Datastore 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 baca dokumen dengan tingkat perincian menit menggunakan stempel waktu satu menit. 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 mode Datastore 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 stale read
dengan menentukan kondisi kueri atau menggunakan pencarian kunci langsung beserta
stempel waktu yang lampau, lalu tuliskan hasilnya ke database live terkait. Hal ini biasanya digunakan untuk operasi bedah pada database live.
Misalnya, jika Anda tidak sengaja menghapus entity tertentu atau
salah memperbarui subset data, Anda dapat memulihkannya dengan metode ini.
Untuk mengetahui petunjuknya, lihat memulihkan sebagian database Anda.
Untuk memulihkan seluruh database, gunakan salah satu opsi berikut:
Meng-clone database
untuk membuat salinan database pada stempel waktu tertentu.
Ekspor database dan tentukan
stempel waktu sebelumnya, lalu impor ke database baru. Operasi
ekspor PITR mendukung semua filter, termasuk ekspor semua entity dan
ekspor jenis dan namespace tertentu.
Anda dapat meng-clone atau mengekspor data PITR dengan stempel waktu
satu menit dalam tujuh hari terakhir, tetapi tidak lebih awal dari
earliestVersionTime.
Harga
Pertimbangkan informasi harga berikut sebelum mengaktifkan PITR untuk database Anda:
Penyimpanan: Mode Datastore 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 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.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Sulit dipahami","hardToUnderstand","thumb-down"],["Informasi atau kode contoh salah","incorrectInformationOrSampleCode","thumb-down"],["Informasi/contoh yang saya butuhkan tidak ada","missingTheInformationSamplesINeed","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 2025-09-03 UTC."],[[["\u003cp\u003eFirestore in Datastore mode's point-in-time recovery (PITR) feature protects against accidental data deletion or incorrect writes by retaining versions of entities for up to 7 days, allowing for seamless data recovery.\u003c/p\u003e\n"],["\u003cp\u003eEnabling PITR does not affect the performance of reads or writes for live databases that adhere to best practices.\u003c/p\u003e\n"],["\u003cp\u003ePITR data is retained for 7 days, and data can be read at minute granularity within this window, where the availability of data depends on when PITR was enabled, with the earliest available data ranging from 1 hour before a read request to 7 days prior.\u003c/p\u003e\n"],["\u003cp\u003eData can be recovered either by performing stale reads on a portion of the database and writing it back or by exporting the entire database to a specific point in time and importing it into a new database.\u003c/p\u003e\n"],["\u003cp\u003eUsing PITR incurs storage and compute costs, with storage measured daily and averaged monthly, and read operation costs for any queries within the 7-day PITR window, additionally there is a potential charge for up to 1 day of storage even if the feature is turned off quickly.\u003c/p\u003e\n"]]],[],null,["# Point-in-time recovery (PITR) overview\n\nFirestore in Datastore mode point-in-time recovery (PITR) provides protection against\naccidental deletion or writes. PITR maintains versions of your\nentities from past timestamps. For example, in the case of a developer\npushing the incorrect data, accidental deletes or writes, PITR can recover the\ndata to a point in time in the past (up to a maximum of 7 days) seamlessly.\n\nFor any live database that follows [Best practices](./best-practices), use\nof PITR doesn't affect the performance of reads or writes.\n\nPITR window\n-----------\n\nAfter you enable PITR, Datastore mode starts retaining PITR data. PITR data is\nretained for 7 days in the PITR window.\n\nYou can read data for a timestamp based on when PITR was enabled:\n\n| **Note:** You can't start reading from seven days in the past immediately after you enable PITR.\n\nA single version per minute is retained in the PITR window. You can read documents at minute\ngranularity using a whole minute timestamp. Only one version of a document is\nretained in case of multiple writes. For example, if a document had multiple\nwrites ranging from `v1, v2, ... vk` between `2023-05-30 09:00:00AM` (exclusive)\nand `2023-05-30 09:01:00AM` (inclusive) timestamp, a read request at timestamp\n`2023-05-30 09:01:00AM` returns the `vk` version of the document.\n\nYou can read from the data created during the PITR\nwindow. The data is stored at a minute granularity and you can recover data\nat the same granularity. Datastore mode PITR feature is disabled by default.\n\nThe [earliestVersionTime](/firestore/docs/reference/rest/v1/projects.databases#resource:-database) field of your database specifies the\nearliest permissible read time for your data.\n\nRegardless of whether PITR is enabled or not, you can read (but not export) documents at any microsecond-granularity timestamp within the past hour, but not before the earliestVersionTime.\n\nWays to recover data\n--------------------\n\nThere are two ways to recover data:\n\n- To **recover a portion of the database** , perform a [stale read](/firestore/docs/understand-reads-writes-scale#stale_reads)\n specifying a query-condition or using direct key lookup along with a\n timestamp in the past, and then write the results back into the live\n database. This is typically used for surgical operations on a live database.\n For example, if you accidentally delete a particular entity or\n incorrectly update a subset of data, you can recover it with this method.\n For instructions, see [recovering a portion of your database](/datastore/docs/use-pitr#read-pitr).\n\n- To **recover the entire database** , [export](/datastore/docs/use-pitr#export-import) the database specifying\n a timestamp in the past and then import it to a new database. The PITR\n export operation supports all filters, including export of all entities\n and export of specific kinds or namespaces. Note that exporting a database could\n take several hours. You can export PITR data where the timestamp is a whole\n minute timestamp within the past seven days, but not earlier than the\n earliestVersionTime.\n\nPricing\n-------\n\nConsider the following pricing information before you enable PITR for your database:\n\n- Storage: Datastore mode measures the database size daily. Over the\n period of a month, these sample points are averaged to calculate the\n database storage size. This average value is multiplied by the unit price of\n PITR (GB-month). See the [storage pricing](/firestore/pricing) for more information.\n\n PITR storage doesn't have a free tier and you must have billing enabled if you\n want to use PITR.\n- Compute billing: Any queries that you make during the PITR window of 7 days,\n either through stale reads or exports, incur read operation costs\n based on the number of documents read. See [pricing](/firestore/pricing) for more\n information.\n\n- Minimum billing: You may be charged up to 1 day of PITR storage cost even if\n you disable PITR within a day after enablement.\n\nWhat's next\n-----------\n\n- Learn more about how to [recover data with PITR](/datastore/docs/use-pitr)."]]