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

Trang này mô tả cách khôi phục dữ liệu trong bản sao lưu vào cơ sở dữ liệu có cùng làm tên 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 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 ban đầu vẫn đã tồn tại. Việc 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 cơ sở dữ liệu đích không tồn tại. Tuy nhiên, bạn có thể mô phỏng quá trình khôi phục tại chỗ bằng cách xoá cơ sở dữ liệu nguồn rồi khôi phục từ bản sao lưu sang cơ sở dữ liệu mới bằng 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 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 hoạt động 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.

Trước khi bắt đầu

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

  1. Xuất dữ liệu trong cơ sở dữ liệu mà bạn sẽ xoá.

    Nếu bạn cần khôi phục cơ sở dữ liệu đã xoá, 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ã cơ sở dữ liệu, bạn phải đợi cho đến mọi thao tác khôi phục đang chạy hoàn tất và sau đó:

    1. Xoá cơ sở dữ liệu hiện có bằng mã nhận dạng cơ sở dữ liệu và đợi ít nh��t 5 phút
    2. Tạo cơ sở dữ liệu mới bằng mã nhận dạng cơ sở dữ liệu
    3. Bắt đầu một thao tác nhập
  2. Truy xuất và sao chép cấu hình chỉ mục của cơ sở dữ liệu. Thao tác xuất không nắm bắt đị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:

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

      gcloud firestore indexes composite list --database=DATABASE_ID
      

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

    • Sử dụng gcloud firestore indexes fields list để truy xuất danh sách trường hợp miễn trừ cho 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 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 cho đến khi hoàn tất thao tác khôi phục.

Khi hoạt động khôi phục bắt đầu, bạn không thể huỷ thao tác đó và phải đợi cho đến khi thao tác hoàn tất. Thao tác khôi phục ngay lập tức chiếm mã cơ sở dữ liệu được sử dụng trong thao tác.

  1. 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 dưới định dạng sau:

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

        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 cho mã cơ sở dữ liệu để có thể sử dụng lại. Bắt đầu thao tác khôi phục bằng gcloud alpha firestore databases restore :

    gcloud alpha 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