Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
Trang này mô tả cách khôi phục dữ liệu trong bản sao lưu vào một cơ sở dữ liệu có cùng tên với cơ sở dữ liệu nguồn của bản sao lưu.
Trước khi đọc trang này, bạn nên làm quen với phần Sao lưu và khôi phục dữ liệu.
Khôi phục tại chỗ
Tính năng khôi phục tại chỗ cho phép bạn khôi phục cơ sở dữ liệu từ bản sao lưu vào cơ sở dữ liệu nguồn đã tạo bản sao lưu trong khi cơ sở dữ liệu gốc vẫn tồn tại. Tính năng khôi phục tại chỗ giúp bạn tránh định tuyến lại lưu lượng truy cập hoặc tạo cơ sở dữ liệu có tên khác.
Thao tác khôi phục phải sử dụng một cơ sở dữ liệu đích chưa tồn tại. Tuy nhiên, bạn có thể mô phỏng quy trình khôi phục tại chỗ bằng cách xoá cơ sở dữ liệu nguồn, sau đó khôi phục từ bản sao lưu sang một cơ sở dữ liệu mới có cùng tên với cơ sở dữ liệu nguồn.
Thực hiện khôi phục tại chỗ
Để thực hiện thao tác khôi phục tại chỗ, hãy làm theo các bước sau:
Xác định bản sao lưu cần dùng cho thao tác khôi phục.
Xoá cơ sở dữ liệu hiện có.
Sử dụng bản sao lưu và mã cơ sở dữ liệu của cơ sở dữ liệu đã xoá để hoàn tất thao tác khôi phục.
Trước khi bắt đầu
Bạn nên hoàn thành các bước sau trước khi bắt đầu quy trình khôi phục tại chỗ:
Nếu cần khôi phục cơ sở dữ liệu đã xoá, hãy nhập dữ liệu từ thao tác xuất.
Để khôi phục cơ sở dữ liệu đã xoá về cùng một mã nhận dạng cơ sở dữ liệu, bạn phải đợi cho đến khi mọi hoạt động khôi phục đang chạy hoàn tất, sau đó:
Xoá cơ sở dữ liệu hiện có bằng mã cơ sở dữ liệu và đợi ít nhất 5 phút
Tạo cơ sở dữ liệu mới bằng mã nhận dạng cơ sở dữ liệu
Bắt đầu thao tác nhập
Truy xuất và sao chép cấu hình chỉ mục của cơ sở dữ liệu. Các thao tác xuất không ghi lại định nghĩa chỉ mục. Sử dụng cấu hình chỉ mục để tạo lại chỉ mục sau khi bạn hoàn tất thao tác khôi phục tại chỗ. Sử dụng các lệnh sau để truy xuất cấu hình chỉ mục của cơ sở dữ liệu:
gcloud firestore indexes fields list --database=DATABASE_ID
Thực hiện khôi phục tại chỗ
Hoàn tất các bước sau để thực hiện thao tác khôi phục tại chỗ. Quá trình này cần có thời gian ngừng hoạt động giữa thời điểm bạn xoá cơ sở dữ liệu và khi thao tác khôi phục hoàn tất.
Sau khi bắt đầu thao tác khôi phục, bạn không thể huỷ thao tác này và phải đợi cho đến khi thao tác hoàn tất. Thao tác khôi phục sẽ chiếm ngay mã nhận dạng cơ sở dữ liệu được dùng trong thao tác đó.
Dùng lệnh gcloud alpha firestore backups list để xác định bản sao lưu cần dùng cho thao tác khôi phục và ghi lại tên tài nguyên. Tên tài nguyên sử dụng định dạng sau:
Đợi ít nhất 5 phút sau khi bạn xoá cơ sở dữ liệu để mã nhận dạng cơ sở dữ liệu có thể sử dụng lại. Bắt đầu thao tác khôi phục bằng lệnh gcloud alpha firestore databases restore:
[null,null,["Cập nhật lần gần đây nhất: 2025-08-16 UTC."],[],[],null,["\u003cbr /\u003e\n\n\n|----------------------------------------------------------------------------------------|\n| *Relevant to Cloud Firestore Standard edition and Cloud Firestore Enterprise edition.* |\n\n\u003cbr /\u003e\n\nThis page describes how to restore data in a backup to a database with the same\nname as the source database of the backup.\nBefore you read this page, you should be familiar with\n[Back up and restore data](/docs/firestore/enterprise/backups).\n\nIn-place restore\n\nAn in-place restore lets you restore a database from a backup to the\nsource database that created the backup while the original database still\nexists. An in-place restore helps you avoid rerouting traffic\nor creating a database with a different name.\n| **Warning:** Once you start the in-place restore process, the original database is permanently lost, and you can't undo this operation.\n\nA restore operation must use a destination database that\ndoesn't already exist. You can, however, simulate an in-place restore by deleting\nthe source database and then restoring from a backup to a new database with the\nsame name as the source database.\n\nPerform an in-place restore\n\nTo perform an in-place restore, follow these steps:\n\n1. Identify the backup to use for the restore operation.\n2. Delete the existing database.\n3. Use the backup and the database ID of the deleted database to complete the restore operation.\n\n| **Caution:** If your app uses a Cloud Firestore in Native mode client library and your clients use an offline cache, an in-place restore might flush your writes to the restored database instead of discarding the writes. This situation can occur if the client that is connected to the deleted database goes offline and, while offline, the cache accumulates writes at the time when you perform an in-place restore.\n\nBefore you begin\n\nWe recommend completing the following steps before starting the in-place restore\nprocess:\n\n1. [Export the data](/docs/firestore/enterprise/export-import#export_data) in the database you will delete.\n\n If you need to recover the deleted database,\n [import](/docs/firestore/enterprise/export-import#import_data) the data from export operation.\n To recover the deleted database to the same database ID, you must wait until\n any running restore operations complete and then:\n 1. Delete the existing database with the database ID and wait at least 5 minutes\n 2. Create a new database with the database ID\n 3. Start an import operation\n2. Retrieve and copy the index configuration of your database. Export operations\n do not capture index definitions. Use the index configuration to re-create\n indexes after you complete the in-place restore operation. Use the following commands\n to retrieve the index configuration of your database:\n\n - Use [`gcloud firestore indexes composite list`](https://cloud.google.com/sdk/gcloud/reference/firestore/indexes/composite/list)\n to retrieve a list of composite indexes:\n\n gcloud firestore indexes composite list --database=\u003cvar translate=\"no\"\u003eDATABASE_ID\u003c/var\u003e\n\n Replace \u003cvar translate=\"no\"\u003eDATABASE_ID\u003c/var\u003e with the ID of your database.\n - Use [`gcloud firestore indexes fields list`](https://cloud.google.com/sdk/gcloud/reference/firestore/indexes/fields/list)\n to retrieve a list of single-field (built-in) index exemptions.\n\n gcloud firestore indexes fields list --database=\u003cvar translate=\"no\"\u003eDATABASE_ID\u003c/var\u003e\n\nPerform an in-place restore\n\nComplete the following steps to perform an in-place restore operation. This process\nrequires downtime between the moment you delete the database and when the\nrestore operation completes.\n\nOnce a restore operation begins, you cannot cancel the operation and must wait\nuntil the operation completes. The restore operation immediately occupies the\ndatabase ID used in the operation.\n\n1. Use the [`gcloud firestore backups list`](https://cloud.google.com/sdk/gcloud/reference/firestore/backups/list) command to identify the backup to use\n for the restore operation and note the resource name. The resource name uses\n the following format:\n\n projects/PROJECT_ID/locations/LOCATION/backups/BACKUP_ID\n\n2. Use the `gcloud firestore databases delete` command to delete the existing\n database:\n\n gcloud firestore databases delete --database='\u003cvar translate=\"no\"\u003eDATABASE_ID\u003c/var\u003e'\n\n Replace \u003cvar translate=\"no\"\u003eDATABASE_ID\u003c/var\u003e with the database ID.\n3. Wait at least 5 minutes after you delete the database for the database ID\n to become available again. Initiate a restore operation using the\n [`gcloud firestore databases restore`](https://cloud.google.com/sdk/gcloud/reference/firestore/databases/restore)\n command:\n\n gcloud firestore databases restore \\\n --source-backup=projects/PROJECT_ID/locations/LOCATION/backups/BACKUP_ID \\\n --destination-database='\u003cvar translate=\"no\"\u003eDATABASE_ID\u003c/var\u003e'\n\n Replace \u003cvar translate=\"no\"\u003eDATABASE_ID\u003c/var\u003e with the database ID.\n\nWhat's next\n\n- [Learn more about backup schedules and restore operations](/docs/firestore/enterprise/backups)\n- [Learn about configuring point-in-time recovery (PITR)](/docs/firestore/enterprise/pitr)"]]