Thực hiện khôi phục tại chỗ

Áp dụng cho phiên bản Firestore Standard và phiên bản Firestore Enterprise.

Trang này mô tả cách khôi phục dữ liệu trong một bản sao lưu vào 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 tính năng 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ừ mộ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 việc đị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 cơ sở dữ liệu đích chưa tồn tại. Tuy nhiên, bạn có thể mô phỏng thao tác 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ừ một bản sao lưu vào 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 thao tác 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:

  1. Xác định bản sao lưu để sử dụng cho thao tác khôi phục.
  2. Xoá cơ sở dữ liệu hiện có.
  3. Sử dụng bản sao lưu và mã nhận dạng cơ sở dữ liệu của cơ sở dữ liệu đã xoá để hoàn tất thao tác khôi phục.
Thận trọng: Nếu ứng dụng của bạn sử dụng Cloud Firestore thư viện ứng dụng ở chế độ Native và ứng dụng sử dụng bộ nhớ đệm ngoại tuyến, thì thao tác khôi phục tại chỗ có thể xoá các thao tác ghi của bạn vào cơ sở dữ liệu đã khôi phục thay vì loại bỏ các thao tác ghi. Tình huống này có thể xảy ra nếu ứng dụng được kết nối với cơ sở dữ liệu đã xoá chuyển sang trạng thái ngoại tuyến và trong khi ngoại tuyến, bộ nhớ đệm sẽ tích luỹ các thao tác ghi vào thời điểm bạn thực hiện thao tác khôi phục tại chỗ.

Trước khi bắt đầu

Bạn nên hoàn tất các bước sau trước khi bắt đầu quy trình khôi phục tại chỗ.

Truy xuất và sao chép cấu hình chỉ mục của cơ sở dữ liệu. 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:

  • Sử dụng gcloud firestore indexes composite list để truy xuất danh sách các chỉ mục tổng hợp:

        gcloud firestore indexes composite list --database=DATABASE_ID
    

    Thay thế DATABASE_ID bằng mã nhận dạng của cơ sở dữ liệu.

  • Sử dụng gcloud firestore indexes fields list để truy xuất danh sách các trường miễn trừ chỉ mục một trường (tích hợp sẵn).

        gcloud firestore indexes fields list --database=DATABASE_ID
    

Thực hiện thao tác 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ỗ. Quy trình này yêu cầu thời gian ngừng hoạt động giữa thời điểm bạn xoá cơ sở dữ liệu và thời điểm 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 sử dụng trong thao tác.

  1. Sử dụng lệnh gcloud firestore backups list để xác định bản sao lưu cần sử dụng cho thao tác khôi phục và lưu ý tên tài nguyên. Tên tài nguyên sử dụng định dạng sau:

        projects/PROJECT_ID/locations/LOCATION/backups/BACKUP_ID
    
  2. Sử dụng lệnh gcloud firestore databases delete để xoá cơ sở dữ liệu hiện có:

        gcloud firestore databases delete --database='DATABASE_ID'
    

    Thay thế DATABASE_ID bằng mã nhận dạng cơ sở dữ liệu.

  3. Chờ í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 firestore databases restore:

    gcloud firestore databases restore \
    --source-backup=projects/PROJECT_ID/locations/LOCATION/backups/BACKUP_ID \
    --destination-database='DATABASE_ID'
    

    Thay thế DATABASE_ID bằng mã nhận dạng cơ sở dữ liệu.

Bước tiếp theo